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=-12.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,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 9113AC2D0A8 for ; Mon, 28 Sep 2020 17:40:53 +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 5C7FF2072E for ; Mon, 28 Sep 2020 17:40:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=quicinc.com header.i=@quicinc.com header.b="RmhgMG+1" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 5C7FF2072E 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]:35374 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kMx8t-00008c-74 for qemu-devel@archiver.kernel.org; Mon, 28 Sep 2020 13:40:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:48994) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kMwyA-0003Ge-HJ for qemu-devel@nongnu.org; Mon, 28 Sep 2020 13:29:46 -0400 Received: from alexa-out-sd-01.qualcomm.com ([199.106.114.38]:53857) by eggs.gnu.org with esmtps (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.90_1) (envelope-from ) id 1kMwy4-0007uy-PQ for qemu-devel@nongnu.org; Mon, 28 Sep 2020 13:29:46 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=quicinc.com; i=@quicinc.com; q=dns/txt; s=qcdkim; t=1601314180; x=1632850180; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=d9dPfphBQzaTbbOy4QsJxltYlj7Jrx/9cP144OQap4o=; b=RmhgMG+1XT2bgVwxS+IJI965CF0Q/Xv9GruAeIbODuAIIHgutRRFx5lN SCv46e8eL9lKhl3IYH4I5+p0mzBNef13TagMLJrQQcUViBPWlYUBcbIKc j0H7/1+kcUqPx6axDFdXXuXq98BOEKaGd4KYwJs+6Bl1YiEmLkHeI573p M=; Received: from unknown (HELO ironmsg-SD-alpha.qualcomm.com) ([10.53.140.30]) by alexa-out-sd-01.qualcomm.com with ESMTP; 28 Sep 2020 10:29:04 -0700 X-QCInternal: smtphost Received: from vu-tsimpson-aus.qualcomm.com (HELO vu-tsimpson1-aus.qualcomm.com) ([10.222.150.1]) by ironmsg-SD-alpha.qualcomm.com with ESMTP; 28 Sep 2020 10:29:03 -0700 Received: by vu-tsimpson1-aus.qualcomm.com (Postfix, from userid 47164) id CE5B9FE5; Mon, 28 Sep 2020 12:29:03 -0500 (CDT) From: Taylor Simpson To: qemu-devel@nongnu.org Subject: [RFC PATCH v4 16/29] Hexagon (target/hexagon/imported) arch import Date: Mon, 28 Sep 2020 12:28:45 -0500 Message-Id: <1601314138-9930-17-git-send-email-tsimpson@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1601314138-9930-1-git-send-email-tsimpson@quicinc.com> References: <1601314138-9930-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-detected-operating-system: by eggs.gnu.org: First seen = 2020/09/28 13:29:03 X-ACL-Warn: Detected OS = FreeBSD 9.x or newer [fuzzy] 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.199, 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, riku.voipio@iki.fi, richard.henderson@linaro.org, laurent@vivier.eu, tsimpson@quicinc.com, philmd@redhat.com, aleksandar.m.mail@gmail.com 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 L2hleGFnb24vaW1wb3J0ZWQvYWx1LmlkZWYgICAgICAgICAgIHwgMTI1OSArKysrKysrKysrKysr KysrKwogdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvYnJhbmNoLmlkZWYgICAgICAgIHwgIDMyOCAr KysrKwogdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvY29tcGFyZS5pZGVmICAgICAgIHwgIDYyMSAr KysrKysrKwogdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvZW5jb2RlLmRlZiAgICAgICAgIHwgIDEy NSArKwogdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvZW5jb2RlX3BwLmRlZiAgICAgIHwgMjExMCAr KysrKysrKysrKysrKysrKysrKysrKysrKysrCiB0YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9lbmNv ZGVfc3ViaW5zbi5kZWYgfCAgMTUwICsrCiB0YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9mbG9hdC5p ZGVmICAgICAgICAgfCAgMzEzICsrKysrCiB0YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9sZHN0Lmlk ZWYgICAgICAgICAgfCAgMjg2ICsrKysKIHRhcmdldC9oZXhhZ29uL2ltcG9ydGVkL21hY3Jvcy5k ZWYgICAgICAgICB8IDE1MjkgKysrKysrKysrKysrKysrKysrKysKIHRhcmdldC9oZXhhZ29uL2lt cG9ydGVkL21weS5pZGVmICAgICAgICAgICB8IDEyMTIgKysrKysrKysrKysrKysrKwogdGFyZ2V0 L2hleGFnb24vaW1wb3J0ZWQvc2hpZnQuaWRlZiAgICAgICAgIHwgMTA2NyArKysrKysrKysrKysr KwogdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvc3ViaW5zbnMuaWRlZiAgICAgIHwgIDE1MiArKwog dGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvc3lzdGVtLmlkZWYgICAgICAgIHwgICA2OSArCiAxNCBm aWxlcyBjaGFuZ2VkLCA5MjUxIGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0YXJn ZXQvaGV4YWdvbi9pbXBvcnRlZC9hbGxpZGVmcy5kZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0YXJn ZXQvaGV4YWdvbi9pbXBvcnRlZC9hbHUuaWRlZgogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9o ZXhhZ29uL2ltcG9ydGVkL2JyYW5jaC5pZGVmCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0L2hl eGFnb24vaW1wb3J0ZWQvY29tcGFyZS5pZGVmCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0L2hl eGFnb24vaW1wb3J0ZWQvZW5jb2RlLmRlZgogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhh Z29uL2ltcG9ydGVkL2VuY29kZV9wcC5kZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0YXJnZXQvaGV4 YWdvbi9pbXBvcnRlZC9lbmNvZGVfc3ViaW5zbi5kZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0YXJn ZXQvaGV4YWdvbi9pbXBvcnRlZC9mbG9hdC5pZGVmCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0 L2hleGFnb24vaW1wb3J0ZWQvbGRzdC5pZGVmCiBjcmVhdGUgbW9kZSAxMDA3NTUgdGFyZ2V0L2hl eGFnb24vaW1wb3J0ZWQvbWFjcm9zLmRlZgogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhh Z29uL2ltcG9ydGVkL21weS5pZGVmCiBjcmVhdGUgbW9kZSAxMDA2NDQgdGFyZ2V0L2hleGFnb24v aW1wb3J0ZWQvc2hpZnQuaWRlZgogY3JlYXRlIG1vZGUgMTAwNjQ0IHRhcmdldC9oZXhhZ29uL2lt cG9ydGVkL3N1Ymluc25zLmlkZWYKIGNyZWF0ZSBtb2RlIDEwMDY0NCB0YXJnZXQvaGV4YWdvbi9p bXBvcnRlZC9zeXN0ZW0uaWRlZgoKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVk L2FsbGlkZWZzLmRlZiBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2FsbGlkZWZzLmRlZgpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42MzM5YzEwCi0tLSAvZGV2L251bGwKKysr IGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvYWxsaWRlZnMuZGVmCkBAIC0wLDAgKzEsMzAgQEAK Ky8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMCBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRl ciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJl ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0 IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp b24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2 ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQor ICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisgKi8KKworLyoKKyAqIFRvcCBsZXZlbCBpbnN0cnVjdGlvbiBkZWZp bml0aW9uIGZpbGUKKyAqLworCisjaW5jbHVkZSAiYnJhbmNoLmlkZWYiCisjaW5jbHVkZSAibGRz dC5pZGVmIgorI2luY2x1ZGUgImNvbXBhcmUuaWRlZiIKKyNpbmNsdWRlICJtcHkuaWRlZiIKKyNp bmNsdWRlICJhbHUuaWRlZiIKKyNpbmNsdWRlICJmbG9hdC5pZGVmIgorI2luY2x1ZGUgInNoaWZ0 LmlkZWYiCisjaW5jbHVkZSAic3lzdGVtLmlkZWYiCisjaW5jbHVkZSAic3ViaW5zbnMuaWRlZiIK ZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2FsdS5pZGVmIGIvdGFyZ2V0L2hl eGFnb24vaW1wb3J0ZWQvYWx1LmlkZWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uOGMwODA0ZQotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2Fs dS5pZGVmCkBAIC0wLDAgKzEsMTI1OSBAQAorLyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIw IFF1YWxjb21tIElubm92YXRpb24gQ2VudGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisg KgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0 ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChh dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBp cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1 dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ T1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlm IG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisvKgorICog QUxVIEluc3RydWN0aW9ucworICovCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisvKiBBZGQvU3ViIGluc3RydWN0aW9ucwkJICAgICAgICovCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNO KEEyX2FkZCwiUmQzMj1hZGQoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkFkZCAzMi1iaXQgcmVn aXN0ZXJzIiwKK3sgUmRWPVJzVitSdFY7fSkKKworUTZJTlNOKEEyX3N1YiwiUmQzMj1zdWIoUnQz MixSczMyKSIsQVRUUklCUygpLAorIlN1YnRyYWN0IDMyLWJpdCByZWdpc3RlcnMiLAoreyBSZFY9 UnRWLVJzVjt9KQorCisjZGVmaW5lIENPTkRfQUxVKFRBRyxPUEVSLERFU0NSLFNFTUFOVElDUylc CitRNklOU04oVEFHIyN0LCJpZiAoUHU0KSAiT1BFUixBVFRSSUJTKEFfQVJDSFYyKSxERVNDUix7 aWYoZkxTQk9MRChQdVYpKXtTRU1BTlRJQ1M7fSBlbHNlIHtDQU5DRUw7fX0pXAorUTZJTlNOKFRB RyMjZiwiaWYgKCFQdTQpICJPUEVSLEFUVFJJQlMoQV9BUkNIVjIpLERFU0NSLHtpZihmTFNCT0xE Tk9UKFB1Vikpe1NFTUFOVElDUzt9IGVsc2Uge0NBTkNFTDt9fSlcCitRNklOU04oVEFHIyN0bmV3 LCJpZiAoUHU0Lm5ldykgIiBPUEVSLEFUVFJJQlMoQV9BUkNIVjIpLERFU0NSLHtpZihmTFNCTkVX KFB1Tikpe1NFTUFOVElDUzt9IGVsc2Uge0NBTkNFTDt9fSlcCitRNklOU04oVEFHIyNmbmV3LCJp ZiAoIVB1NC5uZXcpICJPUEVSLEFUVFJJQlMoQV9BUkNIVjIpLERFU0NSLHtpZihmTFNCTkVXTk9U KFB1Tikpe1NFTUFOVElDUzt9IGVsc2Uge0NBTkNFTDt9fSkKKworQ09ORF9BTFUoQTJfcGFkZCwi UmQzMj1hZGQoUnMzMixSdDMyKSIsIkNvbmRpdGlvbmFsbHkgQWRkIDMyLWJpdCByZWdpc3RlcnMi LFJkVj1Sc1YrUnRWKQorQ09ORF9BTFUoQTJfcHN1YiwiUmQzMj1zdWIoUnQzMixSczMyKSIsIkNv bmRpdGlvbmFsbHkgU3VidHJhY3QgMzItYml0IHJlZ2lzdGVycyIsUmRWPVJ0Vi1Sc1YpCitDT05E X0FMVShBMl9wYWRkaSwiUmQzMj1hZGQoUnMzMiwjczgpIiwiQ29uZGl0aW9uYWxseSBBZGQgUmVn aXN0ZXIgYW5kIGltbWVkaWF0ZSIsZklNTUVYVChzaVYpOyBSZFY9UnNWK3NpVikKK0NPTkRfQUxV KEEyX3B4b3IsIlJkMzI9eG9yKFJzMzIsUnQzMikiLCJDb25kaXRpb25hbGx5IFhPUiByZWdpc3Rl cnMiLFJkVj1Sc1ZeUnRWKTsKK0NPTkRfQUxVKEEyX3BhbmQsIlJkMzI9YW5kKFJzMzIsUnQzMiki LCJDb25kaXRpb25hbGx5IEFORCByZWdpc3RlcnMiLFJkVj1Sc1YmUnRWKTsKK0NPTkRfQUxVKEEy X3BvciwiUmQzMj1vcihSczMyLFJ0MzIpIiwiQ29uZGl0aW9uYWxseSBPUiByZWdpc3RlcnMiLFJk Vj1Sc1Z8UnRWKTsKKworQ09ORF9BTFUoQTRfcHN4dGIsIlJkMzI9c3h0YihSczMyKSIsIkNvbmRp dGlvbmFsbHkgc2lnbi1leHRlbmQgYnl0ZSIsIFJkVj1mU1hUTig4LDMyLFJzVikpOworQ09ORF9B TFUoQTRfcHp4dGIsIlJkMzI9enh0YihSczMyKSIsIkNvbmRpdGlvbmFsbHkgemVyby1leHRlbmQg Ynl0ZSIsIFJkVj1mWlhUTig4LDMyLFJzVikpOworQ09ORF9BTFUoQTRfcHN4dGgsIlJkMzI9c3h0 aChSczMyKSIsIkNvbmRpdGlvbmFsbHkgc2lnbi1leHRlbmQgaGFsZndvcmQiLCBSZFY9ZlNYVE4o MTYsMzIsUnNWKSk7CitDT05EX0FMVShBNF9wenh0aCwiUmQzMj16eHRoKFJzMzIpIiwiQ29uZGl0 aW9uYWxseSB6ZXJvLWV4dGVuZCBoYWxmd29yZCIsIFJkVj1mWlhUTigxNiwzMixSc1YpKTsKK0NP TkRfQUxVKEE0X3Bhc2xoLCJSZDMyPWFzbGgoUnMzMikiLCJDb25kaXRpb25hbGx5IHplcm8tZXh0 ZW5kIGhhbGZ3b3JkIiwgUmRWPVJzVjw8MTYpOworQ09ORF9BTFUoQTRfcGFzcmgsIlJkMzI9YXNy aChSczMyKSIsIkNvbmRpdGlvbmFsbHkgemVyby1leHRlbmQgaGFsZndvcmQiLCBSZFY9UnNWPj4x Nik7CisKKworUTZJTlNOKEEyX2FkZHNhdCwiUmQzMj1hZGQoUnMzMixSdDMyKTpzYXQiLEFUVFJJ QlMoKSwKKyJBZGQgMzItYml0IHJlZ2lzdGVycyB3aXRoIHNhdHVyYXRpb24iLAoreyBSZFY9ZlNB VChmU0UzMl82NChSc1YpK2ZTRTMyXzY0KFJ0VikpOyB9KQorCitRNklOU04oQTJfc3Vic2F0LCJS ZDMyPXN1YihSdDMyLFJzMzIpOnNhdCIsQVRUUklCUygpLAorIlN1YnRyYWN0IDMyLWJpdCByZWdp c3RlcnMgd2l0aCBzYXR1cmF0aW9uIiwKK3sgUmRWPWZTQVQoZlNFMzJfNjQoUnRWKSAtIGZTRTMy XzY0KFJzVikpOyB9KQorCisKK1E2SU5TTihBMl9hZGRpLCJSZDMyPWFkZChSczMyLCNzMTYpIixB VFRSSUJTKCksCisiQWRkIGEgc2lnbmVkIGltbWVkaWF0ZSB0byBhIHJlZ2lzdGVyIiwKK3sgZklN TUVYVChzaVYpOyBSZFY9UnNWK3NpVjt9KQorCisKK1E2SU5TTihDNF9hZGRpcGMsIlJkMzI9YWRk KHBjLCN1NikiLEFUVFJJQlMoKSwKKyJBZGQgaW1tZWRpYXRlIHRvIFBDIiwKK3sgUmRWPWZSRUFE X1BDKCkrZklNTUVYVCh1aVYpO30pCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKy8qIFNpbmdsZS1wcmVjaXNpb24gSEwgZm9ybXMJCSAgKi8K Ky8qIFRoZXNlIGluc25zIGFuZCB0aGUgU1AgbXB5IGFyZSB0aGUgb25lcyAgICAqLworLyogdGhh dCBjYW4gZG8gLkhMIHN0dWZmCQkgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisjZGVmaW5lIFNURF9ITF9JTlNOKFRBRyxPUEVSLEFPUEVS LEFUUixTRU0pXAorUTZJTlNOKEEyXyMjVEFHIyNfbGwsIE9QRVIiKFJ0LkwzMixScy5MMzIpIkFP UEVSLCAgICBBVFIsIiIse1NFTShmR0VUSEFMRigwLFJ0ViksZkdFVEhBTEYoMCxSc1YpKTt9KVwK K1E2SU5TTihBMl8jI1RBRyMjX2xoLCBPUEVSIihSdC5MMzIsUnMuSDMyKSJBT1BFUiwgICAgQVRS LCIiLHtTRU0oZkdFVEhBTEYoMCxSdFYpLGZHRVRIQUxGKDEsUnNWKSk7fSlcCitRNklOU04oQTJf IyNUQUcjI19obCwgT1BFUiIoUnQuSDMyLFJzLkwzMikiQU9QRVIsICAgIEFUUiwiIix7U0VNKGZH RVRIQUxGKDEsUnRWKSxmR0VUSEFMRigwLFJzVikpO30pXAorUTZJTlNOKEEyXyMjVEFHIyNfaGgs IE9QRVIiKFJ0LkgzMixScy5IMzIpIkFPUEVSLCAgICBBVFIsIiIse1NFTShmR0VUSEFMRigxLFJ0 ViksZkdFVEhBTEYoMSxSc1YpKTt9KQorCisjZGVmaW5lIFNVQlNURF9ITF9JTlNOKFRBRyxPUEVS LEFPUEVSLEFUUixTRU0pXAorUTZJTlNOKEEyXyMjVEFHIyNfbGwsIE9QRVIiKFJ0LkwzMixScy5M MzIpIkFPUEVSLCAgICBBVFIsIiIse1NFTShmR0VUSEFMRigwLFJ0ViksZkdFVEhBTEYoMCxSc1Yp KTt9KVwKK1E2SU5TTihBMl8jI1RBRyMjX2hsLCBPUEVSIihSdC5MMzIsUnMuSDMyKSJBT1BFUiwg ICAgQVRSLCIiLHtTRU0oZkdFVEhBTEYoMCxSdFYpLGZHRVRIQUxGKDEsUnNWKSk7fSkKKworCisj dW5kZWYgSExTRU0KKyNkZWZpbmUgSExTRU0oQSxCKSBSZFY9ZlNYVE4oMTYsMzIsKEErQikpCitT VUJTVERfSExfSU5TTihhZGRoX2wxNiwiUmQzMj1hZGQiLCIiLEFUVFJJQlMoKSxITFNFTSkKKwor I3VuZGVmIEhMU0VNCisjZGVmaW5lIEhMU0VNKEEsQikgUmRWPWZTQVRIKEErQikKK1NVQlNURF9I TF9JTlNOKGFkZGhfbDE2X3NhdCwiUmQzMj1hZGQiLCI6c2F0IixBVFRSSUJTKCksSExTRU0pCisK KyN1bmRlZiBITFNFTQorI2RlZmluZSBITFNFTShBLEIpIFJkVj1mU1hUTigxNiwzMiwoQS1CKSkK K1NVQlNURF9ITF9JTlNOKHN1YmhfbDE2LCJSZDMyPXN1YiIsIiIsQVRUUklCUygpLEhMU0VNKQor CisjdW5kZWYgSExTRU0KKyNkZWZpbmUgSExTRU0oQSxCKSBSZFY9ZlNBVEgoQS1CKQorU1VCU1RE X0hMX0lOU04oc3ViaF9sMTZfc2F0LCJSZDMyPXN1YiIsIjpzYXQiLEFUVFJJQlMoKSxITFNFTSkK KworI3VuZGVmIEhMU0VNCisjZGVmaW5lIEhMU0VNKEEsQikgUmRWPShBK0IpPDwxNgorU1REX0hM X0lOU04oYWRkaF9oMTYsIlJkMzI9YWRkIiwiOjw8MTYiLEFUVFJJQlMoKSxITFNFTSkKKworI3Vu ZGVmIEhMU0VNCisjZGVmaW5lIEhMU0VNKEEsQikgUmRWPShmU0FUSChBK0IpKTw8MTYKK1NURF9I TF9JTlNOKGFkZGhfaDE2X3NhdCwiUmQzMj1hZGQiLCI6c2F0Ojw8MTYiLEFUVFJJQlMoKSxITFNF TSkKKworI3VuZGVmIEhMU0VNCisjZGVmaW5lIEhMU0VNKEEsQikgUmRWPShBLUIpPDwxNgorU1RE X0hMX0lOU04oc3ViaF9oMTYsIlJkMzI9c3ViIiwiOjw8MTYiLEFUVFJJQlMoKSxITFNFTSkKKwor I3VuZGVmIEhMU0VNCisjZGVmaW5lIEhMU0VNKEEsQikgUmRWPShmU0FUSChBLUIpKTw8MTYKK1NU RF9ITF9JTlNOKHN1YmhfaDE2X3NhdCwiUmQzMj1zdWIiLCI6c2F0Ojw8MTYiLEFUVFJJQlMoKSxI TFNFTSkKKworCisKKworUTZJTlNOKEEyX2FzbGgsIlJkMzI9YXNsaChSczMyKSIsQVRUUklCUygp LAorIkFyaXRobWV0aWMgU2hpZnQgTGVmdCBieSBIYWxmd29yZCIseyBSZFY9UnNWPDwxNjsgfSkK KworUTZJTlNOKEEyX2FzcmgsIlJkMzI9YXNyaChSczMyKSIsQVRUUklCUygpLAorIkFyaXRobWV0 aWMgU2hpZnQgUmlnaHQgYnkgSGFsZndvcmQiLHsgUmRWPVJzVj4+MTY7IH0pCisKKworLyogNjQt Yml0IHZlcnNpb25zICovCisKK1E2SU5TTihBMl9hZGRwLCJSZGQzMj1hZGQoUnNzMzIsUnR0MzIp IixBVFRSSUJTKCksCisiQWRkIiwKK3sgUmRkVj1Sc3NWK1J0dFY7fSkKKworUTZJTlNOKEEyX2Fk ZHBzYXQsIlJkZDMyPWFkZChSc3MzMixSdHQzMik6c2F0IixBVFRSSUJTKEFfQVJDSFYzKSwKKyJB ZGQiLAoreyBmQUREU0FUNjQoUmRkVixSc3NWLFJ0dFYpO30pCisKK1E2SU5TTihBMl9hZGRzcGws IlJkZDMyPWFkZChSc3MzMixSdHQzMik6cmF3OmxvIixBVFRSSUJTKEFfQVJDSFYzKSwKKyJBZGQi LAoreyBSZGRWPVJ0dFYrZlNYVE4oMzIsNjQsZkdFVFdPUkQoMCxSc3NWKSk7fSkKKworUTZJTlNO KEEyX2FkZHNwaCwiUmRkMzI9YWRkKFJzczMyLFJ0dDMyKTpyYXc6aGkiLEFUVFJJQlMoQV9BUkNI VjMpLAorIkFkZCIsCit7IFJkZFY9UnR0VitmU1hUTigzMiw2NCxmR0VUV09SRCgxLFJzc1YpKTt9 KQorCitRNklOU04oQTJfc3VicCwiUmRkMzI9c3ViKFJ0dDMyLFJzczMyKSIsQVRUUklCUygpLAor IlN1YiIsCit7IFJkZFY9UnR0Vi1Sc3NWO30pCisKKy8qIE5FRyBhbmQgQUJTICovCisKK1E2SU5T TihBMl9uZWdzYXQsIlJkMzI9bmVnKFJzMzIpOnNhdCIsQVRUUklCUygpLAorIkFyaXRobWV0aWMg bmVnYXRlIHJlZ2lzdGVyIiwgeyBSZFYgPSBmU0FUKC1mQ0FTVDhzKFJzVikpOyB9KQorCitRNklO U04oQTJfYWJzLCJSZDMyPWFicyhSczMyKSIsQVRUUklCUygpLAorIkFic29sdXRlIFZhbHVlIHJl Z2lzdGVyIiwgeyBSZFYgPSBmQUJTKFJzVik7IH0pCisKK1E2SU5TTihBMl9hYnNzYXQsIlJkMzI9 YWJzKFJzMzIpOnNhdCIsQVRUUklCUygpLAorIkFyaXRobWV0aWMgbmVnYXRlIHJlZ2lzdGVyIiwg eyBSZFYgPSBmU0FUKGZBQlMoZkNBU1Q0XzhzKFJzVikpKTsgfSkKKworUTZJTlNOKEEyX3Zjb25q LCJSZGQzMj12Y29uaihSc3MzMik6c2F0IixBVFRSSUJTKEFfQVJDSFYyKSwKKyJWZWN0b3IgQ29t cGxleCBjb25qdWdhdGUgb2YgUnNzIiwKK3sgIGZTRVRIQUxGKDEsUmRkVixmU0FUTigxNiwtZkdF VEhBTEYoMSxSc3NWKSkpOworICAgZlNFVEhBTEYoMCxSZGRWLGZHRVRIQUxGKDAsUnNzVikpOwor ICAgZlNFVEhBTEYoMyxSZGRWLGZTQVROKDE2LC1mR0VUSEFMRigzLFJzc1YpKSk7CisgICBmU0VU SEFMRigyLFJkZFYsZkdFVEhBTEYoMixSc3NWKSk7Cit9KQorCisKKy8qIDY0LWJpdCB2ZXJzaW9u cyAqLworCitRNklOU04oQTJfbmVncCwiUmRkMzI9bmVnKFJzczMyKSIsQVRUUklCUygpLAorIkFy aXRobWV0aWMgbmVnYXRlIHJlZ2lzdGVyIiwgeyBSZGRWID0gLVJzc1Y7IH0pCisKK1E2SU5TTihB Ml9hYnNwLCJSZGQzMj1hYnMoUnNzMzIpIixBVFRSSUJTKCksCisiQWJzb2x1dGUgVmFsdWUgcmVn aXN0ZXIiLCB7IFJkZFYgPSBmQUJTKFJzc1YpOyB9KQorCisKKy8qIE1JTiBhbmQgTUFYICBSICov CisKK1E2SU5TTihBMl9tYXgsIlJkMzI9bWF4KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJNYXhp bXVtIG9mIHR3byByZWdpc3RlcnMiLAoreyBSZFYgPSBmTUFYKFJzVixSdFYpOyB9KQorCitRNklO U04oQTJfbWF4dSwiUmQzMj1tYXh1KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJNYXhpbXVtIG9m IHR3byByZWdpc3RlcnMgKHVuc2lnbmVkKSIsCit7IFJkViA9IGZNQVgoZkNBU1Q0dShSc1YpLGZD QVNUNHUoUnRWKSk7IH0pCisKK1E2SU5TTihBMl9taW4sIlJkMzI9bWluKFJ0MzIsUnMzMikiLEFU VFJJQlMoKSwKKyJNaW5pbXVtIG9mIHR3byByZWdpc3RlcnMiLAoreyBSZFYgPSBmTUlOKFJ0VixS c1YpOyB9KQorCitRNklOU04oQTJfbWludSwiUmQzMj1taW51KFJ0MzIsUnMzMikiLEFUVFJJQlMo KSwKKyJNaW5pbXVtIG9mIHR3byByZWdpc3RlcnMgKHVuc2lnbmVkKSIsCit7IFJkViA9IGZNSU4o ZkNBU1Q0dShSdFYpLGZDQVNUNHUoUnNWKSk7IH0pCisKKy8qIE1JTiBhbmQgTUFYIFBhaXJzICov CisjaWYgMQorUTZJTlNOKEEyX21heHAsIlJkZDMyPW1heChSc3MzMixSdHQzMikiLEFUVFJJQlMo QV9BUkNIVjMpLAorIk1heGltdW0gb2YgdHdvIHJlZ2lzdGVyIHBhaXJzIiwKK3sgUmRkViA9IGZN QVgoUnNzVixSdHRWKTsgfSkKKworUTZJTlNOKEEyX21heHVwLCJSZGQzMj1tYXh1KFJzczMyLFJ0 dDMyKSIsQVRUUklCUyhBX0FSQ0hWMyksCisiTWF4aW11bSBvZiB0d28gcmVnaXN0ZXIgcGFpcnMg KHVuc2lnbmVkKSIsCit7IFJkZFYgPSBmTUFYKGZDQVNUOHUoUnNzViksZkNBU1Q4dShSdHRWKSk7 IH0pCisKK1E2SU5TTihBMl9taW5wLCJSZGQzMj1taW4oUnR0MzIsUnNzMzIpIixBVFRSSUJTKEFf QVJDSFYzKSwKKyJNaW5pbXVtIG9mIHR3byByZWdpc3RlciBwYWlycyIsCit7IFJkZFYgPSBmTUlO KFJ0dFYsUnNzVik7IH0pCisKK1E2SU5TTihBMl9taW51cCwiUmRkMzI9bWludShSdHQzMixSc3Mz MikiLEFUVFJJQlMoQV9BUkNIVjMpLAorIk1pbmltdW0gb2YgdHdvIHJlZ2lzdGVyIHBhaXJzICh1 bnNpZ25lZCkiLAoreyBSZGRWID0gZk1JTihmQ0FTVDh1KFJ0dFYpLGZDQVNUOHUoUnNzVikpOyB9 KQorI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworLyogUmVnaXN0ZXIgYW5kIEltbWVkaWF0ZSBUcmFuc2ZlcnMJICAgKi8KKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitRNklOU04oQTJfbm9w LCJub3AiLEFUVFJJQlMoQV9JVF9OT1ApLAorIk5vcCAoMzItYml0IGVuY29kaW5nKSIsCisgZkhJ REUoIHsgfSAgKSkKKworCitRNklOU04oQTRfZXh0LCJpbW1leHQoI3UyNjo2KSIsQVRUUklCUyhB X0lUX0VYVEVOREVSKSwKKyJUaGlzIGluc3RydWN0aW9uIGNhcnJpZXMgdGhlIDI2IG1vc3Qtc2ln bmlmaWNhbnQgaW1tZWRpYXRlIGJpdHMgZm9yIHRoZSBuZXh0IGluc3RydWN0aW9uIiwKK3sgZkhJ REUoKTsgfSkKKworCitRNklOU04oQTJfdGZyLCJSZDMyPVJzMzIiLEFUVFJJQlMoKSwKKyJ0ZnIg cmVnaXN0ZXIiLHsgUmRWPVJzVjt9KQorCitRNklOU04oQTJfdGZyc2ksIlJkMzI9I3MxNiIsQVRU UklCUygpLAorInRyYW5zZmVyIHNpZ25lZCBpbW1lZGlhdGUgdG8gcmVnaXN0ZXIiLHsgZklNTUVY VChzaVYpOyBSZFY9c2lWO30pCisKK1E2SU5TTihBMl9zeHRiLCJSZDMyPXN4dGIoUnMzMikiLEFU VFJJQlMoKSwKKyJTaWduIGV4dGVuZCBieXRlIiwge1JkViA9IGZTWFROKDgsMzIsUnNWKTt9KQor CitRNklOU04oQTJfenh0aCwiUmQzMj16eHRoKFJzMzIpIixBVFRSSUJTKCksCisiWmVybyBleHRl bmQgaGFsZiIsIHtSZFYgPSBmWlhUTigxNiwzMixSc1YpO30pCisKK1E2SU5TTihBMl9zeHRoLCJS ZDMyPXN4dGgoUnMzMikiLEFUVFJJQlMoKSwKKyJTaWduIGV4dGVuZCBoYWxmIiwge1JkViA9IGZT WFROKDE2LDMyLFJzVik7fSkKKworUTZJTlNOKEEyX2NvbWJpbmV3LCJSZGQzMj1jb21iaW5lKFJz MzIsUnQzMikiLEFUVFJJQlMoKSwKKyJDb21iaW5lIHR3byB3b3JkcyBpbnRvIGEgcmVnaXN0ZXIg cGFpciIsCit7IGZTRVRXT1JEKDAsUmRkVixSdFYpOworICBmU0VUV09SRCgxLFJkZFYsUnNWKTsK K30pCisKK1E2SU5TTihBNF9jb21iaW5lcmksIlJkZDMyPWNvbWJpbmUoUnMzMiwjczgpIixBVFRS SUJTKCksCisiQ29tYmluZSBhIHdvcmQgYW5kIGFuIGltbWVkaWF0ZSBpbnRvIGEgcmVnaXN0ZXIg cGFpciIsCit7IGZJTU1FWFQoc2lWKTsgZlNFVFdPUkQoMCxSZGRWLHNpVik7CisgIGZTRVRXT1JE KDEsUmRkVixSc1YpOworfSkKKworUTZJTlNOKEE0X2NvbWJpbmVpciwiUmRkMzI9Y29tYmluZSgj czgsUnMzMikiLEFUVFJJQlMoKSwKKyJDb21iaW5lIGEgd29yZCBhbmQgYW4gaW1tZWRpYXRlIGlu dG8gYSByZWdpc3RlciBwYWlyIiwKK3sgZklNTUVYVChzaVYpOyBmU0VUV09SRCgwLFJkZFYsUnNW KTsKKyAgZlNFVFdPUkQoMSxSZGRWLHNpVik7Cit9KQorCisKKworUTZJTlNOKEEyX2NvbWJpbmVp aSwiUmRkMzI9Y29tYmluZSgjczgsI1M4KSIsQVRUUklCUyhBX0FSQ0hWMiksCisiU2V0IHR3byBz bWFsbCBpbW1lZGlhdGVzIiwKK3sgZklNTUVYVChzaVYpOyBmU0VUV09SRCgwLFJkZFYsU2lWKTsg ZlNFVFdPUkQoMSxSZGRWLHNpVik7IH0pCisKK1E2SU5TTihBNF9jb21iaW5laWksIlJkZDMyPWNv bWJpbmUoI3M4LCNVNikiLEFUVFJJQlMoKSwiU2V0IHR3byBzbWFsbCBpbW1lZGlhdGVzIiwKK3sg ZklNTUVYVChVaVYpOyBmU0VUV09SRCgwLFJkZFYsVWlWKTsgZlNFVFdPUkQoMSxSZGRWLHNpVik7 IH0pCisKKworUTZJTlNOKEEyX2NvbWJpbmVfaGgsIlJkMzI9Y29tYmluZShSdC5IMzIsUnMuSDMy KSIsQVRUUklCUygpLAorIkNvbWJpbmUgdHdvIGhhbGZzIGludG8gYSByZWdpc3RlciIsIHtSZFYg PSAoZkdFVFVIQUxGKDEsUnRWKTw8MTYpIHwgZkdFVFVIQUxGKDEsUnNWKTt9KQorCitRNklOU04o QTJfY29tYmluZV9obCwiUmQzMj1jb21iaW5lKFJ0LkgzMixScy5MMzIpIixBVFRSSUJTKCksCisi Q29tYmluZSB0d28gaGFsZnMgaW50byBhIHJlZ2lzdGVyIiwge1JkViA9IChmR0VUVUhBTEYoMSxS dFYpPDwxNikgfCBmR0VUVUhBTEYoMCxSc1YpO30pCisKK1E2SU5TTihBMl9jb21iaW5lX2xoLCJS ZDMyPWNvbWJpbmUoUnQuTDMyLFJzLkgzMikiLEFUVFJJQlMoKSwKKyJDb21iaW5lIHR3byBoYWxm cyBpbnRvIGEgcmVnaXN0ZXIiLCB7UmRWID0gKGZHRVRVSEFMRigwLFJ0Vik8PDE2KSB8IGZHRVRV SEFMRigxLFJzVik7fSkKKworUTZJTlNOKEEyX2NvbWJpbmVfbGwsIlJkMzI9Y29tYmluZShSdC5M MzIsUnMuTDMyKSIsQVRUUklCUygpLAorIkNvbWJpbmUgdHdvIGhhbGZzIGludG8gYSByZWdpc3Rl ciIsIHtSZFYgPSAoZkdFVFVIQUxGKDAsUnRWKTw8MTYpIHwgZkdFVFVIQUxGKDAsUnNWKTt9KQor CitRNklOU04oQTJfdGZyaWwsIlJ4LkwzMj0jdTE2IixBVFRSSUJTKCksCisiU2V0IGxvdyAxNi1i aXRzLCBsZWF2ZSB1cHBlciAxNiB1bmNoYW5nZWQiLHsgZlNFVEhBTEYoMCxSeFYsdWlWKTt9KQor CitRNklOU04oQTJfdGZyaWgsIlJ4LkgzMj0jdTE2IixBVFRSSUJTKCksCisiU2V0IGhpZ2ggMTYt Yml0cywgbGVhdmUgbG93IDE2IHVuY2hhbmdlZCIseyBmU0VUSEFMRigxLFJ4Vix1aVYpO30pCisK K1E2SU5TTihBMl90ZnJjcnIsIlJkMzI9Q3MzMiIsQVRUUklCUygpLAorInRyYW5zZmVyIGNvbnRy b2wgcmVnaXN0ZXIgdG8gZ2VuZXJhbCByZWdpc3RlciIseyBSZFY9Q3NWO30pCisKK1E2SU5TTihB Ml90ZnJyY3IsIkNkMzI9UnMzMiIsQVRUUklCUygpLAorInRyYW5zZmVyIGdlbmVyYWwgcmVnaXN0 ZXIgdG8gY29udHJvbCByZWdpc3RlciIseyBDZFY9UnNWO30pCisKK1E2SU5TTihBNF90ZnJjcHAs IlJkZDMyPUNzczMyIixBVFRSSUJTKCksCisidHJhbnNmZXIgY29udHJvbCByZWdpc3RlciB0byBn ZW5lcmFsIHJlZ2lzdGVyIix7IFJkZFY9Q3NzVjt9KQorCitRNklOU04oQTRfdGZycGNwLCJDZGQz Mj1Sc3MzMiIsQVRUUklCUygpLAorInRyYW5zZmVyIGdlbmVyYWwgcmVnaXN0ZXIgdG8gY29udHJv bCByZWdpc3RlciIseyBDZGRWPVJzc1Y7fSkKKworCisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KKy8qIExvZ2ljYWxzCQkJCSAgICovCisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNOKEEyX2FuZCwi UmQzMj1hbmQoUnMzMixSdDMyKSIsQVRUUklCUygpLAorImxvZ2ljYWwgQU5EIix7IFJkVj1Sc1Ym UnRWO30pCisKK1E2SU5TTihBMl9vciwiUmQzMj1vcihSczMyLFJ0MzIpIixBVFRSSUJTKCksCisi bG9naWNhbCBPUiIseyBSZFY9UnNWfFJ0Vjt9KQorCitRNklOU04oQTJfeG9yLCJSZDMyPXhvcihS czMyLFJ0MzIpIixBVFRSSUJTKCksCisibG9naWNhbCBYT1IiLHsgUmRWPVJzVl5SdFY7fSkKKwor UTZJTlNOKE0yX3hvcl94YWNjLCJSeDMyXj14b3IoUnMzMixSdDMyKSIsQVRUUklCUyhBX0FSQ0hW MiksCisibG9naWNhbCBYT1Igd2l0aCBYT1IgYWNjdW11bGF0aW9uIix7IFJ4Vl49UnNWXlJ0Vjt9 KQorCitRNklOU04oTTRfeG9yX3hhY2MsIlJ4eDMyXj14b3IoUnNzMzIsUnR0MzIpIiwsCisibG9n aWNhbCBYT1Igd2l0aCBYT1IgYWNjdW11bGF0aW9uIix7IFJ4eFZePVJzc1ZeUnR0Vjt9KQorCisK KworUTZJTlNOKEE0X2FuZG4sIlJkMzI9YW5kKFJ0MzIsflJzMzIpIiwsCisiQW5kLU5vdCIsIHsg UmRWID0gKFJ0ViAmIH5Sc1YpOyB9KQorCitRNklOU04oQTRfb3JuLCJSZDMyPW9yKFJ0MzIsflJz MzIpIiwsCisiT3ItTm90IiwgeyBSZFYgPSAoUnRWIHwgflJzVik7IH0pCisKKworUTZJTlNOKEE0 X2FuZG5wLCJSZGQzMj1hbmQoUnR0MzIsflJzczMyKSIsLAorIkFuZC1Ob3QiLCB7IFJkZFYgPSAo UnR0ViAmIH5Sc3NWKTsgfSkKKworUTZJTlNOKEE0X29ybnAsIlJkZDMyPW9yKFJ0dDMyLH5Sc3Mz MikiLCwKKyJPci1Ob3QiLCB7IFJkZFYgPSAoUnR0ViB8IH5Sc3NWKTsgfSkKKworCisKKworLyoq KioqKioqKioqKioqKioqKioqLworLyogQ29tcG91bmQgYWRkLWFkZCAqLworLyoqKioqKioqKioq KioqKioqKioqLworCitRNklOU04oUzRfYWRkYWRkaSwiUmQzMj1hZGQoUnMzMixhZGQoUnUzMiwj czYpKSIsQVRUUklCUygpLAorCSIzLWlucHV0IGFkZCIsCisJeyBSZFYgPSBSc1YgKyBSdVYgKyBm SU1NRVhUKHNpVik7IH0pCisKKworUTZJTlNOKFM0X3N1YmFkZGksIlJkMzI9YWRkKFJzMzIsc3Vi KCNzNixSdTMyKSkiLEFUVFJJQlMoKSwKKwkiMy1pbnB1dCBzdWIiLAorCXsgUmRWID0gUnNWIC0g UnVWICsgZklNTUVYVChzaVYpOyB9KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisvKiBDb21wb3VuZCBsb2dpY2FsLWxvZ2ljYWwgKi8KKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqLworCitRNklOU04oTTRfYW5kX2FuZCwiUngzMiY9YW5kKFJzMzIsUnQzMikiLEFU VFJJQlMoKSwKKyJDb21wb3VuZCBBbmQtQW5kIiwgeyBSeFYgJj0gKFJzViAmIFJ0Vik7IH0pCisK K1E2SU5TTihNNF9hbmRfYW5kbiwiUngzMiY9YW5kKFJzMzIsflJ0MzIpIixBVFRSSUJTKCksCisi Q29tcG91bmQgQW5kLUFuZG4iLCB7IFJ4ViAmPSAoUnNWICYgflJ0Vik7IH0pCisKK1E2SU5TTihN NF9hbmRfb3IsIlJ4MzImPW9yKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJDb21wb3VuZCBBbmQt T3IiLCB7IFJ4ViAmPSAoUnNWIHwgUnRWKTsgfSkKKworUTZJTlNOKE00X2FuZF94b3IsIlJ4MzIm PXhvcihSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiQ29tcG91bmQgQW5kLXhvciIsIHsgUnhWICY9 IChSc1YgXiBSdFYpOyB9KQorCisKKworUTZJTlNOKE00X29yX2FuZCwiUngzMnw9YW5kKFJzMzIs UnQzMikiLEFUVFJJQlMoKSwKKyJDb21wb3VuZCBPci1BbmQiLCB7IFJ4ViB8PSAoUnNWICYgUnRW KTsgfSkKKworUTZJTlNOKE00X29yX2FuZG4sIlJ4MzJ8PWFuZChSczMyLH5SdDMyKSIsQVRUUklC UygpLAorIkNvbXBvdW5kIE9yLUFuZE4iLCB7IFJ4ViB8PSAoUnNWICYgflJ0Vik7IH0pCisKK1E2 SU5TTihNNF9vcl9vciwiUngzMnw9b3IoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkNvbXBvdW5k IE9yLU9yIiwgeyBSeFYgfD0gKFJzViB8IFJ0Vik7IH0pCisKK1E2SU5TTihNNF9vcl94b3IsIlJ4 MzJ8PXhvcihSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiQ29tcG91bmQgT3IteG9yIiwgeyBSeFYg fD0gKFJzViBeIFJ0Vik7IH0pCisKKworUTZJTlNOKFM0X29yX2FuZGl4LCJSeDMyPW9yKFJ1MzIs YW5kKFJ4MzIsI3MxMCkpIixBVFRSSUJTKCksCisiQ29tcG91bmQgT3ItQW5kIiwgeyBSeFYgPSBS dVYgfCAoUnhWICYgZklNTUVYVChzaVYpKTsgfSkKKworUTZJTlNOKFM0X29yX2FuZGksIlJ4MzJ8 PWFuZChSczMyLCNzMTApIixBVFRSSUJTKCksCisiQ29tcG91bmQgT3ItQW5kIiwgeyBSeFYgPSBS eFYgfCAoUnNWICYgZklNTUVYVChzaVYpKTsgfSkKKworUTZJTlNOKFM0X29yX29yaSwiUngzMnw9 b3IoUnMzMiwjczEwKSIsQVRUUklCUygpLAorIkNvbXBvdW5kIE9yLUFuZCIsIHsgUnhWID0gUnhW IHwgKFJzViB8IGZJTU1FWFQoc2lWKSk7IH0pCisKKworCisKK1E2SU5TTihNNF94b3JfYW5kLCJS eDMyXj1hbmQoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkNvbXBvdW5kIFhvci1BbmQiLCB7IFJ4 ViBePSAoUnNWICYgUnRWKTsgfSkKKworUTZJTlNOKE00X3hvcl9vciwiUngzMl49b3IoUnMzMixS dDMyKSIsQVRUUklCUygpLAorIkNvbXBvdW5kIFhvci1PciIsIHsgUnhWIF49IChSc1YgfCBSdFYp OyB9KQorCitRNklOU04oTTRfeG9yX2FuZG4sIlJ4MzJePWFuZChSczMyLH5SdDMyKSIsQVRUUklC UygpLAorIkNvbXBvdW5kIFhvci1BbmQiLCB7IFJ4ViBePSAoUnNWICYgflJ0Vik7IH0pCisKKwor CisKKworCitRNklOU04oQTJfc3VicmksIlJkMzI9c3ViKCNzMTAsUnMzMikiLEFUVFJJQlMoQV9B UkNIVjIpLAorIlN1YnRyYWN0IHJlZ2lzdGVyIGZyb20gaW1tZWRpYXRlIix7IGZJTU1FWFQoc2lW KTsgUmRWPXNpVi1Sc1Y7fSkKKworUTZJTlNOKEEyX2FuZGlyLCJSZDMyPWFuZChSczMyLCNzMTAp IixBVFRSSUJTKEFfQVJDSFYyKSwKKyJsb2dpY2FsIEFORCB3aXRoIGltbWVkaWF0ZSIseyBmSU1N RVhUKHNpVik7IFJkVj1Sc1Ymc2lWO30pCisKK1E2SU5TTihBMl9vcmlyLCJSZDMyPW9yKFJzMzIs I3MxMCkiLEFUVFJJQlMoQV9BUkNIVjIpLAorImxvZ2ljYWwgT1Igd2l0aCBpbW1lZGlhdGUiLHsg ZklNTUVYVChzaVYpOyBSZFY9UnNWfHNpVjt9KQorCisKKworCitRNklOU04oQTJfYW5kcCwiUmRk MzI9YW5kKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorImxvZ2ljYWwgQU5EIHBhaXIiLHsgUmRk Vj1Sc3NWJlJ0dFY7fSkKKworUTZJTlNOKEEyX29ycCwiUmRkMzI9b3IoUnNzMzIsUnR0MzIpIixB VFRSSUJTKCksCisibG9naWNhbCBPUiBwYWlyIix7IFJkZFY9UnNzVnxSdHRWO30pCisKK1E2SU5T TihBMl94b3JwLCJSZGQzMj14b3IoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisibG9naWNhbCBl WGNsdXNpdmUgT1IgcGFpciIseyBSZGRWPVJzc1ZeUnR0Vjt9KQorCitRNklOU04oQTJfbm90cCwi UmRkMzI9bm90KFJzczMyKSIsQVRUUklCUygpLAorImxvZ2ljYWwgTk9UIHBhaXIiLHsgUmRkVj1+ UnNzVjt9KQorCitRNklOU04oQTJfc3h0dywiUmRkMzI9c3h0dyhSczMyKSIsQVRUUklCUygpLAor IlNpZ24gZXh0ZW5kIDMyLWJpdCB3b3JkIHRvIDY0LWJpdCBwYWlyIiwKK3sgUmRkViA9IGZDQVNU NF84cyhSc1YpOyB9KQorCitRNklOU04oQTJfc2F0LCJSZDMyPXNhdChSc3MzMikiLEFUVFJJQlMo KSwKKyJTYXR1cmF0ZSB0byAzMi1iaXQgU2lnbmVkIiwKK3sgUmRWID0gZlNBVChSc3NWKTsgfSkK KworUTZJTlNOKEEyX3JvdW5kc2F0LCJSZDMyPXJvdW5kKFJzczMyKTpzYXQiLEFUVFJJQlMoKSwK KyJSb3VuZCAmIFNhdHVyYXRlIHRvIDMyLWJpdCBTaWduZWQiLAoreyBmSElERShzaXplOHNfdCB0 bXA7KSBmQUREU0FUNjQodG1wLFJzc1YsMHgwODAwMDAwMDBVTEwpOyBSZFYgPSBmR0VUV09SRCgx LHRtcCk7IH0pCisKK1E2SU5TTihBMl9zYXRoLCJSZDMyPXNhdGgoUnMzMikiLEFUVFJJQlMoKSwK KyJTYXR1cmF0ZSB0byAxNi1iaXQgU2lnbmVkIiwKK3sgUmRWID0gZlNBVEgoUnNWKTsgfSkKKwor UTZJTlNOKEEyX3NhdHVoLCJSZDMyPXNhdHVoKFJzMzIpIixBVFRSSUJTKCksCisiU2F0dXJhdGUg dG8gMTYtYml0IFVuc2lnbmVkIiwKK3sgUmRWID0gZlNBVFVIKFJzVik7IH0pCisKK1E2SU5TTihB Ml9zYXR1YiwiUmQzMj1zYXR1YihSczMyKSIsQVRUUklCUygpLAorIlNhdHVyYXRlIHRvIDgtYml0 IFVuc2lnbmVkIiwKK3sgUmRWID0gZlNBVFVCKFJzVik7IH0pCisKK1E2SU5TTihBMl9zYXRiLCJS ZDMyPXNhdGIoUnMzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIlNhdHVyYXRlIHRvIDgtYml0IFNp Z25lZCIsCit7IFJkViA9IGZTQVRCKFJzVik7IH0pCisKKy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLworLyogVmVjdG9yIEFkZAkJCQkgKi8KKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitRNklOU04oQTJfdmFk ZHViLCJSZGQzMj12YWRkdWIoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiQWRkIHZlY3RvciBv ZiBieXRlcyIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsK KwkJZlNFVEJZVEUoaSxSZGRWLChmR0VUVUJZVEUoaSxSc3NWKStmR0VUVUJZVEUoaSxSdHRWKSkp OworCX0KK30pCisKK1E2SU5TTihBMl92YWRkdWJzLCJSZGQzMj12YWRkdWIoUnNzMzIsUnR0MzIp OnNhdCIsQVRUUklCUygpLAorIkFkZCB2ZWN0b3Igb2YgYnl0ZXMiLAoreworCWZISURFKGludCBp OykKKwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisJCWZTRVRCWVRFKGksUmRkVixmU0FUVU4o OCxmR0VUVUJZVEUoaSxSc3NWKStmR0VUVUJZVEUoaSxSdHRWKSkpOworCX0KK30pCisKK1E2SU5T TihBMl92YWRkaCwiUmRkMzI9dmFkZGgoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiQWRkIHZl Y3RvciBvZiBoYWxmIGludGVnZXJzIiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpPTA7aTw0 O2krKykgeworCSAgZlNFVEhBTEYoaSxSZGRWLGZHRVRIQUxGKGksUnNzVikrZkdFVEhBTEYoaSxS dHRWKSk7CisJfQorfSkKKworUTZJTlNOKEEyX3ZhZGRocywiUmRkMzI9dmFkZGgoUnNzMzIsUnR0 MzIpOnNhdCIsQVRUUklCUygpLAorIkFkZCB2ZWN0b3Igb2YgaGFsZiBpbnRlZ2VycyB3aXRoIHNh dHVyYXRpb24iLAoreworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtpPDQ7aSsrKSB7CisJICBm U0VUSEFMRihpLFJkZFYsZlNBVE4oMTYsZkdFVEhBTEYoaSxSc3NWKStmR0VUSEFMRihpLFJ0dFYp KSk7CisJfQorfSkKKworUTZJTlNOKEEyX3ZhZGR1aHMsIlJkZDMyPXZhZGR1aChSc3MzMixSdHQz Mik6c2F0IixBVFRSSUJTKCksCisiQWRkIHZlY3RvciBvZiB1bnNpZ25lZCBoYWxmIGludGVnZXJz IHdpdGggc2F0dXJhdGlvbiIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaT0wO2k8NDtpKysp IHsKKwkgIGZTRVRIQUxGKGksUmRkVixmU0FUVU4oMTYsZkdFVFVIQUxGKGksUnNzVikrZkdFVFVI QUxGKGksUnR0VikpKTsKKwl9Cit9KQorCitRNklOU04oQTVfdmFkZGh1YnMsIlJkMzI9dmFkZGh1 YihSc3MzMixSdHQzMik6c2F0IixBVFRSSUJTKCksCisiQWRkIHZlY3RvciBvZiBoYWxmIGludGVn ZXJzIHdpdGggc2F0dXJhdGlvbiBhbmQgcGFjayB0byB1bnNpZ25lZCBieXRlcyIsCit7CisJZkhJ REUoaW50IGk7KQorCWZvciAoaT0wO2k8NDtpKyspIHsKKwkgIAkJZlNFVEJZVEUoaSxSZFYsZlNB VFVCKGZHRVRIQUxGKGksUnNzVikrZkdFVEhBTEYoaSxSdHRWKSkpOworCX0KK30pCisKK1E2SU5T TihBMl92YWRkdywiUmRkMzI9dmFkZHcoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiQWRkIHZl Y3RvciBvZiB3b3JkcyIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaT0wO2k8MjtpKyspIHsK KwkgIGZTRVRXT1JEKGksUmRkVixmR0VUV09SRChpLFJzc1YpK2ZHRVRXT1JEKGksUnR0VikpOwor CX0KK30pCisKK1E2SU5TTihBMl92YWRkd3MsIlJkZDMyPXZhZGR3KFJzczMyLFJ0dDMyKTpzYXQi LEFUVFJJQlMoKSwKKyJBZGQgdmVjdG9yIG9mIHdvcmRzIHdpdGggc2F0dXJhdGlvbiIsCit7CisJ ZkhJREUoaW50IGk7KQorCWZvciAoaT0wO2k8MjtpKyspIHsKKwkgIGZTRVRXT1JEKGksUmRkVixm U0FUTigzMixmR0VUV09SRChpLFJzc1YpK2ZHRVRXT1JEKGksUnR0VikpKTsKKwl9Cit9KQorCisK KworUTZJTlNOKFM0X3Z4YWRkc3VidywiUmRkMzI9dnhhZGRzdWJ3KFJzczMyLFJ0dDMyKTpzYXQi LEFUVFJJQlMoKSwKKyJDcm9zcyB2ZWN0b3IgYWRkLXN1YiB3b3JkcyB3aXRoIHNhdHVyYXRpb24i LAoreworCWZTRVRXT1JEKDAsUmRkVixmU0FUKGZHRVRXT1JEKDAsUnNzVikrZkdFVFdPUkQoMSxS dHRWKSkpOworCWZTRVRXT1JEKDEsUmRkVixmU0FUKGZHRVRXT1JEKDEsUnNzViktZkdFVFdPUkQo MCxSdHRWKSkpOworfSkKK1E2SU5TTihTNF92eHN1YmFkZHcsIlJkZDMyPXZ4c3ViYWRkdyhSc3Mz MixSdHQzMik6c2F0IixBVFRSSUJTKCksCisiQ3Jvc3MgdmVjdG9yIHN1Yi1hZGQgd29yZHMgd2l0 aCBzYXR1cmF0aW9uIiwKK3sKKwlmU0VUV09SRCgwLFJkZFYsZlNBVChmR0VUV09SRCgwLFJzc1Yp LWZHRVRXT1JEKDEsUnR0VikpKTsKKwlmU0VUV09SRCgxLFJkZFYsZlNBVChmR0VUV09SRCgxLFJz c1YpK2ZHRVRXT1JEKDAsUnR0VikpKTsKK30pCisKKworCitRNklOU04oUzRfdnhhZGRzdWJoLCJS ZGQzMj12eGFkZHN1YmgoUnNzMzIsUnR0MzIpOnNhdCIsQVRUUklCUygpLAorIkNyb3NzIHZlY3Rv ciBhZGQtc3ViIGhhbGZ3b3JkcyB3aXRoIHNhdHVyYXRpb24iLAoreworCWZTRVRIQUxGKDAsUmRk VixmU0FUSChmR0VUSEFMRigwLFJzc1YpK2ZHRVRIQUxGKDEsUnR0VikpKTsKKwlmU0VUSEFMRigx LFJkZFYsZlNBVEgoZkdFVEhBTEYoMSxSc3NWKS1mR0VUSEFMRigwLFJ0dFYpKSk7CisKKwlmU0VU SEFMRigyLFJkZFYsZlNBVEgoZkdFVEhBTEYoMixSc3NWKStmR0VUSEFMRigzLFJ0dFYpKSk7CisJ ZlNFVEhBTEYoMyxSZGRWLGZTQVRIKGZHRVRIQUxGKDMsUnNzViktZkdFVEhBTEYoMixSdHRWKSkp OworCit9KQorUTZJTlNOKFM0X3Z4c3ViYWRkaCwiUmRkMzI9dnhzdWJhZGRoKFJzczMyLFJ0dDMy KTpzYXQiLEFUVFJJQlMoKSwKKyJDcm9zcyB2ZWN0b3Igc3ViLWFkZCBoYWxmd29yZHMgd2l0aCBz YXR1cmF0aW9uIiwKK3sKKwlmU0VUSEFMRigwLFJkZFYsZlNBVEgoZkdFVEhBTEYoMCxSc3NWKS1m R0VUSEFMRigxLFJ0dFYpKSk7CisJZlNFVEhBTEYoMSxSZGRWLGZTQVRIKGZHRVRIQUxGKDEsUnNz VikrZkdFVEhBTEYoMCxSdHRWKSkpOworCisJZlNFVEhBTEYoMixSZGRWLGZTQVRIKGZHRVRIQUxG KDIsUnNzViktZkdFVEhBTEYoMyxSdHRWKSkpOworCWZTRVRIQUxGKDMsUmRkVixmU0FUSChmR0VU SEFMRigzLFJzc1YpK2ZHRVRIQUxGKDIsUnR0VikpKTsKK30pCisKKworCisKK1E2SU5TTihTNF92 eGFkZHN1YmhyLCJSZGQzMj12eGFkZHN1YmgoUnNzMzIsUnR0MzIpOnJuZDo+PjE6c2F0IixBVFRS SUJTKCksCisiQ3Jvc3MgdmVjdG9yIGFkZC1zdWIgaGFsZndvcmRzIHdpdGggc2hpZnQsIHJvdW5k LCBhbmQgc2F0dXJhdGlvbiIsCit7CisJZlNFVEhBTEYoMCxSZGRWLGZTQVRIKChmR0VUSEFMRigw LFJzc1YpK2ZHRVRIQUxGKDEsUnR0VikrMSk+PjEpKTsKKwlmU0VUSEFMRigxLFJkZFYsZlNBVEgo KGZHRVRIQUxGKDEsUnNzViktZkdFVEhBTEYoMCxSdHRWKSsxKT4+MSkpOworCisJZlNFVEhBTEYo MixSZGRWLGZTQVRIKChmR0VUSEFMRigyLFJzc1YpK2ZHRVRIQUxGKDMsUnR0VikrMSk+PjEpKTsK KwlmU0VUSEFMRigzLFJkZFYsZlNBVEgoKGZHRVRIQUxGKDMsUnNzViktZkdFVEhBTEYoMixSdHRW KSsxKT4+MSkpOworCit9KQorUTZJTlNOKFM0X3Z4c3ViYWRkaHIsIlJkZDMyPXZ4c3ViYWRkaChS c3MzMixSdHQzMik6cm5kOj4+MTpzYXQiLEFUVFJJQlMoKSwKKyJDcm9zcyB2ZWN0b3Igc3ViLWFk ZCBoYWxmd29yZHMgd2l0aCBzaGlmdCwgcm91bmQsIGFuZCBzYXR1cmF0aW9uIiwKK3sKKwlmU0VU SEFMRigwLFJkZFYsZlNBVEgoKGZHRVRIQUxGKDAsUnNzViktZkdFVEhBTEYoMSxSdHRWKSsxKT4+ MSkpOworCWZTRVRIQUxGKDEsUmRkVixmU0FUSCgoZkdFVEhBTEYoMSxSc3NWKStmR0VUSEFMRigw LFJ0dFYpKzEpPj4xKSk7CisKKwlmU0VUSEFMRigyLFJkZFYsZlNBVEgoKGZHRVRIQUxGKDIsUnNz ViktZkdFVEhBTEYoMyxSdHRWKSsxKT4+MSkpOworCWZTRVRIQUxGKDMsUmRkVixmU0FUSCgoZkdF VEhBTEYoMyxSc3NWKStmR0VUSEFMRigyLFJ0dFYpKzEpPj4xKSk7Cit9KQorCisKKworCisKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogMS8yIFZl Y3RvciBvcGVyYXRpb25zCQkgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisKKworUTZJTlNOKEEyX3N2YXZnaCwiUmQzMj12YXZnaChSczMy LFJ0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJBdmcgdmVjdG9yIG9mIGhhbGYgaW50ZWdlcnMi LAoreworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VUSEFMRihp LFJkViwoKGZHRVRIQUxGKGksUnNWKStmR0VUSEFMRihpLFJ0VikpPj4xKSk7CisJfQorfSkKKwor UTZJTlNOKEEyX3N2YXZnaHMsIlJkMzI9dmF2Z2goUnMzMixSdDMyKTpybmQiLEFUVFJJQlMoQV9B UkNIVjIpLAorIkF2ZyB2ZWN0b3Igb2YgaGFsZiBpbnRlZ2VycyB3aXRoIHJvdW5kaW5nIiwKK3sK KwlmSElERShpbnQgaTspCisJZm9yIChpPTA7aTwyO2krKykgeworCSAgZlNFVEhBTEYoaSxSZFYs KChmR0VUSEFMRihpLFJzVikrZkdFVEhBTEYoaSxSdFYpKzEpPj4xKSk7CisJfQorfSkKKworCisK K1E2SU5TTihBMl9zdm5hdmdoLCJSZDMyPXZuYXZnaChSdDMyLFJzMzIpIixBVFRSSUJTKEFfQVJD SFYyKSwKKyJBdmcgdmVjdG9yIG9mIGhhbGYgaW50ZWdlcnMiLAoreworCWZISURFKGludCBpOykK Kwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VUSEFMRihpLFJkViwoKGZHRVRIQUxGKGksUnRW KS1mR0VUSEFMRihpLFJzVikpPj4xKSk7CisJfQorfSkKKworCitRNklOU04oQTJfc3ZhZGRoLCJS ZDMyPXZhZGRoKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJBZGQgdmVjdG9yIG9mIGhhbGYgaW50 ZWdlcnMiLAoreworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VU SEFMRihpLFJkVixmR0VUSEFMRihpLFJzVikrZkdFVEhBTEYoaSxSdFYpKTsKKwl9Cit9KQorCitR NklOU04oQTJfc3ZhZGRocywiUmQzMj12YWRkaChSczMyLFJ0MzIpOnNhdCIsQVRUUklCUygpLAor IkFkZCB2ZWN0b3Igb2YgaGFsZiBpbnRlZ2VycyB3aXRoIHNhdHVyYXRpb24iLAoreworCWZISURF KGludCBpOykKKwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VUSEFMRihpLFJkVixmU0FUTigx NixmR0VUSEFMRihpLFJzVikrZkdFVEhBTEYoaSxSdFYpKSk7CisJfQorfSkKKworUTZJTlNOKEEy X3N2YWRkdWhzLCJSZDMyPXZhZGR1aChSczMyLFJ0MzIpOnNhdCIsQVRUUklCUygpLAorIkFkZCB2 ZWN0b3Igb2YgdW5zaWduZWQgaGFsZiBpbnRlZ2VycyB3aXRoIHNhdHVyYXRpb24iLAoreworCWZI SURFKGludCBpOykKKwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VUSEFMRihpLFJkVixmU0FU VU4oMTYsZkdFVFVIQUxGKGksUnNWKStmR0VUVUhBTEYoaSxSdFYpKSk7CisJfQorfSkKKworCitR NklOU04oQTJfc3ZzdWJoLCJSZDMyPXZzdWJoKFJ0MzIsUnMzMikiLEFUVFJJQlMoKSwKKyJTdWIg dmVjdG9yIG9mIGhhbGYgaW50ZWdlcnMiLAoreworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtp PDI7aSsrKSB7CisJICBmU0VUSEFMRihpLFJkVixmR0VUSEFMRihpLFJ0ViktZkdFVEhBTEYoaSxS c1YpKTsKKwl9Cit9KQorCitRNklOU04oQTJfc3ZzdWJocywiUmQzMj12c3ViaChSdDMyLFJzMzIp OnNhdCIsQVRUUklCUygpLAorIlN1YiB2ZWN0b3Igb2YgaGFsZiBpbnRlZ2VycyB3aXRoIHNhdHVy YXRpb24iLAoreworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VU SEFMRihpLFJkVixmU0FUTigxNixmR0VUSEFMRihpLFJ0ViktZkdFVEhBTEYoaSxSc1YpKSk7CisJ fQorfSkKKworUTZJTlNOKEEyX3N2c3VidWhzLCJSZDMyPXZzdWJ1aChSdDMyLFJzMzIpOnNhdCIs QVRUUklCUygpLAorIlN1YiB2ZWN0b3Igb2YgdW5zaWduZWQgaGFsZiBpbnRlZ2VycyB3aXRoIHNh dHVyYXRpb24iLAoreworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJICBm U0VUSEFMRihpLFJkVixmU0FUVU4oMTYsZkdFVFVIQUxGKGksUnRWKS1mR0VUVUhBTEYoaSxSc1Yp KSk7CisJfQorfSkKKworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisvKiBWZWN0b3IgUmVkdWNlIEFkZAkJCSAgKi8KKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitRNklOU04oQTJfdnJhZGR1Yiwi UmRkMzI9dnJhZGR1YihSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJTdW06IHR3byB2ZWN0b3Jz IG9mIHVuc2lnbmVkIGJ5dGVzIiwKK3sKKwlmSElERShpbnQgaTspCisJUmRkViA9IDA7CisJZm9y IChpPTA7aTw0O2krKykgeworCQlmU0VUV09SRCgwLFJkZFYsKGZHRVRXT1JEKDAsUmRkVikgKyAo ZkdFVFVCWVRFKGksUnNzVikrZkdFVFVCWVRFKGksUnR0VikpKSk7CisJfQorCWZvciAoaT00O2k8 ODtpKyspIHsKKwkJZlNFVFdPUkQoMSxSZGRWLChmR0VUV09SRCgxLFJkZFYpICsgKGZHRVRVQllU RShpLFJzc1YpK2ZHRVRVQllURShpLFJ0dFYpKSkpOworCX0KK30pCisKK1E2SU5TTihBMl92cmFk ZHViX2FjYywiUnh4MzIrPXZyYWRkdWIoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiU3VtOiB0 d28gdmVjdG9ycyBvZiB1bnNpZ25lZCBieXRlcyIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAo aSA9IDA7IGkgPCA0OyBpKyspIHsKKwkJZlNFVFdPUkQoMCxSeHhWLChmR0VUV09SRCgwLFJ4eFYp ICsgKGZHRVRVQllURShpLFJzc1YpK2ZHRVRVQllURShpLFJ0dFYpKSkpOworCX0KKwlmb3IgKGkg PSA0OyBpIDwgODsgaSsrKSB7CisJCWZTRVRXT1JEKDEsUnh4ViwoZkdFVFdPUkQoMSxSeHhWKSAr IChmR0VUVUJZVEUoaSxSc3NWKStmR0VUVUJZVEUoaSxSdHRWKSkpKTsKKwl9Cit9KQorCisKKwor UTZJTlNOKE0yX3ZyYWRkaCwiUmQzMj12cmFkZGgoUnNzMzIsUnR0MzIpIixBVFRSSUJTKEFfQVJD SFYzKSwKKyJTdW06IHR3byB2ZWN0b3JzIG9mIGhhbHZlcyIsCit7CisJZkhJREUoaW50IGk7KQor CVJkViA9IDA7CisJZm9yIChpPTA7aTw0O2krKykgeworCQlSZFYgKz0gKGZHRVRIQUxGKGksUnNz VikrZkdFVEhBTEYoaSxSdHRWKSk7CisJfQorfSkKKworUTZJTlNOKE0yX3ZyYWRkdWgsIlJkMzI9 dnJhZGR1aChSc3MzMixSdHQzMikiLEFUVFJJQlMoQV9BUkNIVjMpLAorIlN1bTogdHdvIHZlY3Rv cnMgb2YgdW5zaWduZWQgaGFsdmVzIiwKK3sKKwlmSElERShpbnQgaTspCisJUmRWID0gMDsKKwlm b3IgKGk9MDtpPDQ7aSsrKSB7CisJCVJkViArPSAoZkdFVFVIQUxGKGksUnNzVikrZkdFVFVIQUxG KGksUnR0VikpOworCX0KK30pCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworLyogVmVjdG9yIFN1YgkJCQkgKi8KKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitRNklOU04oQTJfdnN1YnViLCJSZGQzMj12 c3VidWIoUnR0MzIsUnNzMzIpIixBVFRSSUJTKCksCisiU3ViIHZlY3RvciBvZiBieXRlcyIsCit7 CisJZkhJREUoaW50IGk7KQorCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJZlNFVEJZVEUo aSxSZGRWLChmR0VUVUJZVEUoaSxSdHRWKS1mR0VUVUJZVEUoaSxSc3NWKSkpOworCX0KK30pCisK K1E2SU5TTihBMl92c3VidWJzLCJSZGQzMj12c3VidWIoUnR0MzIsUnNzMzIpOnNhdCIsQVRUUklC UygpLAorIlN1YiB2ZWN0b3Igb2YgYnl0ZXMiLAoreworCWZISURFKGludCBpOykKKwlmb3IgKGkg PSAwOyBpIDwgODsgaSsrKSB7CisJCWZTRVRCWVRFKGksUmRkVixmU0FUVU4oOCxmR0VUVUJZVEUo aSxSdHRWKS1mR0VUVUJZVEUoaSxSc3NWKSkpOworCX0KK30pCisKK1E2SU5TTihBMl92c3ViaCwi UmRkMzI9dnN1YmgoUnR0MzIsUnNzMzIpIixBVFRSSUJTKCksCisiU3ViIHZlY3RvciBvZiBoYWxm IGludGVnZXJzIiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpPTA7aTw0O2krKykgeworCSAg ZlNFVEhBTEYoaSxSZGRWLGZHRVRIQUxGKGksUnR0ViktZkdFVEhBTEYoaSxSc3NWKSk7CisJfQor fSkKKworUTZJTlNOKEEyX3ZzdWJocywiUmRkMzI9dnN1YmgoUnR0MzIsUnNzMzIpOnNhdCIsQVRU UklCUygpLAorIlN1YiB2ZWN0b3Igb2YgaGFsZiBpbnRlZ2VycyB3aXRoIHNhdHVyYXRpb24iLAor eworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtpPDQ7aSsrKSB7CisJICBmU0VUSEFMRihpLFJk ZFYsZlNBVE4oMTYsZkdFVEhBTEYoaSxSdHRWKS1mR0VUSEFMRihpLFJzc1YpKSk7CisJfQorfSkK KworUTZJTlNOKEEyX3ZzdWJ1aHMsIlJkZDMyPXZzdWJ1aChSdHQzMixSc3MzMik6c2F0IixBVFRS SUJTKCksCisiU3ViIHZlY3RvciBvZiB1bnNpZ25lZCBoYWxmIGludGVnZXJzIHdpdGggc2F0dXJh dGlvbiIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaT0wO2k8NDtpKyspIHsKKwkgIGZTRVRI QUxGKGksUmRkVixmU0FUVU4oMTYsZkdFVFVIQUxGKGksUnR0ViktZkdFVFVIQUxGKGksUnNzVikp KTsKKwl9Cit9KQorCitRNklOU04oQTJfdnN1YncsIlJkZDMyPXZzdWJ3KFJ0dDMyLFJzczMyKSIs QVRUUklCUygpLAorIlN1YiB2ZWN0b3Igb2Ygd29yZHMiLAoreworCWZISURFKGludCBpOykKKwlm b3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VUV09SRChpLFJkZFYsZkdFVFdPUkQoaSxSdHRWKS1m R0VUV09SRChpLFJzc1YpKTsKKwl9Cit9KQorCitRNklOU04oQTJfdnN1YndzLCJSZGQzMj12c3Vi dyhSdHQzMixSc3MzMik6c2F0IixBVFRSSUJTKCksCisiU3ViIHZlY3RvciBvZiB3b3JkcyB3aXRo IHNhdHVyYXRpb24iLAoreworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJ ICBmU0VUV09SRChpLFJkZFYsZlNBVE4oMzIsZkdFVFdPUkQoaSxSdHRWKS1mR0VUV09SRChpLFJz c1YpKSk7CisJfQorfSkKKworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCisvKiBWZWN0b3IgQWJzCQkJCSAqLworLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5TTihBMl92YWJzaCwiUmRkMzI9 dmFic2goUnNzMzIpIixBVFRSSUJTKCksCisiTmVnYXRlIHZlY3RvciBvZiBoYWxmIGludGVnZXJz IiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpPTA7aTw0O2krKykgeworCSAgZlNFVEhBTEYo aSxSZGRWLGZBQlMoZkdFVEhBTEYoaSxSc3NWKSkpOworCX0KK30pCisKK1E2SU5TTihBMl92YWJz aHNhdCwiUmRkMzI9dmFic2goUnNzMzIpOnNhdCIsQVRUUklCUygpLAorIk5lZ2F0ZSB2ZWN0b3Ig b2YgaGFsZiBpbnRlZ2VycyIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaT0wO2k8NDtpKysp IHsKKwkgIGZTRVRIQUxGKGksUmRkVixmU0FUSChmQUJTKGZHRVRIQUxGKGksUnNzVikpKSk7CisJ fQorfSkKKworUTZJTlNOKEEyX3ZhYnN3LCJSZGQzMj12YWJzdyhSc3MzMikiLEFUVFJJQlMoKSwK KyJBYnNvbHV0ZSBWYWx1ZSB2ZWN0b3Igb2Ygd29yZHMiLAoreworCWZISURFKGludCBpOykKKwlm b3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VUV09SRChpLFJkZFYsZkFCUyhmR0VUV09SRChpLFJz c1YpKSk7CisJfQorfSkKKworUTZJTlNOKEEyX3ZhYnN3c2F0LCJSZGQzMj12YWJzdyhSc3MzMik6 c2F0IixBVFRSSUJTKCksCisiQWJzb2x1dGUgVmFsdWUgdmVjdG9yIG9mIHdvcmRzIiwKK3sKKwlm SElERShpbnQgaTspCisJZm9yIChpPTA7aTwyO2krKykgeworCSAgZlNFVFdPUkQoaSxSZGRWLGZT QVQoZkFCUyhmR0VUV09SRChpLFJzc1YpKSkpOworCX0KK30pCisKKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogVmVjdG9yIFNBRAkJCQkgKi8KKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKK1E2SU5T TihNMl92YWJzZGlmZncsIlJkZDMyPXZhYnNkaWZmdyhSdHQzMixSc3MzMikiLEFUVFJJQlMoQV9B UkNIVjIpLAorIkFic29sdXRlIERpZmZlcmVuY2VzOiB2ZWN0b3Igb2Ygd29yZHMiLAoreworCWZI SURFKGludCBpOykKKwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VUV09SRChpLFJkZFYsZkFC UyhmR0VUV09SRChpLFJ0dFYpIC0gZkdFVFdPUkQoaSxSc3NWKSkpOworCX0KK30pCisKK1E2SU5T TihNMl92YWJzZGlmZmgsIlJkZDMyPXZhYnNkaWZmaChSdHQzMixSc3MzMikiLEFUVFJJQlMoQV9B UkNIVjIpLAorIkFic29sdXRlIERpZmZlcmVuY2VzOiB2ZWN0b3Igb2YgaGFsZndvcmRzIiwKK3sK KwlmSElERShpbnQgaTspCisJZm9yIChpPTA7aTw0O2krKykgeworCSAgZlNFVEhBTEYoaSxSZGRW LGZBQlMoZkdFVEhBTEYoaSxSdHRWKSAtIGZHRVRIQUxGKGksUnNzVikpKTsKKwl9Cit9KQorCitR NklOU04oTTZfdmFic2RpZmZiLCJSZGQzMj12YWJzZGlmZmIoUnR0MzIsUnNzMzIpIixBVFRSSUJT KCksCisiQWJzb2x1dGUgRGlmZmVyZW5jZXM6IHZlY3RvciBvZiBoYWxmd29yZHMiLAoreworCWZI SURFKGludCBpOykKKwlmb3IgKGk9MDtpPDg7aSsrKSB7CisJICBmU0VUQllURShpLFJkZFYsZkFC UyhmR0VUQllURShpLFJ0dFYpIC0gZkdFVEJZVEUoaSxSc3NWKSkpOworCX0KK30pCisKK1E2SU5T TihNNl92YWJzZGlmZnViLCJSZGQzMj12YWJzZGlmZnViKFJ0dDMyLFJzczMyKSIsQVRUUklCUygp LAorIkFic29sdXRlIERpZmZlcmVuY2VzOiB2ZWN0b3Igb2YgaGFsZndvcmRzIiwKK3sKKwlmSElE RShpbnQgaTspCisJZm9yIChpPTA7aTw4O2krKykgeworCSAgZlNFVEJZVEUoaSxSZGRWLGZBQlMo ZkdFVFVCWVRFKGksUnR0VikgLSBmR0VUVUJZVEUoaSxSc3NWKSkpOworCX0KK30pCisKKworCitR NklOU04oQTJfdnJzYWR1YiwiUmRkMzI9dnJzYWR1YihSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwK KyJTdW0gb2YgQWJzb2x1dGUgRGlmZmVyZW5jZXM6IHZlY3RvciBvZiB1bnNpZ25lZCBieXRlcyIs Cit7CisJZkhJREUoaW50IGk7KQorCVJkZFYgPSAwOworCWZvciAoaSA9IDA7IGkgPCA0OyBpKysp IHsKKwkJZlNFVFdPUkQoMCxSZGRWLChmR0VUV09SRCgwLFJkZFYpICsgZkFCUygoZkdFVFVCWVRF KGksUnNzVikgLSBmR0VUVUJZVEUoaSxSdHRWKSkpKSk7CisJfQorCWZvciAoaSA9IDQ7IGkgPCA4 OyBpKyspIHsKKwkJZlNFVFdPUkQoMSxSZGRWLChmR0VUV09SRCgxLFJkZFYpICsgZkFCUygoZkdF VFVCWVRFKGksUnNzVikgLSBmR0VUVUJZVEUoaSxSdHRWKSkpKSk7CisJfQorfSkKKworUTZJTlNO KEEyX3Zyc2FkdWJfYWNjLCJSeHgzMis9dnJzYWR1YihSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwK KyJTdW0gb2YgQWJzb2x1dGUgRGlmZmVyZW5jZXM6IHZlY3RvciBvZiB1bnNpZ25lZCBieXRlcyIs Cit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKKwkJZlNFVFdP UkQoMCxSeHhWLChmR0VUV09SRCgwLFJ4eFYpICsgZkFCUygoZkdFVFVCWVRFKGksUnNzVikgLSBm R0VUVUJZVEUoaSxSdHRWKSkpKSk7CisJfQorCWZvciAoaSA9IDQ7IGkgPCA4OyBpKyspIHsKKwkJ ZlNFVFdPUkQoMSxSeHhWLChmR0VUV09SRCgxLFJ4eFYpICsgZkFCUygoZkdFVFVCWVRFKGksUnNz VikgLSBmR0VUVUJZVEUoaSxSdHRWKSkpKSk7CisJfQorfSkKKworCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFZlY3RvciBBdmVyYWdlCQkJICAg ICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisK K1E2SU5TTihBMl92YXZndWIsIlJkZDMyPXZhdmd1YihSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwK KyJBdmVyYWdlIHZlY3RvciBvZiB1bnNpZ25lZCBieXRlcyIsCit7CisJZkhJREUoaW50IGk7KQor CWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJZlNFVEJZVEUoaSxSZGRWLCgoZkdFVFVCWVRF KGksUnNzVikgKyBmR0VUVUJZVEUoaSxSdHRWKSk+PjEpKTsKKwl9Cit9KQorCitRNklOU04oQTJf dmF2Z3VoLCJSZGQzMj12YXZndWgoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiQXZlcmFnZSB2 ZWN0b3Igb2YgdW5zaWduZWQgaGFsZndvcmRzIiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChp PTA7aTw0O2krKykgeworCQlmU0VUSEFMRihpLFJkZFYsKGZHRVRVSEFMRihpLFJzc1YpK2ZHRVRV SEFMRihpLFJ0dFYpKT4+MSk7CisJfQorfSkKKworUTZJTlNOKEEyX3ZhdmdoLCJSZGQzMj12YXZn aChSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJBdmVyYWdlIHZlY3RvciBvZiBoYWxmd29yZHMi LAoreworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtpPDQ7aSsrKSB7CisJCWZTRVRIQUxGKGks UmRkViwoZkdFVEhBTEYoaSxSc3NWKStmR0VUSEFMRihpLFJ0dFYpKT4+MSk7CisJfQorfSkKKwor UTZJTlNOKEEyX3ZuYXZnaCwiUmRkMzI9dm5hdmdoKFJ0dDMyLFJzczMyKSIsQVRUUklCUygpLAor Ik5lZ2F0aXZlIEF2ZXJhZ2UgdmVjdG9yIG9mIGhhbGZ3b3JkcyIsCit7CisJZkhJREUoaW50IGk7 KQorCWZvciAoaT0wO2k8NDtpKyspIHsKKwkJZlNFVEhBTEYoaSxSZGRWLChmR0VUSEFMRihpLFJ0 dFYpLWZHRVRIQUxGKGksUnNzVikpPj4xKTsKKwl9Cit9KQorCitRNklOU04oQTJfdmF2Z3csIlJk ZDMyPXZhdmd3KFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkF2ZXJhZ2UgdmVjdG9yIG9mIHdv cmRzIiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpPTA7aTwyO2krKykgeworCQlmU0VUV09S RChpLFJkZFYsKGZTWFROKDMyLDMzLGZHRVRXT1JEKGksUnNzVikpK2ZTWFROKDMyLDMzLGZHRVRX T1JEKGksUnR0VikpKT4+MSk7CisJfQorfSkKKworUTZJTlNOKEEyX3ZuYXZndywiUmRkMzI9dm5h dmd3KFJ0dDMyLFJzczMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQXZlcmFnZSB2ZWN0b3Igb2Yg d29yZHMiLAoreworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJCWZTRVRX T1JEKGksUmRkViwoZlNYVE4oMzIsMzMsZkdFVFdPUkQoaSxSdHRWKSktZlNYVE4oMzIsMzMsZkdF VFdPUkQoaSxSc3NWKSkpPj4xKTsKKwl9Cit9KQorCitRNklOU04oQTJfdmF2Z3dyLCJSZGQzMj12 YXZndyhSc3MzMixSdHQzMik6cm5kIixBVFRSSUJTKCksCisiQXZlcmFnZSB2ZWN0b3Igb2Ygd29y ZHMiLAoreworCWZISURFKGludCBpOykKKwlmb3IgKGk9MDtpPDI7aSsrKSB7CisJCWZTRVRXT1JE KGksUmRkViwoZlNYVE4oMzIsMzMsZkdFVFdPUkQoaSxSc3NWKSkrZlNYVE4oMzIsMzMsZkdFVFdP UkQoaSxSdHRWKSkrMSk+PjEpOworCX0KK30pCisKK1E2SU5TTihBMl92bmF2Z3dyLCJSZGQzMj12 bmF2Z3coUnR0MzIsUnNzMzIpOnJuZDpzYXQiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkF2ZXJhZ2Ug dmVjdG9yIG9mIHdvcmRzIiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpPTA7aTwyO2krKykg eworCQlmU0VUV09SRChpLFJkZFYsZlNBVCgoZlNYVE4oMzIsMzMsZkdFVFdPUkQoaSxSdHRWKSkt ZlNYVE4oMzIsMzMsZkdFVFdPUkQoaSxSc3NWKSkrMSk+PjEpKTsKKwl9Cit9KQorCitRNklOU04o QTJfdmF2Z3djciwiUmRkMzI9dmF2Z3coUnNzMzIsUnR0MzIpOmNybmQiLEFUVFJJQlMoQV9BUkNI VjIpLAorIkF2ZXJhZ2UgdmVjdG9yIG9mIHdvcmRzIHdpdGggY29udmVyZ2VudCByb3VuZGluZyIs Cit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaT0wO2k8MjtpKyspIHsKKwkJZlNFVFdPUkQoaSxS ZGRWLChmQ1JORChmU1hUTigzMiwzMyxmR0VUV09SRChpLFJzc1YpKStmU1hUTigzMiwzMyxmR0VU V09SRChpLFJ0dFYpKSk+PjEpKTsKKwl9Cit9KQorCitRNklOU04oQTJfdm5hdmd3Y3IsIlJkZDMy PXZuYXZndyhSdHQzMixSc3MzMik6Y3JuZDpzYXQiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkF2ZXJh Z2UgbmVnYXRpdmUgdmVjdG9yIG9mIHdvcmRzIHdpdGggY29udmVyZ2VudCByb3VuZGluZyIsCit7 CisJZkhJREUoaW50IGk7KQorCWZvciAoaT0wO2k8MjtpKyspIHsKKwkJZlNFVFdPUkQoaSxSZGRW LGZTQVQoZkNSTkQoZlNYVE4oMzIsMzMsZkdFVFdPUkQoaSxSdHRWKSktZlNYVE4oMzIsMzMsZkdF VFdPUkQoaSxSc3NWKSkpPj4xKSk7CisJfQorfSkKKworUTZJTlNOKEEyX3ZhdmdoY3IsIlJkZDMy PXZhdmdoKFJzczMyLFJ0dDMyKTpjcm5kIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJBdmVyYWdlIHZl Y3RvciBvZiBoYWxmd29yZHMgd2l0aCBjb252IHJvdW5kaW5nIiwKK3sKKwlmSElERShpbnQgaTsp CisJZm9yIChpPTA7aTw0O2krKykgeworCQlmU0VUSEFMRihpLFJkZFYsZkNSTkQoZkdFVEhBTEYo aSxSc3NWKStmR0VUSEFMRihpLFJ0dFYpKT4+MSk7CisJfQorfSkKKworUTZJTlNOKEEyX3ZuYXZn aGNyLCJSZGQzMj12bmF2Z2goUnR0MzIsUnNzMzIpOmNybmQ6c2F0IixBVFRSSUJTKEFfQVJDSFYy KSwKKyJBdmVyYWdlIG5lZ2F0aXZlIHZlY3RvciBvZiBoYWxmd29yZHMgd2l0aCBjb252IHJvdW5k aW5nIiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpPTA7aTw0O2krKykgeworCQlmU0VUSEFM RihpLFJkZFYsZlNBVEgoZkNSTkQoZkdFVEhBTEYoaSxSdHRWKS1mR0VUSEFMRihpLFJzc1YpKT4+ MSkpOworCX0KK30pCisKKworUTZJTlNOKEEyX3Zhdmd1dywiUmRkMzI9dmF2Z3V3KFJzczMyLFJ0 dDMyKSIsQVRUUklCUygpLAorIkF2ZXJhZ2UgdmVjdG9yIG9mIHVuc2lnbmVkIHdvcmRzIiwKK3sK KwlmSElERShpbnQgaTspCisJZm9yIChpPTA7aTwyO2krKykgeworCQlmU0VUV09SRChpLFJkZFYs KGZaWFROKDMyLDMzLGZHRVRVV09SRChpLFJzc1YpKStmWlhUTigzMiwzMyxmR0VUVVdPUkQoaSxS dHRWKSkpPj4xKTsKKwl9Cit9KQorCitRNklOU04oQTJfdmF2Z3V3ciwiUmRkMzI9dmF2Z3V3KFJz czMyLFJ0dDMyKTpybmQiLEFUVFJJQlMoKSwKKyJBdmVyYWdlIHZlY3RvciBvZiB1bnNpZ25lZCB3 b3JkcyIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaT0wO2k8MjtpKyspIHsKKwkJZlNFVFdP UkQoaSxSZGRWLChmWlhUTigzMiwzMyxmR0VUVVdPUkQoaSxSc3NWKSkrZlpYVE4oMzIsMzMsZkdF VFVXT1JEKGksUnR0VikpKzEpPj4xKTsKKwl9Cit9KQorCitRNklOU04oQTJfdmF2Z3ViciwiUmRk MzI9dmF2Z3ViKFJzczMyLFJ0dDMyKTpybmQiLEFUVFJJQlMoKSwKKyJBdmVyYWdlIHZlY3RvciBv ZiB1bnNpZ25lZCBieXRlcyIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaSA9IDA7IGkgPCA4 OyBpKyspIHsKKwkJZlNFVEJZVEUoaSxSZGRWLCgoZkdFVFVCWVRFKGksUnNzVikrZkdFVFVCWVRF KGksUnR0VikrMSk+PjEpKTsKKwl9Cit9KQorCitRNklOU04oQTJfdmF2Z3VociwiUmRkMzI9dmF2 Z3VoKFJzczMyLFJ0dDMyKTpybmQiLEFUVFJJQlMoKSwKKyJBdmVyYWdlIHZlY3RvciBvZiB1bnNp Z25lZCBoYWxmd29yZHMgd2l0aCByb3VuZGluZyIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAo aT0wO2k8NDtpKyspIHsKKwkJZlNFVEhBTEYoaSxSZGRWLChmR0VUVUhBTEYoaSxSc3NWKStmR0VU VUhBTEYoaSxSdHRWKSsxKT4+MSk7CisJfQorfSkKKworUTZJTlNOKEEyX3ZhdmdociwiUmRkMzI9 dmF2Z2goUnNzMzIsUnR0MzIpOnJuZCIsQVRUUklCUygpLAorIkF2ZXJhZ2UgdmVjdG9yIG9mIGhh bGZ3b3JkcyB3aXRoIHJvdW5kaW5nIiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpPTA7aTw0 O2krKykgeworCQlmU0VUSEFMRihpLFJkZFYsKGZHRVRIQUxGKGksUnNzVikrZkdFVEhBTEYoaSxS dHRWKSsxKT4+MSk7CisJfQorfSkKKworUTZJTlNOKEEyX3ZuYXZnaHIsIlJkZDMyPXZuYXZnaChS dHQzMixSc3MzMik6cm5kOnNhdCIsQVRUUklCUyhBX0FSQ0hWMiksCisiTmVnYXRpdmUgQXZlcmFn ZSB2ZWN0b3Igb2YgaGFsZndvcmRzIHdpdGggcm91bmRpbmciLAoreworCWZISURFKGludCBpOykK Kwlmb3IgKGk9MDtpPDQ7aSsrKSB7CisJCWZTRVRIQUxGKGksUmRkVixmU0FUSCgoZkdFVEhBTEYo aSxSdHRWKS1mR0VUSEFMRihpLFJzc1YpKzEpPj4xKSk7CisJfQorfSkKKworCisvKiBSb3VuZGlu ZyBJbnN0cnVjdGlvbiAqLworCitRNklOU04oQTRfcm91bmRfcmksIlJkMzI9cm91bmQoUnMzMiwj dTUpIixBVFRSSUJTKCksIlJvdW5kIiwge1JkViA9IGZSTkROKFJzVix1aVYpPj51aVY7IH0pCitR NklOU04oQTRfcm91bmRfcnIsIlJkMzI9cm91bmQoUnMzMixSdDMyKSIsQVRUUklCUygpLCJSb3Vu ZCIsIHtSZFYgPSBmUk5ETihSc1YsZlpYVE4oNSwzMixSdFYpKT4+ZlpYVE4oNSwzMixSdFYpOyB9 KQorUTZJTlNOKEE0X3JvdW5kX3JpX3NhdCwiUmQzMj1yb3VuZChSczMyLCN1NSk6c2F0IixBVFRS SUJTKCksIlJvdW5kIiwge1JkViA9IChmU0FUKGZSTkROKFJzVix1aVYpKSk+PnVpVjsgfSkKK1E2 SU5TTihBNF9yb3VuZF9ycl9zYXQsIlJkMzI9cm91bmQoUnMzMixSdDMyKTpzYXQiLEFUVFJJQlMo KSwiUm91bmQiLCB7UmRWID0gKGZTQVQoZlJORE4oUnNWLGZaWFROKDUsMzIsUnRWKSkpKT4+ZlpY VE4oNSwzMixSdFYpOyB9KQorCisKK1E2SU5TTihBNF9jcm91bmRfcmksIlJkMzI9Y3JvdW5kKFJz MzIsI3U1KSIsQVRUUklCUygpLCJDb252ZXJnZW50IFJvdW5kIiwge1JkViA9IGZDUk5ETihSc1Ys dWlWKTsgfSkKK1E2SU5TTihBNF9jcm91bmRfcnIsIlJkMzI9Y3JvdW5kKFJzMzIsUnQzMikiLEFU VFJJQlMoKSwiQ29udmVyZ2VudCBSb3VuZCIsIHtSZFYgPSBmQ1JORE4oUnNWLGZaWFROKDUsMzIs UnRWKSk7IH0pCisKKworI2RlZmluZSBDUk9VTkQoRFNULFNSQyxTSElGVCkgXAorCWZISURFKHNp emUxNnNfdCBybmRiaXRfMTI4OylcCisJZkhJREUoc2l6ZTE2c190IHRtcDEyODspXAorCWZISURF KHNpemUxNnNfdCBzcmNfMTI4OylcCisJaWYgKFNISUZUID09IDApIHsgXAorCQlEU1QgPSBTUkM7 XAorCX0gZWxzZSBpZiAoKFNSQyAmIChzaXplOHNfdCkoKDFMTCA8PCAoU0hJRlQgLSAxKSkgLSAx TEwpKSA9PSAwKSB7IFwKKwkJc3JjXzEyOCA9IGZDQVNUOFNfMTZTKFNSQyk7XAorCQlybmRiaXRf MTI4ID0gZkNBU1Q4U18xNlMoMUxMKTtcCisJCXJuZGJpdF8xMjggPSBmU0hJRlRMMTI4KHJuZGJp dF8xMjgsIFNISUZUKTtcCisJCXJuZGJpdF8xMjggPSBmQU5EMTI4KHJuZGJpdF8xMjgsIHNyY18x MjgpO1wKKwkJcm5kYml0XzEyOCA9IGZTSElGVFIxMjgocm5kYml0XzEyOCwgMSk7XAorCQl0bXAx MjggPSBmQUREMTI4KHNyY18xMjgsIHJuZGJpdF8xMjgpO1wKKwkJdG1wMTI4ID0gZlNISUZUUjEy OCh0bXAxMjgsIFNISUZUKTtcCisJCURTVCA9ICBmQ0FTVDE2U184Uyh0bXAxMjgpO1wKKwl9IGVs c2Uge1wKKwkJc2l6ZTE2c190IHJuZGJpdF8xMjggPSAgZkNBU1Q4U18xNlMoKDFMTCA8PCAoU0hJ RlQgLSAxKSkpOyBcCisJCXNpemUxNnNfdCBzcmNfMTI4ID0gIGZDQVNUOFNfMTZTKFNSQyk7IFwK KwkJc2l6ZTE2c190IHRtcDEyOCA9IGZBREQxMjgoc3JjXzEyOCwgcm5kYml0XzEyOCk7XAorCQl0 bXAxMjggPSBmU0hJRlRSMTI4KHRtcDEyOCwgU0hJRlQpO1wKKwkJRFNUID0gIGZDQVNUMTZTXzhT KHRtcDEyOCk7XAorCX0KKworUTZJTlNOKEE3X2Nyb3VuZGRfcmksIlJkZDMyPWNyb3VuZChSc3Mz MiwjdTYpIixBVFRSSUJTKCksIkNvbnZlcmdlbnQgUm91bmQiLAoreworQ1JPVU5EKFJkZFYsUnNz Vix1aVYpOworfSkKKworUTZJTlNOKEE3X2Nyb3VuZGRfcnIsIlJkZDMyPWNyb3VuZChSc3MzMixS dDMyKSIsQVRUUklCUygpLCJDb252ZXJnZW50IFJvdW5kIiwKK3sKK0NST1VORChSZGRWLFJzc1Ys ZlpYVE4oNiwzMixSdFYpKTsKK30pCisKKworCisKKworCisKKworCitRNklOU04oQTdfY2xpcCwi UmQzMj1jbGlwKFJzMzIsI3U1KSIsQVRUUklCUygpLCJDbGlwIHRvICAjczUiLCAJeyAgIGZDTElQ KFJkVixSc1YsdWlWKTt9KQorUTZJTlNOKEE3X3ZjbGlwLCJSZGQzMj12Y2xpcChSc3MzMiwjdTUp IixBVFRSSUJTKCksIkNsaXAgdG8gICNzNSIsCit7CitmSElERShzaXplNHNfdCB0bXA7KQorZkNM SVAodG1wLCBmR0VUV09SRCgwLCBSc3NWKSwgdWlWKTsKK2ZTRVRXT1JEKDAsIFJkZFYsIHRtcCk7 CitmQ0xJUCh0bXAsZkdFVFdPUkQoMSwgUnNzViksIHVpVik7CitmU0VUV09SRCgxLCBSZGRWLCB0 bXApOworfQorKQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisvKiBWNDogQ3Jvc3MgVmVjdG9yIE1pbi9NYXgJCSAgICovCisvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisjZGVmaW5lIFZSTUlO T1JNQVgoVEFHLFNUUixPUCxTSE9SVFRZUEUsU0VUVFlQRSxHRVRUWVBFLE5FTCxTSElGVCkgXAor UTZJTlNOKEE0X3ZyIyNUQUcjI1NIT1JUVFlQRSwiUnh4MzI9dnIiI1RBRyNTSE9SVFRZUEUiKFJz czMyLFJ1MzIpIixBVFRSSUJTKCksIFwKKyJDaG9vc2UgIiBTVFIgIiBlbGVtZW50cyBvZiBhIHZl Y3RvciIsIFwKK3sgXAorCWZISURFKGludCBpOyBzaXplOHNfdCBUQUc7IHNpemU0c190IGFkZHI7 KSBcCisJVEFHID0gZkdFVCMjR0VUVFlQRSgwLFJ4eFYpOyBcCisJYWRkciA9IGZHRVRXT1JEKDEs Unh4Vik7IFwKKwlmb3IgKGkgPSAwOyBpIDwgTkVMOyBpKyspIHsgXAorCQlpZiAoVEFHIE9QIGZH RVQjI0dFVFRZUEUoaSxSc3NWKSkgeyBcCisJCQlUQUcgPSBmR0VUIyNHRVRUWVBFKGksUnNzVik7 IFwKKwkJCWFkZHIgPSBSdVYgfCBpPDxTSElGVDsgXAorCQl9IFwKKwl9IFwKKwlmU0VUV09SRCgw LFJ4eFYsVEFHKTsgXAorCWZTRVRXT1JEKDEsUnh4VixhZGRyKTsgXAorfSkKKworI2RlZmluZSBS TUlOTUFYKFNIT1JUVFlQRSxTRVRUWVBFLEdFVFRZUEUsTkVMLFNISUZUKSBcCitWUk1JTk9STUFY KG1pbiwibWluaW11bSIsPixTSE9SVFRZUEUsU0VUVFlQRSxHRVRUWVBFLE5FTCxTSElGVCkgXAor VlJNSU5PUk1BWChtYXgsIm1heGltdW0iLDwsU0hPUlRUWVBFLFNFVFRZUEUsR0VUVFlQRSxORUws U0hJRlQpCisKKworUk1JTk1BWChoLEhBTEYsSEFMRiw0LDEpCitSTUlOTUFYKHVoLEhBTEYsVUhB TEYsNCwxKQorUk1JTk1BWCh3LFdPUkQsV09SRCwyLDIpCitSTUlOTUFYKHV3LFdPUkQsVVdPUkQs MiwyKQorCisjdW5kZWYgUk1JTk1BWAorI3VuZGVmIFZSTUlOT1JNQVgKKworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBWZWN0b3IgTWluL01heAkJ CSAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq LworCisjZGVmaW5lIFZNSU5PUk1BWChUQUcsU1RSLEZVTkMsU0hPUlRUWVBFLFNFVFRZUEUsR0VU VFlQRSxORUwpIFwKK1E2SU5TTihBMl92IyNUQUcjI1NIT1JUVFlQRSwiUmRkMzI9diIjVEFHI1NI T1JUVFlQRSIoUnR0MzIsUnNzMzIpIixBVFRSSUJTKCksIFwKKyJDaG9vc2UgIiBTVFIgIiBlbGVt ZW50cyBvZiB0d28gdmVjdG9ycyIsIFwKK3sgXAorCWZISURFKGludCBpOykgXAorCWZvciAoaSA9 IDA7IGkgPCBORUw7IGkrKykgeyBcCisJCWZTRVQjI1NFVFRZUEUoaSxSZGRWLEZVTkMoZkdFVCMj R0VUVFlQRShpLFJ0dFYpLGZHRVQjI0dFVFRZUEUoaSxSc3NWKSkpOyBcCisJfSBcCit9KQorCisj ZGVmaW5lIFZNSU5PUk1BWDMoVEFHLFNUUixGVU5DLFNIT1JUVFlQRSxTRVRUWVBFLEdFVFRZUEUs TkVMKSBcCitRNklOU04oQTZfdiMjVEFHIyNTSE9SVFRZUEUjIzMsIlJ4eDMyPXYiI1RBRyNTSE9S VFRZUEUiMyhSdHQzMixSc3MzMikiLEFUVFJJQlMoKSwgXAorIkNob29zZSAiIFNUUiAiIGVsZW1l bnRzIG9mIHR3byB2ZWN0b3JzIiwgXAoreyBcCisJZkhJREUoaW50IGk7KSBcCisJZm9yIChpID0g MDsgaSA8IE5FTDsgaSsrKSB7IFwKKwkJZlNFVCMjU0VUVFlQRShpLFJ4eFYsRlVOQyhmR0VUIyNH RVRUWVBFKGksUnh4ViksRlVOQyhmR0VUIyNHRVRUWVBFKGksUnR0ViksZkdFVCMjR0VUVFlQRShp LFJzc1YpKSkpOyBcCisJfSBcCit9KQorCisjZGVmaW5lIE1JTk1BWChTSE9SVFRZUEUsU0VUVFlQ RSxHRVRUWVBFLE5FTCkgXAorVk1JTk9STUFYKG1pbiwibWluaW11bSIsZk1JTixTSE9SVFRZUEUs U0VUVFlQRSxHRVRUWVBFLE5FTCkgXAorVk1JTk9STUFYKG1heCwibWF4aW11bSIsZk1BWCxTSE9S VFRZUEUsU0VUVFlQRSxHRVRUWVBFLE5FTCkKKworTUlOTUFYKGIsQllURSxCWVRFLDgpCitNSU5N QVgodWIsQllURSxVQllURSw4KQorTUlOTUFYKGgsSEFMRixIQUxGLDQpCitNSU5NQVgodWgsSEFM RixVSEFMRiw0KQorTUlOTUFYKHcsV09SRCxXT1JELDIpCitNSU5NQVgodXcsV09SRCxVV09SRCwy KQorCisjdW5kZWYgTUlOTUFYCisjdW5kZWYgVk1JTk9STUFYCisjdW5kZWYgVk1JTk9STUFYMwor CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyog VmVjdG9yIE1pbi9NYXgJCQkgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworCitRNklOU04oQTRfbW9kd3JhcHUsIlJkMzI9bW9kd3JhcChS czMyLFJ0MzIpIixBVFRSSUJTKCksCisiV3JhcCB0byBhbiB1bnNpZ25lZCBtb2R1bG8gYnVmZmVy IiwKK3sKKwlpZiAoUnNWIDwgMCkgeworCSAgICBSZFYgPSBSc1YgKyBmQ0FTVDR1KFJ0Vik7CisJ fSBlbHNlIGlmIChmQ0FTVDR1KFJzVikgPj0gZkNBU1Q0dShSdFYpKSB7CisJICAgIFJkViA9IFJz ViAtIGZDQVNUNHUoUnRWKTsKKwl9IGVsc2UgeworIAkgCQkgUmRWID0gUnNWOworICAgIH0KK30p CisKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2JyYW5jaC5pZGVmIGIvdGFy Z2V0L2hleGFnb24vaW1wb3J0ZWQvYnJhbmNoLmlkZWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNjAwZmVjOQotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9oZXhhZ29uL2lt cG9ydGVkL2JyYW5jaC5pZGVmCkBAIC0wLDAgKzEsMzI4IEBACisvKgorICogIENvcHlyaWdodChj KSAyMDE5LTIwMjAgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBS ZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us IG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMg cHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICov CisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8q IEp1bXAgaW5zdHJ1Y3Rpb25zCQkJICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworCisjZGVmaW5lIEFfSkRJUiBBX0pVTVAKKyNkZWZpbmUgQV9DSk5F V0RJUiBBX0pVTVAKKyNkZWZpbmUgQV9DSk9MRERJUiBBX0pVTVAKKyNkZWZpbmUgQV9ORVdWQUxV RUogQV9KVU1QLEFfRE9UTkVXVkFMVUUsQV9NRU1MSUtFX1BBQ0tFVF9SVUxFUworI2RlZmluZSBB X0pJTkRJUiBBX0pVTVAsQV9JTkRJUkVDVAorI2RlZmluZSBBX0pJTkRJUk5FVyBBX0pVTVAsQV9J TkRJUkVDVAorI2RlZmluZSBBX0pJTkRJUk9MRCBBX0pVTVAsQV9JTkRJUkVDVAorCitRNklOU04o SjJfanVtcCwianVtcCAjcjIyOjIiLEFUVFJJQlMoQV9KRElSKSwgImRpcmVjdCB1bmNvbmRpdGlv bmFsIGp1bXAiLAore2ZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsgZkJSQU5DSChmUkVBRF9Q QygpK3JpVixDT0ZfVFlQRV9KVU1QKTt9KQorCitRNklOU04oSjJfanVtcHIsImp1bXByIFJzMzIi LEFUVFJJQlMoQV9KSU5ESVIpLCAiaW5kaXJlY3QgdW5jb25kaXRpb25hbCBqdW1wIiwKK3tmSlVN UFIoUnNOLFJzVixDT0ZfVFlQRV9KVU1QUik7fSkKKworI2RlZmluZSBPTERDT05EX0pVTVAoVEFH LE9QRVIsT1BFUjIsQVRUUklCLERFU0NSLFNFTUFOVElDUykgXAorUTZJTlNOKFRBRyMjdCwiaWYg KFB1NCkgIk9QRVIiOm50ICJPUEVSMixBVFRSSUIsREVTQ1Ise2ZCUkFOQ0hfU1BFQ1VMQVRFX1NU QUxMKGZMU0JPTEQoUHVWKSwsU1BFQ1VMQVRFX05PVF9UQUtFTiwxMiwwKTsgaWYgKGZMU0JPTEQo UHVWKSkgeyBTRU1BTlRJQ1M7IH19KSBcCitRNklOU04oVEFHIyNmLCJpZiAoIVB1NCkgIk9QRVIi Om50ICJPUEVSMixBVFRSSUIsREVTQ1Ise2ZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JPTERO T1QoUHVWKSwsU1BFQ1VMQVRFX05PVF9UQUtFTiwxMiwwKTsgaWYgKGZMU0JPTEROT1QoUHVWKSkg eyBTRU1BTlRJQ1M7IH19KSBcCitRNklOU04oVEFHIyN0cHQsImlmIChQdTQpICJPUEVSIjp0ICJP UEVSMixBVFRSSUIsREVTQ1Ise2ZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JPTEQoUHVWKSws U1BFQ1VMQVRFX1RBS0VOLDEyLDApOyBpZiAoZkxTQk9MRChQdVYpKSB7IFNFTUFOVElDUzsgfX0p IFwKK1E2SU5TTihUQUcjI2ZwdCwiaWYgKCFQdTQpICJPUEVSIjp0ICJPUEVSMixBVFRSSUIsREVT Q1Ise2ZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JPTEROT1QoUHVWKSwsU1BFQ1VMQVRFX1RB S0VOLDEyLDApOyBpZiAoZkxTQk9MRE5PVChQdVYpKSB7IFNFTUFOVElDUzsgfX0pCisKK09MRENP TkRfSlVNUChKMl9qdW1wLCJqdW1wIiwiI3IxNToyIixBVFRSSUJTKEFfQ0pPTERESVIpLCJkaXJl Y3QgY29uZGl0aW9uYWwganVtcCIsCitmSU1NRVhUKHJpVik7ZlBDQUxJR04ocmlWKTsgZkJSQU5D SChmUkVBRF9QQygpK3JpVixDT0ZfVFlQRV9KVU1QKTspCisKK09MRENPTkRfSlVNUChKMl9qdW1w ciwianVtcHIiLCJSczMyIixBVFRSSUJTKEFfSklORElST0xEKSwiaW5kaXJlY3QgY29uZGl0aW9u YWwganVtcCIsCitmSlVNUFIoUnNOLFJzVixDT0ZfVFlQRV9KVU1QUik7KQorCisjZGVmaW5lIE5F V0NPTkRfSlVNUChUQUcsT1BFUixPUEVSMixBVFRSSUIsREVTQ1IsU0VNQU5USUNTKVwKK1E2SU5T TihUQUcjI3RuZXcsImlmIChQdTQubmV3KSAiT1BFUiI6bnQgIk9QRVIyLEFUVFJJQixERVNDUix7 ZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoZkxTQk5FVyhQdU4pLCwgU1BFQ1VMQVRFX05PVF9UQUtF TiAsIDEyLDApfSB7aWYoZkxTQk5FVyhQdU4pKXtTRU1BTlRJQ1M7fX0pXAorUTZJTlNOKFRBRyMj Zm5ldywiaWYgKCFQdTQubmV3KSAiT1BFUiI6bnQgIk9QRVIyLEFUVFJJQixERVNDUix7ZkJSQU5D SF9TUEVDVUxBVEVfU1RBTEwoZkxTQk5FV05PVChQdU4pLCwgU1BFQ1VMQVRFX05PVF9UQUtFTiAs IDEyLDApfSB7aWYoZkxTQk5FV05PVChQdU4pKXtTRU1BTlRJQ1M7fX0pXAorUTZJTlNOKFRBRyMj dG5ld3B0LCJpZiAoUHU0Lm5ldykgIk9QRVIiOnQgIk9QRVIyLEFUVFJJQixERVNDUix7ZkJSQU5D SF9TUEVDVUxBVEVfU1RBTEwoZkxTQk5FVyhQdU4pLCwgU1BFQ1VMQVRFX1RBS0VOICwgMTIsMCl9 IHtpZihmTFNCTkVXKFB1Tikpe1NFTUFOVElDUzt9fSlcCitRNklOU04oVEFHIyNmbmV3cHQsImlm ICghUHU0Lm5ldykgIk9QRVIiOnQgIk9QRVIyLEFUVFJJQixERVNDUix7ZkJSQU5DSF9TUEVDVUxB VEVfU1RBTEwoZkxTQk5FV05PVChQdU4pLCwgU1BFQ1VMQVRFX1RBS0VOICwgMTIsMCl9IHtpZihm TFNCTkVXTk9UKFB1Tikpe1NFTUFOVElDUzt9fSkKKworTkVXQ09ORF9KVU1QKEoyX2p1bXAsImp1 bXAiLCIjcjE1OjIiLEFUVFJJQlMoQV9DSk5FV0RJUixBX0FSQ0hWMiksImRpcmVjdCBjb25kaXRp b25hbCBqdW1wIiwKK2ZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsgZkJSQU5DSChmUkVBRF9Q QygpK3JpVixDT0ZfVFlQRV9KVU1QTkVXKTspCisKK05FV0NPTkRfSlVNUChKMl9qdW1wciwianVt cHIiLCJSczMyIixBVFRSSUJTKEFfSklORElSTkVXLEFfQVJDSFYzKSwiaW5kaXJlY3QgY29uZGl0 aW9uYWwganVtcCIsCitmSlVNUFIoUnNOLFJzVixDT0ZfVFlQRV9KVU1QUik7KQorCisKKworUTZJ TlNOKEo0X2hpbnRqdW1wciwiaGludGpyKFJzMzIpIixBVFRSSUJTKEFfSklORElSKSwiaGludCBp bmRpcmVjdCBjb25kaXRpb25hbCBqdW1wIiwKK3tmSElOVEpSKFJzVik7fSkKKworCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogQ29tcG91bmQgQ29t cGFyZS1KdW1wcwkJICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworUTZJTlNOKEoyX2p1bXByeiwiaWYgKFJzMzIhPSMwKSBqdW1wOm50ICNyMTM6 MiIsQVRUUklCUyhBX0NKTkVXRElSLEFfQVJDSFYzKSwiZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAg aWYgcmVnaXN0ZXIgdHJ1ZSIsCit7ZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoKFJzViE9MCksICwg U1BFQ1VMQVRFX05PVF9UQUtFTiwxMiwwKSBpZiAoUnNWICE9IDApIHsgZkJSQU5DSChmUkVBRF9Q QygpK3JpVixDT0ZfVFlQRV9KVU1QKTt9fSkKKworUTZJTlNOKEoyX2p1bXBybnosImlmIChSczMy PT0jMCkganVtcDpudCAjcjEzOjIiLEFUVFJJQlMoQV9DSk5FV0RJUixBX0FSQ0hWMyksImRpcmVj dCBjb25kaXRpb25hbCBqdW1wIGlmIHJlZ2lzdGVyIGZhbHNlIiwKK3tmQlJBTkNIX1NQRUNVTEFU RV9TVEFMTCgoUnNWPT0wKSwgLCBTUEVDVUxBVEVfTk9UX1RBS0VOLDEyLDApIGlmIChSc1YgPT0g MCkge2ZCUkFOQ0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUCk7fX0pCisKK1E2SU5TTihK Ml9qdW1wcnpwdCwiaWYgKFJzMzIhPSMwKSBqdW1wOnQgI3IxMzoyIixBVFRSSUJTKEFfQ0pORVdE SVIsQV9BUkNIVjMpLCJkaXJlY3QgY29uZGl0aW9uYWwganVtcCBpZiByZWdpc3RlciB0cnVlIiwK K3tmQlJBTkNIX1NQRUNVTEFURV9TVEFMTCgoUnNWIT0wKSwgLCBTUEVDVUxBVEVfVEFLRU4sMTIs MCkgaWYgKFJzViAhPSAwKSB7IGZCUkFOQ0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUCk7 fX0pCisKK1E2SU5TTihKMl9qdW1wcm56cHQsImlmIChSczMyPT0jMCkganVtcDp0ICNyMTM6MiIs QVRUUklCUyhBX0NKTkVXRElSLEFfQVJDSFYzKSwiZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAgaWYg cmVnaXN0ZXIgZmFsc2UiLAore2ZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKChSc1Y9PTApLCAsIFNQ RUNVTEFURV9UQUtFTiwxMiwwKSBpZiAoUnNWID09IDApIHtmQlJBTkNIKGZSRUFEX1BDKCkrcmlW LENPRl9UWVBFX0pVTVApO319KQorCitRNklOU04oSjJfanVtcHJndGV6LCJpZiAoUnMzMj49IzAp IGp1bXA6bnQgI3IxMzoyIixBVFRSSUJTKEFfQ0pORVdESVIsQV9BUkNIVjMpLCJkaXJlY3QgY29u ZGl0aW9uYWwganVtcCBpZiByZWdpc3RlciBncmVhdGVyIG9yIGVxdWFsIHRvIHplcm8iLAore2ZC UkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKChSc1Y+PTApLCAsIFNQRUNVTEFURV9OT1RfVEFLRU4sMTIs MCkgaWYgKFJzVj49MCkgeyBmQlJBTkNIKGZSRUFEX1BDKCkrcmlWLENPRl9UWVBFX0pVTVApO319 KQorCitRNklOU04oSjJfanVtcHJndGV6cHQsImlmIChSczMyPj0jMCkganVtcDp0ICNyMTM6MiIs QVRUUklCUyhBX0NKTkVXRElSLEFfQVJDSFYzKSwiZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAgaWYg cmVnaXN0ZXIgZ3JlYXRlciBvciBlcXVhbCB0byB6ZXJvIiwKK3tmQlJBTkNIX1NQRUNVTEFURV9T VEFMTCgoUnNWPj0wKSwgLCBTUEVDVUxBVEVfVEFLRU4sMTIsMCkgaWYgKFJzVj49MCkgeyBmQlJB TkNIKGZSRUFEX1BDKCkrcmlWLENPRl9UWVBFX0pVTVApO319KQorCitRNklOU04oSjJfanVtcHJs dGV6LCJpZiAoUnMzMjw9IzApIGp1bXA6bnQgI3IxMzoyIixBVFRSSUJTKEFfQ0pORVdESVIsQV9B UkNIVjMpLCJkaXJlY3QgY29uZGl0aW9uYWwganVtcCBpZiByZWdpc3RlciBsZXNzIHRoYW4gb3Ig ZXF1YWwgdG8gemVybyIsCit7ZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoKFJzVjw9MCksICwgU1BF Q1VMQVRFX05PVF9UQUtFTiwxMiwwKSBpZiAoUnNWPD0wKSB7IGZCUkFOQ0goZlJFQURfUEMoKSty aVYsQ09GX1RZUEVfSlVNUCk7fX0pCisKK1E2SU5TTihKMl9qdW1wcmx0ZXpwdCwiaWYgKFJzMzI8 PSMwKSBqdW1wOnQgI3IxMzoyIixBVFRSSUJTKEFfQ0pORVdESVIsQV9BUkNIVjMpLCJkaXJlY3Qg Y29uZGl0aW9uYWwganVtcCBpZiByZWdpc3RlciBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gemVybyIs Cit7ZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoKFJzVjw9MCksICwgU1BFQ1VMQVRFX1RBS0VOLDEy LDApIGlmIChSc1Y8PTApIHsgZkJSQU5DSChmUkVBRF9QQygpK3JpVixDT0ZfVFlQRV9KVU1QKTt9 fSkKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisvKiBWNCBDb21wb3VuZCBDb21wYXJlLUp1bXBzCQkgKi8KKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworLyogVjQgY29tcG91bmQgY29tcGFyZSBq dW1wcyAoQ0opICovCisjZGVmaW5lIFNURF9DTVBKVU1QKFRBRyxUU1QsVFNUU0VNKVwKK1E2SU5T TihKNF8jI1RBRyMjX3RwMF9qdW1wX250LCAicDA9IlRTVCI7IGlmIChwMC5uZXcpIGp1bXA6bnQg I3I5OjIiLCBBVFRSSUJTKEFfQ0pORVdESVIsQV9ORVdDTVBKVU1QKSwiY29tcG91bmQgY29tcGFy ZS1qdW1wIiwge2ZQQVJUMShmV1JJVEVfUDAoZjhCSVRTT0YoVFNUU0VNKSkpICBmQlJBTkNIX1NQ RUNVTEFURV9TVEFMTChmTFNCTkVXMCwsU1BFQ1VMQVRFX05PVF9UQUtFTiwxMywwKSAgaWYgKGZM U0JORVcwKSB7ZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOyBmQlJBTkNIKGZSRUFEX1BDKCkr cmlWLENPRl9UWVBFX0pVTVApO319KVwKK1E2SU5TTihKNF8jI1RBRyMjX2ZwMF9qdW1wX250LCAi cDA9IlRTVCI7IGlmICghcDAubmV3KSBqdW1wOm50ICNyOToyIiwgQVRUUklCUyhBX0NKTkVXRElS LEFfTkVXQ01QSlVNUCksImNvbXBvdW5kIGNvbXBhcmUtanVtcCIse2ZQQVJUMShmV1JJVEVfUDAo ZjhCSVRTT0YoVFNUU0VNKSkpICBmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCTkVXME5PVCws U1BFQ1VMQVRFX05PVF9UQUtFTiwxMywwKSBpZiAoZkxTQk5FVzBOT1QpIHtmSU1NRVhUKHJpVik7 IGZQQ0FMSUdOKHJpVik7IGZCUkFOQ0goZlJFQURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUCk7fX0p XAorUTZJTlNOKEo0XyMjVEFHIyNfdHAwX2p1bXBfdCwgICJwMD0iVFNUIjsgaWYgKHAwLm5ldykg anVtcDp0ICNyOToyIiwgQVRUUklCUyhBX0NKTkVXRElSLEFfTkVXQ01QSlVNUCksImNvbXBvdW5k IGNvbXBhcmUtanVtcCIsICB7ZlBBUlQxKGZXUklURV9QMChmOEJJVFNPRihUU1RTRU0pKSkgIGZC UkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JORVcwLCxTUEVDVUxBVEVfVEFLRU4sMTMsMCkgICAg ICBpZiAoZkxTQk5FVzApIHtmSU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJpVik7IGZCUkFOQ0goZlJF QURfUEMoKStyaVYsQ09GX1RZUEVfSlVNUCk7fX0pXAorUTZJTlNOKEo0XyMjVEFHIyNfZnAwX2p1 bXBfdCwgICJwMD0iVFNUIjsgaWYgKCFwMC5uZXcpIGp1bXA6dCAjcjk6MiIsIEFUVFJJQlMoQV9D Sk5FV0RJUixBX05FV0NNUEpVTVApLCJjb21wb3VuZCBjb21wYXJlLWp1bXAiLCB7ZlBBUlQxKGZX UklURV9QMChmOEJJVFNPRihUU1RTRU0pKSkgIGZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JO RVcwTk9ULCxTUEVDVUxBVEVfVEFLRU4sMTMsMCkgICAgIGlmIChmTFNCTkVXME5PVCkge2ZJTU1F WFQocmlWKTsgZlBDQUxJR04ocmlWKTsgZkJSQU5DSChmUkVBRF9QQygpK3JpVixDT0ZfVFlQRV9K VU1QKTt9fSlcCitRNklOU04oSjRfIyNUQUcjI190cDFfanVtcF9udCwgInAxPSJUU1QiOyBpZiAo cDEubmV3KSBqdW1wOm50ICNyOToyIiwgQVRUUklCUyhBX0NKTkVXRElSLEFfTkVXQ01QSlVNUCks ImNvbXBvdW5kIGNvbXBhcmUtanVtcCIsIHtmUEFSVDEoZldSSVRFX1AxKGY4QklUU09GKFRTVFNF TSkpKSAgZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoZkxTQk5FVzEsLFNQRUNVTEFURV9OT1RfVEFL RU4sMTMsMCkgIGlmIChmTFNCTkVXMSkge2ZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsgZkJS QU5DSChmUkVBRF9QQygpK3JpVixDT0ZfVFlQRV9KVU1QKTt9fSlcCitRNklOU04oSjRfIyNUQUcj I19mcDFfanVtcF9udCwgInAxPSJUU1QiOyBpZiAoIXAxLm5ldykganVtcDpudCAjcjk6MiIsIEFU VFJJQlMoQV9DSk5FV0RJUixBX05FV0NNUEpVTVApLCJjb21wb3VuZCBjb21wYXJlLWp1bXAiLHtm UEFSVDEoZldSSVRFX1AxKGY4QklUU09GKFRTVFNFTSkpKSAgZkJSQU5DSF9TUEVDVUxBVEVfU1RB TEwoZkxTQk5FVzFOT1QsLFNQRUNVTEFURV9OT1RfVEFLRU4sMTMsMCkgaWYgKGZMU0JORVcxTk9U KSB7ZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOyBmQlJBTkNIKGZSRUFEX1BDKCkrcmlWLENP Rl9UWVBFX0pVTVApO319KVwKK1E2SU5TTihKNF8jI1RBRyMjX3RwMV9qdW1wX3QsICAicDE9IlRT VCI7IGlmIChwMS5uZXcpIGp1bXA6dCAjcjk6MiIsIEFUVFJJQlMoQV9DSk5FV0RJUixBX05FV0NN UEpVTVApLCJjb21wb3VuZCBjb21wYXJlLWp1bXAiLCAge2ZQQVJUMShmV1JJVEVfUDEoZjhCSVRT T0YoVFNUU0VNKSkpICBmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCTkVXMSwsU1BFQ1VMQVRF X1RBS0VOLDEzLDApICAgICAgaWYgKGZMU0JORVcxKSB7ZklNTUVYVChyaVYpOyBmUENBTElHTihy aVYpOyBmQlJBTkNIKGZSRUFEX1BDKCkrcmlWLENPRl9UWVBFX0pVTVApO319KVwKK1E2SU5TTihK NF8jI1RBRyMjX2ZwMV9qdW1wX3QsICAicDE9IlRTVCI7IGlmICghcDEubmV3KSBqdW1wOnQgI3I5 OjIiLCBBVFRSSUJTKEFfQ0pORVdESVIsQV9ORVdDTVBKVU1QKSwiY29tcG91bmQgY29tcGFyZS1q dW1wIiwge2ZQQVJUMShmV1JJVEVfUDEoZjhCSVRTT0YoVFNUU0VNKSkpICBmQlJBTkNIX1NQRUNV TEFURV9TVEFMTChmTFNCTkVXMU5PVCwsU1BFQ1VMQVRFX1RBS0VOLDEzLDApICAgICBpZiAoZkxT Qk5FVzFOT1QpIHtmSU1NRVhUKHJpVik7IGZQQ0FMSUdOKHJpVik7IGZCUkFOQ0goZlJFQURfUEMo KStyaVYsQ09GX1RZUEVfSlVNUCk7fX0pCisKKworU1REX0NNUEpVTVAoY21wZXFpLCJjbXAuZXEo UnMxNiwjVTUpIiwoUnNWPT1VaVYpKQorU1REX0NNUEpVTVAoY21wZ3RpLCJjbXAuZ3QoUnMxNiwj VTUpIiwoUnNWPlVpVikpCitTVERfQ01QSlVNUChjbXBndHVpLCJjbXAuZ3R1KFJzMTYsI1U1KSIs KGZDQVNUNHUoUnNWKT5VaVYpKQorCitTVERfQ01QSlVNUChjbXBlcW4xLCJjbXAuZXEoUnMxNiwj LTEpIiwoUnNWPT0tMSkpCitTVERfQ01QSlVNUChjbXBndG4xLCJjbXAuZ3QoUnMxNiwjLTEpIiwo UnNWPi0xKSkKK1NURF9DTVBKVU1QKHRzdGJpdDAsInRzdGJpdChSczE2LCMwKSIsKFJzViAmIDEp KQorCitTVERfQ01QSlVNUChjbXBlcSwiY21wLmVxKFJzMTYsUnQxNikiLChSc1Y9PVJ0VikpCitT VERfQ01QSlVNUChjbXBndCwiY21wLmd0KFJzMTYsUnQxNikiLChSc1Y+UnRWKSkKK1NURF9DTVBK VU1QKGNtcGd0dSwiY21wLmd0dShSczE2LFJ0MTYpIiwoZkNBU1Q0dShSc1YpPlJ0VikpCisKKwor CisvKiBWNCBqdW1wIGFuZCB0cmFuc2ZlciAoQ0opICovCitRNklOU04oSjRfanVtcHNldGksIlJk MTY9I1U2IDsganVtcCAjcjk6MiIsQVRUUklCUyhBX0pESVIpLCAiZGlyZWN0IHVuY29uZGl0aW9u YWwganVtcCBhbmQgc2V0IHJlZ2lzdGVyIHRvIGltbWVkaWF0ZSIsCit7ZklNTUVYVChyaVYpOyBm UENBTElHTihyaVYpOyBSZFY9VWlWOyBmQlJBTkNIKGZSRUFEX1BDKCkrcmlWLENPRl9UWVBFX0pV TVApO30pCisKK1E2SU5TTihKNF9qdW1wc2V0ciwiUmQxNj1SczE2IDsganVtcCAjcjk6MiIsQVRU UklCUyhBX0pESVIpLCAiZGlyZWN0IHVuY29uZGl0aW9uYWwganVtcCBhbmQgdHJhbnNmZXIgcmVn aXN0ZXIiLAore2ZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsgUmRWPVJzVjsgZkJSQU5DSChm UkVBRF9QQygpK3JpVixDT0ZfVFlQRV9KVU1QKTt9KQorCisKKy8qIFY0IG5ldy12YWx1ZSBqdW1w cyAoTkNKKSAqLworI2RlZmluZSBTVERfQ01QSlVNUE5FV1JTKFRBRyxUU1QsVFNUU0VNKVwKK1E2 SU5TTihKNF8jI1RBRyMjX2p1bXBudl90LCAiaWYgKCJUU1QiKSBqdW1wOnQgI3I5OjIiLCBBVFRS SUJTKEFfTkVXVkFMVUVKKSwiY29tcG91bmQgY29tcGFyZS1qdW1wIix7ZkJSQU5DSF9TUEVDVUxB VEVfU1RBTEwoVFNUU0VNLCxTUEVDVUxBVEVfVEFLRU4sMTMsMCk7aWYgKFRTVFNFTSkge2ZJTU1F WFQocmlWKTsgZlBDQUxJR04ocmlWKTsgZkJSQU5DSChmUkVBRF9QQygpK3JpVixDT0ZfVFlQRV9K VU1QKTt9fSlcCitRNklOU04oSjRfIyNUQUcjI19qdW1wbnZfbnQsImlmICgiVFNUIikganVtcDpu dCAjcjk6MiIsQVRUUklCUyhBX05FV1ZBTFVFSiksImNvbXBvdW5kIGNvbXBhcmUtanVtcCIse2ZC UkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKFRTVFNFTSwsU1BFQ1VMQVRFX05PVF9UQUtFTiwxMywwKTsg aWYgKFRTVFNFTSkge2ZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsgZkJSQU5DSChmUkVBRF9Q QygpK3JpVixDT0ZfVFlQRV9KVU1QKTt9fSkKKworCisKKworU1REX0NNUEpVTVBORVdSUyhjbXBl cWlfdCwiY21wLmVxKE5zOC5uZXcsI1U1KSIsKGZORVdSRUcoTnNOKT09KFVpVikpKQorU1REX0NN UEpVTVBORVdSUyhjbXBlcWlfZiwiIWNtcC5lcShOczgubmV3LCNVNSkiLChmTkVXUkVHKE5zTikh PShVaVYpKSkKK1NURF9DTVBKVU1QTkVXUlMoY21wZ3RpX3QsImNtcC5ndChOczgubmV3LCNVNSki LChmTkVXUkVHKE5zTik+KFVpVikpKQorU1REX0NNUEpVTVBORVdSUyhjbXBndGlfZiwiIWNtcC5n dChOczgubmV3LCNVNSkiLCEoZk5FV1JFRyhOc04pPihVaVYpKSkKK1NURF9DTVBKVU1QTkVXUlMo Y21wZ3R1aV90LCJjbXAuZ3R1KE5zOC5uZXcsI1U1KSIsKGZDQVNUNHUoZk5FV1JFRyhOc04pKT4o VWlWKSkpCitTVERfQ01QSlVNUE5FV1JTKGNtcGd0dWlfZiwiIWNtcC5ndHUoTnM4Lm5ldywjVTUp IiwhKGZDQVNUNHUoZk5FV1JFRyhOc04pKT4oVWlWKSkpCisKKworU1REX0NNUEpVTVBORVdSUyhj bXBlcW4xX3QsImNtcC5lcShOczgubmV3LCMtMSkiLChmTkVXUkVHKE5zTik9PSgtMSkpKQorU1RE X0NNUEpVTVBORVdSUyhjbXBlcW4xX2YsIiFjbXAuZXEoTnM4Lm5ldywjLTEpIiwoZk5FV1JFRyhO c04pIT0oLTEpKSkKK1NURF9DTVBKVU1QTkVXUlMoY21wZ3RuMV90LCJjbXAuZ3QoTnM4Lm5ldywj LTEpIiwoZk5FV1JFRyhOc04pPigtMSkpKQorU1REX0NNUEpVTVBORVdSUyhjbXBndG4xX2YsIiFj bXAuZ3QoTnM4Lm5ldywjLTEpIiwhKGZORVdSRUcoTnNOKT4oLTEpKSkKK1NURF9DTVBKVU1QTkVX UlModHN0Yml0MF90LCJ0c3RiaXQoTnM4Lm5ldywjMCkiLCgoZk5FV1JFRyhOc04pKSAmIDEpKQor U1REX0NNUEpVTVBORVdSUyh0c3RiaXQwX2YsIiF0c3RiaXQoTnM4Lm5ldywjMCkiLCEoKGZORVdS RUcoTnNOKSkgJiAxKSkKKworCitTVERfQ01QSlVNUE5FV1JTKGNtcGVxX3QsICJjbXAuZXEoTnM4 Lm5ldyxSdDMyKSIsIChmTkVXUkVHKE5zTik9PVJ0VikpCitTVERfQ01QSlVNUE5FV1JTKGNtcGd0 X3QsICJjbXAuZ3QoTnM4Lm5ldyxSdDMyKSIsIChmTkVXUkVHKE5zTik+UnRWKSkKK1NURF9DTVBK VU1QTkVXUlMoY21wZ3R1X3QsImNtcC5ndHUoTnM4Lm5ldyxSdDMyKSIsKGZDQVNUNHUoZk5FV1JF RyhOc04pKT5mQ0FTVDR1KFJ0VikpKQorU1REX0NNUEpVTVBORVdSUyhjbXBsdF90LCAiY21wLmd0 KFJ0MzIsTnM4Lm5ldykiLCAoUnRWPmZORVdSRUcoTnNOKSkpCitTVERfQ01QSlVNUE5FV1JTKGNt cGx0dV90LCJjbXAuZ3R1KFJ0MzIsTnM4Lm5ldykiLChmQ0FTVDR1KFJ0Vik+ZkNBU1Q0dShmTkVX UkVHKE5zTikpKSkKK1NURF9DTVBKVU1QTkVXUlMoY21wZXFfZiwgIiFjbXAuZXEoTnM4Lm5ldyxS dDMyKSIsIChmTkVXUkVHKE5zTikhPVJ0VikpCitTVERfQ01QSlVNUE5FV1JTKGNtcGd0X2YsICIh Y21wLmd0KE5zOC5uZXcsUnQzMikiLCAhKGZORVdSRUcoTnNOKT5SdFYpKQorU1REX0NNUEpVTVBO RVdSUyhjbXBndHVfZiwiIWNtcC5ndHUoTnM4Lm5ldyxSdDMyKSIsIShmQ0FTVDR1KGZORVdSRUco TnNOKSk+ZkNBU1Q0dShSdFYpKSkKK1NURF9DTVBKVU1QTkVXUlMoY21wbHRfZiwgIiFjbXAuZ3Qo UnQzMixOczgubmV3KSIsICEoUnRWPmZORVdSRUcoTnNOKSkpCitTVERfQ01QSlVNUE5FV1JTKGNt cGx0dV9mLCIhY21wLmd0dShSdDMyLE5zOC5uZXcpIiwhKGZDQVNUNHUoUnRWKT5mQ0FTVDR1KGZO RVdSRUcoTnNOKSkpKQorCisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCisvKiBTdWJyb3V0aW5lIENhbGwgaW5zdHJ1Y3Rpb25zCSAgICAgICov CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVm aW5lIENESVJfU1REICAgQV9DQUxMCisjZGVmaW5lIENJTkRJUl9TVEQgQV9DQUxMLEFfSU5ESVJF Q1QKKworUTZJTlNOKEoyX2NhbGwsImNhbGwgI3IyMjoyIixBVFRSSUJTKENESVJfU1REKSwgImRp cmVjdCB1bmNvbmRpdGlvbmFsIGNhbGwiLAore2ZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsg ZkNBTEwoZlJFQURfUEMoKStyaVYpOyB9KQorCitRNklOU04oSjJfY2FsbHQsImlmIChQdTQpIGNh bGwgI3IxNToyIixBVFRSSUJTKENESVJfU1REKSwiZGlyZWN0IGNvbmRpdGlvbmFsIGNhbGwgaWYg dHJ1ZSIsCit7ZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOyBmQlJBTkNIX1NQRUNVTEFURV9T VEFMTChmTFNCT0xEKFB1ViksLFNQRUNVTEFURV9OT1RfVEFLRU4sMTIsMCk7IGlmIChmTFNCT0xE KFB1VikpIHsgZkNBTEwoZlJFQURfUEMoKStyaVYpOyB9fSkKKworUTZJTlNOKEoyX2NhbGxmLCJp ZiAoIVB1NCkgY2FsbCAjcjE1OjIiLEFUVFJJQlMoQ0RJUl9TVEQpLCJkaXJlY3QgY29uZGl0aW9u YWwgY2FsbCBpZiBmYWxzZSIsCit7ZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOyBmQlJBTkNI X1NQRUNVTEFURV9TVEFMTChmTFNCT0xETk9UKFB1ViksLFNQRUNVTEFURV9OT1RfVEFLRU4sMTIs MCk7aWYgKGZMU0JPTEROT1QoUHVWKSkgeyBmQ0FMTChmUkVBRF9QQygpK3JpVik7IH19KQorCitR NklOU04oSjJfY2FsbHIsImNhbGxyIFJzMzIiLEFUVFJJQlMoQ0lORElSX1NURCksICJpbmRpcmVj dCB1bmNvbmRpdGlvbmFsIGNhbGwiLAoreyBmQ0FMTFIoUnNWKTsgfSkKKworUTZJTlNOKEoyX2Nh bGxydCwiaWYgKFB1NCkgY2FsbHIgUnMzMiIsQVRUUklCUyhDSU5ESVJfU1REKSwiaW5kaXJlY3Qg Y29uZGl0aW9uYWwgY2FsbCBpZiB0cnVlIiwKK3tmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNC T0xEKFB1ViksLFNQRUNVTEFURV9OT1RfVEFLRU4sMTIsMCk7aWYgKGZMU0JPTEQoUHVWKSkgeyBm Q0FMTFIoUnNWKTsgfX0pCisKK1E2SU5TTihKMl9jYWxscmYsImlmICghUHU0KSBjYWxsciBSczMy IixBVFRSSUJTKENJTkRJUl9TVEQpLCJpbmRpcmVjdCBjb25kaXRpb25hbCBjYWxsIGlmIGZhbHNl IiwKK3tmQlJBTkNIX1NQRUNVTEFURV9TVEFMTChmTFNCT0xETk9UKFB1ViksLFNQRUNVTEFURV9O T1RfVEFLRU4sMTIsMCk7aWYgKGZMU0JPTEROT1QoUHVWKSkgeyBmQ0FMTFIoUnNWKTsgfX0pCisK KworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisv KiBIVyBMb29wIGluc3RydWN0aW9ucwkJICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5TTihKMl9sb29wMHIsImxvb3AwKCNyNzoy LFJzMzIpIixBVFRSSUJTKCksIkluaXRpYWxpemUgSFcgbG9vcCAwIiwKK3sgZklNTUVYVChyaVYp OyBmUENBTElHTihyaVYpOworICBmV1JJVEVfTE9PUF9SRUdTMCgvKnNhLGxjKi8gZlJFQURfUEMo KStyaVYsIFJzVik7CisgIGZTRVRfTFBDRkcoMCk7Cit9KQorCitRNklOU04oSjJfbG9vcDFyLCJs b29wMSgjcjc6MixSczMyKSIsQVRUUklCUygpLCJJbml0aWFsaXplIEhXIGxvb3AgMSIsCit7IGZJ TU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsKKyAgZldSSVRFX0xPT1BfUkVHUzEoLypzYSxsYyov IGZSRUFEX1BDKCkrcmlWLCBSc1YpOworfSkKKworUTZJTlNOKEoyX2xvb3AwaSwibG9vcDAoI3I3 OjIsI1UxMCkiLEFUVFJJQlMoKSwiSW5pdGlhbGl6ZSBIVyBsb29wIDAiLAoreyBmSU1NRVhUKHJp Vik7IGZQQ0FMSUdOKHJpVik7CisgIGZXUklURV9MT09QX1JFR1MwKC8qc2EsbGMqLyBmUkVBRF9Q QygpK3JpViwgVWlWKTsKKyAgZlNFVF9MUENGRygwKTsKK30pCisKK1E2SU5TTihKMl9sb29wMWks Imxvb3AxKCNyNzoyLCNVMTApIixBVFRSSUJTKCksIkluaXRpYWxpemUgSFcgbG9vcCAxIiwKK3sg ZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOworICBmV1JJVEVfTE9PUF9SRUdTMSgvKnNhLGxj Ki8gZlJFQURfUEMoKStyaVYsIFVpVik7Cit9KQorCisKK1E2SU5TTihKMl9wbG9vcDFzciwicDM9 c3AxbG9vcDAoI3I3OjIsUnMzMikiLEFUVFJJQlMoQV9BUkNIVjIpLCJJbml0aWFsaXplIEhXIGxv b3AgMCIsCit7IGZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsKKyAgZldSSVRFX0xPT1BfUkVH UzAoLypzYSxsYyovIGZSRUFEX1BDKCkrcmlWLCBSc1YpOworICBmU0VUX0xQQ0ZHKDEpOworICBm V1JJVEVfUDMoMCk7Cit9KQorUTZJTlNOKEoyX3Bsb29wMXNpLCJwMz1zcDFsb29wMCgjcjc6Miwj VTEwKSIsQVRUUklCUyhBX0FSQ0hWMiksIkluaXRpYWxpemUgSFcgbG9vcCAwIiwKK3sgZklNTUVY VChyaVYpOyBmUENBTElHTihyaVYpOworICBmV1JJVEVfTE9PUF9SRUdTMCgvKnNhLGxjKi8gZlJF QURfUEMoKStyaVYsIFVpVik7CisgIGZTRVRfTFBDRkcoMSk7CisgIGZXUklURV9QMygwKTsKK30p CisKK1E2SU5TTihKMl9wbG9vcDJzciwicDM9c3AybG9vcDAoI3I3OjIsUnMzMikiLEFUVFJJQlMo QV9BUkNIVjIpLCJJbml0aWFsaXplIEhXIGxvb3AgMCIsCit7IGZJTU1FWFQocmlWKTsgZlBDQUxJ R04ocmlWKTsKKyAgZldSSVRFX0xPT1BfUkVHUzAoLypzYSxsYyovIGZSRUFEX1BDKCkrcmlWLCBS c1YpOworICBmU0VUX0xQQ0ZHKDIpOworICBmV1JJVEVfUDMoMCk7Cit9KQorUTZJTlNOKEoyX3Bs b29wMnNpLCJwMz1zcDJsb29wMCgjcjc6MiwjVTEwKSIsQVRUUklCUyhBX0FSQ0hWMiksIkluaXRp YWxpemUgSFcgbG9vcCAwIiwKK3sgZklNTUVYVChyaVYpOyBmUENBTElHTihyaVYpOworICBmV1JJ VEVfTE9PUF9SRUdTMCgvKnNhLGxjKi8gZlJFQURfUEMoKStyaVYsIFVpVik7CisgIGZTRVRfTFBD RkcoMik7CisgIGZXUklURV9QMygwKTsKK30pCisKK1E2SU5TTihKMl9wbG9vcDNzciwicDM9c3Az bG9vcDAoI3I3OjIsUnMzMikiLEFUVFJJQlMoQV9BUkNIVjIpLCJJbml0aWFsaXplIEhXIGxvb3Ag MCIsCit7IGZJTU1FWFQocmlWKTsgZlBDQUxJR04ocmlWKTsKKyAgZldSSVRFX0xPT1BfUkVHUzAo LypzYSxsYyovIGZSRUFEX1BDKCkrcmlWLCBSc1YpOworICBmU0VUX0xQQ0ZHKDMpOworICBmV1JJ VEVfUDMoMCk7Cit9KQorUTZJTlNOKEoyX3Bsb29wM3NpLCJwMz1zcDNsb29wMCgjcjc6MiwjVTEw KSIsQVRUUklCUyhBX0FSQ0hWMiksIkluaXRpYWxpemUgSFcgbG9vcCAwIiwKK3sgZklNTUVYVChy aVYpOyBmUENBTElHTihyaVYpOworICBmV1JJVEVfTE9PUF9SRUdTMCgvKnNhLGxjKi8gZlJFQURf UEMoKStyaVYsIFVpVik7CisgIGZTRVRfTFBDRkcoMyk7CisgIGZXUklURV9QMygwKTsKK30pCisK KworCitRNklOU04oSjJfZW5kbG9vcDAxLCJlbmRsb29wMDEiLEFUVFJJQlMoQV9IV0xPT1AwX0VO RCxBX0hXTE9PUDFfRU5EKSwiTG9vcGVuZCBmb3IgaW5uZXIgYW5kIG91dGVyIGxvb3AiLAorewor CisgIC8qIFYyOiBXaXRoIHByZWRpY2F0ZSBjb250cm9sICovCisgIGlmIChmR0VUX0xQQ0ZHKSB7 CisgICAgZkhJREUoIGlmIChmR0VUX0xQQ0ZHID49IDIpIHsgLyogTm90aGluZyAqLyB9IGVsc2Ug KQorICAgIGlmIChmR0VUX0xQQ0ZHPT0xKSB7CisgICAgICAgZldSSVRFX1AzKDB4ZmYpOworICAg IH0KKyAgICBmU0VUX0xQQ0ZHKGZHRVRfTFBDRkctMSk7CisgIH0KKworICAvKiBjaGVjayBpZiBp dGVyYXRlICovCisgIGlmIChmUkVBRF9MQzA+MSkgeworICAgIGZCUkFOQ0goZlJFQURfU0EwLENP Rl9UWVBFX0xPT1BFTkQwKTsKKyAgICAvKiBkZWNyZW1lbnQgbG9vcCBjb3VudCAqLworICAgIGZX UklURV9MQzAoZlJFQURfTEMwLTEpOworICB9IGVsc2UgeworICAgIC8qIGNoZWNrIGlmIGl0ZXJh dGUgKi8KKyAgICBpZiAoZlJFQURfTEMxPjEpIHsKKyAgICAgIGZCUkFOQ0goZlJFQURfU0ExLENP Rl9UWVBFX0xPT1BFTkQxKTsKKyAgICAgIC8qIGRlY3JlbWVudCBsb29wIGNvdW50ICovCisgICAg ICBmV1JJVEVfTEMxKGZSRUFEX0xDMS0xKTsKKyAgICB9CisgIH0KKworfSkKKworUTZJTlNOKEoy X2VuZGxvb3AwLCJlbmRsb29wMCIsQVRUUklCUyhBX0hXTE9PUDBfRU5EKSwiTG9vcGVuZCBmb3Ig aW5uZXIgbG9vcCIsCit7CisKKyAgLyogVjI6IFdpdGggcHJlZGljYXRlIGNvbnRyb2wgKi8KKyAg aWYgKGZHRVRfTFBDRkcpIHsKKyAgICBmSElERSggaWYgKGZHRVRfTFBDRkcgPj0gMikgeyAvKiBO b3RoaW5nICovIH0gZWxzZSApCisgICAgaWYgKGZHRVRfTFBDRkc9PTEpIHsKKyAgICAgICBmV1JJ VEVfUDMoMHhmZik7CisgICAgfQorICAgIGZTRVRfTFBDRkcoZkdFVF9MUENGRy0xKTsKKyAgfQor CisgIC8qIGNoZWNrIGlmIGl0ZXJhdGUgKi8KKyAgaWYgKGZSRUFEX0xDMD4xKSB7CisgICAgZkJS QU5DSChmUkVBRF9TQTAsQ09GX1RZUEVfTE9PUEVORDApOworICAgIC8qIGRlY3JlbWVudCBsb29w IGNvdW50ICovCisgICAgZldSSVRFX0xDMChmUkVBRF9MQzAtMSk7CisgIH0KK30pCisKK1E2SU5T TihKMl9lbmRsb29wMSwiZW5kbG9vcDEiLEFUVFJJQlMoQV9IV0xPT1AxX0VORCksIkxvb3BlbmQg Zm9yIG91dGVyIGxvb3AiLAoreworICAvKiBjaGVjayBpZiBpdGVyYXRlICovCisgIGlmIChmUkVB RF9MQzE+MSkgeworICAgIGZCUkFOQ0goZlJFQURfU0ExLENPRl9UWVBFX0xPT1BFTkQxKTsKKyAg ICAvKiBkZWNyZW1lbnQgbG9vcCBjb3VudCAqLworICAgIGZXUklURV9MQzEoZlJFQURfTEMxLTEp OworICB9Cit9KQorCisKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2NvbXBh cmUuaWRlZiBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2NvbXBhcmUuaWRlZgpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjk3ZWQ4Ci0tLSAvZGV2L251bGwKKysrIGIvdGFy Z2V0L2hleGFnb24vaW1wb3J0ZWQvY29tcGFyZS5pZGVmCkBAIC0wLDAgKzEsNjIxIEBACisvKgor ICogIENvcHlyaWdodChjKSAyMDE5LTIwMjAgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIElu Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorICovCisKKy8qCisgKiBDb21wYXJlIEluc3RydWN0aW9ucworICovCisKKwor CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogU2Nh bGFyIGNvbXBhcmUgaW5zdHJ1Y3Rpb25zCSAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNOKEMyX2NtcGVxLCJQZDQ9Y21wLmVx KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGZvciBFcXVhbCIsCit7UGRWPWY4QklU U09GKFJzVj09UnRWKTt9KQorCitRNklOU04oQzJfY21wZ3QsIlBkND1jbXAuZ3QoUnMzMixSdDMy KSIsQVRUUklCUygpLAorIkNvbXBhcmUgZm9yIHNpZ25lZCBHcmVhdGVyIFRoYW4iLAore1BkVj1m OEJJVFNPRihSc1Y+UnRWKTt9KQorCitRNklOU04oQzJfY21wZ3R1LCJQZDQ9Y21wLmd0dShSczMy LFJ0MzIpIixBVFRSSUJTKCksCisiQ29tcGFyZSBmb3IgR3JlYXRlciBUaGFuIFVuc2lnbmVkIiwK K3tQZFY9ZjhCSVRTT0YoZkNBU1Q0dShSc1YpPmZDQVNUNHUoUnRWKSk7fSkKKworUTZJTlNOKEMy X2NtcGVxcCwiUGQ0PWNtcC5lcShSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGZv ciBFcXVhbCIsCit7UGRWPWY4QklUU09GKFJzc1Y9PVJ0dFYpO30pCisKK1E2SU5TTihDMl9jbXBn dHAsIlBkND1jbXAuZ3QoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiQ29tcGFyZSBmb3Igc2ln bmVkIEdyZWF0ZXIgVGhhbiIsCit7UGRWPWY4QklUU09GKFJzc1Y+UnR0Vik7fSkKKworUTZJTlNO KEMyX2NtcGd0dXAsIlBkND1jbXAuZ3R1KFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkNvbXBh cmUgZm9yIEdyZWF0ZXIgVGhhbiBVbnNpZ25lZCIsCit7UGRWPWY4QklUU09GKGZDQVNUOHUoUnNz Vik+ZkNBU1Q4dShSdHRWKSk7fSkKKworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKy8qIENvbXBhcmUgYW5kIHB1dCByZXN1bHQgaW4gR1BSCSAg ICAgKi8KKy8qICB0eXBpY2FsbHkgZm9yIGZ1bmN0aW9uIEkvTwkgICAgICAgKi8KKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5TTihBNF9yY21w ZXFpLCJSZDMyPWNtcC5lcShSczMyLCNzOCkiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGZvciBFcXVh bCIsCit7ZklNTUVYVChzaVYpOyBSZFY9KFJzVj09c2lWKTsgfSkKKworUTZJTlNOKEE0X3JjbXBu ZXFpLCJSZDMyPSFjbXAuZXEoUnMzMiwjczgpIixBVFRSSUJTKCksCisiQ29tcGFyZSBmb3IgRXF1 YWwiLAore2ZJTU1FWFQoc2lWKTsgUmRWPShSc1YhPXNpVik7IH0pCisKKworUTZJTlNOKEE0X3Jj bXBlcSwiUmQzMj1jbXAuZXEoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkNvbXBhcmUgZm9yIEVx dWFsIiwKK3tSZFY9KFJzVj09UnRWKTsgfSkKKworUTZJTlNOKEE0X3JjbXBuZXEsIlJkMzI9IWNt cC5lcShSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiQ29tcGFyZSBmb3IgRXF1YWwiLAore1JkVj0o UnNWIT1SdFYpOyB9KQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKy8qIFNjYWxhciBjb21wYXJlIGluc3RydWN0aW9ucwkgICAgICAgKi8KKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworUTZJTlNO KEMyX2JpdHNzZXQsIlBkND1iaXRzc2V0KFJzMzIsUnQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAor IkNvbXBhcmUgZm9yIHNlbGVjdGVkIGJpdHMgc2V0IiwKK3tQZFY9ZjhCSVRTT0YoKFJzViZSdFYp PT1SdFYpO30pCisKK1E2SU5TTihDMl9iaXRzY2xyLCJQZDQ9Yml0c2NscihSczMyLFJ0MzIpIixB VFRSSUJTKEFfQVJDSFYyKSwKKyJDb21wYXJlIGZvciBzZWxlY3RlZCBiaXRzIGNsZWFyIiwKK3tQ ZFY9ZjhCSVRTT0YoKFJzViZSdFYpPT0wKTt9KQorCisKK1E2SU5TTihDNF9uYml0c3NldCwiUGQ0 PSFiaXRzc2V0KFJzMzIsUnQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkNvbXBhcmUgZm9yIHNl bGVjdGVkIGJpdHMgc2V0IiwKK3tQZFY9ZjhCSVRTT0YoKFJzViZSdFYpIT1SdFYpO30pCisKK1E2 SU5TTihDNF9uYml0c2NsciwiUGQ0PSFiaXRzY2xyKFJzMzIsUnQzMikiLEFUVFJJQlMoQV9BUkNI VjIpLAorIkNvbXBhcmUgZm9yIHNlbGVjdGVkIGJpdHMgY2xlYXIiLAore1BkVj1mOEJJVFNPRigo UnNWJlJ0VikhPTApO30pCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworLyogU2NhbGFyIGNvbXBhcmUgaW5zdHJ1Y3Rpb25zIFcvIGltbWVkaWF0 ZSAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisK K1E2SU5TTihDMl9jbXBlcWksIlBkND1jbXAuZXEoUnMzMiwjczEwKSIsQVRUUklCUygpLAorIkNv bXBhcmUgZm9yIEVxdWFsIiwKK3tmSU1NRVhUKHNpVik7IFBkVj1mOEJJVFNPRihSc1Y9PXNpVik7 fSkKKworUTZJTlNOKEMyX2NtcGd0aSwiUGQ0PWNtcC5ndChSczMyLCNzMTApIixBVFRSSUJTKCks CisiQ29tcGFyZSBmb3Igc2lnbmVkIEdyZWF0ZXIgVGhhbiIsCit7ZklNTUVYVChzaVYpOyBQZFY9 ZjhCSVRTT0YoUnNWPnNpVik7fSkKKworUTZJTlNOKEMyX2NtcGd0dWksIlBkND1jbXAuZ3R1KFJz MzIsI3U5KSIsQVRUUklCUygpLAorIkNvbXBhcmUgZm9yIEdyZWF0ZXIgVGhhbiBVbnNpZ25lZCIs Cit7ZklNTUVYVCh1aVYpOyBQZFY9ZjhCSVRTT0YoZkNBU1Q0dShSc1YpPmZDQVNUNHUodWlWKSk7 fSkKKworUTZJTlNOKEMyX2JpdHNjbHJpLCJQZDQ9Yml0c2NscihSczMyLCN1NikiLEFUVFJJQlMo QV9BUkNIVjIpLAorIkNvbXBhcmUgZm9yIHNlbGVjdGVkIGJpdHMgY2xlYXIiLAore1BkVj1mOEJJ VFNPRigoUnNWJnVpVik9PTApO30pCisKK1E2SU5TTihDNF9uYml0c2NscmksIlBkND0hYml0c2Ns cihSczMyLCN1NikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkNvbXBhcmUgZm9yIHNlbGVjdGVkIGJp dHMgY2xlYXIiLAore1BkVj1mOEJJVFNPRigoUnNWJnVpVikhPTApO30pCisKKworCisKK1E2SU5T TihDNF9jbXBuZXFpLCJQZDQ9IWNtcC5lcShSczMyLCNzMTApIixBVFRSSUJTKCksICJDb21wYXJl IGZvciBOb3QgRXF1YWwiLCB7ZklNTUVYVChzaVYpOyBQZFY9ZjhCSVRTT0YoUnNWIT1zaVYpO30p CitRNklOU04oQzRfY21wbHRlaSwiUGQ0PSFjbXAuZ3QoUnMzMiwjczEwKSIsQVRUUklCUygpLCAi Q29tcGFyZSBmb3IgTGVzcyBUaGFuIG9yIEVxdWFsIiwge2ZJTU1FWFQoc2lWKTsgUGRWPWY4QklU U09GKFJzVjw9c2lWKTt9KQorUTZJTlNOKEM0X2NtcGx0ZXVpLCJQZDQ9IWNtcC5ndHUoUnMzMiwj dTkpIixBVFRSSUJTKCksICJDb21wYXJlIGZvciBMZXNzIFRoYW4gb3IgRXF1YWwgVW5zaWduZWQi LCB7ZklNTUVYVCh1aVYpOyBQZFY9ZjhCSVRTT0YoZkNBU1Q0dShSc1YpPD1mQ0FTVDR1KHVpVikp O30pCisKK1E2SU5TTihDNF9jbXBuZXEsIlBkND0hY21wLmVxKFJzMzIsUnQzMikiLEFUVFJJQlMo KSwgIkFuZC1Db21wYXJlIGZvciBFcXVhbCIsIHtQZFY9ZjhCSVRTT0YoUnNWIT1SdFYpO30pCitR NklOU04oQzRfY21wbHRlLCJQZDQ9IWNtcC5ndChSczMyLFJ0MzIpIixBVFRSSUJTKCksICJBbmQt Q29tcGFyZSBmb3Igc2lnbmVkIEdyZWF0ZXIgVGhhbiIsIHtQZFY9ZjhCSVRTT0YoUnNWPD1SdFYp O30pCitRNklOU04oQzRfY21wbHRldSwiUGQ0PSFjbXAuZ3R1KFJzMzIsUnQzMikiLEFUVFJJQlMo KSwgIkFuZC1Db21wYXJlIGZvciBHcmVhdGVyIFRoYW4gVW5zaWduZWQiLCB7UGRWPWY4QklUU09G KGZDQVNUNHUoUnNWKTw9ZkNBU1Q0dShSdFYpKTt9KQorCisKKworCisKKy8qIFByZWRpY2F0ZSBM b2dpY2FsIE9wZXJhdGlvbnMgKi8KKworUTZJTlNOKEMyX2FuZCwiUGQ0PWFuZChQdDQsUHM0KSIs QVRUUklCUyhBX0NSU0xPVDIzKSwKKyJQcmVkaWNhdGUgQU5EIiwKK3tQZFY9UHNWICYgUHRWO30p CisKK1E2SU5TTihDMl9vciwiUGQ0PW9yKFB0NCxQczQpIixBVFRSSUJTKEFfQ1JTTE9UMjMpLAor IlByZWRpY2F0ZSBPUiIsCit7UGRWPVBzViB8IFB0Vjt9KQorCitRNklOU04oQzJfeG9yLCJQZDQ9 eG9yKFBzNCxQdDQpIixBVFRSSUJTKEFfQ1JTTE9UMjMpLAorIlByZWRpY2F0ZSBYT1IiLAore1Bk Vj1Qc1YgXiBQdFY7fSkKKworUTZJTlNOKEMyX2FuZG4sIlBkND1hbmQoUHQ0LCFQczQpIixBVFRS SUJTKEFfQ1JTTE9UMjMpLAorIlByZWRpY2F0ZSBBTkQgTk9UIiwKK3tQZFY9UHRWICYgKH5Qc1Yp O30pCisKK1E2SU5TTihDMl9ub3QsIlBkND1ub3QoUHM0KSIsQVRUUklCUyhBX0NSU0xPVDIzKSwK KyJMb2dpY2FsIE5PVCBQcmVkaWNhdGUiLAore1BkVj1+UHNWO30pCisKK1E2SU5TTihDMl9vcm4s IlBkND1vcihQdDQsIVBzNCkiLEFUVFJJQlMoQV9BUkNIVjIsQV9DUlNMT1QyMyksCisiUHJlZGlj YXRlIE9SIE5PVCIsCit7UGRWPVB0ViB8ICh+UHNWKTt9KQorCisKKworCisKK1E2SU5TTihDNF9h bmRfYW5kLCJQZDQ9YW5kKFBzNCxhbmQoUHQ0LFB1NCkpIixBVFRSSUJTKEFfQ1JTTE9UMjMpLAor IkNvbXBvdW5kIEFuZC1BbmQiLCB7IFBkViA9IFBzViAmIFB0ViAmIFB1VjsgfSkKKworUTZJTlNO KEM0X2FuZF9vciwiUGQ0PWFuZChQczQsb3IoUHQ0LFB1NCkpIixBVFRSSUJTKEFfQ1JTTE9UMjMp LAorIkNvbXBvdW5kIEFuZC1PciIsIHsgUGRWID0gUHNWICYgIChQdFYgfCBQdVYpOyB9KQorCitR NklOU04oQzRfb3JfYW5kLCJQZDQ9b3IoUHM0LGFuZChQdDQsUHU0KSkiLEFUVFJJQlMoQV9DUlNM T1QyMyksCisiQ29tcG91bmQgT3ItQW5kIiwgeyBQZFYgPSBQc1YgfCAoUHRWICYgUHVWKTsgfSkK KworUTZJTlNOKEM0X29yX29yLCJQZDQ9b3IoUHM0LG9yKFB0NCxQdTQpKSIsQVRUUklCUyhBX0NS U0xPVDIzKSwKKyJDb21wb3VuZCBPci1PciIsIHsgUGRWID0gUHNWIHwgUHRWIHwgUHVWOyB9KQor CisKKworUTZJTlNOKEM0X2FuZF9hbmRuLCJQZDQ9YW5kKFBzNCxhbmQoUHQ0LCFQdTQpKSIsQVRU UklCUyhBX0NSU0xPVDIzKSwKKyJDb21wb3VuZCBBbmQtQW5kIiwgeyBQZFYgPSBQc1YgJiBQdFYg JiAoflB1Vik7IH0pCisKK1E2SU5TTihDNF9hbmRfb3JuLCJQZDQ9YW5kKFBzNCxvcihQdDQsIVB1 NCkpIixBVFRSSUJTKEFfQ1JTTE9UMjMpLAorIkNvbXBvdW5kIEFuZC1PciIsIHsgUGRWID0gUHNW ICYgIChQdFYgfCAoflB1VikpOyB9KQorCitRNklOU04oQzRfb3JfYW5kbiwiUGQ0PW9yKFBzNCxh bmQoUHQ0LCFQdTQpKSIsQVRUUklCUyhBX0NSU0xPVDIzKSwKKyJDb21wb3VuZCBPci1BbmQiLCB7 IFBkViA9IFBzViB8IChQdFYgJiAoflB1VikpOyB9KQorCitRNklOU04oQzRfb3Jfb3JuLCJQZDQ9 b3IoUHM0LG9yKFB0NCwhUHU0KSkiLEFUVFJJQlMoQV9DUlNMT1QyMyksCisiQ29tcG91bmQgT3It T3IiLCB7IFBkViA9IFBzViB8IFB0ViB8ICh+UHVWKTsgfSkKKworCitRNklOU04oQzJfYW55OCwi UGQ0PWFueTgoUHM0KSIsQVRUUklCUyhBX0NSU0xPVDIzKSwKKyJMb2dpY2FsIEFOWSBvZiBsb3cg OCBwcmVkaWNhdGUgYml0cyIsCit7IFBzViA/IChQZFY9MHhmZikgOiAoUGRWPTB4MDApOyB9KQor CitRNklOU04oQzJfYWxsOCwiUGQ0PWFsbDgoUHM0KSIsQVRUUklCUyhBX0NSU0xPVDIzKSwKKyJM b2dpY2FsIEFMTCBvZiBsb3cgOCBwcmVkaWNhdGUgYml0cyIsCit7IChQc1Y9PTB4ZmYpID8gKFBk Vj0weGZmKSA6IChQZFY9MHgwMCk7IH0pCisKK1E2SU5TTihDMl92aXRwYWNrLCJSZDMyPXZpdHBh Y2soUHM0LFB0NCkiLEFUVFJJQlMoKSwKKyJQYWNrIHRoZSBvZGQgYW5kIGV2ZW4gYml0cyBvZiB0 d28gcHJlZGljYXRlIHJlZ2lzdGVycyIsCit7IFJkViA9IChQc1YmMHg1NSkgfCAoUHRWJjB4QUEp OyB9KQorCisvKiBNdXggaW5zdHJ1Y3Rpb25zICovCisKK1E2SU5TTihDMl9tdXgsIlJkMzI9bXV4 KFB1NCxSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiU2NhbGFyIE1VWCIsCit7IChmTFNCT0xEKFB1 VikpID8gKFJkVj1Sc1YpOihSZFY9UnRWKTsgfSkKKworCitRNklOU04oQzJfY21vdmVuZXdpdCwi aWYgKFB1NC5uZXcpIFJkMzI9I3MxMiIsQVRUUklCUyhBX0FSQ0hWMiksCisiU2NhbGFyIGNvbmRp dGlvbmFsIG1vdmUiLAoreyBmSU1NRVhUKHNpVik7IGlmIChmTFNCTkVXKFB1TikpIFJkVj1zaVY7 IGVsc2UgQ0FOQ0VMO30pCisKK1E2SU5TTihDMl9jbW92ZW5ld2lmLCJpZiAoIVB1NC5uZXcpIFJk MzI9I3MxMiIsQVRUUklCUyhBX0FSQ0hWMiksCisiU2NhbGFyIGNvbmRpdGlvbmFsIG1vdmUiLAor eyBmSU1NRVhUKHNpVik7IGlmIChmTFNCTkVXTk9UKFB1TikpIFJkVj1zaVY7IGVsc2UgQ0FOQ0VM O30pCisKK1E2SU5TTihDMl9jbW92ZWl0LCJpZiAoUHU0KSBSZDMyPSNzMTIiLEFUVFJJQlMoQV9B UkNIVjIpLAorIlNjYWxhciBjb25kaXRpb25hbCBtb3ZlIiwKK3sgZklNTUVYVChzaVYpOyBpZiAo ZkxTQk9MRChQdVYpKSBSZFY9c2lWOyBlbHNlIENBTkNFTDt9KQorCitRNklOU04oQzJfY21vdmVp ZiwiaWYgKCFQdTQpIFJkMzI9I3MxMiIsQVRUUklCUyhBX0FSQ0hWMiksCisiU2NhbGFyIGNvbmRp dGlvbmFsIG1vdmUiLAoreyBmSU1NRVhUKHNpVik7IGlmIChmTFNCT0xETk9UKFB1VikpIFJkVj1z aVY7IGVsc2UgQ0FOQ0VMO30pCisKKworCitRNklOU04oQzJfY2NvbWJpbmV3bmV3dCwiaWYgKFB1 NC5uZXcpIFJkZDMyPWNvbWJpbmUoUnMzMixSdDMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQ29u ZGl0aW9uYWxseSBjb21iaW5lIHR3byB3b3JkcyBpbnRvIGEgcmVnaXN0ZXIgcGFpciIsCit7IGlm IChmTFNCTkVXKFB1TikpIHsKKyAgICBmU0VUV09SRCgwLFJkZFYsUnRWKTsKKyAgICBmU0VUV09S RCgxLFJkZFYsUnNWKTsKKyAgfSBlbHNlIHtDQU5DRUw7fQorfSkKKworUTZJTlNOKEMyX2Njb21i aW5ld25ld2YsImlmICghUHU0Lm5ldykgUmRkMzI9Y29tYmluZShSczMyLFJ0MzIpIixBVFRSSUJT KEFfQVJDSFYyKSwKKyJDb25kaXRpb25hbGx5IGNvbWJpbmUgdHdvIHdvcmRzIGludG8gYSByZWdp c3RlciBwYWlyIiwKK3sgaWYgKGZMU0JORVdOT1QoUHVOKSkgeworICAgIGZTRVRXT1JEKDAsUmRk VixSdFYpOworICAgIGZTRVRXT1JEKDEsUmRkVixSc1YpOworICB9IGVsc2Uge0NBTkNFTDt9Cit9 KQorCitRNklOU04oQzJfY2NvbWJpbmV3dCwiaWYgKFB1NCkgUmRkMzI9Y29tYmluZShSczMyLFJ0 MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJDb25kaXRpb25hbGx5IGNvbWJpbmUgdHdvIHdvcmRz IGludG8gYSByZWdpc3RlciBwYWlyIiwKK3sgaWYgKGZMU0JPTEQoUHVWKSkgeworICAgIGZTRVRX T1JEKDAsUmRkVixSdFYpOworICAgIGZTRVRXT1JEKDEsUmRkVixSc1YpOworICB9IGVsc2Uge0NB TkNFTDt9Cit9KQorCitRNklOU04oQzJfY2NvbWJpbmV3ZiwiaWYgKCFQdTQpIFJkZDMyPWNvbWJp bmUoUnMzMixSdDMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQ29uZGl0aW9uYWxseSBjb21iaW5l IHR3byB3b3JkcyBpbnRvIGEgcmVnaXN0ZXIgcGFpciIsCit7IGlmIChmTFNCT0xETk9UKFB1Vikp IHsKKyAgICBmU0VUV09SRCgwLFJkZFYsUnRWKTsKKyAgICBmU0VUV09SRCgxLFJkZFYsUnNWKTsK KyAgfSBlbHNlIHtDQU5DRUw7fQorfSkKKworCisKK1E2SU5TTihDMl9tdXhpaSwiUmQzMj1tdXgo UHU0LCNzOCwjUzgpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJTY2FsYXIgTVVYIGltbWVkaWF0ZXMi LAoreyBmSU1NRVhUKHNpVik7IChmTFNCT0xEKFB1VikpID8gKFJkVj1zaVYpOihSZFY9U2lWKTsg fSkKKworCisKK1E2SU5TTihDMl9tdXhpciwiUmQzMj1tdXgoUHU0LFJzMzIsI3M4KSIsQVRUUklC UyhBX0FSQ0hWMiksCisiU2NhbGFyIE1VWCByZWdpc3RlciBpbW1lZGlhdGUiLAoreyBmSU1NRVhU KHNpVik7IChmTFNCT0xEKFB1VikpID8gKFJkVj1Sc1YpOihSZFY9c2lWKTsgfSkKKworCitRNklO U04oQzJfbXV4cmksIlJkMzI9bXV4KFB1NCwjczgsUnMzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAor IlNjYWxhciBNVVggcmVnaXN0ZXIgaW1tZWRpYXRlIiwKK3sgZklNTUVYVChzaVYpOyAoZkxTQk9M RChQdVYpKSA/IChSZFY9c2lWKTooUmRWPVJzVik7IH0pCisKKworCitRNklOU04oQzJfdm11eCwi UmRkMzI9dm11eChQdTQsUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiVmVjdG9yIE1VWCIsCit7 CisJZkhJREUoaW50IGk7KQorCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJZlNFVEJZVEUo aSxSZGRWLChmR0VUQklUKGksUHVWKT8oZkdFVEJZVEUoaSxSc3NWKSk6KGZHRVRCWVRFKGksUnR0 VikpKSk7CisJfQorfSkKKworUTZJTlNOKEMyX21hc2ssIlJkZDMyPW1hc2soUHQ0KSIsQVRUUklC UygpLAorIlZlY3RvciBNYXNrIEdlbmVyYXRpb24iLAoreworCWZISURFKGludCBpOykKKwlmb3Ig KGkgPSAwOyBpIDwgODsgaSsrKSB7CisJCWZTRVRCWVRFKGksUmRkViwoZkdFVEJJVChpLFB0Vik/ KDB4ZmYpOigweDAwKSkpOworCX0KK30pCisKKy8qIFZDTVAgKi8KKworUTZJTlNOKEEyX3ZjbXBi ZXEsIlBkND12Y21wYi5lcShSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGVsZW1l bnRzIG9mIHR3byB2ZWN0b3JzICIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaSA9IDA7IGkg PCA4OyBpKyspIHsKKwkJZlNFVEJJVChpLFBkViwoZkdFVEJZVEUoaSxSc3NWKSA9PSBmR0VUQllU RShpLFJ0dFYpKSk7CisJfQorfSkKKworUTZJTlNOKEE0X3ZjbXBiZXFpLCJQZDQ9dmNtcGIuZXEo UnNzMzIsI3U4KSIsQVRUUklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMg IiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQlmU0VU QklUKGksUGRWLChmR0VUVUJZVEUoaSxSc3NWKSA9PSB1aVYpKTsKKwl9Cit9KQorCitRNklOU04o QTRfdmNtcGJlcV9hbnksIlBkND1hbnk4KHZjbXBiLmVxKFJzczMyLFJ0dDMyKSkiLEFUVFJJQlMo KSwKKyJDb21wYXJlIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzICIsCit7CisJZkhJREUoaW50IGk7 KQorCVBkViA9IDA7CisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQlpZiAoZkdFVEJZVEUo aSxSc3NWKSA9PSBmR0VUQllURShpLFJ0dFYpKSBQZFYgPSAweGZmOworCX0KK30pCisKK1E2SU5T TihBNl92Y21wYmVxX25vdGFueSwiUGQ0PSFhbnk4KHZjbXBiLmVxKFJzczMyLFJ0dDMyKSkiLEFU VFJJQlMoKSwKKyJDb21wYXJlIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzICIsCit7CisJZkhJREUo aW50IGk7KQorCVBkViA9IDA7CisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQlpZiAoZkdF VEJZVEUoaSxSc3NWKSA9PSBmR0VUQllURShpLFJ0dFYpKSBQZFYgPSAweGZmOworCX0KKwlQZFYg PSB+UGRWOworfSkKKworUTZJTlNOKEEyX3ZjbXBiZ3R1LCJQZDQ9dmNtcGIuZ3R1KFJzczMyLFJ0 dDMyKSIsQVRUUklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgIiwKK3sK KwlmSElERShpbnQgaTspCisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQlmU0VUQklUKGks UGRWLChmR0VUVUJZVEUoaSxSc3NWKSA+IGZHRVRVQllURShpLFJ0dFYpKSk7CisJfQorfSkKKwor UTZJTlNOKEE0X3ZjbXBiZ3R1aSwiUGQ0PXZjbXBiLmd0dShSc3MzMiwjdTcpIixBVFRSSUJTKCks CisiQ29tcGFyZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyAiLAoreworCWZISURFKGludCBpOykK Kwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisJCWZTRVRCSVQoaSxQZFYsKGZHRVRVQllURShp LFJzc1YpID4gdWlWKSk7CisJfQorfSkKKworUTZJTlNOKEE0X3ZjbXBiZ3QsIlBkND12Y21wYi5n dChSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGVsZW1lbnRzIG9mIHR3byB2ZWN0 b3JzICIsCit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJ ZlNFVEJJVChpLFBkViwoZkdFVEJZVEUoaSxSc3NWKSA+IGZHRVRCWVRFKGksUnR0VikpKTsKKwl9 Cit9KQorCitRNklOU04oQTRfdmNtcGJndGksIlBkND12Y21wYi5ndChSc3MzMiwjczgpIixBVFRS SUJTKCksCisiQ29tcGFyZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyAiLAoreworCWZISURFKGlu dCBpOykKKwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisJCWZTRVRCSVQoaSxQZFYsKGZHRVRC WVRFKGksUnNzVikgPiBzaVYpKTsKKwl9Cit9KQorCisKKworUTZJTlNOKEE0X2NtcGJlcSwiUGQ0 PWNtcGIuZXEoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkNvbXBhcmUgYnl0ZXMgIiwKK3sKKwlQ ZFY9ZjhCSVRTT0YoZkdFVEJZVEUoMCxSc1YpID09IGZHRVRCWVRFKDAsUnRWKSk7Cit9KQorCitR NklOU04oQTRfY21wYmVxaSwiUGQ0PWNtcGIuZXEoUnMzMiwjdTgpIixBVFRSSUJTKCksCisiQ29t cGFyZSBieXRlcyAiLAoreworCVBkVj1mOEJJVFNPRihmR0VUVUJZVEUoMCxSc1YpID09IHVpVik7 Cit9KQorCitRNklOU04oQTRfY21wYmd0dSwiUGQ0PWNtcGIuZ3R1KFJzMzIsUnQzMikiLEFUVFJJ QlMoKSwKKyJDb21wYXJlIGJ5dGVzICIsCit7CisJUGRWPWY4QklUU09GKGZHRVRVQllURSgwLFJz VikgPiBmR0VUVUJZVEUoMCxSdFYpKTsKK30pCisKK1E2SU5TTihBNF9jbXBiZ3R1aSwiUGQ0PWNt cGIuZ3R1KFJzMzIsI3U3KSIsQVRUUklCUygpLAorIkNvbXBhcmUgYnl0ZXMgIiwKK3sKKwlmSU1N RVhUKHVpVik7CisJUGRWPWY4QklUU09GKGZHRVRVQllURSgwLFJzVikgPiBmQ0FTVDR1KHVpVikp OworfSkKKworUTZJTlNOKEE0X2NtcGJndCwiUGQ0PWNtcGIuZ3QoUnMzMixSdDMyKSIsQVRUUklC UygpLAorIkNvbXBhcmUgYnl0ZXMgIiwKK3sKKwlQZFY9ZjhCSVRTT0YoZkdFVEJZVEUoMCxSc1Yp ID4gZkdFVEJZVEUoMCxSdFYpKTsKK30pCisKK1E2SU5TTihBNF9jbXBiZ3RpLCJQZDQ9Y21wYi5n dChSczMyLCNzOCkiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGJ5dGVzICIsCit7CisJUGRWPWY4QklU U09GKGZHRVRCWVRFKDAsUnNWKSA+IHNpVik7Cit9KQorCitRNklOU04oQTJfdmNtcGhlcSwiUGQ0 PXZjbXBoLmVxKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2Yg dHdvIHZlY3RvcnMgIiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpID0gMDsgaSA8IDQ7IGkr KykgeworCQlmU0VUQklUKGkqMixQZFYsICAoZkdFVEhBTEYoaSxSc3NWKSA9PSBmR0VUSEFMRihp LFJ0dFYpKSk7CisJCWZTRVRCSVQoaSoyKzEsUGRWLChmR0VUSEFMRihpLFJzc1YpID09IGZHRVRI QUxGKGksUnR0VikpKTsKKwl9Cit9KQorCitRNklOU04oQTJfdmNtcGhndCwiUGQ0PXZjbXBoLmd0 KFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3Rv cnMgIiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCQlm U0VUQklUKGkqMiwgIFBkViwgIChmR0VUSEFMRihpLFJzc1YpID4gZkdFVEhBTEYoaSxSdHRWKSkp OworCQlmU0VUQklUKGkqMisxLFBkViwgIChmR0VUSEFMRihpLFJzc1YpID4gZkdFVEhBTEYoaSxS dHRWKSkpOworCX0KK30pCisKK1E2SU5TTihBMl92Y21waGd0dSwiUGQ0PXZjbXBoLmd0dShSc3Mz MixSdHQzMikiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzICIs Cit7CisJZkhJREUoaW50IGk7KQorCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspIHsKKwkJZlNFVEJJ VChpKjIsICBQZFYsICAoZkdFVFVIQUxGKGksUnNzVikgPiBmR0VUVUhBTEYoaSxSdHRWKSkpOwor CQlmU0VUQklUKGkqMisxLFBkViwgIChmR0VUVUhBTEYoaSxSc3NWKSA+IGZHRVRVSEFMRihpLFJ0 dFYpKSk7CisJfQorfSkKKworUTZJTlNOKEE0X3ZjbXBoZXFpLCJQZDQ9dmNtcGguZXEoUnNzMzIs I3M4KSIsQVRUUklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgIiwKK3sK KwlmSElERShpbnQgaTspCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCQlmU0VUQklUKGkq MixQZFYsICAoZkdFVEhBTEYoaSxSc3NWKSA9PSBzaVYpKTsKKwkJZlNFVEJJVChpKjIrMSxQZFYs KGZHRVRIQUxGKGksUnNzVikgPT0gc2lWKSk7CisJfQorfSkKKworUTZJTlNOKEE0X3ZjbXBoZ3Rp LCJQZDQ9dmNtcGguZ3QoUnNzMzIsI3M4KSIsQVRUUklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMg b2YgdHdvIHZlY3RvcnMgIiwKK3sKKwlmSElERShpbnQgaTspCisJZm9yIChpID0gMDsgaSA8IDQ7 IGkrKykgeworCQlmU0VUQklUKGkqMiwgIFBkViwgIChmR0VUSEFMRihpLFJzc1YpID4gc2lWKSk7 CisJCWZTRVRCSVQoaSoyKzEsUGRWLCAgKGZHRVRIQUxGKGksUnNzVikgPiBzaVYpKTsKKwl9Cit9 KQorCisKK1E2SU5TTihBNF92Y21waGd0dWksIlBkND12Y21waC5ndHUoUnNzMzIsI3U3KSIsQVRU UklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgIiwKK3sKKwlmSElERShp bnQgaTspCisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCQlmU0VUQklUKGkqMiwgIFBkViwg IChmR0VUVUhBTEYoaSxSc3NWKSA+IHVpVikpOworCQlmU0VUQklUKGkqMisxLFBkViwgIChmR0VU VUhBTEYoaSxSc3NWKSA+IHVpVikpOworCX0KK30pCisKK1E2SU5TTihBNF9jbXBoZXEsIlBkND1j bXBoLmVxKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGhhbGZ3b3JkcyAiLAorewor CVBkVj1mOEJJVFNPRihmR0VUSEFMRigwLFJzVikgPT0gZkdFVEhBTEYoMCxSdFYpKTsKK30pCisK K1E2SU5TTihBNF9jbXBoZ3QsIlBkND1jbXBoLmd0KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJD b21wYXJlIGhhbGZ3b3JkcyAiLAoreworCVBkVj1mOEJJVFNPRihmR0VUSEFMRigwLFJzVikgPiBm R0VUSEFMRigwLFJ0VikpOworfSkKKworUTZJTlNOKEE0X2NtcGhndHUsIlBkND1jbXBoLmd0dShS czMyLFJ0MzIpIixBVFRSSUJTKCksCisiQ29tcGFyZSBoYWxmd29yZHMgIiwKK3sKKwlQZFY9ZjhC SVRTT0YoZkdFVFVIQUxGKDAsUnNWKSA+IGZHRVRVSEFMRigwLFJ0VikpOworfSkKKworUTZJTlNO KEE0X2NtcGhlcWksIlBkND1jbXBoLmVxKFJzMzIsI3M4KSIsQVRUUklCUygpLAorIkNvbXBhcmUg aGFsZndvcmRzICIsCit7CisJZklNTUVYVChzaVYpOworCVBkVj1mOEJJVFNPRihmR0VUSEFMRigw LFJzVikgPT0gc2lWKTsKK30pCisKK1E2SU5TTihBNF9jbXBoZ3RpLCJQZDQ9Y21waC5ndChSczMy LCNzOCkiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGhhbGZ3b3JkcyAiLAoreworCWZJTU1FWFQoc2lW KTsKKwlQZFY9ZjhCSVRTT0YoZkdFVEhBTEYoMCxSc1YpID4gc2lWKTsKK30pCisKK1E2SU5TTihB NF9jbXBoZ3R1aSwiUGQ0PWNtcGguZ3R1KFJzMzIsI3U3KSIsQVRUUklCUygpLAorIkNvbXBhcmUg aGFsZndvcmRzICIsCit7CisJZklNTUVYVCh1aVYpOworCVBkVj1mOEJJVFNPRihmR0VUVUhBTEYo MCxSc1YpID4gZkNBU1Q0dSh1aVYpKTsKK30pCisKK1E2SU5TTihBMl92Y21wd2VxLCJQZDQ9dmNt cHcuZXEoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiQ29tcGFyZSBlbGVtZW50cyBvZiB0d28g dmVjdG9ycyAiLAoreworCWZTRVRCSVRTKDMsMCxQZFYsKGZHRVRXT1JEKDAsUnNzVik9PWZHRVRX T1JEKDAsUnR0VikpKTsKKwlmU0VUQklUUyg3LDQsUGRWLChmR0VUV09SRCgxLFJzc1YpPT1mR0VU V09SRCgxLFJ0dFYpKSk7Cit9KQorCitRNklOU04oQTJfdmNtcHdndCwiUGQ0PXZjbXB3Lmd0KFJz czMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMg IiwKK3sKKwlmU0VUQklUUygzLDAsUGRWLChmR0VUV09SRCgwLFJzc1YpPmZHRVRXT1JEKDAsUnR0 VikpKTsKKwlmU0VUQklUUyg3LDQsUGRWLChmR0VUV09SRCgxLFJzc1YpPmZHRVRXT1JEKDEsUnR0 VikpKTsKK30pCisKK1E2SU5TTihBMl92Y21wd2d0dSwiUGQ0PXZjbXB3Lmd0dShSc3MzMixSdHQz MikiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGVsZW1lbnRzIG9mIHR3byB2ZWN0b3JzICIsCit7CisJ ZlNFVEJJVFMoMywwLFBkViwoZkdFVFVXT1JEKDAsUnNzVik+ZkdFVFVXT1JEKDAsUnR0VikpKTsK KwlmU0VUQklUUyg3LDQsUGRWLChmR0VUVVdPUkQoMSxSc3NWKT5mR0VUVVdPUkQoMSxSdHRWKSkp OworfSkKKworUTZJTlNOKEE0X3ZjbXB3ZXFpLCJQZDQ9dmNtcHcuZXEoUnNzMzIsI3M4KSIsQVRU UklCUygpLAorIkNvbXBhcmUgZWxlbWVudHMgb2YgdHdvIHZlY3RvcnMgIiwKK3sKKwlmU0VUQklU UygzLDAsUGRWLChmR0VUV09SRCgwLFJzc1YpPT1zaVYpKTsKKwlmU0VUQklUUyg3LDQsUGRWLChm R0VUV09SRCgxLFJzc1YpPT1zaVYpKTsKK30pCisKK1E2SU5TTihBNF92Y21wd2d0aSwiUGQ0PXZj bXB3Lmd0KFJzczMyLCNzOCkiLEFUVFJJQlMoKSwKKyJDb21wYXJlIGVsZW1lbnRzIG9mIHR3byB2 ZWN0b3JzICIsCit7CisJZlNFVEJJVFMoMywwLFBkViwoZkdFVFdPUkQoMCxSc3NWKT5zaVYpKTsK KwlmU0VUQklUUyg3LDQsUGRWLChmR0VUV09SRCgxLFJzc1YpPnNpVikpOworfSkKKworUTZJTlNO KEE0X3ZjbXB3Z3R1aSwiUGQ0PXZjbXB3Lmd0dShSc3MzMiwjdTcpIixBVFRSSUJTKCksCisiQ29t cGFyZSBlbGVtZW50cyBvZiB0d28gdmVjdG9ycyAiLAoreworCWZTRVRCSVRTKDMsMCxQZFYsKGZH RVRVV09SRCgwLFJzc1YpPmZDQVNUNHUodWlWKSkpOworCWZTRVRCSVRTKDcsNCxQZFYsKGZHRVRV V09SRCgxLFJzc1YpPmZDQVNUNHUodWlWKSkpOworfSkKKworUTZJTlNOKEE0X2JvdW5kc2NoZWNr X2hpLCJQZDQ9Ym91bmRzY2hlY2soUnNzMzIsUnR0MzIpOnJhdzpoaSIsQVRUUklCUygpLAorIkRl dGVjdCBpZiBhIHJlZ2lzdGVyIGlzIHdpdGhpbiBib3VuZHMiLAoreworCWZISURFKHNpemU0dV90 IHNyYzspCisJc3JjID0gZkdFVFVXT1JEKDEsUnNzVik7CisJUGRWID0gZjhCSVRTT0YoKGZDQVNU NHUoc3JjKSA+PSBmR0VUVVdPUkQoMCxSdHRWKSkgJiYgKGZDQVNUNHUoc3JjKSA8IGZHRVRVV09S RCgxLFJ0dFYpKSk7Cit9KQorCitRNklOU04oQTRfYm91bmRzY2hlY2tfbG8sIlBkND1ib3VuZHNj aGVjayhSc3MzMixSdHQzMik6cmF3OmxvIixBVFRSSUJTKCksCisiRGV0ZWN0IGlmIGEgcmVnaXN0 ZXIgaXMgd2l0aGluIGJvdW5kcyIsCit7CisJZkhJREUoc2l6ZTR1X3Qgc3JjOykKKwlzcmMgPSBm R0VUVVdPUkQoMCxSc3NWKTsKKwlQZFYgPSBmOEJJVFNPRigoZkNBU1Q0dShzcmMpID49IGZHRVRV V09SRCgwLFJ0dFYpKSAmJiAoZkNBU1Q0dShzcmMpIDwgZkdFVFVXT1JEKDEsUnR0VikpKTsKK30p CisKK1E2SU5TTihBNF90bGJtYXRjaCwiUGQ0PXRsYm1hdGNoKFJzczMyLFJ0MzIpIixBVFRSSUJT KCksCisiRGV0ZWN0IGlmIGEgVkEvQVNJRCBtYXRjaGVzIGEgVExCIGVudHJ5IiwKK3sKKwlmSElE RShzaXplNHVfdCBUTEJISTsgc2l6ZTR1X3QgVExCTE87IHNpemU0dV90IE1BU0s7IHNpemU0dV90 IFNJWkU7KQorCU1BU0sgPSAweDA3ZmZmZmZmOworCVRMQkxPID0gZkdFVFVXT1JEKDAsUnNzVik7 CisJVExCSEkgPSBmR0VUVVdPUkQoMSxSc3NWKTsKKwlTSVpFID0gZk1JTig2LGZDTDFfNCh+ZkJS RVZfNChUTEJMTykpKTsKKwlNQVNLICY9ICgweGZmZmZmZmZmIDw8IDIqU0laRSk7CisJUGRWID0g ZjhCSVRTT0YoZkdFVEJJVCgzMSxUTEJISSkgJiYgKChUTEJISSAmIE1BU0spID09IChSdFYgJiBN QVNLKSkpOworfSkKKworUTZJTlNOKEMyX3RmcnByLCJSZDMyPVBzNCIsQVRUUklCUygpLAorIlRy YW5zZmVyIHByZWRpY2F0ZSB0byBnZW5lcmFsIHJlZ2lzdGVyIiwgeyBSZFYgPSBmWlhUTig4LDMy LFBzVik7IH0pCisKK1E2SU5TTihDMl90ZnJycCwiUGQ0PVJzMzIiLEFUVFJJQlMoKSwKKyJUcmFu c2ZlciBnZW5lcmFsIHJlZ2lzdGVyIHRvIFByZWRpY2F0ZSIsIHsgUGRWID0gZkdFVFVCWVRFKDAs UnNWKTsgfSkKKworUTZJTlNOKEM0X2Zhc3Rjb3JuZXI5LCJQZDQ9ZmFzdGNvcm5lcjkoUHM0LFB0 NCkiLEFUVFJJQlMoQV9DUlNMT1QyMyksCisiRGV0ZXJtaW5lIHdoZXRoZXIgdGhlIHByZWRpY2F0 ZSBzb3VyY2VzIGRlZmluZSBhIGNvcm5lciIsCit7CisJZkhJREUoc2l6ZTR1X3QgdG1wID0gMDsg c2l6ZTR1X3QgaTspCisJZlNFVEhBTEYoMCx0bXAsKFBzVjw8OCl8UHRWKTsKKwlmU0VUSEFMRigx LHRtcCwoUHNWPDw4KXxQdFYpOworCWZvciAoaSA9IDE7IGkgPCA5OyBpKyspIHsKKwkJdG1wICY9 IHRtcCA+PiAxOworCX0KKwlQZFYgPSBmOEJJVFNPRih0bXAgIT0gMCk7Cit9KQorCitRNklOU04o QzRfZmFzdGNvcm5lcjlfbm90LCJQZDQ9IWZhc3Rjb3JuZXI5KFBzNCxQdDQpIixBVFRSSUJTKEFf Q1JTTE9UMjMpLAorIkRldGVybWluZSB3aGV0aGVyIHRoZSBwcmVkaWNhdGUgc291cmNlcyBkZWZp bmUgYSBjb3JuZXIiLAoreworCWZISURFKHNpemU0dV90IHRtcCA9IDA7IHNpemU0dV90IGk7KQor CWZTRVRIQUxGKDAsdG1wLChQc1Y8PDgpfFB0Vik7CisJZlNFVEhBTEYoMSx0bXAsKFBzVjw8OCl8 UHRWKTsKKwlmb3IgKGkgPSAxOyBpIDwgOTsgaSsrKSB7CisJCXRtcCAmPSB0bXAgPj4gMTsKKwl9 CisJUGRWID0gZjhCSVRTT0YodG1wID09IDApOworfSkKKworCmRpZmYgLS1naXQgYS90YXJnZXQv aGV4YWdvbi9pbXBvcnRlZC9lbmNvZGUuZGVmIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvZW5j b2RlLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZTIzMzAxCi0tLSAv ZGV2L251bGwKKysrIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvZW5jb2RlLmRlZgpAQCAtMCww ICsxLDEyNSBAQAorLyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIwIFF1YWxjb21tIElubm92 YXRpb24gQ2VudGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFRoaXMgcHJv Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k aWZ5CisgKiAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl aXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikg YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBp biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQor ICogIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICog IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRw Oi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisvKgorICogVGhpcyBqdXN0IGluY2x1 ZGVzIGFsbCBlbmNvZGluZyBmaWxlcworICovCisKKyNpZm5kZWYgREVGX0ZJRUxEMzIKKyNkZWZp bmUgX19TRUxGX0RFRl9GSUVMRDMyCisjZGVmaW5lIERFRl9GSUVMRDMyKC4uLikgLyogbm90aGlu ZyAqLworI2VuZGlmCisKKyNpZm5kZWYgREVGX0NMQVNTMzIKKyNkZWZpbmUgX19TRUxGX0RFRl9D TEFTUzMyCisjZGVmaW5lIERFRl9DTEFTUzMyKC4uLikgLyogbm90aGluZyAqLworI2VuZGlmCisK KyNpZm5kZWYgREVGX0FOVElDTEFTUzMyCisjZGVmaW5lIF9fU0VMRl9ERUZfQU5USUNMQVNTMzIK KyNkZWZpbmUgREVGX0FOVElDTEFTUzMyKC4uLikgLyogbm90aGluZyAqLworI2VuZGlmCisKKyNp Zm5kZWYgTEVHQUNZX0RFRl9FTkMzMgorI2RlZmluZSBfX1NFTEZfREVGX0xFR0FDWV9ERUZfRU5D MzIKKyNkZWZpbmUgTEVHQUNZX0RFRl9FTkMzMiguLi4pIC8qIG5vdGhpbmcgKi8KKyNlbmRpZgor CisjaWZuZGVmIERFRl9GSUVMRFJPV19ERVNDMzIKKyNkZWZpbmUgX19TRUxGX0RFRl9GSUVMRFJP V19ERVNDMzIKKyNkZWZpbmUgREVGX0ZJRUxEUk9XX0RFU0MzMiguLi4pIC8qIG5vdGhpbmcgKi8K KyNlbmRpZgorCisjaWZuZGVmIERFRl9FTkMzMgorI2RlZmluZSBfX1NFTEZfREVGX0VOQzMyCisj ZGVmaW5lIERFRl9FTkMzMiguLi4pIC8qIG5vdGhpbmcgKi8KKyNlbmRpZgorCisjaWZuZGVmIERF Rl9QQUNLRUQzMgorI2RlZmluZSBfX1NFTEZfREVGX1BBQ0tFRDMyCisjZGVmaW5lIERFRl9QQUNL RUQzMiguLi4pIC8qIG5vdGhpbmcgKi8KKyNlbmRpZgorCisjaWZuZGVmIERFRl9FTkNfU1VCSU5T TgorI2RlZmluZSBfX1NFTEZfREVGX0VOQ19TVUJJTlNOCisjZGVmaW5lIERFRl9FTkNfU1VCSU5T TiguLi4pIC8qIG5vdGhpbmcgKi8KKyNlbmRpZgorCisjaWZuZGVmIERFRl9FWFRfRU5DCisjZGVm aW5lIF9fU0VMRl9ERUZfRVhUX0VOQworI2RlZmluZSBERUZfRVhUX0VOQyguLi4pIC8qIG5vdGhp bmcgKi8KKyNlbmRpZgorCisjaWZuZGVmIERFRl9FWFRfU1BBQ0UKKyNkZWZpbmUgX19TRUxGX0RF Rl9FWFRfU1BBQ0UKKyNkZWZpbmUgREVGX0VYVF9TUEFDRSguLi4pIC8qIG5vdGhpbmcgKi8KKyNl bmRpZgorCisjaW5jbHVkZSAiZW5jb2RlX3BwLmRlZiIKKyNpbmNsdWRlICJlbmNvZGVfc3ViaW5z bi5kZWYiCisKKyNpZmRlZiBfX1NFTEZfREVGX0ZJRUxEMzIKKyN1bmRlZiBfX1NFTEZfREVGX0ZJ RUxEMzIKKyN1bmRlZiBERUZfRklFTEQzMgorI2VuZGlmCisKKyNpZmRlZiBfX1NFTEZfREVGX0NM QVNTMzIKKyN1bmRlZiBfX1NFTEZfREVGX0NMQVNTMzIKKyN1bmRlZiBERUZfQ0xBU1MzMgorI2Vu ZGlmCisKKyNpZmRlZiBfX1NFTEZfREVGX0FOVElDTEFTUzMyCisjdW5kZWYgX19TRUxGX0RFRl9B TlRJQ0xBU1MzMgorI3VuZGVmIERFRl9BTlRJQ0xBU1MzMgorI2VuZGlmCisKKyNpZmRlZiBfX1NF TEZfREVGX0xFR0FDWV9ERUZfRU5DMzIKKyN1bmRlZiBfX1NFTEZfREVGX0xFR0FDWV9ERUZfRU5D MzIKKyN1bmRlZiBMRUdBQ1lfREVGX0VOQzMyCisjZW5kaWYKKworI2lmZGVmIF9fU0VMRl9ERUZf RklFTERST1dfREVTQzMyCisjdW5kZWYgX19TRUxGX0RFRl9GSUVMRFJPV19ERVNDMzIKKyN1bmRl ZiBERUZfRklFTERST1dfREVTQzMyCisjZW5kaWYKKworI2lmZGVmIF9fU0VMRl9ERUZfRU5DMzIK KyN1bmRlZiBfX1NFTEZfREVGX0VOQzMyCisjdW5kZWYgREVGX0VOQzMyCisjZW5kaWYKKworI2lm ZGVmIF9fU0VMRl9ERUZfRVhUX1NQQUNFCisjdW5kZWYgX19TRUxGX0RFRl9FWFRfU1BBQ0UKKyN1 bmRlZiBERUZfRVhUX1NQQUNFCisjZW5kaWYKKworCisjaWZkZWYgX19TRUxGX0RFRl9QQUNLRUQz MgorI3VuZGVmIF9fU0VMRl9ERUZfUEFDS0VEMzIKKyN1bmRlZiBERUZfUEFDS0VEMzIKKyNlbmRp ZgorCisjaWZkZWYgX19TRUxGX0RFRl9FTkNfU1VCSU5TTgorI3VuZGVmIF9fU0VMRl9ERUZfRU5D X1NVQklOU04KKyN1bmRlZiBERUZfRU5DX1NVQklOU04KKyNlbmRpZgorCisjaWZkZWYgX19TRUxG X0RFRl9FWFRfRU5DCisjdW5kZWYgX19TRUxGX0RFRl9FWFRfRU5DCisjdW5kZWYgREVGX0VYVF9F TkMKKyNlbmRpZgorCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9lbmNvZGVf cHAuZGVmIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvZW5jb2RlX3BwLmRlZgpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2ZmMmMzCi0tLSAvZGV2L251bGwKKysrIGIvdGFy Z2V0L2hleGFnb24vaW1wb3J0ZWQvZW5jb2RlX3BwLmRlZgpAQCAtMCwwICsxLDIxMTAgQEAKKy8q CisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMCBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwg SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVu ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24g MiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBG SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhh dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICog IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisgKi8KKworLyoKKyAqIEVuY29kaW5ncyBmb3IgMzIgYml0IGluc3RydWN0 aW9ucworICoKKyAqLworCisKKworCitERUZfQ0xBU1MzMigiLS0tLSAtLS0tIC0tLS0tLS0tIFBQ LS0tLS0tIC0tLS0tLS0tIixBTExfUFApCitERUZfRklFTEQzMigiLS0tLSAtLS0tIC0tLS0tLS0t ICEhLS0tLS0tIC0tLS0tLS0tIixQYXJzZSwiUGFja2V0L0xvb3AgcGFyc2UgYml0cyIpCitERUZf RklFTEQzMigiISEhISAtLS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixJQ0xBU1MsIklu c3RydWN0aW9uIENsYXNzIikKKworI2RlZmluZSBJQ0xBU1NfRVhURU5ERVIgICAiMDAwMCIKKyNk ZWZpbmUgSUNMQVNTX0NKICAgICAgICAgIjAwMDEiCisjZGVmaW5lIElDTEFTU19OQ0ogICAgICAg ICIwMDEwIgorI2RlZmluZSBJQ0xBU1NfVjRMRFNUICAgICAiMDAxMSIKKyNkZWZpbmUgSUNMQVNT X1YyTERTVCAgICAgIjAxMDAiCisjZGVmaW5lIElDTEFTU19KICAgICAgICAgICIwMTAxIgorI2Rl ZmluZSBJQ0xBU1NfQ1IgICAgICAgICAiMDExMCIKKyNkZWZpbmUgSUNMQVNTX0FMVTJvcCAgICAg IjAxMTEiCisjZGVmaW5lIElDTEFTU19TMm9wICAgICAgICIxMDAwIgorI2RlZmluZSBJQ0xBU1Nf TEQgICAgICAgICAiMTAwMSIKKyNkZWZpbmUgSUNMQVNTX1NUICAgICAgICAgIjEwMTAiCisjZGVm aW5lIElDTEFTU19BRERJICAgICAgICIxMDExIgorI2RlZmluZSBJQ0xBU1NfUzNvcCAgICAgICAi MTEwMCIKKyNkZWZpbmUgSUNMQVNTX0FMVTY0ICAgICAgIjExMDEiCisjZGVmaW5lIElDTEFTU19N ICAgICAgICAgICIxMTEwIgorI2RlZmluZSBJQ0xBU1NfQUxVM29wICAgICAiMTExMSIKKworCisK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICBW NCBJbW1lZGlhdGUgUGF5bG9hZCAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworCitERUZfQ0xBU1MzMihJQ0xBU1NfRVhURU5ERVIiIC0tLS0gLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLEVYVEVOREVSKQorREVGX0VOQzMyKEE0X2V4dCwgSUNM QVNTX0VYVEVOREVSICJpaWlpIGlpaWlpaWlpIFBQaWlpaWlpIGlpaWlpaWlpIikKKworCisKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICBWMiBQ UkVESUNBVEVEIExEL1NUICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICov CisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworCitERUZfQ0xBU1MzMihJQ0xBU1NfVjJMRFNUIiAtLS0tIC0tLS0tLS0t IFBQLS0tLS0tIC0tLS0tLS0tIixWMkxEU1QpCitERUZfQ0xBU1MzMihJQ0xBU1NfVjJMRFNUIiAt LS0xIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixWMkxEKQorREVGX0NMQVNTMzIoSUNMQVNT X1YyTERTVCIgLS0tMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsVjJTVCkKK0RFRl9DTEFT UzMyKElDTEFTU19WMkxEU1QiIDAtLTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFBMRCkK K0RFRl9DTEFTUzMyKElDTEFTU19WMkxEU1QiIDAtLTAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0t LS0iLFBTVCkKK0RFRl9DTEFTUzMyKElDTEFTU19WMkxEU1QiIDEtLTEgLS0tLS0tLS0gUFAtLS0t LS0gLS0tLS0tLS0iLEdQTEQpCitERUZfQ0xBU1MzMihJQ0xBU1NfVjJMRFNUIiAxLS0wIC0tLS0t LS0tIFBQLS0tLS0tIC0tLS0tLS0tIixHUFNUKQorCitERUZfRklFTEQzMihJQ0xBU1NfVjJMRFNU IiAwIS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixQTUVNX1NlbnNlLCJTZW5zZSIpCitE RUZfRklFTEQzMihJQ0xBU1NfVjJMRFNUIiAwLSEtIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0t IixQTUVNX1ByZWROZXcsIlByZWROZXciKQorREVGX0ZJRUxEMzIoSUNMQVNTX1YyTERTVCIgLS0t MSAhIS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsUE1FTUxfVHlwZSwiVHlwZSIpCitERUZfRklF TEQzMihJQ0xBU1NfVjJMRFNUIiAtLS0xIC0tIS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixQTUVN TF9VTiwiVW5zaWduZWQiKQorREVGX0ZJRUxEMzIoSUNMQVNTX1YyTERTVCIgLS0tMCAhISEtLS0t LSBQUC0tLS0tLSAtLS0tLS0tLSIsUE1FTVNfVHlwZSwiVHlwZSIpCisKKyNkZWZpbmUgU1REX1BM RF9JT0VOQyhUQUcsT1BDKSBcCitERUZfRU5DMzIoTDJfcGxvYWQjI1RBRyMjdF9pbywgICBJQ0xB U1NfVjJMRFNUIiAwMDAxICJPUEMiICBzc3NzcyAgUFAwdHRpaWkgIGlpaWRkZGRkIilcCitERUZf RU5DMzIoTDJfcGxvYWQjI1RBRyMjZl9pbywgICBJQ0xBU1NfVjJMRFNUIiAwMTAxICJPUEMiICBz c3NzcyAgUFAwdHRpaWkgIGlpaWRkZGRkIilcCitERUZfRU5DMzIoTDJfcGxvYWQjI1RBRyMjdG5l d19pbyxJQ0xBU1NfVjJMRFNUIiAwMDExICJPUEMiICBzc3NzcyAgUFAwdHRpaWkgIGlpaWRkZGRk IilcCitERUZfRU5DMzIoTDJfcGxvYWQjI1RBRyMjZm5ld19pbyxJQ0xBU1NfVjJMRFNUIiAwMTEx ICJPUEMiICBzc3NzcyAgUFAwdHRpaWkgIGlpaWRkZGRkIikKKworU1REX1BMRF9JT0VOQyhyYiwg ICIwMDAiKQorU1REX1BMRF9JT0VOQyhydWIsICIwMDEiKQorU1REX1BMRF9JT0VOQyhyaCwgICIw MTAiKQorU1REX1BMRF9JT0VOQyhydWgsICIwMTEiKQorU1REX1BMRF9JT0VOQyhyaSwgICIxMDAi KQorU1REX1BMRF9JT0VOQyhyZCwgICIxMTAiKSAvKiBub3RlIGRlc3QgcmVnIGZpZWxkIExTQj0w LCAxIGlzIHJlc2VydmVkICovCisKKworCisjZGVmaW5lIFNURF9QU1RfSU9FTkMoVEFHLE9QQyxT UkMpIFwKK0RFRl9FTkMzMihTMl9wc3RvcmUjI1RBRyMjdF9pbywgICBJQ0xBU1NfVjJMRFNUIiAw MDAwICJPUEMiICBzc3NzcyAgUFBpIlNSQyIgIGlpaWlpMHZ2IilcCitERUZfRU5DMzIoUzJfcHN0 b3JlIyNUQUcjI2ZfaW8sICAgSUNMQVNTX1YyTERTVCIgMDEwMCAiT1BDIiAgc3Nzc3MgIFBQaSJT UkMiICBpaWlpaTB2diIpXAorREVGX0VOQzMyKFM0X3BzdG9yZSMjVEFHIyN0bmV3X2lvLElDTEFT U19WMkxEU1QiIDAwMTAgIk9QQyIgIHNzc3NzICBQUGkiU1JDIiAgaWlpaWkwdnYiKVwKK0RFRl9F TkMzMihTNF9wc3RvcmUjI1RBRyMjZm5ld19pbyxJQ0xBU1NfVjJMRFNUIiAwMTEwICJPUEMiICBz c3NzcyAgUFBpIlNSQyIgIGlpaWlpMHZ2IikKKworU1REX1BTVF9JT0VOQyhyYiwgICAgIjAwMCIs InR0dHR0IikKK1NURF9QU1RfSU9FTkMocmgsICAgICIwMTAiLCJ0dHR0dCIpCitTVERfUFNUX0lP RU5DKHJmLCAgICAiMDExIiwidHR0dHQiKQorU1REX1BTVF9JT0VOQyhyaSwgICAgIjEwMCIsInR0 dHR0IikKK1NURF9QU1RfSU9FTkMocmQsICAgICIxMTAiLCJ0dHR0dCIpCitTVERfUFNUX0lPRU5D KHJibmV3LCAiMTAxIiwiMDB0dHQiKQorU1REX1BTVF9JT0VOQyhyaG5ldywgIjEwMSIsIjAxdHR0 IikKK1NURF9QU1RfSU9FTkMocmluZXcsICIxMDEiLCIxMHR0dCIpCisKKworCisKKworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgIFYyIEdQLVJF TEFUSVZFIExEL1NUICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8q ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisjZGVmaW5lIFNURF9MRF9HUChUQUcsT1BDKSBcCitERUZfRU5DMzIoTDJfbG9h ZCMjVEFHIyNncCwgICBJQ0xBU1NfVjJMRFNUIiAxaWkxICJPUEMiICBpaWlpaSAgUFBpaWlpaWkg IGlpaWRkZGRkIikKKworU1REX0xEX0dQKHJiLCAgIjAwMCIpCitTVERfTERfR1AocnViLCAiMDAx IikKK1NURF9MRF9HUChyaCwgICIwMTAiKQorU1REX0xEX0dQKHJ1aCwgIjAxMSIpCitTVERfTERf R1AocmksICAiMTAwIikKK1NURF9MRF9HUChyZCwgICIxMTAiKSAvKiBub3RlIGRlc3QgcmVnIGZp ZWxkIExTQj0wLCAxIGlzIHJlc2VydmVkICovCisKKyNkZWZpbmUgU1REX1NUX0dQKFRBRyxPUEMs U1JDKSBcCitERUZfRU5DMzIoUzJfc3RvcmUjI1RBRyMjZ3AsICBJQ0xBU1NfVjJMRFNUIiAxaWkw ICJPUEMiICBpaWlpaSAgUFBpIlNSQyIgIGlpaWlpaWlpIikKKworU1REX1NUX0dQKHJiLCAgICIw MDAiLCJ0dHR0dCIpCitTVERfU1RfR1AocmgsICAgIjAxMCIsInR0dHR0IikKK1NURF9TVF9HUChy ZiwgICAiMDExIiwidHR0dHQiKQorU1REX1NUX0dQKHJpLCAgICIxMDAiLCJ0dHR0dCIpCitTVERf U1RfR1AocmQsICAgIjExMCIsInR0dHR0IikKK1NURF9TVF9HUChyYm5ldywiMTAxIiwiMDB0dHQi KQorU1REX1NUX0dQKHJobmV3LCIxMDEiLCIwMXR0dCIpCitTVERfU1RfR1AocmluZXcsIjEwMSIs IjEwdHR0IikKKworCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8q ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICovCisvKiAgICAgVjRMRFNUICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICov CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCitERUZfQ0xBU1MzMihJQ0xB U1NfVjRMRFNUIiAtLS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixWNExEU1QpCitERUZf Q0xBU1MzMihJQ0xBU1NfVjRMRFNUIiAwLS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixQ cmVkX1JwbHVzUikKK0RFRl9DTEFTUzMyKElDTEFTU19WNExEU1QiIDEwMC0gLS0tLS0tLS0gUFAt LS0tLS0gLS0tLS0tLS0iLFByZWRfU3RvcmVJbW1lZCkKK0RFRl9DTEFTUzMyKElDTEFTU19WNExE U1QiIDEwMS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFJwbHVzUikKK0RFRl9DTEFTUzMy KElDTEFTU19WNExEU1QiIDExMC0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFN0b3JlSW1t ZWQpCitERUZfQ0xBU1MzMihJQ0xBU1NfVjRMRFNUIiAxMTEtIC0tLS0tLS0tIFBQLS0tLS0tIC0t LS0tLS0tIixNZW1PcCkKKworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisvKiAgICBQcmVkIChSK1IpICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLworCisjZGVmaW5lIFNURF9QTERfUlJFTkMoVEFHLE9QQykgXAorREVGX0VO QzMyKEw0X3Bsb2FkIyNUQUcjI3RfcnIsICAgSUNMQVNTX1Y0TERTVCIgMDAgMDAgIk9QQyIgIHNz c3NzICBQUGl0dHR0dCAgaXZ2ZGRkZGQiKVwKK0RFRl9FTkMzMihMNF9wbG9hZCMjVEFHIyNmX3Jy LCAgIElDTEFTU19WNExEU1QiIDAwIDAxICJPUEMiICBzc3NzcyAgUFBpdHR0dHQgIGl2dmRkZGRk IilcCitERUZfRU5DMzIoTDRfcGxvYWQjI1RBRyMjdG5ld19ycixJQ0xBU1NfVjRMRFNUIiAwMCAx MCAiT1BDIiAgc3Nzc3MgIFBQaXR0dHR0ICBpdnZkZGRkZCIpXAorREVGX0VOQzMyKEw0X3Bsb2Fk IyNUQUcjI2ZuZXdfcnIsSUNMQVNTX1Y0TERTVCIgMDAgMTEgIk9QQyIgIHNzc3NzICBQUGl0dHR0 dCAgaXZ2ZGRkZGQiKQorCitTVERfUExEX1JSRU5DKHJiLCAgIjAwMCIpCitTVERfUExEX1JSRU5D KHJ1YiwgIjAwMSIpCitTVERfUExEX1JSRU5DKHJoLCAgIjAxMCIpCitTVERfUExEX1JSRU5DKHJ1 aCwgIjAxMSIpCitTVERfUExEX1JSRU5DKHJpLCAgIjEwMCIpCitTVERfUExEX1JSRU5DKHJkLCAg IjExMCIpCisKKyNkZWZpbmUgU1REX1BTVF9SUkVOQyhUQUcsT1BDLFNSQykgXAorREVGX0VOQzMy KFM0X3BzdG9yZSMjVEFHIyN0X3JyLCAgIElDTEFTU19WNExEU1QiIDAxIDAwICJPUEMiICBzc3Nz cyAgUFBpdXV1dXUgIGl2diJTUkMpXAorREVGX0VOQzMyKFM0X3BzdG9yZSMjVEFHIyNmX3JyLCAg IElDTEFTU19WNExEU1QiIDAxIDAxICJPUEMiICBzc3NzcyAgUFBpdXV1dXUgIGl2diJTUkMpXAor REVGX0VOQzMyKFM0X3BzdG9yZSMjVEFHIyN0bmV3X3JyLElDTEFTU19WNExEU1QiIDAxIDEwICJP UEMiICBzc3NzcyAgUFBpdXV1dXUgIGl2diJTUkMpXAorREVGX0VOQzMyKFM0X3BzdG9yZSMjVEFH IyNmbmV3X3JyLElDTEFTU19WNExEU1QiIDAxIDExICJPUEMiICBzc3NzcyAgUFBpdXV1dXUgIGl2 diJTUkMpCisKK1NURF9QU1RfUlJFTkMocmIsICAgICIwMDAiLCJ0dHR0dCIpCitTVERfUFNUX1JS RU5DKHJoLCAgICAiMDEwIiwidHR0dHQiKQorU1REX1BTVF9SUkVOQyhyZiwgICAgIjAxMSIsInR0 dHR0IikKK1NURF9QU1RfUlJFTkMocmksICAgICIxMDAiLCJ0dHR0dCIpCitTVERfUFNUX1JSRU5D KHJkLCAgICAiMTEwIiwidHR0dHQiKQorU1REX1BTVF9SUkVOQyhyYm5ldywgIjEwMSIsIjAwdHR0 IikKK1NURF9QU1RfUlJFTkMocmhuZXcsICIxMDEiLCIwMXR0dCIpCitTVERfUFNUX1JSRU5DKHJp bmV3LCAiMTAxIiwiMTB0dHQiKQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisvKiAgICAgUHJlZCBTdG9yZSBpbW1lZGlhdGVzICAgKi8KKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqLworCisjZGVmaW5lIFY0X1BTVEkoVEFHLE9QQykgXAorREVGX0VOQzMy KFM0X3N0b3JlaSMjVEFHIyN0X2lvLCAgICBJQ0xBU1NfVjRMRFNUIiAxMDAgMDAgICJPUEMiICBz c3NzcyAgUFBJaWlpaWkgIGl2dklJSUlJIilcCitERUZfRU5DMzIoUzRfc3RvcmVpIyNUQUcjI2Zf aW8sICAgIElDTEFTU19WNExEU1QiIDEwMCAwMSAgIk9QQyIgIHNzc3NzICBQUElpaWlpaSAgaXZ2 SUlJSUkiKVwKK0RFRl9FTkMzMihTNF9zdG9yZWkjI1RBRyMjdG5ld19pbywgSUNMQVNTX1Y0TERT VCIgMTAwIDEwICAiT1BDIiAgc3Nzc3MgIFBQSWlpaWlpICBpdnZJSUlJSSIpXAorREVGX0VOQzMy KFM0X3N0b3JlaSMjVEFHIyNmbmV3X2lvLCBJQ0xBU1NfVjRMRFNUIiAxMDAgMTEgICJPUEMiICBz c3NzcyAgUFBJaWlpaWkgIGl2dklJSUlJIikKKworVjRfUFNUSShyYiwgIjAwIikKK1Y0X1BTVEko cmgsICIwMSIpCitWNF9QU1RJKHJpLCAiMTAiKQorCisKKworLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisvKiAgICAoUitSKSAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFNURF9MRF9SUkVOQyhUQUcsT1BD KSBcCitERUZfRU5DMzIoTDRfbG9hZCMjVEFHIyNfcnIsICAgICBJQ0xBU1NfVjRMRFNUIiAxMDEw ICJPUEMiICBzc3NzcyAgUFBpdHR0dHQgIGktLWRkZGRkIikKKworU1REX0xEX1JSRU5DKHJiLCAg IjAwMCIpCitTVERfTERfUlJFTkMocnViLCAiMDAxIikKK1NURF9MRF9SUkVOQyhyaCwgICIwMTAi KQorU1REX0xEX1JSRU5DKHJ1aCwgIjAxMSIpCitTVERfTERfUlJFTkMocmksICAiMTAwIikKK1NU RF9MRF9SUkVOQyhyZCwgICIxMTAiKQorCisjZGVmaW5lIFNURF9TVF9SUkVOQyhUQUcsT1BDLFNS QykgXAorREVGX0VOQzMyKFM0X3N0b3JlIyNUQUcjI19yciwgICAgIElDTEFTU19WNExEU1QiIDEw MTEgIk9QQyIgIHNzc3NzICBQUGl1dXV1dSAgaS0tIlNSQykKKworU1REX1NUX1JSRU5DKHJiLCAg ICAiMDAwIiwidHR0dHQiKQorU1REX1NUX1JSRU5DKHJoLCAgICAiMDEwIiwidHR0dHQiKQorU1RE X1NUX1JSRU5DKHJmLCAgICAiMDExIiwidHR0dHQiKQorU1REX1NUX1JSRU5DKHJpLCAgICAiMTAw IiwidHR0dHQiKQorU1REX1NUX1JSRU5DKHJkLCAgICAiMTEwIiwidHR0dHQiKQorU1REX1NUX1JS RU5DKHJibmV3LCAiMTAxIiwiMDB0dHQiKQorU1REX1NUX1JSRU5DKHJobmV3LCAiMTAxIiwiMDF0 dHQiKQorU1REX1NUX1JSRU5DKHJpbmV3LCAiMTAxIiwiMTB0dHQiKQorCisKKworCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICBTdG9yZSBpbW1lZGlhdGVzICAgICAg ICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgVjRfU1RJ KFRBRyxPUEMpIFwKK0RFRl9FTkMzMihTNF9zdG9yZWkjI1RBRyMjX2lvLCAgICAgSUNMQVNTX1Y0 TERTVCIgMTEwIC0tICJPUEMiICBzc3NzcyAgUFBJaWlpaWkgIGlJSUlJSUlJIikKKworCitWNF9T VEkocmIsICIwMCIpCitWNF9TVEkocmgsICIwMSIpCitWNF9TVEkocmksICIxMCIpCisKKworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgTWVtb3BzICAgICAgICAgICAg ICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgTUVN T1BFTkMoVEFHLE9QQykgXAorREVGX0VOQzMyKEw0X2FkZF8jI1RBRyMjX2lvLCAgICAgICAgIElD TEFTU19WNExEU1QiIDExMSAwLSAiIE9QQyAic3Nzc3MgIFBQMGlpaWlpICBpMDB0dHR0dCIpXAor REVGX0VOQzMyKEw0X3N1Yl8jI1RBRyMjX2lvLCAgICAgICAgIElDTEFTU19WNExEU1QiIDExMSAw LSAiIE9QQyAic3Nzc3MgIFBQMGlpaWlpICBpMDF0dHR0dCIpXAorREVGX0VOQzMyKEw0X2FuZF8j I1RBRyMjX2lvLCAgICAgICAgIElDTEFTU19WNExEU1QiIDExMSAwLSAiIE9QQyAic3Nzc3MgIFBQ MGlpaWlpICBpMTB0dHR0dCIpXAorREVGX0VOQzMyKEw0X29yXyMjVEFHIyNfaW8sICAgICAgICAg IElDTEFTU19WNExEU1QiIDExMSAwLSAiIE9QQyAic3Nzc3MgIFBQMGlpaWlpICBpMTF0dHR0dCIp XAorXAorREVGX0VOQzMyKEw0X2lhZGRfIyNUQUcjI19pbywgICAgICAgIElDTEFTU19WNExEU1Qi IDExMSAxLSAiIE9QQyAic3Nzc3MgIFBQMGlpaWlpICBpMDBJSUlJSSIpXAorREVGX0VOQzMyKEw0 X2lzdWJfIyNUQUcjI19pbywgICAgICAgIElDTEFTU19WNExEU1QiIDExMSAxLSAiIE9QQyAic3Nz c3MgIFBQMGlpaWlpICBpMDFJSUlJSSIpXAorREVGX0VOQzMyKEw0X2lhbmRfIyNUQUcjI19pbywg ICAgICAgIElDTEFTU19WNExEU1QiIDExMSAxLSAiIE9QQyAic3Nzc3MgIFBQMGlpaWlpICBpMTBJ SUlJSSIpXAorREVGX0VOQzMyKEw0X2lvcl8jI1RBRyMjX2lvLCAgICAgICAgIElDTEFTU19WNExE U1QiIDExMSAxLSAiIE9QQyAic3Nzc3MgIFBQMGlpaWlpICBpMTFJSUlJSSIpCisKKworCitNRU1P UEVOQyhtZW1vcHcsIjEwIikKK01FTU9QRU5DKG1lbW9waCwiMDEiKQorTUVNT1BFTkMobWVtb3Bi LCIwMCIpCisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKi8KKy8qICAgICAgICAgICBMT0FEICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworREVGX0NMQVNTMzIoSUNMQVNTX0xEIiAt LS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixMRCkKKworCitERUZfQ0xBU1MzMihJQ0xB U1NfTEQiIDAtLS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLExEX0FERFJfUk9GRlNFVCkK K0RFRl9DTEFTUzMyKElDTEFTU19MRCIgMTAxLSAtLS0tLS0tLSBQUDAwLS0tLSAtLS0tLS0tLSIs TERfQUREUl9QT1NUX0lNTUVEKQorREVGX0NMQVNTMzIoSUNMQVNTX0xEIiAxMDEtIC0tLS0tLS0t IFBQMDEtLS0tIC0tLS0tLS0tIixMRF9BRERSX0FCU19VUERBVEVfVjQpCitERUZfQ0xBU1MzMihJ Q0xBU1NfTEQiIDEwMS0gLS0tLS0tLS0gUFAxLS0tLS0gLS0tLS0tLS0iLExEX0FERFJfUE9TVF9J TU1FRF9QUkVEX1YyKQorREVGX0NMQVNTMzIoSUNMQVNTX0xEIiAxMTAtIC0tLS0tLS0tIFBQLTAt LS0tIDAtLS0tLS0tIixMRF9BRERSX1BPU1RfUkVHKQorREVGX0NMQVNTMzIoSUNMQVNTX0xEIiAx MTAtIC0tLS0tLS0tIFBQLTEtLS0tIC0tLS0tLS0tIixMRF9BRERSX0FCU19QTFVTX1JFR19WNCkK K0RFRl9DTEFTUzMyKElDTEFTU19MRCIgMTAwLSAtLS0tLS0tLSBQUC0tLS0xLSAtLS0tLS0tLSIs TERfQUREUl9QT1NUX0NSRUdfVjIpCitERUZfQ0xBU1MzMihJQ0xBU1NfTEQiIDExMS0gLS0tLS0t LS0gUFAtLS0tLS0gMS0tLS0tLS0iLExEX0FERFJfUFJFRF9BQlNfVjQpCisKK0RFRl9GSUVMRDMy KElDTEFTU19MRCIgISEhLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsTERfQW1vZGUsIkFt b2RlIikKK0RFRl9GSUVMRDMyKElDTEFTU19MRCIgLS0tISAhIS0tLS0tLSBQUC0tLS0tLSAtLS0t LS0tLSIsTERfVHlwZSwiVHlwZSIpCitERUZfRklFTEQzMihJQ0xBU1NfTEQiIC0tLS0gLS0hLS0t LS0gUFAtLS0tLS0gLS0tLS0tLS0iLExEX1VOLCJVbnNpZ25lZCIpCisKKyNkZWZpbmUgU1REX0xE X0VOQyhUQUcsT1BDKSBcCitERUZfRU5DMzIoTDJfbG9hZCMjVEFHIyNfaW8sICAgSUNMQVNTX0xE IiAwIGlpICJPUEMiICBzc3NzcyAgUFBpaWlpaWkgIGlpaWRkZGRkIilcCitERUZfRU5DMzIoTDJf bG9hZCMjVEFHIyNfcGksICAgSUNMQVNTX0xEIiAxIDAxICJPUEMiICB4eHh4eCAgUFAwMC0tLWkg IGlpaWRkZGRkIilcCitERUZfRU5DMzIoTDRfbG9hZCMjVEFHIyNfYXAsICAgSUNMQVNTX0xEIiAx IDAxICJPUEMiICBlZWVlZSAgUFAwMUlJSUkgIC1JSWRkZGRkIilcCitERUZfRU5DMzIoTDJfbG9h ZCMjVEFHIyNfcHIsICAgSUNMQVNTX0xEIiAxIDEwICJPUEMiICB4eHh4eCAgUFB1MC0tLS0gIDAt LWRkZGRkIilcCitERUZfRU5DMzIoTDRfbG9hZCMjVEFHIyNfdXIsICAgSUNMQVNTX0xEIiAxIDEw ICJPUEMiICB0dHR0dCAgUFBpMUlJSUkgIGlJSWRkZGRkIilcCisKKworI2RlZmluZSBTVERfTERY X0VOQyhUQUcsT1BDKSBcCitERUZfRU5DMzIoTDJfbG9hZCMjVEFHIyNfaW8sICAgSUNMQVNTX0xE IiAwIGlpICJPUEMiICBzc3NzcyAgUFBpaWlpaWkgIGlpaXl5eXl5IilcCitERUZfRU5DMzIoTDJf bG9hZCMjVEFHIyNfcGksICAgSUNMQVNTX0xEIiAxIDAxICJPUEMiICB4eHh4eCAgUFAwMC0tLWkg IGlpaXl5eXl5IilcCitERUZfRU5DMzIoTDRfbG9hZCMjVEFHIyNfYXAsICAgSUNMQVNTX0xEIiAx IDAxICJPUEMiICBlZWVlZSAgUFAwMUlJSUkgIC1JSXl5eXl5IilcCitERUZfRU5DMzIoTDJfbG9h ZCMjVEFHIyNfcHIsICAgSUNMQVNTX0xEIiAxIDEwICJPUEMiICB4eHh4eCAgUFB1MC0tLS0gIDAt LXl5eXl5IilcCitERUZfRU5DMzIoTDRfbG9hZCMjVEFHIyNfdXIsICAgSUNMQVNTX0xEIiAxIDEw ICJPUEMiICB0dHR0dCAgUFBpMUlJSUkgIGlJSXl5eXl5IilcCisKKworI2RlZmluZSBTVERfUExE X0VOQyhUQUcsT1BDKSBcCitERUZfRU5DMzIoTDJfcGxvYWQjI1RBRyMjdF9waSwgICAgSUNMQVNT X0xEIiAxIDAxICJPUEMiICB4eHh4eCAgUFAxMDB0dGkgIGlpaWRkZGRkIilcCitERUZfRU5DMzIo TDJfcGxvYWQjI1RBRyMjZl9waSwgICAgSUNMQVNTX0xEIiAxIDAxICJPUEMiICB4eHh4eCAgUFAx MDF0dGkgIGlpaWRkZGRkIilcCitERUZfRU5DMzIoTDJfcGxvYWQjI1RBRyMjdG5ld19waSwgSUNM QVNTX0xEIiAxIDAxICJPUEMiICB4eHh4eCAgUFAxMTB0dGkgIGlpaWRkZGRkIilcCitERUZfRU5D MzIoTDJfcGxvYWQjI1RBRyMjZm5ld19waSwgSUNMQVNTX0xEIiAxIDAxICJPUEMiICB4eHh4eCAg UFAxMTF0dGkgIGlpaWRkZGRkIilcCitERUZfRU5DMzIoTDRfcGxvYWQjI1RBRyMjdF9hYnMsICAg SUNMQVNTX0xEIiAxIDExICJPUEMiICBpaWlpaSAgUFAxMDB0dGkgIDEtLWRkZGRkIilcCitERUZf RU5DMzIoTDRfcGxvYWQjI1RBRyMjZl9hYnMsICAgSUNMQVNTX0xEIiAxIDExICJPUEMiICBpaWlp aSAgUFAxMDF0dGkgIDEtLWRkZGRkIilcCitERUZfRU5DMzIoTDRfcGxvYWQjI1RBRyMjdG5ld19h YnMsSUNMQVNTX0xEIiAxIDExICJPUEMiICBpaWlpaSAgUFAxMTB0dGkgIDEtLWRkZGRkIilcCitE RUZfRU5DMzIoTDRfcGxvYWQjI1RBRyMjZm5ld19hYnMsSUNMQVNTX0xEIiAxIDExICJPUEMiICBp aWlpaSAgUFAxMTF0dGkgIDEtLWRkZGRkIikKKworCisvKiAgICAgICAgICAgICAgIDAgMDAwICBt aXNjOiBkZWFsbG9jLGxvYWR3X2xvY2tlZCxkY2ZldGNoICAgICAgKi8KK1NURF9MRF9FTkMocmIs ICAiMSAwMDAiKQorU1REX0xEX0VOQyhydWIsICIxIDAwMSIpCitTVERfTERfRU5DKHJoLCAgIjEg MDEwIikKK1NURF9MRF9FTkMocnVoLCAiMSAwMTEiKQorU1REX0xEX0VOQyhyaSwgICIxIDEwMCIp CitTVERfTERfRU5DKHJkLCAgIjEgMTEwIikgLyogbm90ZSBkZXN0IHJlZyBmaWVsZCBMU0I9MCwg MSBpcyByZXNlcnZlZCAqLworCitTVERfUExEX0VOQyhyYiwgICIxIDAwMCIpCitTVERfUExEX0VO QyhydWIsICIxIDAwMSIpCitTVERfUExEX0VOQyhyaCwgICIxIDAxMCIpCitTVERfUExEX0VOQyhy dWgsICIxIDAxMSIpCitTVERfUExEX0VOQyhyaSwgICIxIDEwMCIpCitTVERfUExEX0VOQyhyZCwg ICIxIDExMCIpIC8qIG5vdGUgZGVzdCByZWcgZmllbGQgTFNCPTAsIDEgaXMgcmVzZXJ2ZWQgKi8K KworCitERUZfQ0xBU1MzMiggICAgSUNMQVNTX0xEIiAwLS0wIDAwMC0tLS0tIFBQLS0tLS0tIC0t LS0tLS0tIixMRF9NSVNDKQorREVGX0FOVElDTEFTUzMyKElDTEFTU19MRCIgMC0tMCAwMDAtLS0t LSBQUC0tLS0tLSAtLS0tLS0tLSIsTERfQUREUl9ST0ZGU0VUKQorREVGX0FOVElDTEFTUzMyKElD TEFTU19MRCIgMTAxMCAwMDAtLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsTERfQUREUl9QT1NUX0lN TUVEKQorREVGX0FOVElDTEFTUzMyKElDTEFTU19MRCIgMTEwMCAwMDAtLS0tLSBQUC0tLS0tLSAt LS0tLS0tLSIsTERfQUREUl9QT1NUX1JFRykKK0RFRl9BTlRJQ0xBU1MzMihJQ0xBU1NfTEQiIDEx MTAgMDAwLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLExEX0FERFJfUE9TVF9SRUcpCisKK0RFRl9F TkMzMihMMl9kZWFsbG9jZnJhbWUsICAgIElDTEFTU19MRCIgMDAwIDAgMDAwIHNzc3NzIFBQMC0t LS0tIC0tLWRkZGRkIikKK0RFRl9FTkMzMihMNF9yZXR1cm4sICAgICAgICAgIElDTEFTU19MRCIg MDExIDAgMDAwIHNzc3NzIFBQMDAwMC0tIC0tLWRkZGRkIikKK0RFRl9FTkMzMihMNF9yZXR1cm5f dCwgICAgICAgIElDTEFTU19MRCIgMDExIDAgMDAwIHNzc3NzIFBQMDEwMHZ2IC0tLWRkZGRkIikK K0RFRl9FTkMzMihMNF9yZXR1cm5fZiwgICAgICAgIElDTEFTU19MRCIgMDExIDAgMDAwIHNzc3Nz IFBQMTEwMHZ2IC0tLWRkZGRkIikKK0RFRl9FTkMzMihMNF9yZXR1cm5fdG5ld19wdCwgIElDTEFT U19MRCIgMDExIDAgMDAwIHNzc3NzIFBQMDExMHZ2IC0tLWRkZGRkIikKK0RFRl9FTkMzMihMNF9y ZXR1cm5fZm5ld19wdCwgIElDTEFTU19MRCIgMDExIDAgMDAwIHNzc3NzIFBQMTExMHZ2IC0tLWRk ZGRkIikKK0RFRl9FTkMzMihMNF9yZXR1cm5fdG5ld19wbnQsIElDTEFTU19MRCIgMDExIDAgMDAw IHNzc3NzIFBQMDAxMHZ2IC0tLWRkZGRkIikKK0RFRl9FTkMzMihMNF9yZXR1cm5fZm5ld19wbnQs IElDTEFTU19MRCIgMDExIDAgMDAwIHNzc3NzIFBQMTAxMHZ2IC0tLWRkZGRkIikKKworREVGX0VO QzMyKEwyX2xvYWR3X2xvY2tlZCxJQ0xBU1NfTEQiIDAwMSAwIDAwMCBzc3NzcyBQUDAwLS0tLSAt MDBkZGRkZCIpCisKKworCisKKworCitERUZfRU5DMzIoTDRfbG9hZGRfbG9ja2VkLElDTEFTU19M RCIgMDAxIDAgMDAwIHNzc3NzIFBQMDEtLS0tIC0wMGRkZGRkIikKK0RFRl9FWFRfU1BBQ0UoRVhU UkFDVFcsICAgSUNMQVNTX0xEIiAwMDEgMCAwMDAgaWlpaWkgUFAwaWlpaWkgLTAxaWlpaWkiKQor REVGX0VOQzMyKFkyX2RjZmV0Y2hibywgICBJQ0xBU1NfTEQiIDAxMCAwIDAwMCBzc3NzcyBQUDAt LWlpaSBpaWlpaWlpaSIpCisKKworCisKKworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgIFNUT1JFICAgICAgICAgICAgICov CisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0RFRl9D TEFTUzMyKElDTEFTU19TVCIgLS0tLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsU1QpCisK K0RFRl9GSUVMRDMyKElDTEFTU19TVCIgISEhLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIs U1RfQW1vZGUsIkFtb2RlIikKK0RFRl9GSUVMRDMyKElDTEFTU19TVCIgLS0tISAhIS0tLS0tLSBQ UC0tLS0tLSAtLS0tLS0tLSIsU1RfVHlwZSwiVHlwZSIpCitERUZfRklFTEQzMihJQ0xBU1NfU1Qi IC0tLS0gLS0hLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFNUX1VOLCJVbnNpZ25lZCIpCisKK0RF Rl9DTEFTUzMyKElDTEFTU19TVCIgMC0tMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsU1Rf QUREUl9ST0ZGU0VUKQorREVGX0NMQVNTMzIoSUNMQVNTX1NUIiAxMDExIC0tLS0tLS0tIFBQMC0t LS0tIDAtLS0tLTAtIixTVF9BRERSX1BPU1RfSU1NRUQpCitERUZfQ0xBU1MzMihJQ0xBU1NfU1Qi IDEwMTEgLS0tLS0tLS0gUFAwLS0tLS0gMS0tLS0tLS0iLFNUX0FERFJfQUJTX1VQREFURV9WNCkK K0RFRl9DTEFTUzMyKElDTEFTU19TVCIgMTAxMSAtLS0tLS0tLSBQUDEtLS0tLSAtLS0tLS0tLSIs U1RfQUREUl9QT1NUX0lNTUVEX1BSRURfVjIpCitERUZfQ0xBU1MzMihJQ0xBU1NfU1QiIDExMTEg LS0tLS0tLS0gUFAtLS0tLS0gMS0tLS0tLS0iLFNUX0FERFJfUFJFRF9BQlNfVjQpCitERUZfQ0xB U1MzMihJQ0xBU1NfU1QiIDExMDEgLS0tLS0tLS0gUFAtLS0tLS0gMC0tLS0tLS0iLFNUX0FERFJf UE9TVF9SRUcpCitERUZfQ0xBU1MzMihJQ0xBU1NfU1QiIDExMDEgLS0tLS0tLS0gUFAtLS0tLS0g MS0tLS0tLS0iLFNUX0FERFJfQUJTX1BMVVNfUkVHX1Y0KQorREVGX0NMQVNTMzIoSUNMQVNTX1NU IiAxMDAxIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLTEtIixTVF9BRERSX1BPU1RfQ1JFR19WMikK K0RFRl9DTEFTUzMyKElDTEFTU19TVCIgMC0tMCAxLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIs U1RfTUlTQ19TVE9SRUxJS0UpCitERUZfQ0xBU1MzMihJQ0xBU1NfU1QiIDEtLTAgMC0tLS0tLS0g UFAtLS0tLS0gLS0tLS0tLS0iLFNUX01JU0NfQlVTT1ApCitERUZfQ0xBU1MzMihJQ0xBU1NfU1Qi IDAtLTAgMC0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFNUX01JU0NfQ0FDSEVPUCkKKworCisj ZGVmaW5lIFNURF9TVF9FTkMoVEFHLE9QQyxTUkMpIFwKK0RFRl9FTkMzMihTMl9zdG9yZSMjVEFH IyNfaW8sICAgSUNMQVNTX1NUIiAwIGlpICJPUEMiICBzc3NzcyAgUFBpIlNSQyIgIGlpaWlpaWlp IilcCitERUZfRU5DMzIoUzJfc3RvcmUjI1RBRyMjX3BpLCAgIElDTEFTU19TVCIgMSAwMSAiT1BD IiAgeHh4eHggIFBQMCJTUkMiICAwaWlpaS0wLSIpXAorREVGX0VOQzMyKFM0X3N0b3JlIyNUQUcj I19hcCwgICBJQ0xBU1NfU1QiIDEgMDEgIk9QQyIgIGVlZWVlICBQUDAiU1JDIiAgMS1JSUlJSUki KVwKK0RFRl9FTkMzMihTMl9zdG9yZSMjVEFHIyNfcHIsICAgSUNMQVNTX1NUIiAxIDEwICJPUEMi ICB4eHh4eCAgUFB1IlNSQyIgIDAtLS0tLS0tIilcCitERUZfRU5DMzIoUzRfc3RvcmUjI1RBRyMj X3VyLCAgIElDTEFTU19TVCIgMSAxMCAiT1BDIiAgdXV1dXUgIFBQaSJTUkMiICAxaUlJSUlJSSIp XAorCisKKyNkZWZpbmUgU1REX1BTVF9FTkMoVEFHLE9QQyxTUkMpIFwKK0RFRl9FTkMzMihTMl9w c3RvcmUjI1RBRyMjdF9waSwgICAgSUNMQVNTX1NUIiAxIDAxICJPUEMiICB4eHh4eCAgUFAxIlNS QyIgIDBpaWlpMHZ2IilcCitERUZfRU5DMzIoUzJfcHN0b3JlIyNUQUcjI2ZfcGksICAgIElDTEFT U19TVCIgMSAwMSAiT1BDIiAgeHh4eHggIFBQMSJTUkMiICAwaWlpaTF2diIpXAorREVGX0VOQzMy KFMyX3BzdG9yZSMjVEFHIyN0bmV3X3BpLCBJQ0xBU1NfU1QiIDEgMDEgIk9QQyIgIHh4eHh4ICBQ UDEiU1JDIiAgMWlpaWkwdnYiKVwKK0RFRl9FTkMzMihTMl9wc3RvcmUjI1RBRyMjZm5ld19waSwg SUNMQVNTX1NUIiAxIDAxICJPUEMiICB4eHh4eCAgUFAxIlNSQyIgIDFpaWlpMXZ2IilcCitERUZf RU5DMzIoUzRfcHN0b3JlIyNUQUcjI3RfYWJzLCAgIElDTEFTU19TVCIgMSAxMSAiT1BDIiAgLS0t aWkgIFBQMCJTUkMiICAxaWlpaTB2diIpXAorREVGX0VOQzMyKFM0X3BzdG9yZSMjVEFHIyNmX2Fi cywgICBJQ0xBU1NfU1QiIDEgMTEgIk9QQyIgIC0tLWlpICBQUDAiU1JDIiAgMWlpaWkxdnYiKVwK K0RFRl9FTkMzMihTNF9wc3RvcmUjI1RBRyMjdG5ld19hYnMsSUNMQVNTX1NUIiAxIDExICJPUEMi ICAtLS1paSAgUFAxIlNSQyIgIDFpaWlpMHZ2IilcCitERUZfRU5DMzIoUzRfcHN0b3JlIyNUQUcj I2ZuZXdfYWJzLElDTEFTU19TVCIgMSAxMSAiT1BDIiAgLS0taWkgIFBQMSJTUkMiICAxaWlpaTF2 diIpCisKKworLyogICAgICAgICAgICAgICAgIDAgMC0tICBTdG9yZSBNaXNjICovCisvKiAgICAg ICAgICAgICAgICAgMCAxeHggIEF2YWlsYWJsZSAqLworU1REX1NUX0VOQyhyYiwgICAgIjEgMDAw IiwidHR0dHQiKQorU1REX1NUX0VOQyhyaCwgICAgIjEgMDEwIiwidHR0dHQiKQorU1REX1NUX0VO QyhyZiwgICAgIjEgMDExIiwidHR0dHQiKQorU1REX1NUX0VOQyhyaSwgICAgIjEgMTAwIiwidHR0 dHQiKQorU1REX1NUX0VOQyhyZCwgICAgIjEgMTEwIiwidHR0dHQiKQorU1REX1NUX0VOQyhyYm5l dywgIjEgMTAxIiwiMDB0dHQiKQorU1REX1NUX0VOQyhyaG5ldywgIjEgMTAxIiwiMDF0dHQiKQor U1REX1NUX0VOQyhyaW5ldywgIjEgMTAxIiwiMTB0dHQiKQorCitTVERfUFNUX0VOQyhyYiwgICAg IjEgMDAwIiwidHR0dHQiKQorU1REX1BTVF9FTkMocmgsICAgICIxIDAxMCIsInR0dHR0IikKK1NU RF9QU1RfRU5DKHJmLCAgICAiMSAwMTEiLCJ0dHR0dCIpCitTVERfUFNUX0VOQyhyaSwgICAgIjEg MTAwIiwidHR0dHQiKQorU1REX1BTVF9FTkMocmQsICAgICIxIDExMCIsInR0dHR0IikKK1NURF9Q U1RfRU5DKHJibmV3LCAiMSAxMDEiLCIwMHR0dCIpCitTVERfUFNUX0VOQyhyaG5ldywgIjEgMTAx IiwiMDF0dHQiKQorU1REX1BTVF9FTkMocmluZXcsICIxIDEwMSIsIjEwdHR0IikKKworCisKKy8q IFVzZXIgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4eCAtIHN0X21p c2MgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Ki8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHggYnVzL2NhY2hlICAgICAqLwor LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4IHN0b3JlL2NhY2hlICAgICAq LworREVGX0VOQzMyKFMyX2FsbG9jZnJhbWUsICAgSUNMQVNTX1NUIiAwMDAgMDEgMDB4eHh4eCBQ UDAwMGlpaSBpaWlpaWlpaSIpCitERUZfRU5DMzIoUzJfc3RvcmV3X2xvY2tlZCxJQ0xBU1NfU1Qi IDAwMCAwMSAwMXNzc3NzIFBQLXR0dHR0IC0tLS0tLWRkIikKK0RFRl9FTkMzMihTNF9zdG9yZWRf bG9ja2VkLElDTEFTU19TVCIgMDAwIDAxIDExc3Nzc3MgUFAwdHR0dHQgLS0tLS0tZGQiKQorREVG X0VOQzMyKFkyX2RjemVyb2EsICAgICAgSUNMQVNTX1NUIiAwMDAgMDEgMTBzc3NzcyBQUDAtLS0t LSAtLS0tLS0tLSIpCisKKworREVGX0VOQzMyKFkyX2JhcnJpZXIsICAgICAgSUNMQVNTX1NUIiAx MDAgMDAgMDAtLS0tLSBQUC0tLS0tLSAwMDAtLS0tLSIpCitERUZfRU5DMzIoWTJfc3luY2h0LCAg ICAgICBJQ0xBU1NfU1QiIDEwMCAwMCAxMC0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIikKKworCisK K0RFRl9FTkMzMihZMl9kY2NsZWFuYSwgICAgIElDTEFTU19TVCIgMDAwIDAwIDAwc3Nzc3MgUFAt LS0tLS0gLS0tLS0tLS0iKQorREVGX0VOQzMyKFkyX2RjaW52YSwgICAgICAgSUNMQVNTX1NUIiAw MDAgMDAgMDFzc3NzcyBQUC0tLS0tLSAtLS0tLS0tLSIpCitERUZfRU5DMzIoWTJfZGNjbGVhbmlu dmEsICBJQ0xBU1NfU1QiIDAwMCAwMCAxMHNzc3NzIFBQLS0tLS0tIC0tLS0tLS0tIikKKworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAg IEpVTVAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K Ky8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisKK0RFRl9DTEFTUzMyKElDTEFTU19KIiAtLS0tIC0tLS0tLS0tIFBQLS0t LS0tIC0tLS0tLS0tIixKKQorREVGX0NMQVNTMzIoSUNMQVNTX0oiIDAtLS0gLS0tLS0tLS0gUFAt LS0tLS0gLS0tLS0tLS0iLEpVTVBSX01JU0MpCitERUZfQ0xBU1MzMihJQ0xBU1NfSiIgMTAtLSAt LS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsVUNKVU1QKQorREVGX0NMQVNTMzIoSUNMQVNTX0oi IDExMC0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLENKVU1QKQorREVGX0ZJRUxEMzIoSUNM QVNTX0oiIDExMC0gLS0tLS0tLS0gUFAtLSEtLS0gLS0tLS0tLS0iLEpfRE4sIkRvdC1uZXciKQor REVGX0ZJRUxEMzIoSUNMQVNTX0oiIDExMC0gLS0tLS0tLS0gUFAtIS0tLS0gLS0tLS0tLS0iLEpf UFQsIlByZWRpY3QtdGFrZW4iKQorCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfSiIg MDAwMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMF0gUEM9KFJzKSwgUjMxPXJldHVy biIpCitERUZfRU5DMzIoSjJfY2FsbHIsICAgICBJQ0xBU1NfSiIgMDAwMCAgMTAxc3Nzc3MgIFBQ LS0tLS0tICAtLS0tLS0tLSIpCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0oiIDAwMDEg LS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzFdIGlmIChQdSkgUEM9KFJzKSwgUjMxPXJl dHVybiIpCitERUZfRU5DMzIoSjJfY2FsbHJ0LCAgICBJQ0xBU1NfSiIgMDAwMSAgMDAwc3Nzc3Mg IFBQLS0tLXV1ICAtLS0tLS0tLSIpCitERUZfRU5DMzIoSjJfY2FsbHJmLCAgICBJQ0xBU1NfSiIg MDAwMSAgMDAxc3Nzc3MgIFBQLS0tLXV1ICAtLS0tLS0tLSIpCisKK0RFRl9GSUVMRFJPV19ERVND MzIoSUNMQVNTX0oiIDAwMTAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzJdIFBDPShS cyk7ICIpCitERUZfRU5DMzIoSjJfanVtcHIsICAgICAgSUNMQVNTX0oiIDAwMTAgIDEwMHNzc3Nz ICBQUC0tLS0tLSAgLS0tLS0tLS0iKQorREVGX0VOQzMyKEo0X2hpbnRqdW1wciwgIElDTEFTU19K IiAwMDEwICAxMDFzc3NzcyAgUFAtLS0tLS0gIC0tLS0tLS0tIikKKworREVGX0ZJRUxEUk9XX0RF U0MzMihJQ0xBU1NfSiIgMDAxMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjM10gaWYg KFB1KSBQQz0oUnMpICIpCitERUZfRU5DMzIoSjJfanVtcHJ0LCAgIElDTEFTU19KIiAwMDExICAw MTBzc3NzcyAgUFAtMDAtdXUgIC0tLS0tLS0tIikKK0RFRl9FTkMzMihKMl9qdW1wcmYsICAgSUNM QVNTX0oiIDAwMTEgIDAxMXNzc3NzICBQUC0wMC11dSAgLS0tLS0tLS0iKQorREVGX0VOQzMyKEoy X2p1bXBydHB0LCAgICBJQ0xBU1NfSiIgMDAxMSAgMDEwc3Nzc3MgIFBQLTEwLXV1ICAtLS0tLS0t LSIpCitERUZfRU5DMzIoSjJfanVtcHJmcHQsICAgIElDTEFTU19KIiAwMDExICAwMTFzc3NzcyAg UFAtMTAtdXUgIC0tLS0tLS0tIikKK0RFRl9FTkMzMihKMl9qdW1wcnRuZXcsICAgSUNMQVNTX0oi IDAwMTEgIDAxMHNzc3NzICBQUC0wMS11dSAgLS0tLS0tLS0iKQorREVGX0VOQzMyKEoyX2p1bXBy Zm5ldywgICBJQ0xBU1NfSiIgMDAxMSAgMDExc3Nzc3MgIFBQLTAxLXV1ICAtLS0tLS0tLSIpCitE RUZfRU5DMzIoSjJfanVtcHJ0bmV3cHQsIElDTEFTU19KIiAwMDExICAwMTBzc3NzcyAgUFAtMTEt dXUgIC0tLS0tLS0tIikKK0RFRl9FTkMzMihKMl9qdW1wcmZuZXdwdCwgSUNMQVNTX0oiIDAwMTEg IDAxMXNzc3NzICBQUC0xMS11dSAgLS0tLS0tLS0iKQorCitERUZfRklFTERST1dfREVTQzMyKElD TEFTU19KIiAwMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM0XSAoI3U4KSAiKQor REVGX0VOQzMyKEoyX3RyYXAwLCAgICAgSUNMQVNTX0oiIDAxMDAgIDAwLS0tLS0tICBQUC1paWlp aSAgLS0taWlpLS0iKQorCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19KIiAwMTEwIC0tLS0t LS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM2XSBpY29wKFJzKSAiKQorREVGX0VOQzMyKFkyX2lj aW52YSwgICAgSUNMQVNTX0oiIDAxMTAgIDExMHNzc3NzICBQUDAwMC0tLSAgLS0tLS0tLS0iKQor CitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19KIiAwMTExIC0tLS0tLS0tIFBQLS0tLS0tIC0t LS0tLS0tIiwiWyM3XSAoKSAiKQorREVGX0VOQzMyKFkyX2lzeW5jLCAgICAgSUNMQVNTX0oiIDAx MTEgIDExMDAwMDAwICBQUDAtLS0wMCAgMDAwMDAwMTAiKQorCisvKiBKVU1QICovCitERUZfRklF TERST1dfREVTQzMyKElDTEFTU19KIiAxMDAtIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwi WyM4LDldIFBDPSgjcjIyKSIpCitERUZfRU5DMzIoSjJfanVtcCwgICAgICBJQ0xBU1NfSiIgMTAw aSAgaWlpaWlpaWkgIFBQaWlpaWlpICBpaWlpaWlpLSIpCisKK0RFRl9GSUVMRFJPV19ERVNDMzIo SUNMQVNTX0oiIDEwMS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzEwLDExXSBQQz0o I3IyMiksIFIzMT1yZXR1cm4iKQorREVGX0VOQzMyKEoyX2NhbGwsICAgICAgSUNMQVNTX0oiIDEw MWkgIGlpaWlpaWlpICBQUGlpaWlpaSAgaWlpaWlpaTAiKQorCitERUZfRklFTERST1dfREVTQzMy KElDTEFTU19KIiAxMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxMl0gaWYgKFB1 KSBQQz0oI3IxNSkiKQorREVGX0VOQzMyKEoyX2p1bXB0LCAgSUNMQVNTX0oiIDExMDAgIGlpMGlp aWlpICBQUGkwMC11dSAgaWlpaWlpaS0iKQorREVGX0VOQzMyKEoyX2p1bXBmLCAgSUNMQVNTX0oi IDExMDAgIGlpMWlpaWlpICBQUGkwMC11dSAgaWlpaWlpaS0iKQorREVGX0VOQzMyKEoyX2p1bXB0 cHQsICAgSUNMQVNTX0oiIDExMDAgIGlpMGlpaWlpICBQUGkxMC11dSAgaWlpaWlpaS0iKQorREVG X0VOQzMyKEoyX2p1bXBmcHQsICAgSUNMQVNTX0oiIDExMDAgIGlpMWlpaWlpICBQUGkxMC11dSAg aWlpaWlpaS0iKQorREVGX0VOQzMyKEoyX2p1bXB0bmV3LCAgSUNMQVNTX0oiIDExMDAgIGlpMGlp aWlpICBQUGkwMS11dSAgaWlpaWlpaS0iKQorREVGX0VOQzMyKEoyX2p1bXBmbmV3LCAgSUNMQVNT X0oiIDExMDAgIGlpMWlpaWlpICBQUGkwMS11dSAgaWlpaWlpaS0iKQorREVGX0VOQzMyKEoyX2p1 bXB0bmV3cHQsSUNMQVNTX0oiIDExMDAgIGlpMGlpaWlpICBQUGkxMS11dSAgaWlpaWlpaS0iKQor REVGX0VOQzMyKEoyX2p1bXBmbmV3cHQsSUNMQVNTX0oiIDExMDAgIGlpMWlpaWlpICBQUGkxMS11 dSAgaWlpaWlpaS0iKQorCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19KIiAxMTAxIC0tLS0t LS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxM10gaWYgKFB1KSBQQz0oI3IxNSksIFIzMT1yZXR1 cm4iKQorREVGX0VOQzMyKEoyX2NhbGx0LCAgICAgSUNMQVNTX0oiIDExMDEgIGlpMGlpaWlpICBQ UGktMC11dSAgaWlpaWlpaS0iKQorREVGX0VOQzMyKEoyX2NhbGxmLCAgICAgSUNMQVNTX0oiIDEx MDEgIGlpMWlpaWlpICBQUGktMC11dSAgaWlpaWlpaS0iKQorCisKKworCisKKworCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAqLworLyogICAgICAgIFY0ICAgICAgICAgICAgICAgICAgICovCisvKiAgIENPTVBPVU5EIENP TVBBUkUtSlVNUFMgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KKworCisvKiBFSlA6IHRoaXMgaGFzIHRvIG1hdGNoIHdoYXQgd2UgaGF2ZSBpbiBo dG1sZG9jcy5weS4uLiBzbyBJIHdpbGwgY2FsbCBpdCBDSiwgd2UgY2FuIGNoYW5nZSBpdCAqLwor REVGX0NMQVNTMzIoSUNMQVNTX0NKIiAwLS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixD SikKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQ0oiIDAwLS0gLS0tLS0tLS0gLS0tLS0t LS0gLS0tLS0tLS0iLCJbIzAtM10gIHBkPWNtcC54eChSLCN1NSkgOyBpZiAoWyFdcDAubmV3KSBq dW1wOltoXSAjczk6MiAiKQorREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQ0oiIDAxMC0gLS0t LS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0iLCJbIzQsNV0gIHBkPWNtcC5lcShSLFIpIDsgaWYgKFsh XXAwLm5ldykganVtcDpbaF0gI3M5OjIgIikKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0NK IiAwMTEwIC0tLS0tLS0tIC0tLS0tLS0tIC0tLS0tLS0tIiwiWyM2XSAgICBSZD0jdTYgOyBqdW1w ICNzOToyICIpCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19DSiIgMDExMSAtLS0tLS0tLSAt LS0tLS0tLSAtLS0tLS0tLSIsIlsjN10gICAgUmQ9UnMgOyBqdW1wICNzOToyICIpCisKKworI2Rl ZmluZSBDTVBKTVBJX0VOQyhUQUcsT1BDKSBcCitERUZfRU5DMzIoVEFHIyNpX3RwMF9qdW1wX3Qs ICAgICAgSUNMQVNTX0NKIiAwMCAwICJPUEMiICAwaWlzc3NzICBQUDFJSUlJSSAgaWlpaWlpaS0i KSBcCitERUZfRU5DMzIoVEFHIyNpX2ZwMF9qdW1wX3QsICAgICAgSUNMQVNTX0NKIiAwMCAwICJP UEMiICAxaWlzc3NzICBQUDFJSUlJSSAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNpX3Rw MF9qdW1wX250LCAgICAgSUNMQVNTX0NKIiAwMCAwICJPUEMiICAwaWlzc3NzICBQUDBJSUlJSSAg aWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNpX2ZwMF9qdW1wX250LCAgICAgSUNMQVNTX0NK IiAwMCAwICJPUEMiICAxaWlzc3NzICBQUDBJSUlJSSAgaWlpaWlpaS0iKSBcCitcCitERUZfRU5D MzIoVEFHIyNpX3RwMV9qdW1wX3QsICAgICAgSUNMQVNTX0NKIiAwMCAxICJPUEMiICAwaWlzc3Nz ICBQUDFJSUlJSSAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNpX2ZwMV9qdW1wX3QsICAg ICAgSUNMQVNTX0NKIiAwMCAxICJPUEMiICAxaWlzc3NzICBQUDFJSUlJSSAgaWlpaWlpaS0iKSBc CitERUZfRU5DMzIoVEFHIyNpX3RwMV9qdW1wX250LCAgICAgSUNMQVNTX0NKIiAwMCAxICJPUEMi ICAwaWlzc3NzICBQUDBJSUlJSSAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNpX2ZwMV9q dW1wX250LCAgICAgSUNMQVNTX0NKIiAwMCAxICJPUEMiICAxaWlzc3NzICBQUDBJSUlJSSAgaWlp aWlpaS0iKQorCitDTVBKTVBJX0VOQyhKNF9jbXBlcSwiMDAiKQorQ01QSk1QSV9FTkMoSjRfY21w Z3QsIjAxIikKK0NNUEpNUElfRU5DKEo0X2NtcGd0dSwiMTAiKQorCisKKyNkZWZpbmUgQ01QSk1Q MUlfRU5DKFRBRyxPUEMpIFwKK0RFRl9FTkMzMihUQUcjI190cDBfanVtcF90LCAgICAgIElDTEFT U19DSiIgMDAgMCAgMTEgIDBpaXNzc3MgIFBQMS0tLSJPUEMiICBpaWlpaWlpLSIpIFwKK0RFRl9F TkMzMihUQUcjI19mcDBfanVtcF90LCAgICAgIElDTEFTU19DSiIgMDAgMCAgMTEgIDFpaXNzc3Mg IFBQMS0tLSJPUEMiICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMzMihUQUcjI190cDBfanVtcF9udCwg ICAgIElDTEFTU19DSiIgMDAgMCAgMTEgIDBpaXNzc3MgIFBQMC0tLSJPUEMiICBpaWlpaWlpLSIp IFwKK0RFRl9FTkMzMihUQUcjI19mcDBfanVtcF9udCwgICAgIElDTEFTU19DSiIgMDAgMCAgMTEg IDFpaXNzc3MgIFBQMC0tLSJPUEMiICBpaWlpaWlpLSIpIFwKK1wKK0RFRl9FTkMzMihUQUcjI190 cDFfanVtcF90LCAgICAgIElDTEFTU19DSiIgMDAgMSAgMTEgIDBpaXNzc3MgIFBQMS0tLSJPUEMi ICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMzMihUQUcjI19mcDFfanVtcF90LCAgICAgIElDTEFTU19D SiIgMDAgMSAgMTEgIDFpaXNzc3MgIFBQMS0tLSJPUEMiICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMz MihUQUcjI190cDFfanVtcF9udCwgICAgIElDTEFTU19DSiIgMDAgMSAgMTEgIDBpaXNzc3MgIFBQ MC0tLSJPUEMiICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMzMihUQUcjI19mcDFfanVtcF9udCwgICAg IElDTEFTU19DSiIgMDAgMSAgMTEgIDFpaXNzc3MgIFBQMC0tLSJPUEMiICBpaWlpaWlpLSIpCisK K0NNUEpNUDFJX0VOQyhKNF9jbXBlcW4xLCIwMCIpCitDTVBKTVAxSV9FTkMoSjRfY21wZ3RuMSwi MDEiKQorQ01QSk1QMUlfRU5DKEo0X3RzdGJpdDAsIjExIikKKworCisKKyNkZWZpbmUgQ01QSk1Q Ul9FTkMoVEFHLE9QQykgXAorREVGX0VOQzMyKFRBRyMjX3RwMF9qdW1wX3QsICAgICAgIElDTEFT U19DSiIgMDEgMCAiT1BDIiAgMGlpc3NzcyAgUFAxMHR0dHQgIGlpaWlpaWktIikgXAorREVGX0VO QzMyKFRBRyMjX2ZwMF9qdW1wX3QsICAgICAgIElDTEFTU19DSiIgMDEgMCAiT1BDIiAgMWlpc3Nz cyAgUFAxMHR0dHQgIGlpaWlpaWktIikgXAorREVGX0VOQzMyKFRBRyMjX3RwMF9qdW1wX250LCAg ICAgIElDTEFTU19DSiIgMDEgMCAiT1BDIiAgMGlpc3NzcyAgUFAwMHR0dHQgIGlpaWlpaWktIikg XAorREVGX0VOQzMyKFRBRyMjX2ZwMF9qdW1wX250LCAgICAgIElDTEFTU19DSiIgMDEgMCAiT1BD IiAgMWlpc3NzcyAgUFAwMHR0dHQgIGlpaWlpaWktIikgXAorXAorREVGX0VOQzMyKFRBRyMjX3Rw MV9qdW1wX3QsICAgICAgIElDTEFTU19DSiIgMDEgMCAiT1BDIiAgMGlpc3NzcyAgUFAxMXR0dHQg IGlpaWlpaWktIikgXAorREVGX0VOQzMyKFRBRyMjX2ZwMV9qdW1wX3QsICAgICAgIElDTEFTU19D SiIgMDEgMCAiT1BDIiAgMWlpc3NzcyAgUFAxMXR0dHQgIGlpaWlpaWktIikgXAorREVGX0VOQzMy KFRBRyMjX3RwMV9qdW1wX250LCAgICAgIElDTEFTU19DSiIgMDEgMCAiT1BDIiAgMGlpc3NzcyAg UFAwMXR0dHQgIGlpaWlpaWktIikgXAorREVGX0VOQzMyKFRBRyMjX2ZwMV9qdW1wX250LCAgICAg IElDTEFTU19DSiIgMDEgMCAiT1BDIiAgMWlpc3NzcyAgUFAwMXR0dHQgIGlpaWlpaWktIikKKwor Q01QSk1QUl9FTkMoSjRfY21wZXEsIjAwIikKK0NNUEpNUFJfRU5DKEo0X2NtcGd0LCIwMSIpCitD TVBKTVBSX0VOQyhKNF9jbXBndHUsIjEwIikKKworCitERUZfRU5DMzIoSjRfanVtcHNldGksICAg ICAgICAgICAgSUNMQVNTX0NKIiAwMTEwICAtLWlpZGRkZCAgUFBJSUlJSUkgIGlpaWlpaWktIikK K0RFRl9FTkMzMihKNF9qdW1wc2V0ciwgICAgICAgICAgICBJQ0xBU1NfQ0oiIDAxMTEgIC0taWlz c3NzICBQUC0tZGRkZCAgaWlpaWlpaS0iKQorCisKK0RFRl9FWFRfU1BBQ0UoRVhUX0NKLCAgICAg ICAgICAgICBJQ0xBU1NfQ0oiMSBpaWkgIGlpaWlpaWlpICBQUGlpaWlpaSAgaWlpaWlpaWkiKQor CisKKworREVGX0NMQVNTMzIoSUNMQVNTX05DSiIgMC0tLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0t LS0tLSIsTkNKKQorREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfTkNKIiAwMC0tIC0tLS0tLS0t IC0tLS0tLS0tIC0tLS0tLS0tIiwiWyMwLTNdIGlmIChjbXAueHgoUi5uZXcsUikpIGp1bXA6W2hd ICNzOToyICIpCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19OQ0oiIDAxLS0gLS0tLS0tLS0g LS0tLS0tLS0gLS0tLS0tLS0iLCJbIzQtN10gaWYgKGNtcC54eChSLm5ldywjVTUpKSBqdW1wOlto XSAjczk6MiAiKQorCisjZGVmaW5lIE9QUkpNUF9FTkMoVEFHLE9QQykgXAorREVGX0VOQzMyKFRB RyMjX3RfanVtcG52X3QsICAgICAgIElDTEFTU19OQ0oiIDAwICJPUEMiICAwaWktc3NzICBQUDF0 dHR0dCAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNfZl9qdW1wbnZfdCwgICAgICAgSUNM QVNTX05DSiIgMDAgIk9QQyIgIDFpaS1zc3MgIFBQMXR0dHR0ICBpaWlpaWlpLSIpIFwKK0RFRl9F TkMzMihUQUcjI190X2p1bXBudl9udCwgICAgICBJQ0xBU1NfTkNKIiAwMCAiT1BDIiAgMGlpLXNz cyAgUFAwdHR0dHQgIGlpaWlpaWktIikgXAorREVGX0VOQzMyKFRBRyMjX2ZfanVtcG52X250LCAg ICAgIElDTEFTU19OQ0oiIDAwICJPUEMiICAxaWktc3NzICBQUDB0dHR0dCAgaWlpaWlpaS0iKQor CitPUFJKTVBfRU5DKEo0X2NtcGVxLCAgICIwMDAiKQorT1BSSk1QX0VOQyhKNF9jbXBndCwgICAi MDAxIikKK09QUkpNUF9FTkMoSjRfY21wZ3R1LCAgIjAxMCIpCitPUFJKTVBfRU5DKEo0X2NtcGx0 LCAgICIwMTEiKQorT1BSSk1QX0VOQyhKNF9jbXBsdHUsICAiMTAwIikKKworCisjZGVmaW5lIE9Q SUpNUF9FTkMoVEFHLE9QQykgXAorREVGX0VOQzMyKFRBRyMjX3RfanVtcG52X3QsICAgICAgIElD TEFTU19OQ0oiIDAxICJPUEMiICAwaWktc3NzICBQUDFJSUlJSSAgaWlpaWlpaS0iKSBcCitERUZf RU5DMzIoVEFHIyNfZl9qdW1wbnZfdCwgICAgICAgSUNMQVNTX05DSiIgMDEgIk9QQyIgIDFpaS1z c3MgIFBQMUlJSUlJICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMzMihUQUcjI190X2p1bXBudl9udCwg ICAgICBJQ0xBU1NfTkNKIiAwMSAiT1BDIiAgMGlpLXNzcyAgUFAwSUlJSUkgIGlpaWlpaWktIikg XAorREVGX0VOQzMyKFRBRyMjX2ZfanVtcG52X250LCAgICAgIElDTEFTU19OQ0oiIDAxICJPUEMi ICAxaWktc3NzICBQUDBJSUlJSSAgaWlpaWlpaS0iKQorCitPUElKTVBfRU5DKEo0X2NtcGVxaSwg ICIwMDAiKQorT1BJSk1QX0VOQyhKNF9jbXBndGksICAiMDAxIikKK09QSUpNUF9FTkMoSjRfY21w Z3R1aSwgIjAxMCIpCisKKworI2RlZmluZSBPUEkxSk1QX0VOQyhUQUcsT1BDKSBcCitERUZfRU5D MzIoVEFHIyNfdF9qdW1wbnZfdCwgICAgICAgSUNMQVNTX05DSiIgMDEgIk9QQyIgIDBpaS1zc3Mg IFBQMS0tLS0tICBpaWlpaWlpLSIpIFwKK0RFRl9FTkMzMihUQUcjI19mX2p1bXBudl90LCAgICAg ICBJQ0xBU1NfTkNKIiAwMSAiT1BDIiAgMWlpLXNzcyAgUFAxLS0tLS0gIGlpaWlpaWktIikgXAor REVGX0VOQzMyKFRBRyMjX3RfanVtcG52X250LCAgICAgIElDTEFTU19OQ0oiIDAxICJPUEMiICAw aWktc3NzICBQUDAtLS0tLSAgaWlpaWlpaS0iKSBcCitERUZfRU5DMzIoVEFHIyNfZl9qdW1wbnZf bnQsICAgICAgSUNMQVNTX05DSiIgMDEgIk9QQyIgIDFpaS1zc3MgIFBQMC0tLS0tICBpaWlpaWlp LSIpCisKK09QSTFKTVBfRU5DKEo0X2NtcGVxbjEsICAiMTAwIikKK09QSTFKTVBfRU5DKEo0X2Nt cGd0bjEsICAiMTAxIikKK09QSTFKTVBfRU5DKEo0X3RzdGJpdDAsICAiMDExIikKKworCitERUZf RVhUX1NQQUNFKEVYVF9OQ0osICAgICAgICAgICAgIElDTEFTU19OQ0oiMSBpaWkgIGlpaWlpaWlp ICBQUGlpaWlpaSAgaWlpaWlpaWkiKQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgIENSICAgICAgICAgICAgICAgICovCisv KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworCitERUZf Q0xBU1MzMihJQ0xBU1NfQ1IiIC0tLS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLENSKQor REVGX0NMQVNTMzIoSUNMQVNTX0NSIiAtMC0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixD UlVTRVIpCitERUZfQ0xBU1MzMihJQ0xBU1NfQ1IiIC0xLS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0t LS0tLS0iLENSU1VQRVIpCisKK0RFRl9GSUVMRDMyKElDTEFTU19DUiIgLSEtLSAtLS0tLS0tLSBQ UC0tLS0tLSAtLS0tLS0tLSIsQ1Jfc20sIlN1cGVydmlzb3IgbW9kZSBvbmx5IikKKworLyogVXNl ciBDUiBvcHMgKi8KKworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNTX0NSIiAwMDAwICAt LS0tLS0tLSAgUFAtLS0tLS0gIC0tLS0tLS0tIiwiWyMwXSAoUnMsI3I4KSIpCitERUZfRU5DMzIo SjJfbG9vcDByLCAgICBJQ0xBU1NfQ1IiIDAwMDAgIDAwMHNzc3NzICBQUC1paWlpaSAgLS0taWkt LS0iKQorREVGX0VOQzMyKEoyX2xvb3AxciwgICAgSUNMQVNTX0NSIiAwMDAwICAwMDFzc3NzcyAg UFAtaWlpaWkgIC0tLWlpLS0tIikKK0RFRl9FTkMzMihKMl9wbG9vcDFzciwgIElDTEFTU19DUiIg MDAwMCAgMTAxc3Nzc3MgIFBQLWlpaWlpICAtLS1paS0tLSIpCitERUZfRU5DMzIoSjJfcGxvb3Ay c3IsICBJQ0xBU1NfQ1IiIDAwMDAgIDExMHNzc3NzICBQUC1paWlpaSAgLS0taWktLS0iKQorREVG X0VOQzMyKEoyX3Bsb29wM3NyLCAgSUNMQVNTX0NSIiAwMDAwICAxMTFzc3NzcyAgUFAtaWlpaWkg IC0tLWlpLS0tIikKKworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAgIElDTEFTU19DUiIgMDAwMSAg LS0tLS0tLS0gIFBQLS0tLS0tICAtLS0tLS0tLSIsIlsjMV0gKFJzLCNyMTMpIikKK0RFRl9FTkMz MihKMl9qdW1wcnosICAgICBJQ0xBU1NfQ1IiIDAwMDEgIDAwaXNzc3NzICBQUGkwaWlpaSAgaWlp aWlpaS0iKQorREVGX0VOQzMyKEoyX2p1bXByenB0LCAgIElDTEFTU19DUiIgMDAwMSAgMDBpc3Nz c3MgIFBQaTFpaWlpICBpaWlpaWlpLSIpCitERUZfRU5DMzIoSjJfanVtcHJueiwgICAgSUNMQVNT X0NSIiAwMDAxICAxMGlzc3NzcyAgUFBpMGlpaWkgIGlpaWlpaWktIikKK0RFRl9FTkMzMihKMl9q dW1wcm56cHQsICBJQ0xBU1NfQ1IiIDAwMDEgIDEwaXNzc3NzICBQUGkxaWlpaSAgaWlpaWlpaS0i KQorCitERUZfRU5DMzIoSjJfanVtcHJndGV6LCAgSUNMQVNTX0NSIiAwMDAxICAwMWlzc3NzcyAg UFBpMGlpaWkgIGlpaWlpaWktIikKK0RFRl9FTkMzMihKMl9qdW1wcmd0ZXpwdCxJQ0xBU1NfQ1Ii IDAwMDEgIDAxaXNzc3NzICBQUGkxaWlpaSAgaWlpaWlpaS0iKQorREVGX0VOQzMyKEoyX2p1bXBy bHRleiwgIElDTEFTU19DUiIgMDAwMSAgMTFpc3Nzc3MgIFBQaTBpaWlpICBpaWlpaWlpLSIpCitE RUZfRU5DMzIoSjJfanVtcHJsdGV6cHQsSUNMQVNTX0NSIiAwMDAxICAxMWlzc3NzcyAgUFBpMWlp aWkgIGlpaWlpaWktIikKKworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNTX0NSIiAwMDEw ICAtLS0tLS0tLSAgUFAtLS0tLS0gIC0tLS0tLS0tIiwiWyMyXSBDZD1ScyAiKQorREVGX0VOQzMy KEEyX3RmcnJjciwgICAgSUNMQVNTX0NSIiAwMDEwICAwMDFzc3NzcyAgUFAtLS0tLS0gIC0tLWRk ZGRkIikKKworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNTX0NSIiAwMDExICAtLS0tLS0t LSAgUFAtLS0tLS0gIC0tLS0tLS0tIiwiWyMzXSBDZGQ9UnNzICIpCitERUZfRU5DMzIoQTRfdGZy cGNwLCAgICBJQ0xBU1NfQ1IiIDAwMTEgIDAwMXNzc3NzICBQUC0tLS0tLSAgLS0tZGRkZGQiKQor CitERUZfRklFTERST1dfREVTQzMyKCAgICBJQ0xBU1NfQ1IiIDEwMDAgIC0tLS0tLS0tICBQUC0t LS0tLSAgLS0tLS0tLS0iLCJbIzhdIFJkZD1Dc3MgIikKK0RFRl9FTkMzMihBNF90ZnJjcHAsICAg IElDTEFTU19DUiIgMTAwMCAgMDAwc3Nzc3MgIFBQLS0tLS0tICAtLS1kZGRkZCIpCisKK0RFRl9G SUVMRFJPV19ERVNDMzIoICAgIElDTEFTU19DUiIgMTAwMSAgLS0tLS0tLS0gIFBQLS0tLS0tICAt LS0tLS0tLSIsIlsjOV0gKCNyOCwjVTEwKSIpCitERUZfRU5DMzIoSjJfcGxvb3Axc2ksICBJQ0xB U1NfQ1IiIDEwMDEgIDEwMUlJSUlJICBQUC1paWlpaSAgSUlJaWktSUkiKQorREVGX0VOQzMyKEoy X3Bsb29wMnNpLCAgSUNMQVNTX0NSIiAxMDAxICAxMTBJSUlJSSAgUFAtaWlpaWkgIElJSWlpLUlJ IikKK0RFRl9FTkMzMihKMl9wbG9vcDNzaSwgIElDTEFTU19DUiIgMTAwMSAgMTExSUlJSUkgIFBQ LWlpaWlpICBJSUlpaS1JSSIpCitERUZfRU5DMzIoSjJfbG9vcDBpLCAgICBJQ0xBU1NfQ1IiIDEw MDEgIDAwMElJSUlJICBQUC1paWlpaSAgSUlJaWktSUkiKQorREVGX0VOQzMyKEoyX2xvb3AxaSwg ICAgSUNMQVNTX0NSIiAxMDAxICAwMDFJSUlJSSAgUFAtaWlpaWkgIElJSWlpLUlJIikKKworREVG X0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNTX0NSIiAxMDEwICAtLS0tLS0tLSAgUFAtLS0tLS0g IC0tLS0tLS0tIiwiWyMxMF0gUmQ9Q3MgIikKK0RFRl9FTkMzMihBMl90ZnJjcnIsICAgIElDTEFT U19DUiIgMTAxMCAgMDAwc3Nzc3MgIFBQLS0tLS0tICAtLS1kZGRkZCIpCitERUZfRU5DMzIoQzRf YWRkaXBjLCAgICBJQ0xBU1NfQ1IiIDEwMTAgIDAxMDAxMDAxICBQUC1paWlpaSAgaS0tZGRkZGQi KQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoICAgIElDTEFTU19DUiIgMTAxMSAgLS0tLS0tLS0g IFBQMC0tLS0tICAtLS0tLS0tLSIsIlsjMTFdIFBkPShQcyxQdCxQdSkiKQorREVGX0VOQzMyKEMy X2FuZCwgICAgICAgSUNMQVNTX0NSIiAxMDExICAwMDAwLS1zcyAgUFAwLS0tdHQgIC0tLS0tLWRk IikKK0RFRl9FTkMzMihDMl9vciwgICAgICAgIElDTEFTU19DUiIgMTAxMSAgMDAxMC0tc3MgIFBQ MC0tLXR0ICAtLS0tLS1kZCIpCitERUZfRU5DMzIoQzJfeG9yLCAgICAgICBJQ0xBU1NfQ1IiIDEw MTEgIDAxMDAtLXNzICBQUDAtLS10dCAgLS0tLS0tZGQiKQorREVGX0VOQzMyKEMyX2FuZG4sICAg ICAgSUNMQVNTX0NSIiAxMDExICAwMTEwLS1zcyAgUFAwLS0tdHQgIC0tLS0tLWRkIikKK0RFRl9F TkMzMihDMl9hbnk4LCAgICAgIElDTEFTU19DUiIgMTAxMSAgMTAwMC0tc3MgIFBQMC0tLS0tICAt LS0tLS1kZCIpCitERUZfRU5DMzIoQzJfYWxsOCwgICAgICBJQ0xBU1NfQ1IiIDEwMTEgIDEwMTAt LXNzICBQUDAtLS0tLSAgLS0tLS0tZGQiKQorREVGX0VOQzMyKEMyX25vdCwgICAgICAgSUNMQVNT X0NSIiAxMDExICAxMTAwLS1zcyAgUFAwLS0tLS0gIC0tLS0tLWRkIikKK0RFRl9FTkMzMihDMl9v cm4sICAgICAgIElDTEFTU19DUiIgMTAxMSAgMTExMC0tc3MgIFBQMC0tLXR0ICAtLS0tLS1kZCIp CisKK0RFRl9FTkMzMihDNF9hbmRfYW5kLCAgIElDTEFTU19DUiIgMTAxMSAgMDAwMS0tc3MgIFBQ MC0tLXR0ICB1dS0tLS1kZCIpCitERUZfRU5DMzIoQzRfYW5kX29yLCAgICBJQ0xBU1NfQ1IiIDEw MTEgIDAwMTEtLXNzICBQUDAtLS10dCAgdXUtLS0tZGQiKQorREVGX0VOQzMyKEM0X29yX2FuZCwg ICAgSUNMQVNTX0NSIiAxMDExICAwMTAxLS1zcyAgUFAwLS0tdHQgIHV1LS0tLWRkIikKK0RFRl9F TkMzMihDNF9vcl9vciwgICAgIElDTEFTU19DUiIgMTAxMSAgMDExMS0tc3MgIFBQMC0tLXR0ICB1 dS0tLS1kZCIpCitERUZfRU5DMzIoQzRfYW5kX2FuZG4sICBJQ0xBU1NfQ1IiIDEwMTEgIDEwMDEt LXNzICBQUDAtLS10dCAgdXUtLS0tZGQiKQorREVGX0VOQzMyKEM0X2FuZF9vcm4sICAgSUNMQVNT X0NSIiAxMDExICAxMDExLS1zcyAgUFAwLS0tdHQgIHV1LS0tLWRkIikKK0RFRl9FTkMzMihDNF9v cl9hbmRuLCAgIElDTEFTU19DUiIgMTAxMSAgMTEwMS0tc3MgIFBQMC0tLXR0ICB1dS0tLS1kZCIp CitERUZfRU5DMzIoQzRfb3Jfb3JuLCAgICBJQ0xBU1NfQ1IiIDEwMTEgIDExMTEtLXNzICBQUDAt LS10dCAgdXUtLS0tZGQiKQorCitERUZfRU5DMzIoQzRfZmFzdGNvcm5lcjksCUlDTEFTU19DUiIx MDExIDAwMDAtLXNzICBQUDEtLS10dCAxLS0xLS1kZCIpCitERUZfRU5DMzIoQzRfZmFzdGNvcm5l cjlfbm90LAlJQ0xBU1NfQ1IiMTAxMSAwMDAxLS1zcyAgUFAxLS0tdHQgMS0tMS0tZGQiKQorCisK KworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAg ICAgICAgIE0gICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisKKworREVGX0NMQVNTMzIoSUNMQVNTX00iIC0tLS0gLS0tLS0t LS0gUFAtLS0tLS0gLS0tLS0tLS0iLE0pCitERUZfRklFTEQzMihJQ0xBU1NfTSIgISEhISAtLS0t LS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsTV9SZWdUeXBlLCJSZWdpc3RlciBUeXBlIikKK0RFRl9G SUVMRDMyKElDTEFTU19NIiAtLS0tICEhIS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixNX01hak9w LCJNYWpvciBPcGNvZGUiKQorREVGX0ZJRUxEMzIoSUNMQVNTX00iIC0tLS0gLS0tLS0tLS0gUFAt LS0tLS0gISEhLS0tLS0iLE1fTWluT3AsIk1pbm9yIE9wY29kZSIpCisKKworCisjZGVmaW5lIFNQ X01QWShUQUcsUkVHVFlQRSxEU1RDSEFSUyxTQVQsUk5ELFVOUylcCitERUZfRU5DMzIoVEFHIyNf bGxfczAsIElDTEFTU19NICBSRUdUWVBFICIwIiAgVU5TIFJORCJzc3NzcyAgUFAtdHR0dHQgIlNB VCIwMCIgICBEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHIyNfbGhfczAsIElDTEFTU19NICBSRUdU WVBFICIwIiAgVU5TIFJORCJzc3NzcyAgUFAtdHR0dHQgIlNBVCIwMSIgICBEU1RDSEFSUylcCitE RUZfRU5DMzIoVEFHIyNfaGxfczAsIElDTEFTU19NICBSRUdUWVBFICIwIiAgVU5TIFJORCJzc3Nz cyAgUFAtdHR0dHQgIlNBVCIxMCIgICBEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHIyNfaGhfczAs IElDTEFTU19NICBSRUdUWVBFICIwIiAgVU5TIFJORCJzc3NzcyAgUFAtdHR0dHQgIlNBVCIxMSIg ICBEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHIyNfbGxfczEsIElDTEFTU19NICBSRUdUWVBFICIx IiAgVU5TIFJORCJzc3NzcyAgUFAtdHR0dHQgIlNBVCIwMCIgICBEU1RDSEFSUylcCitERUZfRU5D MzIoVEFHIyNfbGhfczEsIElDTEFTU19NICBSRUdUWVBFICIxIiAgVU5TIFJORCJzc3NzcyAgUFAt dHR0dHQgIlNBVCIwMSIgICBEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHIyNfaGxfczEsIElDTEFT U19NICBSRUdUWVBFICIxIiAgVU5TIFJORCJzc3NzcyAgUFAtdHR0dHQgIlNBVCIxMCIgICBEU1RD SEFSUylcCitERUZfRU5DMzIoVEFHIyNfaGhfczEsIElDTEFTU19NICBSRUdUWVBFICIxIiAgVU5T IFJORCJzc3NzcyAgUFAtdHR0dHQgIlNBVCIxMSIgICBEU1RDSEFSUykKKworLyogRG91YmxlIHBy ZWNpc2lvbiAgICAgICAgICAgICAgICAgICAqLworI2RlZmluZSBNUFlfRU5DKFRBRyxSRUdUWVBF LERTVENIQVJTLFNBVCxSTkROQUMsVU5TLFNIRlQsVk1JTjIpXAorREVGX0VOQzMyKFRBRywgSUNM QVNTX00gUkVHVFlQRSBTSEZUIFVOUyBSTkROQUMic3Nzc3MgIFBQMHR0dHR0ICJTQVQgVk1JTjIg RFNUQ0hBUlMpCisKKyNkZWZpbmUgTVBZSV9FTkMoVEFHLFJFR1RZUEUsRFNUQ0hBUlMsUk5ETkFD LFVOUyxTSEZUKVwKK0RFRl9FTkMzMihUQUcsIElDTEFTU19NIFJFR1RZUEUgU0hGVCBVTlMgUk5E TkFDInNzc3NzICBQUDBpaWlpaSBpaWkiIERTVENIQVJTKQorCisKK0RFRl9GSUVMRFJPV19ERVND MzIoSUNMQVNTX00iIDAwMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzBdIFJkPShS cywjdTgpIikKK01QWUlfRU5DKE0yX21weXNpcCwgICAgICAgICAgIjAwMDAiLCJkZGRkZCIsIi0i LCItIiwiMCIgICAgICkKK01QWUlfRU5DKE0yX21weXNpbiwgICAgICAgICAgIjAwMDAiLCJkZGRk ZCIsIi0iLCItIiwiMSIgICAgICkKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19NIiAw MDAxIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxXSBSeD0oUnMsI3U4KSIpCitNUFlJ X0VOQyhNMl9tYWNzaXAsICAgICAgICAgICIwMDAxIiwieHh4eHgiLCItIiwiLSIsIjAiICAgICAp CitNUFlJX0VOQyhNMl9tYWNzaW4sICAgICAgICAgICIwMDAxIiwieHh4eHgiLCItIiwiLSIsIjEi ICAgICApCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfTSIgMDAxMCAtLS0tLS0tLSBQ UC0tLS0tLSAtLS0tLS0tLSIsIlsjMl0gUng9KFJzLCNzOCkiKQorTVBZSV9FTkMoTTJfYWNjaWks ICAgICAgICAgICAiMDAxMCIsInh4eHh4IiwiLSIsIi0iLCIwIiAgICAgKQorTVBZSV9FTkMoTTJf bmFjY2lpLCAgICAgICAgICAiMDAxMCIsInh4eHh4IiwiLSIsIi0iLCIxIiAgICAgKQorCisKK0RF Rl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX00iIDAwMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0t LS0iLCJbIzNdIFJ5PShSdSwoUnMsUnkpKSAiKQorREVGX0VOQzMyKE00X21weXJyX2FkZHIsSUNM QVNTX00iIDAwMTEgMDAwc3Nzc3MgUFAteXl5eXkgLS0tdXV1dXUiKQorCisKK0RFRl9GSUVMRFJP V19ERVNDMzIoSUNMQVNTX00iIDAxMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzRd IFJkZD0oUnMsUnQpIikKK0RFRl9GSUVMRDMyKElDTEFTU19NIiAgICAgICAgIDAxMDAgLS0tLS0t LS0gUFAtLS0tLS0gLS0hLS0tLS0iLE1hX3RILCJSdCBpcyBIaWdoIikgLypSdCBoaWdoICovCitE RUZfRklFTEQzMihJQ0xBU1NfTSIgICAgICAgICAwMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0hLS0t LS0tIixNYV9zSCwiUnMgaXMgSGlnaCIpIC8qIFJzIGhpZ2ggKi8KK1NQX01QWShNMl9tcHlkLCAg ICAgICAgICAgICAgIjAxMDAiLCJkZGRkZCIsIi0iLCIwIiwiMCIpCitTUF9NUFkoTTJfbXB5ZF9y bmQsICAgICAgICAgICIwMTAwIiwiZGRkZGQiLCItIiwiMSIsIjAiKQorU1BfTVBZKE0yX21weXVk LCAgICAgICAgICAgICAiMDEwMCIsImRkZGRkIiwiLSIsIjAiLCIxIikKKworCitERUZfRklFTERS T1dfREVTQzMyKElDTEFTU19NIiAwMTAxIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM1 XSBSZGQ9KFJzLFJ0KSIpCitNUFlfRU5DKE0yX2RwbXB5c3NfczAsICAgICAgICIwMTAxIiwiZGRk ZGQiLCIwIiwiMCIsIjAiLCIwIiwiMDAiKQorTVBZX0VOQyhNMl9kcG1weXV1X3MwLCAgICAgICAi MDEwMSIsImRkZGRkIiwiMCIsIjAiLCIxIiwiMCIsIjAwIikKK01QWV9FTkMoTTJfdm1weTJzX3Mw LCAgICAgICAgIjAxMDEiLCJkZGRkZCIsIjEiLCIwIiwiMCIsIjAiLCIwMSIpCitNUFlfRU5DKE0y X3ZtcHkyc19zMSwgICAgICAgICIwMTAxIiwiZGRkZGQiLCIxIiwiMCIsIjAiLCIxIiwiMDEiKQor TVBZX0VOQyhNMl9jbXB5aV9zMCwgICAgICAgICAiMDEwMSIsImRkZGRkIiwiMCIsIjAiLCIwIiwi MCIsIjAxIikKK01QWV9FTkMoTTJfY21weXJfczAsICAgICAgICAgIjAxMDEiLCJkZGRkZCIsIjAi LCIwIiwiMCIsIjAiLCIxMCIpCitNUFlfRU5DKE0yX2NtcHlzX3MwLCAgICAgICAgICIwMTAxIiwi ZGRkZGQiLCIxIiwiMCIsIjAiLCIwIiwiMTAiKQorTVBZX0VOQyhNMl9jbXB5c19zMSwgICAgICAg ICAiMDEwMSIsImRkZGRkIiwiMSIsIjAiLCIwIiwiMSIsIjEwIikKK01QWV9FTkMoTTJfY21weXNj X3MwLCAgICAgICAgIjAxMDEiLCJkZGRkZCIsIjEiLCIwIiwiMSIsIjAiLCIxMCIpCitNUFlfRU5D KE0yX2NtcHlzY19zMSwgICAgICAgICIwMTAxIiwiZGRkZGQiLCIxIiwiMCIsIjEiLCIxIiwiMTAi KQorTVBZX0VOQyhNMl92bXB5MnN1X3MwLCAgICAgICAiMDEwMSIsImRkZGRkIiwiMSIsIjAiLCIw IiwiMCIsIjExIikKK01QWV9FTkMoTTJfdm1weTJzdV9zMSwgICAgICAgIjAxMDEiLCJkZGRkZCIs IjEiLCIwIiwiMCIsIjEiLCIxMSIpCitNUFlfRU5DKE00X3BtcHl3LCAgICAgICAgICAgICIwMTAx IiwiZGRkZGQiLCIxIiwiMCIsIjEiLCIwIiwiMTEiKQorTVBZX0VOQyhNNF92cG1weWgsICAgICAg ICAgICAiMDEwMSIsImRkZGRkIiwiMSIsIjAiLCIxIiwiMSIsIjExIikKK01QWV9FTkMoTTVfdm1w eWJ1dSwgICAgICAgICAgIjAxMDEiLCJkZGRkZCIsIjAiLCIwIiwiMCIsIjEiLCIwMSIpCitNUFlf RU5DKE01X3ZtcHlic3UsICAgICAgICAgICIwMTAxIiwiZGRkZGQiLCIwIiwiMCIsIjEiLCIwIiwi MDEiKQorCisKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19NIiAwMTEwIC0tLS0tLS0t IFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM2XSBSeHg9KFJzLFJ0KSIpCitERUZfRklFTEQzMihJQ0xB U1NfTSIgICAgICAgICAwMTEwIC0tLS0tLS0tIFBQLS0tLS0tIC0tIS0tLS0tIixNYl90SCwiUnQg aXMgSGlnaCIpIC8qUnQgaGlnaCAqLworREVGX0ZJRUxEMzIoSUNMQVNTX00iICAgICAgICAgMDEx MCAtLS0tLS0tLSBQUC0tLS0tLSAtIS0tLS0tLSIsTWJfc0gsIlJzIGlzIEhpZ2giKSAvKiBScyBo aWdoICovCitTUF9NUFkoTTJfbXB5ZF9hY2MsICAgICAgICAgICIwMTEwIiwieHh4eHgiLCIwIiwi MCIsIjAiKQorU1BfTVBZKE0yX21weXVkX2FjYywgICAgICAgICAiMDExMCIsInh4eHh4IiwiMCIs IjAiLCIxIikKK1NQX01QWShNMl9tcHlkX25hYywgICAgICAgICAgIjAxMTAiLCJ4eHh4eCIsIjAi LCIxIiwiMCIpCitTUF9NUFkoTTJfbXB5dWRfbmFjLCAgICAgICAgICIwMTEwIiwieHh4eHgiLCIw IiwiMSIsIjEiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX00iIDAxMTEgLS0tLS0t LS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzddIFJ4eD0oUnMsUnQpIikKK01QWV9FTkMoTTJfZHBt cHlzc19hY2NfczAsICAgIjAxMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMCIsIjAiLCIwMCIpCitNUFlf RU5DKE0yX2RwbXB5c3NfbmFjX3MwLCAgICIwMTExIiwieHh4eHgiLCIwIiwiMSIsIjAiLCIwIiwi MDAiKQorTVBZX0VOQyhNMl9kcG1weXV1X2FjY19zMCwgICAiMDExMSIsInh4eHh4IiwiMCIsIjAi LCIxIiwiMCIsIjAwIikKK01QWV9FTkMoTTJfZHBtcHl1dV9uYWNfczAsICAgIjAxMTEiLCJ4eHh4 eCIsIjAiLCIxIiwiMSIsIjAiLCIwMCIpCitNUFlfRU5DKE0yX3ZtYWMyc19zMCwgICAgICAgICIw MTExIiwieHh4eHgiLCIxIiwiMCIsIjAiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl92bWFjMnNfczEs ICAgICAgICAiMDExMSIsInh4eHh4IiwiMSIsIjAiLCIwIiwiMSIsIjAxIikKK01QWV9FTkMoTTJf Y21hY2lfczAsICAgICAgICAgIjAxMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMCIsIjAiLCIwMSIpCitN UFlfRU5DKE0yX2NtYWNyX3MwLCAgICAgICAgICIwMTExIiwieHh4eHgiLCIwIiwiMCIsIjAiLCIw IiwiMTAiKQorTVBZX0VOQyhNMl9jbWFjc19zMCwgICAgICAgICAiMDExMSIsInh4eHh4IiwiMSIs IjAiLCIwIiwiMCIsIjEwIikKK01QWV9FTkMoTTJfY21hY3NfczEsICAgICAgICAgIjAxMTEiLCJ4 eHh4eCIsIjEiLCIwIiwiMCIsIjEiLCIxMCIpCitNUFlfRU5DKE0yX2NtYWNzY19zMCwgICAgICAg ICIwMTExIiwieHh4eHgiLCIxIiwiMCIsIjEiLCIwIiwiMTAiKQorTVBZX0VOQyhNMl9jbWFjc2Nf czEsICAgICAgICAiMDExMSIsInh4eHh4IiwiMSIsIjAiLCIxIiwiMSIsIjEwIikKK01QWV9FTkMo TTJfdm1hYzIsICAgICAgICAgICAgIjAxMTEiLCJ4eHh4eCIsIjAiLCIxIiwiMCIsIjAiLCIwMSIp CitNUFlfRU5DKE0yX2NuYWNzX3MwLCAgICAgICAgICIwMTExIiwieHh4eHgiLCIxIiwiMCIsIjAi LCIwIiwiMTEiKQorTVBZX0VOQyhNMl9jbmFjc19zMSwgICAgICAgICAiMDExMSIsInh4eHh4Iiwi MSIsIjAiLCIwIiwiMSIsIjExIikKK01QWV9FTkMoTTJfY25hY3NjX3MwLCAgICAgICAgIjAxMTEi LCJ4eHh4eCIsIjEiLCIwIiwiMSIsIjAiLCIxMSIpCitNUFlfRU5DKE0yX2NuYWNzY19zMSwgICAg ICAgICIwMTExIiwieHh4eHgiLCIxIiwiMCIsIjEiLCIxIiwiMTEiKQorTVBZX0VOQyhNMl92bWFj MnN1X3MwLCAgICAgICAiMDExMSIsInh4eHh4IiwiMSIsIjEiLCIxIiwiMCIsIjAxIikKK01QWV9F TkMoTTJfdm1hYzJzdV9zMSwgICAgICAgIjAxMTEiLCJ4eHh4eCIsIjEiLCIxIiwiMSIsIjEiLCIw MSIpCitNUFlfRU5DKE00X3BtcHl3X2FjYywgICAgICAgICIwMTExIiwieHh4eHgiLCIxIiwiMSIs IjAiLCIwIiwiMTEiKQorTVBZX0VOQyhNNF92cG1weWhfYWNjLCAgICAgICAiMDExMSIsInh4eHh4 IiwiMSIsIjEiLCIwIiwiMSIsIjExIikKK01QWV9FTkMoTTVfdm1hY2J1dSwgICAgICAgICAgIjAx MTEiLCJ4eHh4eCIsIjAiLCIwIiwiMCIsIjEiLCIwMSIpCitNUFlfRU5DKE01X3ZtYWNic3UsICAg ICAgICAgICIwMTExIiwieHh4eHgiLCIwIiwiMCIsIjEiLCIxIiwiMDEiKQorCisKKworCisKK0RF Rl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX00iIDEwMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0t LS0iLCJbIzhdIFJkZD0oUnNzLFJ0dCkiKQorTVBZX0VOQyhNMl92cmNtcHlpX3MwLCAgICAgICAi MTAwMCIsImRkZGRkIiwiMCIsIjAiLCIwIiwiMCIsIjAwIikKK01QWV9FTkMoTTJfdmRtcHlzX3Mw LCAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIwIiwiMCIsIjAiLCIwMCIpCitNUFlfRU5DKE0y X3ZkbXB5c19zMSwgICAgICAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMCIsIjAiLCIxIiwiMDAiKQor TVBZX0VOQyhNMl92cmNtcHlpX3MwYywgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjAiLCIxIiwi MCIsIjAwIikKK01QWV9FTkMoTTJfdmFic2RpZmZ3LCAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAi LCIxIiwiMCIsIjAiLCIwMCIpCitNUFlfRU5DKE02X3ZhYnNkaWZmdWIsICAgICAgICIxMDAwIiwi ZGRkZGQiLCIwIiwiMSIsIjAiLCIxIiwiMDAiKQorTVBZX0VOQyhNMl92YWJzZGlmZmgsICAgICAg ICAiMTAwMCIsImRkZGRkIiwiMCIsIjEiLCIxIiwiMCIsIjAwIikKK01QWV9FTkMoTTZfdmFic2Rp ZmZiLCAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIxIiwiMSIsIjEiLCIwMCIpCitNUFlfRU5D KE0yX3ZyY21weXNfczFfaCwgICAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMSIsIjAiLCIxIiwiMDAi KQorTVBZX0VOQyhNMl92cmNtcHlzX3MxX2wsICAgICAiMTAwMCIsImRkZGRkIiwiMSIsIjEiLCIx IiwiMSIsIjAwIikKK01QWV9FTkMoTTJfdnJjbXB5cl9zMGMsICAgICAgIjEwMDAiLCJkZGRkZCIs IjAiLCIxIiwiMSIsIjAiLCIwMSIpCitNUFlfRU5DKE0yX3ZyY21weXJfczAsICAgICAgICIxMDAw IiwiZGRkZGQiLCIwIiwiMCIsIjAiLCIwIiwiMDEiKQorTVBZX0VOQyhBMl92cmFkZHViLCAgICAg ICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjAiLCIxIiwiMCIsIjAxIikKK01QWV9FTkMoTTJfbW1w eWxfczAsICAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIwIiwiMCIsIjAiLCIwMSIpCitNUFlf RU5DKE0yX21tcHlsX3MxLCAgICAgICAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMCIsIjAiLCIxIiwi MDEiKQorTVBZX0VOQyhNMl9tbXB5bF9yczAsICAgICAgICAiMTAwMCIsImRkZGRkIiwiMSIsIjEi LCIwIiwiMCIsIjAxIikKK01QWV9FTkMoTTJfbW1weWxfcnMxLCAgICAgICAgIjEwMDAiLCJkZGRk ZCIsIjEiLCIxIiwiMCIsIjEiLCIwMSIpCitNUFlfRU5DKE0yX21tcHl1bF9zMCwgICAgICAgICIx MDAwIiwiZGRkZGQiLCIxIiwiMCIsIjEiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl9tbXB5dWxfczEs ICAgICAgICAiMTAwMCIsImRkZGRkIiwiMSIsIjAiLCIxIiwiMSIsIjAxIikKK01QWV9FTkMoTTJf bW1weXVsX3JzMCwgICAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIxIiwiMSIsIjAiLCIwMSIpCitN UFlfRU5DKE0yX21tcHl1bF9yczEsICAgICAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMSIsIjEiLCIx IiwiMDEiKQorTVBZX0VOQyhNMl92cm1weV9zMCwgICAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIs IjAiLCIwIiwiMCIsIjEwIikKK01QWV9FTkMoQTJfdnJzYWR1YiwgICAgICAgICAgIjEwMDAiLCJk ZGRkZCIsIjAiLCIwIiwiMSIsIjAiLCIxMCIpCitNUFlfRU5DKE0yX3ZtcHkyZXNfczAsICAgICAg ICIxMDAwIiwiZGRkZGQiLCIxIiwiMCIsIjAiLCIwIiwiMTAiKQorTVBZX0VOQyhNMl92bXB5MmVz X3MxLCAgICAgICAiMTAwMCIsImRkZGRkIiwiMSIsIjAiLCIwIiwiMSIsIjEwIikKK01QWV9FTkMo TTJfdmNtcHlfczBfc2F0X2ksICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIwIiwiMSIsIjAiLCIxMCIp CitNUFlfRU5DKE0yX3ZjbXB5X3MwX3NhdF9yLCAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMSIsIjAi LCIwIiwiMTAiKQorTVBZX0VOQyhNMl92Y21weV9zMV9zYXRfaSwgICAiMTAwMCIsImRkZGRkIiwi MSIsIjAiLCIxIiwiMSIsIjEwIikKK01QWV9FTkMoTTJfdmNtcHlfczFfc2F0X3IsICAgIjEwMDAi LCJkZGRkZCIsIjEiLCIxIiwiMCIsIjEiLCIxMCIpCisKK01QWV9FTkMoTTJfbW1weWhfczAsICAg ICAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIwIiwiMCIsIjAiLCIxMSIpCitNUFlfRU5DKE0yX21t cHloX3MxLCAgICAgICAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMCIsIjAiLCIxIiwiMTEiKQorTVBZ X0VOQyhNMl9tbXB5aF9yczAsICAgICAgICAiMTAwMCIsImRkZGRkIiwiMSIsIjEiLCIwIiwiMCIs IjExIikKK01QWV9FTkMoTTJfbW1weWhfcnMxLCAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIx IiwiMCIsIjEiLCIxMSIpCitNUFlfRU5DKE0yX21tcHl1aF9zMCwgICAgICAgICIxMDAwIiwiZGRk ZGQiLCIxIiwiMCIsIjEiLCIwIiwiMTEiKQorTVBZX0VOQyhNMl9tbXB5dWhfczEsICAgICAgICAi MTAwMCIsImRkZGRkIiwiMSIsIjAiLCIxIiwiMSIsIjExIikKK01QWV9FTkMoTTJfbW1weXVoX3Jz MCwgICAgICAgIjEwMDAiLCJkZGRkZCIsIjEiLCIxIiwiMSIsIjAiLCIxMSIpCitNUFlfRU5DKE0y X21tcHl1aF9yczEsICAgICAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMSIsIjEiLCIxIiwiMTEiKQor CitNUFlfRU5DKE00X3ZybXB5ZWhfczAsICAgICAgICIxMDAwIiwiZGRkZGQiLCIxIiwiMCIsIjEi LCIwIiwiMDAiKQorTVBZX0VOQyhNNF92cm1weWVoX3MxLCAgICAgICAiMTAwMCIsImRkZGRkIiwi MSIsIjAiLCIxIiwiMSIsIjAwIikKK01QWV9FTkMoTTRfdnJtcHlvaF9zMCwgICAgICAgIjEwMDAi LCJkZGRkZCIsIjAiLCIxIiwiMCIsIjAiLCIxMCIpCitNUFlfRU5DKE00X3ZybXB5b2hfczEsICAg ICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMSIsIjAiLCIxIiwiMTAiKQorTVBZX0VOQyhNNV92cm1w eWJ1dSwgICAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjAiLCIwIiwiMSIsIjAxIikKK01QWV9F TkMoTTVfdnJtcHlic3UsICAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIwIiwiMSIsIjEiLCIw MSIpCitNUFlfRU5DKE01X3ZkbXB5YnN1LCAgICAgICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMSIs IjAiLCIxIiwiMDEiKQorCitNUFlfRU5DKEYyX2RmYWRkLCAgICAgICAgICAgICIxMDAwIiwiZGRk ZGQiLCIwIiwiMCIsIjAiLCIwIiwiMTEiKQorTVBZX0VOQyhGMl9kZnN1YiwgICAgICAgICAgICAi MTAwMCIsImRkZGRkIiwiMCIsIjAiLCIwIiwiMSIsIjExIikKK01QWV9FTkMoRjJfZGZtcHlmaXgs ICAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIwIiwiMSIsIjAiLCIxMSIpCitNUFlfRU5DKEYy X2RmbWluLCAgICAgICAgICAgICIxMDAwIiwiZGRkZGQiLCIwIiwiMCIsIjEiLCIxIiwiMTEiKQor TVBZX0VOQyhGMl9kZm1heCwgICAgICAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjEiLCIwIiwi MCIsIjExIikKK01QWV9FTkMoRjJfZGZtcHlsbCwgICAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAi LCIxIiwiMCIsIjEiLCIxMSIpCisjaWZkZWYgQUREX0RQX09QUworTVBZX0VOQyhGMl9kZmRpdmNo ZWF0LCAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjAiLCIwIiwiMSIsIjAwIikKKworTVBZX0VO QyhGMl9kZmZpeHVwbiwgICAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjEiLCIwIiwiMSIsIjEx IikKK01QWV9FTkMoRjJfZGZmaXh1cGQsICAgICAgICAgIjEwMDAiLCJkZGRkZCIsIjAiLCIxIiwi MSIsIjAiLCIxMSIpCitNUFlfRU5DKEYyX2RmcmVjaXBhLCAgICAgICAgICIxMDAwIiwiZGRkZGQi LCIwIiwiMSIsIjEiLCIxIiwiZWUiKQorI2VuZGlmCisKK01QWV9FTkMoTTdfZGNtcHlydywgICAg ICAgCSIxMDAwIiwiZGRkZGQiLCIwIiwiMCIsIjAiLCIxIiwiMTAiKQorTVBZX0VOQyhNN19kY21w eXJ3YywgICAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjAiLCIxIiwiMSIsIjEwIikKK01QWV9F TkMoTTdfZGNtcHlpdywgICAgICAgCSIxMDAwIiwiZGRkZGQiLCIwIiwiMSIsIjEiLCIwIiwiMTAi KQorTVBZX0VOQyhNN19kY21weWl3YywgICAgICAgICAiMTAwMCIsImRkZGRkIiwiMCIsIjEiLCIx IiwiMSIsIjEwIikKKworCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX00iIDEwMDEgLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzldIFJkPShSc3MsUnR0KSIpCitNUFlfRU5DKE0y X3ZkbXB5cnNfczAsICAgICAgICIxMDAxIiwiZGRkZGQiLCIwIiwiMCIsIjAiLCIwIiwiMDAiKQor TVBZX0VOQyhNMl92ZG1weXJzX3MxLCAgICAgICAiMTAwMSIsImRkZGRkIiwiMCIsIjAiLCIwIiwi MSIsIjAwIikKKworTVBZX0VOQyhNN193Y21weXJ3LCAgICAgIAkgIjEwMDEiLCJkZGRkZCIsIjAi LCIwIiwiMSIsIjAiLCIwMCIpCitNUFlfRU5DKE03X3djbXB5cndfcm5kLCAgICAgICIxMDAxIiwi ZGRkZGQiLCIwIiwiMCIsIjEiLCIxIiwiMDAiKQorTVBZX0VOQyhNN193Y21weWl3LCAgICAgICAJ ICIxMDAxIiwiZGRkZGQiLCIwIiwiMSIsIjAiLCIwIiwiMDAiKQorTVBZX0VOQyhNN193Y21weWl3 X3JuZCwgICAgICAiMTAwMSIsImRkZGRkIiwiMCIsIjEiLCIwIiwiMSIsIjAwIikKKworTVBZX0VO QyhNN193Y21weXJ3YywgICAgICAJICIxMDAxIiwiZGRkZGQiLCIwIiwiMSIsIjEiLCIwIiwiMDAi KQorTVBZX0VOQyhNN193Y21weXJ3Y19ybmQsICAgICAiMTAwMSIsImRkZGRkIiwiMCIsIjEiLCIx IiwiMSIsIjAwIikKK01QWV9FTkMoTTdfd2NtcHlpd2MsICAgICAgIAkgIjEwMDEiLCJkZGRkZCIs IjEiLCIwIiwiMCIsIjAiLCIwMCIpCitNUFlfRU5DKE03X3djbXB5aXdjX3JuZCwgICAgICIxMDAx IiwiZGRkZGQiLCIxIiwiMCIsIjAiLCIxIiwiMDAiKQorCisKKworTVBZX0VOQyhNMl92cmFkZHVo LCAgICAgICAgICAiMTAwMSIsImRkZGRkIiwiLSIsIi0iLCItIiwiMCIsIjAxIikKK01QWV9FTkMo TTJfdnJjbXB5c19zMXJwX2gsICAgIjEwMDEiLCJkZGRkZCIsIjEiLCIxIiwiLSIsIjEiLCIxMCIp CitNUFlfRU5DKE0yX3ZyY21weXNfczFycF9sLCAgICIxMDAxIiwiZGRkZGQiLCIxIiwiMSIsIi0i LCIxIiwiMTEiKQorTVBZX0VOQyhNMl92cmFkZGgsICAgICAgICAgICAiMTAwMSIsImRkZGRkIiwi MSIsIjEiLCItIiwiMCIsIjExIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19NIiAx MDEwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxMF0gUnh4PShSc3MsUnR0KSIpCitN UFlfRU5DKE0yX3ZyY21hY2lfczAsICAgICAgICIxMDEwIiwieHh4eHgiLCIwIiwiMCIsIjAiLCIw IiwiMDAiKQorTVBZX0VOQyhNMl92ZG1hY3NfczAsICAgICAgICAiMTAxMCIsInh4eHh4IiwiMSIs IjAiLCIwIiwiMCIsIjAwIikKK01QWV9FTkMoTTJfdmRtYWNzX3MxLCAgICAgICAgIjEwMTAiLCJ4 eHh4eCIsIjEiLCIwIiwiMCIsIjEiLCIwMCIpCitNUFlfRU5DKE0yX3ZyY21hY2lfczBjLCAgICAg ICIxMDEwIiwieHh4eHgiLCIwIiwiMCIsIjEiLCIwIiwiMDAiKQorTVBZX0VOQyhNMl92Y21hY19z MF9zYXRfaSwgICAiMTAxMCIsInh4eHh4IiwiMSIsIjAiLCIxIiwiMCIsIjAwIikKK01QWV9FTkMo TTJfdmNtYWNfczBfc2F0X3IsICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIxIiwiMCIsIjAiLCIwMCIp CitNUFlfRU5DKE0yX3ZyY21weXNfYWNjX3MxX2gsICIxMDEwIiwieHh4eHgiLCIxIiwiMSIsIjAi LCIxIiwiMDAiKQorTVBZX0VOQyhNMl92cmNtcHlzX2FjY19zMV9sLCAiMTAxMCIsInh4eHh4Iiwi MSIsIjEiLCIxIiwiMSIsIjAwIikKK01QWV9FTkMoTTJfdnJjbWFjcl9zMCwgICAgICAgIjEwMTAi LCJ4eHh4eCIsIjAiLCIwIiwiMCIsIjAiLCIwMSIpCitNUFlfRU5DKEEyX3ZyYWRkdWJfYWNjLCAg ICAgICIxMDEwIiwieHh4eHgiLCIwIiwiMCIsIjEiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl9tbWFj bHNfczAsICAgICAgICAiMTAxMCIsInh4eHh4IiwiMSIsIjAiLCIwIiwiMCIsIjAxIikKK01QWV9F TkMoTTJfbW1hY2xzX3MxLCAgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIwIiwiMCIsIjEiLCIw MSIpCitNUFlfRU5DKE0yX21tYWNsc19yczAsICAgICAgICIxMDEwIiwieHh4eHgiLCIxIiwiMSIs IjAiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl9tbWFjbHNfcnMxLCAgICAgICAiMTAxMCIsInh4eHh4 IiwiMSIsIjEiLCIwIiwiMSIsIjAxIikKK01QWV9FTkMoTTJfbW1hY3Vsc19zMCwgICAgICAgIjEw MTAiLCJ4eHh4eCIsIjEiLCIwIiwiMSIsIjAiLCIwMSIpCitNUFlfRU5DKE0yX21tYWN1bHNfczEs ICAgICAgICIxMDEwIiwieHh4eHgiLCIxIiwiMCIsIjEiLCIxIiwiMDEiKQorTVBZX0VOQyhNMl9t bWFjdWxzX3JzMCwgICAgICAiMTAxMCIsInh4eHh4IiwiMSIsIjEiLCIxIiwiMCIsIjAxIikKK01Q WV9FTkMoTTJfbW1hY3Vsc19yczEsICAgICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIxIiwiMSIsIjEi LCIwMSIpCitNUFlfRU5DKE0yX3ZyY21hY3JfczBjLCAgICAgICIxMDEwIiwieHh4eHgiLCIwIiwi MSIsIjEiLCIwIiwiMDEiKQorTVBZX0VOQyhNMl92cm1hY19zMCwgICAgICAgICAiMTAxMCIsInh4 eHh4IiwiMCIsIjAiLCIwIiwiMCIsIjEwIikKK01QWV9FTkMoQTJfdnJzYWR1Yl9hY2MsICAgICAg IjEwMTAiLCJ4eHh4eCIsIjAiLCIwIiwiMSIsIjAiLCIxMCIpCitNUFlfRU5DKE0yX3ZtYWMyZXNf czAsICAgICAgICIxMDEwIiwieHh4eHgiLCIxIiwiMCIsIjAiLCIwIiwiMTAiKQorTVBZX0VOQyhN Ml92bWFjMmVzX3MxLCAgICAgICAiMTAxMCIsInh4eHh4IiwiMSIsIjAiLCIwIiwiMSIsIjEwIikK K01QWV9FTkMoTTJfdm1hYzJlcywgICAgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjAiLCIxIiwiMCIs IjAiLCIxMCIpCitNUFlfRU5DKE0yX21tYWNoc19zMCwgICAgICAgICIxMDEwIiwieHh4eHgiLCIx IiwiMCIsIjAiLCIwIiwiMTEiKQorTVBZX0VOQyhNMl9tbWFjaHNfczEsICAgICAgICAiMTAxMCIs Inh4eHh4IiwiMSIsIjAiLCIwIiwiMSIsIjExIikKK01QWV9FTkMoTTJfbW1hY2hzX3JzMCwgICAg ICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIxIiwiMCIsIjAiLCIxMSIpCitNUFlfRU5DKE0yX21tYWNo c19yczEsICAgICAgICIxMDEwIiwieHh4eHgiLCIxIiwiMSIsIjAiLCIxIiwiMTEiKQorTVBZX0VO QyhNMl9tbWFjdWhzX3MwLCAgICAgICAiMTAxMCIsInh4eHh4IiwiMSIsIjAiLCIxIiwiMCIsIjEx IikKK01QWV9FTkMoTTJfbW1hY3Voc19zMSwgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIwIiwi MSIsIjEiLCIxMSIpCitNUFlfRU5DKE0yX21tYWN1aHNfcnMwLCAgICAgICIxMDEwIiwieHh4eHgi LCIxIiwiMSIsIjEiLCIwIiwiMTEiKQorTVBZX0VOQyhNMl9tbWFjdWhzX3JzMSwgICAgICAiMTAx MCIsInh4eHh4IiwiMSIsIjEiLCIxIiwiMSIsIjExIikKK01QWV9FTkMoTTRfdnJtcHllaF9hY2Nf czAsICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIxIiwiMCIsIjAiLCIxMCIpCitNUFlfRU5DKE00X3Zy bXB5ZWhfYWNjX3MxLCAgICIxMDEwIiwieHh4eHgiLCIxIiwiMSIsIjAiLCIxIiwiMTAiKQorTVBZ X0VOQyhNNF92cm1weW9oX2FjY19zMCwgICAiMTAxMCIsInh4eHh4IiwiMSIsIjEiLCIxIiwiMCIs IjEwIikKK01QWV9FTkMoTTRfdnJtcHlvaF9hY2NfczEsICAgIjEwMTAiLCJ4eHh4eCIsIjEiLCIx IiwiMSIsIjEiLCIxMCIpCitNUFlfRU5DKE01X3ZybWFjYnV1LCAgICAgICAgICIxMDEwIiwieHh4 eHgiLCIwIiwiMCIsIjAiLCIxIiwiMDEiKQorTVBZX0VOQyhNNV92cm1hY2JzdSwgICAgICAgICAi MTAxMCIsInh4eHh4IiwiMCIsIjAiLCIxIiwiMSIsIjAxIikKK01QWV9FTkMoTTVfdmRtYWNic3Us ICAgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjAiLCIxIiwiMCIsIjAiLCIwMSIpCisKK01QWV9FTkMo RjJfZGZtcHlsaCwgICAgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjAiLCIwIiwiMCIsIjAiLCIxMSIp CitNUFlfRU5DKEYyX2RmbXB5aGgsICAgICAgICAgICIxMDEwIiwieHh4eHgiLCIwIiwiMCIsIjAi LCIxIiwiMTEiKQorI2lmZGVmIEFERF9EUF9PUFMKK01QWV9FTkMoRjJfZGZtcHloaCwgICAgICAg ICAgIjEwMTAiLCJ4eHh4eCIsIjAiLCIwIiwiMSIsIjAiLCIxMSIpCitNUFlfRU5DKEYyX2RmZm1h LCAgICAgICAgICAgICIxMDEwIiwieHh4eHgiLCIwIiwiMCIsIjAiLCIwIiwiMTEiKQorTVBZX0VO QyhGMl9kZmZtcywgICAgICAgICAgICAiMTAxMCIsInh4eHh4IiwiMCIsIjAiLCIwIiwiMSIsIjEx IikKKworTVBZX0VOQyhGMl9kZmZtYV9saWIsICAgICAgICAiMTAxMCIsInh4eHh4IiwiMCIsIjAi LCIxIiwiMCIsIjExIikKK01QWV9FTkMoRjJfZGZmbXNfbGliLCAgICAgICAgIjEwMTAiLCJ4eHh4 eCIsIjAiLCIwIiwiMSIsIjEiLCIxMSIpCitNUFlfRU5DKEYyX2RmZm1hX3NjLCAgICAgICAgICIx MDEwIiwieHh4eHgiLCIwIiwiMSIsIjEiLCIxIiwidXUiKQorI2VuZGlmCisKKworTVBZX0VOQyhN N19kY21weXJ3X2FjYywgICAgICAgCSIxMDEwIiwieHh4eHgiLCIwIiwiMCIsIjAiLCIxIiwiMTAi KQorTVBZX0VOQyhNN19kY21weXJ3Y19hY2MsICAgICAgICAgIjEwMTAiLCJ4eHh4eCIsIjAiLCIw IiwiMSIsIjEiLCIxMCIpCitNUFlfRU5DKE03X2RjbXB5aXdfYWNjLCAgICAgICAJIjEwMTAiLCJ4 eHh4eCIsIjAiLCIxIiwiMSIsIjAiLCIxMCIpCitNUFlfRU5DKE03X2RjbXB5aXdjX2FjYywgICAg ICAgICAiMTAxMCIsInh4eHh4IiwiMSIsIjAiLCIxIiwiMCIsIjEwIikKKworCisKKworLyoKKyov CisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX00iIDEwMTEgLS0tLS0tLS0gUFAtLS0tLS0g LS0tLS0tLS0iLCJbIzExXSBSZXNlcnZlZCIpCitNUFlfRU5DKEYyX3NmYWRkLCAgICAgICAgICAg ICIxMDExIiwiZGRkZGQiLCIwIiwiMCIsIjAiLCIwIiwiMDAiKQorTVBZX0VOQyhGMl9zZnN1Yiwg ICAgICAgICAgICAiMTAxMSIsImRkZGRkIiwiMCIsIjAiLCIwIiwiMCIsIjAxIikKK01QWV9FTkMo RjJfc2ZtYXgsICAgICAgICAgICAgIjEwMTEiLCJkZGRkZCIsIjAiLCIwIiwiMCIsIjEiLCIwMCIp CitNUFlfRU5DKEYyX3NmbWluLCAgICAgICAgICAgICIxMDExIiwiZGRkZGQiLCIwIiwiMCIsIjAi LCIxIiwiMDEiKQorTVBZX0VOQyhGMl9zZm1weSwgICAgICAgICAgICAiMTAxMSIsImRkZGRkIiwi MCIsIjAiLCIxIiwiMCIsIjAwIikKK01QWV9FTkMoRjJfc2ZmaXh1cG4sICAgICAgICAgIjEwMTEi LCJkZGRkZCIsIjAiLCIwIiwiMSIsIjEiLCIwMCIpCitNUFlfRU5DKEYyX3NmZml4dXBkLCAgICAg ICAgICIxMDExIiwiZGRkZGQiLCIwIiwiMCIsIjEiLCIxIiwiMDEiKQorCitERUZfRklFTERST1df REVTQzMyKElDTEFTU19NIiAxMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxMl0g UmQ9KFJzLFJ0KSIpCitERUZfRklFTEQzMihJQ0xBU1NfTSIgICAgICAgICAxMTAwIC0tLS0tLS0t IFBQLS0tLS0tIC0tIS0tLS0tIixNY190SCwiUnQgaXMgSGlnaCIpIC8qUnQgaGlnaCAqLworREVG X0ZJRUxEMzIoSUNMQVNTX00iICAgICAgICAgMTEwMCAtLS0tLS0tLSBQUC0tLS0tLSAtIS0tLS0t LSIsTWNfc0gsIlJzIGlzIEhpZ2giKSAvKiBScyBoaWdoICovCitTUF9NUFkoTTJfbXB5LCAgICAg ICAgICAgICAgICIxMTAwIiwiZGRkZGQiLCIwIiwiMCIsIjAiKQorU1BfTVBZKE0yX21weV9zYXQs ICAgICAgICAgICAiMTEwMCIsImRkZGRkIiwiMSIsIjAiLCIwIikKK1NQX01QWShNMl9tcHlfcm5k LCAgICAgICAgICAgIjExMDAiLCJkZGRkZCIsIjAiLCIxIiwiMCIpCitTUF9NUFkoTTJfbXB5X3Nh dF9ybmQsICAgICAgICIxMTAwIiwiZGRkZGQiLCIxIiwiMSIsIjAiKQorU1BfTVBZKE0yX21weXUs ICAgICAgICAgICAgICAiMTEwMCIsImRkZGRkIiwiMCIsIjAiLCIxIikKKworREVGX0ZJRUxEUk9X X0RFU0MzMihJQ0xBU1NfTSIgMTEwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMTNd IFJkPShScyxSdCkiKQorLyogRUpQOiBzYW1lIGFzIG1weWkgTVBZX0VOQyhNMl9tcHl1aSwgICAg ICAgICAgICAiMTEwMSIsImRkZGRkIiwiMCIsIjAiLCIxIiwiMCIsIjAwIikgKi8KK01QWV9FTkMo TTJfbXB5aSwgICAgICAgICAgICAgIjExMDEiLCJkZGRkZCIsIjAiLCIwIiwiMCIsIjAiLCIwMCIp CitNUFlfRU5DKE0yX21weV91cCwgICAgICAgICAgICIxMTAxIiwiZGRkZGQiLCIwIiwiMCIsIjAi LCIwIiwiMDEiKQorTVBZX0VOQyhNMl9tcHl1X3VwLCAgICAgICAgICAiMTEwMSIsImRkZGRkIiwi MCIsIjAiLCIxIiwiMCIsIjAxIikKK01QWV9FTkMoTTJfZHBtcHlzc19ybmRfczAsICAgIjExMDEi LCJkZGRkZCIsIjAiLCIxIiwiMCIsIjAiLCIwMSIpCitNUFlfRU5DKE0yX2NtcHlyc19zMCwgICAg ICAgICIxMTAxIiwiZGRkZGQiLCIxIiwiMSIsIjAiLCIwIiwiMTAiKQorTVBZX0VOQyhNMl9jbXB5 cnNfczEsICAgICAgICAiMTEwMSIsImRkZGRkIiwiMSIsIjEiLCIwIiwiMSIsIjEwIikKK01QWV9F TkMoTTJfY21weXJzY19zMCwgICAgICAgIjExMDEiLCJkZGRkZCIsIjEiLCIxIiwiMSIsIjAiLCIx MCIpCitNUFlfRU5DKE0yX2NtcHlyc2NfczEsICAgICAgICIxMTAxIiwiZGRkZGQiLCIxIiwiMSIs IjEiLCIxIiwiMTAiKQorTVBZX0VOQyhNMl92bXB5MnNfczBwYWNrLCAgICAiMTEwMSIsImRkZGRk IiwiMSIsIjEiLCIwIiwiMCIsIjExIikKK01QWV9FTkMoTTJfdm1weTJzX3MxcGFjaywgICAgIjEx MDEiLCJkZGRkZCIsIjEiLCIxIiwiMCIsIjEiLCIxMSIpCitNUFlfRU5DKE0yX2htbXB5aF9yczEs ICAgICAgICIxMTAxIiwiZGRkZGQiLCIxIiwiMSIsIjAiLCIxIiwiMDAiKQorTVBZX0VOQyhNMl9o bW1weWxfcnMxLCAgICAgICAiMTEwMSIsImRkZGRkIiwiMSIsIjEiLCIxIiwiMSIsIjAwIikKKwor TVBZX0VOQyhNMl9obW1weWhfczEsICAgICAgICAiMTEwMSIsImRkZGRkIiwiMCIsIjEiLCIwIiwi MSIsIjAwIikKK01QWV9FTkMoTTJfaG1tcHlsX3MxLCAgICAgICAgIjExMDEiLCJkZGRkZCIsIjAi LCIxIiwiMCIsIjEiLCIwMSIpCitNUFlfRU5DKE0yX21weV91cF9zMSwgICAgICAgICIxMTAxIiwi ZGRkZGQiLCIwIiwiMSIsIjAiLCIxIiwiMTAiKQorTVBZX0VOQyhNMl9tcHlfdXBfczFfc2F0LCAg ICAiMTEwMSIsImRkZGRkIiwiMCIsIjEiLCIxIiwiMSIsIjAwIikKK01QWV9FTkMoTTJfbXB5c3Vf dXAsICAgICAgICAgIjExMDEiLCJkZGRkZCIsIjAiLCIxIiwiMSIsIjAiLCIwMSIpCisKKworREVG X0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfTSIgMTExMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0t LSIsIlsjMTRdIFJ4PShScyxSdCkiKQorREVGX0ZJRUxEMzIoSUNMQVNTX00iICAgICAgICAgMTEx MCAtLS0tLS0tLSBQUC0tLS0tLSAtLSEtLS0tLSIsTWRfdEgsIlJ0IGlzIEhpZ2giKSAvKlJ0IGhp Z2ggKi8KK0RFRl9GSUVMRDMyKElDTEFTU19NIiAgICAgICAgIDExMTAgLS0tLS0tLS0gUFAtLS0t LS0gLSEtLS0tLS0iLE1kX3NILCJScyBpcyBIaWdoIikgLyogUnMgaGlnaCAqLworU1BfTVBZKE0y X21weXVfYWNjLCAgICAgICAgICAiMTExMCIsInh4eHh4IiwiMCIsIjAiLCIxIikKK1NQX01QWShN Ml9tcHlfYWNjLCAgICAgICAgICAgIjExMTAiLCJ4eHh4eCIsIjAiLCIwIiwiMCIpCitTUF9NUFko TTJfbXB5X2FjY19zYXQsICAgICAgICIxMTEwIiwieHh4eHgiLCIxIiwiMCIsIjAiKQorU1BfTVBZ KE0yX21weXVfbmFjLCAgICAgICAgICAiMTExMCIsInh4eHh4IiwiMCIsIjEiLCIxIikKK1NQX01Q WShNMl9tcHlfbmFjLCAgICAgICAgICAgIjExMTAiLCJ4eHh4eCIsIjAiLCIxIiwiMCIpCitTUF9N UFkoTTJfbXB5X25hY19zYXQsICAgICAgICIxMTEwIiwieHh4eHgiLCIxIiwiMSIsIjAiKQorCisK K0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX00iIDExMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0t LS0tLS0iLCJbIzE1XSBSeD0oUnMsUnQpIikKK01QWV9FTkMoTTJfbWFjaSwgICAgICAgICAgICAg IjExMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMCIsIjAiLCIwMCIpCitNUFlfRU5DKE0yX21uYWNpLCAg ICAgICAgICAgICIxMTExIiwieHh4eHgiLCIwIiwiMCIsIjAiLCIxIiwiMDAiKQorTVBZX0VOQyhN Ml9hY2NpLCAgICAgICAgICAgICAiMTExMSIsInh4eHh4IiwiMCIsIjAiLCIwIiwiMCIsIjAxIikK K01QWV9FTkMoTTJfbmFjY2ksICAgICAgICAgICAgIjExMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMCIs IjEiLCIwMSIpCitNUFlfRU5DKE0yX3hvcl94YWNjLCAgICAgICAgICIxMTExIiwieHh4eHgiLCIw IiwiMCIsIjAiLCIxIiwiMTEiKQorTVBZX0VOQyhNMl9zdWJhY2MsICAgICAgICAgICAiMTExMSIs Inh4eHh4IiwiMCIsIjAiLCIwIiwiMCIsIjExIikKKworTVBZX0VOQyhNNF9tYWNfdXBfczFfc2F0 LCAgICAiMTExMSIsInh4eHh4IiwiMCIsIjEiLCIxIiwiMCIsIjAwIikKK01QWV9FTkMoTTRfbmFj X3VwX3MxX3NhdCwgICAgIjExMTEiLCJ4eHh4eCIsIjAiLCIxIiwiMSIsIjAiLCIwMSIpCisKK01Q WV9FTkMoTTRfYW5kX2FuZCwgICAgICAgICAgIjExMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMSIsIjAi LCIwMCIpCitNUFlfRU5DKE00X2FuZF9vciwgICAgICAgICAgICIxMTExIiwieHh4eHgiLCIwIiwi MCIsIjEiLCIwIiwiMDEiKQorTVBZX0VOQyhNNF9hbmRfeG9yLCAgICAgICAgICAiMTExMSIsInh4 eHh4IiwiMCIsIjAiLCIxIiwiMCIsIjEwIikKK01QWV9FTkMoTTRfb3JfYW5kLCAgICAgICAgICAg IjExMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMSIsIjAiLCIxMSIpCitNUFlfRU5DKE00X29yX29yLCAg ICAgICAgICAgICIxMTExIiwieHh4eHgiLCIwIiwiMCIsIjEiLCIxIiwiMDAiKQorTVBZX0VOQyhN NF9vcl94b3IsICAgICAgICAgICAiMTExMSIsInh4eHh4IiwiMCIsIjAiLCIxIiwiMSIsIjAxIikK K01QWV9FTkMoTTRfeG9yX2FuZCwgICAgICAgICAgIjExMTEiLCJ4eHh4eCIsIjAiLCIwIiwiMSIs IjEiLCIxMCIpCitNUFlfRU5DKE00X3hvcl9vciwgICAgICAgICAgICIxMTExIiwieHh4eHgiLCIw IiwiMCIsIjEiLCIxIiwiMTEiKQorCitNUFlfRU5DKE00X29yX2FuZG4sICAgICAgICAgICIxMTEx IiwieHh4eHgiLCIwIiwiMSIsIjAiLCIwIiwiMDAiKQorTVBZX0VOQyhNNF9hbmRfYW5kbiwgICAg ICAgICAiMTExMSIsInh4eHh4IiwiMCIsIjEiLCIwIiwiMCIsIjAxIikKK01QWV9FTkMoTTRfeG9y X2FuZG4sICAgICAgICAgIjExMTEiLCJ4eHh4eCIsIjAiLCIxIiwiMCIsIjAiLCIxMCIpCisKK01Q WV9FTkMoRjJfc2ZmbWEsICAgICAgICAgICAgIjExMTEiLCJ4eHh4eCIsIjEiLCIwIiwiMCIsIjAi LCIwMCIpCitNUFlfRU5DKEYyX3NmZm1zLCAgICAgICAgICAgICIxMTExIiwieHh4eHgiLCIxIiwi MCIsIjAiLCIwIiwiMDEiKQorCitNUFlfRU5DKEYyX3NmZm1hX2xpYiwgICAgICAgICIxMTExIiwi eHh4eHgiLCIxIiwiMCIsIjAiLCIwIiwiMTAiKQorTVBZX0VOQyhGMl9zZmZtc19saWIsICAgICAg ICAiMTExMSIsInh4eHh4IiwiMSIsIjAiLCIwIiwiMCIsIjExIikKKworTVBZX0VOQyhGMl9zZmZt YV9zYywgICAgICAgICAiMTExMSIsInh4eHh4IiwiMSIsIjEiLCIxIiwiMCIsInV1IikKKworCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAg ICAgQUxVMzJfMm9wICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq LworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KK0RFRl9DTEFTUzMyKElDTEFTU19BRERJIiAtLS0tIC0tLS0tLS0tIFBQ LS0tLS0tIC0tLS0tLS0tIixBTFUzMl9BRERJKQorCitERUZfQ0xBU1MzMihJQ0xBU1NfQUxVMm9w IiAtLS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixBTFUzMl8yb3ApCitERUZfRklFTEQz MihJQ0xBU1NfQUxVMm9wIiAhLS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixBMl9Scywi Tm8gUnMgcmVhZCIpCitERUZfRklFTEQzMihJQ0xBU1NfQUxVMm9wIiAtISEhIC0tLS0tLS0tIFBQ LS0tLS0tIC0tLS0tLS0tIixBMl9NYWpPcCwiTWFqb3IgT3Bjb2RlIikKK0RFRl9GSUVMRDMyKElD TEFTU19BTFUyb3AiIC0tLS0gISEhLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLEEyX01pbk9wLCJN aW5vciBPcGNvZGUiKQorCitERUZfRklFTEQzMihJQ0xBU1NfQUxVM29wIiAtISEhIC0tLS0tLS0t IFBQLS0tLS0tIC0tLS0tLS0tIixBM19NYWpPcCwiTWFqb3IgT3Bjb2RlIikKK0RFRl9GSUVMRDMy KElDTEFTU19BTFUzb3AiIC0tLS0gISEhLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLEEzX01pbk9w LCJNaW5vciBPcGNvZGUiKQorREVGX0NMQVNTMzIoSUNMQVNTX0FMVTNvcCIgLS0tLSAtLS0tLS0t LSBQUC0tLS0tLSAtLS0tLS0tLSIsQUxVMzJfM29wKQorREVGX0ZJRUxEMzIoSUNMQVNTX0FMVTNv cCIgIS0tLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsQTNfUCwiUHJlZGljYXRlZCIpCitE RUZfRklFTEQzMihJQ0xBU1NfQUxVM29wIiAtLS0tIC0tLS0tLS0tIFBQIS0tLS0tIC0tLS0tLS0t IixBM19ETiwiRG90LW5ldyIpCitERUZfRklFTEQzMihJQ0xBU1NfQUxVM29wIiAtLS0tIC0tLS0t LS0tIFBQLS0tLS0tICEtLS0tLS0tIixBM19QUywiUHJlZGljYXRlIHNlbnNlIikKKworCisvKioq KioqKioqKioqKioqKioqKioqKioqKi8KKy8qIE91ciBnb29kIGZyaWVuZCBhZGRpICAqLworLyoq KioqKioqKioqKioqKioqKioqKioqKiovCitERUZfRU5DMzIoQTJfYWRkaSwgICAgSUNMQVNTX0FE REkiICBpaWlpIGlpaXNzc3NzIFBQaWlpaWlpIGlpaWRkZGRkIikKKworCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKy8qIFN0YW5kYXJkIEFMVTMyIGluc25zICAgICAgICAqLwor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKyNkZWZpbmUgQUxVMzJfSVJSX0VO QyhUQUcsTUFKNCxNSU4zLFNNT0QxLFZNSU4zLERTVENIQVJTKVwKK0RFRl9FTkMzMihUQUcsIElD TEFTU19BTFUyb3AiICJNQUo0IiAgIk1JTjMic3Nzc3MgIFBQIlNNT0QxImlpaWlpICJWTUlOMyBE U1RDSEFSUykKKworI2RlZmluZSBBTFUzMl9SUl9FTkMoVEFHLE1BSjQsTUlOMyxTTU9EMSxWTUlO MyxEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHLCBJQ0xBU1NfQUxVMm9wIiAiTUFKNCIgICJNSU4z InNzc3NzICBQUCJTTU9EMSItLS0tLSAiVk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgQ09OREEz Ml9SUl9FTkMoVEFHLE1BSjQsTUlOMyxTTU9EMSxWTUlOMyxEU1RDSEFSUylcCitERUZfRU5DMzIo VEFHIyN0LCAgIElDTEFTU19BTFUyb3AiICJNQUo0IiAgIk1JTjMic3Nzc3MgIFBQIlNNT0QxIi0w MHV1ICJWTUlOMyBEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHIyNmLCAgIElDTEFTU19BTFUyb3Ai ICJNQUo0IiAgIk1JTjMic3Nzc3MgIFBQIlNNT0QxIi0xMHV1ICJWTUlOMyBEU1RDSEFSUylcCitE RUZfRU5DMzIoVEFHIyN0bmV3LElDTEFTU19BTFUyb3AiICJNQUo0IiAgIk1JTjMic3Nzc3MgIFBQ IlNNT0QxIi0wMXV1ICJWTUlOMyBEU1RDSEFSUylcCitERUZfRU5DMzIoVEFHIyNmbmV3LElDTEFT U19BTFUyb3AiICJNQUo0IiAgIk1JTjMic3Nzc3MgIFBQIlNNT0QxIi0xMXV1ICJWTUlOMyBEU1RD SEFSUykKKworCitERUZfRklFTERST1dfREVTQzMyKCAgICBJQ0xBU1NfQUxVMm9wIiAwMDAwIC0t LS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMwXSAoUHUpIFJkPShScykiKQorREVGX0ZJRUxE MzIoICAgICAgICAgICAgSUNMQVNTX0FMVTJvcCIgMDAwMCAtLS0tLS0tLSBQUCEtLS0tLSAtLS0t LS0tLSIsQTMyYV9DLCJDb25kaXRpb25hbCIpCitERUZfRklFTEQzMiggICAgICAgICAgICBJQ0xB U1NfQUxVMm9wIiAwMDAwIC0tLS0tLS0tIFBQLS0hLS0tIC0tLS0tLS0tIixBMzJhX1MsIlByZWRp Y2F0ZSBzZW5zZSIpCitERUZfRklFTEQzMiggICAgICAgICAgICBJQ0xBU1NfQUxVMm9wIiAwMDAw IC0tLS0tLS0tIFBQLS0tIS0tIC0tLS0tLS0tIixBMzJhX2RuLCJEb3QtbmV3IikKKworQUxVMzJf UlJfRU5DKEEyX2FzbGgsICAgICAgICAgICAgICAgICAiMDAwMCIsIjAwMCIsIjAiLCItLS0iLCJk ZGRkZCIpCitBTFUzMl9SUl9FTkMoQTJfYXNyaCwgICAgICAgICAgICAgICAgICIwMDAwIiwiMDAx IiwiMCIsIi0tLSIsImRkZGRkIikKK0FMVTMyX1JSX0VOQyhBMl90ZnIsICAgICAgICAgICAgICAg ICAgIjAwMDAiLCIwMTEiLCIwIiwiLS0tIiwiZGRkZGQiKQorQUxVMzJfUlJfRU5DKEEyX3N4dGIs ICAgICAgICAgICAgICAgICAiMDAwMCIsIjEwMSIsIjAiLCItLS0iLCJkZGRkZCIpCitBTFUzMl9S Ul9FTkMoQTJfenh0aCwgICAgICAgICAgICAgICAgICIwMDAwIiwiMTEwIiwiMCIsIi0tLSIsImRk ZGRkIikKK0FMVTMyX1JSX0VOQyhBMl9zeHRoLCAgICAgICAgICAgICAgICAgIjAwMDAiLCIxMTEi LCIwIiwiLS0tIiwiZGRkZGQiKQorCitDT05EQTMyX1JSX0VOQyhBNF9wYXNsaCwgICAgICAgICAg ICAgICAiMDAwMCIsIjAwMCIsIjEiLCItLS0iLCJkZGRkZCIpCitDT05EQTMyX1JSX0VOQyhBNF9w YXNyaCwgICAgICAgICAgICAgICAiMDAwMCIsIjAwMSIsIjEiLCItLS0iLCJkZGRkZCIpCitDT05E QTMyX1JSX0VOQyhBNF9wenh0YiwgICAgICAgICAgICAgICAiMDAwMCIsIjEwMCIsIjEiLCItLS0i LCJkZGRkZCIpCitDT05EQTMyX1JSX0VOQyhBNF9wc3h0YiwgICAgICAgICAgICAgICAiMDAwMCIs IjEwMSIsIjEiLCItLS0iLCJkZGRkZCIpCitDT05EQTMyX1JSX0VOQyhBNF9wenh0aCwgICAgICAg ICAgICAgICAiMDAwMCIsIjExMCIsIjEiLCItLS0iLCJkZGRkZCIpCitDT05EQTMyX1JSX0VOQyhB NF9wc3h0aCwgICAgICAgICAgICAgICAiMDAwMCIsIjExMSIsIjEiLCItLS0iLCJkZGRkZCIpCisK KworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNTX0FMVTJvcCIgMDAwMSAtLS0tLS0tLSBQ UC0tLS0tLSAtLS0tLS0tLSIsIlsjMV0gUng9KCN1MTYpIikKK0RFRl9FTkMzMihBMl90ZnJpbCwg ICAgIElDTEFTU19BTFUyb3AiIDAwMDEgaWkxeHh4eHggUFBpaWlpaWkgaWlpaWlpaWkiKQorCisK K0RFRl9GSUVMRFJPV19ERVNDMzIoICAgIElDTEFTU19BTFUyb3AiIDAwMTAgLS0tLS0tLS0gUFAt LS0tLS0gLS0tLS0tLS0iLCJbIzJdIFJ4PSgjdTE2KSIpCitERUZfRU5DMzIoQTJfdGZyaWgsICAg ICBJQ0xBU1NfQUxVMm9wIiAwMDEwIGlpMXh4eHh4IFBQaWlpaWlpIGlpaWlpaWlpIikKKworCitE RUZfRklFTERST1dfREVTQzMyKCAgICBJQ0xBU1NfQUxVMm9wIiAwMDExIC0tLS0tLS0tIFBQLS0t LS0tIC0tLS0tLS0tIiwiWyMzXSBSZD0oUHUsUnMsI3M4KSIpCitERUZfRU5DMzIoQzJfbXV4aXIs ICAgICBJQ0xBU1NfQUxVMm9wIiAwMDExIDB1dXNzc3NzIFBQMGlpaWlpIGlpaWRkZGRkIikKK0RF Rl9FTkMzMihDMl9tdXhyaSwgICAgIElDTEFTU19BTFUyb3AiIDAwMTEgMXV1c3Nzc3MgUFAwaWlp aWkgaWlpZGRkZGQiKQorCitERUZfRU5DMzIoQTRfY29tYmluZXJpLCBJQ0xBU1NfQUxVMm9wIiAw MDExIC0wMHNzc3NzIFBQMWlpaWlpIGlpaWRkZGRkIikgLyogUmRkID0gKFJzLCNzOCkgKi8KK0RF Rl9FTkMzMihBNF9jb21iaW5laXIsIElDTEFTU19BTFUyb3AiIDAwMTEgLTAxc3Nzc3MgUFAxaWlp aWkgaWlpZGRkZGQiKSAvKiBSZGQgPSAoUnMsI3M4KSAqLworREVGX0VOQzMyKEE0X3JjbXBlcWks ICAgSUNMQVNTX0FMVTJvcCIgMDAxMSAtMTBzc3NzcyBQUDFpaWlpaSBpaWlkZGRkZCIpIC8qIFJk ID0gKFJzLCNzOCkgKi8KK0RFRl9FTkMzMihBNF9yY21wbmVxaSwgIElDTEFTU19BTFUyb3AiIDAw MTEgLTExc3Nzc3MgUFAxaWlpaWkgaWlpZGRkZGQiKSAvKiBSZCA9IChScywjczgpICovCisKKwor REVGX0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNTX0FMVTJvcCIgMDEwMCAtLS0tLS0tLSBQUC0t LS0tLSAtLS0tLS0tLSIsIlsjNF0gKFB1KSBSZD0oUnMsI3M4KSIpCitERUZfRklFTEQzMiggICAg ICAgICAgICBJQ0xBU1NfQUxVMm9wIiAwMTAwIC0tLS0tLS0tIFBQIS0tLS0tIC0tLS0tLS0tIixB MzJhX0ROLCJEb3QtbmV3IikKK0RFRl9GSUVMRDMyKCAgICAgICAgICAgIElDTEFTU19BTFUyb3Ai IDAxMDAgIS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLEEzMmFfUFMsIlByZWRpY2F0ZSBzZW5z ZSIpCitERUZfRU5DMzIoQTJfcGFkZGl0LCAgICBJQ0xBU1NfQUxVMm9wIiAwMTAwIDB1dXNzc3Nz IFBQMGlpaWlpIGlpaWRkZGRkIikKK0RFRl9FTkMzMihBMl9wYWRkaXRuZXcsIElDTEFTU19BTFUy b3AiIDAxMDAgMHV1c3Nzc3MgUFAxaWlpaWkgaWlpZGRkZGQiKQorREVGX0VOQzMyKEEyX3BhZGRp ZiwgICAgSUNMQVNTX0FMVTJvcCIgMDEwMCAxdXVzc3NzcyBQUDBpaWlpaSBpaWlkZGRkZCIpCitE RUZfRU5DMzIoQTJfcGFkZGlmbmV3LCBJQ0xBU1NfQUxVMm9wIiAwMTAwIDF1dXNzc3NzIFBQMWlp aWlpIGlpaWRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKCAgICAgSUNMQVNTX0FMVTJv cCIgMDEwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjNV0gUGQ9KFJzLCNzMTApIikK K0RFRl9FTkMzMihDMl9jbXBlcWksICAgICBJQ0xBU1NfQUxVMm9wIiAwMTAxIDAwaXNzc3NzIFBQ aWlpaWlpIGlpaTAwMGRkIikKK0RFRl9FTkMzMihDMl9jbXBndGksICAgICBJQ0xBU1NfQUxVMm9w IiAwMTAxIDAxaXNzc3NzIFBQaWlpaWlpIGlpaTAwMGRkIikKK0RFRl9FTkMzMihDMl9jbXBndHVp LCAgICBJQ0xBU1NfQUxVMm9wIiAwMTAxIDEwMHNzc3NzIFBQaWlpaWlpIGlpaTAwMGRkIikKKwor REVGX0VOQzMyKEM0X2NtcG5lcWksICAgIElDTEFTU19BTFUyb3AiIDAxMDEgMDBpc3Nzc3MgUFBp aWlpaWkgaWlpMTAwZGQiKQorREVGX0VOQzMyKEM0X2NtcGx0ZWksICAgIElDTEFTU19BTFUyb3Ai IDAxMDEgMDFpc3Nzc3MgUFBpaWlpaWkgaWlpMTAwZGQiKQorREVGX0VOQzMyKEM0X2NtcGx0ZXVp LCAgIElDTEFTU19BTFUyb3AiIDAxMDEgMTAwc3Nzc3MgUFBpaWlpaWkgaWlpMTAwZGQiKQorCisK K0RFRl9GSUVMRFJPV19ERVNDMzIoICAgIElDTEFTU19BTFUyb3AiIDAxMTAgLS0tLS0tLS0gUFAt LS0tLS0gLS0tLS0tLS0iLCJbIzZdIFJkPShScywjczEwKSIpCitBTFUzMl9JUlJfRU5DKEEyX2Fu ZGlyLCAgICAgICAgICAgICAgICIwMTEwIiwiMDBpIiwiaSIsImlpaSIsImRkZGRkIikKK0FMVTMy X0lSUl9FTkMoQTJfc3VicmksICAgICAgICAgICAgICAgIjAxMTAiLCIwMWkiLCJpIiwiaWlpIiwi ZGRkZGQiKQorQUxVMzJfSVJSX0VOQyhBMl9vcmlyLCAgICAgICAgICAgICAgICAiMDExMCIsIjEw aSIsImkiLCJpaWkiLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNT X0FMVTJvcCIgMDExMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjN10gUmVzZXJ2ZWQi KQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoICAgIElDTEFTU19BTFUyb3AiIDEwMDAgLS0tLS0t LS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzhdIFJkPSNzMTYiKQorREVGX0VOQzMyKEEyX3RmcnNp LCAgICAgSUNMQVNTX0FMVTJvcCIgMTAwMCBpaS1paWlpaSBQUGlpaWlpaSBpaWlkZGRkZCIpCisK KworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNTX0FMVTJvcCIgMTAwMSAtLS0tLS0tLSBQ UC0tLS0tLSAtLS0tLS0tLSIsIlsjOV0gUmVzZXJ2ZWQiKQorCisKK0RFRl9GSUVMRFJPV19ERVND MzIoICAgIElDTEFTU19BTFUyb3AiIDEwMS0gLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJb IzEwLCMxMV0gUmQ9KFB1LCNzOCwjUzgpIikKK0RFRl9FTkMzMihDMl9tdXhpaSwgICAgIElDTEFT U19BTFUyb3AiIDEwMXUgdUlJSUlJSUkgUFBJaWlpaWkgaWlpZGRkZGQiKQorCisKK0RFRl9GSUVM RFJPV19ERVNDMzIoICAgIElDTEFTU19BTFUyb3AiIDExMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0t LS0tLS0iLCJbIzEyXSBSZGQ9KCNzOCwjUzgpIikKK0RFRl9FTkMzMihBMl9jb21iaW5laWksIElD TEFTU19BTFUyb3AiIDExMDAgMElJSUlJSUkgUFBJaWlpaWkgaWlpZGRkZGQiKQorREVGX0VOQzMy KEE0X2NvbWJpbmVpaSwgSUNMQVNTX0FMVTJvcCIgMTEwMCAxLS1JSUlJSSBQUElpaWlpaSBpaWlk ZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMiggICAgSUNMQVNTX0FMVTJvcCIgMTEwMSAt LS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMTNdIFJlc2VydmVkIikKKworCitERUZfRklF TERST1dfREVTQzMyKCAgICBJQ0xBU1NfQUxVMm9wIiAxMTEwIC0tLS0tLS0tIFBQLS0tLS0tIC0t LS0tLS0tIiwiWyMxNF0gKFB1KSBSZD0jczEyIikKK0RFRl9GSUVMRDMyKCAgICAgICAgICAgIElD TEFTU19BTFUyb3AiIDExMTAgLS0tMC0tLS0gUFAhLS0tLS0gLS0tLS0tLS0iLEEzMmNfRE4sIkRv dC1uZXciKQorREVGX0ZJRUxEMzIoICAgICAgICAgICAgSUNMQVNTX0FMVTJvcCIgMTExMCAhLS0w LS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsQTMyY19QUywiUHJlZGljYXRlIHNlbnNlIikKK0RFRl9F TkMzMihDMl9jbW92ZW5ld2l0LElDTEFTU19BTFUyb3AiIDExMTAgMHV1MGlpaWkgUFAxaWlpaWkg aWlpZGRkZGQiKQorREVGX0VOQzMyKEMyX2Ntb3ZlbmV3aWYsSUNMQVNTX0FMVTJvcCIgMTExMCAx dXUwaWlpaSBQUDFpaWlpaSBpaWlkZGRkZCIpCitERUZfRU5DMzIoQzJfY21vdmVpdCwgICBJQ0xB U1NfQUxVMm9wIiAxMTEwIDB1dTBpaWlpIFBQMGlpaWlpIGlpaWRkZGRkIikKK0RFRl9FTkMzMihD Ml9jbW92ZWlmLCAgIElDTEFTU19BTFUyb3AiIDExMTAgMXV1MGlpaWkgUFAwaWlpaWkgaWlpZGRk ZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoICAgIElDTEFTU19BTFUyb3AiIDExMTEgLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzE1XSBub3AiKQorREVGX0VOQzMyKEEyX25vcCwg ICAgICAgSUNMQVNTX0FMVTJvcCIgMTExMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIpCisK KworCisKKworCisKKworCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K Ky8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICovCisvKiAgICBBTFUzMl8zb3AgICAgICAgICAgICAgICAgKi8KKy8qICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworCisjZGVmaW5lIFYyQTMy X1JSUl9FTkMoVEFHLE1BSjQsTUlOMyxTTU9EMSxWTUlOMyxEU1RDSEFSUylcCitERUZfRU5DMzIo VEFHLCBJQ0xBU1NfQUxVM29wIiAiTUFKNCIgICJNSU4zInNzc3NzICBQUCJTTU9EMSJ0dHR0dCAi Vk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgVjJBMzJfUlJfRU5DKFRBRyxNQUo0LE1JTjMsU01P RDEsVk1JTjMsRFNUQ0hBUlMpXAorREVGX0VOQzMyKFRBRywgSUNMQVNTX0FMVTNvcCIgIk1BSjQi ICAiTUlOMyJzc3NzcyAgUFAiU01PRDEiLS0tLS0gIlZNSU4zIERTVENIQVJTKQorCisKK0RFRl9G SUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTNvcCIgIDAwMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0t LS0tLS0iLCJbIzBdIFJlc2VydmVkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19B TFUzb3AiICAwMDAxIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxXSBSZD0oUnMsUnQp IikKK1YyQTMyX1JSUl9FTkMoQTJfYW5kLCAgICAgICAgICAgICAgIjAwMDEiLCIwMDAiLCItIiwi LS0tIiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9vciwgICAgICAgICAgICAgICAiMDAwMSIs IjAwMSIsIi0iLCItLS0iLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX3hvciwgICAgICAgICAg ICAgICIwMDAxIiwiMDExIiwiLSIsIi0tLSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTRfYW5k biwgICAgICAgICAgICAgIjAwMDEiLCIxMDAiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJS X0VOQyhBNF9vcm4sICAgICAgICAgICAgICAiMDAwMSIsIjEwMSIsIi0iLCItLS0iLCJkZGRkZCIp CisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTNvcCIgIDAwMTAgLS0tLS0tLS0gUFAt LS0tLS0gLS0tLS0tLS0iLCJbIzJdIFBkPShScyxSdCkiKQorVjJBMzJfUlJSX0VOQyhDMl9jbXBl cSwgICAgICAgICAgICAiMDAxMCIsIi0wMCIsIi0iLCItLS0iLCIwMDBkZCIpCitWMkEzMl9SUlJf RU5DKEMyX2NtcGd0LCAgICAgICAgICAgICIwMDEwIiwiLTEwIiwiLSIsIi0tLSIsIjAwMGRkIikK K1YyQTMyX1JSUl9FTkMoQzJfY21wZ3R1LCAgICAgICAgICAgIjAwMTAiLCItMTEiLCItIiwiLS0t IiwiMDAwZGQiKQorCitWMkEzMl9SUlJfRU5DKEM0X2NtcG5lcSwgICAgICAgICAgICIwMDEwIiwi LTAwIiwiLSIsIi0tLSIsIjEwMGRkIikKK1YyQTMyX1JSUl9FTkMoQzRfY21wbHRlLCAgICAgICAg ICAgIjAwMTAiLCItMTAiLCItIiwiLS0tIiwiMTAwZGQiKQorVjJBMzJfUlJSX0VOQyhDNF9jbXBs dGV1LCAgICAgICAgICAiMDAxMCIsIi0xMSIsIi0iLCItLS0iLCIxMDBkZCIpCisKKworREVGX0ZJ RUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVM29wIiAgMDAxMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0t LS0tLSIsIlsjM10gUmQ9KFJzLFJ0KSIpCitWMkEzMl9SUlJfRU5DKEEyX2FkZCwgICAgICAgICAg ICAgICIwMDExIiwiMDAwIiwiLSIsIi0tLSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfc3Vi LCAgICAgICAgICAgICAgIjAwMTEiLCIwMDEiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJS X0VOQyhBMl9jb21iaW5lX2hoLCAgICAgICAiMDAxMSIsIjEwMCIsIi0iLCItLS0iLCJkZGRkZCIp CitWMkEzMl9SUlJfRU5DKEEyX2NvbWJpbmVfaGwsICAgICAgICIwMDExIiwiMTAxIiwiLSIsIi0t LSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfY29tYmluZV9saCwgICAgICAgIjAwMTEiLCIx MTAiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9jb21iaW5lX2xsLCAgICAg ICAiMDAxMSIsIjExMSIsIi0iLCItLS0iLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEE0X3JjbXBl cSwgICAgICAgICAgICIwMDExIiwiMDEwIiwiLSIsIi0tLSIsImRkZGRkIikKK1YyQTMyX1JSUl9F TkMoQTRfcmNtcG5lcSwgICAgICAgICAgIjAwMTEiLCIwMTEiLCItIiwiLS0tIiwiZGRkZGQiKQor CisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTNvcCIgIDAxMDAgLS0tLS0tLS0gUFAt LS0tLS0gLS0tLS0tLS0iLCJbIzRdIFJkPShQdSxScyxSdCkiKQorVjJBMzJfUlJSX0VOQyhDMl9t dXgsICAgICAgICAgICAgICAiMDEwMCIsIi0tLSIsIi0iLCItdXUiLCJkZGRkZCIpCisKKworREVG X0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVM29wIiAgMDEwMSAtLS0tLS0tLSBQUC0tLS0tLSAt LS0tLS0tLSIsIlsjNV0gUmRkPShScyxSdCkiKQorVjJBMzJfUlJSX0VOQyhBMl9jb21iaW5ldywg ICAgICAgICAiMDEwMSIsIjAtLSIsIi0iLCItLS0iLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKFMy X3BhY2tobCwgICAgICAgICAgICIwMTAxIiwiMS0tIiwiLSIsIi0tLSIsImRkZGRkIikKKworCitE RUZfRklFTERST1dfREVTQzMyKElDTEFTU19BTFUzb3AiICAwMTEwIC0tLS0tLS0tIFBQLS0tLS0t IC0tLS0tLS0tIiwiWyM2XSBSZD0oUnMsUnQpIikKK1YyQTMyX1JSUl9FTkMoQTJfc3ZhZGRoLCAg ICAgICAgICAgIjAxMTAiLCIwMDAiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhB Ml9zdmFkZGhzLCAgICAgICAgICAiMDExMCIsIjAwMSIsIi0iLCItLS0iLCJkZGRkZCIpCitWMkEz Ml9SUlJfRU5DKEEyX3N2YWRkdWhzLCAgICAgICAgICIwMTEwIiwiMDExIiwiLSIsIi0tLSIsImRk ZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfc3ZzdWJoLCAgICAgICAgICAgIjAxMTAiLCIxMDAiLCIt IiwiLS0tIiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9zdnN1YmhzLCAgICAgICAgICAiMDEx MCIsIjEwMSIsIi0iLCItLS0iLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX3N2c3VidWhzLCAg ICAgICAgICIwMTEwIiwiMTExIiwiLSIsIi0tLSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJf YWRkc2F0LCAgICAgICAgICAgIjAxMTAiLCIwMTAiLCItIiwiLS0tIiwiZGRkZGQiKQorVjJBMzJf UlJSX0VOQyhBMl9zdWJzYXQsICAgICAgICAgICAiMDExMCIsIjExMCIsIi0iLCItLS0iLCJkZGRk ZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVM29wIiAgMDExMSAtLS0tLS0t LSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjN10gUmQ9KFJzLFJ0KSIpCitWMkEzMl9SUlJfRU5DKEEy X3N2YXZnaCwgICAgICAgICAgICIwMTExIiwiLTAwIiwiLSIsIi0tLSIsImRkZGRkIikKK1YyQTMy X1JSUl9FTkMoQTJfc3ZhdmdocywgICAgICAgICAgIjAxMTEiLCItMDEiLCItIiwiLS0tIiwiZGRk ZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9zdm5hdmdoLCAgICAgICAgICAiMDExMSIsIi0xMSIsIi0i LCItLS0iLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVM29wIiAg MTAwMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjOF0gUmVzZXJ2ZWQiKQorCisKK0RF Rl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTNvcCIgIDEwMDEgLS0tLS0tLS0gUFAtLS0tLS0g LS0tLS0tLS0iLCJbIzldIChQdSkgUmQ9KFJzLFJ0KSIpCitWMkEzMl9SUlJfRU5DKEEyX3BhbmR0 LCAgICAgICAgICAgICIxMDAxIiwiLTAwIiwiMCIsIjB1dSIsImRkZGRkIikKK1YyQTMyX1JSUl9F TkMoQTJfcGFuZHRuZXcsICAgICAgICAgIjEwMDEiLCItMDAiLCIxIiwiMHV1IiwiZGRkZGQiKQor VjJBMzJfUlJSX0VOQyhBMl9wYW5kZiwgICAgICAgICAgICAiMTAwMSIsIi0wMCIsIjAiLCIxdXUi LCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX3BhbmRmbmV3LCAgICAgICAgICIxMDAxIiwiLTAw IiwiMSIsIjF1dSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfcG9ydCwgICAgICAgICAgICAg IjEwMDEiLCItMDEiLCIwIiwiMHV1IiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9wb3J0bmV3 LCAgICAgICAgICAiMTAwMSIsIi0wMSIsIjEiLCIwdXUiLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5D KEEyX3BvcmYsICAgICAgICAgICAgICIxMDAxIiwiLTAxIiwiMCIsIjF1dSIsImRkZGRkIikKK1Yy QTMyX1JSUl9FTkMoQTJfcG9yZm5ldywgICAgICAgICAgIjEwMDEiLCItMDEiLCIxIiwiMXV1Iiwi ZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9weG9ydCwgICAgICAgICAgICAiMTAwMSIsIi0xMSIs IjAiLCIwdXUiLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX3B4b3J0bmV3LCAgICAgICAgICIx MDAxIiwiLTExIiwiMSIsIjB1dSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfcHhvcmYsICAg ICAgICAgICAgIjEwMDEiLCItMTEiLCIwIiwiMXV1IiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhB Ml9weG9yZm5ldywgICAgICAgICAiMTAwMSIsIi0xMSIsIjEiLCIxdXUiLCJkZGRkZCIpCisKKwor REVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVM29wIiAgMTAxMCAtLS0tLS0tLSBQUC0tLS0t LSAtLS0tLS0tLSIsIlsjMTBdIFJlc2VydmVkIikKKworCisKK0RFRl9GSUVMRFJPV19ERVNDMzIo SUNMQVNTX0FMVTNvcCIgIDEwMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzExXSAo UHUpIFJkPShScyxSdCkiKQorVjJBMzJfUlJSX0VOQyhBMl9wYWRkdCwgICAgICAgICAgICAiMTAx MSIsIjAtMCIsIjAiLCIwdXUiLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX3BhZGR0bmV3LCAg ICAgICAgICIxMDExIiwiMC0wIiwiMSIsIjB1dSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJf cGFkZGYsICAgICAgICAgICAgIjEwMTEiLCIwLTAiLCIwIiwiMXV1IiwiZGRkZGQiKQorVjJBMzJf UlJSX0VOQyhBMl9wYWRkZm5ldywgICAgICAgICAiMTAxMSIsIjAtMCIsIjEiLCIxdXUiLCJkZGRk ZCIpCitWMkEzMl9SUlJfRU5DKEEyX3BzdWJ0LCAgICAgICAgICAgICIxMDExIiwiMC0xIiwiMCIs IjB1dSIsImRkZGRkIikKK1YyQTMyX1JSUl9FTkMoQTJfcHN1YnRuZXcsICAgICAgICAgIjEwMTEi LCIwLTEiLCIxIiwiMHV1IiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhBMl9wc3ViZiwgICAgICAg ICAgICAiMTAxMSIsIjAtMSIsIjAiLCIxdXUiLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEEyX3Bz dWJmbmV3LCAgICAgICAgICIxMDExIiwiMC0xIiwiMSIsIjF1dSIsImRkZGRkIikKKworCitERUZf RklFTERST1dfREVTQzMyKElDTEFTU19BTFUzb3AiICAxMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0t LS0tLS0tIiwiWyMxMl0gUmVzZXJ2ZWQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNT X0FMVTNvcCIgIDExMDEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzEzXSAoUHUpIFJk ZD0oUnMsUnQpIikKK1YyQTMyX1JSUl9FTkMoQzJfY2NvbWJpbmV3bmV3dCwgICAgIjExMDEiLCIw MDAiLCIxIiwiMHV1IiwiZGRkZGQiKQorVjJBMzJfUlJSX0VOQyhDMl9jY29tYmluZXduZXdmLCAg ICAiMTEwMSIsIjAwMCIsIjEiLCIxdXUiLCJkZGRkZCIpCitWMkEzMl9SUlJfRU5DKEMyX2Njb21i aW5ld3QsICAgICAgICIxMTAxIiwiMDAwIiwiMCIsIjB1dSIsImRkZGRkIikKK1YyQTMyX1JSUl9F TkMoQzJfY2NvbWJpbmV3ZiwgICAgICAgIjExMDEiLCIwMDAiLCIwIiwiMXV1IiwiZGRkZGQiKQor CisKKworCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVM29wIiAgMTExMCAtLS0t LS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMTRdIFJlc2VydmVkIikKKworCisKKworCisKKwor CisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAg IFMgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworCitERUZfQ0xBU1MzMihJQ0xBU1NfUzJvcCIgLS0tLSAtLS0t LS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsU18yb3ApCitERUZfRklFTEQzMihJQ0xBU1NfUzJvcCIg ISEhISAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsU1RZUEVCX1JlZ1R5cGUsIlJlZ2lzdGVy IFR5cGUiKQorREVGX0ZJRUxEMzIoSUNMQVNTX1Myb3AiIC0tLS0gISEtLS0tLS0gUFAtLS0tLS0g LS0tLS0tLS0iLFMyX01hak9wLCJNYWpvciBPcGNvZGUiKQorREVGX0ZJRUxEMzIoSUNMQVNTX1My b3AiIC0tLS0gLS0tLS0tLS0gUFAtLS0tLS0gISEhLS0tLS0iLFMyX01pbk9wLCJNaW5vciBPcGNv ZGUiKQorCitERUZfQ0xBU1MzMihJQ0xBU1NfUzNvcCIgLS0tLSAtLS0tLS0tLSBQUC0tLS0tLSAt LS0tLS0tLSIsU18zb3ApCitERUZfRklFTEQzMihJQ0xBU1NfUzNvcCIgISEhISAtLS0tLS0tLSBQ UC0tLS0tLSAtLS0tLS0tLSIsU1RZUEVBX1JlZ1R5cGUsIlJlZ2lzdGVyIFR5cGUiKQorREVGX0ZJ RUxEMzIoSUNMQVNTX1Mzb3AiIC0tLS0gISEtLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLFMzX01h aiwiTWFqb3IgT3Bjb2RlIikKK0RFRl9GSUVMRDMyKElDTEFTU19TM29wIiAtLS0tIC0tLS0tLS0t IFBQLS0tLS0tICEhLS0tLS0tIixTM19NaW4sIk1pbm9yIE9wY29kZSIpCisKKworI2RlZmluZSBT SF9SUlJfRU5DKFRBRyxNQUo0LE1JTjMsU01PRDEsVk1JTjMsRFNUQ0hBUlMpIFwKK0RFRl9FTkMz MihUQUcsSUNMQVNTX1Mzb3AiICJNQUo0IiAgIk1JTjMic3Nzc3MgIFBQIlNNT0QxInR0dHR0ICJW TUlOMyBEU1RDSEFSUykKKworI2RlZmluZSBTSF9SUlJpRU5DKFRBRyxNQUo0LE1JTjMsU01PRDEs Vk1JTjMsRFNUQ0hBUlMpIFwKK0RFRl9FTkMzMihUQUcsSUNMQVNTX1Mzb3AiICJNQUo0IiAgIk1J TjMiaWlpaWkgIFBQIlNNT0QxInR0dHR0ICJWTUlOMyBEU1RDSEFSUykKKworI2RlZmluZSBTSF9S UlJfRU5DWChUQUcsTUFKNCxNSU4zLFNNT0QxLFZNSU4zLERTVENIQVJTKSBcCitERUZfRU5DMzIo VEFHLElDTEFTU19TM29wIiAiTUFKNCIgICJNSU4zInNzc3NzICBQUCJTTU9EMSJ4eHh4eCAiVk1J TjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgU0gzX1JSX0VOQyhUQUcsTUFKNCxNSU4zLFNNT0QxLFZN SU4zLERTVENIQVJTKSBcCitERUZfRU5DMzIoVEFHLElDTEFTU19TM29wIiAiTUFKNCIgICJNSU4z InNzc3NzICBQUCJTTU9EMSItLS0tLSAiVk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgU0hfUFBQ X0VOQyhUQUcsTUFKNCxNSU4zLFNNT0QxLFZNSU4zLERTVENIQVJTKSBcCitERUZfRU5DMzIoVEFH LElDTEFTU19TM29wIiAiTUFKNCIgICJNSU4zIi0tLXNzICBQUCJTTU9EMSItLS10dCAiVk1JTjMg RFNUQ0hBUlMpCisKKyNkZWZpbmUgU0gyX1JSX0VOQyhUQUcsTUFKNCxNSU4zLFNNT0QxLFZNSU4z LERTVENIQVJTKSBcCitERUZfRU5DMzIoVEFHLElDTEFTU19TMm9wIiAiTUFKNCIgICJNSU4zInNz c3NzICBQUCJTTU9EMSItLS0tLSAiVk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgU0gyX1BQUF9F TkMoVEFHLE1BSjQsTUlOMyxTTU9EMSxWTUlOMyxEU1RDSEFSUykgXAorREVGX0VOQzMyKFRBRyxJ Q0xBU1NfUzJvcCIgIk1BSjQiICAiTUlOMyItLS1zcyAgUFAiU01PRDEiLS0tdHQgIlZNSU4zIERT VENIQVJTKQorCisjZGVmaW5lIFNIX1JSSTRfRU5DKFRBRyxNQUo0LE1JTjMsVk1JTjMsRFNUQ0hB UlMpIFwKK0RFRl9FTkMzMihUQUcsSUNMQVNTX1Myb3AiICJNQUo0IiAiTUlOMyAic3Nzc3MgUFAw MGlpaWkgIiBWTUlOMyBEU1RDSEFSUykKKworI2RlZmluZSBTSF9SUkk1X0VOQyhUQUcsTUFKNCxN SU4zLFZNSU4zLERTVENIQVJTKSBcCitERUZfRU5DMzIoVEFHLElDTEFTU19TMm9wIiAiTUFKNCIg Ik1JTjMgInNzc3NzIFBQMGlpaWlpICIgVk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgU0hfUlJJ Nl9FTkMoVEFHLE1BSjQsTUlOMyxWTUlOMyxEU1RDSEFSUykgXAorREVGX0VOQzMyKFRBRyxJQ0xB U1NfUzJvcCIgIk1BSjQiICJNSU4zICJzc3NzcyBQUGlpaWlpaSAiIFZNSU4zIERTVENIQVJTKQor CisjZGVmaW5lIFJTSElGVFRZUEVTKFRBR0VORCxNQUo0LE1JTjMsU01PRDEsRE1PRDEsRFNUQ0hB UlMpIFwKK1NIX1JSUl9FTkMoUzJfYXNyX3JfIyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxLCIwMCJE TU9EMSxEU1RDSEFSUykgXAorU0hfUlJSX0VOQyhTMl9sc3Jfcl8jI1RBR0VORCxNQUo0LE1JTjMs U01PRDEsIjAxIkRNT0QxLERTVENIQVJTKSBcCitTSF9SUlJfRU5DKFMyX2FzbF9yXyMjVEFHRU5E LE1BSjQsTUlOMyxTTU9EMSwiMTAiRE1PRDEsRFNUQ0hBUlMpIFwKK1NIX1JSUl9FTkMoUzJfbHNs X3JfIyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxLCIxMSJETU9EMSxEU1RDSEFSUykKKworCisjZGVm aW5lIEk1U0hJRlRUWVBFUyhUQUdFTkQsTUFKNCxNSU4zLFNNT0QxLERTVENIQVJTKSBcCitTSF9S Ukk1X0VOQyhTMl9hc3JfaV8jI1RBR0VORCxNQUo0LE1JTjMsU01PRDEgIjAwIixEU1RDSEFSUykg XAorU0hfUlJJNV9FTkMoUzJfbHNyX2lfIyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxICIwMSIsRFNU Q0hBUlMpIFwKK1NIX1JSSTVfRU5DKFMyX2FzbF9pXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAi MTAiLERTVENIQVJTKSBcCitTSF9SUkk1X0VOQyhTNl9yb2xfaV8jI1RBR0VORCxNQUo0LE1JTjMs U01PRDEgIjExIixEU1RDSEFSUykKKworI2RlZmluZSBJNVNISUZUVFlQRVNfTk9ST0woVEFHRU5E LE1BSjQsTUlOMyxTTU9EMSxEU1RDSEFSUykgXAorU0hfUlJJNV9FTkMoUzJfYXNyX2lfIyNUQUdF TkQsTUFKNCxNSU4zLFNNT0QxICIwMCIsRFNUQ0hBUlMpIFwKK1NIX1JSSTVfRU5DKFMyX2xzcl9p XyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAiMDEiLERTVENIQVJTKSBcCitTSF9SUkk1X0VOQyhT Ml9hc2xfaV8jI1RBR0VORCxNQUo0LE1JTjMsU01PRDEgIjEwIixEU1RDSEFSUykKKworI2RlZmlu ZSBJNVNISUZUVFlQRVNfTk9BU1IoVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSxEU1RDSEFSUykgXAor U0hfUlJJNV9FTkMoUzJfbHNyX2lfIyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxICIwMSIsRFNUQ0hB UlMpIFwKK1NIX1JSSTVfRU5DKFMyX2FzbF9pXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAiMTAi LERTVENIQVJTKSBcCitTSF9SUkk1X0VOQyhTNl9yb2xfaV8jI1RBR0VORCxNQUo0LE1JTjMsU01P RDEgIjExIixEU1RDSEFSUykKKworI2RlZmluZSBJNFNISUZUVFlQRVMoVEFHRU5ELE1BSjQsTUlO MyxTTU9EMSxEU1RDSEFSUykgXAorU0hfUlJJNF9FTkMoUzJfYXNyX2lfIyNUQUdFTkQsTUFKNCxN SU4zLFNNT0QxICIwMCIsRFNUQ0hBUlMpIFwKK1NIX1JSSTRfRU5DKFMyX2xzcl9pXyMjVEFHRU5E LE1BSjQsTUlOMyxTTU9EMSAiMDEiLERTVENIQVJTKSBcCitTSF9SUkk0X0VOQyhTMl9hc2xfaV8j I1RBR0VORCxNQUo0LE1JTjMsU01PRDEgIjEwIixEU1RDSEFSUykKKworI2RlZmluZSBJNUFTSElG VFRZUEVTKFRBR0VORCxNQUo0LE1JTjMsU01PRDEsRFNUQ0hBUlMpIFwKK1NIX1JSSTVfRU5DKFMy X2FzbF9pXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAiMTAiLERTVENIQVJTKQorCisjZGVmaW5l IEk0QVNISUZUVFlQRVMoVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSxEU1RDSEFSUykgXAorU0hfUlJJ NF9FTkMoUzJfYXNsX2lfIyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxICIxMCIsRFNUQ0hBUlMpCisK KyNkZWZpbmUgSTZTSElGVFRZUEVTKFRBR0VORCxNQUo0LE1JTjMsU01PRDEsRFNUQ0hBUlMpIFwK K1NIX1JSSTZfRU5DKFMyX2Fzcl9pXyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAiMDAiLERTVENI QVJTKSBcCitTSF9SUkk2X0VOQyhTMl9sc3JfaV8jI1RBR0VORCxNQUo0LE1JTjMsU01PRDEgIjAx IixEU1RDSEFSUykgXAorU0hfUlJJNl9FTkMoUzJfYXNsX2lfIyNUQUdFTkQsTUFKNCxNSU4zLFNN T0QxICIxMCIsRFNUQ0hBUlMpIFwKK1NIX1JSSTZfRU5DKFM2X3JvbF9pXyMjVEFHRU5ELE1BSjQs TUlOMyxTTU9EMSAiMTEiLERTVENIQVJTKSBcCisKKyNkZWZpbmUgSTZTSElGVFRZUEVTX05PQVNS KFRBR0VORCxNQUo0LE1JTjMsU01PRDEsRFNUQ0hBUlMpIFwKK1NIX1JSSTZfRU5DKFMyX2xzcl9p XyMjVEFHRU5ELE1BSjQsTUlOMyxTTU9EMSAiMDEiLERTVENIQVJTKSBcCitTSF9SUkk2X0VOQyhT Ml9hc2xfaV8jI1RBR0VORCxNQUo0LE1JTjMsU01PRDEgIjEwIixEU1RDSEFSUykgXAorU0hfUlJJ Nl9FTkMoUzZfcm9sX2lfIyNUQUdFTkQsTUFKNCxNSU4zLFNNT0QxICIxMSIsRFNUQ0hBUlMpCisK KworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19TMm9wIiAwMDAwIC0tLS0tLS0tIFBQLS0t LS0tIC0tLS0tLS0tIiwiWyMwXSBSZGQ9KFJzcywjdTYpIikKKy8qIEVKUDogdGhlcmUgaXMgYWN0 dWFsbHkgcXVpdGUgYSBiaXQgb2Ygc3BhY2UgaGVyZSwgbG9vayBhdCB0aGUgcmVzZXJ2ZWQgYml0 cyAqLworSTZTSElGVFRZUEVTKHAsICAgICAgICAgICAgICAgICAiMDAwMCIsIjAwMCIsIjAiLCJk ZGRkZCIpCitJNVNISUZUVFlQRVNfTk9ST0wodncsICAgICAgICAgICIwMDAwIiwiMDEwIiwiMCIs ImRkZGRkIikKK0k0U0hJRlRUWVBFUyh2aCwgICAgICAgICAgICAgICAgIjAwMDAiLCIxMDAiLCIw IiwiZGRkZGQiKQorCisKKworLyogRmFsc2UgYXNzdW1lIGFuIGltbWVkaWF0ZSAqLworU0gyX1JS X0VOQyhTMl92c2F0aHViX25vcGFjaywgIjAwMDAiLCIwMDAiLCItIiwiMSAwMCIsImRkZGRkIikK K1NIMl9SUl9FTkMoUzJfdnNhdHd1aF9ub3BhY2ssICIwMDAwIiwiMDAwIiwiLSIsIjEgMDEiLCJk ZGRkZCIpCitTSDJfUlJfRU5DKFMyX3ZzYXR3aF9ub3BhY2ssICAiMDAwMCIsIjAwMCIsIi0iLCIx IDEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhTMl92c2F0aGJfbm9wYWNrLCAgIjAwMDAiLCIwMDAi LCItIiwiMSAxMSIsImRkZGRkIikKKworU0hfUlJJNF9FTkMoUzVfdmFzcmhybmQsICAgICAgIjAw MDAiLCIwMDEiLCAgICAiMCAwMCIsImRkZGRkIikKKworU0gyX1JSX0VOQyhBMl92YWJzaCwgICAg ICAgICAgIjAwMDAiLCIwMTAiLCItIiwiMSAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoQTJfdmFi c2hzYXQsICAgICAgICIwMDAwIiwiMDEwIiwiLSIsIjEgMDEiLCJkZGRkZCIpCitTSDJfUlJfRU5D KEEyX3ZhYnN3LCAgICAgICAgICAiMDAwMCIsIjAxMCIsIi0iLCIxIDEwIiwiZGRkZGQiKQorU0gy X1JSX0VOQyhBMl92YWJzd3NhdCwgICAgICAgIjAwMDAiLCIwMTAiLCItIiwiMSAxMSIsImRkZGRk IikKKworU0gyX1JSX0VOQyhBMl9ub3RwLCAgICAgICAgICAgIjAwMDAiLCIxMDAiLCItIiwiMSAw MCIsImRkZGRkIikKK1NIMl9SUl9FTkMoQTJfbmVncCwgICAgICAgICAgICIwMDAwIiwiMTAwIiwi LSIsIjEgMDEiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEEyX2Fic3AsICAgICAgICAgICAiMDAwMCIs IjEwMCIsIi0iLCIxIDEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhBMl92Y29uaiwgICAgICAgICAg IjAwMDAiLCIxMDAiLCItIiwiMSAxMSIsImRkZGRkIikKKworU0gyX1JSX0VOQyhTMl9kZWludGVy bGVhdmUsICAgIjAwMDAiLCIxMTAiLCItIiwiMSAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJf aW50ZXJsZWF2ZSwgICAgICIwMDAwIiwiMTEwIiwiLSIsIjEgMDEiLCJkZGRkZCIpCitTSDJfUlJf RU5DKFMyX2JyZXZwLCAgICAgICAgICAiMDAwMCIsIjExMCIsIi0iLCIxIDEwIiwiZGRkZGQiKQor U0hfUlJJNl9FTkMoUzJfYXNyX2lfcF9ybmQsICAgIjAwMDAiLCIxMTAiLCAgICAiMSAxMSIsImRk ZGRkIikKKworU0gyX1JSX0VOQyhGMl9jb252X2RmMmQsICAgICAgIjAwMDAiLCIxMTEiLCIwIiwi MCAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoRjJfY29udl9kZjJ1ZCwgICAgICIwMDAwIiwiMTEx IiwiMCIsIjAgMDEiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEYyX2NvbnZfdWQyZGYsICAgICAiMDAw MCIsIjExMSIsIjAiLCIwIDEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X2QyZGYsICAg ICAgIjAwMDAiLCIxMTEiLCIwIiwiMCAxMSIsImRkZGRkIikKKyNpZmRlZiBBRERfRFBfT1BTCitT SDJfUlJfRU5DKEYyX2RmZml4dXByLCAgICAgICAiMDAwMCIsIjExMSIsIjAiLCIxIDAwIiwiZGRk ZGQiKQorU0gyX1JSX0VOQyhGMl9kZnNxcnRjaGVhdCwgICAgIjAwMDAiLCIxMTEiLCIwIiwiMSAw MSIsImRkZGRkIikKKyNlbmRpZgorU0gyX1JSX0VOQyhGMl9jb252X2RmMmRfY2hvcCwgIjAwMDAi LCIxMTEiLCIwIiwiMSAxMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoRjJfY29udl9kZjJ1ZF9jaG9w LCIwMDAwIiwiMTExIiwiMCIsIjEgMTEiLCJkZGRkZCIpCisjaWZkZWYgQUREX0RQX09QUworU0gy X1JSX0VOQyhGMl9kZmludnNxcnRhLCAgICAgIjAwMDAiLCIxMTEiLCIxIiwiMCBlZSIsImRkZGRk IikKKyNlbmRpZgorCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzJvcCIgICAgMDAw MSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMV0gUmRkPShSc3MsI3U2LCNVNikiKQor REVGX0VOQzMyKFMyX2V4dHJhY3R1cCxJQ0xBU1NfUzJvcCIgMDAwMSBJSUlzc3NzcyBQUGlpaWlp aSBJSUlkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzJvcCIgMDAxMCAt LS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMl0gUnh4PShSc3MsI3U2KSIpCitJNlNISUZU VFlQRVMocF9uYWMsICAgICAgICAgICAgICIwMDEwIiwiMDAtIiwiMCIsInh4eHh4IikKK0k2U0hJ RlRUWVBFUyhwX2FjYywgICAgICAgICAgICAgIjAwMTAiLCIwMC0iLCIxIiwieHh4eHgiKQorSTZT SElGVFRZUEVTKHBfYW5kLCAgICAgICAgICAgICAiMDAxMCIsIjAxLSIsIjAiLCJ4eHh4eCIpCitJ NlNISUZUVFlQRVMocF9vciwgICAgICAgICAgICAgICIwMDEwIiwiMDEtIiwiMSIsInh4eHh4IikK K0k2U0hJRlRUWVBFU19OT0FTUihwX3hhY2MsICAgICAgIjAwMTAiLCIxMC0iLCIwIiwieHh4eHgi KQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Myb3AiICAwMDExIC0tLS0tLS0tIFBQ LS0tLS0tIC0tLS0tLS0tIiwiWyMzXSBSeHg9KFJzcywjdTYsI1U2KSIpCitERUZfRU5DMzIoUzJf aW5zZXJ0cCxJQ0xBU1NfUzJvcCIgMDAxMSBJSUlzc3NzcyBQUGlpaWlpaSBJSUl4eHh4eCIpCisK KworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzJvcCIgIDAxMDAgLS0tLS0tLS0gUFAtLS0t LS0gLS0tLS0tLS0iLCJbIzRdIFJkZD0oUnMpIikKK1NIMl9SUl9FTkMoUzJfdnN4dGJoLCAgICAg ICAgICAgICIwMTAwIiwiMDAtIiwiLSIsIjAwLSIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfdnp4 dGJoLCAgICAgICAgICAgICIwMTAwIiwiMDAtIiwiLSIsIjAxLSIsImRkZGRkIikKK1NIMl9SUl9F TkMoUzJfdnN4dGh3LCAgICAgICAgICAgICIwMTAwIiwiMDAtIiwiLSIsIjEwLSIsImRkZGRkIikK K1NIMl9SUl9FTkMoUzJfdnp4dGh3LCAgICAgICAgICAgICIwMTAwIiwiMDAtIiwiLSIsIjExLSIs ImRkZGRkIikKK1NIMl9SUl9FTkMoQTJfc3h0dywgICAgICAgICAgICAgICIwMTAwIiwiMDEtIiwi LSIsIjAwLSIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfdnNwbGF0cmgsICAgICAgICAgICIwMTAw IiwiMDEtIiwiLSIsIjAxLSIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzZfdnNwbGF0cmJwLCAgICAg ICAgICIwMTAwIiwiMDEtIiwiLSIsIjEwLSIsImRkZGRkIikKKworU0gyX1JSX0VOQyhGMl9jb252 X3NmMmRmLCAgICAgICAgIjAxMDAiLCIxLS0iLCItIiwiMDAwIiwiZGRkZGQiKQorU0gyX1JSX0VO QyhGMl9jb252X3V3MmRmLCAgICAgICAgIjAxMDAiLCIxLS0iLCItIiwiMDAxIiwiZGRkZGQiKQor U0gyX1JSX0VOQyhGMl9jb252X3cyZGYsICAgICAgICAgIjAxMDAiLCIxLS0iLCItIiwiMDEwIiwi ZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X3NmMnVkLCAgICAgICAgIjAxMDAiLCIxLS0iLCIt IiwiMDExIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X3NmMmQsICAgICAgICAgIjAxMDAi LCIxLS0iLCItIiwiMTAwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X3NmMnVkX2Nob3As ICAgIjAxMDAiLCIxLS0iLCItIiwiMTAxIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X3Nm MmRfY2hvcCwgICAgIjAxMDAiLCIxLS0iLCItIiwiMTEwIiwiZGRkZGQiKQorCisKK0RFRl9GSUVM RFJPV19ERVNDMzIoSUNMQVNTX1Myb3AiICAgMDEwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0t LSIsIlsjNV0gUGQ9KFJzLCN1NikiKQorREVGX0VOQzMyKFMyX3RzdGJpdF9pLElDTEFTU19TMm9w IiAwMTAxIDAwMHNzc3NzIFBQMGlpaWlpIC0tLS0tLWRkIikKK0RFRl9FTkMzMihDMl90ZnJycCwg ICBJQ0xBU1NfUzJvcCIgMDEwMSAwMTBzc3NzcyBQUC0tLS0tLSAtLS0tLS1kZCIpCitERUZfRU5D MzIoQzJfYml0c2NscmksSUNMQVNTX1Myb3AiIDAxMDEgMTAwc3Nzc3MgUFBpaWlpaWkgLS0tLS0t ZGQiKQorREVGX0VOQzMyKFM0X250c3RiaXRfaSxJQ0xBU1NfUzJvcCIwMTAxIDAwMXNzc3NzIFBQ MGlpaWlpIC0tLS0tLWRkIikKK0RFRl9FTkMzMihDNF9uYml0c2NscmksSUNMQVNTX1Myb3AiMDEw MSAxMDFzc3NzcyBQUGlpaWlpaSAtLS0tLS1kZCIpCitERUZfRU5DMzIoRjJfc2ZjbGFzcywgIElD TEFTU19TMm9wIjAxMDEgMTExc3Nzc3MgUFAwaWlpaWkgLS0tLS0tZGQiKQorCisKK0RFRl9GSUVM RFJPV19ERVNDMzIoSUNMQVNTX1Myb3AiICAgMDExMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0t LSIsIlsjNl0gUmRkPShQdCkiKQorREVGX0VOQzMyKEMyX21hc2ssIElDTEFTU19TMm9wIiAgICAw MTEwICAgLS0tIC0tLS0tICBQUC0tLS10dCAtLS0gZGRkZGQiKQorCisKK0RFRl9GSUVMRFJPV19E RVNDMzIoSUNMQVNTX1Myb3AiICAgIDAxMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJb IzddIFJ4PShScywjdTQsI1M2KSIpCitERUZfRU5DMzIoUzJfdGFibGVpZHhiLElDTEFTU19TMm9w IiAwMTExIDAwaXNzc3NzIFBQSUlJSUlJIGlpaXh4eHh4IikKK0RFRl9FTkMzMihTMl90YWJsZWlk eGgsSUNMQVNTX1Myb3AiIDAxMTEgMDFpc3Nzc3MgUFBJSUlJSUkgaWlpeHh4eHgiKQorREVGX0VO QzMyKFMyX3RhYmxlaWR4dyxJQ0xBU1NfUzJvcCIgMDExMSAxMGlzc3NzcyBQUElJSUlJSSBpaWl4 eHh4eCIpCitERUZfRU5DMzIoUzJfdGFibGVpZHhkLElDTEFTU19TMm9wIiAwMTExIDExaXNzc3Nz IFBQSUlJSUlJIGlpaXh4eHh4IikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19TMm9w IiAgIDEwMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzhdIFJkPShSc3MsI3U2KSIp CitTSDJfUlJfRU5DKFMyX3ZzYXRodWIsICAgICAgICAgICAgIjEwMDAiLCIwMDAiLCItIiwiMDAw IiwiZGRkZGQiKQorU0gyX1JSX0VOQyhTMl92c2F0d2gsICAgICAgICAgICAgICIxMDAwIiwiMDAw IiwiLSIsIjAxMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfdnNhdHd1aCwgICAgICAgICAgICAi MTAwMCIsIjAwMCIsIi0iLCIxMDAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX3ZzYXRoYiwgICAg ICAgICAgICAgIjEwMDAiLCIwMDAiLCItIiwiMTEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhTMl9j bGJwLCAgICAgICAgICAgICAgICIxMDAwIiwiMDEwIiwiLSIsIjAwMCIsImRkZGRkIikKK1NIMl9S Ul9FTkMoUzJfY2wwcCwgICAgICAgICAgICAgICAiMTAwMCIsIjAxMCIsIi0iLCIwMTAiLCJkZGRk ZCIpCitTSDJfUlJfRU5DKFMyX2NsMXAsICAgICAgICAgICAgICAgIjEwMDAiLCIwMTAiLCItIiwi MTAwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhTMl9jdDBwLCAgICAgICAgICAgICAgICIxMDAwIiwi MTExIiwiLSIsIjAxMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfY3QxcCwgICAgICAgICAgICAg ICAiMTAwMCIsIjExMSIsIi0iLCIxMDAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX3Z0cnVub2hi LCAgICAgICAgICAgIjEwMDAiLCIxMDAiLCItIiwiMDAwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhT Ml92dHJ1bmVoYiwgICAgICAgICAgICIxMDAwIiwiMTAwIiwiLSIsIjAxMCIsImRkZGRkIikKK1NI Ml9SUl9FTkMoUzJfdnJuZHBhY2t3aCwgICAgICAgICAiMTAwMCIsIjEwMCIsIi0iLCIxMDAiLCJk ZGRkZCIpCitTSDJfUlJfRU5DKFMyX3ZybmRwYWNrd2hzLCAgICAgICAgIjEwMDAiLCIxMDAiLCIt IiwiMTEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhBMl9zYXQsICAgICAgICAgICAgICAgICIxMDAw IiwiMTEwIiwiLSIsIjAwMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoQTJfcm91bmRzYXQsICAgICAg ICAgICAiMTAwMCIsIjExMCIsIi0iLCIwMDEiLCJkZGRkZCIpCitTSF9SUkk1X0VOQyhTMl9hc3Jf aV9zdndfdHJ1biwgICAgIjEwMDAiLCIxMTAiLCAgICAiMDEwIiwiZGRkZGQiKQorU0hfUlJJNV9F TkMoQTRfYml0c3BsaXRpLCAgICAgICAgICIxMDAwIiwiMTEwIiwgICAgIjEwMCIsImRkZGRkIikK KworU0hfUlJJNV9FTkMoQTdfY2xpcCwgICAgICAgICAJICAiMTAwMCIsIjExMCIsICAgICIxMDEi LCJkZGRkZCIpCitTSF9SUkk1X0VOQyhBN192Y2xpcCwgICAgICAgICAJICAiMTAwMCIsIjExMCIs ICAgICIxMTAiLCJkZGRkZCIpCisKKworU0gyX1JSX0VOQyhTNF9jbGJwbm9ybSwgICAgICAgICAg ICIxMDAwIiwiMDExIiwiLSIsIjAwMCIsImRkZGRkIikKK1NIX1JSSTZfRU5DKFM0X2NsYnBhZGRp LCAgICAgICAgICAiMTAwMCIsIjAxMSIsICAgICIwMTAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFM1 X3BvcGNvdW50cCwgICAgICAgICAgIjEwMDAiLCIwMTEiLCItIiwiMDExIiwiZGRkZGQiKQorCitT SF9SUkk0X0VOQyhTNV9hc3JodWJfcm5kX3NhdCwgICAgIjEwMDAiLCIwMTEiLCAgICAiMTAwIiwi ZGRkZGQiKQorU0hfUlJJNF9FTkMoUzVfYXNyaHViX3NhdCwgICAgICAgICIxMDAwIiwiMDExIiwg ICAgIjEwMSIsImRkZGRkIikKKworU0gyX1JSX0VOQyhGMl9jb252X2RmMnNmLCAgICAgICAgICIx MDAwIiwiMDAwIiwiLSIsIjAwMSIsImRkZGRkIikKK1NIMl9SUl9FTkMoRjJfY29udl91ZDJzZiwg ICAgICAgICAiMTAwMCIsIjAwMSIsIi0iLCIwMDEiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEYyX2Nv bnZfZDJzZiwgICAgICAgICAgIjEwMDAiLCIwMTAiLCItIiwiMDAxIiwiZGRkZGQiKQorU0gyX1JS X0VOQyhGMl9jb252X2RmMnV3LCAgICAgICAgICIxMDAwIiwiMDExIiwiLSIsIjAwMSIsImRkZGRk IikKK1NIMl9SUl9FTkMoRjJfY29udl9kZjJ3LCAgICAgICAgICAiMTAwMCIsIjEwMCIsIi0iLCIw MDEiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEYyX2NvbnZfZGYydXdfY2hvcCwgICAgIjEwMDAiLCIx MDEiLCItIiwiMDAxIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X2RmMndfY2hvcCwgICAg ICIxMDAwIiwiMTExIiwiLSIsIjAwMSIsImRkZGRkIikKKworCisKK0RFRl9GSUVMRFJPV19ERVND MzIoSUNMQVNTX1Myb3AiICAgMTAwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjOV0g UmQ9KFBzLFB0KSIpCitERUZfRU5DMzIoQzJfdml0cGFjaywgSUNMQVNTX1Myb3AiIDEwMDEgICAt MDAgLS0tc3MgIFBQLS0tLXR0IC0tLSBkZGRkZCIpCitERUZfRU5DMzIoQzJfdGZycHIsICAgSUNM QVNTX1Myb3AiIDEwMDEgICAtMS0gLS0tc3MgIFBQLS0tLS0tIC0tLSBkZGRkZCIpCisKKworREVG X0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzJvcCIgICAxMDEwIC0tLS0tLS0tIFBQLS0tLS0tIC0t LS0tLS0tIiwiWyMxMF0gUmRkPShSc3MsI3U2LCNVNikiKQorREVGX0VOQzMyKFM0X2V4dHJhY3Rw LElDTEFTU19TMm9wIiAxMDEwIElJSXNzc3NzIFBQaWlpaWlpIElJSWRkZGRkIikKKworCitERUZf RklFTERST1dfREVTQzMyKElDTEFTU19TMm9wIiAgIDEwMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0t LS0tLS0iLCJbIzExXSBSZD0oUnMpIikKK1NIMl9SUl9FTkMoRjJfY29udl91dzJzZiwgICAgICAg ICAiMTAxMSIsIjAwMSIsIi0iLCIwMDAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEYyX2NvbnZfdzJz ZiwgICAgICAgICAgIjEwMTEiLCIwMTAiLCItIiwiMDAwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhG Ml9jb252X3NmMnV3LCAgICAgICAgICIxMDExIiwiMDExIiwiLSIsIjAwMCIsImRkZGRkIikKK1NI Ml9SUl9FTkMoRjJfY29udl9zZjJ3LCAgICAgICAgICAiMTAxMSIsIjEwMCIsIi0iLCIwMDAiLCJk ZGRkZCIpCitTSDJfUlJfRU5DKEYyX2NvbnZfc2YydXdfY2hvcCwgICAgIjEwMTEiLCIwMTEiLCIt IiwiMDAxIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhGMl9jb252X3NmMndfY2hvcCwgICAgICIxMDEx IiwiMTAwIiwiLSIsIjAwMSIsImRkZGRkIikKK1NIMl9SUl9FTkMoRjJfc2ZmaXh1cHIsICAgICAg ICAgICAiMTAxMSIsIjEwMSIsIi0iLCIwMDAiLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RF U0MzMihJQ0xBU1NfUzJvcCIgICAgICAxMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwi WyMxMl0gUmQ9KFJzLCN1NikiKQorSTVTSElGVFRZUEVTKHIsICAgICAgICAgICAgICAgICAgICAg ICIxMTAwIiwiMDAwIiwgICAgICAgICAgICAiMCAgIiwiZGRkZGQiKQorU0hfUlJJNV9FTkMoUzJf YXNsX2lfcl9zYXQsICAgICAgICAgICIxMTAwIiwiMDEwIiwgICAgICAgICAgICAiMDEwIiwiZGRk ZGQiKQorU0hfUlJJNV9FTkMoUzJfYXNyX2lfcl9ybmQsICAgICAgICAgICIxMTAwIiwiMDEwIiwg ICAgICAgICAgICAiMDAwIiwiZGRkZGQiKQorCitTSDJfUlJfRU5DKFMyX3N2c2F0aGIsICAgICAg ICAgICAgICAgIjExMDAiLCIxMC0iLCItIiwgICAgICAgICIwMC0iLCJkZGRkZCIpCitTSDJfUlJf RU5DKFMyX3N2c2F0aHViLCAgICAgICAgICAgICAgIjExMDAiLCIxMC0iLCItIiwgICAgICAgICIw MS0iLCJkZGRkZCIpCisKK1NIX1JSSTVfRU5DKEE0X2Nyb3VuZF9yaSwgICAgICAgICAgICAiMTEw MCIsIjExMSIsICAgICAgICAgICAgIjAwLSIsImRkZGRkIikKK1NIX1JSSTZfRU5DKEE3X2Nyb3Vu ZGRfcmksICAgICAgICAgICAiMTEwMCIsIjExMSIsICAgICAgICAgICAgIjAxLSIsImRkZGRkIikK K1NIX1JSSTVfRU5DKEE0X3JvdW5kX3JpLCAgICAgICAgICAgICAiMTEwMCIsIjExMSIsICAgICAg ICAgICAgIjEwLSIsImRkZGRkIikKK1NIX1JSSTVfRU5DKEE0X3JvdW5kX3JpX3NhdCwgICAgICAg ICAiMTEwMCIsIjExMSIsICAgICAgICAgICAgIjExLSIsImRkZGRkIikKKworREVGX0VOQzMyKFMy X3NldGJpdF9pLCAgIElDTEFTU19TMm9wIiAxMTAwICAgMTEwc3Nzc3MgUFAwaWlpaWkgMDAwZGRk ZGQiKQorREVGX0VOQzMyKFMyX2NscmJpdF9pLCAgIElDTEFTU19TMm9wIiAxMTAwICAgMTEwc3Nz c3MgUFAwaWlpaWkgMDAxZGRkZGQiKQorREVGX0VOQzMyKFMyX3RvZ2dsZWJpdF9pLElDTEFTU19T Mm9wIiAxMTAwICAgMTEwc3Nzc3MgUFAwaWlpaWkgMDEwZGRkZGQiKQorREVGX0VOQzMyKFM0X2xz bGkgICAgICAgLElDTEFTU19TMm9wIiAxMTAwICAgMTEwc3Nzc3MgUFBpaWlpaWkgMDExZGRkZGQi KQorCitERUZfRU5DMzIoUzRfY2xiYWRkaSAgICAsSUNMQVNTX1Myb3AiIDExMDAgICAwMDFzc3Nz cyBQUGlpaWlpaSAwMDBkZGRkZCIpCisKKworCisvKiBGYWxzZSByZWFkICN1NiAqLworU0gyX1JS X0VOQyhTMl9jbGIsICAgICAgICAgICAgICAgICAgICIxMTAwIiwiMDAwIiwiLSIsIjEgMDAiLCJk ZGRkZCIpCitTSDJfUlJfRU5DKFMyX2NsMCwgICAgICAgICAgICAgICAgICAgIjExMDAiLCIwMDAi LCItIiwiMSAwMSIsImRkZGRkIikKK1NIMl9SUl9FTkMoUzJfY2wxLCAgICAgICAgICAgICAgICAg ICAiMTEwMCIsIjAwMCIsIi0iLCIxIDEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhTMl9jbGJub3Jt LCAgICAgICAgICAgICAgICIxMTAwIiwiMDAwIiwiLSIsIjEgMTEiLCJkZGRkZCIpCitTSDJfUlJf RU5DKFMyX2N0MCwgICAgICAgICAgICAgICAgICAgIjExMDAiLCIwMTAiLCItIiwiMSAwMCIsImRk ZGRkIikKK1NIMl9SUl9FTkMoUzJfY3QxLCAgICAgICAgICAgICAgICAgICAiMTEwMCIsIjAxMCIs Ii0iLCIxIDAxIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhTMl9icmV2LCAgICAgICAgICAgICAgICAg ICIxMTAwIiwiMDEwIiwiLSIsIjEgMTAiLCJkZGRkZCIpCitTSDJfUlJfRU5DKFMyX3ZzcGxhdHJi LCAgICAgICAgICAgICAgIjExMDAiLCIwMTAiLCItIiwiMSAxMSIsImRkZGRkIikKK1NIMl9SUl9F TkMoQTJfYWJzLCAgICAgICAgICAgICAgICAgICAiMTEwMCIsIjEwMCIsIi0iLCIxIDAwIiwiZGRk ZGQiKQorU0gyX1JSX0VOQyhBMl9hYnNzYXQsICAgICAgICAgICAgICAgICIxMTAwIiwiMTAwIiwi LSIsIjEgMDEiLCJkZGRkZCIpCitTSDJfUlJfRU5DKEEyX25lZ3NhdCwgICAgICAgICAgICAgICAg IjExMDAiLCIxMDAiLCItIiwiMSAxMCIsImRkZGRkIikKK1NIMl9SUl9FTkMoQTJfc3dpeiwgICAg ICAgICAgICAgICAgICAiMTEwMCIsIjEwMCIsIi0iLCIxIDExIiwiZGRkZGQiKQorU0gyX1JSX0VO QyhBMl9zYXRoLCAgICAgICAgICAgICAgICAgICIxMTAwIiwiMTEwIiwiLSIsIjEgMDAiLCJkZGRk ZCIpCitTSDJfUlJfRU5DKEEyX3NhdHVoLCAgICAgICAgICAgICAgICAgIjExMDAiLCIxMTAiLCIt IiwiMSAwMSIsImRkZGRkIikKK1NIMl9SUl9FTkMoQTJfc2F0dWIsICAgICAgICAgICAgICAgICAi MTEwMCIsIjExMCIsIi0iLCIxIDEwIiwiZGRkZGQiKQorU0gyX1JSX0VOQyhBMl9zYXRiLCAgICAg ICAgICAgICAgICAgICIxMTAwIiwiMTEwIiwiLSIsIjEgMTEiLCJkZGRkZCIpCisKKworREVGX0ZJ RUxEUk9XX0RFU0MzMihJQ0xBU1NfUzJvcCIgICAgIDExMDEgLS0tLS0tLS0gUFAtLS0tLS0gLS0t LS0tLS0iLCJbIzEzXSBSZD0oUnMsI3U2LCNVNikiKQorREVGX0VOQzMyKFMyX2V4dHJhY3R1LCAg SUNMQVNTX1Myb3AiIDExMDEgMElJc3Nzc3MgUFAwaWlpaWkgSUlJZGRkZGQiKQorREVGX0VOQzMy KFM0X2V4dHJhY3QsICAgSUNMQVNTX1Myb3AiIDExMDEgMUlJc3Nzc3MgUFAwaWlpaWkgSUlJZGRk ZGQiKQorREVGX0VOQzMyKFMyX21hc2ssICAgIElDTEFTU19TMm9wIiAgIDExMDEgMElJLS0tLS0g UFAxaWlpaWkgSUlJZGRkZGQiKQorCisKKworCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xB U1NfUzJvcCIgICAgIDExMTAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzE0XSBSeD0o UnMsI3U2KSIpCitJNVNISUZUVFlQRVMocl9uYWMsICAgICAgICIxMTEwIiwiMDAtIiwiMCIsInh4 eHh4IikKK0k1U0hJRlRUWVBFUyhyX2FjYywgICAgICAgIjExMTAiLCIwMC0iLCIxIiwieHh4eHgi KQorSTVTSElGVFRZUEVTKHJfYW5kLCAgICAgICAiMTExMCIsIjAxLSIsIjAiLCJ4eHh4eCIpCitJ NVNISUZUVFlQRVMocl9vciwgICAgICAgICIxMTEwIiwiMDEtIiwiMSIsInh4eHh4IikKK0k1U0hJ RlRUWVBFU19OT0FTUihyX3hhY2MsIjExMTAiLCIxMC0iLCIwIiwieHh4eHgiKQorCisKK0RFRl9G SUVMRFJPV19ERVNDMzIoSUNMQVNTX1Myb3AiICAgICAxMTExIC0tLS0tLS0tIFBQLS0tLS0tIC0t LS0tLS0tIiwiWyMxNV0gUnM9KFJzLCN1NiwjVTYpIikKK0RFRl9FTkMzMihTMl9pbnNlcnQsICAg IElDTEFTU19TMm9wIiAxMTExIDBJSXNzc3NzIFBQMGlpaWlpIElJSXh4eHh4IikKKworCisKKwor CisvKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFNfM19vcGVyYW5kICAgICAgICAgICAq LworLyoqKioqKioqKioqKioqKioqKioqKioqKiovCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJ Q0xBU1NfUzNvcCIgMDAwMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMF0gUmRkPShS c3MsUnR0LCN1MykiKQorU0hfUlJSX0VOQyhTMl92YWxpZ25pYiwgICAgICAgICAiMDAwMCIsIjAt LSIsIi0iLCJpaWkiLCJkZGRkZCIpCitTSF9SUlJfRU5DKFMyX3ZzcGxpY2VpYiwgICAgICAgICIw MDAwIiwiMS0tIiwiLSIsImlpaSIsImRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElD TEFTU19TM29wIiAwMDAxIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxXSBSZGQ9KFJz cyxSdHQpIikKK1NIX1JSUl9FTkMoUzJfZXh0cmFjdHVwX3JwLCAgICAgIjAwMDEiLCIwMC0iLCIt IiwiMDAtIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTMl9zaHVmZmViLCAgICAgICAgICAiMDAwMSIs IjAwLSIsIi0iLCIwMS0iLCJkZGRkZCIpCitTSF9SUlJfRU5DKFMyX3NodWZmb2IsICAgICAgICAg ICIwMDAxIiwiMDAtIiwiLSIsIjEwLSIsImRkZGRkIikKK1NIX1JSUl9FTkMoUzJfc2h1ZmZlaCwg ICAgICAgICAgIjAwMDEiLCIwMC0iLCItIiwiMTEtIiwiZGRkZGQiKQorCitTSF9SUlJfRU5DKFMy X3NodWZmb2gsICAgICAgICAgICIwMDAxIiwiMTAtIiwiLSIsIjAwMCIsImRkZGRkIikKK1NIX1JS Ul9FTkMoUzJfdnRydW5ld2gsICAgICAgICAgIjAwMDEiLCIxMC0iLCItIiwiMDEwIiwiZGRkZGQi KQorU0hfUlJSX0VOQyhTNl92dHJ1bmVoYl9wcHAsCQkiMDAwMSIsIjEwLSIsIi0iLCIwMTEiLCJk ZGRkZCIpCitTSF9SUlJfRU5DKFMyX3Z0cnVub3doLCAgICAgICAgICIwMDAxIiwiMTAtIiwiLSIs IjEwMCIsImRkZGRkIikKK1NIX1JSUl9FTkMoUzZfdnRydW5vaGJfcHBwLAkJIjAwMDEiLCIxMC0i LCItIiwiMTAxIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTMl9sZnNwLCAgICAgICAgICAgICAiMDAw MSIsIjEwLSIsIi0iLCIxMTAiLCJkZGRkZCIpCisKK1NIX1JSUl9FTkMoUzRfdnhhZGRzdWJ3LCAg ICAgICAgIjAwMDEiLCIwMS0iLCItIiwiMDAwIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhBNV92YWRk aHVicywgICAgICAgICAiMDAwMSIsIjAxLSIsIi0iLCIwMDEiLCJkZGRkZCIpCitTSF9SUlJfRU5D KFM0X3Z4c3ViYWRkdywgICAgICAgICIwMDAxIiwiMDEtIiwiLSIsIjAxMCIsImRkZGRkIikKK1NI X1JSUl9FTkMoUzRfdnhhZGRzdWJoLCAgICAgICAgIjAwMDEiLCIwMS0iLCItIiwiMTAwIiwiZGRk ZGQiKQorU0hfUlJSX0VOQyhTNF92eHN1YmFkZGgsICAgICAgICAiMDAwMSIsIjAxLSIsIi0iLCIx MTAiLCJkZGRkZCIpCisKK1NIX1JSUl9FTkMoUzRfdnhhZGRzdWJociwgICAgICAgIjAwMDEiLCIx MS0iLCItIiwiMDAtIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTNF92eHN1YmFkZGhyLCAgICAgICAi MDAwMSIsIjExLSIsIi0iLCIwMS0iLCJkZGRkZCIpCitTSF9SUlJfRU5DKFM0X2V4dHJhY3RwX3Jw LCAgICAgICIwMDAxIiwiMTEtIiwiLSIsIjEwLSIsImRkZGRkIikKKworCitERUZfRklFTERST1df REVTQzMyKElDTEFTU19TM29wIiAwMDEwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMy XSBSZGQ9KFJzcyxSdHQsUHUpIikKK1NIX1JSUl9FTkMoUzJfdmFsaWducmIsICAgICAgICAgIjAw MTAiLCIwLS0iLCItIiwiLXV1IiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTMl92c3BsaWNlcmIsICAg ICAgICAiMDAxMCIsIjEwMCIsIi0iLCItdXUiLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RF U0MzMihJQ0xBU1NfUzNvcCIgMDAxMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjM10g UmRkPShSc3MsUnQpIikKK1JTSElGVFRZUEVTKHZ3LCAgICAgICAgICAgICAgICAgIjAwMTEiLCIw MC0iLCItIiwiLSIsImRkZGRkIikKK1JTSElGVFRZUEVTKHZoLCAgICAgICAgICAgICAgICAgIjAw MTEiLCIwMS0iLCItIiwiLSIsImRkZGRkIikKK1JTSElGVFRZUEVTKHAsICAgICAgICAgICAgICAg ICAgIjAwMTEiLCIxMC0iLCItIiwiLSIsImRkZGRkIikKK1NIX1JSUl9FTkMoUzJfdmNyb3RhdGUs ICAgICAgICAgIjAwMTEiLCIxMS0iLCItIiwiMDAtIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTMl92 Y25lZ2gsICAgICAgICAgICAiMDAxMSIsIjExLSIsIi0iLCIwMS0iLCJkZGRkZCIpCitTSF9SUlJf RU5DKFM0X3ZyY3JvdGF0ZSwgICAgICAgICIwMDExIiwiMTEtIiwiaSIsIjExaSIsImRkZGRkIikK KworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19TM29wIiAwMTAwIC0tLS0tLS0tIFBQLS0t LS0tIC0tLS0tLS0tIiwiWyM0XSBSZD0oUnMsUnQsI3UzKSIpCitERUZfRU5DMzIoUzJfYWRkYXNs X3JycmksIElDTEFTU19TM29wIiAwMTAwICAgMDAwIHNzc3NzIFBQMHR0dHR0IGlpaWRkZGRkIikK KworCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Mzb3AiIDAxMDEgLS0tLS0tLS0gUFAt LS0tLS0gLS0tLS0tLS0iLCJbIzVdIFJkPShSc3MsUnQpIikKK1NIX1JSUl9FTkMoUzJfYXNyX3Jf c3Z3X3RydW4sICAgIjAxMDEiLCItLS0iLCItIiwiMDEwIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhN NF9jbXB5aV93aCwgICAgICAgICAiMDEwMSIsIi0tLSIsIi0iLCIxMDAiLCJkZGRkZCIpCitTSF9S UlJfRU5DKE00X2NtcHlyX3doLCAgICAgICAgICIwMTAxIiwiLS0tIiwiLSIsIjExMCIsImRkZGRk IikKK1NIX1JSUl9FTkMoTTRfY21weWlfd2hjLCAgICAgICAgIjAxMDEiLCItLS0iLCItIiwiMTAx IiwiZGRkZGQiKQorU0hfUlJSX0VOQyhNNF9jbXB5cl93aGMsICAgICAgICAiMDEwMSIsIi0tLSIs Ii0iLCIxMTEiLCJkZGRkZCIpCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Mzb3AiIDAx MTAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzZdIFJkPShScyxSdCkiKQorU0hfUlJS X0VOQyhTMl9hc3Jfcl9yX3NhdCwgICAgICAiMDExMCIsIjAwLSIsIi0iLCIwMC0iLCJkZGRkZCIp IFwKK1NIX1JSUl9FTkMoUzJfYXNsX3Jfcl9zYXQsICAgICAgIjAxMTAiLCIwMC0iLCItIiwiMTAt IiwiZGRkZGQiKQorCitSU0hJRlRUWVBFUyhyLCAgICAgICAgICAgICAgICAgICIwMTEwIiwiMDEt IiwiLSIsIi0iLCJkZGRkZCIpCisKK1NIX1JSUl9FTkMoUzJfc2V0Yml0X3IsICAgICAgICAgIjAx MTAiLCIxMC0iLCItIiwiMDAtIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhTMl9jbHJiaXRfciwgICAg ICAgICAiMDExMCIsIjEwLSIsIi0iLCIwMS0iLCJkZGRkZCIpCitTSF9SUlJfRU5DKFMyX3RvZ2ds ZWJpdF9yLCAgICAgICIwMTEwIiwiMTAtIiwiLSIsIjEwLSIsImRkZGRkIikKK1NIX1JSUmlFTkMo UzRfbHNsaSwgICAgICAgICAgICAgIjAxMTAiLCIxMC0iLCItIiwiMTFpIiwiZGRkZGQiKQorCitT SF9SUlJfRU5DKEE0X2Nyb3VuZF9yciwgICAgICAgICIwMTEwIiwiMTEtIiwiLSIsIjAwLSIsImRk ZGRkIikKK1NIX1JSUl9FTkMoQTdfY3JvdW5kZF9yciwgICAgICAgIjAxMTAiLCIxMS0iLCItIiwi MDEtIiwiZGRkZGQiKQorU0hfUlJSX0VOQyhBNF9yb3VuZF9yciwgICAgICAgICAiMDExMCIsIjEx LSIsIi0iLCIxMC0iLCJkZGRkZCIpCitTSF9SUlJfRU5DKEE0X3JvdW5kX3JyX3NhdCwgICAgICIw MTEwIiwiMTEtIiwiLSIsIjExLSIsImRkZGRkIikKKworCisKKworREVGX0ZJRUxEUk9XX0RFU0Mz MihJQ0xBU1NfUzNvcCIgMDExMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjN10gUGQ9 KFJzLFJ0KSIpCitTSF9SUlJfRU5DKFMyX3RzdGJpdF9yLCAgICAgICAgICIwMTExIiwiMDAwIiwi LSIsIi0tLSIsIi0tLWRkIikKK1NIX1JSUl9FTkMoQzJfYml0c3NldCwgICAgICAgICAgIjAxMTEi LCIwMTAiLCItIiwiLS0tIiwiLS0tZGQiKQorU0hfUlJSX0VOQyhDMl9iaXRzY2xyLCAgICAgICAg ICAiMDExMSIsIjEwMCIsIi0iLCItLS0iLCItLS1kZCIpCitTSF9SUlJfRU5DKEE0X2NtcGhlcSwg ICAgICAgICAgICIwMTExIiwiMTEwIiwiLSIsIjAxMSIsIi0tLWRkIikKK1NIX1JSUl9FTkMoQTRf Y21waGd0LCAgICAgICAgICAgIjAxMTEiLCIxMTAiLCItIiwiMTAwIiwiLS0tZGQiKQorU0hfUlJS X0VOQyhBNF9jbXBoZ3R1LCAgICAgICAgICAiMDExMSIsIjExMCIsIi0iLCIxMDEiLCItLS1kZCIp CitTSF9SUlJfRU5DKEE0X2NtcGJlcSwgICAgICAgICAgICIwMTExIiwiMTEwIiwiLSIsIjExMCIs Ii0tLWRkIikKK1NIX1JSUl9FTkMoQTRfY21wYmd0dSwgICAgICAgICAgIjAxMTEiLCIxMTAiLCIt IiwiMTExIiwiLS0tZGQiKQorU0hfUlJSX0VOQyhBNF9jbXBiZ3QsICAgICAgICAgICAiMDExMSIs IjExMCIsIi0iLCIwMTAiLCItLS1kZCIpCitTSF9SUlJfRU5DKFM0X250c3RiaXRfciwgICAgICAg ICIwMTExIiwiMDAxIiwiLSIsIi0tLSIsIi0tLWRkIikKK1NIX1JSUl9FTkMoQzRfbmJpdHNzZXQs ICAgICAgICAgIjAxMTEiLCIwMTEiLCItIiwiLS0tIiwiLS0tZGQiKQorU0hfUlJSX0VOQyhDNF9u Yml0c2NsciwgICAgICAgICAiMDExMSIsIjEwMSIsIi0iLCItLS0iLCItLS1kZCIpCisKK1NIX1JS Ul9FTkMoRjJfc2ZjbXBnZSwgICAgICAgICAgIjAxMTEiLCIxMTEiLCItIiwiMDAwIiwiLS0tZGQi KQorU0hfUlJSX0VOQyhGMl9zZmNtcHVvLCAgICAgICAgICAiMDExMSIsIjExMSIsIi0iLCIwMDEi LCItLS1kZCIpCitTSF9SUlJfRU5DKEYyX3NmY21wZXEsICAgICAgICAgICIwMTExIiwiMTExIiwi LSIsIjAxMSIsIi0tLWRkIikKK1NIX1JSUl9FTkMoRjJfc2ZjbXBndCwgICAgICAgICAgIjAxMTEi LCIxMTEiLCItIiwiMTAwIiwiLS0tZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNT X1Mzb3AiIDEwMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzhdIFJ4PShScyxSdHQp IikKK1NIX1JSUl9FTkMoUzJfaW5zZXJ0X3JwLCAgICAgICAgIjEwMDAiLCItLS0iLCItIiwiLS0t IiwieHh4eHgiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Mzb3AiIDEwMDEgLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzldIFJkPShScyxSdHQpIikKK1NIX1JSUl9FTkMo UzJfZXh0cmFjdHVfcnAsICAgICAgIjEwMDEiLCIwMC0iLCItIiwiMDAtIiwiZGRkZGQiKQorU0hf UlJSX0VOQyhTNF9leHRyYWN0X3JwLCAgICAgICAiMTAwMSIsIjAwLSIsIi0iLCIwMS0iLCJkZGRk ZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzNvcCIgMTAxMCAtLS0tLS0tLSBQ UC0tLS0tLSAtLS0tLS0tLSIsIlsjMTBdIFJ4eD0oUnNzLFJ0dCkiKQorU0hfUlJSX0VOQyhTMl9p bnNlcnRwX3JwLCAgICAgICAiMTAxMCIsIjAtLSIsIjAiLCItLS0iLCJ4eHh4eCIpCitTSF9SUlJf RU5DKE00X3hvcl94YWNjLCAgICAgICAgICIxMDEwIiwiMTAtIiwiMCIsIjAwMCIsInh4eHh4IikK KworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfUzNvcCIgMTAxMSAtLS0tLS0tLSBQUC0tLS0t LSAtLS0tLS0tLSIsIlsjMTFdIFJ4eD0oUnNzLFJ0KSIpCitSU0hJRlRUWVBFUyhwX29yLCAgICAg ICAgICAgICAgICIxMDExIiwiMDAwIiwiLSIsIi0iLCJ4eHh4eCIpCitSU0hJRlRUWVBFUyhwX2Fu ZCwgICAgICAgICAgICAgICIxMDExIiwiMDEwIiwiLSIsIi0iLCJ4eHh4eCIpCitSU0hJRlRUWVBF UyhwX25hYywgICAgICAgICAgICAgICIxMDExIiwiMTAwIiwiLSIsIi0iLCJ4eHh4eCIpCitSU0hJ RlRUWVBFUyhwX2FjYywgICAgICAgICAgICAgICIxMDExIiwiMTEwIiwiLSIsIi0iLCJ4eHh4eCIp CitSU0hJRlRUWVBFUyhwX3hvciwgICAgICAgICAgICAgICIxMDExIiwiMDExIiwiLSIsIi0iLCJ4 eHh4eCIpCisKK1NIX1JSUl9FTkNYKEE0X3ZybWF4aCwJCSIxMDExIiwiMDAxIiwiMCIsIjAwMSIs InV1dXV1IikKK1NIX1JSUl9FTkNYKEE0X3ZybWF4dWgsCQkiMTAxMSIsIjAwMSIsIjEiLCIwMDEi LCJ1dXV1dSIpCitTSF9SUlJfRU5DWChBNF92cm1heHcsCQkiMTAxMSIsIjAwMSIsIjAiLCIwMTAi LCJ1dXV1dSIpCitTSF9SUlJfRU5DWChBNF92cm1heHV3LAkJIjEwMTEiLCIwMDEiLCIxIiwiMDEw IiwidXV1dXUiKQorCitTSF9SUlJfRU5DWChBNF92cm1pbmgsCQkiMTAxMSIsIjAwMSIsIjAiLCIx MDEiLCJ1dXV1dSIpCitTSF9SUlJfRU5DWChBNF92cm1pbnVoLAkJIjEwMTEiLCIwMDEiLCIxIiwi MTAxIiwidXV1dXUiKQorU0hfUlJSX0VOQ1goQTRfdnJtaW53LAkJIjEwMTEiLCIwMDEiLCIwIiwi MTEwIiwidXV1dXUiKQorU0hfUlJSX0VOQ1goQTRfdnJtaW51dywJCSIxMDExIiwiMDAxIiwiMSIs IjExMCIsInV1dXV1IikKKworU0hfUlJSX0VOQyhTMl92cmNuZWdoLAkJIjEwMTEiLCIwMDEiLCIx IiwiMTExIiwieHh4eHgiKQorCitTSF9SUlJfRU5DKFM0X3ZyY3JvdGF0ZV9hY2MsCSIxMDExIiwi MTAxIiwiaSIsIi0taSIsInh4eHh4IikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19T M29wIiAxMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMxMl0gUng9KFJzLFJ0KSIp CitSU0hJRlRUWVBFUyhyX29yLCAgICAgICAgICAgICAgICIxMTAwIiwiMDAtIiwiLSIsIi0iLCJ4 eHh4eCIpCitSU0hJRlRUWVBFUyhyX2FuZCwgICAgICAgICAgICAgICIxMTAwIiwiMDEtIiwiLSIs Ii0iLCJ4eHh4eCIpCitSU0hJRlRUWVBFUyhyX25hYywgICAgICAgICAgICAgICIxMTAwIiwiMTAt IiwiLSIsIi0iLCJ4eHh4eCIpCitSU0hJRlRUWVBFUyhyX2FjYywgICAgICAgICAgICAgICIxMTAw IiwiMTEtIiwiLSIsIi0iLCJ4eHh4eCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1Nf UzNvcCIgMTEwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMTNdIFJlc2VydmVkIikK K0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX1Mzb3AiIDExMTAgLS0tLS0tLS0gUFAtLS0tLS0g LS0tLS0tLS0iLCJbIzE0XSBSZXNlcnZlZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xB U1NfUzNvcCIgMTExMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMTRdIFVzZXIgSW5z dHJ1Y3Rpb24iKQorCisKKworCisKKworCisKKworCisKKworCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgQUxVNjQgICAgICAgICAg ICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK0RF Rl9DTEFTUzMyKElDTEFTU19BTFU2NCIgLS0tLSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIs QUxVNjQpCitERUZfRklFTEQzMihJQ0xBU1NfQUxVNjQiICEhISEgLS0tLS0tLS0gUFAtLS0tLS0g LS0tLS0tLS0iLEFMVTY0X1JlZ1R5cGUsIlJlZ2lzdGVyIFR5cGUiKQorREVGX0ZJRUxEMzIoSUNM QVNTX0FMVTY0IiAwLS0tICEhIS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIixBX01hak9wLCJNYWpv ciBPcGNvZGUiKQorREVGX0ZJRUxEMzIoSUNMQVNTX0FMVTY0IiAwLS0tIC0tLS0tLS0tIFBQLS0t LS0tICEhIS0tLS0tIixBX01pbk9wLCJNaW5vciBPcGNvZGUiKQorREVGX0ZJRUxEMzIoSUNMQVNT X0FMVTY0IiAxMS0tIC0tLS0tLS0tIFBQLS0tLS0tIC0tLSEhISEhIixBX01hak9wLCJNYWpvciBP cGNvZGUiKQorCisKKworI2RlZmluZSBBTFU2NF9SUlJfRU5DKFRBRyxNQUo0LE1JTjMsU01PRDEs Vk1JTjMsRFNUQ0hBUlMpXAorREVGX0VOQzMyKFRBRywgSUNMQVNTX0FMVTY0IiAiTUFKNCIgICJN SU4zInNzc3NzICBQUCJTTU9EMSJ0dHR0dCAiVk1JTjMgRFNUQ0hBUlMpCisKKyNkZWZpbmUgTEVH QUNZX0FMVTY0X1JSUl9FTkMoVEFHLE1BSjQsTUlOMyxTTU9EMSxWTUlOMyxEU1RDSEFSUylcCitM RUdBQ1lfREVGX0VOQzMyKFRBRywgSUNMQVNTX0FMVTY0IiAiTUFKNCIgICJNSU4zInNzc3NzICBQ UCJTTU9EMSJ0dHR0dCAiVk1JTjMgRFNUQ0hBUlMpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJ Q0xBU1NfQUxVNjQiIDAwMDAgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzBdIFJkPShS c3MsUnR0KSIpCitBTFU2NF9SUlJfRU5DKFMyX3Bhcml0eXAsICAgICAgICAiMDAwMCIsIi0tLSIs Ii0iLCItLS0iLCJkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVNjQi IDAwMDEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzFdIFJkZD0oUHUsUnNzLFJ0dCki KQorQUxVNjRfUlJSX0VOQyhDMl92bXV4LCAgICAgICAgICAgIjAwMDEiLCItLS0iLCItIiwiLXV1 IiwiZGRkZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTY0IiAwMDEwIC0t LS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMyXSBQZD0oUnNzLFJ0dCkiKQorQUxVNjRfUlJS X0VOQyhBMl92Y21wd2VxLCAgICAgICAgIjAwMTAiLCIwLS0iLCIwIiwiMDAwIiwiLS0tZGQiKQor QUxVNjRfUlJSX0VOQyhBMl92Y21wd2d0LCAgICAgICAgIjAwMTAiLCIwLS0iLCIwIiwiMDAxIiwi LS0tZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92Y21wd2d0dSwgICAgICAgIjAwMTAiLCIwLS0iLCIw IiwiMDEwIiwiLS0tZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92Y21waGVxLCAgICAgICAgIjAwMTAi LCIwLS0iLCIwIiwiMDExIiwiLS0tZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92Y21waGd0LCAgICAg ICAgIjAwMTAiLCIwLS0iLCIwIiwiMTAwIiwiLS0tZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92Y21w aGd0dSwgICAgICAgIjAwMTAiLCIwLS0iLCIwIiwiMTAxIiwiLS0tZGQiKQorQUxVNjRfUlJSX0VO QyhBMl92Y21wYmVxLCAgICAgICAgIjAwMTAiLCIwLS0iLCIwIiwiMTEwIiwiLS0tZGQiKQorQUxV NjRfUlJSX0VOQyhBMl92Y21wYmd0dSwgICAgICAgIjAwMTAiLCIwLS0iLCIwIiwiMTExIiwiLS0t ZGQiKQorCitBTFU2NF9SUlJfRU5DKEE0X3ZjbXBiZXFfYW55LCAgICAiMDAxMCIsIjAtLSIsIjEi LCIwMDAiLCItLS1kZCIpCitBTFU2NF9SUlJfRU5DKEE2X3ZjbXBiZXFfbm90YW55LCAiMDAxMCIs IjAtLSIsIjEiLCIwMDEiLCItLS1kZCIpCitBTFU2NF9SUlJfRU5DKEE0X3ZjbXBiZ3QsICAgICAg ICAiMDAxMCIsIjAtLSIsIjEiLCIwMTAiLCItLS1kZCIpCitBTFU2NF9SUlJfRU5DKEE0X3RsYm1h dGNoLCAgICAgICAiMDAxMCIsIjAtLSIsIjEiLCIwMTEiLCItLS1kZCIpCitBTFU2NF9SUlJfRU5D KEE0X2JvdW5kc2NoZWNrX2xvLCAiMDAxMCIsIjAtLSIsIjEiLCIxMDAiLCItLS1kZCIpCitBTFU2 NF9SUlJfRU5DKEE0X2JvdW5kc2NoZWNrX2hpLCAiMDAxMCIsIjAtLSIsIjEiLCIxMDEiLCItLS1k ZCIpCisKK0FMVTY0X1JSUl9FTkMoQzJfY21wZXFwLCAgICAgICAgICIwMDEwIiwiMTAwIiwiLSIs IjAwMCIsIi0tLWRkIikKK0FMVTY0X1JSUl9FTkMoQzJfY21wZ3RwLCAgICAgICAgICIwMDEwIiwi MTAwIiwiLSIsIjAxMCIsIi0tLWRkIikKK0FMVTY0X1JSUl9FTkMoQzJfY21wZ3R1cCwgICAgICAg ICIwMDEwIiwiMTAwIiwiLSIsIjEwMCIsIi0tLWRkIikKKworQUxVNjRfUlJSX0VOQyhGMl9kZmNt cGVxLCAgICAgICAgIjAwMTAiLCIxMTEiLCItIiwiMDAwIiwiLS0tZGQiKQorQUxVNjRfUlJSX0VO QyhGMl9kZmNtcGd0LCAgICAgICAgIjAwMTAiLCIxMTEiLCItIiwiMDAxIiwiLS0tZGQiKQorQUxV NjRfUlJSX0VOQyhGMl9kZmNtcGdlLCAgICAgICAgIjAwMTAiLCIxMTEiLCItIiwiMDEwIiwiLS0t ZGQiKQorQUxVNjRfUlJSX0VOQyhGMl9kZmNtcHVvLCAgICAgICAgIjAwMTAiLCIxMTEiLCItIiwi MDExIiwiLS0tZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTY0IiAwMDEx IC0tLS0tLS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyMzXSBSZGQ9KFJzcyxSdHQpIikKK0FMVTY0 X1JSUl9FTkMoQTJfdmFkZHViLCAgICAgICAgICIwMDExIiwiMDAwIiwiLSIsIjAwMCIsImRkZGRk IikKK0FMVTY0X1JSUl9FTkMoQTJfdmFkZHVicywgICAgICAgICIwMDExIiwiMDAwIiwiLSIsIjAw MSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdmFkZGgsICAgICAgICAgICIwMDExIiwiMDAw IiwiLSIsIjAxMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdmFkZGhzLCAgICAgICAgICIw MDExIiwiMDAwIiwiLSIsIjAxMSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdmFkZHVocywg ICAgICAgICIwMDExIiwiMDAwIiwiLSIsIjEwMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJf dmFkZHcsICAgICAgICAgICIwMDExIiwiMDAwIiwiLSIsIjEwMSIsImRkZGRkIikKK0FMVTY0X1JS Ul9FTkMoQTJfdmFkZHdzLCAgICAgICAgICIwMDExIiwiMDAwIiwiLSIsIjExMCIsImRkZGRkIikK K0FMVTY0X1JSUl9FTkMoQTJfYWRkcCwgICAgICAgICAgICIwMDExIiwiMDAwIiwiLSIsIjExMSIs ImRkZGRkIikKKworQUxVNjRfUlJSX0VOQyhBMl92c3VidWIsICAgICAgICAgIjAwMTEiLCIwMDEi LCItIiwiMDAwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92c3VidWJzLCAgICAgICAgIjAw MTEiLCIwMDEiLCItIiwiMDAxIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92c3ViaCwgICAg ICAgICAgIjAwMTEiLCIwMDEiLCItIiwiMDEwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92 c3ViaHMsICAgICAgICAgIjAwMTEiLCIwMDEiLCItIiwiMDExIiwiZGRkZGQiKQorQUxVNjRfUlJS X0VOQyhBMl92c3VidWhzLCAgICAgICAgIjAwMTEiLCIwMDEiLCItIiwiMTAwIiwiZGRkZGQiKQor QUxVNjRfUlJSX0VOQyhBMl92c3VidywgICAgICAgICAgIjAwMTEiLCIwMDEiLCItIiwiMTAxIiwi ZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92c3Vid3MsICAgICAgICAgIjAwMTEiLCIwMDEiLCIt IiwiMTEwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9zdWJwLCAgICAgICAgICAgIjAwMTEi LCIwMDEiLCItIiwiMTExIiwiZGRkZGQiKQorCitBTFU2NF9SUlJfRU5DKEEyX3Zhdmd1YiwgICAg ICAgICAiMDAxMSIsIjAxMCIsIi0iLCIwMDAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3Zh dmd1YnIsICAgICAgICAiMDAxMSIsIjAxMCIsIi0iLCIwMDEiLCJkZGRkZCIpCitBTFU2NF9SUlJf RU5DKEEyX3ZhdmdoLCAgICAgICAgICAiMDAxMSIsIjAxMCIsIi0iLCIwMTAiLCJkZGRkZCIpCitB TFU2NF9SUlJfRU5DKEEyX3ZhdmdociwgICAgICAgICAiMDAxMSIsIjAxMCIsIi0iLCIwMTEiLCJk ZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZhdmdoY3IsICAgICAgICAiMDAxMSIsIjAxMCIsIi0i LCIxMDAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3Zhdmd1aCwgICAgICAgICAiMDAxMSIs IjAxMCIsIi0iLCIxMDEiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3Zhdmd1aHIsICAgICAg ICAiMDAxMSIsIjAxMCIsIi0iLCIxMS0iLCJkZGRkZCIpCisKK0FMVTY0X1JSUl9FTkMoQTJfdmF2 Z3csICAgICAgICAgICIwMDExIiwiMDExIiwiLSIsIjAwMCIsImRkZGRkIikKK0FMVTY0X1JSUl9F TkMoQTJfdmF2Z3dyLCAgICAgICAgICIwMDExIiwiMDExIiwiLSIsIjAwMSIsImRkZGRkIikKK0FM VTY0X1JSUl9FTkMoQTJfdmF2Z3djciwgICAgICAgICIwMDExIiwiMDExIiwiLSIsIjAxMCIsImRk ZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdmF2Z3V3LCAgICAgICAgICIwMDExIiwiMDExIiwiLSIs IjAxMSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdmF2Z3V3ciwgICAgICAgICIwMDExIiwi MDExIiwiLSIsIjEwMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfYWRkcHNhdCwgICAgICAg ICIwMDExIiwiMDExIiwiLSIsIjEwMSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfYWRkc3Bs LCAgICAgICAgICIwMDExIiwiMDExIiwiLSIsIjExMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMo QTJfYWRkc3BoLCAgICAgICAgICIwMDExIiwiMDExIiwiLSIsIjExMSIsImRkZGRkIikKKworQUxV NjRfUlJSX0VOQyhBMl92bmF2Z2gsICAgICAgICAgIjAwMTEiLCIxMDAiLCItIiwiMDAwIiwiZGRk ZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92bmF2Z2hyLCAgICAgICAgIjAwMTEiLCIxMDAiLCItIiwi MDAxIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92bmF2Z2hjciwgICAgICAgIjAwMTEiLCIx MDAiLCItIiwiMDEwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92bmF2Z3csICAgICAgICAg IjAwMTEiLCIxMDAiLCItIiwiMDExIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl92bmF2Z3dy LCAgICAgICAgIjAwMTEiLCIxMDAiLCItIiwiMTAtIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhB Ml92bmF2Z3djciwgICAgICAgIjAwMTEiLCIxMDAiLCItIiwiMTEtIiwiZGRkZGQiKQorCitBTFU2 NF9SUlJfRU5DKEEyX3ZtaW51YiwgICAgICAgICAiMDAxMSIsIjEwMSIsIi0iLCIwMDAiLCJkZGRk ZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZtaW5oLCAgICAgICAgICAiMDAxMSIsIjEwMSIsIi0iLCIw MDEiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZtaW51aCwgICAgICAgICAiMDAxMSIsIjEw MSIsIi0iLCIwMTAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZtaW53LCAgICAgICAgICAi MDAxMSIsIjEwMSIsIi0iLCIwMTEiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX3ZtaW51dywg ICAgICAgICAiMDAxMSIsIjEwMSIsIi0iLCIxMDAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEy X3ZtYXh1dywgICAgICAgICAiMDAxMSIsIjEwMSIsIi0iLCIxMDEiLCJkZGRkZCIpCS8qIERvaCEg V2UgZGlkIG5vdCBwdXQgbWF4IHdpdGggb3RoZXIgbWF4IGluc25zIGluIHYzICovCitBTFU2NF9S UlJfRU5DKEEyX21pbnAsICAgICAgICAgICAiMDAxMSIsIjEwMSIsIi0iLCIxMTAiLCJkZGRkZCIp CitBTFU2NF9SUlJfRU5DKEEyX21pbnVwLCAgICAgICAgICAiMDAxMSIsIjEwMSIsIi0iLCIxMTEi LCJkZGRkZCIpCisKK0FMVTY0X1JSUl9FTkMoQTJfdm1heHViLCAgICAgICAgICIwMDExIiwiMTEw IiwiLSIsIjAwMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdm1heGgsICAgICAgICAgICIw MDExIiwiMTEwIiwiLSIsIjAwMSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdm1heHVoLCAg ICAgICAgICIwMDExIiwiMTEwIiwiLSIsIjAxMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJf dm1heHcsICAgICAgICAgICIwMDExIiwiMTEwIiwiLSIsIjAxMSIsImRkZGRkIikKK0FMVTY0X1JS Ul9FTkMoQTJfbWF4cCwgICAgICAgICAgICIwMDExIiwiMTEwIiwiLSIsIjEwMCIsImRkZGRkIikK K0FMVTY0X1JSUl9FTkMoQTJfbWF4dXAsICAgICAgICAgICIwMDExIiwiMTEwIiwiLSIsIjEwMSIs ImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdm1heGIsICAgICAgICAgICIwMDExIiwiMTEwIiwi LSIsIjExMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfdm1pbmIsICAgICAgICAgICIwMDEx IiwiMTEwIiwiLSIsIjExMSIsImRkZGRkIikJLyogRUpQOiBCZWNhdXNlIHZtYXh1dyBvdXQgb2Yg cGxhY2UgKi8KKworQUxVNjRfUlJSX0VOQyhBMl9hbmRwLCAgICAgICAgICAgIjAwMTEiLCIxMTEi LCItIiwiMDAwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9vcnAsICAgICAgICAgICAgIjAw MTEiLCIxMTEiLCItIiwiMDEwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl94b3JwLCAgICAg ICAgICAgIjAwMTEiLCIxMTEiLCItIiwiMTAwIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBNF9h bmRucCwgICAgICAgICAgIjAwMTEiLCIxMTEiLCItIiwiMDAxIiwiZGRkZGQiKQorQUxVNjRfUlJS X0VOQyhBNF9vcm5wLCAgICAgICAgICAgIjAwMTEiLCIxMTEiLCItIiwiMDExIiwiZGRkZGQiKQor CitBTFU2NF9SUlJfRU5DKEE0X21vZHdyYXB1LCAgICAgICAiMDAxMSIsIjExMSIsIi0iLCIxMTEi LCJkZGRkZCIpCisKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19BTFU2NCIgMDEwMCAt LS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjNF0gUmRkPShScyxSdCkiKQorTEVHQUNZX0FM VTY0X1JSUl9FTkMoUzJfcGFja2hsLCAgIjAxMDAiLCItLTAiLCItIiwiLS0tIiwiZGRkZGQiKQor QUxVNjRfUlJSX0VOQyhBNF9iaXRzcGxpdCwgICAgICAgIjAxMDAiLCItLTEiLCItIiwiLS0tIiwi ZGRkZGQiKQorCisKK0RFRl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTY0IiAwMTAxIC0tLS0t LS0tIFBQLS0tLS0tIC0tLS0tLS0tIiwiWyM1XSBSZD0oUnMsUnQpIikKK0FMVTY0X1JSUl9FTkMo QTJfYWRkaF9sMTZfbGwsICAgICIwMTAxIiwiMDAwIiwiLSIsIjAwLSIsImRkZGRkIikKK0FMVTY0 X1JSUl9FTkMoQTJfYWRkaF9sMTZfaGwsICAgICIwMTAxIiwiMDAwIiwiLSIsIjAxLSIsImRkZGRk IikKK0FMVTY0X1JSUl9FTkMoQTJfYWRkaF9sMTZfc2F0X2xsLCIwMTAxIiwiMDAwIiwiLSIsIjEw LSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfYWRkaF9sMTZfc2F0X2hsLCIwMTAxIiwiMDAw IiwiLSIsIjExLSIsImRkZGRkIikKKworQUxVNjRfUlJSX0VOQyhBMl9zdWJoX2wxNl9sbCwgICAg IjAxMDEiLCIwMDEiLCItIiwiMDAtIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhBMl9zdWJoX2wx Nl9obCwgICAgIjAxMDEiLCIwMDEiLCItIiwiMDEtIiwiZGRkZGQiKQorQUxVNjRfUlJSX0VOQyhB Ml9zdWJoX2wxNl9zYXRfbGwsIjAxMDEiLCIwMDEiLCItIiwiMTAtIiwiZGRkZGQiKQorQUxVNjRf UlJSX0VOQyhBMl9zdWJoX2wxNl9zYXRfaGwsIjAxMDEiLCIwMDEiLCItIiwiMTEtIiwiZGRkZGQi KQorCitBTFU2NF9SUlJfRU5DKEEyX2FkZGhfaDE2X2xsLCAgICAiMDEwMSIsIjAxMCIsIi0iLCIw MDAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX2FkZGhfaDE2X2xoLCAgICAiMDEwMSIsIjAx MCIsIi0iLCIwMDEiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX2FkZGhfaDE2X2hsLCAgICAi MDEwMSIsIjAxMCIsIi0iLCIwMTAiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX2FkZGhfaDE2 X2hoLCAgICAiMDEwMSIsIjAxMCIsIi0iLCIwMTEiLCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEy X2FkZGhfaDE2X3NhdF9sbCwiMDEwMSIsIjAxMCIsIi0iLCIxMDAiLCJkZGRkZCIpCitBTFU2NF9S UlJfRU5DKEEyX2FkZGhfaDE2X3NhdF9saCwiMDEwMSIsIjAxMCIsIi0iLCIxMDEiLCJkZGRkZCIp CitBTFU2NF9SUlJfRU5DKEEyX2FkZGhfaDE2X3NhdF9obCwiMDEwMSIsIjAxMCIsIi0iLCIxMTAi LCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX2FkZGhfaDE2X3NhdF9oaCwiMDEwMSIsIjAxMCIs Ii0iLCIxMTEiLCJkZGRkZCIpCisKK0FMVTY0X1JSUl9FTkMoQTJfc3ViaF9oMTZfbGwsICAgICIw MTAxIiwiMDExIiwiLSIsIjAwMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfc3ViaF9oMTZf bGgsICAgICIwMTAxIiwiMDExIiwiLSIsIjAwMSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJf c3ViaF9oMTZfaGwsICAgICIwMTAxIiwiMDExIiwiLSIsIjAxMCIsImRkZGRkIikKK0FMVTY0X1JS Ul9FTkMoQTJfc3ViaF9oMTZfaGgsICAgICIwMTAxIiwiMDExIiwiLSIsIjAxMSIsImRkZGRkIikK K0FMVTY0X1JSUl9FTkMoQTJfc3ViaF9oMTZfc2F0X2xsLCIwMTAxIiwiMDExIiwiLSIsIjEwMCIs ImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfc3ViaF9oMTZfc2F0X2xoLCIwMTAxIiwiMDExIiwi LSIsIjEwMSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfc3ViaF9oMTZfc2F0X2hsLCIwMTAx IiwiMDExIiwiLSIsIjExMCIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfc3ViaF9oMTZfc2F0 X2hoLCIwMTAxIiwiMDExIiwiLSIsIjExMSIsImRkZGRkIikKKworTEVHQUNZX0FMVTY0X1JSUl9F TkMoQTJfYWRkc2F0LCAgIjAxMDEiLCIxMDAiLCItIiwiMC0tIiwiZGRkZGQiKQorTEVHQUNZX0FM VTY0X1JSUl9FTkMoQTJfc3Vic2F0LCAgIjAxMDEiLCIxMDAiLCItIiwiMS0tIiwiZGRkZGQiKQor CitBTFU2NF9SUlJfRU5DKEEyX21pbiwgICAgICAgICAgICAiMDEwMSIsIjEwMSIsIi0iLCIwLS0i LCJkZGRkZCIpCitBTFU2NF9SUlJfRU5DKEEyX21pbnUsICAgICAgICAgICAiMDEwMSIsIjEwMSIs Ii0iLCIxLS0iLCJkZGRkZCIpCisKK0FMVTY0X1JSUl9FTkMoQTJfbWF4LCAgICAgICAgICAgICIw MTAxIiwiMTEwIiwiLSIsIjAtLSIsImRkZGRkIikKK0FMVTY0X1JSUl9FTkMoQTJfbWF4dSwgICAg ICAgICAgICIwMTAxIiwiMTEwIiwiLSIsIjEtLSIsImRkZGRkIikKKworQUxVNjRfUlJSX0VOQyhT NF9wYXJpdHksICAgICAgICAgIjAxMDEiLCIxMTEiLCItIiwiLS0tIiwiZGRkZGQiKQorCisKK0RF Rl9GSUVMRFJPV19ERVNDMzIoSUNMQVNTX0FMVTY0IiAwMTEwIC0tLS0tLS0tIFBQLS0tLS0tIC0t LS0tLS0tIiwiWyM2XSBSZD0jdTEwICIpCitERUZfRU5DMzIoRjJfc2ZpbW1fcCwgICAgIElDTEFT U19BTFU2NCIgMDExMCAgIDAwaSAtLS0tLSBQUGlpaWlpaSBpaWlkZGRkZCIpCitERUZfRU5DMzIo RjJfc2ZpbW1fbiwgICAgIElDTEFTU19BTFU2NCIgMDExMCAgIDAxaSAtLS0tLSBQUGlpaWlpaSBp aWlkZGRkZCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVNjQiIDAxMTEgLS0t LS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzddIFJkPShScyxSdCwjdTYpIikKK0RFRl9FTkMz MihNNF9tcHlycl9hZGRpLCAgSUNMQVNTX0FMVTY0IiAwMTExICAgMGlpIHNzc3NzIFBQaXR0dHR0 IGlpaWRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19BTFU2NCIgMTAwMCAt LS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjOF0gUmQ9KFJzLCN1NiwjVTYpIikKK0RFRl9F TkMzMihNNF9tcHlyaV9hZGRpLCAgSUNMQVNTX0FMVTY0IiAxMDAwICAgSWlpIHNzc3NzIFBQaWRk ZGRkIGlpaUlJSUlJIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19BTFU2NCIgMTAw MSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjOV0gUmRkPSN1MTAgIikKK0RFRl9FTkMz MihGMl9kZmltbV9wLCAgICAgSUNMQVNTX0FMVTY0IiAxMDAxICAgMDBpIC0tLS0tIFBQaWlpaWlp IGlpaWRkZGRkIikKK0RFRl9FTkMzMihGMl9kZmltbV9uLCAgICAgSUNMQVNTX0FMVTY0IiAxMDAx ICAgMDFpIC0tLS0tIFBQaWlpaWlpIGlpaWRkZGRkIikKKworCitERUZfRklFTERST1dfREVTQzMy KElDTEFTU19BTFU2NCIgMTAxMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMTBdIFJ4 PShScyxSeCwjczEwKSIpCitERUZfRU5DMzIoUzRfb3JfYW5kaXgsICAgIElDTEFTU19BTFU2NCIg MTAxMCAgIDAxaSB4eHh4eCBQUGlpaWlpaSBpaWl1dXV1dSIpCitERUZfRU5DMzIoUzRfb3JfYW5k aSwgICAgIElDTEFTU19BTFU2NCIgMTAxMCAgIDAwaSBzc3NzcyBQUGlpaWlpaSBpaWl4eHh4eCIp CitERUZfRU5DMzIoUzRfb3Jfb3JpLCAgICAgIElDTEFTU19BTFU2NCIgMTAxMCAgIDEwaSBzc3Nz cyBQUGlpaWlpaSBpaWl4eHh4eCIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxV NjQiIDEwMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzExXSBSZD0oUnMsUmQsI3M2 KSIpCitERUZfRU5DMzIoUzRfYWRkYWRkaSwgICAgIElDTEFTU19BTFU2NCIgMTAxMSAgIDBpaSBz c3NzcyBQUGlkZGRkZCBpaWl1dXV1dSIpCitERUZfRU5DMzIoUzRfc3ViYWRkaSwgICAgIElDTEFT U19BTFU2NCIgMTAxMSAgIDFpaSBzc3NzcyBQUGlkZGRkZCBpaWl1dXV1dSIpCisKKworREVGX0ZJ RUxEUk9XX0RFU0MzMihJQ0xBU1NfQUxVNjQiICAgICAxMTAwIC0tLS0tLS0tIFBQLS0tLS0tIC0t LS0tLS0tIiwiWyMxMl0gUGQ9KFJzcywjczgpIikKK0RFRl9FTkMzMihBNF92Y21wYmVxaSwgICBJ Q0xBU1NfQUxVNjQiMTEwMCAwMDBzc3NzcyBQUC1paWlpaSBpaWkwMC1kZCIpCitERUZfRU5DMzIo QTRfdmNtcGJndGksICAgSUNMQVNTX0FMVTY0IjExMDAgMDAxc3Nzc3MgUFAtaWlpaWkgaWlpMDAt ZGQiKQorREVGX0VOQzMyKEE0X3ZjbXBiZ3R1aSwgIElDTEFTU19BTFU2NCIxMTAwIDAxMHNzc3Nz IFBQLTBpaWlpIGlpaTAwLWRkIikKK0RFRl9FTkMzMihBNF92Y21waGVxaSwgICBJQ0xBU1NfQUxV NjQiMTEwMCAwMDBzc3NzcyBQUC1paWlpaSBpaWkwMS1kZCIpCitERUZfRU5DMzIoQTRfdmNtcGhn dGksICAgSUNMQVNTX0FMVTY0IjExMDAgMDAxc3Nzc3MgUFAtaWlpaWkgaWlpMDEtZGQiKQorREVG X0VOQzMyKEE0X3ZjbXBoZ3R1aSwgIElDTEFTU19BTFU2NCIxMTAwIDAxMHNzc3NzIFBQLTBpaWlp IGlpaTAxLWRkIikKK0RFRl9FTkMzMihBNF92Y21wd2VxaSwgICBJQ0xBU1NfQUxVNjQiMTEwMCAw MDBzc3NzcyBQUC1paWlpaSBpaWkxMC1kZCIpCitERUZfRU5DMzIoQTRfdmNtcHdndGksICAgSUNM QVNTX0FMVTY0IjExMDAgMDAxc3Nzc3MgUFAtaWlpaWkgaWlpMTAtZGQiKQorREVGX0VOQzMyKEE0 X3ZjbXB3Z3R1aSwgIElDTEFTU19BTFU2NCIxMTAwIDAxMHNzc3NzIFBQLTBpaWlpIGlpaTEwLWRk IikKKworREVGX0VOQzMyKEYyX2RmY2xhc3MsICAgIElDTEFTU19BTFU2NCIxMTAwIDEwMHNzc3Nz IFBQLTAwMGlpIGlpaTEwLWRkIikKKworCitERUZfRklFTERST1dfREVTQzMyKElDTEFTU19BTFU2 NCIgMTEwMSAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsjMTNdIFBkPShScywjczgpIikK K0RFRl9FTkMzMihBNF9jbXBiZXFpLCAgICBJQ0xBU1NfQUxVNjQiMTEwMSAtMDBzc3NzcyBQUC1p aWlpaSBpaWkwMC1kZCIpCitERUZfRU5DMzIoQTRfY21wYmd0aSwgICAgSUNMQVNTX0FMVTY0IjEx MDEgLTAxc3Nzc3MgUFAtaWlpaWkgaWlpMDAtZGQiKQorREVGX0VOQzMyKEE0X2NtcGJndHVpLCAg IElDTEFTU19BTFU2NCIxMTAxIC0xMHNzc3NzIFBQLTBpaWlpIGlpaTAwLWRkIikKK0RFRl9FTkMz MihBNF9jbXBoZXFpLCAgICBJQ0xBU1NfQUxVNjQiMTEwMSAtMDBzc3NzcyBQUC1paWlpaSBpaWkw MS1kZCIpCitERUZfRU5DMzIoQTRfY21waGd0aSwgICAgSUNMQVNTX0FMVTY0IjExMDEgLTAxc3Nz c3MgUFAtaWlpaWkgaWlpMDEtZGQiKQorREVGX0VOQzMyKEE0X2NtcGhndHVpLCAgIElDTEFTU19B TFU2NCIxMTAxIC0xMHNzc3NzIFBQLTBpaWlpIGlpaTAxLWRkIikKKworCitERUZfRklFTERST1df REVTQzMyKElDTEFTU19BTFU2NCIgMTExMCAtLS0tLS0tLSBQUC0tLS0tLSAtLS0tLS0tLSIsIlsj MTRdIFJ4PSgjdTksb3AoUngsI3U1KSkiKQorCisjZGVmaW5lIE9QX09QSV9SSShUQUcsT1BCKVwK K0RFRl9FTkMzMihTNF9hbmRpXyMjVEFHIyNfcmksSUNMQVNTX0FMVTY0IiAxMTEwIGlpaXh4eHh4 IFBQaUlJSUlJIGlpaSJPUEIiaTAwLSIpXAorREVGX0VOQzMyKFM0X29yaV8jI1RBRyMjX3JpLCBJ Q0xBU1NfQUxVNjQiIDExMTAgaWlpeHh4eHggUFBpSUlJSUkgaWlpIk9QQiJpMDEtIilcCitERUZf RU5DMzIoUzRfYWRkaV8jI1RBRyMjX3JpLElDTEFTU19BTFU2NCIgMTExMCBpaWl4eHh4eCBQUGlJ SUlJSSBpaWkiT1BCImkxMC0iKVwKK0RFRl9FTkMzMihTNF9zdWJpXyMjVEFHIyNfcmksSUNMQVNT X0FMVTY0IiAxMTEwIGlpaXh4eHh4IFBQaUlJSUlJIGlpaSJPUEIiaTExLSIpCisKK09QX09QSV9S SShhc2wsIjAiKQorT1BfT1BJX1JJKGxzciwiMSIpCisKKworREVGX0ZJRUxEUk9XX0RFU0MzMihJ Q0xBU1NfQUxVNjQiIDExMTEgLS0tLS0tLS0gUFAtLS0tLS0gLS0tLS0tLS0iLCJbIzE1XSBSZD0o UnMsUnUsI3U2OjIpIikKK0RFRl9FTkMzMihNNF9tcHlyaV9hZGRyX3UyLCBJQ0xBU1NfQUxVNjQi IDExMTEgICAwaWkgc3Nzc3MgUFBpZGRkZGQgaWlpdXV1dXUiKQorREVGX0VOQzMyKE00X21weXJp X2FkZHIsICAgIElDTEFTU19BTFU2NCIgMTExMSAgIDFpaSBzc3NzcyBQUGlkZGRkZCBpaWl1dXV1 dSIpCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9lbmNvZGVfc3ViaW5zbi5k ZWYgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9lbmNvZGVfc3ViaW5zbi5kZWYKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWJiODExOQotLS0gL2Rldi9udWxsCisrKyBiL3Rh cmdldC9oZXhhZ29uL2ltcG9ydGVkL2VuY29kZV9zdWJpbnNuLmRlZgpAQCAtMCwwICsxLDE1MCBA QAorLyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIwIFF1YWxjb21tIElubm92YXRpb24gQ2Vu dGVyLCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBm cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAg aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBw dWJsaXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVy c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl CisgKiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3Lmdu dS5vcmcvbGljZW5zZXMvPi4KKyAqLworCisKKy8qIERFRl9FTkNfU1VCSU5TTihUQUcsIENMQVNT LCBFTkNTVFIpICovCisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKiovCisvKiBMZDEtdHlw ZSBzdWJpbnNucyAqLworLyoqKioqKioqKioqKioqKioqKioqKi8KK0RFRl9FTkNfU1VCSU5TTihT TDFfbG9hZHJpX2lvLCAgIFNVQklOU05fTDEsICIwaWlpaXNzc3NkZGRkIikKK0RFRl9FTkNfU1VC SU5TTihTTDFfbG9hZHJ1Yl9pbywgIFNVQklOU05fTDEsICIxaWlpaXNzc3NkZGRkIikKKworLyoq KioqKioqKioqKioqKioqKioqKi8KKy8qIFN0MS10eXBlIHN1Ymluc25zICovCisvKioqKioqKioq KioqKioqKioqKioqLworREVGX0VOQ19TVUJJTlNOKFNTMV9zdG9yZXdfaW8sICBTVUJJTlNOX1Mx LCAiMGlpIGlpc3Nzc3R0dHQiKQorREVGX0VOQ19TVUJJTlNOKFNTMV9zdG9yZWJfaW8sICBTVUJJ TlNOX1MxLCAiMWlpIGlpc3Nzc3R0dHQiKQorCisKKy8qKioqKioqKioqKioqKioqKioqKiovCisv KiBMZDItdHlwZSBzdWJpbnNucyAqLworLyoqKioqKioqKioqKioqKioqKioqKi8KK0RFRl9FTkNf U1VCSU5TTihTTDJfbG9hZHJoX2lvLCAgIFNVQklOU05fTDIsICIwMGkgaWlzc3NzZGRkZCIpCitE RUZfRU5DX1NVQklOU04oU0wyX2xvYWRydWhfaW8sICBTVUJJTlNOX0wyLCAiMDFpIGlpc3Nzc2Rk ZGQiKQorREVGX0VOQ19TVUJJTlNOKFNMMl9sb2FkcmJfaW8sICAgU1VCSU5TTl9MMiwgIjEwaSBp aXNzc3NkZGRkIikKK0RFRl9FTkNfU1VCSU5TTihTTDJfbG9hZHJpX3NwLCAgIFNVQklOU05fTDIs ICIxMTEgMGlpaWlpZGRkZCIpCitERUZfRU5DX1NVQklOU04oU0wyX2xvYWRyZF9zcCwgICBTVUJJ TlNOX0wyLCAiMTExIDEwaWlpaWlkZGQiKQorCitERUZfRU5DX1NVQklOU04oU0wyX2RlYWxsb2Nm cmFtZSxTVUJJTlNOX0wyLCAiMTExIDExMDAtLS0wLS0iKQorCitERUZfRU5DX1NVQklOU04oU0wy X3JldHVybiwgICAgICBTVUJJTlNOX0wyLCAiMTExIDExMDEtLS0wLS0iKQorREVGX0VOQ19TVUJJ TlNOKFNMMl9yZXR1cm5fdCwgICAgU1VCSU5TTl9MMiwgIjExMSAxMTAxLS0tMTAwIikKK0RFRl9F TkNfU1VCSU5TTihTTDJfcmV0dXJuX2YsICAgIFNVQklOU05fTDIsICIxMTEgMTEwMS0tLTEwMSIp CitERUZfRU5DX1NVQklOU04oU0wyX3JldHVybl90bmV3LCBTVUJJTlNOX0wyLCAiMTExIDExMDEt LS0xMTAiKQorREVGX0VOQ19TVUJJTlNOKFNMMl9yZXR1cm5fZm5ldywgU1VCSU5TTl9MMiwgIjEx MSAxMTAxLS0tMTExIikKKworREVGX0VOQ19TVUJJTlNOKFNMMl9qdW1wcjMxLCAgICAgU1VCSU5T Tl9MMiwgIjExMSAxMTExLS0tMC0tIikKK0RFRl9FTkNfU1VCSU5TTihTTDJfanVtcHIzMV90LCAg IFNVQklOU05fTDIsICIxMTEgMTExMS0tLTEwMCIpCitERUZfRU5DX1NVQklOU04oU0wyX2p1bXBy MzFfZiwgICBTVUJJTlNOX0wyLCAiMTExIDExMTEtLS0xMDEiKQorREVGX0VOQ19TVUJJTlNOKFNM Ml9qdW1wcjMxX3RuZXcsU1VCSU5TTl9MMiwgIjExMSAxMTExLS0tMTEwIikKK0RFRl9FTkNfU1VC SU5TTihTTDJfanVtcHIzMV9mbmV3LFNVQklOU05fTDIsICIxMTEgMTExMS0tLTExMSIpCisKKwor LyoqKioqKioqKioqKioqKioqKioqKi8KKy8qIFN0Mi10eXBlIHN1Ymluc25zICovCisvKioqKioq KioqKioqKioqKioqKioqLworREVGX0VOQ19TVUJJTlNOKFNTMl9zdG9yZWhfaW8sICAgU1VCSU5T Tl9TMiwgIjAwaSBpaXNzc3N0dHR0IikKK0RFRl9FTkNfU1VCSU5TTihTUzJfc3RvcmV3X3NwLCAg IFNVQklOU05fUzIsICIwMTAgMGlpaWlpdHR0dCIpCitERUZfRU5DX1NVQklOU04oU1MyX3N0b3Jl ZF9zcCwgICBTVUJJTlNOX1MyLCAiMDEwIDFpaWlpaWl0dHQiKQorCitERUZfRU5DX1NVQklOU04o U1MyX3N0b3Jld2kwLCAgICBTVUJJTlNOX1MyLCAiMTAwIDAwc3Nzc2lpaWkiKQorREVGX0VOQ19T VUJJTlNOKFNTMl9zdG9yZXdpMSwgICAgU1VCSU5TTl9TMiwgIjEwMCAwMXNzc3NpaWlpIikKK0RF Rl9FTkNfU1VCSU5TTihTUzJfc3RvcmViaTAsICAgIFNVQklOU05fUzIsICIxMDAgMTBzc3NzaWlp aSIpCitERUZfRU5DX1NVQklOU04oU1MyX3N0b3JlYmkxLCAgICBTVUJJTlNOX1MyLCAiMTAwIDEx c3Nzc2lpaWkiKQorCitERUZfRU5DX1NVQklOU04oU1MyX2FsbG9jZnJhbWUsICBTVUJJTlNOX1My LCAiMTExIDBpaWlpaS0tLS0iKQorCisKKworLyoqKioqKioqKioqKioqKioqKiovCisvKiBBLXR5 cGUgc3ViaW5zbnMgKi8KKy8qKioqKioqKioqKioqKioqKioqLworREVGX0VOQ19TVUJJTlNOKFNB MV9hZGRpLCAgICAgICBTVUJJTlNOX0EsICIwMGkgaWlpaWlpeHh4eCIpCitERUZfRU5DX1NVQklO U04oU0ExX3NldGksICAgICAgIFNVQklOU05fQSwgIjAxMCBpaWlpaWlkZGRkIikKK0RFRl9FTkNf U1VCSU5TTihTQTFfYWRkc3AsICAgICAgU1VCSU5TTl9BLCAiMDExIGlpaWlpaWRkZGQiKQorCitE RUZfRU5DX1NVQklOU04oU0ExX3RmciwgICAgICAgIFNVQklOU05fQSwgIjEwMCAwMHNzc3NkZGRk IikKK0RFRl9FTkNfU1VCSU5TTihTQTFfaW5jLCAgICAgICAgU1VCSU5TTl9BLCAiMTAwIDAxc3Nz c2RkZGQiKQorREVGX0VOQ19TVUJJTlNOKFNBMV9hbmQxLCAgICAgICBTVUJJTlNOX0EsICIxMDAg MTBzc3NzZGRkZCIpCitERUZfRU5DX1NVQklOU04oU0ExX2RlYywgICAgICAgIFNVQklOU05fQSwg IjEwMCAxMXNzc3NkZGRkIikKKworREVGX0VOQ19TVUJJTlNOKFNBMV9zeHRoLCAgICAgICBTVUJJ TlNOX0EsICIxMDEgMDBzc3NzZGRkZCIpCitERUZfRU5DX1NVQklOU04oU0ExX3N4dGIsICAgICAg IFNVQklOU05fQSwgIjEwMSAwMXNzc3NkZGRkIikKK0RFRl9FTkNfU1VCSU5TTihTQTFfenh0aCwg ICAgICAgU1VCSU5TTl9BLCAiMTAxIDEwc3Nzc2RkZGQiKQorREVGX0VOQ19TVUJJTlNOKFNBMV96 eHRiLCAgICAgICBTVUJJTlNOX0EsICIxMDEgMTFzc3NzZGRkZCIpCisKKworREVGX0VOQ19TVUJJ TlNOKFNBMV9hZGRyeCwgICAgICBTVUJJTlNOX0EsICIxMTAgMDBzc3NzeHh4eCIpCitERUZfRU5D X1NVQklOU04oU0ExX2NtcGVxaSwgICAgIFNVQklOU05fQSwgIjExMCAwMXNzc3MtLWlpIikKK0RF Rl9FTkNfU1VCSU5TTihTQTFfc2V0aW4xLCAgICAgU1VCSU5TTl9BLCAiMTEwIDEtLTAtLWRkZGQi KQorREVGX0VOQ19TVUJJTlNOKFNBMV9jbHJ0bmV3LCAgICBTVUJJTlNOX0EsICIxMTAgMS0tMTAw ZGRkZCIpCitERUZfRU5DX1NVQklOU04oU0ExX2NscmZuZXcsICAgIFNVQklOU05fQSwgIjExMCAx LS0xMDFkZGRkIikKK0RFRl9FTkNfU1VCSU5TTihTQTFfY2xydCwgICAgICAgU1VCSU5TTl9BLCAi MTEwIDEtLTExMGRkZGQiKQorREVGX0VOQ19TVUJJTlNOKFNBMV9jbHJmLCAgICAgICBTVUJJTlNO X0EsICIxMTAgMS0tMTExZGRkZCIpCisKKworREVGX0VOQ19TVUJJTlNOKFNBMV9jb21iaW5lMGks ICBTVUJJTlNOX0EsICIxMTEgLTAtaWkwMGRkZCIpCitERUZfRU5DX1NVQklOU04oU0ExX2NvbWJp bmUxaSwgIFNVQklOU05fQSwgIjExMSAtMC1paTAxZGRkIikKK0RFRl9FTkNfU1VCSU5TTihTQTFf Y29tYmluZTJpLCAgU1VCSU5TTl9BLCAiMTExIC0wLWlpMTBkZGQiKQorREVGX0VOQ19TVUJJTlNO KFNBMV9jb21iaW5lM2ksICBTVUJJTlNOX0EsICIxMTEgLTAtaWkxMWRkZCIpCitERUZfRU5DX1NV QklOU04oU0ExX2NvbWJpbmV6ciwgIFNVQklOU05fQSwgIjExMSAtMXNzc3MwZGRkIikKK0RFRl9F TkNfU1VCSU5TTihTQTFfY29tYmluZXJ6LCAgU1VCSU5TTl9BLCAiMTExIC0xc3NzczFkZGQiKQor CisKKworCisvKiBtYXliZSBSPWNtcGVxID8gKi8KKworCisvKiBBZGQgYSBncm91cCBvZiBOQ0o6 IGlmIChSLm5ldz09IzApIGp1bXA6aGludCAjcjkgKi8KKy8qIEFkZCBhIGdyb3VwIG9mIE5DSjog aWYgKFIubmV3IT0jMCkganVtcDpoaW50ICNyOSAqLworLyogTkNKIGdvZXMgd2l0aCBMRDEsIExE MiAqLworCisKKworCitERUZfRklFTEQzMigiLS0tISAhISEhICEhISEhISEhIEVFLS0tLS0tIC0t LS0tLS0tIixTVUJGSUVMRF9CX1NMT1QxLCJCOiBTbG90MSBJbnN0cnVjdGlvbiIpCitERUZfRklF TEQzMigiLS0tLSAtLS0tIC0tLS0tLS0tIEVFLSEhISEhICEhISEhISEhIixTVUJGSUVMRF9BX1NM T1QwLCJBOiBTbG90MCBJbnN0cnVjdGlvbiIpCisKKworLyogREVGX1BBQ0tFRDMyKFRBRywgQ0xB U1NBLCBDTEFTU0IsIEVOQ1NUUikgKi8KKworREVGX1BBQ0tFRDMyKFAyX1BBQ0tFRF9MMV9MMSwg U1VCSU5TTl9MMSwgU1VCSU5TTl9MMSwgIjAwMEIgQkJCQiBCQkJCIEJCQkIgRUUwQSBBQUFBIEFB QUEgQUFBQSIpCitERUZfUEFDS0VEMzIoUDJfUEFDS0VEX0wxX0wyLCBTVUJJTlNOX0wyLCBTVUJJ TlNOX0wxLCAiMDAwQiBCQkJCIEJCQkIgQkJCQiBFRTFBIEFBQUEgQUFBQSBBQUFBIikKK0RFRl9Q QUNLRUQzMihQMl9QQUNLRURfTDJfTDIsIFNVQklOU05fTDIsIFNVQklOU05fTDIsICIwMDFCIEJC QkIgQkJCQiBCQkJCIEVFMEEgQUFBQSBBQUFBIEFBQUEiKQorREVGX1BBQ0tFRDMyKFAyX1BBQ0tF RF9BX0EsICAgU1VCSU5TTl9BLCAgU1VCSU5TTl9BLCAgIjAwMUIgQkJCQiBCQkJCIEJCQkIgRUUx QSBBQUFBIEFBQUEgQUFBQSIpCisKK0RFRl9QQUNLRUQzMihQMl9QQUNLRURfTDFfQSwgIFNVQklO U05fTDEsIFNVQklOU05fQSwgICIwMTBCIEJCQkIgQkJCQiBCQkJCIEVFMEEgQUFBQSBBQUFBIEFB QUEiKQorREVGX1BBQ0tFRDMyKFAyX1BBQ0tFRF9MMl9BLCAgU1VCSU5TTl9MMiwgU1VCSU5TTl9B LCAgIjAxMEIgQkJCQiBCQkJCIEJCQkIgRUUxQSBBQUFBIEFBQUEgQUFBQSIpCitERUZfUEFDS0VE MzIoUDJfUEFDS0VEX1MxX0EsICBTVUJJTlNOX1MxLCBTVUJJTlNOX0EsICAiMDExQiBCQkJCIEJC QkIgQkJCQiBFRTBBIEFBQUEgQUFBQSBBQUFBIikKK0RFRl9QQUNLRUQzMihQMl9QQUNLRURfUzJf QSwgIFNVQklOU05fUzIsIFNVQklOU05fQSwgICIwMTFCIEJCQkIgQkJCQiBCQkJCIEVFMUEgQUFB QSBBQUFBIEFBQUEiKQorCitERUZfUEFDS0VEMzIoUDJfUEFDS0VEX1MxX0wxLCBTVUJJTlNOX1Mx LCBTVUJJTlNOX0wxLCAiMTAwQiBCQkJCIEJCQkIgQkJCQiBFRTBBIEFBQUEgQUFBQSBBQUFBIikK K0RFRl9QQUNLRUQzMihQMl9QQUNLRURfUzFfTDIsIFNVQklOU05fUzEsIFNVQklOU05fTDIsICIx MDBCIEJCQkIgQkJCQiBCQkJCIEVFMUEgQUFBQSBBQUFBIEFBQUEiKQorREVGX1BBQ0tFRDMyKFAy X1BBQ0tFRF9TMV9TMSwgU1VCSU5TTl9TMSwgU1VCSU5TTl9TMSwgIjEwMUIgQkJCQiBCQkJCIEJC QkIgRUUwQSBBQUFBIEFBQUEgQUFBQSIpCitERUZfUEFDS0VEMzIoUDJfUEFDS0VEX1MxX1MyLCBT VUJJTlNOX1MyLCBTVUJJTlNOX1MxLCAiMTAxQiBCQkJCIEJCQkIgQkJCQiBFRTFBIEFBQUEgQUFB QSBBQUFBIikKKworREVGX1BBQ0tFRDMyKFAyX1BBQ0tFRF9TMl9MMSwgU1VCSU5TTl9TMiwgU1VC SU5TTl9MMSwgIjExMEIgQkJCQiBCQkJCIEJCQkIgRUUwQSBBQUFBIEFBQUEgQUFBQSIpCitERUZf UEFDS0VEMzIoUDJfUEFDS0VEX1MyX0wyLCBTVUJJTlNOX1MyLCBTVUJJTlNOX0wyLCAiMTEwQiBC QkJCIEJCQkIgQkJCQiBFRTFBIEFBQUEgQUFBQSBBQUFBIikKK0RFRl9QQUNLRUQzMihQMl9QQUNL RURfUzJfUzIsIFNVQklOU05fUzIsIFNVQklOU05fUzIsICIxMTFCIEJCQkIgQkJCQiBCQkJCIEVF MEEgQUFBQSBBQUFBIEFBQUEiKQorCitERUZfUEFDS0VEMzIoUDJfUEFDS0VEX1JFU0VSVkVELCBT VUJJTlNOX0lOVkFMSUQsIFNVQklOU05fSU5WQUxJRCwgIjExMUIgQkJCQiBCQkJCIEJCQkIgRUUx QSBBQUFBIEFBQUEgQUFBQSIpCisKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVk L2Zsb2F0LmlkZWYgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9mbG9hdC5pZGVmCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU0OTNjZTYKLS0tIC9kZXYvbnVsbAorKysgYi90 YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9mbG9hdC5pZGVmCkBAIC0wLDAgKzEsMzEzIEBACisvKgor ICogIENvcHlyaWdodChjKSAyMDE5LTIwMjAgUXVhbGNvbW0gSW5ub3ZhdGlvbiBDZW50ZXIsIElu Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29m dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyAqICBpdCB1bmRl ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl ZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg aXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0 IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZl IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBh bG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LgorICovCisKKy8qCisgKiBGbG9hdGluZy1Qb2ludCBJbnN0cnVjdGlvbnMKKyAq LworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFNjYWxhciBG UAkJCSAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitRNklOU04o RjJfc2ZhZGQsIlJkMzI9c2ZhZGQoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkZsb2F0aW5nLVBv aW50IEFkZCIsCit7IFJkVj1mVU5GTE9BVChmRkxPQVQoUnNWKStmRkxPQVQoUnRWKSk7fSkKKwor UTZJTlNOKEYyX3Nmc3ViLCJSZDMyPXNmc3ViKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJGbG9h dGluZy1Qb2ludCBTdWJ0cmFjdCIsCit7IFJkVj1mVU5GTE9BVChmRkxPQVQoUnNWKS1mRkxPQVQo UnRWKSk7fSkKKworUTZJTlNOKEYyX3NmbXB5LCJSZDMyPXNmbXB5KFJzMzIsUnQzMikiLEFUVFJJ QlMoKSwKKyJGbG9hdGluZy1Qb2ludCBNdWx0aXBseSIsCit7IFJkVj1mVU5GTE9BVChmU0ZNUFko ZkZMT0FUKFJzViksZkZMT0FUKFJ0VikpKTt9KQorCitRNklOU04oRjJfc2ZmbWEsIlJ4MzIrPXNm bXB5KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJGbG9hdGluZy1Qb2ludCBGdXNlZCBNdWx0aXBs eSBBZGQiLAoreyBSeFY9ZlVORkxPQVQoZkZNQUYoZkZMT0FUKFJzViksZkZMT0FUKFJ0ViksZkZM T0FUKFJ4VikpKTt9KQorCitRNklOU04oRjJfc2ZmbWFfc2MsIlJ4MzIrPXNmbXB5KFJzMzIsUnQz MixQdTQpOnNjYWxlIixBVFRSSUJTKCksCisiRmxvYXRpbmctUG9pbnQgRnVzZWQgTXVsdGlwbHkg QWRkIHcvIEFkZGl0aW9uYWwgU2NhbGluZyAoMioqUHUpIiwKK3sKKwlmSElERShzaXplNHNfdCB0 bXA7KQorCWZDSEVDS1NGTkFOMyhSeFYsUnhWLFJzVixSdFYpOworCXRtcD1mVU5GTE9BVChmRk1B RlgoZkZMT0FUKFJzViksZkZMT0FUKFJ0ViksZkZMT0FUKFJ4ViksUHVWKSk7CisJaWYgKCEoKGZG TE9BVChSeFYpID09IDAuMCkgJiYgZklTWkVST1BST0QoZkZMT0FUKFJzViksZkZMT0FUKFJ0Vikp KSkgUnhWID0gdG1wOworfSkKKworUTZJTlNOKEYyX3NmZm1zLCJSeDMyLT1zZm1weShSczMyLFJ0 MzIpIixBVFRSSUJTKCksCisiRmxvYXRpbmctUG9pbnQgRnVzZWQgTXVsdGlwbHkgQWRkIiwKK3sg UnhWPWZVTkZMT0FUKGZGTUFGKC1mRkxPQVQoUnNWKSxmRkxPQVQoUnRWKSxmRkxPQVQoUnhWKSkp OyB9KQorCitRNklOU04oRjJfc2ZmbWFfbGliLCJSeDMyKz1zZm1weShSczMyLFJ0MzIpOmxpYiIs QVRUUklCUygpLAorIkZsb2F0aW5nLVBvaW50IEZ1c2VkIE11bHRpcGx5IEFkZCBmb3IgTGlicmFy eSBSb3V0aW5lcyIsCit7IGZGUFNFVFJPVU5EX05FQVJFU1QoKTsgZkhJREUoaW50IGluZmlucDsg aW50IGluZm1pbnVzaW5mOyBzaXplNHNfdCB0bXA7KQorCWluZm1pbnVzaW5mID0gKChpc2luZihm RkxPQVQoUnhWKSkpICYmCisJCShmSVNJTkZQUk9EKGZGTE9BVChSc1YpLGZGTE9BVChSdFYpKSkg JiYKKwkJKGZHRVRCSVQoMzEsUnNWIF4gUnhWIF4gUnRWKSAhPSAwKSk7CisJaW5maW5wID0gKGlz aW5mKGZGTE9BVChSeFYpKSkgfHwgKGlzaW5mKGZGTE9BVChSdFYpKSkgfHwgKGlzaW5mKGZGTE9B VChSc1YpKSk7CisJZkNIRUNLU0ZOQU4zKFJ4VixSeFYsUnNWLFJ0Vik7CisJdG1wPWZVTkZMT0FU KGZGTUFGKGZGTE9BVChSc1YpLGZGTE9BVChSdFYpLGZGTE9BVChSeFYpKSk7CisJaWYgKCEoKGZG TE9BVChSeFYpID09IDAuMCkgJiYgZklTWkVST1BST0QoZkZMT0FUKFJzViksZkZMT0FUKFJ0Vikp KSkgUnhWID0gdG1wOworCWZGUENBTkNFTEZMQUdTKCk7CisJaWYgKGlzaW5mKGZGTE9BVChSeFYp KSAmJiAhaW5maW5wKSBSeFYgPSBSeFYgLSAxOworCWlmIChpbmZtaW51c2luZikgUnhWID0gMDsK K30pCisKK1E2SU5TTihGMl9zZmZtc19saWIsIlJ4MzItPXNmbXB5KFJzMzIsUnQzMik6bGliIixB VFRSSUJTKCksCisiRmxvYXRpbmctUG9pbnQgRnVzZWQgTXVsdGlwbHkgQWRkIGZvciBMaWJyYXJ5 IFJvdXRpbmVzIiwKK3sgZkZQU0VUUk9VTkRfTkVBUkVTVCgpOyBmSElERShpbnQgaW5maW5wOyBp bnQgaW5mbWludXNpbmY7IHNpemU0c190IHRtcDspCisJaW5mbWludXNpbmYgPSAoKGlzaW5mKGZG TE9BVChSeFYpKSkgJiYKKwkJKGZJU0lORlBST0QoZkZMT0FUKFJzViksZkZMT0FUKFJ0VikpKSAm JgorCQkoZkdFVEJJVCgzMSxSc1YgXiBSeFYgXiBSdFYpID09IDApKTsKKwlpbmZpbnAgPSAoaXNp bmYoZkZMT0FUKFJ4VikpKSB8fCAoaXNpbmYoZkZMT0FUKFJ0VikpKSB8fCAoaXNpbmYoZkZMT0FU KFJzVikpKTsKKwlmQ0hFQ0tTRk5BTjMoUnhWLFJ4VixSc1YsUnRWKTsKKwl0bXA9ZlVORkxPQVQo ZkZNQUYoLWZGTE9BVChSc1YpLGZGTE9BVChSdFYpLGZGTE9BVChSeFYpKSk7CisJaWYgKCEoKGZG TE9BVChSeFYpID09IDAuMCkgJiYgZklTWkVST1BST0QoZkZMT0FUKFJzViksZkZMT0FUKFJ0Vikp KSkgUnhWID0gdG1wOworCWZGUENBTkNFTEZMQUdTKCk7CisJaWYgKGlzaW5mKGZGTE9BVChSeFYp KSAmJiAhaW5maW5wKSBSeFYgPSBSeFYgLSAxOworCWlmIChpbmZtaW51c2luZikgUnhWID0gMDsK K30pCisKKworUTZJTlNOKEYyX3NmY21wZXEsIlBkND1zZmNtcC5lcShSczMyLFJ0MzIpIixBVFRS SUJTKCksCisiRmxvYXRpbmcgUG9pbnQgQ29tcGFyZSBmb3IgRXF1YWwiLAore1BkVj1mOEJJVFNP RihmRkxPQVQoUnNWKT09ZkZMT0FUKFJ0VikpO30pCisKK1E2SU5TTihGMl9zZmNtcGd0LCJQZDQ9 c2ZjbXAuZ3QoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIkZsb2F0aW5nLVBvaW50IENvbXBhcmUg Zm9yIEdyZWF0ZXIgVGhhbiIsCit7UGRWPWY4QklUU09GKGZGTE9BVChSc1YpPmZGTE9BVChSdFYp KTt9KQorCisvKiBjbXBnZSBpcyBub3QgdGhlIHNhbWUgYXMgIWNtcGd0KHN3YXBvcHMpIGluIElF RUUgKi8KKworUTZJTlNOKEYyX3NmY21wZ2UsIlBkND1zZmNtcC5nZShSczMyLFJ0MzIpIixBVFRS SUJTKCksCisiRmxvYXRpbmctUG9pbnQgQ29tcGFyZSBmb3IgR3JlYXRlciBUaGFuIC8gRXF1YWwg VG8iLAore1BkVj1mOEJJVFNPRihmRkxPQVQoUnNWKT49ZkZMT0FUKFJ0VikpO30pCisKKy8qIEV2 ZXJ5b25lIHNlZW1zIHRvIGhhdmUgdGhpcy4uLiAqLworCitRNklOU04oRjJfc2ZjbXB1bywiUGQ0 PXNmY21wLnVvKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJGbG9hdGluZy1Qb2ludCBDb21wYXJl IGZvciBVbm9yZGVyZWQiLAore1BkVj1mOEJJVFNPRihpc3Vub3JkZXJlZChmRkxPQVQoUnNWKSxm RkxPQVQoUnRWKSkpO30pCisKKworUTZJTlNOKEYyX3NmbWF4LCJSZDMyPXNmbWF4KFJzMzIsUnQz MikiLEFUVFJJQlMoKSwKKyJNYXhpbXVtIG9mIEZsb2F0aW5nLVBvaW50IHZhbHVlcyIsCit7IFJk ViA9IGZVTkZMT0FUKGZTRl9NQVgoZkZMT0FUKFJzViksZkZMT0FUKFJ0VikpKTsgfSkKKworUTZJ TlNOKEYyX3NmbWluLCJSZDMyPXNmbWluKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyJNaW5pbXVt IG9mIEZsb2F0aW5nLVBvaW50IHZhbHVlcyIsCit7IFJkViA9IGZVTkZMT0FUKGZTRl9NSU4oZkZM T0FUKFJzViksZkZMT0FUKFJ0VikpKTsgfSkKKworCitRNklOU04oRjJfc2ZjbGFzcywiUGQ0PXNm Y2xhc3MoUnMzMiwjdTUpIixBVFRSSUJTKCksCisiQ2xhc3NpZnkgRmxvYXRpbmctUG9pbnQgVmFs dWUiLAoreworCWZISURFKGludCBjbGFzczspCisJUGRWID0gMDsKKwljbGFzcyA9IGZwY2xhc3Np ZnkoZkZMT0FUKFJzVikpOworCS8qIElzIHRoZSB2YWx1ZSB6ZXJvPyAqLworCWlmIChmR0VUQklU KDAsdWlWKSAmJiAoY2xhc3MgPT0gRlBfWkVSTykpIFBkViA9IDB4ZmY7CisJaWYgKGZHRVRCSVQo MSx1aVYpICYmIChjbGFzcyA9PSBGUF9OT1JNQUwpKSBQZFYgPSAweGZmOworCWlmIChmR0VUQklU KDIsdWlWKSAmJiAoY2xhc3MgPT0gRlBfU1VCTk9STUFMKSkgUGRWID0gMHhmZjsKKwlpZiAoZkdF VEJJVCgzLHVpVikgJiYgKGNsYXNzID09IEZQX0lORklOSVRFKSkgUGRWID0gMHhmZjsKKwlpZiAo ZkdFVEJJVCg0LHVpVikgJiYgKGNsYXNzID09IEZQX05BTikpIFBkViA9IDB4ZmY7CisJZkZQQ0FO Q0VMRkxBR1MoKTsKK30pCisKKy8qIFJhbmdlOiArLy0gKDEuMCAuLiAxKyg2My82NCkpICogMioq KC02IC4uICs5KSAqLworLyogTW9yZSBpbW1lZGlhdGUgYml0cyBzaG91bGQgcHJvYmFibHkgYmUg dXNlZCBmb3IgbW9yZSBwcmVjaXNpb24/ICovCisKK1E2SU5TTihGMl9zZmltbV9wLCJSZDMyPXNm bWFrZSgjdTEwKTpwb3MiLEFUVFJJQlMoKSwKKyJNYWtlIEZsb2F0aW5nIFBvaW50IFZhbHVlIiwK K3sKKwlSZFYgPSAoMTI3IC0gNikgPDwgMjM7CisJUmRWICs9IHVpViA8PCAxNzsKK30pCisKK1E2 SU5TTihGMl9zZmltbV9uLCJSZDMyPXNmbWFrZSgjdTEwKTpuZWciLEFUVFJJQlMoKSwKKyJNYWtl IEZsb2F0aW5nIFBvaW50IFZhbHVlIiwKK3sKKwlSZFYgPSAoMTI3IC0gNikgPDwgMjM7CisJUmRW ICs9ICh1aVYgPDwgMTcpOworCVJkViB8PSAoMSA8PCAzMSk7Cit9KQorCisKK1E2SU5TTihGMl9z ZmZpeHVwbiwiUmQzMj1zZmZpeHVwbihSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiRml4IFVwIE51 bWVyYXRvciIsCit7CisJZkhJREUoaW50IGFkanVzdDspCisJZlNGX1JFQ0lQX0NPTU1PTihSc1Ys UnRWLFJkVixhZGp1c3QpOworCVJkViA9IFJzVjsKK30pCisKK1E2SU5TTihGMl9zZmZpeHVwZCwi UmQzMj1zZmZpeHVwZChSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiRml4IFVwIERlbm9taW5hdG9y IiwKK3sKKwlmSElERShpbnQgYWRqdXN0OykKKwlmU0ZfUkVDSVBfQ09NTU9OKFJzVixSdFYsUmRW LGFkanVzdCk7CisJUmRWID0gUnRWOworfSkKKworUTZJTlNOKEYyX3NmZml4dXByLCJSZDMyPXNm Zml4dXByKFJzMzIpIixBVFRSSUJTKCksCisiRml4IFVwIFJhZGljYW5kIiwKK3sKKwlmSElERShp bnQgYWRqdXN0OykKKwlmU0ZfSU5WU1FSVF9DT01NT04oUnNWLFJkVixhZGp1c3QpOworCVJkViA9 IFJzVjsKK30pCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyog U2NhbGFyIERQCQkJICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K K1E2SU5TTihGMl9kZmFkZCwiUmRkMzI9ZGZhZGQoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisi RmxvYXRpbmctUG9pbnQgQWRkIiwKK3sgUmRkVj1mVU5ET1VCTEUoZkRPVUJMRShSc3NWKStmRE9V QkxFKFJ0dFYpKTt9KQorCitRNklOU04oRjJfZGZzdWIsIlJkZDMyPWRmc3ViKFJzczMyLFJ0dDMy KSIsQVRUUklCUygpLAorIkZsb2F0aW5nLVBvaW50IFN1YnRyYWN0IiwKK3sgUmRkVj1mVU5ET1VC TEUoZkRPVUJMRShSc3NWKS1mRE9VQkxFKFJ0dFYpKTt9KQorCitRNklOU04oRjJfZGZtYXgsIlJk ZDMyPWRmbWF4KFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIk1heGltdW0gb2YgRmxvYXRpbmct UG9pbnQgdmFsdWVzIiwKK3sgUmRkViA9IGZVTkRPVUJMRShmREZfTUFYKGZET1VCTEUoUnNzViks ZkRPVUJMRShSdHRWKSkpOyB9KQorCitRNklOU04oRjJfZGZtaW4sIlJkZDMyPWRmbWluKFJzczMy LFJ0dDMyKSIsQVRUUklCUygpLAorIk1pbmltdW0gb2YgRmxvYXRpbmctUG9pbnQgdmFsdWVzIiwK K3sgUmRkViA9IGZVTkRPVUJMRShmREZfTUlOKGZET1VCTEUoUnNzViksZkRPVUJMRShSdHRWKSkp OyB9KQorCitRNklOU04oRjJfZGZtcHlmaXgsIlJkZDMyPWRmbXB5Zml4KFJzczMyLFJ0dDMyKSIs QVRUUklCUygpLAorIkZpeCBVcCBNdWx0aXBsaWNhbmQgZm9yIE11bHRpcGxpY2F0aW9uIiwKK3sK KwlpZiAoZkRGX0lTREVOT1JNKFJzc1YpICYmIGZERl9JU0JJRyhSdHRWKSAmJiBmREZfSVNOT1JN QUwoUnR0VikpIFJkZFYgPSBmVU5ET1VCTEUoZkRPVUJMRShSc3NWKSAqIDB4MS4wcDUyKTsKKwll bHNlIGlmIChmREZfSVNERU5PUk0oUnR0VikgJiYgZkRGX0lTQklHKFJzc1YpICYmIGZERl9JU05P Uk1BTChSc3NWKSkgUmRkViA9IGZVTkRPVUJMRShmRE9VQkxFKFJzc1YpICogMHgxLjBwLTUyKTsK KwllbHNlIFJkZFYgPSBSc3NWOworfSkKKworUTZJTlNOKEYyX2RmbXB5bGwsIlJkZDMyPWRmbXB5 bGwoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiTXVsdGlwbHkgbG93KmxvdyBhbmQgc2hpZnQg b2ZmIGxvdyAzMiBiaXRzIGludG8gc3RpY2t5IChpbiBNU0IpIiwKK3sKKwlmSElERShzaXplOHVf dCBwcm9kOykKKwlwcm9kID0gZk1QWTMyVVUoZkdFVFVXT1JEKDAsUnNzViksZkdFVFVXT1JEKDAs UnR0VikpOworCVJkZFYgPSAocHJvZCA+PiAzMikgPDwgMTsKKwlpZiAoZkdFVFVXT1JEKDAscHJv ZCkgIT0gMCkgZlNFVEJJVCgwLFJkZFYsMSk7Cit9KQorCitRNklOU04oRjJfZGZtcHlsaCwiUnh4 MzIrPWRmbXB5bGgoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiTXVsdGlwbHkgbG93KmhpZ2gg YW5kIGFjY3VtdWxhdGUiLAoreworCVJ4eFYgKz0gKGZHRVRVV09SRCgwLFJzc1YpICogKDB4MDAx MDAwMDAgfCBmWlhUTigyMCw2NCxmR0VUVVdPUkQoMSxSdHRWKSkpKSA8PCAxOworfSkKKworUTZJ TlNOKEYyX2RmbXB5aGgsIlJ4eDMyKz1kZm1weWhoKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAor Ik11bHRpcGx5IGhpZ2gqaGlnaCBhbmQgYWNjdW11bGF0ZSB3aXRoIEwqSCB2YWx1ZSIsCit7CisJ Unh4ViA9IGZVTkRPVUJMRShmREZfTVBZX0hIKGZET1VCTEUoUnNzViksZkRPVUJMRShSdHRWKSxS eHhWKSk7Cit9KQorCisKKworUTZJTlNOKEYyX2RmY21wZXEsIlBkND1kZmNtcC5lcShSc3MzMixS dHQzMikiLEFUVFJJQlMoKSwKKyJGbG9hdGluZyBQb2ludCBDb21wYXJlIGZvciBFcXVhbCIsCit7 UGRWPWY4QklUU09GKGZET1VCTEUoUnNzVik9PWZET1VCTEUoUnR0VikpO30pCisKK1E2SU5TTihG Ml9kZmNtcGd0LCJQZDQ9ZGZjbXAuZ3QoUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksCisiRmxvYXRp bmctUG9pbnQgQ29tcGFyZSBmb3IgR3JlYXRlciBUaGFuIiwKK3tQZFY9ZjhCSVRTT0YoZkRPVUJM RShSc3NWKT5mRE9VQkxFKFJ0dFYpKTt9KQorCisKKy8qIGNtcGdlIGlzIG5vdCB0aGUgc2FtZSBh cyAhY21wZ3Qoc3dhcG9wcykgaW4gSUVFRSAqLworCitRNklOU04oRjJfZGZjbXBnZSwiUGQ0PWRm Y21wLmdlKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIkZsb2F0aW5nLVBvaW50IENvbXBhcmUg Zm9yIEdyZWF0ZXIgVGhhbiAvIEVxdWFsIFRvIiwKK3tQZFY9ZjhCSVRTT0YoZkRPVUJMRShSc3NW KT49ZkRPVUJMRShSdHRWKSk7fSkKKworLyogRXZlcnlvbmUgc2VlbXMgdG8gaGF2ZSB0aGlzLi4u ICovCisKK1E2SU5TTihGMl9kZmNtcHVvLCJQZDQ9ZGZjbXAudW8oUnNzMzIsUnR0MzIpIixBVFRS SUJTKCksCisiRmxvYXRpbmctUG9pbnQgQ29tcGFyZSBmb3IgVW5vcmRlcmVkIiwKK3tQZFY9ZjhC SVRTT0YoaXN1bm9yZGVyZWQoZkRPVUJMRShSc3NWKSxmRE9VQkxFKFJ0dFYpKSk7fSkKKworCitR NklOU04oRjJfZGZjbGFzcywiUGQ0PWRmY2xhc3MoUnNzMzIsI3U1KSIsQVRUUklCUygpLAorIkNs YXNzaWZ5IEZsb2F0aW5nLVBvaW50IFZhbHVlIiwKK3sKKwlmSElERShpbnQgY2xhc3M7KQorCVBk ViA9IDA7CisJY2xhc3MgPSBmcGNsYXNzaWZ5KGZET1VCTEUoUnNzVikpOworCS8qIElzIHRoZSB2 YWx1ZSB6ZXJvPyAqLworCWlmIChmR0VUQklUKDAsdWlWKSAmJiAoY2xhc3MgPT0gRlBfWkVSTykp IFBkViA9IDB4ZmY7CisJaWYgKGZHRVRCSVQoMSx1aVYpICYmIChjbGFzcyA9PSBGUF9OT1JNQUwp KSBQZFYgPSAweGZmOworCWlmIChmR0VUQklUKDIsdWlWKSAmJiAoY2xhc3MgPT0gRlBfU1VCTk9S TUFMKSkgUGRWID0gMHhmZjsKKwlpZiAoZkdFVEJJVCgzLHVpVikgJiYgKGNsYXNzID09IEZQX0lO RklOSVRFKSkgUGRWID0gMHhmZjsKKwlpZiAoZkdFVEJJVCg0LHVpVikgJiYgKGNsYXNzID09IEZQ X05BTikpIFBkViA9IDB4ZmY7CisJZkZQQ0FOQ0VMRkxBR1MoKTsKK30pCisKKworLyogUmFuZ2U6 ICsvLSAoMS4wIC4uIDErKDYzLzY0KSkgKiAyKiooLTYgLi4gKzkpICovCisvKiBNb3JlIGltbWVk aWF0ZSBiaXRzIHNob3VsZCBwcm9iYWJseSBiZSB1c2VkIGZvciBtb3JlIHByZWNpc2lvbj8gKi8K KworUTZJTlNOKEYyX2RmaW1tX3AsIlJkZDMyPWRmbWFrZSgjdTEwKTpwb3MiLEFUVFJJQlMoKSwK KyJNYWtlIEZsb2F0aW5nIFBvaW50IFZhbHVlIiwKK3sKKwlSZGRWID0gKDEwMjNVTEwgLSA2KSA8 PCA1MjsKKwlSZGRWICs9IChmSElERSgoc2l6ZTh1X3QpKXVpVikgPDwgNDY7Cit9KQorCitRNklO U04oRjJfZGZpbW1fbiwiUmRkMzI9ZGZtYWtlKCN1MTApOm5lZyIsQVRUUklCUygpLAorIk1ha2Ug RmxvYXRpbmcgUG9pbnQgVmFsdWUiLAoreworCVJkZFYgPSAoMTAyM1VMTCAtIDYpIDw8IDUyOwor CVJkZFYgKz0gKGZISURFKChzaXplOHVfdCkpdWlWKSA8PCA0NjsKKwlSZGRWIHw9ICgoMVVMTCkg PDwgNjMpOworfSkKKworCisvKiBDT05WRVJTSU9OICovCisKKyNkZWZpbmUgQ09OVkVSVChUQUcs REVTVCxERVNUVixTUkMsU1JDVixPVVRDQVNULE9VVFRZUEUsSU5DQVNULElOVFlQRSxNT0RFVEFH LE1PREVTWU4sTU9ERUJFSCkgXAorICAgIFE2SU5TTihGMl9jb252XyMjVEFHIyNNT0RFVEFHLCNE RVNUIj1jb252ZXJ0XyIjVEFHIigiI1NSQyIpIiNNT0RFU1lOLEFUVFJJQlMoKSwgXAorICAgICJG bG9hdGluZyBwb2ludCBmb3JtYXQgY29udmVyc2lvbiIsIFwKKyAgICB7IE1PREVCRUggREVTVFYg PSBPVVRDQVNUKGNvbnZfIyNJTlRZUEUjI190b18jI09VVFRZUEUoSU5DQVNUKFNSQ1YpKSk7IH0p CisKK0NPTlZFUlQoc2YyZGYsUmRkMzIsUmRkVixSczMyLFJzVixmVU5ET1VCTEUsZGYsZkZMT0FU LHNmLCwsKQorQ09OVkVSVChkZjJzZixSZDMyLFJkVixSc3MzMixSc3NWLGZVTkZMT0FULHNmLGZE T1VCTEUsZGYsLCwpCisKKyNkZWZpbmUgQUxMSU5URFNUKFRBR1NUQVJULFNSQyxTUkNWLElOQ0FT VCxJTlRZUEUsTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpIFwKK0NPTlZFUlQoVEFHU1RBUlQjI3V3 LFJkMzIsUmRWLFNSQyxTUkNWLGZDQVNUNHUsNHUsSU5DQVNULElOVFlQRSxNT0RFVEFHLE1PREVT WU4sTU9ERUJFSCkgXAorQ09OVkVSVChUQUdTVEFSVCMjdyxSZDMyLFJkVixTUkMsU1JDVixmQ0FT VDRzLDRzLElOQ0FTVCxJTlRZUEUsTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpIFwKK0NPTlZFUlQo VEFHU1RBUlQjI3VkLFJkZDMyLFJkZFYsU1JDLFNSQ1YsZkNBU1Q4dSw4dSxJTkNBU1QsSU5UWVBF LE1PREVUQUcsTU9ERVNZTixNT0RFQkVIKSBcCitDT05WRVJUKFRBR1NUQVJUIyNkLFJkZDMyLFJk ZFYsU1JDLFNSQ1YsZkNBU1Q4cyw4cyxJTkNBU1QsSU5UWVBFLE1PREVUQUcsTU9ERVNZTixNT0RF QkVIKQorCisjZGVmaW5lIEFMTEZQRFNUKFRBR1NUQVJULFNSQyxTUkNWLElOQ0FTVCxJTlRZUEUs TU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpIFwKK0NPTlZFUlQoVEFHU1RBUlQjI3NmLFJkMzIsUmRW LFNSQyxTUkNWLGZVTkZMT0FULHNmLElOQ0FTVCxJTlRZUEUsTU9ERVRBRyxNT0RFU1lOLE1PREVC RUgpIFwKK0NPTlZFUlQoVEFHU1RBUlQjI2RmLFJkZDMyLFJkZFYsU1JDLFNSQ1YsZlVORE9VQkxF LGRmLElOQ0FTVCxJTlRZUEUsTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpCisKKyNkZWZpbmUgQUxM SU5UU1JDKEdFTixNT0RFVEFHLE1PREVTWU4sTU9ERUJFSCkgXAorR0VOKHV3IyMyLFJzMzIsUnNW LGZDQVNUNHUsNHUsTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpIFwKK0dFTih3IyMyLFJzMzIsUnNW LGZDQVNUNHMsNHMsTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpIFwKK0dFTih1ZCMjMixSc3MzMixS c3NWLGZDQVNUOHUsOHUsTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpIFwKK0dFTihkIyMyLFJzczMy LFJzc1YsZkNBU1Q4cyw4cyxNT0RFVEFHLE1PREVTWU4sTU9ERUJFSCkKKworI2RlZmluZSBBTExG UFNSQyhHRU4sTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpIFwKK0dFTihzZiMjMixSczMyLFJzVixm RkxPQVQsc2YsTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpIFwKK0dFTihkZiMjMixSc3MzMixSc3NW LGZET1VCTEUsZGYsTU9ERVRBRyxNT0RFU1lOLE1PREVCRUgpCisKK0FMTElOVFNSQyhBTExGUERT VCwsLCkKK0FMTEZQU1JDKEFMTElOVERTVCwsLCkKK0FMTEZQU1JDKEFMTElOVERTVCxfY2hvcCw6 Y2hvcCxmRlBTRVRST1VORF9DSE9QKCk7KQorCmRpZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9p bXBvcnRlZC9sZHN0LmlkZWYgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9sZHN0LmlkZWYKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVjYzQwOAotLS0gL2Rldi9udWxsCisr KyBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL2xkc3QuaWRlZgpAQCAtMCwwICsxLDI4NiBAQAor LyoKKyAqICBDb3B5cmlnaHQoYykgMjAxOS0yMDIwIFF1YWxjb21tIElubm92YXRpb24gQ2VudGVy LCBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CisgKiAgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs aXNoZWQgYnkKKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lv biAyIG9mIHRoZSBMaWNlbnNlLCBvcgorICogIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl cnNpb24uCisgKgorICogIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0 aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0 aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9y IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogIEdOVSBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQg aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisg KiAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4KKyAqLworCisvKgorICogTG9hZCBhbmQgU3RvcmUgaW5zdHJ1Y3Rpb24g ZGVmaW5pdGlvbnMKKyAqLworCisvKiBUaGUgc2V0IG9mIGFkZHJlc3NpbmcgbW9kZXMgc3RhbmRh cmQgdG8gYWxsIExvYWQgaW5zdHJ1Y3Rpb25zICovCisjZGVmaW5lIFNURF9MRF9BTU9ERVMoVEFH LE9QRVIsREVTQ1IsQVRUUklCLFNIRlQsU0VNQU5USUNTLFNDQUxFKVwKK1E2SU5TTihMMl8jI1RB RyMjX2lvLCAgT1BFUiIoUnMzMisjczExOiJTSEZUIikiLCAgICAgICAgICBBVFRSSUIsREVTQ1Is e2ZJTU1FWFQoc2lWKTsgZkVBX1JJKFJzVixzaVYpOyBTRU1BTlRJQ1M7IH0pXAorUTZJTlNOKEw0 XyMjVEFHIyNfdXIsICBPUEVSIihSdDMyPDwjdTIrI1U2KSIsICAgICAgICAgICAgIEFUVFJJQixE RVNDUix7Zk1VU1RfSU1NRVhUKFVpVik7IGZFQV9JUnMoVWlWLFJ0Vix1aVYpOyBTRU1BTlRJQ1M7 fSlcCitRNklOU04oTDRfIyNUQUcjI19hcCwgIE9QRVIiKFJlMzI9I1U2KSIsICAgICAgICAgICAg ICAgICAgQVRUUklCLERFU0NSLHtmTVVTVF9JTU1FWFQoVWlWKTsgZkVBX0lNTShVaVYpOyBTRU1B TlRJQ1M7IFJlVj1VaVY7IH0pXAorUTZJTlNOKEwyXyMjVEFHIyNfcHIsICBPUEVSIihSeDMyKytN dTIpIiwgICAgICAgICAgICAgICAgIEFUVFJJQixERVNDUix7ZkVBX1JFRyhSeFYpOyBmUE1fTShS eFYsTXVWKTsgU0VNQU5USUNTO30pXAorUTZJTlNOKEwyXyMjVEFHIyNfcGksICBPUEVSIihSeDMy KysjczQ6IlNIRlQiKSIsICAgICAgICAgIEFUVFJJQixERVNDUix7ZkVBX1JFRyhSeFYpOyBmUE1f SShSeFYsc2lWKTsgU0VNQU5USUNTO30pXAorCisvKiBUaGUgc2V0IG9mIDMyLWJpdCBsb2FkIGlu c3RydWN0aW9ucyAqLworU1REX0xEX0FNT0RFUyhsb2FkcnViLCJSZDMyPW1lbXViIiwiTG9hZCBV bnNpZ25lZCBCeXRlIixBVFRSSUJTKEFfTE9BRCksIjAiLGZMT0FEKDEsMSx1LEVBLFJkViksMCkK K1NURF9MRF9BTU9ERVMobG9hZHJiLCAiUmQzMj1tZW1iIiwgIkxvYWQgc2lnbmVkIEJ5dGUiLEFU VFJJQlMoQV9MT0FEKSwiMCIsZkxPQUQoMSwxLHMsRUEsUmRWKSwwKQorU1REX0xEX0FNT0RFUyhs b2FkcnVoLCJSZDMyPW1lbXVoIiwiTG9hZCB1bnNpZ25lZCBIYWxmIGludGVnZXIiLEFUVFJJQlMo QV9MT0FEKSwiMSIsZkxPQUQoMSwyLHUsRUEsUmRWKSwxKQorU1REX0xEX0FNT0RFUyhsb2Fkcmgs ICJSZDMyPW1lbWgiLCAiTG9hZCBzaWduZWQgSGFsZiBpbnRlZ2VyIixBVFRSSUJTKEFfTE9BRCks IjEiLGZMT0FEKDEsMixzLEVBLFJkViksMSkKK1NURF9MRF9BTU9ERVMobG9hZHJpLCAiUmQzMj1t ZW13IiwgIkxvYWQgV29yZCIsQVRUUklCUyhBX0xPQUQpLCIyIixmTE9BRCgxLDQsdSxFQSxSZFYp LDIpCitTVERfTERfQU1PREVTKGxvYWRyZCwgIlJkZDMyPW1lbWQiLCJMb2FkIERvdWJsZSBpbnRl Z2VyIixBVFRSSUJTKEFfTE9BRCksIjMiLGZMT0FEKDEsOCx1LEVBLFJkZFYpLDMpCisKKy8qIFRo ZSBzZXQgb2YgYWRkcmVzc2luZyBtb2RlcyBzdGFuZGFyZCB0byBhbGwgU3RvcmUgaW5zdHJ1Y3Rp b25zICovCisjZGVmaW5lIFNURF9TVF9BTU9ERVMoVEFHLERFU1QsT1BFUixERVNDUixBVFRSSUIs U0hGVCxTRU1BTlRJQ1MsU0NBTEUpXAorUTZJTlNOKFMyXyMjVEFHIyNfaW8sICBPUEVSIihSczMy KyNzMTE6IlNIRlQiKT0iREVTVCwgICAgIEFUVFJJQixERVNDUix7ZklNTUVYVChzaVYpOyBmRUFf UkkoUnNWLHNpVik7IFNFTUFOVElDUzsgfSlcCitRNklOU04oUzJfIyNUQUcjI19waSwgIE9QRVIi KFJ4MzIrKyNzNDoiU0hGVCIpPSJERVNULCAgICAgQVRUUklCLERFU0NSLHtmRUFfUkVHKFJ4Vik7 IGZQTV9JKFJ4VixzaVYpOyBTRU1BTlRJQ1M7IH0pXAorUTZJTlNOKFM0XyMjVEFHIyNfYXAsICBP UEVSIihSZTMyPSNVNik9IkRFU1QsICAgICAgICAgICAgIEFUVFJJQixERVNDUix7Zk1VU1RfSU1N RVhUKFVpVik7IGZFQV9JTU0oVWlWKTsgU0VNQU5USUNTOyBSZVY9VWlWOyB9KVwKK1E2SU5TTihT Ml8jI1RBRyMjX3ByLCAgT1BFUiIoUngzMisrTXUyKT0iREVTVCwgICAgICAgICAgICBBVFRSSUIs REVTQ1Ise2ZFQV9SRUcoUnhWKTsgZlBNX00oUnhWLE11Vik7IFNFTUFOVElDUzsgfSlcCitRNklO U04oUzRfIyNUQUcjI191ciwgIE9QRVIiKFJ1MzI8PCN1MisjVTYpPSJERVNULCAgICAgICAgICAg IEFUVFJJQixERVNDUix7Zk1VU1RfSU1NRVhUKFVpVik7IGZFQV9JUnMoVWlWLFJ1Vix1aVYpOyBT RU1BTlRJQ1M7fSlcCisKKworLyogVGhlIHNldCBvZiAzMi1iaXQgc3RvcmUgaW5zdHJ1Y3Rpb25z ICovCitTVERfU1RfQU1PREVTKHN0b3JlcmIsICJSdDMyIiwgIm1lbWIiLCJTdG9yZSBCeXRlIixB VFRSSUJTKEFfU1RPUkUpLCIwIixmU1RPUkUoMSwxLEVBLGZHRVRCWVRFKDAsUnRWKSksMCkKK1NU RF9TVF9BTU9ERVMoc3RvcmVyaCwgIlJ0MzIiLCAibWVtaCIsIlN0b3JlIEhhbGYgaW50ZWdlciIs QVRUUklCUyhBX1NUT1JFKSwiMSIsZlNUT1JFKDEsMixFQSxmR0VUSEFMRigwLFJ0VikpLDEpCitT VERfU1RfQU1PREVTKHN0b3JlcmYsICJSdC5IMzIiLCAibWVtaCIsIlN0b3JlIFVwcGVyIEhhbGYg aW50ZWdlciIsQVRUUklCUyhBX1NUT1JFKSwiMSIsZlNUT1JFKDEsMixFQSxmR0VUSEFMRigxLFJ0 VikpLDEpCitTVERfU1RfQU1PREVTKHN0b3JlcmksICJSdDMyIiwgIm1lbXciLCJTdG9yZSBXb3Jk IixBVFRSSUJTKEFfU1RPUkUpLCIyIixmU1RPUkUoMSw0LEVBLFJ0ViksMikKK1NURF9TVF9BTU9E RVMoc3RvcmVyZCwgIlJ0dDMyIiwibWVtZCIsIlN0b3JlIERvdWJsZSBpbnRlZ2VyIixBVFRSSUJT KEFfU1RPUkUpLCIzIixmU1RPUkUoMSw4LEVBLFJ0dFYpLDMpCitTVERfU1RfQU1PREVTKHN0b3Jl cmluZXcsICJOdDgubmV3IiwgIm1lbXciLCJTdG9yZSBXb3JkIixBVFRSSUJTKEFfU1RPUkUpLCIy IixmU1RPUkUoMSw0LEVBLGZORVdSRUdfU1QoTnROKSksMikKK1NURF9TVF9BTU9ERVMoc3RvcmVy Ym5ldywgIk50OC5uZXciLCAibWVtYiIsIlN0b3JlIEJ5dGUiLEFUVFJJQlMoQV9TVE9SRSksIjAi LGZTVE9SRSgxLDEsRUEsZkdFVEJZVEUoMCxmTkVXUkVHX1NUKE50TikpKSwwKQorU1REX1NUX0FN T0RFUyhzdG9yZXJobmV3LCAiTnQ4Lm5ldyIsICJtZW1oIiwiU3RvcmUgSGFsZiBpbnRlZ2VyIixB VFRSSUJTKEFfU1RPUkUpLCIxIixmU1RPUkUoMSwyLEVBLGZHRVRIQUxGKDAsZk5FV1JFR19TVChO dE4pKSksMSkKKworCitRNklOU04oUzJfYWxsb2NmcmFtZSwiYWxsb2NmcmFtZShSeDMyLCN1MTE6 Myk6cmF3IiwgQVRUUklCUyhBX1NUT1JFLEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwgIkFsbG9jYXRl IHN0YWNrIGZyYW1lIiwKK3sgZkVBX1JJKFJ4ViwtOCk7IGZTVE9SRSgxLDgsRUEsZkZSQU1FX1ND UkFNQkxFKChmQ0FTVDhfOHUoZlJFQURfTFIoKSkgPDwgMzIpIHwgZkNBU1Q0XzR1KGZSRUFEX0ZQ KCkpKSk7IGZXUklURV9GUChFQSk7IGZGUkFNRUNIRUNLKEVBLXVpVixFQSk7IFJ4ViA9IEVBLXVp VjsgfSkKKworI2RlZmluZSBBX1JFVFVSTiBBX1JFU1RSSUNUX1NMT1QwT05MWQorCitRNklOU04o TDJfZGVhbGxvY2ZyYW1lLCJSZGQzMj1kZWFsbG9jZnJhbWUoUnMzMik6cmF3IiwgQVRUUklCUyhB X0xPQUQpLCAiRGVhbGxvY2F0ZSBzdGFjayBmcmFtZSIsCit7IGZISURFKHNpemU4dV90IHRtcDsp IGZFQV9SRUcoUnNWKTsKKwlmTE9BRCgxLDgsdSxFQSx0bXApOworCVJkZFYgPSBmRlJBTUVfVU5T Q1JBTUJMRSh0bXApOworCWZXUklURV9TUChFQSs4KTsgfSkKKworUTZJTlNOKEw0X3JldHVybiwi UmRkMzI9ZGVhbGxvY19yZXR1cm4oUnMzMik6cmF3IiwgQVRUUklCUyhBX0pJTkRJUixBX0xPQUQs QV9SRVRVUk4pLCAiRGVhbGxvY2F0ZSBzdGFjayBmcmFtZSBhbmQgcmV0dXJuIiwKK3sgZkhJREUo c2l6ZTh1X3QgdG1wOykgZkVBX1JFRyhSc1YpOworCWZMT0FEKDEsOCx1LEVBLHRtcCk7CisJUmRk ViA9IGZGUkFNRV9VTlNDUkFNQkxFKHRtcCk7CisJZldSSVRFX1NQKEVBKzgpOworICAgIGZKVU1Q UihSRUdfTFIsZkdFVFdPUkQoMSxSZGRWKSxDT0ZfVFlQRV9KVU1QUik7fSkKKworI2RlZmluZSBD T05EU0VNKFNSQ1JFRyxTVEFMTEJJVFMwLFNUQUxMQklUUzEsUFJFREZVTkMsUFJFREFSRyxTVEFM TFNQRUMsUFJFRENPTkQpIFwKK3sgXAorCWZISURFKHNpemU4dV90IHRtcDspIFwKKwlmQlJBTkNI X1NQRUNVTEFURV9TVEFMTChQUkVERlVOQyMjUFJFRENPTkQoUFJFREFSRyksLFNUQUxMU1BFQyxT VEFMTEJJVFMwLFNUQUxMQklUUzEpOyBcCisJZkVBX1JFRyhTUkNSRUcpOyBcCisJaWYgKFBSRURG VU5DIyNQUkVEQ09ORChQUkVEQVJHKSkgeyBcCisJCWZMT0FEKDEsOCx1LEVBLHRtcCk7IFwKKwkJ UmRkViA9IGZGUkFNRV9VTlNDUkFNQkxFKHRtcCk7IFwKKwkJZldSSVRFX1NQKEVBKzgpOyBcCisJ CWZKVU1QUihSRUdfTFIsZkdFVFdPUkQoMSxSZGRWKSxDT0ZfVFlQRV9KVU1QUik7IFwKKwl9IGVs c2UgeyBcCisJCUxPQURfQ0FOQ0VMKEVBKTsgXAorCX0gXAorfQorCisjZGVmaW5lIENPTkRfUkVU VVJOX1RGKFRHLFRHMixET1RORVcsU1RBTExCSVRTMCxTVEFMTEJJVFMxLFNUQUxMU1BFQyxBVFRS SUJTLFBSRURGVU5DLFBSRURBUkcsVF9OVCkgXAorCVE2SU5TTihURyMjX3QjI1RHMiwiaWYgKFB2 NCJET1RORVciKSBSZGQzMj1kZWFsbG9jX3JldHVybihSczMyKSJUX05UIjpyYXciLEFUVFJJQlMs ImRlYWxsb2NhdGUgc3RhY2sgZnJhbWUgYW5kIHJldHVybiIsIFwKKwkJQ09ORFNFTShSc1YsU1RB TExCSVRTMCxTVEFMTEJJVFMxLFBSRURGVU5DLFBSRURBUkcsU1RBTExTUEVDLCkpIFwKKwlRNklO U04oVEcjI19mIyNURzIsImlmICghUHY0IkRPVE5FVyIpIFJkZDMyPWRlYWxsb2NfcmV0dXJuKFJz MzIpIlRfTlQiOnJhdyIsQVRUUklCUywiZGVhbGxvY2F0ZSBzdGFjayBmcmFtZSBhbmQgcmV0dXJu IiwgXAorCQlDT05EU0VNKFJzVixTVEFMTEJJVFMwLFNUQUxMQklUUzEsUFJFREZVTkMjI05PVCxQ UkVEQVJHLFNUQUxMU1BFQywpKQorCisjZGVmaW5lIENPTkRfUkVUVVJOX05FVyhURyxTVEFMTEJJ VFMwLFNUQUxMQklUUzEsQVRUUklCUykgXAorCUNPTkRfUkVUVVJOX1RGKFRHLG5ld19wdCwiLm5l dyIsMTIsMCxTUEVDVUxBVEVfVEFLRU4sQVRUUklCUyxmTFNCTkVXLFB2TiwiOnQiKSBcCisJQ09O RF9SRVRVUk5fVEYoVEcsbmV3X3BudCwiLm5ldyIsMTIsMCxTUEVDVUxBVEVfTk9UX1RBS0VOLEFU VFJJQlMsZkxTQk5FVyxQdk4sIjpudCIpIFwKKworI2RlZmluZSBSRVRVUk5fQVRUUklCUyBBX0xP QUQsQV9SRVRVUk4KKworQ09ORF9SRVRVUk5fVEYoTDRfcmV0dXJuLCwsNywwLFNQRUNVTEFURV9O T1RfVEFLRU4sQVRUUklCUyhSRVRVUk5fQVRUUklCUyxBX0pJTkRJUk9MRCksZkxTQk9MRCxQdlYs KQorQ09ORF9SRVRVUk5fTkVXKEw0X3JldHVybiwxMiwwLEFUVFJJQlMoUkVUVVJOX0FUVFJJQlMs QV9KSU5ESVJORVcpKQorCisKKworCitRNklOU04oTDJfbG9hZHdfbG9ja2VkLCJSZDMyPW1lbXdf bG9ja2VkKFJzMzIpIiwgQVRUUklCUyhBX0xPQUQsQV9SRVNUUklDVF9TTE9UME9OTFkpLCAiTG9h ZCB3b3JkIHdpdGggbG9jayIsCit7IGZFQV9SRUcoUnNWKTsgZkxPQURfTE9DS0VEKDEsNCx1LEVB LFJkVikgfSk7CisKKworUTZJTlNOKFMyX3N0b3Jld19sb2NrZWQsIm1lbXdfbG9ja2VkKFJzMzIs UGQ0KT1SdDMyIiwgQVRUUklCUyhBX1NUT1JFLEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwgIlN0b3Jl IHdvcmQgd2l0aCBsb2NrIiwKK3sgZkVBX1JFRyhSc1YpOyBmU1RPUkVfTE9DS0VEKDEsNCxFQSxS dFYsUGRWKSB9KTsKKworCitRNklOU04oTDRfbG9hZGRfbG9ja2VkLCJSZGQzMj1tZW1kX2xvY2tl ZChSczMyKSIsIEFUVFJJQlMoQV9MT0FELEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwgIkxvYWQgZG91 YmxlIHdpdGggbG9jayIsCit7IGZFQV9SRUcoUnNWKTsgZkxPQURfTE9DS0VEKDEsOCx1LEVBLFJk ZFYpIH0pOworCitRNklOU04oUzRfc3RvcmVkX2xvY2tlZCwibWVtZF9sb2NrZWQoUnMzMixQZDQp PVJ0dDMyIiwgQVRUUklCUyhBX1NUT1JFLEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwgIlN0b3JlIHdv cmQgd2l0aCBsb2NrIiwKK3sgZkVBX1JFRyhSc1YpOyBmU1RPUkVfTE9DS0VEKDEsOCxFQSxSdHRW LFBkVikgfSk7CisKKworCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyogICAgICAgICAg ICAgICAgICAgICAgIFByZWRpY2F0ZWQgTERTVCAgICAgICAgICAgICAgICAgICAgICAgICAqLwor LyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworCisjZGVmaW5lIFNURF9QTERfQU1PREVTKFRBRyxPUEVS LERFU0NSLEFUVFJJQixTSEZULFNIRlROVU0sU0VNQU5USUNTKVwKK1E2SU5TTihMNF8jI1RBRyMj X3JyLCAgT1BFUiIoUnMzMitSdDMyPDwjdTIpIiwgICAgICAgICAgICBBVFRSSUIsREVTQ1Ise2ZF QV9SUnMoUnNWLFJ0Vix1aVYpOyBTRU1BTlRJQ1M7fSlcCitRNklOU04oTDJfcCMjVEFHIyN0X2lv LCAiaWYgKFB0NCkgIk9QRVIiKFJzMzIrI3U2OiJTSEZUIikiLCAgICAgICAgICAgIEFUVFJJQixE RVNDUix7ZklNTUVYVCh1aVYpOyBmRUFfUkkoUnNWLHVpVik7IGlmKGZMU0JPTEQoUHRWKSl7U0VN QU5USUNTO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihMMl9wIyNUQUcjI3Rf cGksICJpZiAoUHQ0KSAiT1BFUiIoUngzMisrI3M0OiJTSEZUIikiLCAgICAgICAgICAgQVRUUklC LERFU0NSLHtmRUFfUkVHKFJ4Vik7IGlmKGZMU0JPTEQoUHRWKSl7IGZQTV9JKFJ4VixzaVYpOyBT RU1BTlRJQ1M7fSBlbHNlIHtMT0FEX0NBTkNFTChFQSk7fX0pXAorUTZJTlNOKEwyX3AjI1RBRyMj Zl9pbywgImlmICghUHQ0KSAiT1BFUiIoUnMzMisjdTY6IlNIRlQiKSIsICAgICAgICAgICBBVFRS SUIsREVTQ1Ise2ZJTU1FWFQodWlWKTsgZkVBX1JJKFJzVix1aVYpOyBpZihmTFNCT0xETk9UKFB0 VikpeyBTRU1BTlRJQ1M7IH0gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihMMl9w IyNUQUcjI2ZfcGksICJpZiAoIVB0NCkgIk9QRVIiKFJ4MzIrKyNzNDoiU0hGVCIpIiwgICAgICAg ICAgQVRUUklCLERFU0NSLHtmRUFfUkVHKFJ4Vik7IGlmKGZMU0JPTEROT1QoUHRWKSl7IGZQTV9J KFJ4VixzaVYpOyBTRU1BTlRJQ1M7fSBlbHNlIHtMT0FEX0NBTkNFTChFQSk7fX0pXAorUTZJTlNO KEwyX3AjI1RBRyMjdG5ld19pbywiaWYgKFB0NC5uZXcpICJPUEVSIihSczMyKyN1NjoiU0hGVCIp IixBVFRSSUIsREVTQ1Ise2ZJTU1FWFQodWlWKTsgZkVBX1JJKFJzVix1aVYpOyBpZiAoZkxTQk5F VyhQdE4pKSAgeyBTRU1BTlRJQ1M7IH0gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5T TihMMl9wIyNUQUcjI2ZuZXdfaW8sImlmICghUHQ0Lm5ldykgIk9QRVIiKFJzMzIrI3U2OiJTSEZU IikiLEFUVFJJQixERVNDUix7ZklNTUVYVCh1aVYpOyBmRUFfUkkoUnNWLHVpVik7IGlmIChmTFNC TkVXTk9UKFB0TikpIHsgU0VNQU5USUNTOyB9IGVsc2Uge0xPQURfQ0FOQ0VMKEVBKTt9fSlcCitR NklOU04oTDRfcCMjVEFHIyN0X3JyLCAiaWYgKFB2NCkgIk9QRVIiKFJzMzIrUnQzMjw8I3UyKSIs ICAgICAgICAgICAgQVRUUklCLERFU0NSLHtmRUFfUlJzKFJzVixSdFYsdWlWKTsgaWYoZkxTQk9M RChQdlYpKXsgU0VNQU5USUNTO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihM NF9wIyNUQUcjI2ZfcnIsICJpZiAoIVB2NCkgIk9QRVIiKFJzMzIrUnQzMjw8I3UyKSIsICAgICAg ICAgICBBVFRSSUIsREVTQ1Ise2ZFQV9SUnMoUnNWLFJ0Vix1aVYpOyBpZihmTFNCT0xETk9UKFB2 VikpeyBTRU1BTlRJQ1M7IH0gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihMNF9w IyNUQUcjI3RuZXdfcnIsImlmIChQdjQubmV3KSAiT1BFUiIoUnMzMitSdDMyPDwjdTIpIixBVFRS SUIsREVTQ1Ise2ZFQV9SUnMoUnNWLFJ0Vix1aVYpOyBpZiAoZkxTQk5FVyhQdk4pKSAgeyBTRU1B TlRJQ1M7IH0gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihMNF9wIyNUQUcjI2Zu ZXdfcnIsImlmICghUHY0Lm5ldykgIk9QRVIiKFJzMzIrUnQzMjw8I3UyKSIsQVRUUklCLERFU0NS LHtmRUFfUlJzKFJzVixSdFYsdWlWKTsgaWYgKGZMU0JORVdOT1QoUHZOKSkgeyBTRU1BTlRJQ1M7 IH0gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihMMl9wIyNUQUcjI3RuZXdfcGks ICJpZiAoUHQ0Lm5ldykgIk9QRVIiKFJ4MzIrKyNzNDoiU0hGVCIpIiwgICAgICAgICAgIEFUVFJJ QixERVNDUix7ZkVBX1JFRyhSeFYpOyBpZihmTFNCTkVXKFB0TikpeyBmUE1fSShSeFYsc2lWKTsg U0VNQU5USUNTO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihMMl9wIyNUQUcj I2ZuZXdfcGksICJpZiAoIVB0NC5uZXcpICJPUEVSIihSeDMyKysjczQ6IlNIRlQiKSIsICAgICAg ICAgIEFUVFJJQixERVNDUix7ZkVBX1JFRyhSeFYpOyBpZihmTFNCTkVXTk9UKFB0TikpeyBmUE1f SShSeFYsc2lWKTsgU0VNQU5USUNTO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5T TihMNF9wIyNUQUcjI3RfYWJzLCAiaWYgKFB0NCkgIk9QRVIiKCN1NikiLCAgICAgICAgICAgIEFU VFJJQixERVNDUix7Zk1VU1RfSU1NRVhUKHVpVik7IGZFQV9JTU0odWlWKTsgaWYoZkxTQk9MRChQ dFYpKXsgU0VNQU5USUNTO30gZWxzZSB7TE9BRF9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihMNF9w IyNUQUcjI2ZfYWJzLCAiaWYgKCFQdDQpICJPUEVSIigjdTYpIiwgICAgICAgICAgIEFUVFJJQixE RVNDUix7Zk1VU1RfSU1NRVhUKHVpVik7IGZFQV9JTU0odWlWKTsgaWYoZkxTQk9MRE5PVChQdFYp KXsgU0VNQU5USUNTOyB9IGVsc2Uge0xPQURfQ0FOQ0VMKEVBKTt9fSlcCitRNklOU04oTDRfcCMj VEFHIyN0bmV3X2FicywiaWYgKFB0NC5uZXcpICJPUEVSIigjdTYpIixBVFRSSUIsREVTQ1Ise2ZN VVNUX0lNTUVYVCh1aVYpOyBmRUFfSU1NKHVpVik7aWYgKGZMU0JORVcoUHROKSkgIHsgU0VNQU5U SUNTOyB9IGVsc2Uge0xPQURfQ0FOQ0VMKEVBKTt9fSlcCitRNklOU04oTDRfcCMjVEFHIyNmbmV3 X2FicywiaWYgKCFQdDQubmV3KSAiT1BFUiIoI3U2KSIsQVRUUklCLERFU0NSLHtmTVVTVF9JTU1F WFQodWlWKTsgZkVBX0lNTSh1aVYpO2lmIChmTFNCTkVXTk9UKFB0TikpIHsgU0VNQU5USUNTOyB9 IGVsc2Uge0xPQURfQ0FOQ0VMKEVBKTt9fSkKKworCisKKy8qIFRoZSBzZXQgb2YgMzItYml0IHBy ZWRpY2F0ZWQgbG9hZCBpbnN0cnVjdGlvbnMgKi8KK1NURF9QTERfQU1PREVTKGxvYWRydWIsIlJk MzI9bWVtdWIiLCJMb2FkIFVuc2lnbmVkIEJ5dGUiLEFUVFJJQlMoQV9BUkNIVjIsQV9MT0FEKSwi MCIsMCxmTE9BRCgxLDEsdSxFQSxSZFYpKQorU1REX1BMRF9BTU9ERVMobG9hZHJiLCAiUmQzMj1t ZW1iIiwgIkxvYWQgc2lnbmVkIEJ5dGUiLEFUVFJJQlMoQV9BUkNIVjIsQV9MT0FEKSwiMCIsMCxm TE9BRCgxLDEscyxFQSxSZFYpKQorU1REX1BMRF9BTU9ERVMobG9hZHJ1aCwiUmQzMj1tZW11aCIs IkxvYWQgdW5zaWduZWQgSGFsZiBpbnRlZ2VyIixBVFRSSUJTKEFfQVJDSFYyLEFfTE9BRCksIjEi LDEsZkxPQUQoMSwyLHUsRUEsUmRWKSkKK1NURF9QTERfQU1PREVTKGxvYWRyaCwgIlJkMzI9bWVt aCIsICJMb2FkIHNpZ25lZCBIYWxmIGludGVnZXIiLEFUVFJJQlMoQV9BUkNIVjIsQV9MT0FEKSwi MSIsMSxmTE9BRCgxLDIscyxFQSxSZFYpKQorU1REX1BMRF9BTU9ERVMobG9hZHJpLCAiUmQzMj1t ZW13IiwgIkxvYWQgV29yZCIsQVRUUklCUyhBX0FSQ0hWMixBX0xPQUQpLCIyIiwyLGZMT0FEKDEs NCx1LEVBLFJkVikpCitTVERfUExEX0FNT0RFUyhsb2FkcmQsICJSZGQzMj1tZW1kIiwiTG9hZCBE b3VibGUgaW50ZWdlciIsQVRUUklCUyhBX0FSQ0hWMixBX0xPQUQpLCIzIiwzLGZMT0FEKDEsOCx1 LEVBLFJkZFYpKQorCisvKiBUaGUgc2V0IG9mIGFkZHJlc3NpbmcgbW9kZXMgc3RhbmRhcmQgdG8g YWxsIHByZWRpY2F0ZWQgc3RvcmUgaW5zdHJ1Y3Rpb25zICovCisjZGVmaW5lIFNURF9QU1RfQU1P REVTKFRBRyxERVNULE9QRVIsREVTQ1IsQVRUUklCLFNIRlQsU0hGVE5VTSxTRU1BTlRJQ1MpXAor UTZJTlNOKFM0XyMjVEFHIyNfcnIsICBPUEVSIihSczMyK1J1MzI8PCN1Mik9IkRFU1QsICAgICAg ICAgICAgQVRUUklCLERFU0NSLHtmRUFfUlJzKFJzVixSdVYsdWlWKTsgU0VNQU5USUNTO30pXAor UTZJTlNOKFMyX3AjI1RBRyMjdF9pbywgImlmIChQdjQpICJPUEVSIihSczMyKyN1NjoiU0hGVCIp PSJERVNULCAgICAgQVRUUklCLERFU0NSLHtmSU1NRVhUKHVpVik7IGZFQV9SSShSc1YsdWlWKTsg aWYgKGZMU0JPTEQoUHZWKSl7IFNFTUFOVElDUzsgfSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319 KVwKK1E2SU5TTihTMl9wIyNUQUcjI3RfcGksICJpZiAoUHY0KSAiT1BFUiIoUngzMisrI3M0OiJT SEZUIik9IkRFU1QsICAgICBBVFRSSUIsREVTQ1Ise2ZFQV9SRUcoUnhWKTsgaWYgKGZMU0JPTEQo UHZWKSl7IGZQTV9JKFJ4VixzaVYpOyBTRU1BTlRJQ1M7fSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEp O319KVwKK1E2SU5TTihTMl9wIyNUQUcjI2ZfaW8sICJpZiAoIVB2NCkgIk9QRVIiKFJzMzIrI3U2 OiJTSEZUIik9IkRFU1QsICAgICBBVFRSSUIsREVTQ1Ise2ZJTU1FWFQodWlWKTsgZkVBX1JJKFJz Vix1aVYpOyBpZiAoZkxTQk9MRE5PVChQdlYpKXsgU0VNQU5USUNTOyB9IGVsc2Uge1NUT1JFX0NB TkNFTChFQSk7fX0pXAorUTZJTlNOKFMyX3AjI1RBRyMjZl9waSwgImlmICghUHY0KSAiT1BFUiIo UngzMisrI3M0OiJTSEZUIik9IkRFU1QsICAgICBBVFRSSUIsREVTQ1Ise2ZFQV9SRUcoUnhWKTsg aWYgKGZMU0JPTEROT1QoUHZWKSl7IGZQTV9JKFJ4VixzaVYpOyBTRU1BTlRJQ1M7fSBlbHNlIHtT VE9SRV9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihTNF9wIyNUQUcjI3RfcnIsICJpZiAoUHY0KSAi T1BFUiIoUnMzMitSdTMyPDwjdTIpPSJERVNULCAgICAgQVRUUklCLERFU0NSLHtmRUFfUlJzKFJz VixSdVYsdWlWKTsgaWYgKGZMU0JPTEQoUHZWKSl7IFNFTUFOVElDUzsgfSBlbHNlIHtTVE9SRV9D QU5DRUwoRUEpO319KVwKK1E2SU5TTihTNF9wIyNUQUcjI2ZfcnIsICJpZiAoIVB2NCkgIk9QRVIi KFJzMzIrUnUzMjw8I3UyKT0iREVTVCwgICAgIEFUVFJJQixERVNDUix7ZkVBX1JScyhSc1YsUnVW LHVpVik7IGlmIChmTFNCT0xETk9UKFB2VikpeyBTRU1BTlRJQ1M7IH0gZWxzZSB7U1RPUkVfQ0FO Q0VMKEVBKTt9fSlcCitRNklOU04oUzRfcCMjVEFHIyN0bmV3X2lvLCJpZiAoUHY0Lm5ldykgIk9Q RVIiKFJzMzIrI3U2OiJTSEZUIik9IkRFU1QsQVRUUklCLERFU0NSLHtmSU1NRVhUKHVpVik7IGZF QV9SSShSc1YsdWlWKTsgaWYgKCBmTFNCTkVXKFB2TikpIHsgU0VNQU5USUNTOyB9IGVsc2Uge1NU T1JFX0NBTkNFTChFQSk7fX0pXAorUTZJTlNOKFM0X3AjI1RBRyMjZm5ld19pbywiaWYgKCFQdjQu bmV3KSAiT1BFUiIoUnMzMisjdTY6IlNIRlQiKT0iREVTVCxBVFRSSUIsREVTQ1Ise2ZJTU1FWFQo dWlWKTsgZkVBX1JJKFJzVix1aVYpOyBpZiAoZkxTQk5FV05PVChQdk4pKSB7IFNFTUFOVElDUzsg fSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihTNF9wIyNUQUcjI3RuZXdfcnIs ImlmIChQdjQubmV3KSAiT1BFUiIoUnMzMitSdTMyPDwjdTIpPSJERVNULEFUVFJJQixERVNDUix7 ZkVBX1JScyhSc1YsUnVWLHVpVik7IGlmICggZkxTQk5FVyhQdk4pKSB7IFNFTUFOVElDUzsgfSBl bHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihTNF9wIyNUQUcjI2ZuZXdfcnIsImlm ICghUHY0Lm5ldykgIk9QRVIiKFJzMzIrUnUzMjw8I3UyKT0iREVTVCxBVFRSSUIsREVTQ1Ise2ZF QV9SUnMoUnNWLFJ1Vix1aVYpOyBpZiAoZkxTQk5FV05PVChQdk4pKSB7IFNFTUFOVElDUzsgfSBl bHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KVwKK1E2SU5TTihTMl9wIyNUQUcjI3RuZXdfcGksICJp ZiAoUHY0Lm5ldykgIk9QRVIiKFJ4MzIrKyNzNDoiU0hGVCIpPSJERVNULCAgICAgQVRUUklCLERF U0NSLHtmRUFfUkVHKFJ4Vik7IGlmIChmTFNCTkVXKFB2TikpeyBmUE1fSShSeFYsc2lWKTsgU0VN QU5USUNTO30gZWxzZSB7U1RPUkVfQ0FOQ0VMKEVBKTt9fSlcCitRNklOU04oUzJfcCMjVEFHIyNm bmV3X3BpLCAiaWYgKCFQdjQubmV3KSAiT1BFUiIoUngzMisrI3M0OiJTSEZUIik9IkRFU1QsICAg ICBBVFRSSUIsREVTQ1Ise2ZFQV9SRUcoUnhWKTsgaWYgKGZMU0JORVdOT1QoUHZOKSl7IGZQTV9J KFJ4VixzaVYpOyBTRU1BTlRJQ1M7fSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KVwKK1E2SU5T TihTNF9wIyNUQUcjI3RfYWJzLCAiaWYgKFB2NCkgIk9QRVIiKCN1Nik9IkRFU1QsICAgICBBVFRS SUIsREVTQ1Ise2ZNVVNUX0lNTUVYVCh1aVYpOyBmRUFfSU1NKHVpVik7IGlmIChmTFNCT0xEKFB2 VikpeyBTRU1BTlRJQ1M7IH0gZWxzZSB7U1RPUkVfQ0FOQ0VMKEVBKTt9fSlcCitRNklOU04oUzRf cCMjVEFHIyNmX2FicywgImlmICghUHY0KSAiT1BFUiIoI3U2KT0iREVTVCwgICAgIEFUVFJJQixE RVNDUix7Zk1VU1RfSU1NRVhUKHVpVik7ZkVBX0lNTSh1aVYpOyBpZiAoZkxTQk9MRE5PVChQdlYp KXsgU0VNQU5USUNTOyB9IGVsc2Uge1NUT1JFX0NBTkNFTChFQSk7fX0pXAorUTZJTlNOKFM0X3Aj I1RBRyMjdG5ld19hYnMsImlmIChQdjQubmV3KSAiT1BFUiIoI3U2KT0iREVTVCxBVFRSSUIsREVT Q1Ise2ZNVVNUX0lNTUVYVCh1aVYpO2ZFQV9JTU0odWlWKTsgaWYgKCBmTFNCTkVXKFB2TikpIHsg U0VNQU5USUNTOyB9IGVsc2Uge1NUT1JFX0NBTkNFTChFQSk7fX0pXAorUTZJTlNOKFM0X3AjI1RB RyMjZm5ld19hYnMsImlmICghUHY0Lm5ldykgIk9QRVIiKCN1Nik9IkRFU1QsQVRUUklCLERFU0NS LHtmTVVTVF9JTU1FWFQodWlWKTtmRUFfSU1NKHVpVik7IGlmIChmTFNCTkVXTk9UKFB2TikpIHsg U0VNQU5USUNTOyB9IGVsc2Uge1NUT1JFX0NBTkNFTChFQSk7fX0pCisKKworCisKKy8qIFRoZSBz ZXQgb2YgMzItYml0IHByZWRpY2F0ZWQgc3RvcmUgaW5zdHJ1Y3Rpb25zICovCitTVERfUFNUX0FN T0RFUyhzdG9yZXJiLCJSdDMyIiwibWVtYiIsIlN0b3JlIEJ5dGUiLEFUVFJJQlMoQV9BUkNIVjIs QV9TVE9SRSksIjAiLDAsZlNUT1JFKDEsMSxFQSxmR0VUQllURSgwLFJ0VikpKQorU1REX1BTVF9B TU9ERVMoc3RvcmVyaCwiUnQzMiIsIm1lbWgiLCJTdG9yZSBIYWxmIGludGVnZXIiLEFUVFJJQlMo QV9BUkNIVjIsQV9TVE9SRSksIjEiLDEsZlNUT1JFKDEsMixFQSxmR0VUSEFMRigwLFJ0VikpKQor U1REX1BTVF9BTU9ERVMoc3RvcmVyZiwiUnQuSDMyIiwibWVtaCIsIlN0b3JlIFVwcGVyIEhhbGYg aW50ZWdlciIsQVRUUklCUyhBX0FSQ0hWMixBX1NUT1JFKSwiMSIsMSxmU1RPUkUoMSwyLEVBLGZH RVRIQUxGKDEsUnRWKSkpCitTVERfUFNUX0FNT0RFUyhzdG9yZXJpLCJSdDMyIiwibWVtdyIsIlN0 b3JlIFdvcmQiLEFUVFJJQlMoQV9BUkNIVjIsQV9TVE9SRSksIjIiLDIsZlNUT1JFKDEsNCxFQSxS dFYpKQorU1REX1BTVF9BTU9ERVMoc3RvcmVyZCwiUnR0MzIiLCJtZW1kIiwiU3RvcmUgRG91Ymxl IGludGVnZXIiLEFUVFJJQlMoQV9BUkNIVjIsQV9TVE9SRSksIjMiLDMsZlNUT1JFKDEsOCxFQSxS dHRWKSkKK1NURF9QU1RfQU1PREVTKHN0b3JlcmluZXcsIk50OC5uZXciLCJtZW13IiwiU3RvcmUg V29yZCIsQVRUUklCUyhBX0FSQ0hWMixBX1NUT1JFKSwiMiIsMixmU1RPUkUoMSw0LEVBLGZORVdS RUdfU1QoTnROKSkpCitTVERfUFNUX0FNT0RFUyhzdG9yZXJibmV3LCJOdDgubmV3IiwibWVtYiIs IlN0b3JlIEJ5dGUiLEFUVFJJQlMoQV9BUkNIVjIsQV9TVE9SRSksIjAiLDAsZlNUT1JFKDEsMSxF QSxmR0VUQllURSgwLGZORVdSRUdfU1QoTnROKSkpKQorU1REX1BTVF9BTU9ERVMoc3RvcmVyaG5l dywiTnQ4Lm5ldyIsIm1lbWgiLCJTdG9yZSBIYWxmIGludGVnZXIiLEFUVFJJQlMoQV9BUkNIVjIs QV9TVE9SRSksIjEiLDEsZlNUT1JFKDEsMixFQSxmR0VUSEFMRigwLGZORVdSRUdfU1QoTnROKSkp KQorCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAg ICAgTWVtLU9wcyAoTG9hZC1vcC1TdG9yZSkgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov CisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisKKy8qIFRoZSBzZXQgb2YgMzItYml0IG5vbi1wcmVkaWNhdGVkIG1lbS1v cHMgKi8KKyNkZWZpbmUgU1REX01FTU9QX0FNT0RFUyhUQUcsT1BFUixERVNDUixTRU1BTlRJQ1Mp XAorUTZJTlNOKEw0XyMjVEFHIyN3X2lvLCAgIm1lbXcoUnMzMisjdTY6MikiT1BFUiwgICAgIEFU VFJJQlMoQV9SRVNUUklDVF9TTE9UME9OTFkpLERFU0NSLHtmSU1NRVhUKHVpVik7IGZFQV9SSShS c1YsdWlWKTsgZkhJREUoc2l6ZTRzX3QgdG1wOykgZkxPQUQoMSw0LHMsRUEsdG1wKTsgU0VNQU5U SUNTOyAgZlNUT1JFKDEsNCxFQSx0bXApOyB9KVwKK1E2SU5TTihMNF8jI1RBRyMjYl9pbywgICJt ZW1iKFJzMzIrI3U2OjApIk9QRVIsICAgICBBVFRSSUJTKEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSxE RVNDUix7ZklNTUVYVCh1aVYpOyBmRUFfUkkoUnNWLHVpVik7IGZISURFKHNpemU0c190IHRtcDsp IGZMT0FEKDEsMSxzLEVBLHRtcCk7IFNFTUFOVElDUzsgIGZTVE9SRSgxLDEsRUEsdG1wKTsgfSlc CitRNklOU04oTDRfIyNUQUcjI2hfaW8sICAibWVtaChSczMyKyN1NjoxKSJPUEVSLCAgICAgQVRU UklCUyhBX1JFU1RSSUNUX1NMT1QwT05MWSksREVTQ1Ise2ZJTU1FWFQodWlWKTsgZkVBX1JJKFJz Vix1aVYpOyBmSElERShzaXplNHNfdCB0bXA7KSBmTE9BRCgxLDIscyxFQSx0bXApOyBTRU1BTlRJ Q1M7ICBmU1RPUkUoMSwyLEVBLHRtcCk7IH0pCisKKworCitTVERfTUVNT1BfQU1PREVTKGFkZF9t ZW1vcCwgIis9UnQzMiIsICJBZGQgUmVnaXN0ZXIgdG8gTWVtb3J5IFdvcmQiLCB0bXAgKz0gUnRW KQorU1REX01FTU9QX0FNT0RFUyhzdWJfbWVtb3AsICItPVJ0MzIiLCAiU3ViIFJlZ2lzdGVyIGZy b20gTWVtb3J5IFdvcmQiLCB0bXAgLT0gUnRWKQorU1REX01FTU9QX0FNT0RFUyhhbmRfbWVtb3As ICImPVJ0MzIiLCAiTG9naWNhbCBBTkQgUmVnaXN0ZXIgdG8gTWVtb3J5IFdvcmQiLCB0bXAgJj0g UnRWKQorU1REX01FTU9QX0FNT0RFUyhvcl9tZW1vcCwgInw9UnQzMiIsICJMb2dpY2FsIE9SIFJl Z2lzdGVyIHRvIE1lbW9yeSBXb3JkIiwgdG1wIHw9IFJ0VikKKworCitTVERfTUVNT1BfQU1PREVT KGlhZGRfbWVtb3AsICIrPSNVNSIsICJBZGQgSW1tZWRpYXRlIHRvIE1lbW9yeSBXb3JkIiwgdG1w ICs9IFVpVikKK1NURF9NRU1PUF9BTU9ERVMoaXN1Yl9tZW1vcCwgIi09I1U1IiwgIlN1YiBJbW1l ZGlhdGUgdG8gTWVtb3J5IFdvcmQiLCB0bXAgLT0gVWlWKQorU1REX01FTU9QX0FNT0RFUyhpYW5k X21lbW9wLCAiPWNscmJpdCgjVTUpIiwgIkNsZWFyIGEgYml0IGluIG1lbW9yeSIsIHRtcCAmPSAo figxPDxVaVYpKSkKK1NURF9NRU1PUF9BTU9ERVMoaW9yX21lbW9wLCAgIj1zZXRiaXQoI1U1KSIs ICJTZXQgYSBiaXQgaW4gbWVtb3J5IiwgdG1wIHw9ICgxPDxVaVYpKQorCisKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K Ky8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgVjQgc3RvcmUgaW1tZWRpYXRlcyAgICAg ICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFByZWRp Y2F0ZWQgU3RvcmUgaW1tZWRpYXRlcyAqLworI2RlZmluZSBWNF9QU1RJX0FNT0RFUyhUQUcsREVT VCxPUEVSLERFU0NSLEFUVFJJQixTSEZULFNFTUFOVElDUylcCitRNklOU04oUzRfIyNUQUcjI3Rf aW8sImlmIChQdjQpICJPUEVSIihSczMyKyN1NjoiU0hGVCIpPSJERVNULEFUVFJJQixERVNDUix7 ZkVBX1JJKFJzVix1aVYpOyBpZiAoZkxTQk9MRChQdlYpKXsgU0VNQU5USUNTOyB9IGVsc2Uge1NU T1JFX0NBTkNFTChFQSk7fX0pXAorUTZJTlNOKFM0XyMjVEFHIyNmX2lvLCJpZiAoIVB2NCkgIk9Q RVIiKFJzMzIrI3U2OiJTSEZUIik9IkRFU1QsQVRUUklCLERFU0NSLHtmRUFfUkkoUnNWLHVpVik7 IGlmIChmTFNCT0xETk9UKFB2VikpeyBTRU1BTlRJQ1M7IH0gZWxzZSB7U1RPUkVfQ0FOQ0VMKEVB KTt9fSlcCitRNklOU04oUzRfIyNUQUcjI3RuZXdfaW8sImlmIChQdjQubmV3KSAiT1BFUiIoUnMz MisjdTY6IlNIRlQiKT0iREVTVCxBVFRSSUIsREVTQ1Ise2ZFQV9SSShSc1YsdWlWKTsgaWYgKGZM U0JORVcoUHZOKSl7IFNFTUFOVElDUzsgfSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KVwKK1E2 SU5TTihTNF8jI1RBRyMjZm5ld19pbywiaWYgKCFQdjQubmV3KSAiT1BFUiIoUnMzMisjdTY6IlNI RlQiKT0iREVTVCxBVFRSSUIsREVTQ1Ise2ZFQV9SSShSc1YsdWlWKTsgaWYgKGZMU0JORVdOT1Qo UHZOKSl7IFNFTUFOVElDUzsgfSBlbHNlIHtTVE9SRV9DQU5DRUwoRUEpO319KQorCisvKiBUaGUg c2V0IG9mIDMyLWJpdCBzdG9yZSBpbW1lZGlhdGUgaW5zdHJ1Y3Rpb25zICovCitWNF9QU1RJX0FN T0RFUyhzdG9yZWlyYiwiI1M2IiwibWVtYiIsIlN0b3JlIEltbWVkaWF0ZSBCeXRlIixBVFRSSUJT KEFfQVJDSFYyLEFfU1RPUkUpLCIwIixmSU1NRVhUKFNpVik7IGZTVE9SRSgxLDEsRUEsU2lWKSkK K1Y0X1BTVElfQU1PREVTKHN0b3JlaXJoLCIjUzYiLCJtZW1oIiwiU3RvcmUgSW1tZWRpYXRlIEhh bGYgaW50ZWdlciIsQVRUUklCUyhBX0FSQ0hWMixBX1NUT1JFKSwiMSIsZklNTUVYVChTaVYpOyBm U1RPUkUoMSwyLEVBLFNpVikpCitWNF9QU1RJX0FNT0RFUyhzdG9yZWlyaSwiI1M2IiwibWVtdyIs IlN0b3JlIEltbWVkaWF0ZSBXb3JkIixBVFRSSUJTKEFfQVJDSFYyLEFfU1RPUkUpLCIyIixmSU1N RVhUKFNpVik7IGZTVE9SRSgxLDQsRUEsU2lWKSkKKworCisvKiBOb24tcHJlZGljYXRlZCBzdG9y ZSBpbW1lZGlhdGVzICovCisjZGVmaW5lIFY0X1NUSV9BTU9ERVMoVEFHLERFU1QsT1BFUixERVND UixBVFRSSUIsU0hGVCxTRU1BTlRJQ1MpXAorUTZJTlNOKFM0XyMjVEFHIyNfaW8sICBPUEVSIihS czMyKyN1NjoiU0hGVCIpPSJERVNULCAgQVRUUklCLERFU0NSLHtmRUFfUkkoUnNWLHVpVik7IFNF TUFOVElDUzsgfSkKKworLyogVGhlIHNldCBvZiAzMi1iaXQgc3RvcmUgaW1tZWRpYXRlIGluc3Ry dWN0aW9ucyAqLworVjRfU1RJX0FNT0RFUyhzdG9yZWlyYiwiI1M4IiwibWVtYiIsIlN0b3JlIElt bWVkaWF0ZSBCeXRlIixBVFRSSUJTKEFfQVJDSFYyLEFfU1RPUkUpLCIwIixmSU1NRVhUKFNpVik7 IGZTVE9SRSgxLDEsRUEsU2lWKSkKK1Y0X1NUSV9BTU9ERVMoc3RvcmVpcmgsIiNTOCIsIm1lbWgi LCJTdG9yZSBJbW1lZGlhdGUgSGFsZiBpbnRlZ2VyIixBVFRSSUJTKEFfQVJDSFYyLEFfU1RPUkUp LCIxIixmSU1NRVhUKFNpVik7IGZTVE9SRSgxLDIsRUEsU2lWKSkKK1Y0X1NUSV9BTU9ERVMoc3Rv cmVpcmksIiNTOCIsIm1lbXciLCJTdG9yZSBJbW1lZGlhdGUgV29yZCIsQVRUUklCUyhBX0FSQ0hW MixBX1NUT1JFKSwiMiIsZklNTUVYVChTaVYpOyBmU1RPUkUoMSw0LEVBLFNpVikpCisKKworCisK KworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKy8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAgICAgICAgVjIgR1At cmVsYXRpdmUgTEQvU1QgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KKworI2RlZmluZSBTVERfR1BMRF9BTU9ERVMoVEFHLE9QRVIsREVTQ1IsQVRUUklC LFNIRlQsU0VNQU5USUNTKVwKK1E2SU5TTihMMl8jI1RBRyMjZ3AsIE9QRVIiKGdwKyN1MTY6IlNI RlQiKSIsICAgQVRUUklCLERFU0NSLHtmSU1NRVhUKHVpVik7IGZFQV9HUEkodWlWKTsgU0VNQU5U SUNTOyB9KQorCisvKiBUaGUgc2V0IG9mIDMyLWJpdCBsb2FkIGluc3RydWN0aW9ucyAqLworU1RE X0dQTERfQU1PREVTKGxvYWRydWIsIlJkMzI9bWVtdWIiLCJMb2FkIFVuc2lnbmVkIEJ5dGUiLEFU VFJJQlMoQV9MT0FELEFfQVJDSFYyKSwiMCIsZkxPQUQoMSwxLHUsRUEsUmRWKSkKK1NURF9HUExE X0FNT0RFUyhsb2FkcmIsICJSZDMyPW1lbWIiLCAiTG9hZCBzaWduZWQgQnl0ZSIsQVRUUklCUyhB X0xPQUQsQV9BUkNIVjIpLCIwIixmTE9BRCgxLDEscyxFQSxSZFYpKQorU1REX0dQTERfQU1PREVT KGxvYWRydWgsIlJkMzI9bWVtdWgiLCJMb2FkIHVuc2lnbmVkIEhhbGYgaW50ZWdlciIsQVRUUklC UyhBX0xPQUQsQV9BUkNIVjIpLCIxIixmTE9BRCgxLDIsdSxFQSxSZFYpKQorU1REX0dQTERfQU1P REVTKGxvYWRyaCwgIlJkMzI9bWVtaCIsICJMb2FkIHNpZ25lZCBIYWxmIGludGVnZXIiLEFUVFJJ QlMoQV9MT0FELEFfQVJDSFYyKSwiMSIsZkxPQUQoMSwyLHMsRUEsUmRWKSkKK1NURF9HUExEX0FN T0RFUyhsb2FkcmksICJSZDMyPW1lbXciLCAiTG9hZCBXb3JkIixBVFRSSUJTKEFfTE9BRCxBX0FS Q0hWMiksIjIiLGZMT0FEKDEsNCx1LEVBLFJkVikpCitTVERfR1BMRF9BTU9ERVMobG9hZHJkLCAi UmRkMzI9bWVtZCIsIkxvYWQgRG91YmxlIGludGVnZXIiLEFUVFJJQlMoQV9MT0FELEFfQVJDSFYy KSwiMyIsZkxPQUQoMSw4LHUsRUEsUmRkVikpCisKKworI2RlZmluZSBTVERfR1BTVF9BTU9ERVMo VEFHLERFU1QsT1BFUixERVNDUixBVFRSSUIsU0hGVCxTRU1BTlRJQ1MpXAorUTZJTlNOKFMyXyMj VEFHIyNncCwgT1BFUiIoZ3ArI3UxNjoiU0hGVCIpPSJERVNULCBBVFRSSUIsREVTQ1Ise2ZJTU1F WFQodWlWKTsgZkVBX0dQSSh1aVYpOyBTRU1BTlRJQ1M7IH0pCisKKy8qIFRoZSBzZXQgb2YgMzIt Yml0IHN0b3JlIGluc3RydWN0aW9ucyAqLworU1REX0dQU1RfQU1PREVTKHN0b3JlcmIsICJSdDMy IiwgIm1lbWIiLCJTdG9yZSBCeXRlIixBVFRSSUJTKEFfU1RPUkUsQV9BUkNIVjIpLCIwIixmU1RP UkUoMSwxLEVBLGZHRVRCWVRFKDAsUnRWKSkpCitTVERfR1BTVF9BTU9ERVMoc3RvcmVyaCwgIlJ0 MzIiLCAibWVtaCIsIlN0b3JlIEhhbGYgaW50ZWdlciIsQVRUUklCUyhBX1NUT1JFLEFfQVJDSFYy KSwiMSIsZlNUT1JFKDEsMixFQSxmR0VUSEFMRigwLFJ0VikpKQorU1REX0dQU1RfQU1PREVTKHN0 b3JlcmYsICJSdC5IMzIiLCAibWVtaCIsIlN0b3JlIFVwcGVyIEhhbGYgaW50ZWdlciIsQVRUUklC UyhBX1NUT1JFLEFfQVJDSFYyKSwiMSIsZlNUT1JFKDEsMixFQSxmR0VUSEFMRigxLFJ0VikpKQor U1REX0dQU1RfQU1PREVTKHN0b3JlcmksICJSdDMyIiwgIm1lbXciLCJTdG9yZSBXb3JkIixBVFRS SUJTKEFfU1RPUkUsQV9BUkNIVjIpLCIyIixmU1RPUkUoMSw0LEVBLFJ0VikpCitTVERfR1BTVF9B TU9ERVMoc3RvcmVyZCwgIlJ0dDMyIiwibWVtZCIsIlN0b3JlIERvdWJsZSBpbnRlZ2VyIixBVFRS SUJTKEFfU1RPUkUsQV9BUkNIVjIpLCIzIixmU1RPUkUoMSw4LEVBLFJ0dFYpKQorU1REX0dQU1Rf QU1PREVTKHN0b3JlcmluZXcsICJOdDgubmV3IiwgIm1lbXciLCJTdG9yZSBXb3JkIixBVFRSSUJT KEFfU1RPUkUsQV9BUkNIVjIpLCIyIixmU1RPUkUoMSw0LEVBLGZORVdSRUdfU1QoTnROKSkpCitT VERfR1BTVF9BTU9ERVMoc3RvcmVyYm5ldywgIk50OC5uZXciLCAibWVtYiIsIlN0b3JlIEJ5dGUi LEFUVFJJQlMoQV9TVE9SRSxBX0FSQ0hWMiksIjAiLGZTVE9SRSgxLDEsRUEsZkdFVEJZVEUoMCxm TkVXUkVHX1NUKE50TikpKSkKK1NURF9HUFNUX0FNT0RFUyhzdG9yZXJobmV3LCAiTnQ4Lm5ldyIs ICJtZW1oIiwiU3RvcmUgSGFsZiBpbnRlZ2VyIixBVFRSSUJTKEFfU1RPUkUsQV9BUkNIVjIpLCIx IixmU1RPUkUoMSwyLEVBLGZHRVRIQUxGKDAsZk5FV1JFR19TVChOdE4pKSkpCmRpZmYgLS1naXQg YS90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tYWNyb3MuZGVmIGIvdGFyZ2V0L2hleGFnb24vaW1w b3J0ZWQvbWFjcm9zLmRlZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZmZi YjFkCi0tLSAvZGV2L251bGwKKysrIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvbWFjcm9zLmRl ZgpAQCAtMCwwICsxLDE1MjkgQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMCBRdWFs Y29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAq ICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxz LgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2Vu ZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3Qs IHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworREVGX01BQ1JPKAor CUxJS0VMWSwJCS8qIE5BTUUgKi8KKwlfX2J1aWx0aW5fZXhwZWN0KChYKSwxKSwgLyogQkVIICov CisJKCkJCS8qIGF0dHJpYnMgKi8KKykKKworREVGX01BQ1JPKAorCVVOTElLRUxZLAkvKiBOQU1F ICovCisJX19idWlsdGluX2V4cGVjdCgoWCksMCksIC8qIEJFSCAqLworCSgpCQkvKiBhdHRyaWJz ICovCispCisKK0RFRl9NQUNSTygKKwlDQU5DRUwsIC8qIG1hY3JvIG5hbWUgKi8KKwl7aWYgKHRo cmVhZC0+bGFzdF9wa3QpIHRocmVhZC0+bGFzdF9wa3QtPnNsb3RfY2FuY2VsbGVkIHw9ICgxPDxp bnNuLT5zbG90KTsgcmV0dXJuO30gLCAvKiBiZWhhdmlvciAqLworCShBX0NPTkRFWEVDKQorKQor CitERUZfTUFDUk8oCisJTE9BRF9DQU5DRUwsIC8qIG1hY3JvIG5hbWUgKi8KKwl7bWVtX2dlbmVy YWxfbG9hZF9jYW5jZWxsZWQodGhyZWFkLEVBLGluc24pO0NBTkNFTDt9ICwgLyogYmVoYXZpb3Ig Ki8KKwkoQV9DT05ERVhFQykKKykKKworREVGX01BQ1JPKAorCVNUT1JFX0NBTkNFTCwgLyogbWFj cm8gbmFtZSAqLworCXttZW1fZ2VuZXJhbF9zdG9yZV9jYW5jZWxsZWQodGhyZWFkLEVBLGluc24p O0NBTkNFTDt9ICwgLyogYmVoYXZpb3IgKi8KKwkoQV9DT05ERVhFQykKKykKKworREVGX01BQ1JP KAorCWZNQVgsIC8qIG1hY3JvIG5hbWUgKi8KKwkoKChBKSA+IChCKSkgPyAoQSkgOiAoQikpLCAv KiBiZWhhdmlvciAqLworCS8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01BQ1JP KAorCWZNSU4sIC8qIG1hY3JvIG5hbWUgKi8KKwkoKChBKSA8IChCKSkgPyAoQSkgOiAoQikpLCAv KiBiZWhhdmlvciAqLworCS8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01BQ1JP KAorCWZBQlMsIC8qIG1hY3JvIG5hbWUgKi8KKwkoKChBKTwwKT8oLShBKSk6KEEpKSwgLyogYmVo YXZpb3IgKi8KKwkvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKKworLyogQml0IGluc2Vy dCAqLworREVGX01BQ1JPKAorCWZJTlNFUlRfQklUUywKKyAgICAgICAgeworCSAgIFJFRyA9ICgo UkVHKSAmIH4oKChmQ09OU1RMTCgxKTw8KFdJRFRIKSktMSk8PChPRkZTRVQpKSkgfCAoKChJTlZB TCkgJiAoKGZDT05TVExMKDEpPDwoV0lEVEgpKS0xKSkgPDwgKE9GRlNFVCkpOworICAgICAgICB9 LAorCS8qIGF0dHJpYnMgKi8KKykKKworLyogQml0IGV4dHJhY3QgKi8KK0RFRl9NQUNSTygKKwlm RVhUUkFDVFVfQklUUywKKwkoZlpYVE4oV0lEVEgsMzIsKElOUkVHID4+IE9GRlNFVCkpKSwKKwkv KiBhdHRyaWJzICovCispCisKK0RFRl9NQUNSTygKKwlmRVhUUkFDVFVfQklESVIsCisJKGZaWFRO KFdJRFRILDMyLGZCSURJUl9MU0hJRlRSKChJTlJFRyksKE9GRlNFVCksNF84KSkpLAorCS8qIGF0 dHJpYnMgKi8KKykKKworREVGX01BQ1JPKAorCWZFWFRSQUNUVV9SQU5HRSwKKwkoZlpYVE4oKEhJ QklULUxPV0JJVCsxKSwzMiwoSU5SRUcgPj4gTE9XQklUKSkpLAorCS8qIGF0dHJpYnMgKi8KKykK KworREVGX01BQ1JPKAorCWY4QklUU09GLAorCSggKFZBTCkgPyAweGZmIDogMHgwMCksCisJLyog YXR0cmlicyAqLworKQorCitERUZfTUFDUk8oCisJZkxTQk9MRCwKKwkoKFZBTCkgJiAxKSwKKwko KQorKQorCitERUZfTUFDUk8oCisJZkxTQk5FVywKKwlwcmVkbG9nX3JlYWQodGhyZWFkLFBOVU0p LAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmTFNCTkVXMCwKKwlwcmVkbG9nX3JlYWQodGhyZWFk LDApLAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmTFNCTkVXMSwKKwlwcmVkbG9nX3JlYWQodGhy ZWFkLDEpLAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmTFNCT0xETk9ULAorCSghZkxTQk9MRChW QUwpKSwKKwkoKQorKQorCitERUZfTUFDUk8oCisJZkxTQk5FV05PVCwKKwkoIWZMU0JORVcoUE5V TSkpLAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmTFNCTkVXME5PVCwKKwkoIWZMU0JORVcwKSwK KwkoKQorKQorCitERUZfTUFDUk8oCisJZkxTQk5FVzFOT1QsCisJKCFmTFNCTkVXMSksCisJKCkK KykKKworREVGX01BQ1JPKAorCWZORVdSRUcsCisJKHtpZiAobmV3dmFsdWVfbWlzc2luZyh0aHJl YWQsUk5VTSkgfHwKKyAgICAgIElTX0NBTkNFTExFRChpbnNuLT5uZXdfdmFsdWVfcHJvZHVjZXJf c2xvdCkpIENBTkNFTDsgcmVnbG9nX3JlYWQodGhyZWFkLFJOVU0pO30pLAorCShBX0RPVE5FV1ZB TFVFLEFfUkVTVFJJQ1RfU0xPVDBPTkxZKQorKQorLy8gU3RvcmUgbmV3IHdpdGggYSBtaXNzaW5n IG5ld3ZhbHVlIG9yIGNhbmNlbGxlZCBnb2VzIG91dCBhcyBhIHplcm8gYnl0ZSBzdG9yZSBpbiBW NjUKKy8vIHRha2UgYWR2YW50YWdlIG9mIHRoZSBmYWN0IHRoYXQgcmVnbG9nX3JlYWQgcmV0dXJu cyB6ZXJvIGZvciBub3QgdmFsaWQgcm51bQorREVGX01BQ1JPKAorCWZORVdSRUdfU1QsCisJKHtp ZiAobmV3dmFsdWVfbWlzc2luZyh0aHJlYWQsUk5VTSkgfHwKKyAgICAgIElTX0NBTkNFTExFRChp bnNuLT5uZXdfdmFsdWVfcHJvZHVjZXJfc2xvdCkpIHsgU1RPUkVfWkVSTzsgUk5VTSA9IC0xOyB9 OyByZWdsb2dfcmVhZCh0aHJlYWQsUk5VTSk7fSksCisJKEFfRE9UTkVXVkFMVUUsQV9SRVNUUklD VF9TTE9UME9OTFkpCispCisKK0RFRl9NQUNSTygKKwlmU0FUVVZBTE4sCisJKHtmU0VUX09WRVJG TE9XKCk7ICgoVkFMKSA8IDApID8gMCA6ICgoMUxMPDwoTikpLTEpO30pLAorCSgpCispCisKK0RF Rl9NQUNSTygKKwlmU0FUVkFMTiwKKwkoe2ZTRVRfT1ZFUkZMT1coKTsgKChWQUwpIDwgMCkgPyAo LSgxTEw8PCgoTiktMSkpKSA6ICgoMUxMPDwoKE4pLTEpKS0xKTt9KSwKKwkoKQorKQorCitERUZf TUFDUk8oCisJZlpYVE4sIC8qIG1hY3JvIG5hbWUgKi8KKwkoKFZBTCkgJiAoKDFMTDw8KE4pKS0x KSksCisJLyogYXR0cmlicyAqLworKQorCitERUZfTUFDUk8oCisJZlNYVE4sIC8qIG1hY3JvIG5h bWUgKi8KKwkoKGZaWFROKE4sTSxWQUwpIF4gKDFMTDw8KChOKS0xKSkpIC0gKDFMTDw8KChOKS0x KSkpLAorCS8qIGF0dHJpYnMgKi8KKykKKworREVGX01BQ1JPKAorCWZTQVROLAorCSgoZlNYVE4o Tiw2NCxWQUwpID09IChWQUwpKSA/IChWQUwpIDogZlNBVFZBTE4oTixWQUwpKSwKKwkoKQorKQor CitERUZfTUFDUk8oCisJZkFERFNBVDY0LAorCXsKKwkgIHNpemU4dV90IF9fYSA9IGZDQVNUOHUo QSk7CisJICBzaXplOHVfdCBfX2IgPSBmQ0FTVDh1KEIpOworCSAgc2l6ZTh1X3QgX19zdW0gPSBf X2EgKyBfX2I7CisJICBzaXplOHVfdCBfX3hvciA9IF9fYSBeIF9fYjsKKwkgIGNvbnN0IHNpemU4 dV90IF9fbWFzayA9IDB4ODAwMDAwMDAwMDAwMDAwMFVMTDsKKwkgIGlmIChfX3hvciAmIF9fbWFz aykgeworCQkvKiBPcHBvc2l0ZSBzaWducywgT0sgKi8KKwkJRFNUID0gX19zdW07CisJICB9IGVs c2UgaWYgKChfX2EgXiBfX3N1bSkgJiBfX21hc2spIHsKKwkJLyogU2lnbnMgbWlzbWF0Y2ggKi8K KwkJaWYgKF9fc3VtICYgX19tYXNrKSB7CisJCQkvKiBvdmVyZmxvd2VkIHRvIG5lZ2F0aXZlLCBt YWtlIG1heCBwb3MgKi8KKwkJCURTVD0weDdGRkZGRkZGRkZGRkZGRkZMTDsgZlNFVF9PVkVSRkxP VygpOworCQl9IGVsc2UgeworCQkJLyogb3ZlcmZsb3dlZCB0byBwb3NpdGl2ZSwgbWFrZSBtYXgg bmVnICovCisJCQlEU1Q9MHg4MDAwMDAwMDAwMDAwMDAwTEw7IGZTRVRfT1ZFUkZMT1coKTsKKwkJ fQorCSAgfSBlbHNlIHsKKwkJLyogc2lnbnMgZGlkIG5vdCBtaXNtYXRjaCwgT0sgKi8KKwkJRFNU ID0gX19zdW07CisJICB9CisgICAgICAgIH0sCisJKCkKKykKKworREVGX01BQ1JPKAorCWZTQVRV TiwKKwkoKGZaWFROKE4sNjQsVkFMKSA9PSAoVkFMKSkgPyAoVkFMKSA6IGZTQVRVVkFMTihOLFZB TCkpLAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmU0FUSCwKKwkoZlNBVE4oMTYsVkFMKSksCisJ KCkKKykKKworCitERUZfTUFDUk8oCisJZlNBVFVILAorCShmU0FUVU4oMTYsVkFMKSksCisJKCkK KykKKworREVGX01BQ1JPKAorCWZTQVRVQiwKKwkoZlNBVFVOKDgsVkFMKSksCisJKCkKKykKK0RF Rl9NQUNSTygKKwlmU0FUQiwKKwkoZlNBVE4oOCxWQUwpKSwKKwkoKQorKQorCisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogaW1tZWRpYXRlIGV4dGVuc2lvbiAg ICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K KworREVGX01BQ1JPKAorCWZJTU1FWFQsCisJKElNTSA9IElNTSksCisJKEFfRVhURU5EQUJMRSkK KykKKworREVGX01BQ1JPKAorCWZNVVNUX0lNTUVYVCwKKwlmSU1NRVhUKElNTSksCisJKEFfRVhU RU5EQUJMRSkKKykKKworREVGX01BQ1JPKAorCWZQQ0FMSUdOLAorCUlNTT0oSU1NICYgflBDQUxJ R05fTUFTSyksCisJKEFfRVhURU5EQUJMRSkKKykKKworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKiovCisvKiBSZWFkIGFuZCBXcml0ZSBJbXBsaWNpdCBSZWdzICAgICAgKi8K Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitERUZfTUFDUk8oCisJ ZlJFQURfTFIsIC8qIHJlYWQgbGluayByZWdpc3RlciAqLworCShSRUFEX1JSRUcoUkVHX0xSKSks ICAgICAgICAgIC8qIGJlaGF2aW9yICovCisJKCkKKykKKworREVGX01BQ1JPKAorCWZXUklURV9M UiwgLyogd3JpdGUgbHIgKi8KKwlXUklURV9SUkVHKFJFR19MUixBKSwgICAgICAgICAgLyogYmVo YXZpb3IgKi8KKwkoQV9JTVBMSUNJVF9XUklURVNfTFIpCispCisKK0RFRl9NQUNSTygKKwlmV1JJ VEVfRlAsIC8qIHdyaXRlIHNwICovCisJV1JJVEVfUlJFRyhSRUdfRlAsQSksICAgICAgICAgIC8q IGJlaGF2aW9yICovCisJKEFfSU1QTElDSVRfV1JJVEVTX0ZQKQorKQorCitERUZfTUFDUk8oCisJ ZldSSVRFX1NQLCAvKiB3cml0ZSBzcCAqLworICAgICAgICBXUklURV9SUkVHKFJFR19TUCxBKSwg ICAgICAgICAgLyogYmVoYXZpb3IgKi8KKwkoQV9JTVBMSUNJVF9XUklURVNfU1ApCispCisKK0RF Rl9NQUNSTygKKwlmUkVBRF9TUCwgLyogcmVhZCBzdGFjayBwb2ludGVyICovCisJKFJFQURfUlJF RyhSRUdfU1ApKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKwkoKQorKQorCitERUZfTUFDUk8o CisJZlJFQURfTEMwLCAvKiByZWFkIGxvb3AgY291bnQgKi8KKwkoUkVBRF9SUkVHKFJFR19MQzAp KSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKwkoKQorKQorCitERUZfTUFDUk8oCisJZlJFQURf TEMxLCAvKiByZWFkIGxvb3AgY291bnQgKi8KKwkoUkVBRF9SUkVHKFJFR19MQzEpKSwgICAgICAg ICAgLyogYmVoYXZpb3IgKi8KKwkoKQorKQorCitERUZfTUFDUk8oCisJZlJFQURfU0EwLCAvKiBy ZWFkIHN0YXJ0IGFkZHIgKi8KKwkoUkVBRF9SUkVHKFJFR19TQTApKSwgICAgICAgICAgLyogYmVo YXZpb3IgKi8KKwkoKQorKQorCitERUZfTUFDUk8oCisJZlJFQURfU0ExLCAvKiByZWFkIHN0YXJ0 IGFkZHIgKi8KKwkoUkVBRF9SUkVHKFJFR19TQTEpKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8K KwkoKQorKQorCisKK0RFRl9NQUNSTygKKwlmUkVBRF9GUCwgLyogcmVhZCBmcmFtZSBwb2ludGVy ICovCisJKFJFQURfUlJFRyhSRUdfRlApKSwgICAgICAgICAgLyogYmVoYXZpb3IgKi8KKwkoKQor KQorCitERUZfTUFDUk8oCisJZlJFQURfR1AsIC8qIHJlYWQgZ2xvYmFsIHBvaW50ZXIgKi8KKwko aW5zbi0+ZXh0ZW5zaW9uX3ZhbGlkID8gMCA6IFJFQURfUlJFRyhSRUdfR1ApKSwgICAgICAgICAg LyogYmVoYXZpb3IgKi8KKwkoKQorKQorCitERUZfTUFDUk8oCisJZlJFQURfUEMsIC8qIHJlYWQg UEMgKi8KKwkoUkVBRF9SUkVHKFJFR19QQykpLCAgICAgICAgICAvKiBiZWhhdmlvciAqLworCSgp CispCisKK0RFRl9NQUNSTygKKwlmUkVBRF9OUEMsIC8qIHJlYWQgbmV4dCBQQyAqLworCSh0aHJl YWQtPm5leHRfUEMgJiAoMHhmZmZmZmZmZSkpLCAgICAgICAgICAvKiBiZWhhdmlvciAqLworCSgp CispCisKK0RFRl9NQUNSTygKKwlmUkVBRF9QMCwgLyogcmVhZCBQcmVkaWNhdGUgMCAqLworCShS RUFEX1BSRUcoMCkpLCAgICAgICAgICAvKiBiZWhhdmlvciAqLworCSgpCispCisKK0RFRl9NQUNS TygKKwlmUkVBRF9QMywgLyogcmVhZCBQcmVkaWNhdGUgMyAqLworCShSRUFEX1BSRUcoMykpLCAg ICAgICAgICAvKiBiZWhhdmlvciAqLworCSgpCispCisKK0RFRl9NQUNSTygKKwlmQ0hFQ0tfUENB TElHTiwKKwlpZiAoKChBKSAmIFBDQUxJR05fTUFTSykpIHsKKwkJcmVnaXN0ZXJfZXJyb3JfZXhj ZXB0aW9uKHRocmVhZCxQUkVDSVNFX0NBVVNFX1BDX05PVF9BTElHTkVELHRocmVhZC0+UmVnc1tS RUdfQkFEVkEwXSx0aHJlYWQtPlJlZ3NbUkVHX0JBRFZBMV0sR0VUX1NTUl9GSUVMRChTU1JfQlZT KSxHRVRfU1NSX0ZJRUxEKFNTUl9WMCksR0VUX1NTUl9GSUVMRChTU1JfVjEpLDApOworCX0sCisJ KCkKKykKKworREVGX01BQ1JPKAorCWZXUklURV9OUEMsIC8qIHdyaXRlIG5leHQgUEMgKi8KKwlp ZiAoIXRocmVhZC0+YnJhbmNoX3Rha2VuKSB7CisgICAgICAgICAgIGlmIChBICE9IHRocmVhZC0+ bmV4dF9QQykgeworICAgICAgICAgICAgIHRocmVhZC0+bmV4dF9wa3RfZ3Vlc3M9dGhyZWFkLT5s YXN0X3BrdC0+dGFrZW5fcHRyOworICAgICAgICAgICB9CisJICAgZkNIRUNLX1BDQUxJR04oQSk7 CisgICAgICAgICAgIHRocmVhZC0+YnJhbmNoZWQgPSAxOyB0aHJlYWQtPmJyYW5jaF90YWtlbiA9 IDE7IHRocmVhZC0+bmV4dF9QQyA9IEE7IFwKKyAgICAgICAgICAgdGhyZWFkLT5icmFuY2hfb2Zm c2V0ID0gaW5zbi0+ZW5jb2Rpbmdfb2Zmc2V0OyB0aHJlYWQtPmJyYW5jaF9vcGNvZGUgPSBpbnNu LT5vcGNvZGU7CisgICAgICAgIH0KKyAgICAgICAgICwgICAgICAgICAgLyogYmVoYXZpb3IgKi8K KwkoQV9DT0YpCispCisKK0RFRl9NQUNSTygKKwlmQlJBTkNILAorCWZXUklURV9OUEMoTE9DKTsg ZkNPRl9DQUxMQkFDSyhMT0MsVFlQRSksCisJKCkKKykKKworREVGX01BQ1JPKAorCWZKVU1QUiwJ LyogQSBqdW1wciBoYXMgZXhlY3V0ZWQgKi8KKwl7ZkJSQU5DSChUQVJHRVQsQ09GX1RZUEVfSlVN UFIpO30sCisJKEFfSU5ESVJFQ1QpCispCisKK0RFRl9NQUNSTygKKwlmSElOVEpSLAkvKiBBIGhp bnRqciBpbnN0cnVjdGlvbiBoYXMgZXhlY3V0ZWQgKi8KKwl7IH0sCispCisKK0RFRl9NQUNSTygK KwlmQ0FMTCwJLyogRG8gYSBjYWxsICovCisJaWYgKCF0aHJlYWQtPmJyYW5jaF90YWtlbikge2ZC UF9SQVNfQ0FMTChBKTsgZldSSVRFX0xSKGZSRUFEX05QQygpKTsgZkJSQU5DSChBLENPRl9UWVBF X0NBTEwpO30sCisJKEFfQ09GLEFfSU1QTElDSVRfV1JJVEVTX0xSLEFfQ0FMTCkKKykKKworREVG X01BQ1JPKAorCWZDQUxMUiwJLyogRG8gYSBjYWxsIFJlZ2lzdGVyICovCisJaWYgKCF0aHJlYWQt PmJyYW5jaF90YWtlbikge2ZCUF9SQVNfQ0FMTChBKTsgZldSSVRFX0xSKGZSRUFEX05QQygpKTsg ZkJSQU5DSChBLENPRl9UWVBFX0NBTExSKTt9LAorCShBX0NPRixBX0lNUExJQ0lUX1dSSVRFU19M UixBX0NBTEwpCispCisKK0RFRl9NQUNSTygKKwlmV1JJVEVfTE9PUF9SRUdTMCwgLyogd3JpdGUg bG4sc2EsZWEsbGMgKi8KKwl7V1JJVEVfUlJFRyhSRUdfTEMwLENPVU5UKTsKKyAgICAgICAgIFdS SVRFX1JSRUcoUkVHX1NBMCxTVEFSVCk7fSwKKwkoQV9JTVBMSUNJVF9XUklURVNfTEMwLEFfSU1Q TElDSVRfV1JJVEVTX1NBMCkKKykKKworREVGX01BQ1JPKAorCWZXUklURV9MT09QX1JFR1MxLCAv KiB3cml0ZSBsbixzYSxlYSxsYyAqLworCXtXUklURV9SUkVHKFJFR19MQzEsQ09VTlQpOworICAg ICAgICAgV1JJVEVfUlJFRyhSRUdfU0ExLFNUQVJUKTt9LAorCShBX0lNUExJQ0lUX1dSSVRFU19M QzEsQV9JTVBMSUNJVF9XUklURVNfU0ExKQorKQorCitERUZfTUFDUk8oCisJZldSSVRFX0xDMCwK KwlXUklURV9SUkVHKFJFR19MQzAsVkFMKSwKKwkoQV9JTVBMSUNJVF9XUklURVNfTEMwKQorKQor CitERUZfTUFDUk8oCisJZldSSVRFX0xDMSwKKwlXUklURV9SUkVHKFJFR19MQzEsVkFMKSwKKwko QV9JTVBMSUNJVF9XUklURVNfTEMxKQorKQorCitERUZfTUFDUk8oCisJZkNBUlJZX0ZST01fQURE LAorCWNhcnJ5X2Zyb21fYWRkNjQoQSxCLEMpLAorCS8qIE5PVEhJTkcgKi8KKykKKworREVGX01B Q1JPKAorCWZTRVRfT1ZFUkZMT1csCisJU0VUX1VTUl9GSUVMRChVU1JfT1ZGLDEpLAorCSgpCisp CisKK0RFRl9NQUNSTygKKwlmU0VUX0xQQ0ZHLAorCVNFVF9VU1JfRklFTEQoVVNSX0xQQ0ZHLChW QUwpKSwKKwkoKQorKQorCisKK0RFRl9NQUNSTygKKwlmR0VUX0xQQ0ZHLAorCShHRVRfVVNSX0ZJ RUxEKFVTUl9MUENGRykpLAorCSgpCispCisKKworCitERUZfTUFDUk8oCisJZldSSVRFX1AwLCAv KiB3cml0ZSBQcmVkaWNhdGUgMCAqLworCVdSSVRFX1BSRUcoMCxWQUwpLCAgICAgICAgICAvKiBi ZWhhdmlvciAqLworCShBX0lNUExJQ0lUX1dSSVRFU19QMCkKKykKKworREVGX01BQ1JPKAorCWZX UklURV9QMSwgLyogd3JpdGUgUHJlZGljYXRlIDAgKi8KKwlXUklURV9QUkVHKDEsVkFMKSwgICAg ICAgICAgLyogYmVoYXZpb3IgKi8KKwkoQV9JTVBMSUNJVF9XUklURVNfUDEpCispCisKK0RFRl9N QUNSTygKKwlmV1JJVEVfUDIsIC8qIHdyaXRlIFByZWRpY2F0ZSAwICovCisJV1JJVEVfUFJFRygy LFZBTCksICAgICAgICAgIC8qIGJlaGF2aW9yICovCisJKEFfSU1QTElDSVRfV1JJVEVTX1AyKQor KQorCitERUZfTUFDUk8oCisJZldSSVRFX1AzLCAvKiB3cml0ZSBQcmVkaWNhdGUgMCAqLworCVdS SVRFX1BSRUcoMyxWQUwpLCAgICAgLyogYmVoYXZpb3IgKi8KKwkoQV9JTVBMSUNJVF9XUklURVNf UDMpCispCisKK0RFRl9NQUNSTygKKwlmUEFSVDEsIC8qIHdyaXRlIFByZWRpY2F0ZSAwICovCisJ aWYgKGluc24tPnBhcnQxKSB7IFdPUks7IHJldHVybjsgfSwgICAgICAgICAgLyogYmVoYXZpb3Ig Ki8KKwkvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKKworLyoqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisvKiBDYXN0aW5nLCBTaWduLVplcm8gZXh0ZW5zaW9uLCBl dGMgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitERUZfTUFD Uk8oCisJZkNBU1Q0dSwgLyogbWFjcm8gbmFtZSAqLworCSgoc2l6ZTR1X3QpKEEpKSwgICAgICAg ICAgLyogYmVoYXZpb3IgKi8KKwkvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9N QUNSTygKKwlmQ0FTVDRzLCAvKiBtYWNybyBuYW1lICovCisJKChzaXplNHNfdCkoQSkpLCAgICAg ICAgICAvKiBiZWhhdmlvciAqLworCS8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVG X01BQ1JPKAorCWZDQVNUOHUsIC8qIG1hY3JvIG5hbWUgKi8KKwkoKHNpemU4dV90KShBKSksICAg ICAgICAgIC8qIGJlaGF2aW9yICovCisJLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorCitE RUZfTUFDUk8oCisJZkNBU1Q4cywgLyogbWFjcm8gbmFtZSAqLworCSgoc2l6ZThzX3QpKEEpKSwg ICAgICAgICAgLyogYmVoYXZpb3IgKi8KKwkvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisK K0RFRl9NQUNSTygKKwlmQ0FTVDRfNHMsIC8qIG1hY3JvIG5hbWUgKi8KKwkoKHNpemU0c190KShB KSksCisJLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorCitERUZfTUFDUk8oCisJZkNBU1Q0 XzR1LCAvKiBtYWNybyBuYW1lICovCisJKChzaXplNHVfdCkoQSkpLAorCS8qIG9wdGlvbmFsIGF0 dHJpYnV0ZXMgKi8KKykKKworCitERUZfTUFDUk8oCisJZkNBU1Q0XzhzLCAvKiBtYWNybyBuYW1l ICovCisJKChzaXplOHNfdCkoKHNpemU0c190KShBKSkpLAorCS8qIG9wdGlvbmFsIGF0dHJpYnV0 ZXMgKi8KKykKKworREVGX01BQ1JPKAorCWZDQVNUNF84dSwgLyogbWFjcm8gbmFtZSAqLworCSgo c2l6ZTh1X3QpKChzaXplNHVfdCkoQSkpKSwKKwkvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCisp CisKK0RFRl9NQUNSTygKKwlmQ0FTVDhfOHMsIC8qIG1hY3JvIG5hbWUgKi8KKwkoKHNpemU4c190 KShBKSksCisJLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorCitERUZfTUFDUk8oCisJZkNB U1Q4Xzh1LCAvKiBtYWNybyBuYW1lICovCisJKChzaXplOHVfdCkoQSkpLAorCS8qIG9wdGlvbmFs IGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01BQ1JPKAorCWZDQVNUMl84cywgLyogbWFjcm8gbmFt ZSAqLworCSgoc2l6ZThzX3QpKChzaXplMnNfdCkoQSkpKSwKKwkvKiBvcHRpb25hbCBhdHRyaWJ1 dGVzICovCispCitERUZfTUFDUk8oCisJZkNBU1QyXzh1LCAvKiBtYWNybyBuYW1lICovCisJKChz aXplOHVfdCkoKHNpemUydV90KShBKSkpLAorCS8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykK KworREVGX01BQ1JPKAorCWZaRThfMTYsIC8qIHplcm8tZXh0ZW5kIDggdG8gMTYgKi8KKwkoKHNp emUyc190KSgoc2l6ZTF1X3QpKEEpKSksCisJLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQor REVGX01BQ1JPKAorCWZTRThfMTYsIC8qIHNpZ24tZXh0ZW5kIDggdG8gMTYgKi8KKwkoKHNpemUy c190KSgoc2l6ZTFzX3QpKEEpKSksCisJLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorCisK K0RFRl9NQUNSTygKKwlmU0UxNl8zMiwgLyogc2lnbi1leHRlbmQgMTYgdG8gMzIgKi8KKwkoKHNp emU0c190KSgoc2l6ZTJzX3QpKEEpKSksICAgICAgICAgIC8qIGJlaGF2aW9yICovCisJLyogb3B0 aW9uYWwgYXR0cmlidXRlcyAqLworKQorCitERUZfTUFDUk8oCisJZlpFMTZfMzIsIC8qIHplcm8t ZXh0ZW5kIDE2IHRvIDMyICovCisJKChzaXplNHVfdCkoKHNpemUydV90KShBKSkpLCAgICAgICAg ICAvKiBiZWhhdmlvciAqLworCS8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01B Q1JPKAorCWZTRTMyXzY0LAorCSggKHNpemU4c190KSgoc2l6ZTRzX3QpKEEpKSApLCAgICAgICAg ICAvKiBiZWhhdmlvciAqLworCS8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01B Q1JPKAorCWZaRTMyXzY0LAorCSggKHNpemU4dV90KSgoc2l6ZTR1X3QpKEEpKSApLCAgICAgICAg ICAvKiBiZWhhdmlvciAqLworCS8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01B Q1JPKAorCWZTRThfMzIsIC8qIHNpZ24tZXh0ZW5kIDggdG8gMzIgKi8KKwkoKHNpemU0c190KSgo c2l6ZTFzX3QpKEEpKSksCisJLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorCitERUZfTUFD Uk8oCisJZlpFOF8zMiwgLyogemVyby1leHRlbmQgOCB0byAzMiAqLworCSgoc2l6ZTRzX3QpKChz aXplMXVfdCkoQSkpKSwKKwkvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogRFNQIGFyaXRobWV0aWMgc3VwcG9y dCAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwor REVGX01BQ1JPKAorCWZNUFk4VVUsIC8qIG11bHRpcGx5IGhhbGYgaW50ZWdlciAqLworCShpbnQp KGZaRThfMTYoQSkqZlpFOF8xNihCKSksICAgICAvKiBiZWhhdmlvciAqLworCSgpCispCitERUZf TUFDUk8oCisJZk1QWThVUywgLyogbXVsdGlwbHkgaGFsZiBpbnRlZ2VyICovCisJKGludCkoZlpF OF8xNihBKSpmU0U4XzE2KEIpKSwgICAgIC8qIGJlaGF2aW9yICovCisJKCkKKykKK0RFRl9NQUNS TygKKwlmTVBZOFNVLCAvKiBtdWx0aXBseSBoYWxmIGludGVnZXIgKi8KKwkoaW50KShmU0U4XzE2 KEEpKmZaRThfMTYoQikpLCAgICAgLyogYmVoYXZpb3IgKi8KKwkoKQorKQorCitERUZfTUFDUk8o CisJZk1QWThTUywgLyogbXVsdGlwbHkgaGFsZiBpbnRlZ2VyICovCisJKGludCkoKHNob3J0KShB KSooc2hvcnQpKEIpKSwgICAgIC8qIGJlaGF2aW9yICovCisJKCkKKykKKworREVGX01BQ1JPKAor CWZNUFkxNlNTLCAvKiBtdWx0aXBseSBoYWxmIGludGVnZXIgKi8KKwlmU0UzMl82NChmU0UxNl8z MihBKSpmU0UxNl8zMihCKSksICAgICAvKiBiZWhhdmlvciAqLworCSgpCispCisKK0RFRl9NQUNS TygKKwlmTVBZMTZVVSwgLyogbXVsdGlwbHkgdW5zaWduZWQgaGFsZiBpbnRlZ2VyICovCisJZlpF MzJfNjQoZlpFMTZfMzIoQSkqZlpFMTZfMzIoQikpLCAgICAgLyogYmVoYXZpb3IgKi8KKwkoKQor KQorCitERUZfTUFDUk8oCisJZk1QWTE2U1UsIC8qIG11bHRpcGx5IGhhbGYgaW50ZWdlciAqLwor CWZTRTMyXzY0KGZTRTE2XzMyKEEpKmZaRTE2XzMyKEIpKSwgICAgIC8qIGJlaGF2aW9yICovCisJ KCkKKykKKworREVGX01BQ1JPKAorCWZNUFkxNlVTLCAvKiBtdWx0aXBseSBoYWxmIGludGVnZXIg Ki8KKwlmTVBZMTZTVShCLEEpLAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmTVBZMzJTUywgLyog bXVsdGlwbHkgaGFsZiBpbnRlZ2VyICovCisJKGZTRTMyXzY0KEEpKmZTRTMyXzY0KEIpKSwgICAg IC8qIGJlaGF2aW9yICovCisJKCkKKykKKworREVGX01BQ1JPKAorCWZNUFkzMlVVLCAvKiBtdWx0 aXBseSBoYWxmIGludGVnZXIgKi8KKwkoZlpFMzJfNjQoQSkqZlpFMzJfNjQoQikpLCAgICAgLyog YmVoYXZpb3IgKi8KKwkoKQorKQorCitERUZfTUFDUk8oCisJZk1QWTMyU1UsIC8qIG11bHRpcGx5 IGhhbGYgaW50ZWdlciAqLworCShmU0UzMl82NChBKSpmWkUzMl82NChCKSksICAgICAvKiBiZWhh dmlvciAqLworCSgpCispCisKK0RFRl9NQUNSTygKKwlmTVBZMzIxNlNTLCAvKiBtdWx0aXBseSBt aXhlZCBwcmVjaXNpb24gKi8KKwkoZlNFMzJfNjQoQSkqZlNYVE4oMTYsNjQsQikpLCAgICAgLyog YmVoYXZpb3IgKi8KKwkoKQorKQorCitERUZfTUFDUk8oCisJZk1QWTMyMTZTVSwgLyogbXVsdGlw bHkgbWl4ZWQgcHJlY2lzaW9uICovCisJKGZTRTMyXzY0KEEpKmZaWFROKDE2LDY0LEIpKSwgICAg IC8qIGJlaGF2aW9yICovCisJKCkKKykKKworREVGX01BQ1JPKAorCWZST1VORCwgLyogb3B0aW9u YWwgcm91bmRpbmcgKi8KKwkoQSsweDgwMDApLAorCS8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8K KykKKworREVGX01BQ1JPKAorCWZDTElQLCAvKiBvcHRpb25hbCByb3VuZGluZyAqLworCXsgc2l6 ZTRzX3QgbWF4diA9ICgxPDxVKS0xOworCSBzaXplNHNfdCBtaW52ID0gLSgxPDxVKTsKKwkgRFNU ID0gZk1JTihtYXh2LGZNQVgoU1JDLG1pbnYpKTsKKwl9LAorCS8qIG9wdGlvbmFsIGF0dHJpYnV0 ZXMgKi8KKykKKworREVGX01BQ1JPKAorCWZDUk5ELCAvKiBvcHRpb25hbCByb3VuZGluZyAqLwor CSgoKChBKSYweDMpPT0weDMpPygoQSkrMSk6KChBKSkpLAorCS8qIG9wdGlvbmFsIGF0dHJpYnV0 ZXMgKi8KKykKKworREVGX01BQ1JPKAorCWZSTkROLCAvKiBSb3VuZGluZyB0byBhIGJvdW5kYXJ5 ICovCisJKCgoKE4pPT0wKT8oQSk6KCgoZlNFMzJfNjQoQSkpKygxPDwoKE4pLTEpKSkpKSksCisJ Lyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorCitERUZfTUFDUk8oCisJZkNSTkROLCAvKiBS b3VuZGluZyB0byBhIGJvdW5kYXJ5ICovCisJKGNvbnZfcm91bmQoQSxOKSksCisJLyogb3B0aW9u YWwgYXR0cmlidXRlcyAqLworKQorCitERUZfTUFDUk8oCisJZkFERDEyOCwgLyogUm91bmRpbmcg dG8gYSBib3VuZGFyeSAqLworCShhZGQxMjgoQSwgQikpLAorCS8qIG9wdGlvbmFsIGF0dHJpYnV0 ZXMgKi8KKykKK0RFRl9NQUNSTygKKwlmU1VCMTI4LCAvKiBSb3VuZGluZyB0byBhIGJvdW5kYXJ5 ICovCisJKHN1YjEyOChBLCBCKSksCisJLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorREVG X01BQ1JPKAorCWZTSElGVFIxMjgsIC8qIFJvdW5kaW5nIHRvIGEgYm91bmRhcnkgKi8KKwkoc2hp ZnRyMTI4KEEsIEIpKSwKKwkvKiBvcHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9NQUNS TygKKwlmU0hJRlRMMTI4LCAvKiBSb3VuZGluZyB0byBhIGJvdW5kYXJ5ICovCisJKHNoaWZ0bDEy OChBLCBCKSksCisJLyogb3B0aW9uYWwgYXR0cmlidXRlcyAqLworKQorCitERUZfTUFDUk8oCisJ ZkFORDEyOCwgLyogUm91bmRpbmcgdG8gYSBib3VuZGFyeSAqLworCShhbmQxMjgoQSwgQikpLAor CS8qIG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKKworREVGX01BQ1JPKAorCWZDQVNUOFNfMTZT LCAvKiBSb3VuZGluZyB0byBhIGJvdW5kYXJ5ICovCisJKGNhc3Q4c190b18xNnMoQSkpLAorCS8q IG9wdGlvbmFsIGF0dHJpYnV0ZXMgKi8KKykKK0RFRl9NQUNSTygKKwlmQ0FTVDE2U184UywgLyog Um91bmRpbmcgdG8gYSBib3VuZGFyeSAqLworCShjYXN0MTZzX3RvXzhzKEEpKSwKKwkvKiBvcHRp b25hbCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9NQUNSTygKKwlmRUFfUkksIC8qIENhbGN1bGF0 ZSBFQSB3aXRoIFJlZ2lzdGVyICsgSW1tZWRpYXRlIE9mZnNldCAqLworCWRvIHsgRUE9UkVHK0lN TTsgZkRPQ0hLUEFHRUNST1NTKFJFRyxFQSk7IH0gd2hpbGUgKDApLAorCSgpCispCisKK0RFRl9N QUNSTygKKwlmRUFfUlJzLCAvKiBDYWxjdWxhdGUgRUEgd2l0aCBSZWdpc3RlciArIFJlZ2lzdGVy cyBzY2FsZWQgT2Zmc2V0ICovCisJZG8geyBFQT1SRUcrKFJFRzI8PFNDQUxFKTsgZkRPQ0hLUEFH RUNST1NTKFJFRyxFQSk7IH0gd2hpbGUgKDApLAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmRUFf SVJzLCAvKiBDYWxjdWxhdGUgRUEgd2l0aCBJbW1lZGlhdGUgKyBSZWdpc3RlcnMgc2NhbGVkIE9m ZnNldCAqLworCWRvIHsgRUE9SU1NKyhSRUc8PFNDQUxFKTsgZkRPQ0hLUEFHRUNST1NTKElNTSxF QSk7IH0gd2hpbGUgKDApLAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmRUFfSU1NLCAvKiBDYWxj dWxhdGUgRUEgd2l0aCBJbW1lZGlhdGUgKi8KKwlFQT1JTU0sCisJKCkKKykKKworREVGX01BQ1JP KAorCWZFQV9SRUcsIC8qIENhbGN1bGF0ZSBFQSB3aXRoIFJFR0lTVEVSICovCisJRUE9UkVHLAor CSgpCispCisKK0RFRl9NQUNSTygKKwlmRUFfR1BJLCAvKiBDYWxjdWxhdGUgRUEgd2l0aCBHbG9i YWwgUG9pdG5lciArIEltbWVkaWF0ZSAqLworICAgIGRvIHsgRUE9ZlJFQURfR1AoKStJTU07IGZH UF9ET0NIS1BBR0VDUk9TUyhmUkVBRF9HUCgpLEVBKTsgfSB3aGlsZSAoMCksCisJKCkKKykKKwor REVGX01BQ1JPKAorCWZQTV9JLCAvKiBQb3N0IE1vZGlmeSBSZWdpc3RlciBieSBJbW1lZGlhdGUq LworCWRvIHsgUkVHID0gUkVHICsgSU1NOyB9IHdoaWxlICgwKSwKKwkoKQorKQorCitERUZfTUFD Uk8oCisJZlBNX00sIC8qIFBvc3QgTW9kaWZ5IFJlZ2lzdGVyIGJ5IE0gcmVnaXN0ZXIgKi8KKwlk byB7IFJFRyA9IFJFRyArIE1WQUw7IH0gd2hpbGUgKDApLAorCSgpCispCisKK0RFRl9NQUNSTygK KwlmU0NBTEUsIC8qIHNjYWxlIGJ5IE4gKi8KKwkoKChzaXplOHNfdCkoQSkpPDxOKSwKKwkvKiBv cHRpb25hbCBhdHRyaWJ1dGVzICovCispCisKK0RFRl9NQUNSTygKKwlmU0FUVywgLyogc2F0dXJh dGluZyB0byAzMi1iaXRzKi8KKwlmU0FUTigzMiwoKGxvbmcgbG9uZylBKSksCisJKCkKKykKKwor REVGX01BQ1JPKAorCWZTQVQsIC8qIHNhdHVyYXRpbmcgdG8gMzItYml0cyovCisJZlNBVE4oMzIs KEEpKSwKKwkoKQorKQorCitERUZfTUFDUk8oCisJZlNBVF9PUklHX1NITCwgLyogU2F0dXJhdGlu ZyB0byAzMi1iaXRzLCB3aXRoIG9yaWdpbmFsIHZhbHVlLCBmb3Igc2hpZnQgbGVmdCAqLworCSgo KChzaXplNHNfdCkoKGZTQVQoQSkpIF4gKChzaXplNHNfdCkoT1JJR19SRUcpKSkpIDwgMCkgPwor CQlmU0FUVkFMTigzMiwoKHNpemU0c190KShPUklHX1JFRykpKSA6CisJCSgoKChPUklHX1JFRykg PiAwKSAmJiAoKEEpID09IDApKSA/CisJCQlmU0FUVkFMTigzMiwoT1JJR19SRUcpKSA6CisJCQlm U0FUKEEpKSksCisJKCkKKykKKworREVGX01BQ1JPKAorCWZQQVNTLAorCUEsCispCisKK0RFRl9N QUNSTygKKwlmUk5ELCAvKiBzYXR1cmF0aW5nIHRvIDMyLWJpdHMqLworCSgoKEEpKzEpPj4xKSwK KykKKworCitERUZfTUFDUk8oCisJZkJJRElSX1NISUZUTCwKKwkoKChTSEFNVCkgPCAwKSA/ICgo ZkNBU1QjI1JFR1NUWVBFKFNSQykgPj4gKCgtKFNIQU1UKSktMSkpID4+MSkgOiAoZkNBU1QjI1JF R1NUWVBFKFNSQykgPDwgKFNIQU1UKSkpLAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmQklESVJf QVNISUZUTCwKKwlmQklESVJfU0hJRlRMKFNSQyxTSEFNVCxSRUdTVFlQRSMjcyksCisJKCkKKykK KworREVGX01BQ1JPKAorCWZCSURJUl9MU0hJRlRMLAorCWZCSURJUl9TSElGVEwoU1JDLFNIQU1U LFJFR1NUWVBFIyN1KSwKKwkoKQorKQorCitERUZfTUFDUk8oCisJZkJJRElSX0FTSElGVExfU0FU LAorCSgoKFNIQU1UKSA8IDApID8gKChmQ0FTVCMjUkVHU1RZUEUjI3MoU1JDKSA+PiAoKC0oU0hB TVQpKS0xKSkgPj4xKSA6IGZTQVRfT1JJR19TSEwoZkNBU1QjI1JFR1NUWVBFIyNzKFNSQykgPDwg KFNIQU1UKSwoU1JDKSkpLAorCSgpCispCisKKworREVGX01BQ1JPKAorCWZCSURJUl9TSElGVFIs CisJKCgoU0hBTVQpIDwgMCkgPyAoKGZDQVNUIyNSRUdTVFlQRShTUkMpIDw8ICgoLShTSEFNVCkp LTEpKSA8PCAxKSA6IChmQ0FTVCMjUkVHU1RZUEUoU1JDKSA+PiAoU0hBTVQpKSksCisJKCkKKykK KworREVGX01BQ1JPKAorCWZCSURJUl9BU0hJRlRSLAorCWZCSURJUl9TSElGVFIoU1JDLFNIQU1U LFJFR1NUWVBFIyNzKSwKKwkoKQorKQorCitERUZfTUFDUk8oCisJZkJJRElSX0xTSElGVFIsCisJ ZkJJRElSX1NISUZUUihTUkMsU0hBTVQsUkVHU1RZUEUjI3UpLAorCSgpCispCisKK0RFRl9NQUNS TygKKwlmQklESVJfQVNISUZUUl9TQVQsCisJKCgoU0hBTVQpIDwgMCkgPyBmU0FUX09SSUdfU0hM KChmQ0FTVCMjUkVHU1RZUEUjI3MoU1JDKSA8PCAoKC0oU0hBTVQpKS0xKSkgPDwgMSwoU1JDKSkg OiAoZkNBU1QjI1JFR1NUWVBFIyNzKFNSQykgPj4gKFNIQU1UKSkpLAorCSgpCispCisKK0RFRl9N QUNSTygKKwlmQVNISUZUUiwKKwkoZkNBU1QjI1JFR1NUWVBFIyNzKFNSQykgPj4gKFNIQU1UKSks CisJLyogKi8KKykKKworREVGX01BQ1JPKAorCWZMU0hJRlRSLAorCSgoKFNIQU1UKSA+PSA2NCk/ MDooZkNBU1QjI1JFR1NUWVBFIyN1KFNSQykgPj4gKFNIQU1UKSkpLAorCS8qICovCispCisKK0RF Rl9NQUNSTygKKwlmUk9UTCwKKwkoKChTSEFNVCk9PTApID8gKFNSQykgOiAoKGZDQVNUIyNSRUdT VFlQRSMjdShTUkMpIDw8IChTSEFNVCkpIHwgXAorCQkoKGZDQVNUIyNSRUdTVFlQRSMjdShTUkMp ID4+ICgoc2l6ZW9mKFNSQykqOCktKFNIQU1UKSkpKSkpLAorCS8qICovCispCisKK0RFRl9NQUNS TygKKwlmUk9UUiwKKwkoKChTSEFNVCk9PTApID8gKFNSQykgOiAoKGZDQVNUIyNSRUdTVFlQRSMj dShTUkMpID4+IChTSEFNVCkpIHwgXAorCQkoKGZDQVNUIyNSRUdTVFlQRSMjdShTUkMpIDw8ICgo c2l6ZW9mKFNSQykqOCktKFNIQU1UKSkpKSkpLAorCS8qICovCispCisKK0RFRl9NQUNSTygKKwlm QVNISUZUTCwKKwkoKChTSEFNVCkgPj0gNjQpPzA6KGZDQVNUIyNSRUdTVFlQRSMjcyhTUkMpIDw8 IChTSEFNVCkpKSwKKwkvKiAqLworKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KKy8qIEZsb2F0aW5nLVBvaW50IFN1cHBvcnQgICAgICAgICAgICAqLworLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworREVGX01BQ1JPKAorCWZGTE9BVCwg LyogbmFtZSAqLworCSh7IHVuaW9uIHsgZmxvYXQgZjsgc2l6ZTR1X3QgaTsgfSBfZmlwdW47IF9m aXB1bi5pID0gKEEpOyBfZmlwdW4uZjsgfSksICAgICAvKiBiZWhhdmlvciAqLworCShBX0ZQT1Ap CispCisKK0RFRl9NQUNSTygKKwlmVU5GTE9BVCwgLyogbXVsdGlwbHkgaGFsZiBpbnRlZ2VyICov CisJKHsgdW5pb24geyBmbG9hdCBmOyBzaXplNHVfdCBpOyB9IF9maXB1bjsgX2ZpcHVuLmYgPSAo QSk7IGlzbmFuKF9maXB1bi5mKSA/IDB4RkZGRkZGRkZVIDogX2ZpcHVuLmk7IH0pLCAgICAgLyog YmVoYXZpb3IgKi8KKwkoQV9GUE9QKQorKQorCitERUZfTUFDUk8oCisJZlNGTkFOVkFMLAorCTB4 ZmZmZmZmZmYsCisJKCkKKykKKworREVGX01BQ1JPKAorCWZTRklORlZBTCwKKwkoKChBKSAmIDB4 ODAwMDAwMDApIHwgMHg3ZjgwMDAwMCksCisJKCkKKykKKworREVGX01BQ1JPKAorCWZTRk9ORVZB TCwKKwkoKChBKSAmIDB4ODAwMDAwMDApIHwgZlVORkxPQVQoMS4wKSksCisJKCkKKykKKworREVG X01BQ1JPKAorCWZDSEVDS1NGTkFOLAorCWRvIHsKKwkJaWYgKGlzbmFuKGZGTE9BVChBKSkpIHsK KwkJCWlmICgoZkdFVEJJVCgyMixBKSkgPT0gMCkgZlJBSVNFRkxBR1MoRkVfSU5WQUxJRCk7CisJ CQlEU1QgPSBmU0ZOQU5WQUwoKTsKKwkJfQorCX0gd2hpbGUgKDApLAorCSgpCispCisKK0RFRl9N QUNSTygKKwlmQ0hFQ0tTRk5BTjMsCisJZG8geworCQlmQ0hFQ0tTRk5BTihEU1QsQSk7CisJCWZD SEVDS1NGTkFOKERTVCxCKTsKKwkJZkNIRUNLU0ZOQU4oRFNULEMpOworCX0gd2hpbGUgKDApLAor CSgpCispCisKK0RFRl9NQUNSTygKKwlmU0ZfQklBUywKKwkxMjcsCisJKCkKKykKKworREVGX01B Q1JPKAorCWZTRl9NQU5UQklUUywKKwkyMywKKwkoKQorKQorCitERUZfTUFDUk8oCisJZlNGX01V TF9QT1cyLAorCShmVU5GTE9BVChmRkxPQVQoQSkgKiBmRkxPQVQoKGZTRl9CSUFTKCkgKyAoQikp IDw8IGZTRl9NQU5UQklUUygpKSkpLAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmU0ZfR0VURVhQ LAorCSgoKEEpID4+IGZTRl9NQU5UQklUUygpKSAmIDB4ZmYpLAorCSgpCispCisKK0RFRl9NQUNS TygKKwlmU0ZfTUFYRVhQLAorCSgyNTQpLAorCSgpCispCisKK0RFRl9NQUNSTygKKwlmU0ZfUkVD SVBfQ09NTU9OLAorCWFyY2hfc2ZfcmVjaXBfY29tbW9uKCZOLCZELCZPLCZBKSwKKwkoQV9GUE9Q KQorKQorCitERUZfTUFDUk8oCisJZlNGX0lOVlNRUlRfQ09NTU9OLAorCWFyY2hfc2ZfaW52c3Fy dF9jb21tb24oJk4sJk8sJkEpLAorCShBX0ZQT1ApCispCisKK0RFRl9NQUNSTygKKwlmRk1BRlgs CisJaW50ZXJuYWxfZm1hZngoQSxCLEMsZlNYVE4oOCw2NCxBREopKSwKKwkoKQorKQorCitERUZf TUFDUk8oCisJZkZNQUYsCisJaW50ZXJuYWxfZm1hZngoQSxCLEMsMCksCisJKCkKKykKKworREVG X01BQ1JPKAorCWZTRk1QWSwKKwlpbnRlcm5hbF9tcHlmKEEsQiksCisJKCkKKykKKworREVGX01B Q1JPKAorCWZNQUtFU0YsCisJKCgoKFNJR04pICYgMSkgPDwgMzEpIHwgKCgoRVhQKSAmIDB4ZmYp IDw8IGZTRl9NQU5UQklUUygpKSB8CisJCSgoTUFOVCkgJiAoKDE8PGZTRl9NQU5UQklUUygpKS0x KSkpLAorCSgpCispCisKKworREVGX01BQ1JPKAorCWZET1VCTEUsIC8qIG11bHRpcGx5IGhhbGYg aW50ZWdlciAqLworCSh7IHVuaW9uIHsgZG91YmxlIGY7IHNpemU4dV90IGk7IH0gX2ZpcHVuOyBf ZmlwdW4uaSA9IChBKTsgX2ZpcHVuLmY7IH0pLCAgICAgLyogYmVoYXZpb3IgKi8KKwkoQV9GUE9Q KQorKQorCitERUZfTUFDUk8oCisJZlVORE9VQkxFLCAvKiBtdWx0aXBseSBoYWxmIGludGVnZXIg Ki8KKwkoeyB1bmlvbiB7IGRvdWJsZSBmOyBzaXplOHVfdCBpOyB9IF9maXB1bjsgX2ZpcHVuLmYg PSAoQSk7IGlzbmFuKF9maXB1bi5mKSA/IDB4RkZGRkZGRkZGRkZGRkZGRlVMTCA6IF9maXB1bi5p OyB9KSwgICAgIC8qIGJlaGF2aW9yICovCisJKEFfRlBPUCkKKykKKworREVGX01BQ1JPKAorCWZE Rk5BTlZBTCwKKwkweGZmZmZmZmZmZmZmZmZmZmZVTEwsCisJKCkKKykKKworREVGX01BQ1JPKAor CWZERl9JU05PUk1BTCwKKwkoZnBjbGFzc2lmeShmRE9VQkxFKFgpKSA9PSBGUF9OT1JNQUwpLAor CSgpCispCisKK0RFRl9NQUNSTygKKwlmREZfSVNERU5PUk0sCisJKGZwY2xhc3NpZnkoZkRPVUJM RShYKSkgPT0gRlBfU1VCTk9STUFMKSwKKwkoKQorKQorCitERUZfTUFDUk8oCisJZkRGX0lTQklH LAorCShmREZfR0VURVhQKFgpID49IDUxMiksCisJKCkKKykKKworREVGX01BQ1JPKAorCWZERl9N QU5UQklUUywKKwk1MiwKKwkoKQorKQorCitERUZfTUFDUk8oCisJZkRGX0dFVEVYUCwKKwkoKChB KSA+PiBmREZfTUFOVEJJVFMoKSkgJiAweDdmZiksCisJKCkKKykKKworREVGX01BQ1JPKAorCWZG TUEsCisJaW50ZXJuYWxfZm1hKEEsQixDKSwKKwkvKiBub3RoaW5nICovCispCisKK0RFRl9NQUNS TygKKwlmREZfTVBZX0hILAorCWludGVybmFsX21weWhoKEEsQixBQ0MpLAorCS8qIG5vdGhpbmcg Ki8KKykKKworREVGX01BQ1JPKAorCWZGUE9QX1NUQVJULAorCWFyY2hfZnBvcF9zdGFydCh0aHJl YWQpLAorCS8qIG5vdGhpbmcgKi8KKykKKworREVGX01BQ1JPKAorCWZGUE9QX0VORCwKKwlhcmNo X2Zwb3BfZW5kKHRocmVhZCksCisJLyogbm90aGluZyAqLworKQorCitERUZfTUFDUk8oCisJZkZQ U0VUUk9VTkRfTkVBUkVTVCwKKwlmZXNldHJvdW5kKEZFX1RPTkVBUkVTVCksCisJLyogbm90aGlu ZyAqLworKQorCitERUZfTUFDUk8oCisJZkZQU0VUUk9VTkRfQ0hPUCwKKwlmZXNldHJvdW5kKEZF X1RPV0FSRFpFUk8pLAorCS8qIG5vdGhpbmcgKi8KKykKKworREVGX01BQ1JPKAorCWZGUENBTkNF TEZMQUdTLAorCWZlY2xlYXJleGNlcHQoRkVfQUxMX0VYQ0VQVCksCisJLyogbm90aGluZyAqLwor KQorCitERUZfTUFDUk8oCisJZklTSU5GUFJPRCwKKwkoKGlzaW5mKEEpICYmIGlzaW5mKEIpKSB8 fAorCQkoaXNpbmYoQSkgJiYgaXNmaW5pdGUoQikgJiYgKChCKSAhPSAwLjApKSB8fAorCQkoaXNp bmYoQikgJiYgaXNmaW5pdGUoQSkgJiYgKChBKSAhPSAwLjApKSksCisJLyogbm90aGluZyAqLwor KQorCitERUZfTUFDUk8oCisJZklTWkVST1BST0QsCisJKCgoKEEpID09IDAuMCkgJiYgaXNmaW5p dGUoQikpIHx8ICgoKEIpID09IDAuMCkgJiYgaXNmaW5pdGUoQSkpKSwKKwkvKiBub3RoaW5nICov CispCisKK0RFRl9NQUNSTygKKwlmUkFJU0VGTEFHUywKKwlhcmNoX3JhaXNlX2ZwZmxhZyhBKSwK KwkvKiBOT1RISU5HICovCispCisKK0RFRl9NQUNSTygKKwlmREZfTUFYLAorCSgoKEEpPT0oQikp CisJCT8gZkRPVUJMRShmVU5ET1VCTEUoQSkgJiBmVU5ET1VCTEUoQikpCisJCTogZm1heChBLEIp KSwKKwkoQV9GUE9QKQorKQorCitERUZfTUFDUk8oCisJZkRGX01JTiwKKwkoKChBKT09KEIpKQor CQk/IGZET1VCTEUoZlVORE9VQkxFKEEpIHwgZlVORE9VQkxFKEIpKQorCQk6IGZtaW4oQSxCKSks CisJKEFfRlBPUCkKKykKKworREVGX01BQ1JPKAorCWZTRl9NQVgsCisJKCgoQSk9PShCKSkKKwkJ PyBmRkxPQVQoZlVORkxPQVQoQSkgJiBmVU5GTE9BVChCKSkKKwkJOiBmbWF4ZihBLEIpKSwKKwko QV9GUE9QKQorKQorCitERUZfTUFDUk8oCisJZlNGX01JTiwKKwkoKChBKT09KEIpKQorCQk/IGZG TE9BVChmVU5GTE9BVChBKSB8IGZVTkZMT0FUKEIpKQorCQk6IGZtaW5mKEEsQikpLAorCShBX0ZQ T1ApCispCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogTG9h ZC9TdG9yZSBzdXBwb3J0ICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKworREVGX01BQ1JPKGZMT0FELAorCXsgRFNUID0gKHNpemUjI1NJ WkUjI1NJR04jI190KU1FTV9MT0FEIyNTSVpFKHRocmVhZCxFQSxpbnNuKTsgfSwKKwkoQV9MT0FE LEFfTUVNTElLRSkKKykKKworREVGX01BQ1JPKGZNRU1PUCwKKwl7IG1lbW9wIyNTSVpFIyNfIyNG TlRZUEUodGhyZWFkLEVBLFZBTFVFKTsgfSwKKwkoQV9MT0FELEFfU1RPUkUsQV9NRU1MSUtFKQor KQorCitERUZfTUFDUk8oZkdFVF9GUkFNRUtFWSwKKwlSRUFEX1JSRUcoUkVHX0ZSQU1FS0VZKSwK KwkoKQorKQorCitERUZfTUFDUk8oZkZSQU1FX1NDUkFNQkxFLAorCSgoVkFMKSBeIChmQ0FTVDh1 KGZHRVRfRlJBTUVLRVkoKSkgPDwgMzIpKSwKKwkvKiBBVFRSSUJTICovCispCisKK0RFRl9NQUNS TyhmRlJBTUVfVU5TQ1JBTUJMRSwKKwlmRlJBTUVfU0NSQU1CTEUoVkFMKSwKKwkvKiBBVFRSSUJT ICovCispCisKK0RFRl9NQUNSTyhmRlJBTUVDSEVDSywKKwlzeXNfY2hlY2tfZnJhbWVsaW1pdCh0 aHJlYWQsQUREUixFQSksCisJKCkKKykKKworREVGX01BQ1JPKGZMT0FEX0xPQ0tFRCwKKwl7ICAg ICBEU1QgPSAoc2l6ZSMjU0laRSMjU0lHTiMjX3QpbWVtX2xvYWRfbG9ja2VkKHRocmVhZCxFQSxT SVpFLGluc24pOworICB9LAorCShBX0xPQUQsQV9NRU1MSUtFKQorKQorCitERUZfTUFDUk8oZlNU T1JFLAorCXsgTUVNX1NUT1JFIyNTSVpFKHRocmVhZCxFQSxTUkMsaW5zbik7IH0sCisJKEFfU1RP UkUsQV9NRU1MSUtFKQorKQorCisKK0RFRl9NQUNSTyhmU1RPUkVfTE9DS0VELAorCXsgUFJFRCA9 IChtZW1fc3RvcmVfY29uZGl0aW9uYWwodGhyZWFkLEVBLFNSQyxTSVpFLGluc24pID8gMHhmZiA6 IDApOyB9LAorCShBX1NUT1JFLEFfTUVNTElLRSkKKykKKworLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisvKiBGdW5jdGlvbnMgdG8gaGVscCB3aXRoIGJ5dGVzICAgICAg Ki8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitERUZfTUFDUk8o ZkdFVEJZVEUsCisgICAgICAgICAoKHNpemUxc190KSgoU1JDPj4oKE4pKjgpKSYweGZmKSksCisJ Lyogbm90aGluZyAqLworKQorCitERUZfTUFDUk8oZkdFVFVCWVRFLAorICAgICAgICAgKChzaXpl MXVfdCkoKFNSQz4+KChOKSo4KSkmMHhmZikpLAorCS8qIG5vdGhpbmcgKi8KKykKKworREVGX01B Q1JPKGZTRVRCWVRFLAorCXsKKwlEU1QgPSAoRFNUICYgfigweDBmZkxMPDwoKE4pKjgpKSkgfCAo KChzaXplOHVfdCkoKFZBTCkgJiAweDBmZkxMKSkgPDwgKChOKSo4KSk7CisJfSwKKwkvKiBub3Ro aW5nICovCispCisKK0RFRl9NQUNSTyhmR0VUSEFMRiwKKyAgICAgICAgICgoc2l6ZTJzX3QpKChT UkM+PigoTikqMTYpKSYweGZmZmYpKSwKKwkvKiBub3RoaW5nICovCispCisKK0RFRl9NQUNSTyhm R0VUVUhBTEYsCisgICAgICAgICAoKHNpemUydV90KSgoU1JDPj4oKE4pKjE2KSkmMHhmZmZmKSks CisJLyogbm90aGluZyAqLworKQorCitERUZfTUFDUk8oZlNFVEhBTEYsCisJeworCURTVCA9IChE U1QgJiB+KDB4MGZmZmZMTDw8KChOKSoxNikpKSB8ICgoKHNpemU4dV90KSgoVkFMKSAmIDB4MGZm ZmYpKSA8PCAoKE4pKjE2KSk7CisJfSwKKwkvKiBub3RoaW5nICovCispCisKKworCitERUZfTUFD Uk8oZkdFVFdPUkQsCisgICAgICAgICAoKHNpemU4c190KSgoc2l6ZTRzX3QpKChTUkM+PigoTikq MzIpKSYweDBmZmZmZmZmZkxMKSkpLAorCS8qIG5vdGhpbmcgKi8KKykKKworREVGX01BQ1JPKGZH RVRVV09SRCwKKyAgICAgICAgICgoc2l6ZTh1X3QpKChzaXplNHVfdCkoKFNSQz4+KChOKSozMikp JjB4MGZmZmZmZmZmTEwpKSksCisJLyogbm90aGluZyAqLworKQorCitERUZfTUFDUk8oZlNFVFdP UkQsCisJeworCURTVCA9IChEU1QgJiB+KDB4MGZmZmZmZmZmTEw8PCgoTikqMzIpKSkgfCAoKChW QUwpICYgMHgwZmZmZmZmZmZMTCkgPDwgKChOKSozMikpOworCX0sCisJLyogbm90aGluZyAqLwor KQorCitERUZfTUFDUk8oZlNFVEJJVCwKKwl7CisJRFNUID0gKERTVCAmIH4oMVVMTDw8KE4pKSkg fCAoKChzaXplOHVfdCkoVkFMKSk8PChOKSk7CisJfSwKKwkvKiBub3RoaW5nICovCispCisKK0RF Rl9NQUNSTyhmR0VUQklULAorCSgoKFNSQyk+Pk4pJjEpLAorCS8qIG5vdGhpbmcgKi8KKykKKwor CitERUZfTUFDUk8oZlNFVEJJVFMsCisJZG8geworICAgICAgICBpbnQgajsKKyAgICAgICAgZm9y IChqPUxPO2o8PUhJO2orKykgeworICAgICAgICAgIGZTRVRCSVQoaixEU1QsVkFMKTsKKyAgICAg ICAgfQorCX0gd2hpbGUgKDApLAorCS8qIG5vdGhpbmcgKi8KKykKKworLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKiovCisvKiBVc2VkIGZvciBwYXJpdHksIGV0Yy4uLi4uLi4u ICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworREVGX01B Q1JPKGZDT1VOVE9ORVNfNCwKKwljb3VudF9vbmVzXzQoVkFMKSwKKwkvKiBub3RoaW5nICovCisp CisKK0RFRl9NQUNSTyhmQ09VTlRPTkVTXzgsCisJY291bnRfb25lc184KFZBTCksCisJLyogbm90 aGluZyAqLworKQorCitERUZfTUFDUk8oZkJSRVZfOCwKKwlyZXZlcnNlX2JpdHNfOChWQUwpLAor CS8qIG5vdGhpbmcgKi8KKykKKworREVGX01BQ1JPKGZCUkVWXzQsCisJcmV2ZXJzZV9iaXRzXzQo VkFMKSwKKwkvKiBub3RoaW5nICovCispCisKK0RFRl9NQUNSTyhmQ0wxXzgsCisJY291bnRfbGVh ZGluZ19vbmVzXzgoVkFMKSwKKwkvKiBub3RoaW5nICovCispCisKK0RFRl9NQUNSTyhmQ0wxXzQs CisJY291bnRfbGVhZGluZ19vbmVzXzQoVkFMKSwKKwkvKiBub3RoaW5nICovCispCisKK0RFRl9N QUNSTyhmSU5URVJMRUFWRSwKKwlpbnRlcmxlYXZlKE9ERCxFVkVOKSwKKwkvKiBub3RoaW5nICov CispCisKK0RFRl9NQUNSTyhmREVJTlRFUkxFQVZFLAorCWRlaW50ZXJsZWF2ZShNSVhFRCksCisJ Lyogbm90aGluZyAqLworKQorCitERUZfTUFDUk8oZkhJREUsCisJQSwKKwkoKQorKQorCitERUZf TUFDUk8oZkNPTlNUTEwsCisJQSMjTEwsCispCisKKy8qIERvIHRoZSB0aGluZ3MgaW4gdGhlIHBh cmVucywgYnV0IGRvbid0IHByaW50IHRoZSBwYXJlbnMuICovCitERUZfTUFDUk8oZkVDSE8sCisJ KEEpLAorCS8qIG5vdGhpbmcgKi8KKykKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisvKiBPUyBpbnRlcmZhY2UgYW5kIHN0b3Avd2FpdCAgICAgICAg ICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CisKK0RFRl9NQUNSTyhmVFJBUCwKKyAgICB3YXJuKCJUcmFwIE5QQz0leCAiLGZSRUFEX05QQygp KTsKKwl3YXJuKCJUcmFwIGV4Y2VwdGlvbiwgUENZQ0xFPSVsbGQgVFlQRT0lZCBOUEM9JXggSU1N PTB4JXgiLHRocmVhZC0+cHJvY2Vzc29yX3B0ci0+cHN0YXRzW3BjeWNsZXNdLFRSQVBUWVBFLGZS RUFEX05QQygpLElNTSk7CisJcmVnaXN0ZXJfdHJhcF9leGNlcHRpb24odGhyZWFkLGZSRUFEX05Q QygpLFRSQVBUWVBFLElNTSk7LAorCSgpCispCisKK0RFRl9NQUNSTyhmQUxJR05fUkVHX0ZJRUxE X1ZBTFVFLAorCSgoVkFMKTw8cmVnX2ZpZWxkX2luZm9bRklFTERdLm9mZnNldCksCisJLyogKi8K KykKKworREVGX01BQ1JPKGZHRVRfUkVHX0ZJRUxEX01BU0ssCisJKCgoMTw8cmVnX2ZpZWxkX2lu Zm9bRklFTERdLndpZHRoKS0xKTw8cmVnX2ZpZWxkX2luZm9bRklFTERdLm9mZnNldCksCisJLyog Ki8KKykKKworREVGX01BQ1JPKGZSRUFEX1JFR19GSUVMRCwKKwlmRVhUUkFDVFVfQklUUyh0aHJl YWQtPlJlZ3NbUkVHXyMjUkVHXSwKKyAgICAgICAgICAgIHJlZ19maWVsZF9pbmZvW0ZJRUxEXS53 aWR0aCwKKyAgICAgICAgICAgIHJlZ19maWVsZF9pbmZvW0ZJRUxEXS5vZmZzZXQpLAorCS8qIEFU VFJJQlMgKi8KKykKKworREVGX01BQ1JPKGZHRVRfRklFTEQsCisJZkVYVFJBQ1RVX0JJVFMoVkFM LAorCQlyZWdfZmllbGRfaW5mb1tGSUVMRF0ud2lkdGgsCisJCXJlZ19maWVsZF9pbmZvW0ZJRUxE XS5vZmZzZXQpLAorCS8qIEFUVFJJQlMgKi8KKykKKworREVGX01BQ1JPKGZTRVRfRklFTEQsCisJ ZklOU0VSVF9CSVRTKFZBTCwKKwkJcmVnX2ZpZWxkX2luZm9bRklFTERdLndpZHRoLAorCQlyZWdf ZmllbGRfaW5mb1tGSUVMRF0ub2Zmc2V0LAorCQkoTkVXVkFMKSksCisJLyogQVRUUklCUyAqLwor KQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiBD YWNoZSBNYW5hZ2VtZW50ICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0RFRl9NQUNSTyhmQkFSUklFUiwK KyAgICAgeworICAgICAgICBzeXNfYmFycmllcih0aHJlYWQsIGluc24tPnNsb3QpOworICAgICB9 LAorCSgpCispCisKK0RFRl9NQUNSTyhmU1lOQ0gsCisgIHsKKyAgICAgIHN5c19zeW5jKHRocmVh ZCwgaW5zbi0+c2xvdCk7CisgIH0sCisJKCkKKykKKworREVGX01BQ1JPKGZJU1lOQywKKyAgewor ICAgICAgc3lzX2lzeW5jKHRocmVhZCwgaW5zbi0+c2xvdCk7CisgIH0sCisJKCkKKykKKworCitE RUZfTUFDUk8oZkRDRkVUQ0gsCisJc3lzX2RjZmV0Y2godGhyZWFkLCAoUkVHKSwgaW5zbi0+c2xv dCksCisJKEFfTUVNTElLRSkKKykKKworREVGX01BQ1JPKGZJQ0lOVkEsCisJeworCWFyY2hfaW50 ZXJuYWxfZmx1c2godGhyZWFkLT5wcm9jZXNzb3JfcHRyLCAwLCAweGZmZmZmZmZmKTsKKyAgIAlz eXNfaWNpbnZhKHRocmVhZCwgKFJFRyksaW5zbi0+c2xvdCk7CisJfSwKKwkoQV9JQ0lOVkEpCisp CisKK0RFRl9NQUNSTyhmTDJGRVRDSCwKKwlzeXNfbDJmZXRjaCh0aHJlYWQsIEFERFIsSEVJR0hU LFdJRFRILFNUUklERSxGTEFHUywgaW5zbi0+c2xvdCksCisJKEFfTUVNTElLRSxBX0wyRkVUQ0gp CispCisKK0RFRl9NQUNSTyhmRENDTEVBTkEsCisJc3lzX2RjY2xlYW5hKHRocmVhZCwgKFJFRykp LAorCShBX01FTUxJS0UpCispCisKK0RFRl9NQUNSTyhmRENDTEVBTklOVkEsCisJc3lzX2RjY2xl YW5pbnZhKHRocmVhZCwgKFJFRyksIGluc24tPnNsb3QpLAorCShBX01FTUxJS0UsQV9EQ0NMRUFO SU5WQSkKKykKKworREVGX01BQ1JPKGZEQ1pFUk9BLAorCXN5c19kY3plcm9hKHRocmVhZCwgKFJF RykpLAorCShBX01FTUxJS0UpCispCisKK0RFRl9NQUNSTyhmQ0hFQ0tGT1JQUklWLAorCXtzeXNf Y2hlY2tfcHJpdnModGhyZWFkKTsgaWYgKEVYQ0VQVElPTl9ERVRFQ1RFRCkgcmV0dXJuOyB9LAor CSgpCispCisKK0RFRl9NQUNSTyhmQ0hFQ0tGT1JHVUVTVCwKKwl7c3lzX2NoZWNrX2d1ZXN0KHRo cmVhZCk7IGlmIChFWENFUFRJT05fREVURUNURUQpIHJldHVybjsgfSwKKwkoKQorKQorCitERUZf TUFDUk8oZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwsCisJeworc3lzX3NwZWN1bGF0ZV9icmFuY2hf c3RhbGwodGhyZWFkLCBpbnNuLT5zbG90LCBKVU1QX0NPTkQoSlVNUF9QUkVEX1NFVCksCisJCQkJ CQkJCQkJICAgU1BFQ19ESVIsCisJCQkJCQkJCQkJICAgRE9UTkVXVkFMLAorCQkJCQkJCQkJCSAg IEhJTlRCSVROVU0sCisJCQkJCQkJCQkJICAgU1RSQklUTlVNLAorCQkJCQkJCQkJCSAgIDAsCisJ CQkJCQkJCQkJICAgdGhyZWFkLT5sYXN0X3BrdC0+cGt0X2hhc19kdWFsX2p1bXAsCisJCQkJCQkJ CQkJICAgaW5zbi0+aXNfMm5kX2p1bXAsCisJCQkJCQkJCQkJICAgKHRocmVhZC0+ZmV0Y2hfYWNj ZXNzLnZhZGRyICsgaW5zbi0+ZW5jb2Rpbmdfb2Zmc2V0KjQpKTsKKyAgfSwKKwkoKQorKQorCmRp ZmYgLS1naXQgYS90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tcHkuaWRlZiBiL3RhcmdldC9oZXhh Z29uL2ltcG9ydGVkL21weS5pZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjBjYzYyYWEKLS0tIC9kZXYvbnVsbAorKysgYi90YXJnZXQvaGV4YWdvbi9pbXBvcnRlZC9tcHku aWRlZgpAQCAtMCwwICsxLDEyMTIgQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMCBR dWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK KyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMg ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T RS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBu b3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworLyoKKyAqIE11 bHRpcGx5IEluc3RydWN0aW9ucworICovCisKKworI2RlZmluZSBTVERfU1BfTU9ERVMoVEFHLE9Q RVIsQVRSLERTVCxBQ0NTRU0sU0VNLE9TRU0sU0FUU0VNLFJORFNFTSlcCitRNklOU04oTTJfIyNU QUcjI19oaF9zMCwgT1BFUiIoUnMuSDMyLFJ0LkgzMikiT1NFTSwgICAgICAgIEFUUiwiIix7RFNU PVNBVFNFTShSTkRTRU0oQUNDU0VNIFNFTSggICAgICAgICBmR0VUSEFMRigxLFJzViksZkdFVEhB TEYoMSxSdFYpKSkpO30pXAorUTZJTlNOKE0yXyMjVEFHIyNfaGhfczEsIE9QRVIiKFJzLkgzMixS dC5IMzIpOjw8MSJPU0VNLCAgICBBVFIsIiIse0RTVD1TQVRTRU0oUk5EU0VNKEFDQ1NFTSBmU0NB TEUoMSxTRU0oZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDEsUnRWKSkpKSk7fSlcCitRNklOU04o TTJfIyNUQUcjI19obF9zMCwgT1BFUiIoUnMuSDMyLFJ0LkwzMikiT1NFTSwgICAgICAgIEFUUiwi Iix7RFNUPVNBVFNFTShSTkRTRU0oQUNDU0VNIFNFTSggICAgICAgICBmR0VUSEFMRigxLFJzViks ZkdFVEhBTEYoMCxSdFYpKSkpO30pXAorUTZJTlNOKE0yXyMjVEFHIyNfaGxfczEsIE9QRVIiKFJz LkgzMixSdC5MMzIpOjw8MSJPU0VNLCAgICBBVFIsIiIse0RTVD1TQVRTRU0oUk5EU0VNKEFDQ1NF TSBmU0NBTEUoMSxTRU0oZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDAsUnRWKSkpKSk7fSlcCitR NklOU04oTTJfIyNUQUcjI19saF9zMCwgT1BFUiIoUnMuTDMyLFJ0LkgzMikiT1NFTSwgICAgICAg IEFUUiwiIix7RFNUPVNBVFNFTShSTkRTRU0oQUNDU0VNIFNFTSggICAgICAgICBmR0VUSEFMRigw LFJzViksZkdFVEhBTEYoMSxSdFYpKSkpO30pXAorUTZJTlNOKE0yXyMjVEFHIyNfbGhfczEsIE9Q RVIiKFJzLkwzMixSdC5IMzIpOjw8MSJPU0VNLCAgICBBVFIsIiIse0RTVD1TQVRTRU0oUk5EU0VN KEFDQ1NFTSBmU0NBTEUoMSxTRU0oZkdFVEhBTEYoMCxSc1YpLGZHRVRIQUxGKDEsUnRWKSkpKSk7 fSlcCitRNklOU04oTTJfIyNUQUcjI19sbF9zMCwgT1BFUiIoUnMuTDMyLFJ0LkwzMikiT1NFTSwg ICAgICAgIEFUUiwiIix7RFNUPVNBVFNFTShSTkRTRU0oQUNDU0VNIFNFTSggICAgICAgICBmR0VU SEFMRigwLFJzViksZkdFVEhBTEYoMCxSdFYpKSkpO30pXAorUTZJTlNOKE0yXyMjVEFHIyNfbGxf czEsIE9QRVIiKFJzLkwzMixSdC5MMzIpOjw8MSJPU0VNLCAgICBBVFIsIiIse0RTVD1TQVRTRU0o Uk5EU0VNKEFDQ1NFTSBmU0NBTEUoMSxTRU0oZkdFVEhBTEYoMCxSc1YpLGZHRVRIQUxGKDAsUnRW KSkpKSk7fSkKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworLyogbXVsdGlwbHkgMTZ4MTYtPjMyIHNpZ25lZCBpbnN0cnVjdGlvbnMgICAg ICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworU1REX1NQX01PREVTKG1weV9hY2MsICAgICJSeDMyKz1tcHkiLCAsUnhWLFJ4 VisgICAgLGZNUFkxNlNTLCAgICAgICAgICAsZlBBU1MsZlBBU1MpCitTVERfU1BfTU9ERVMobXB5 X25hYywgICAgIlJ4MzItPW1weSIsICxSeFYsUnhWLSAgICAsZk1QWTE2U1MsICAgICAgICAgICxm UEFTUyxmUEFTUykKK1NURF9TUF9NT0RFUyhtcHlfYWNjX3NhdCwiUngzMis9bXB5IiwgLFJ4VixS eFYrICAgICxmTVBZMTZTUywiOnNhdCIgICAgLGZTQVQsIGZQQVNTKQorU1REX1NQX01PREVTKG1w eV9uYWNfc2F0LCJSeDMyLT1tcHkiLCAsUnhWLFJ4Vi0gICAgLGZNUFkxNlNTLCI6c2F0IiAgICAs ZlNBVCwgZlBBU1MpCitTVERfU1BfTU9ERVMobXB5LCAgICAgICAgIlJkMzI9bXB5IiwgICxSZFYs ICAgICAgICAsZk1QWTE2U1MsICAgICAgICAgICxmUEFTUyxmUEFTUykKK1NURF9TUF9NT0RFUyht cHlfc2F0LCAgICAiUmQzMj1tcHkiLCAgLFJkViwgICAgICAgICxmTVBZMTZTUywiOnNhdCIgICAg LGZTQVQsIGZQQVNTKQorU1REX1NQX01PREVTKG1weV9ybmQsICAgICJSZDMyPW1weSIsICAsUmRW LCAgICAgICAgLGZNUFkxNlNTLCI6cm5kIiAgICAsZlBBU1MsZlJPVU5EKQorU1REX1NQX01PREVT KG1weV9zYXRfcm5kLCJSZDMyPW1weSIsICAsUmRWLCAgICAgICAgLGZNUFkxNlNTLCI6cm5kOnNh dCIsZlNBVCwgZlJPVU5EKQorU1REX1NQX01PREVTKG1weWRfYWNjLCAgICJSeHgzMis9bXB5Iiws Unh4VixSeHhWKyAgLGZNUFkxNlNTLCAgICAgICAgICAsZlBBU1MsZlBBU1MpCitTVERfU1BfTU9E RVMobXB5ZF9uYWMsICAgIlJ4eDMyLT1tcHkiLCxSeHhWLFJ4eFYtICAsZk1QWTE2U1MsICAgICAg ICAgICxmUEFTUyxmUEFTUykKK1NURF9TUF9NT0RFUyhtcHlkLCAgICAgICAiUmRkMzI9bXB5Iiwg LFJkZFYsICAgICAgICxmTVBZMTZTUywgICAgICAgICAgLGZQQVNTLGZQQVNTKQorU1REX1NQX01P REVTKG1weWRfcm5kLCAgICJSZGQzMj1tcHkiLCAsUmRkViwgICAgICAgLGZNUFkxNlNTLCI6cm5k IiAgICAsZlBBU1MsZlJPVU5EKQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KKy8qIG11bHRpcGx5IDE2eDE2LT4zMiB1bnNpZ25lZCBp bnN0cnVjdGlvbnMgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KKyNkZWZpbmUgU1REX1VTUF9NT0RFUyhUQUcsT1BFUixB VFIsRFNULEFDQ1NFTSxTRU0sT1NFTSxTQVRTRU0sUk5EU0VNKVwKK1E2SU5TTihNMl8jI1RBRyMj X2hoX3MwLCBPUEVSIihScy5IMzIsUnQuSDMyKSJPU0VNLCAgICAgICAgQVRSLCIiLHtEU1Q9U0FU U0VNKFJORFNFTShBQ0NTRU0gU0VNKCAgICAgICAgIGZHRVRVSEFMRigxLFJzViksZkdFVFVIQUxG KDEsUnRWKSkpKTt9KVwKK1E2SU5TTihNMl8jI1RBRyMjX2hoX3MxLCBPUEVSIihScy5IMzIsUnQu SDMyKTo8PDEiT1NFTSwgICAgQVRSLCIiLHtEU1Q9U0FUU0VNKFJORFNFTShBQ0NTRU0gZlNDQUxF KDEsU0VNKGZHRVRVSEFMRigxLFJzViksZkdFVFVIQUxGKDEsUnRWKSkpKSk7fSlcCitRNklOU04o TTJfIyNUQUcjI19obF9zMCwgT1BFUiIoUnMuSDMyLFJ0LkwzMikiT1NFTSwgICAgICAgIEFUUiwi Iix7RFNUPVNBVFNFTShSTkRTRU0oQUNDU0VNIFNFTSggICAgICAgICBmR0VUVUhBTEYoMSxSc1Yp LGZHRVRVSEFMRigwLFJ0VikpKSk7fSlcCitRNklOU04oTTJfIyNUQUcjI19obF9zMSwgT1BFUiIo UnMuSDMyLFJ0LkwzMik6PDwxIk9TRU0sICAgIEFUUiwiIix7RFNUPVNBVFNFTShSTkRTRU0oQUND U0VNIGZTQ0FMRSgxLFNFTShmR0VUVUhBTEYoMSxSc1YpLGZHRVRVSEFMRigwLFJ0VikpKSkpO30p XAorUTZJTlNOKE0yXyMjVEFHIyNfbGhfczAsIE9QRVIiKFJzLkwzMixSdC5IMzIpIk9TRU0sICAg ICAgICBBVFIsIiIse0RTVD1TQVRTRU0oUk5EU0VNKEFDQ1NFTSBTRU0oICAgICAgICAgZkdFVFVI QUxGKDAsUnNWKSxmR0VUVUhBTEYoMSxSdFYpKSkpO30pXAorUTZJTlNOKE0yXyMjVEFHIyNfbGhf czEsIE9QRVIiKFJzLkwzMixSdC5IMzIpOjw8MSJPU0VNLCAgICBBVFIsIiIse0RTVD1TQVRTRU0o Uk5EU0VNKEFDQ1NFTSBmU0NBTEUoMSxTRU0oZkdFVFVIQUxGKDAsUnNWKSxmR0VUVUhBTEYoMSxS dFYpKSkpKTt9KVwKK1E2SU5TTihNMl8jI1RBRyMjX2xsX3MwLCBPUEVSIihScy5MMzIsUnQuTDMy KSJPU0VNLCAgICAgICAgQVRSLCIiLHtEU1Q9U0FUU0VNKFJORFNFTShBQ0NTRU0gU0VNKCAgICAg ICAgIGZHRVRVSEFMRigwLFJzViksZkdFVFVIQUxGKDAsUnRWKSkpKTt9KVwKK1E2SU5TTihNMl8j I1RBRyMjX2xsX3MxLCBPUEVSIihScy5MMzIsUnQuTDMyKTo8PDEiT1NFTSwgICAgQVRSLCIiLHtE U1Q9U0FUU0VNKFJORFNFTShBQ0NTRU0gZlNDQUxFKDEsU0VNKGZHRVRVSEFMRigwLFJzViksZkdF VFVIQUxGKDAsUnRWKSkpKSk7fSkKKworU1REX1VTUF9NT0RFUyhtcHl1X2FjYywgICAgIlJ4MzIr PW1weXUiLCAsUnhWLFJ4VisgICxmTVBZMTZVVSwgICAgICAgICAgLGZQQVNTLGZQQVNTKQorU1RE X1VTUF9NT0RFUyhtcHl1X25hYywgICAgIlJ4MzItPW1weXUiLCAsUnhWLFJ4Vi0gICxmTVBZMTZV VSwgICAgICAgICAgLGZQQVNTLGZQQVNTKQorU1REX1VTUF9NT0RFUyhtcHl1LCAgICAgICAgIlJk MzI9bXB5dSIsICBBVFRSSUJTKCkgLFJkViwgICxmTVBZMTZVVSwgLGZQQVNTLGZQQVNTKQorU1RE X1VTUF9NT0RFUyhtcHl1ZF9hY2MsICAgIlJ4eDMyKz1tcHl1IiwsUnh4VixSeHhWKyxmTVBZMTZV VSwgICAgICAgICAgLGZQQVNTLGZQQVNTKQorU1REX1VTUF9NT0RFUyhtcHl1ZF9uYWMsICAgIlJ4 eDMyLT1tcHl1IiwsUnh4VixSeHhWLSxmTVBZMTZVVSwgICAgICAgICAgLGZQQVNTLGZQQVNTKQor U1REX1VTUF9NT0RFUyhtcHl1ZCwgICAgICAgIlJkZDMyPW1weXUiLCBBVFRSSUJTKCkgLFJkZFYs ICxmTVBZMTZVVSwgLGZQQVNTLGZQQVNTKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKy8qIG1weSAxNngjczgtPjMyICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKiovCisKK1E2SU5TTihNMl9tcHlzaXAsIlJkMzI9K21weWkoUnMzMiwjdTgpIixBVFRSSUJT KEFfQVJDSFYyKSwKKyIzMi1iaXQgTXVsdGlwbHkgYnkgdW5zaWduZWQgaW1tZWRpYXRlIiwKK3sg ZklNTUVYVCh1aVYpOyBSZFY9UnNWKnVpVjsgfSkKKworUTZJTlNOKE0yX21weXNpbiwiUmQzMj0t bXB5aShSczMyLCN1OCkiLEFUVFJJQlMoQV9BUkNIVjIpLAorIjMyLWJpdCBNdWx0aXBseSBieSB1 bnNpZ25lZCBpbW1lZGlhdGUsIG5lZ2F0ZSByZXN1bHQiLAoreyBSZFY9UnNWKi11aVY7IH0pCisK K1E2SU5TTihNMl9tYWNzaXAsIlJ4MzIrPW1weWkoUnMzMiwjdTgpIixBVFRSSUJTKEFfQVJDSFYy KSwKKyIzMi1iaXQgTXVsdGlwbHktQWRkIGJ5IHVuc2lnbmVkIGltbWVkaWF0ZSIsCit7IGZJTU1F WFQodWlWKTsgUnhWPVJ4ViArIChSc1YqdWlWKTt9KQorCitRNklOU04oTTJfbWFjc2luLCJSeDMy LT1tcHlpKFJzMzIsI3U4KSIsQVRUUklCUyhBX0FSQ0hWMiksCisiMzItYml0IE11bHRpcGx5LVN1 YnRyYWN0IGJ5IHVuc2lnbmVkIGltbWVkaWF0ZSIsCit7IGZJTU1FWFQodWlWKTsgUnhWPVJ4ViAt IChSc1YqdWlWKTt9KQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLworLyogbXVsdGlwbHkvbWFjICAzMngzMi0+NjQgaW5zdHJ1Y3Rpb25zICAgICAg ICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KK1E2 SU5TTihNMl9kcG1weXNzX3MwLCAgICAiUmRkMzI9bXB5KFJzMzIsUnQzMikiLCBBVFRSSUJTKCks Ik11bHRpcGx5IDMyeDMyIix7UmRkVj1mTVBZMzJTUyhSc1YsUnRWKTt9KQorUTZJTlNOKE0yX2Rw bXB5c3NfYWNjX3MwLCJSeHgzMis9bXB5KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwiTXVsdGlwbHkg MzJ4MzIiLHtSeHhWPSBSeHhWICsgZk1QWTMyU1MoUnNWLFJ0Vik7fSkKK1E2SU5TTihNMl9kcG1w eXNzX25hY19zMCwiUnh4MzItPW1weShSczMyLFJ0MzIpIixBVFRSSUJTKCksIk11bHRpcGx5IDMy eDMyIix7Unh4Vj0gUnh4ViAtIGZNUFkzMlNTKFJzVixSdFYpO30pCisKK1E2SU5TTihNMl9kcG1w eXV1X3MwLCAgICAiUmRkMzI9bXB5dShSczMyLFJ0MzIpIiwgQVRUUklCUygpLCJNdWx0aXBseSAz MngzMiIse1JkZFY9Zk1QWTMyVVUoZkNBU1Q0dShSc1YpLGZDQVNUNHUoUnRWKSk7fSkKK1E2SU5T TihNMl9kcG1weXV1X2FjY19zMCwiUnh4MzIrPW1weXUoUnMzMixSdDMyKSIsQVRUUklCUygpLCJN dWx0aXBseSAzMngzMiIse1J4eFY9IFJ4eFYgKyBmTVBZMzJVVShmQ0FTVDR1KFJzViksZkNBU1Q0 dShSdFYpKTt9KQorUTZJTlNOKE0yX2RwbXB5dXVfbmFjX3MwLCJSeHgzMi09bXB5dShSczMyLFJ0 MzIpIixBVFRSSUJTKCksIk11bHRpcGx5IDMyeDMyIix7Unh4Vj0gUnh4ViAtIGZNUFkzMlVVKGZD QVNUNHUoUnNWKSxmQ0FTVDR1KFJ0VikpO30pCisKKworLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIG11bHRpcGx5L21hYyAgMzJ4MzIt PjMyICh1cHBlcikgaW5zdHJ1Y3Rpb25zICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworUTZJTlNOKE0yX21weV91cCwgICAg ICAgICJSZDMyPW1weShSczMyLFJ0MzIpIiwgQVRUUklCUygpLCJNdWx0aXBseSAzMngzMiIse1Jk Vj1mTVBZMzJTUyhSc1YsUnRWKT4+MzI7fSkKK1E2SU5TTihNMl9tcHlfdXBfczEsICAgICAiUmQz Mj1tcHkoUnMzMixSdDMyKTo8PDEiLCBBVFRSSUJTKCksIk11bHRpcGx5IDMyeDMyIix7UmRWPWZN UFkzMlNTKFJzVixSdFYpPj4zMTt9KQorUTZJTlNOKE0yX21weV91cF9zMV9zYXQsICJSZDMyPW1w eShSczMyLFJ0MzIpOjw8MTpzYXQiLCBBVFRSSUJTKCksIk11bHRpcGx5IDMyeDMyIix7UmRWPWZT QVQoZk1QWTMyU1MoUnNWLFJ0Vik+PjMxKTt9KQorUTZJTlNOKE0yX21weXVfdXAsICAgICAgICJS ZDMyPW1weXUoUnMzMixSdDMyKSIsIEFUVFJJQlMoKSwiTXVsdGlwbHkgMzJ4MzIiLHtSZFY9Zk1Q WTMyVVUoZkNBU1Q0dShSc1YpLGZDQVNUNHUoUnRWKSk+PjMyO30pCitRNklOU04oTTJfbXB5c3Vf dXAsICAgICAgIlJkMzI9bXB5c3UoUnMzMixSdDMyKSIsIEFUVFJJQlMoKSwiTXVsdGlwbHkgMzJ4 MzIiLHtSZFY9Zk1QWTMyU1UoUnNWLGZDQVNUNHUoUnRWKSk+PjMyO30pCitRNklOU04oTTJfZHBt cHlzc19ybmRfczAsIlJkMzI9bXB5KFJzMzIsUnQzMik6cm5kIiwgQVRUUklCUygpLCJNdWx0aXBs eSAzMngzMiIse1JkVj0oZk1QWTMyU1MoUnNWLFJ0VikrZkNPTlNUTEwoMHg4MDAwMDAwMCkpPj4z Mjt9KQorCitRNklOU04oTTRfbWFjX3VwX3MxX3NhdCwgIlJ4MzIrPW1weShSczMyLFJ0MzIpOjw8 MTpzYXQiLCBBVFRSSUJTKCksIk11bHRpcGx5IDMyeDMyIix7UnhWPWZTQVQoICAoZlNFMzJfNjQo UnhWKSkgKyAoZk1QWTMyU1MoUnNWLFJ0Vik+PjMxKSk7fSkKK1E2SU5TTihNNF9uYWNfdXBfczFf c2F0LCAiUngzMi09bXB5KFJzMzIsUnQzMik6PDwxOnNhdCIsIEFUVFJJQlMoKSwiTXVsdGlwbHkg MzJ4MzIiLHtSeFY9ZlNBVCggIChmU0UzMl82NChSeFYpKSAtIChmTVBZMzJTUyhSc1YsUnRWKT4+ MzEpKTt9KQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworLyogMzJ4MzItPjMyIG11bHRpcGx5IChsb3dlcikgICAgICAgICAgICAgICAgICovCisv KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNO KE0yX21weWksIlJkMzI9bXB5aShSczMyLFJ0MzIpIixBVFRSSUJTKCksCisiTXVsdGlwbHkgSW50 ZWdlciIsCit7IFJkVj1Sc1YqUnRWO30pCisKK1E2SU5TTihNMl9tYWNpLCJSeDMyKz1tcHlpKFJz MzIsUnQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIk11bHRpcGx5LUFjY3VtdWxhdGUgSW50ZWdl ciIsCit7IFJ4Vj1SeFYgKyBSc1YqUnRWO30pCisKK1E2SU5TTihNMl9tbmFjaSwiUngzMi09bXB5 aShSczMyLFJ0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJNdWx0aXBseS1OZWctQWNjdW11bGF0 ZSBJbnRlZ2VyIiwKK3sgUnhWPVJ4ViAtIFJzVipSdFY7fSkKKworLyoqKioqKiBXSFkgQVJFIFRI RVNFIElOIE1QWS5JREVGPyAqKioqKioqKioqLworCitRNklOU04oTTJfYWNjaSwiUngzMis9YWRk KFJzMzIsUnQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIkFkZCB3aXRoIGFjY3VtdWxhdGUiLAor eyBSeFY9UnhWICsgUnNWICsgUnRWO30pCisKK1E2SU5TTihNMl9hY2NpaSwiUngzMis9YWRkKFJz MzIsI3M4KSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQWRkIHdpdGggYWNjdW11bGF0ZSIsCit7IGZJ TU1FWFQoc2lWKTsgUnhWPVJ4ViArIFJzViArIHNpVjt9KQorCitRNklOU04oTTJfbmFjY2ksIlJ4 MzItPWFkZChSczMyLFJ0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJBZGQgd2l0aCBuZWcgYWNj dW11bGF0ZSIsCit7IFJ4Vj1SeFYgLSAoUnNWICsgUnRWKTt9KQorCitRNklOU04oTTJfbmFjY2lp LCJSeDMyLT1hZGQoUnMzMiwjczgpIixBVFRSSUJTKEFfQVJDSFYyKSwKKyJBZGQgd2l0aCBuZWcg YWNjdW11bGF0ZSIsCit7IGZJTU1FWFQoc2lWKTsgUnhWPVJ4ViAtIChSc1YgKyBzaVYpO30pCisK K1E2SU5TTihNMl9zdWJhY2MsIlJ4MzIrPXN1YihSdDMyLFJzMzIpIixBVFRSSUJTKEFfQVJDSFYy KSwKKyJTdWIgd2l0aCBhY2N1bXVsYXRlIiwKK3sgUnhWPVJ4ViArIFJ0ViAtIFJzVjt9KQorCisK KworCitRNklOU04oTTRfbXB5cnJfYWRkciwiUnkzMj1hZGQoUnUzMixtcHlpKFJ5MzIsUnMzMikp IixBVFRSSUJTKCksCisiTXB5IGJ5IGltbWVkIGFuZCBhZGQgaW1tZWQiLAoreyBSeVYgPSBSdVYg KyBSc1YqUnlWO30pCisKK1E2SU5TTihNNF9tcHlyaV9hZGRyX3UyLCJSZDMyPWFkZChSdTMyLG1w eWkoI3U2OjIsUnMzMikpIixBVFRSSUJTKCksCisiTXB5IGJ5IGltbWVkIGFuZCBhZGQgaW1tZWQi LAoreyBSZFYgPSBSdVYgKyBSc1YqdWlWO30pCisKK1E2SU5TTihNNF9tcHlyaV9hZGRyLCJSZDMy PWFkZChSdTMyLG1weWkoUnMzMiwjdTYpKSIsQVRUUklCUygpLAorIk1weSBieSBpbW1lZCBhbmQg YWRkIGltbWVkIiwKK3sgZklNTUVYVCh1aVYpOyBSZFYgPSBSdVYgKyBSc1YqdWlWO30pCisKKwor CitRNklOU04oTTRfbXB5cmlfYWRkaSwiUmQzMj1hZGQoI3U2LG1weWkoUnMzMiwjVTYpKSIsQVRU UklCUygpLAorIk1weSBieSBpbW1lZCBhbmQgYWRkIGltbWVkIiwKK3sgZklNTUVYVCh1aVYpOyBS ZFYgPSB1aVYgKyBSc1YqVWlWO30pCisKKworCitRNklOU04oTTRfbXB5cnJfYWRkaSwiUmQzMj1h ZGQoI3U2LG1weWkoUnMzMixSdDMyKSkiLEFUVFJJQlMoKSwKKyJNcHkgYnkgaW1tZWQgYW5kIGFk ZCBpbW1lZCIsCit7IGZJTU1FWFQodWlWKTsgUmRWID0gdWlWICsgUnNWKlJ0Vjt9KQorCisKKwor CisKKworCisKKworCisKKworCisKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqLworLyogdmVjdG9yIG1hYyAgMnhbMTZ4MTYgLT4gMzJdICAgICAg ICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KKworI3VuZGVmIHZtYWNfc2VtYQorI2RlZmluZSB2bWFjX3NlbWEoTilcCit7IGZTRVRX T1JEKDAsUmRkVixmU0FUKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNWKSxmR0VUSEFM RigwLFJ0VikpKSkpO1wKKyAgZlNFVFdPUkQoMSxSZGRWLGZTQVQoZlNDQUxFKE4sZk1QWTE2U1Mo ZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDEsUnRWKSkpKSk7XAorfQorUTZJTlNOKE0yX3ZtcHky c19zMCwiUmRkMzI9dm1weWgoUnMzMixSdDMyKTpzYXQiLEFUVFJJQlMoKSwiVmVjdG9yIE11bHRp cGx5Iix2bWFjX3NlbWEoMCkpCitRNklOU04oTTJfdm1weTJzX3MxLCJSZGQzMj12bXB5aChSczMy LFJ0MzIpOjw8MTpzYXQiLEFUVFJJQlMoKSwiVmVjdG9yIE11bHRpcGx5Iix2bWFjX3NlbWEoMSkp CisKKworI3VuZGVmIHZtYWNfc2VtYQorI2RlZmluZSB2bWFjX3NlbWEoTilcCit7IGZTRVRXT1JE KDAsUnh4VixmU0FUKGZHRVRXT1JEKDAsUnh4VikgKyBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFM RigwLFJzViksZkdFVEhBTEYoMCxSdFYpKSkpKTtcCisgIGZTRVRXT1JEKDEsUnh4VixmU0FUKGZH RVRXT1JEKDEsUnh4VikgKyBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigxLFJzViksZkdFVEhB TEYoMSxSdFYpKSkpKTtcCit9CitRNklOU04oTTJfdm1hYzJzX3MwLCJSeHgzMis9dm1weWgoUnMz MixSdDMyKTpzYXQiLEFUVFJJQlMoKSwiVmVjdG9yIE11bHRpcGx5Iix2bWFjX3NlbWEoMCkpCitR NklOU04oTTJfdm1hYzJzX3MxLCJSeHgzMis9dm1weWgoUnMzMixSdDMyKTo8PDE6c2F0IixBVFRS SUJTKCksIlZlY3RvciBNdWx0aXBseSIsdm1hY19zZW1hKDEpKQorCisjdW5kZWYgdm1hY19zZW1h CisjZGVmaW5lIHZtYWNfc2VtYShOKVwKK3sgZlNFVFdPUkQoMCxSZGRWLGZTQVQoZlNDQUxFKE4s Zk1QWTE2U1UoZkdFVEhBTEYoMCxSc1YpLGZHRVRVSEFMRigwLFJ0VikpKSkpO1wKKyAgZlNFVFdP UkQoMSxSZGRWLGZTQVQoZlNDQUxFKE4sZk1QWTE2U1UoZkdFVEhBTEYoMSxSc1YpLGZHRVRVSEFM RigxLFJ0VikpKSkpO1wKK30KK1E2SU5TTihNMl92bXB5MnN1X3MwLCJSZGQzMj12bXB5aHN1KFJz MzIsUnQzMik6c2F0IixBVFRSSUJTKCksIlZlY3RvciBNdWx0aXBseSIsdm1hY19zZW1hKDApKQor UTZJTlNOKE0yX3ZtcHkyc3VfczEsIlJkZDMyPXZtcHloc3UoUnMzMixSdDMyKTo8PDE6c2F0IixB VFRSSUJTKCksIlZlY3RvciBNdWx0aXBseSIsdm1hY19zZW1hKDEpKQorCisKKyN1bmRlZiB2bWFj X3NlbWEKKyNkZWZpbmUgdm1hY19zZW1hKE4pXAoreyBmU0VUV09SRCgwLFJ4eFYsZlNBVChmR0VU V09SRCgwLFJ4eFYpICsgZlNDQUxFKE4sZk1QWTE2U1UoZkdFVEhBTEYoMCxSc1YpLGZHRVRVSEFM RigwLFJ0VikpKSkpO1wKKyAgZlNFVFdPUkQoMSxSeHhWLGZTQVQoZkdFVFdPUkQoMSxSeHhWKSAr IGZTQ0FMRShOLGZNUFkxNlNVKGZHRVRIQUxGKDEsUnNWKSxmR0VUVUhBTEYoMSxSdFYpKSkpKTtc Cit9CitRNklOU04oTTJfdm1hYzJzdV9zMCwiUnh4MzIrPXZtcHloc3UoUnMzMixSdDMyKTpzYXQi LEFUVFJJQlMoKSwiVmVjdG9yIE11bHRpcGx5Iix2bWFjX3NlbWEoMCkpCitRNklOU04oTTJfdm1h YzJzdV9zMSwiUnh4MzIrPXZtcHloc3UoUnMzMixSdDMyKTo8PDE6c2F0IixBVFRSSUJTKCksIlZl Y3RvciBNdWx0aXBseSIsdm1hY19zZW1hKDEpKQorCisKKworI3VuZGVmIHZtYWNfc2VtYQorI2Rl ZmluZSB2bWFjX3NlbWEoTilcCit7IGZTRVRIQUxGKDEsUmRWLGZHRVRIQUxGKDEsKGZTQVQoZlND QUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDEsUnRWKSkpICsgMHg4MDAw KSkpKTtcCisgIGZTRVRIQUxGKDAsUmRWLGZHRVRIQUxGKDEsKGZTQVQoZlNDQUxFKE4sZk1QWTE2 U1MoZkdFVEhBTEYoMCxSc1YpLGZHRVRIQUxGKDAsUnRWKSkpICsgMHg4MDAwKSkpKTtcCit9CitR NklOU04oTTJfdm1weTJzX3MwcGFjaywiUmQzMj12bXB5aChSczMyLFJ0MzIpOnJuZDpzYXQiLEFU VFJJQlMoQV9BUkNIVjIpLCJWZWN0b3IgTXVsdGlwbHkiLHZtYWNfc2VtYSgwKSkKK1E2SU5TTihN Ml92bXB5MnNfczFwYWNrLCJSZDMyPXZtcHloKFJzMzIsUnQzMik6PDwxOnJuZDpzYXQiLEFUVFJJ QlMoQV9BUkNIVjIpLCJWZWN0b3IgTXVsdGlwbHkiLHZtYWNfc2VtYSgxKSkKKworCisjdW5kZWYg dm1hY19zZW1hCisjZGVmaW5lIHZtYWNfc2VtYShOKVwKK3sgZlNFVFdPUkQoMCxSeHhWLGZHRVRX T1JEKDAsUnh4VikgKyBmTVBZMTZTUyhmR0VUSEFMRigwLFJzViksZkdFVEhBTEYoMCxSdFYpKSk7 XAorICBmU0VUV09SRCgxLFJ4eFYsZkdFVFdPUkQoMSxSeHhWKSArIGZNUFkxNlNTKGZHRVRIQUxG KDEsUnNWKSxmR0VUSEFMRigxLFJ0VikpKTtcCit9CitRNklOU04oTTJfdm1hYzIsIlJ4eDMyKz12 bXB5aChSczMyLFJ0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwiVmVjdG9yIE11bHRpcGx5Iix2bWFj X3NlbWEoMCkpCisKKyN1bmRlZiB2bWFjX3NlbWEKKyNkZWZpbmUgdm1hY19zZW1hKE4pXAoreyBm U0VUV09SRCgwLFJkZFYsZlNBVChmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigwLFJzc1YpLGZH RVRIQUxGKDAsUnR0VikpKSkpO1wKKyAgZlNFVFdPUkQoMSxSZGRWLGZTQVQoZlNDQUxFKE4sZk1Q WTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkpKTtcCit9CitRNklOU04o TTJfdm1weTJlc19zMCwiUmRkMzI9dm1weWVoKFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMoKSwi VmVjdG9yIE11bHRpcGx5Iix2bWFjX3NlbWEoMCkpCitRNklOU04oTTJfdm1weTJlc19zMSwiUmRk MzI9dm1weWVoKFJzczMyLFJ0dDMyKTo8PDE6c2F0IixBVFRSSUJTKCksIlZlY3RvciBNdWx0aXBs eSIsdm1hY19zZW1hKDEpKQorCisjdW5kZWYgdm1hY19zZW1hCisjZGVmaW5lIHZtYWNfc2VtYShO KVwKK3sgZlNFVFdPUkQoMCxSeHhWLGZTQVQoZkdFVFdPUkQoMCxSeHhWKSArIGZTQ0FMRShOLGZN UFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxSdHRWKSkpKSk7XAorICBmU0VUV09S RCgxLFJ4eFYsZlNBVChmR0VUV09SRCgxLFJ4eFYpICsgZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhB TEYoMixSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkpKTtcCit9CitRNklOU04oTTJfdm1hYzJlc19z MCwiUnh4MzIrPXZtcHllaChSc3MzMixSdHQzMik6c2F0IixBVFRSSUJTKCksIlZlY3RvciBNdWx0 aXBseSIsdm1hY19zZW1hKDApKQorUTZJTlNOKE0yX3ZtYWMyZXNfczEsIlJ4eDMyKz12bXB5ZWgo UnNzMzIsUnR0MzIpOjw8MTpzYXQiLEFUVFJJQlMoKSwiVmVjdG9yIE11bHRpcGx5Iix2bWFjX3Nl bWEoMSkpCisKKyN1bmRlZiB2bWFjX3NlbWEKKyNkZWZpbmUgdm1hY19zZW1hKE4pXAoreyBmU0VU V09SRCgwLFJ4eFYsZkdFVFdPUkQoMCxSeHhWKSArIGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViks ZkdFVEhBTEYoMCxSdHRWKSkpO1wKKyAgZlNFVFdPUkQoMSxSeHhWLGZHRVRXT1JEKDEsUnh4Vikg KyBmTVBZMTZTUyhmR0VUSEFMRigyLFJzc1YpLGZHRVRIQUxGKDIsUnR0VikpKTtcCit9CitRNklO U04oTTJfdm1hYzJlcywiUnh4MzIrPXZtcHllaChSc3MzMixSdHQzMikiLEFUVFJJQlMoQV9BUkNI VjIpLCJWZWN0b3IgTXVsdGlwbHkiLHZtYWNfc2VtYSgwKSkKKworCisKKworLyoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogdnJtcHlo LCBha2EgQmlnIE1hYywgYWthIE1hYyBEYWRkeSwgYWthIE1hYy1hYy1hYy1hYyAqLworLyogdmVj dG9yIG1hYyAgNHhbMTZ4MTZdICsgNjQgLT42NCAgICAgICAgICAgICAgICAgICAgICAqLworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwor CisKKyN1bmRlZiB2bWFjX3NlbWEKKyNkZWZpbmUgdm1hY19zZW1hKE4pXAoreyBSeHhWID0gUnh4 ViArIGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxSdHRWKSlcCisgICAgICAg ICAgICAgICsgZk1QWTE2U1MoZkdFVEhBTEYoMSxSc3NWKSxmR0VUSEFMRigxLFJ0dFYpKVwKKyAg ICAgICAgICAgICAgKyBmTVBZMTZTUyhmR0VUSEFMRigyLFJzc1YpLGZHRVRIQUxGKDIsUnR0Vikp XAorICAgICAgICAgICAgICArIGZNUFkxNlNTKGZHRVRIQUxGKDMsUnNzViksZkdFVEhBTEYoMyxS dHRWKSk7XAorfQorUTZJTlNOKE0yX3ZybWFjX3MwLCJSeHgzMis9dnJtcHloKFJzczMyLFJ0dDMy KSIsQVRUUklCUygpLCJWZWN0b3IgTXVsdGlwbHkiLHZtYWNfc2VtYSgwKSkKKworI3VuZGVmIHZt YWNfc2VtYQorI2RlZmluZSB2bWFjX3NlbWEoTilcCit7IFJkZFYgPSBmTVBZMTZTUyhmR0VUSEFM RigwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpXAorICAgICAgICsgZk1QWTE2U1MoZkdFVEhBTEYo MSxSc3NWKSxmR0VUSEFMRigxLFJ0dFYpKVwKKyAgICAgICArIGZNUFkxNlNTKGZHRVRIQUxGKDIs UnNzViksZkdFVEhBTEYoMixSdHRWKSlcCisgICAgICAgKyBmTVBZMTZTUyhmR0VUSEFMRigzLFJz c1YpLGZHRVRIQUxGKDMsUnR0VikpO1wKK30KK1E2SU5TTihNMl92cm1weV9zMCwiUmRkMzI9dnJt cHloKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLCJWZWN0b3IgTXVsdGlwbHkiLHZtYWNfc2VtYSgw KSkKKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisvKiB2ZWN0b3IgZHVhbCBtYWNzLiBqdXN0IGxpa2UgY29tcGxleCAgICAgICAg ICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKi8KKworCisvKiBXaXRoIHJvdW5kJnBhY2sgKi8KKyN1bmRlZiBkbXB5X3NlbWEK KyNkZWZpbmUgZG1weV9zZW1hKE4pXAoreyBmU0VUSEFMRigwLFJkVixmR0VUSEFMRigxLChmU0FU KGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxSdHRWKSkpICsg XAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZTQ0FMRShOLGZNUFkxNlNTKGZH RVRIQUxGKDEsUnNzViksZkdFVEhBTEYoMSxSdHRWKSkpICsgMHg4MDAwKSkpKTtcCisgIGZTRVRI QUxGKDEsUmRWLGZHRVRIQUxGKDEsKGZTQVQoZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMixS c3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkgKyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMyxSc3NWKSxmR0VUSEFMRigzLFJ0dFYp KSkgKyAweDgwMDApKSkpO1wKK30KK1E2SU5TTihNMl92ZG1weXJzX3MwLCJSZDMyPXZkbXB5KFJz czMyLFJ0dDMyKTpybmQ6c2F0IixBVFRSSUJTKCksICAgICJ2ZWN0b3IgZHVhbCBtYWMgdy8gcm91 bmQmcGFjayIsZG1weV9zZW1hKDApKQorUTZJTlNOKE0yX3ZkbXB5cnNfczEsIlJkMzI9dmRtcHko UnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0IixBVFRSSUJTKCksInZlY3RvciBkdWFsIG1hYyB3LyBy b3VuZCZwYWNrIixkbXB5X3NlbWEoMSkpCisKKworCisKKworLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKy8qIHZlY3RvciBieXRlIG11bHRp cGxpZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisKK1E2SU5TTihNNV92cm1w eWJ1dSwiUmRkMzI9dnJtcHlidShSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyAidmVjdG9yIGR1 YWwgbXB5IGJ5dGVzIiwKK3sKKyAgZlNFVFdPUkQoMCxSZGRWLChmTVBZMTZTUyhmR0VUVUJZVEUo MCxSc3NWKSxmR0VUVUJZVEUoMCxSdHRWKSkgKworCQkgICBmTVBZMTZTUyhmR0VUVUJZVEUoMSxS c3NWKSxmR0VUVUJZVEUoMSxSdHRWKSkgKworCQkgICBmTVBZMTZTUyhmR0VUVUJZVEUoMixSc3NW KSxmR0VUVUJZVEUoMixSdHRWKSkgKworCQkgICBmTVBZMTZTUyhmR0VUVUJZVEUoMyxSc3NWKSxm R0VUVUJZVEUoMyxSdHRWKSkpKTsKKyAgZlNFVFdPUkQoMSxSZGRWLChmTVBZMTZTUyhmR0VUVUJZ VEUoNCxSc3NWKSxmR0VUVUJZVEUoNCxSdHRWKSkgKworCQkgICBmTVBZMTZTUyhmR0VUVUJZVEUo NSxSc3NWKSxmR0VUVUJZVEUoNSxSdHRWKSkgKworCQkgICBmTVBZMTZTUyhmR0VUVUJZVEUoNixS c3NWKSxmR0VUVUJZVEUoNixSdHRWKSkgKworCQkgICBmTVBZMTZTUyhmR0VUVUJZVEUoNyxSc3NW KSxmR0VUVUJZVEUoNyxSdHRWKSkpKTsKKyB9KQorCitRNklOU04oTTVfdnJtYWNidXUsIlJ4eDMy Kz12cm1weWJ1KFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorICJ2ZWN0b3IgZHVhbCBtYWMgYnl0 ZXMiLAoreworICBmU0VUV09SRCgwLFJ4eFYsKGZHRVRXT1JEKDAsUnh4VikgKworCSAgICAgICAg ICAgZk1QWTE2U1MoZkdFVFVCWVRFKDAsUnNzViksZkdFVFVCWVRFKDAsUnR0VikpICsKKwkJICAg Zk1QWTE2U1MoZkdFVFVCWVRFKDEsUnNzViksZkdFVFVCWVRFKDEsUnR0VikpICsKKwkJICAgZk1Q WTE2U1MoZkdFVFVCWVRFKDIsUnNzViksZkdFVFVCWVRFKDIsUnR0VikpICsKKwkJICAgZk1QWTE2 U1MoZkdFVFVCWVRFKDMsUnNzViksZkdFVFVCWVRFKDMsUnR0VikpKSk7CisgIGZTRVRXT1JEKDEs Unh4ViwoZkdFVFdPUkQoMSxSeHhWKSArCisJCSAgIGZNUFkxNlNTKGZHRVRVQllURSg0LFJzc1Yp LGZHRVRVQllURSg0LFJ0dFYpKSArCisJCSAgIGZNUFkxNlNTKGZHRVRVQllURSg1LFJzc1YpLGZH RVRVQllURSg1LFJ0dFYpKSArCisJCSAgIGZNUFkxNlNTKGZHRVRVQllURSg2LFJzc1YpLGZHRVRV QllURSg2LFJ0dFYpKSArCisJCSAgIGZNUFkxNlNTKGZHRVRVQllURSg3LFJzc1YpLGZHRVRVQllU RSg3LFJ0dFYpKSkpOworIH0pCisKKworUTZJTlNOKE01X3ZybXB5YnN1LCJSZGQzMj12cm1weWJz dShSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyAidmVjdG9yIGR1YWwgbXB5IGJ5dGVzIiwKK3sK KyAgZlNFVFdPUkQoMCxSZGRWLChmTVBZMTZTUyhmR0VUQllURSgwLFJzc1YpLGZHRVRVQllURSgw LFJ0dFYpKSArCisJCSAgIGZNUFkxNlNTKGZHRVRCWVRFKDEsUnNzViksZkdFVFVCWVRFKDEsUnR0 VikpICsKKwkJICAgZk1QWTE2U1MoZkdFVEJZVEUoMixSc3NWKSxmR0VUVUJZVEUoMixSdHRWKSkg KworCQkgICBmTVBZMTZTUyhmR0VUQllURSgzLFJzc1YpLGZHRVRVQllURSgzLFJ0dFYpKSkpOwor ICBmU0VUV09SRCgxLFJkZFYsKGZNUFkxNlNTKGZHRVRCWVRFKDQsUnNzViksZkdFVFVCWVRFKDQs UnR0VikpICsKKwkJICAgZk1QWTE2U1MoZkdFVEJZVEUoNSxSc3NWKSxmR0VUVUJZVEUoNSxSdHRW KSkgKworCQkgICBmTVBZMTZTUyhmR0VUQllURSg2LFJzc1YpLGZHRVRVQllURSg2LFJ0dFYpKSAr CisJCSAgIGZNUFkxNlNTKGZHRVRCWVRFKDcsUnNzViksZkdFVFVCWVRFKDcsUnR0VikpKSk7Cisg fSkKKworUTZJTlNOKE01X3ZybWFjYnN1LCJSeHgzMis9dnJtcHlic3UoUnNzMzIsUnR0MzIpIixB VFRSSUJTKCksCisgInZlY3RvciBkdWFsIG1hYyBieXRlcyIsCit7CisgIGZTRVRXT1JEKDAsUnh4 ViwoZkdFVFdPUkQoMCxSeHhWKSArCisJCSAgIGZNUFkxNlNTKGZHRVRCWVRFKDAsUnNzViksZkdF VFVCWVRFKDAsUnR0VikpICsKKwkJICAgZk1QWTE2U1MoZkdFVEJZVEUoMSxSc3NWKSxmR0VUVUJZ VEUoMSxSdHRWKSkgKworCQkgICBmTVBZMTZTUyhmR0VUQllURSgyLFJzc1YpLGZHRVRVQllURSgy LFJ0dFYpKSArCisJCSAgIGZNUFkxNlNTKGZHRVRCWVRFKDMsUnNzViksZkdFVFVCWVRFKDMsUnR0 VikpKSk7CisgIGZTRVRXT1JEKDEsUnh4ViwoZkdFVFdPUkQoMSxSeHhWKSArCisJCSAgIGZNUFkx NlNTKGZHRVRCWVRFKDQsUnNzViksZkdFVFVCWVRFKDQsUnR0VikpICsKKwkJICAgZk1QWTE2U1Mo ZkdFVEJZVEUoNSxSc3NWKSxmR0VUVUJZVEUoNSxSdHRWKSkgKworCQkgICBmTVBZMTZTUyhmR0VU QllURSg2LFJzc1YpLGZHRVRVQllURSg2LFJ0dFYpKSArCisJCSAgIGZNUFkxNlNTKGZHRVRCWVRF KDcsUnNzViksZkdFVFVCWVRFKDcsUnR0VikpKSk7CisgfSkKKworCitRNklOU04oTTVfdm1weWJ1 dSwiUmRkMzI9dm1weWJ1KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyAidmVjdG9yIG1weSBieXRl cyIsCit7CisgIGZTRVRIQUxGKDAsUmRkViwoZk1QWTE2U1MoZkdFVFVCWVRFKDAsUnNWKSxmR0VU VUJZVEUoMCxSdFYpKSkpOworICBmU0VUSEFMRigxLFJkZFYsKGZNUFkxNlNTKGZHRVRVQllURSgx LFJzViksZkdFVFVCWVRFKDEsUnRWKSkpKTsKKyAgZlNFVEhBTEYoMixSZGRWLChmTVBZMTZTUyhm R0VUVUJZVEUoMixSc1YpLGZHRVRVQllURSgyLFJ0VikpKSk7CisgIGZTRVRIQUxGKDMsUmRkViwo Zk1QWTE2U1MoZkdFVFVCWVRFKDMsUnNWKSxmR0VUVUJZVEUoMyxSdFYpKSkpOworIH0pCisKK1E2 SU5TTihNNV92bXB5YnN1LCJSZGQzMj12bXB5YnN1KFJzMzIsUnQzMikiLEFUVFJJQlMoKSwKKyAi dmVjdG9yIG1weSBieXRlcyIsCit7CisgIGZTRVRIQUxGKDAsUmRkViwoZk1QWTE2U1MoZkdFVEJZ VEUoMCxSc1YpLGZHRVRVQllURSgwLFJ0VikpKSk7CisgIGZTRVRIQUxGKDEsUmRkViwoZk1QWTE2 U1MoZkdFVEJZVEUoMSxSc1YpLGZHRVRVQllURSgxLFJ0VikpKSk7CisgIGZTRVRIQUxGKDIsUmRk ViwoZk1QWTE2U1MoZkdFVEJZVEUoMixSc1YpLGZHRVRVQllURSgyLFJ0VikpKSk7CisgIGZTRVRI QUxGKDMsUmRkViwoZk1QWTE2U1MoZkdFVEJZVEUoMyxSc1YpLGZHRVRVQllURSgzLFJ0VikpKSk7 CisgfSkKKworCitRNklOU04oTTVfdm1hY2J1dSwiUnh4MzIrPXZtcHlidShSczMyLFJ0MzIpIixB VFRSSUJTKCksCisgInZlY3RvciBtYWMgYnl0ZXMiLAoreworICBmU0VUSEFMRigwLFJ4eFYsKGZH RVRIQUxGKDAsUnh4VikrZk1QWTE2U1MoZkdFVFVCWVRFKDAsUnNWKSxmR0VUVUJZVEUoMCxSdFYp KSkpOworICBmU0VUSEFMRigxLFJ4eFYsKGZHRVRIQUxGKDEsUnh4VikrZk1QWTE2U1MoZkdFVFVC WVRFKDEsUnNWKSxmR0VUVUJZVEUoMSxSdFYpKSkpOworICBmU0VUSEFMRigyLFJ4eFYsKGZHRVRI QUxGKDIsUnh4VikrZk1QWTE2U1MoZkdFVFVCWVRFKDIsUnNWKSxmR0VUVUJZVEUoMixSdFYpKSkp OworICBmU0VUSEFMRigzLFJ4eFYsKGZHRVRIQUxGKDMsUnh4VikrZk1QWTE2U1MoZkdFVFVCWVRF KDMsUnNWKSxmR0VUVUJZVEUoMyxSdFYpKSkpOworIH0pCisKK1E2SU5TTihNNV92bWFjYnN1LCJS eHgzMis9dm1weWJzdShSczMyLFJ0MzIpIixBVFRSSUJTKCksCisgInZlY3RvciBtYWMgYnl0ZXMi LAoreworICBmU0VUSEFMRigwLFJ4eFYsKGZHRVRIQUxGKDAsUnh4VikrZk1QWTE2U1MoZkdFVEJZ VEUoMCxSc1YpLGZHRVRVQllURSgwLFJ0VikpKSk7CisgIGZTRVRIQUxGKDEsUnh4ViwoZkdFVEhB TEYoMSxSeHhWKStmTVBZMTZTUyhmR0VUQllURSgxLFJzViksZkdFVFVCWVRFKDEsUnRWKSkpKTsK KyAgZlNFVEhBTEYoMixSeHhWLChmR0VUSEFMRigyLFJ4eFYpK2ZNUFkxNlNTKGZHRVRCWVRFKDIs UnNWKSxmR0VUVUJZVEUoMixSdFYpKSkpOworICBmU0VUSEFMRigzLFJ4eFYsKGZHRVRIQUxGKDMs Unh4VikrZk1QWTE2U1MoZkdFVEJZVEUoMyxSc1YpLGZHRVRVQllURSgzLFJ0VikpKSk7CisgfSkK KworCisKK1E2SU5TTihNNV92ZG1weWJzdSwiUmRkMzI9dmRtcHlic3UoUnNzMzIsUnR0MzIpOnNh dCIsQVRUUklCUygpLAorICJ2ZWN0b3IgcXVhZCBtcHkgYnl0ZXMiLAoreworICBmU0VUSEFMRigw LFJkZFYsZlNBVE4oMTYsKGZNUFkxNlNTKGZHRVRCWVRFKDAsUnNzViksZkdFVFVCWVRFKDAsUnR0 VikpICsKKyAgICAgICAgIAkJICAgZk1QWTE2U1MoZkdFVEJZVEUoMSxSc3NWKSxmR0VUVUJZVEUo MSxSdHRWKSkpKSk7CisgIGZTRVRIQUxGKDEsUmRkVixmU0FUTigxNiwoZk1QWTE2U1MoZkdFVEJZ VEUoMixSc3NWKSxmR0VUVUJZVEUoMixSdHRWKSkgKworICAgICAgICAgCQkgICBmTVBZMTZTUyhm R0VUQllURSgzLFJzc1YpLGZHRVRVQllURSgzLFJ0dFYpKSkpKTsKKyAgZlNFVEhBTEYoMixSZGRW LGZTQVROKDE2LChmTVBZMTZTUyhmR0VUQllURSg0LFJzc1YpLGZHRVRVQllURSg0LFJ0dFYpKSAr CisgICAgICAgICAJCSAgIGZNUFkxNlNTKGZHRVRCWVRFKDUsUnNzViksZkdFVFVCWVRFKDUsUnR0 VikpKSkpOworICBmU0VUSEFMRigzLFJkZFYsZlNBVE4oMTYsKGZNUFkxNlNTKGZHRVRCWVRFKDYs UnNzViksZkdFVFVCWVRFKDYsUnR0VikpICsKKyAgICAgICAgIAkJICAgZk1QWTE2U1MoZkdFVEJZ VEUoNyxSc3NWKSxmR0VUVUJZVEUoNyxSdHRWKSkpKSk7CisgfSkKKworCitRNklOU04oTTVfdmRt YWNic3UsIlJ4eDMyKz12ZG1weWJzdShSc3MzMixSdHQzMik6c2F0IixBVFRSSUJTKCksCisgInZl Y3RvciBxdWFkIG1hYyBieXRlcyIsCit7CisgIGZTRVRIQUxGKDAsUnh4VixmU0FUTigxNiwoZkdF VEhBTEYoMCxSeHhWKSArCisJCSAgIGZNUFkxNlNTKGZHRVRCWVRFKDAsUnNzViksZkdFVFVCWVRF KDAsUnR0VikpICsKKwkJICAgZk1QWTE2U1MoZkdFVEJZVEUoMSxSc3NWKSxmR0VUVUJZVEUoMSxS dHRWKSkpKSk7CisgIGZTRVRIQUxGKDEsUnh4VixmU0FUTigxNiwoZkdFVEhBTEYoMSxSeHhWKSAr CisJCSAgIGZNUFkxNlNTKGZHRVRCWVRFKDIsUnNzViksZkdFVFVCWVRFKDIsUnR0VikpICsKKwkJ ICAgZk1QWTE2U1MoZkdFVEJZVEUoMyxSc3NWKSxmR0VUVUJZVEUoMyxSdHRWKSkpKSk7CisgIGZT RVRIQUxGKDIsUnh4VixmU0FUTigxNiwoZkdFVEhBTEYoMixSeHhWKSArCisJCSAgIGZNUFkxNlNT KGZHRVRCWVRFKDQsUnNzViksZkdFVFVCWVRFKDQsUnR0VikpICsKKwkJICAgZk1QWTE2U1MoZkdF VEJZVEUoNSxSc3NWKSxmR0VUVUJZVEUoNSxSdHRWKSkpKSk7CisgIGZTRVRIQUxGKDMsUnh4Vixm U0FUTigxNiwoZkdFVEhBTEYoMyxSeHhWKSArCisJCSAgIGZNUFkxNlNTKGZHRVRCWVRFKDYsUnNz ViksZkdFVFVCWVRFKDYsUnR0VikpICsKKwkJICAgZk1QWTE2U1MoZkdFVEJZVEUoNyxSc3NWKSxm R0VUVUJZVEUoNyxSdHRWKSkpKSk7CisgfSkKKworCisKKy8qIEZ1bGwgdmVyc2lvbiAqLworI3Vu ZGVmIGRtcHlfc2VtYQorI2RlZmluZSBkbXB5X3NlbWEoTilcCit7IGZTRVRXT1JEKDAsUnh4Vixm U0FUKGZHRVRXT1JEKDAsUnh4VikgKyBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigwLFJzc1Yp LGZHRVRIQUxGKDAsUnR0VikpKSArIFwKKyAgICAgICAgICAgICAgICAgICAgIGZTQ0FMRShOLGZN UFkxNlNTKGZHRVRIQUxGKDEsUnNzViksZkdFVEhBTEYoMSxSdHRWKSkpKSk7XAorICBmU0VUV09S RCgxLFJ4eFYsZlNBVChmR0VUV09SRCgxLFJ4eFYpICsgZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhB TEYoMixSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkgKyBcCisgICAgICAgICAgICAgICAgICAgICBm U0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigzLFJzc1YpLGZHRVRIQUxGKDMsUnR0VikpKSkpO1wK K30KK1E2SU5TTihNMl92ZG1hY3NfczAsIlJ4eDMyKz12ZG1weShSc3MzMixSdHQzMik6c2F0IixB VFRSSUJTKCksICAgICIiLGRtcHlfc2VtYSgwKSkKK1E2SU5TTihNMl92ZG1hY3NfczEsIlJ4eDMy Kz12ZG1weShSc3MzMixSdHQzMik6PDwxOnNhdCIsQVRUUklCUygpLCIiLGRtcHlfc2VtYSgxKSkK KworI3VuZGVmIGRtcHlfc2VtYQorI2RlZmluZSBkbXB5X3NlbWEoTilcCit7IGZTRVRXT1JEKDAs UmRkVixmU0FUKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxS dHRWKSkpICsgXAorICAgICAgICAgICAgICBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigxLFJz c1YpLGZHRVRIQUxGKDEsUnR0VikpKSkpO1wKKyAgZlNFVFdPUkQoMSxSZGRWLGZTQVQoZlNDQUxF KE4sZk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkgKyBcCisgICAg ICAgICAgICAgIGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDMsUnNzViksZkdFVEhBTEYoMyxS dHRWKSkpKSk7XAorfQorCitRNklOU04oTTJfdmRtcHlzX3MwLCJSZGQzMj12ZG1weShSc3MzMixS dHQzMik6c2F0IixBVFRSSUJTKCksICAgICIiLGRtcHlfc2VtYSgwKSkKK1E2SU5TTihNMl92ZG1w eXNfczEsIlJkZDMyPXZkbXB5KFJzczMyLFJ0dDMyKTo8PDE6c2F0IixBVFRSSUJTKCksIiIsZG1w eV9zZW1hKDEpKQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKi8KKy8qIGNvbXBsZXggbXVsdGlwbHkvbWFjIHdpdGggICAgICAgICAg ICAgICAgICAgICAgICAgICovCisvKiByZWFsJmltYWcgYXJlIHBhY2tlZCB0b2dldGhlciBhbmQg YWx3YXlzIHNhdHVyYXRlZCAqLworLyogdG8gcHJvdGVjdCBhZ2FpbnN0IG92ZXJmbG93LiAgICAg ICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKiovCisKKyN1bmRlZiBjbXB5X3NlbWEKKyNkZWZpbmUgY21weV9z ZW1hKE4sQ09OSk1JTlVTLENPTkpQTFVTKVwKK3sgZlNFVEhBTEYoMSxSZFYsZkdFVEhBTEYoMSwo ZlNBVChmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigxLFJzViksZkdFVEhBTEYoMCxSdFYpKSkg Q09OSk1JTlVTIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU0NBTEUoTixm TVBZMTZTUyhmR0VUSEFMRigwLFJzViksZkdFVEhBTEYoMSxSdFYpKSkgKyAweDgwMDApKSkpO1wK KyAgZlNFVEhBTEYoMCxSZFYsZkdFVEhBTEYoMSwoZlNBVChmU0NBTEUoTixmTVBZMTZTUyhmR0VU SEFMRigwLFJzViksZkdFVEhBTEYoMCxSdFYpKSkgQ09OSlBMVVMgXAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDEsUnNWKSxmR0VU SEFMRigxLFJ0VikpKSArIDB4ODAwMCkpKSk7XAorfQorUTZJTlNOKE0yX2NtcHlyc19zMCwiUmQz Mj1jbXB5KFJzMzIsUnQzMik6cm5kOnNhdCIsQVRUUklCUygpLCAgICAiQ29tcGxleCBNdWx0aXBs eSIsY21weV9zZW1hKDAsKywtKSkKK1E2SU5TTihNMl9jbXB5cnNfczEsIlJkMzI9Y21weShSczMy LFJ0MzIpOjw8MTpybmQ6c2F0IixBVFRSSUJTKCksIkNvbXBsZXggTXVsdGlwbHkiLGNtcHlfc2Vt YSgxLCssLSkpCisKKworUTZJTlNOKE0yX2NtcHlyc2NfczAsIlJkMzI9Y21weShSczMyLFJ0MzIq KTpybmQ6c2F0IixBVFRSSUJTKEFfQVJDSFYyKSwgICAgIkNvbXBsZXggTXVsdGlwbHkiLGNtcHlf c2VtYSgwLC0sKykpCitRNklOU04oTTJfY21weXJzY19zMSwiUmQzMj1jbXB5KFJzMzIsUnQzMiop Ojw8MTpybmQ6c2F0IixBVFRSSUJTKEFfQVJDSFYyKSwiQ29tcGxleCBNdWx0aXBseSIsY21weV9z ZW1hKDEsLSwrKSkKKworCisjdW5kZWYgY21weV9zZW1hCisjZGVmaW5lIGNtcHlfc2VtYShOLENP TkpNSU5VUyxDT05KUExVUylcCit7IGZTRVRXT1JEKDEsUnh4VixmU0FUKGZHRVRXT1JEKDEsUnh4 VikgKyBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFMRigxLFJzViksZkdFVEhBTEYoMCxSdFYpKSkg Q09OSk1JTlVTIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZT Q0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNWKSxmR0VUSEFMRigxLFJ0VikpKSkpO1wKKyAg ZlNFVFdPUkQoMCxSeHhWLGZTQVQoZkdFVFdPUkQoMCxSeHhWKSArIGZTQ0FMRShOLGZNUFkxNlNT KGZHRVRIQUxGKDAsUnNWKSxmR0VUSEFMRigwLFJ0VikpKSBDT05KUExVUyBcCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU0NBTEUoTixmTVBZMTZTUyhmR0VUSEFM RigxLFJzViksZkdFVEhBTEYoMSxSdFYpKSkpKTtcCit9CitRNklOU04oTTJfY21hY3NfczAsIlJ4 eDMyKz1jbXB5KFJzMzIsUnQzMik6c2F0IixBVFRSSUJTKCksICAgICJDb21wbGV4IE11bHRpcGx5 IixjbXB5X3NlbWEoMCwrLC0pKQorUTZJTlNOKE0yX2NtYWNzX3MxLCJSeHgzMis9Y21weShSczMy LFJ0MzIpOjw8MTpzYXQiLEFUVFJJQlMoKSwiQ29tcGxleCBNdWx0aXBseSIsY21weV9zZW1hKDEs KywtKSkKKworLyogRUpQOiBOZWVkIG1hYyB2ZXJzaW9ucyB3LyBDT05KIFQ/ICovCitRNklOU04o TTJfY21hY3NjX3MwLCJSeHgzMis9Y21weShSczMyLFJ0MzIqKTpzYXQiLEFUVFJJQlMoQV9BUkNI VjIpLCAgICAiQ29tcGxleCBNdWx0aXBseSIsY21weV9zZW1hKDAsLSwrKSkKK1E2SU5TTihNMl9j bWFjc2NfczEsIlJ4eDMyKz1jbXB5KFJzMzIsUnQzMiopOjw8MTpzYXQiLEFUVFJJQlMoQV9BUkNI VjIpLCJDb21wbGV4IE11bHRpcGx5IixjbXB5X3NlbWEoMSwtLCspKQorCisKKyN1bmRlZiBjbXB5 X3NlbWEKKyNkZWZpbmUgY21weV9zZW1hKE4sQ09OSk1JTlVTLENPTkpQTFVTKVwKK3sgZlNFVFdP UkQoMSxSZGRWLGZTQVQoZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxG KDAsUnRWKSkpIENPTkpNSU5VUyBcCisgICAgICAgICAgICAgICAgICAgICAgIGZTQ0FMRShOLGZN UFkxNlNTKGZHRVRIQUxGKDAsUnNWKSxmR0VUSEFMRigxLFJ0VikpKSkpO1wKKyAgZlNFVFdPUkQo MCxSZGRWLGZTQVQoZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMCxSc1YpLGZHRVRIQUxGKDAs UnRWKSkpIENPTkpQTFVTIFwKKyAgICAgICAgICAgICAgICAgICAgICAgZlNDQUxFKE4sZk1QWTE2 U1MoZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDEsUnRWKSkpKSk7XAorfQorCitRNklOU04oTTJf Y21weXNfczAsIlJkZDMyPWNtcHkoUnMzMixSdDMyKTpzYXQiLEFUVFJJQlMoKSwgICAgIkNvbXBs ZXggTXVsdGlwbHkiLGNtcHlfc2VtYSgwLCssLSkpCitRNklOU04oTTJfY21weXNfczEsIlJkZDMy PWNtcHkoUnMzMixSdDMyKTo8PDE6c2F0IixBVFRSSUJTKCksIkNvbXBsZXggTXVsdGlwbHkiLGNt cHlfc2VtYSgxLCssLSkpCisKK1E2SU5TTihNMl9jbXB5c2NfczAsIlJkZDMyPWNtcHkoUnMzMixS dDMyKik6c2F0IixBVFRSSUJTKEFfQVJDSFYyKSwgICAgIkNvbXBsZXggTXVsdGlwbHkiLGNtcHlf c2VtYSgwLC0sKykpCitRNklOU04oTTJfY21weXNjX3MxLCJSZGQzMj1jbXB5KFJzMzIsUnQzMiop Ojw8MTpzYXQiLEFUVFJJQlMoQV9BUkNIVjIpLCJDb21wbGV4IE11bHRpcGx5IixjbXB5X3NlbWEo MSwtLCspKQorCisKKworI3VuZGVmIGNtcHlfc2VtYQorI2RlZmluZSBjbXB5X3NlbWEoTixDT05K TUlOVVMsQ09OSlBMVVMpXAoreyBmU0VUV09SRCgxLFJ4eFYsZlNBVChmR0VUV09SRCgxLFJ4eFYp IC0gKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDEsUnNWKSxmR0VUSEFMRigwLFJ0VikpKSBD T05KTUlOVVMgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZT Q0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNWKSxmR0VUSEFMRigxLFJ0VikpKSkpKTtcCisg IGZTRVRXT1JEKDAsUnh4VixmU0FUKGZHRVRXT1JEKDAsUnh4VikgLSAoZlNDQUxFKE4sZk1QWTE2 U1MoZkdFVEhBTEYoMCxSc1YpLGZHRVRIQUxGKDAsUnRWKSkpIENPTkpQTFVTIFwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmU0NBTEUoTixmTVBZMTZTUyhmR0VU SEFMRigxLFJzViksZkdFVEhBTEYoMSxSdFYpKSkpKSk7XAorfQorUTZJTlNOKE0yX2NuYWNzX3Mw LCJSeHgzMi09Y21weShSczMyLFJ0MzIpOnNhdCIsQVRUUklCUyhBX0FSQ0hWMiksICAgICJDb21w bGV4IE11bHRpcGx5IixjbXB5X3NlbWEoMCwrLC0pKQorUTZJTlNOKE0yX2NuYWNzX3MxLCJSeHgz Mi09Y21weShSczMyLFJ0MzIpOjw8MTpzYXQiLEFUVFJJQlMoQV9BUkNIVjIpLCJDb21wbGV4IE11 bHRpcGx5IixjbXB5X3NlbWEoMSwrLC0pKQorCisvKiBFSlA6IG5lZWQgQ09OSiB2ZXJzaW9ucz8g Ki8KK1E2SU5TTihNMl9jbmFjc2NfczAsIlJ4eDMyLT1jbXB5KFJzMzIsUnQzMiopOnNhdCIsQVRU UklCUyhBX0FSQ0hWMiksICAgICJDb21wbGV4IE11bHRpcGx5IixjbXB5X3NlbWEoMCwtLCspKQor UTZJTlNOKE0yX2NuYWNzY19zMSwiUnh4MzItPWNtcHkoUnMzMixSdDMyKik6PDwxOnNhdCIsQVRU UklCUyhBX0FSQ0hWMiksIkNvbXBsZXggTXVsdGlwbHkiLGNtcHlfc2VtYSgxLC0sKykpCisKKwor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K Ky8qIGNvbXBsZXggaW50ZXJwb2xhdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov CisvKiBHaXZlbiBhIHBhaXIgb2YgY29tcGxleCB2YWx1ZXMsIHNjYWxlIGJ5IGEsYiwgc3VtICAq LworLyogU2F0dXJhdGUvc2hpZnQxIGFuZCByb3VuZC9wYWNrICAgICAgICAgICAgICAgICAgICAg Ki8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisKKyN1bmRlZiB2cmNtcHlzX3NlbWEKKyNkZWZpbmUgdnJjbXB5c19zZW1hKE4sSU5XT1JE KSBcCit7IGZTRVRXT1JEKDEsUmRkVixmU0FUKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDEs UnNzViksZkdFVEhBTEYoMCxJTldPUkQpKSkgKyBcCisgICAgICAgICAgICAgICAgICAgICAgIGZT Q0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDMsUnNzViksZkdFVEhBTEYoMSxJTldPUkQpKSkpKTtc CisgIGZTRVRXT1JEKDAsUmRkVixmU0FUKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNz ViksZkdFVEhBTEYoMCxJTldPUkQpKSkgKyBcCisgICAgICAgICAgICAgICAgICAgICAgIGZTQ0FM RShOLGZNUFkxNlNTKGZHRVRIQUxGKDIsUnNzViksZkdFVEhBTEYoMSxJTldPUkQpKSkpKTtcCit9 CisKKworCitRNklOU04oTTJfdnJjbXB5c19zMV9oLCJSZGQzMj12cmNtcHlzKFJzczMyLFJ0dDMy KTo8PDE6c2F0OnJhdzpoaSIsQVRUUklCUyhBX0FSQ0hWMyksICJWZWN0b3IgUmVkdWNlIENvbXBs ZXggTXVsdGlwbHkgYnkgU2NhbGFyIix2cmNtcHlzX3NlbWEoMSxmR0VUV09SRCgxLFJ0dFYpKSkK K1E2SU5TTihNMl92cmNtcHlzX3MxX2wsIlJkZDMyPXZyY21weXMoUnNzMzIsUnR0MzIpOjw8MTpz YXQ6cmF3OmxvIixBVFRSSUJTKEFfQVJDSFYzKSwgIlZlY3RvciBSZWR1Y2UgQ29tcGxleCBNdWx0 aXBseSBieSBTY2FsYXIiLHZyY21weXNfc2VtYSgxLGZHRVRXT1JEKDAsUnR0VikpKQorCisjdW5k ZWYgdnJjbXB5c19zZW1hCisjZGVmaW5lIHZyY21weXNfc2VtYShOLElOV09SRCkgXAoreyBmU0VU V09SRCgxLFJ4eFYsZlNBVChmR0VUV09SRCgxLFJ4eFYpICsgZlNDQUxFKE4sZk1QWTE2U1MoZkdF VEhBTEYoMSxSc3NWKSxmR0VUSEFMRigwLElOV09SRCkpKSArIFwKKyAgICAgICAgICAgICAgICAg ICAgICAgZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMyxSc3NWKSxmR0VUSEFMRigxLElOV09S RCkpKSkpO1wKKyAgZlNFVFdPUkQoMCxSeHhWLGZTQVQoZkdFVFdPUkQoMCxSeHhWKSArIGZTQ0FM RShOLGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxJTldPUkQpKSkgKyBcCisg ICAgICAgICAgICAgICAgICAgICAgIGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDIsUnNzViks ZkdFVEhBTEYoMSxJTldPUkQpKSkpKTtcCit9CisKKworCitRNklOU04oTTJfdnJjbXB5c19hY2Nf czFfaCwiUnh4MzIrPXZyY21weXMoUnNzMzIsUnR0MzIpOjw8MTpzYXQ6cmF3OmhpIixBVFRSSUJT KEFfQVJDSFYzKSwgIlZlY3RvciBSZWR1Y2UgQ29tcGxleCBNdWx0aXBseSBieSBTY2FsYXIiLHZy Y21weXNfc2VtYSgxLGZHRVRXT1JEKDEsUnR0VikpKQorUTZJTlNOKE0yX3ZyY21weXNfYWNjX3Mx X2wsIlJ4eDMyKz12cmNtcHlzKFJzczMyLFJ0dDMyKTo8PDE6c2F0OnJhdzpsbyIsQVRUUklCUyhB X0FSQ0hWMyksICJWZWN0b3IgUmVkdWNlIENvbXBsZXggTXVsdGlwbHkgYnkgU2NhbGFyIix2cmNt cHlzX3NlbWEoMSxmR0VUV09SRCgwLFJ0dFYpKSkKKworI3VuZGVmIHZyY21weXNfc2VtYQorI2Rl ZmluZSB2cmNtcHlzX3NlbWEoTixJTldPUkQpIFwKK3sgZlNFVEhBTEYoMSxSZFYsZkdFVEhBTEYo MSxmU0FUKGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRIQUxGKDEsUnNzViksZkdFVEhBTEYoMCxJTldP UkQpKSkgKyBcCisgICAgICAgICAgICAgICAgICAgICAgIGZTQ0FMRShOLGZNUFkxNlNTKGZHRVRI QUxGKDMsUnNzViksZkdFVEhBTEYoMSxJTldPUkQpKSkgKyAweDgwMDApKSk7XAorICBmU0VUSEFM RigwLFJkVixmR0VUSEFMRigxLGZTQVQoZlNDQUxFKE4sZk1QWTE2U1MoZkdFVEhBTEYoMCxSc3NW KSxmR0VUSEFMRigwLElOV09SRCkpKSArIFwKKyAgICAgICAgICAgICAgICAgICAgICAgZlNDQUxF KE4sZk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigxLElOV09SRCkpKSArIDB4ODAw MCkpKTtcCit9CisKK1E2SU5TTihNMl92cmNtcHlzX3MxcnBfaCwiUmQzMj12cmNtcHlzKFJzczMy LFJ0dDMyKTo8PDE6cm5kOnNhdDpyYXc6aGkiLEFUVFJJQlMoQV9BUkNIVjMpLCAiVmVjdG9yIFJl ZHVjZSBDb21wbGV4IE11bHRpcGx5IGJ5IFNjYWxhciIsdnJjbXB5c19zZW1hKDEsZkdFVFdPUkQo MSxSdHRWKSkpCitRNklOU04oTTJfdnJjbXB5c19zMXJwX2wsIlJkMzI9dnJjbXB5cyhSc3MzMixS dHQzMik6PDwxOnJuZDpzYXQ6cmF3OmxvIixBVFRSSUJTKEFfQVJDSFYzKSwgIlZlY3RvciBSZWR1 Y2UgQ29tcGxleCBNdWx0aXBseSBieSBTY2FsYXIiLHZyY21weXNfc2VtYSgxLGZHRVRXT1JEKDAs UnR0VikpKQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisvKiBtaXhlZCBtb2RlIDMyeDE2IHZlY3RvciBkdWFsIG11bHRp cGxpZXMgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIFNJR05F RCAzMiB4IFNJR05FRCAxNiAqLworCisKKyN1bmRlZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXht cHlfc2VtYShOKVwKK3sgZlNFVFdPUkQoMSxSeHhWLGZTQVQoZkdFVFdPUkQoMSxSeHhWKSArICgo ZlNDQUxFKE4sZk1QWTMyMTZTUyhmR0VUV09SRCgxLFJzc1YpLGZHRVRIQUxGKDIsUnR0VikpKSk+ PjE2KSkgKTsgXAorICBmU0VUV09SRCgwLFJ4eFYsZlNBVChmR0VUV09SRCgwLFJ4eFYpICsgKChm U0NBTEUoTixmTVBZMzIxNlNTKGZHRVRXT1JEKDAsUnNzViksZkdFVEhBTEYoMCxSdHRWKSkpKT4+ MTYpKSApOyBcCit9CitRNklOU04oTTJfbW1hY2xzX3MwLCJSeHgzMis9dm1weXdlaChSc3MzMixS dHQzMik6c2F0IixBVFRSSUJTKCksICAgICJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1w eV9zZW1hKDApKQorUTZJTlNOKE0yX21tYWNsc19zMSwiUnh4MzIrPXZtcHl3ZWgoUnNzMzIsUnR0 MzIpOjw8MTpzYXQiLEFUVFJJQlMoKSwiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlf c2VtYSgxKSkKKworI3VuZGVmIG1peG1weV9zZW1hCisjZGVmaW5lIG1peG1weV9zZW1hKE4pXAor eyBmU0VUV09SRCgxLFJ4eFYsZlNBVChmR0VUV09SRCgxLFJ4eFYpICsgKChmU0NBTEUoTixmTVBZ MzIxNlNTKGZHRVRXT1JEKDEsUnNzViksZkdFVEhBTEYoMyxSdHRWKSkpKT4+MTYpICkpOyBcCisg IGZTRVRXT1JEKDAsUnh4VixmU0FUKGZHRVRXT1JEKDAsUnh4VikgKyAoKGZTQ0FMRShOLGZNUFkz MjE2U1MoZkdFVFdPUkQoMCxSc3NWKSxmR0VUSEFMRigxLFJ0dFYpKSkpPj4xNiApKSk7IFwKK30K K1E2SU5TTihNMl9tbWFjaHNfczAsIlJ4eDMyKz12bXB5d29oKFJzczMyLFJ0dDMyKTpzYXQiLEFU VFJJQlMoKSwgICAgIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMCkpCitR NklOU04oTTJfbW1hY2hzX3MxLCJSeHgzMis9dm1weXdvaChSc3MzMixSdHQzMik6PDwxOnNhdCIs QVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDEpKQorCisj dW5kZWYgbWl4bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoTilcCit7IGZTRVRXT1JEKDEs UmRkVixmU0FUKChmU0NBTEUoTixmTVBZMzIxNlNTKGZHRVRXT1JEKDEsUnNzViksZkdFVEhBTEYo MixSdHRWKSkpKT4+MTYpKTsgXAorICBmU0VUV09SRCgwLFJkZFYsZlNBVCgoZlNDQUxFKE4sZk1Q WTMyMTZTUyhmR0VUV09SRCgwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpKSk+PjE2KSk7IFwKK30K K1E2SU5TTihNMl9tbXB5bF9zMCwiUmRkMzI9dm1weXdlaChSc3MzMixSdHQzMik6c2F0IixBVFRS SUJTKCksICAgICJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDApKQorUTZJ TlNOKE0yX21tcHlsX3MxLCJSZGQzMj12bXB5d2VoKFJzczMyLFJ0dDMyKTo8PDE6c2F0IixBVFRS SUJTKCksIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMSkpCisKKyN1bmRl ZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXhtcHlfc2VtYShOKVwKK3sgZlNFVFdPUkQoMSxSZGRW LGZTQVQoKGZTQ0FMRShOLGZNUFkzMjE2U1MoZkdFVFdPUkQoMSxSc3NWKSxmR0VUSEFMRigzLFJ0 dFYpKSkpPj4xNikpOyBcCisgIGZTRVRXT1JEKDAsUmRkVixmU0FUKChmU0NBTEUoTixmTVBZMzIx NlNTKGZHRVRXT1JEKDAsUnNzViksZkdFVEhBTEYoMSxSdHRWKSkpKT4+MTYpKTsgXAorfQorUTZJ TlNOKE0yX21tcHloX3MwLCJSZGQzMj12bXB5d29oKFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMo KSwgICAgIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMCkpCitRNklOU04o TTJfbW1weWhfczEsIlJkZDMyPXZtcHl3b2goUnNzMzIsUnR0MzIpOjw8MTpzYXQiLEFUVFJJQlMo KSwiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgxKSkKKworCisvKiBXaXRo IHJvdW5kaW5nICovCisKKyN1bmRlZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXhtcHlfc2VtYShO KVwKK3sgZlNFVFdPUkQoMSxSeHhWLGZTQVQoZkdFVFdPUkQoMSxSeHhWKSArICgoZlNDQUxFKE4s Zk1QWTMyMTZTUyhmR0VUV09SRCgxLFJzc1YpLGZHRVRIQUxGKDIsUnR0VikpKSsweDgwMDApPj4x NikpICk7IFwKKyAgZlNFVFdPUkQoMCxSeHhWLGZTQVQoZkdFVFdPUkQoMCxSeHhWKSArICgoZlND QUxFKE4sZk1QWTMyMTZTUyhmR0VUV09SRCgwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpKSsweDgw MDApPj4xNikpICk7IFwKK30KK1E2SU5TTihNMl9tbWFjbHNfcnMwLCJSeHgzMis9dm1weXdlaChS c3MzMixSdHQzMik6cm5kOnNhdCIsQVRUUklCUygpLCAgICAiTWl4ZWQgUHJlY2lzaW9uIE11bHRp cGx5IixtaXhtcHlfc2VtYSgwKSkKK1E2SU5TTihNMl9tbWFjbHNfcnMxLCJSeHgzMis9dm1weXdl aChSc3MzMixSdHQzMik6PDwxOnJuZDpzYXQiLEFUVFJJQlMoKSwiTWl4ZWQgUHJlY2lzaW9uIE11 bHRpcGx5IixtaXhtcHlfc2VtYSgxKSkKKworI3VuZGVmIG1peG1weV9zZW1hCisjZGVmaW5lIG1p eG1weV9zZW1hKE4pXAoreyBmU0VUV09SRCgxLFJ4eFYsZlNBVChmR0VUV09SRCgxLFJ4eFYpICsg KChmU0NBTEUoTixmTVBZMzIxNlNTKGZHRVRXT1JEKDEsUnNzViksZkdFVEhBTEYoMyxSdHRWKSkp KzB4ODAwMCk+PjE2KSApKTsgXAorICBmU0VUV09SRCgwLFJ4eFYsZlNBVChmR0VUV09SRCgwLFJ4 eFYpICsgKChmU0NBTEUoTixmTVBZMzIxNlNTKGZHRVRXT1JEKDAsUnNzViksZkdFVEhBTEYoMSxS dHRWKSkpKzB4ODAwMCk+PjE2ICkpKTsgXAorfQorUTZJTlNOKE0yX21tYWNoc19yczAsIlJ4eDMy Kz12bXB5d29oKFJzczMyLFJ0dDMyKTpybmQ6c2F0IixBVFRSSUJTKCksICAgICJNaXhlZCBQcmVj aXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDApKQorUTZJTlNOKE0yX21tYWNoc19yczEsIlJ4 eDMyKz12bXB5d29oKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNhdCIsQVRUUklCUygpLCJNaXhlZCBQ cmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDEpKQorCisjdW5kZWYgbWl4bXB5X3NlbWEK KyNkZWZpbmUgbWl4bXB5X3NlbWEoTilcCit7IGZTRVRXT1JEKDEsUmRkVixmU0FUKChmU0NBTEUo TixmTVBZMzIxNlNTKGZHRVRXT1JEKDEsUnNzViksZkdFVEhBTEYoMixSdHRWKSkpKzB4ODAwMCk+ PjE2KSk7IFwKKyAgZlNFVFdPUkQoMCxSZGRWLGZTQVQoKGZTQ0FMRShOLGZNUFkzMjE2U1MoZkdF VFdPUkQoMCxSc3NWKSxmR0VUSEFMRigwLFJ0dFYpKSkrMHg4MDAwKT4+MTYpKTsgXAorfQorUTZJ TlNOKE0yX21tcHlsX3JzMCwiUmRkMzI9dm1weXdlaChSc3MzMixSdHQzMik6cm5kOnNhdCIsQVRU UklCUygpLCAgICAiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgwKSkKK1E2 SU5TTihNMl9tbXB5bF9yczEsIlJkZDMyPXZtcHl3ZWgoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0 IixBVFRSSUJTKCksIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMSkpCisK KyN1bmRlZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXhtcHlfc2VtYShOKVwKK3sgZlNFVFdPUkQo MSxSZGRWLGZTQVQoKGZTQ0FMRShOLGZNUFkzMjE2U1MoZkdFVFdPUkQoMSxSc3NWKSxmR0VUSEFM RigzLFJ0dFYpKSkrMHg4MDAwKT4+MTYpKTsgXAorICBmU0VUV09SRCgwLFJkZFYsZlNBVCgoZlND QUxFKE4sZk1QWTMyMTZTUyhmR0VUV09SRCgwLFJzc1YpLGZHRVRIQUxGKDEsUnR0VikpKSsweDgw MDApPj4xNikpOyBcCit9CitRNklOU04oTTJfbW1weWhfcnMwLCJSZGQzMj12bXB5d29oKFJzczMy LFJ0dDMyKTpybmQ6c2F0IixBVFRSSUJTKCksICAgICJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHki LG1peG1weV9zZW1hKDApKQorUTZJTlNOKE0yX21tcHloX3JzMSwiUmRkMzI9dm1weXdvaChSc3Mz MixSdHQzMik6PDwxOnJuZDpzYXQiLEFUVFJJQlMoKSwiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5 IixtaXhtcHlfc2VtYSgxKSkKKworCisjdW5kZWYgbWl4bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5 X3NlbWEoREVTVCxFUVVBTFMsTilcCit7IERFU1QgRVFVQUxTIGZTQ0FMRShOLGZNUFkzMjE2U1Mo ZkdFVFdPUkQoMSxSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSkgKyBmU0NBTEUoTixmTVBZMzIxNlNT KGZHRVRXT1JEKDAsUnNzViksZkdFVEhBTEYoMCxSdHRWKSkpO30KKworUTZJTlNOKE00X3ZybXB5 ZWhfczAsIlJkZDMyPXZybXB5d2VoKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLCAgICAiTWl4ZWQg UHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYShSZGRWLD0sMCkpCitRNklOU04oTTRfdnJt cHllaF9zMSwiUmRkMzI9dnJtcHl3ZWgoUnNzMzIsUnR0MzIpOjw8MSIsQVRUUklCUygpLCJNaXhl ZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKFJkZFYsPSwxKSkKK1E2SU5TTihNNF92 cm1weWVoX2FjY19zMCwiUnh4MzIrPXZybXB5d2VoKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLCAg ICAiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYShSeHhWLCs9LDApKQorUTZJ TlNOKE00X3ZybXB5ZWhfYWNjX3MxLCJSeHgzMis9dnJtcHl3ZWgoUnNzMzIsUnR0MzIpOjw8MSIs QVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKFJ4eFYsKz0s MSkpCisKKyN1bmRlZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXhtcHlfc2VtYShERVNULEVRVUFM UyxOKVwKK3sgREVTVCBFUVVBTFMgZlNDQUxFKE4sZk1QWTMyMTZTUyhmR0VUV09SRCgxLFJzc1Yp LGZHRVRIQUxGKDMsUnR0VikpKSArIGZTQ0FMRShOLGZNUFkzMjE2U1MoZkdFVFdPUkQoMCxSc3NW KSxmR0VUSEFMRigxLFJ0dFYpKSk7fQorCitRNklOU04oTTRfdnJtcHlvaF9zMCwiUmRkMzI9dnJt cHl3b2goUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksICAgICJNaXhlZCBQcmVjaXNpb24gTXVsdGlw bHkiLG1peG1weV9zZW1hKFJkZFYsPSwwKSkKK1E2SU5TTihNNF92cm1weW9oX3MxLCJSZGQzMj12 cm1weXdvaChSc3MzMixSdHQzMik6PDwxIixBVFRSSUJTKCksIk1peGVkIFByZWNpc2lvbiBNdWx0 aXBseSIsbWl4bXB5X3NlbWEoUmRkViw9LDEpKQorUTZJTlNOKE00X3ZybXB5b2hfYWNjX3MwLCJS eHgzMis9dnJtcHl3b2goUnNzMzIsUnR0MzIpIixBVFRSSUJTKCksICAgICJNaXhlZCBQcmVjaXNp b24gTXVsdGlwbHkiLG1peG1weV9zZW1hKFJ4eFYsKz0sMCkpCitRNklOU04oTTRfdnJtcHlvaF9h Y2NfczEsIlJ4eDMyKz12cm1weXdvaChSc3MzMixSdHQzMik6PDwxIixBVFRSSUJTKCksIk1peGVk IFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoUnh4ViwrPSwxKSkKKworCisKKworCisK KyN1bmRlZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXhtcHlfc2VtYShOLEgsUk5EKVwKK3sgIFJk ViA9IGZTQVQoKGZTQ0FMRShOLGZNUFkzMjE2U1MoUnNWLGZHRVRIQUxGKEgsUnRWKSkpUk5EKT4+ MTYpOyBcCit9CitRNklOU04oTTJfaG1tcHlsX3JzMSwiUmQzMj1tcHkoUnMzMixSdC5MMzIpOjw8 MTpybmQ6c2F0IixBVFRSSUJTKEFfQVJDSFYyKSwiTWl4ZWQgUHJlY2lzaW9uIE11bHRpcGx5Iixt aXhtcHlfc2VtYSgxLDAsKzB4ODAwMCkpCitRNklOU04oTTJfaG1tcHloX3JzMSwiUmQzMj1tcHko UnMzMixSdC5IMzIpOjw8MTpybmQ6c2F0IixBVFRSSUJTKEFfQVJDSFYyKSwiTWl4ZWQgUHJlY2lz aW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgxLDEsKzB4ODAwMCkpCitRNklOU04oTTJfaG1tcHls X3MxLCJSZDMyPW1weShSczMyLFJ0LkwzMik6PDwxOnNhdCIsQVRUUklCUyhBX0FSQ0hWMiksIk1p eGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMSwwLCkpCitRNklOU04oTTJfaG1t cHloX3MxLCJSZDMyPW1weShSczMyLFJ0LkgzMik6PDwxOnNhdCIsQVRUUklCUyhBX0FSQ0hWMiks Ik1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMSwxLCkpCisKKworCisKKwor CisKKworCisvKiBTSUdORUQgMzIgeCBVTlNJR05FRCAxNiAqLworCisjdW5kZWYgbWl4bXB5X3Nl bWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoTilcCit7IGZTRVRXT1JEKDEsUnh4VixmU0FUKGZHRVRX T1JEKDEsUnh4VikgKyAoKGZTQ0FMRShOLGZNUFkzMjE2U1UoZkdFVFdPUkQoMSxSc3NWKSxmR0VU VUhBTEYoMixSdHRWKSkpKT4+MTYpKSApOyBcCisgIGZTRVRXT1JEKDAsUnh4VixmU0FUKGZHRVRX T1JEKDAsUnh4VikgKyAoKGZTQ0FMRShOLGZNUFkzMjE2U1UoZkdFVFdPUkQoMCxSc3NWKSxmR0VU VUhBTEYoMCxSdHRWKSkpKT4+MTYpKSApOyBcCit9CitRNklOU04oTTJfbW1hY3Vsc19zMCwiUnh4 MzIrPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMoKSwgICAgIk1peGVkIFByZWNp c2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMCkpCitRNklOU04oTTJfbW1hY3Vsc19zMSwiUnh4 MzIrPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTo8PDE6c2F0IixBVFRSSUJTKCksIk1peGVkIFByZWNp c2lvbiBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMSkpCisKKyN1bmRlZiBtaXhtcHlfc2VtYQorI2Rl ZmluZSBtaXhtcHlfc2VtYShOKVwKK3sgZlNFVFdPUkQoMSxSeHhWLGZTQVQoZkdFVFdPUkQoMSxS eHhWKSArICgoZlNDQUxFKE4sZk1QWTMyMTZTVShmR0VUV09SRCgxLFJzc1YpLGZHRVRVSEFMRigz LFJ0dFYpKSkpPj4xNikgKSk7IFwKKyAgZlNFVFdPUkQoMCxSeHhWLGZTQVQoZkdFVFdPUkQoMCxS eHhWKSArICgoZlNDQUxFKE4sZk1QWTMyMTZTVShmR0VUV09SRCgwLFJzc1YpLGZHRVRVSEFMRigx LFJ0dFYpKSkpPj4xNiApKSk7IFwKK30KK1E2SU5TTihNMl9tbWFjdWhzX3MwLCJSeHgzMis9dm1w eXdvdWgoUnNzMzIsUnR0MzIpOnNhdCIsQVRUUklCUygpLCAgICAiTWl4ZWQgUHJlY2lzaW9uIE11 bHRpcGx5IixtaXhtcHlfc2VtYSgwKSkKK1E2SU5TTihNMl9tbWFjdWhzX3MxLCJSeHgzMis9dm1w eXdvdWgoUnNzMzIsUnR0MzIpOjw8MTpzYXQiLEFUVFJJQlMoKSwiTWl4ZWQgUHJlY2lzaW9uIE11 bHRpcGx5IixtaXhtcHlfc2VtYSgxKSkKKworI3VuZGVmIG1peG1weV9zZW1hCisjZGVmaW5lIG1p eG1weV9zZW1hKE4pXAoreyBmU0VUV09SRCgxLFJkZFYsZlNBVCgoZlNDQUxFKE4sZk1QWTMyMTZT VShmR0VUV09SRCgxLFJzc1YpLGZHRVRVSEFMRigyLFJ0dFYpKSkpPj4xNikpOyBcCisgIGZTRVRX T1JEKDAsUmRkVixmU0FUKChmU0NBTEUoTixmTVBZMzIxNlNVKGZHRVRXT1JEKDAsUnNzViksZkdF VFVIQUxGKDAsUnR0VikpKSk+PjE2KSk7IFwKK30KK1E2SU5TTihNMl9tbXB5dWxfczAsIlJkZDMy PXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTpzYXQiLEFUVFJJQlMoKSwgICAgIk1peGVkIFByZWNpc2lv biBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMCkpCitRNklOU04oTTJfbW1weXVsX3MxLCJSZGQzMj12 bXB5d2V1aChSc3MzMixSdHQzMik6PDwxOnNhdCIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24g TXVsdGlwbHkiLG1peG1weV9zZW1hKDEpKQorCisjdW5kZWYgbWl4bXB5X3NlbWEKKyNkZWZpbmUg bWl4bXB5X3NlbWEoTilcCit7IGZTRVRXT1JEKDEsUmRkVixmU0FUKChmU0NBTEUoTixmTVBZMzIx NlNVKGZHRVRXT1JEKDEsUnNzViksZkdFVFVIQUxGKDMsUnR0VikpKSk+PjE2KSk7IFwKKyAgZlNF VFdPUkQoMCxSZGRWLGZTQVQoKGZTQ0FMRShOLGZNUFkzMjE2U1UoZkdFVFdPUkQoMCxSc3NWKSxm R0VUVUhBTEYoMSxSdHRWKSkpKT4+MTYpKTsgXAorfQorUTZJTlNOKE0yX21tcHl1aF9zMCwiUmRk MzI9dm1weXdvdWgoUnNzMzIsUnR0MzIpOnNhdCIsQVRUUklCUygpLCAgICAiTWl4ZWQgUHJlY2lz aW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgwKSkKK1E2SU5TTihNMl9tbXB5dWhfczEsIlJkZDMy PXZtcHl3b3VoKFJzczMyLFJ0dDMyKTo8PDE6c2F0IixBVFRSSUJTKCksIk1peGVkIFByZWNpc2lv biBNdWx0aXBseSIsbWl4bXB5X3NlbWEoMSkpCisKKworLyogV2l0aCByb3VuZGluZyAqLworCisj dW5kZWYgbWl4bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoTilcCit7IGZTRVRXT1JEKDEs Unh4VixmU0FUKGZHRVRXT1JEKDEsUnh4VikgKyAoKGZTQ0FMRShOLGZNUFkzMjE2U1UoZkdFVFdP UkQoMSxSc3NWKSxmR0VUVUhBTEYoMixSdHRWKSkpKzB4ODAwMCk+PjE2KSkgKTsgXAorICBmU0VU V09SRCgwLFJ4eFYsZlNBVChmR0VUV09SRCgwLFJ4eFYpICsgKChmU0NBTEUoTixmTVBZMzIxNlNV KGZHRVRXT1JEKDAsUnNzViksZkdFVFVIQUxGKDAsUnR0VikpKSsweDgwMDApPj4xNikpICk7IFwK K30KK1E2SU5TTihNMl9tbWFjdWxzX3JzMCwiUnh4MzIrPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTpy bmQ6c2F0IixBVFRSSUJTKCksICAgICJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9z ZW1hKDApKQorUTZJTlNOKE0yX21tYWN1bHNfcnMxLCJSeHgzMis9dm1weXdldWgoUnNzMzIsUnR0 MzIpOjw8MTpybmQ6c2F0IixBVFRSSUJTKCksIk1peGVkIFByZWNpc2lvbiBNdWx0aXBseSIsbWl4 bXB5X3NlbWEoMSkpCisKKyN1bmRlZiBtaXhtcHlfc2VtYQorI2RlZmluZSBtaXhtcHlfc2VtYShO KVwKK3sgZlNFVFdPUkQoMSxSeHhWLGZTQVQoZkdFVFdPUkQoMSxSeHhWKSArICgoZlNDQUxFKE4s Zk1QWTMyMTZTVShmR0VUV09SRCgxLFJzc1YpLGZHRVRVSEFMRigzLFJ0dFYpKSkrMHg4MDAwKT4+ MTYpICkpOyBcCisgIGZTRVRXT1JEKDAsUnh4VixmU0FUKGZHRVRXT1JEKDAsUnh4VikgKyAoKGZT Q0FMRShOLGZNUFkzMjE2U1UoZkdFVFdPUkQoMCxSc3NWKSxmR0VUVUhBTEYoMSxSdHRWKSkpKzB4 ODAwMCk+PjE2ICkpKTsgXAorfQorUTZJTlNOKE0yX21tYWN1aHNfcnMwLCJSeHgzMis9dm1weXdv dWgoUnNzMzIsUnR0MzIpOnJuZDpzYXQiLEFUVFJJQlMoKSwgICAgIk1peGVkIFByZWNpc2lvbiBN dWx0aXBseSIsbWl4bXB5X3NlbWEoMCkpCitRNklOU04oTTJfbW1hY3Voc19yczEsIlJ4eDMyKz12 bXB5d291aChSc3MzMixSdHQzMik6PDwxOnJuZDpzYXQiLEFUVFJJQlMoKSwiTWl4ZWQgUHJlY2lz aW9uIE11bHRpcGx5IixtaXhtcHlfc2VtYSgxKSkKKworI3VuZGVmIG1peG1weV9zZW1hCisjZGVm aW5lIG1peG1weV9zZW1hKE4pXAoreyBmU0VUV09SRCgxLFJkZFYsZlNBVCgoZlNDQUxFKE4sZk1Q WTMyMTZTVShmR0VUV09SRCgxLFJzc1YpLGZHRVRVSEFMRigyLFJ0dFYpKSkrMHg4MDAwKT4+MTYp KTsgXAorICBmU0VUV09SRCgwLFJkZFYsZlNBVCgoZlNDQUxFKE4sZk1QWTMyMTZTVShmR0VUV09S RCgwLFJzc1YpLGZHRVRVSEFMRigwLFJ0dFYpKSkrMHg4MDAwKT4+MTYpKTsgXAorfQorUTZJTlNO KE0yX21tcHl1bF9yczAsIlJkZDMyPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTpybmQ6c2F0IixBVFRS SUJTKCksICAgICJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDApKQorUTZJ TlNOKE0yX21tcHl1bF9yczEsIlJkZDMyPXZtcHl3ZXVoKFJzczMyLFJ0dDMyKTo8PDE6cm5kOnNh dCIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gTXVsdGlwbHkiLG1peG1weV9zZW1hKDEpKQor CisjdW5kZWYgbWl4bXB5X3NlbWEKKyNkZWZpbmUgbWl4bXB5X3NlbWEoTilcCit7IGZTRVRXT1JE KDEsUmRkVixmU0FUKChmU0NBTEUoTixmTVBZMzIxNlNVKGZHRVRXT1JEKDEsUnNzViksZkdFVFVI QUxGKDMsUnR0VikpKSsweDgwMDApPj4xNikpOyBcCisgIGZTRVRXT1JEKDAsUmRkVixmU0FUKChm U0NBTEUoTixmTVBZMzIxNlNVKGZHRVRXT1JEKDAsUnNzViksZkdFVFVIQUxGKDEsUnR0VikpKSsw eDgwMDApPj4xNikpOyBcCit9CitRNklOU04oTTJfbW1weXVoX3JzMCwiUmRkMzI9dm1weXdvdWgo UnNzMzIsUnR0MzIpOnJuZDpzYXQiLEFUVFJJQlMoKSwgICAgIk1peGVkIFByZWNpc2lvbiBNdWx0 aXBseSIsbWl4bXB5X3NlbWEoMCkpCitRNklOU04oTTJfbW1weXVoX3JzMSwiUmRkMzI9dm1weXdv dWgoUnNzMzIsUnR0MzIpOjw8MTpybmQ6c2F0IixBVFRSSUJTKCksIk1peGVkIFByZWNpc2lvbiBN dWx0aXBseSIsbWl4bXB5X3NlbWEoMSkpCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogY29tcGxleCBtYWMgd2l0 aCBmdWxsIDY0LWJpdCBhY2N1bSAtIG5vIHNhdCwgbm8gc2hpZnQgICAgICAqLworLyogZWl0aGVy IGRvIHJlYWwgb3IgYWNjdW0sIG5ldmVyIGJvdGggICAgICAgICAgICAgICAgICAgICAgICAqLwor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworCitRNklOU04oTTJfdnJjbWFjaV9zMCwiUnh4MzIrPXZyY21weWkoUnNzMzIsUnR0 MzIpIixBVFRSSUJTKCksIlZlY3RvciBDb21wbGV4IE1hYyBJbWFnaW5hcnkiLAoreworUnh4ViA9 IFJ4eFYgKyBmTVBZMTZTUyhmR0VUSEFMRigxLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpICsgXAor ICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigwLFJzc1YpLGZHRVRIQUxGKDEsUnR0Vikp ICsgXAorICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigzLFJzc1YpLGZHRVRIQUxGKDIs UnR0VikpICsgXAorICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigyLFJzc1YpLGZHRVRI QUxGKDMsUnR0VikpO1wKK30pCisKK1E2SU5TTihNMl92cmNtYWNyX3MwLCJSeHgzMis9dnJjbXB5 cihSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwiVmVjdG9yIENvbXBsZXggTWFjIFJlYWwiLAoreyBS eHhWID0gUnh4ViArIGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxSdHRWKSkg LSBcCisgICAgICAgICAgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMSxSc3NWKSxmR0VUSEFMRigx LFJ0dFYpKSArIFwKKyAgICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigyLFJzc1YpLGZH RVRIQUxGKDIsUnR0VikpIC0gXAorICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDMs UnNzViksZkdFVEhBTEYoMyxSdHRWKSk7XAorfSkKKworUTZJTlNOKE0yX3ZyY21hY2lfczBjLCJS eHgzMis9dnJjbXB5aShSc3MzMixSdHQzMiopIixBVFRSSUJTKEFfQVJDSFYyKSwiVmVjdG9yIENv bXBsZXggTWFjIEltYWdpbmFyeSIsCit7CitSeHhWID0gUnh4ViArIGZNUFkxNlNTKGZHRVRIQUxG KDEsUnNzViksZkdFVEhBTEYoMCxSdHRWKSkgLSBcCisgICAgICAgICAgICAgIGZNUFkxNlNTKGZH RVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMSxSdHRWKSkgKyBcCisgICAgICAgICAgICAgIGZNUFkx NlNTKGZHRVRIQUxGKDMsUnNzViksZkdFVEhBTEYoMixSdHRWKSkgLSBcCisgICAgICAgICAgICAg IGZNUFkxNlNTKGZHRVRIQUxGKDIsUnNzViksZkdFVEhBTEYoMyxSdHRWKSk7XAorfSkKKworUTZJ TlNOKE0yX3ZyY21hY3JfczBjLCJSeHgzMis9dnJjbXB5cihSc3MzMixSdHQzMiopIixBVFRSSUJT KEFfQVJDSFYyKSwiVmVjdG9yIENvbXBsZXggTWFjIFJlYWwiLAoreyBSeHhWID0gUnh4ViArIGZN UFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxSdHRWKSkgKyBcCisgICAgICAgICAg ICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMSxSc3NWKSxmR0VUSEFMRigxLFJ0dFYpKSArIFwKKyAg ICAgICAgICAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigyLFJzc1YpLGZHRVRIQUxGKDIsUnR0Vikp ICsgXAorICAgICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDMsUnNzViksZkdFVEhBTEYo MyxSdHRWKSk7XAorfSkKKworUTZJTlNOKE0yX2NtYWNpX3MwLCJSeHgzMis9Y21weWkoUnMzMixS dDMyKSIsQVRUUklCUygpLCJWZWN0b3IgQ29tcGxleCBNYWMgSW1hZ2luYXJ5IiwKK3sKK1J4eFYg PSBSeHhWICsgZk1QWTE2U1MoZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDAsUnRWKSkgKyBcCisg ICAgICAgICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNWKSxmR0VUSEFMRigxLFJ0VikpOwor fSkKKworUTZJTlNOKE0yX2NtYWNyX3MwLCJSeHgzMis9Y21weXIoUnMzMixSdDMyKSIsQVRUUklC UygpLCJWZWN0b3IgQ29tcGxleCBNYWMgUmVhbCIsCit7IFJ4eFYgPSBSeHhWICsgZk1QWTE2U1Mo ZkdFVEhBTEYoMCxSc1YpLGZHRVRIQUxGKDAsUnRWKSkgLSBcCisgICAgICAgICAgICAgICAgZk1Q WTE2U1MoZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDEsUnRWKSk7Cit9KQorCisKK1E2SU5TTihN Ml92cmNtcHlpX3MwLCJSZGQzMj12cmNtcHlpKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLCJWZWN0 b3IgQ29tcGxleCBNcHkgSW1hZ2luYXJ5IiwKK3sKK1JkZFYgPSBmTVBZMTZTUyhmR0VUSEFMRigx LFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpICsgXAorICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDAs UnNzViksZkdFVEhBTEYoMSxSdHRWKSkgKyBcCisgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMyxS c3NWKSxmR0VUSEFMRigyLFJ0dFYpKSArIFwKKyAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigyLFJz c1YpLGZHRVRIQUxGKDMsUnR0VikpO1wKK30pCisKK1E2SU5TTihNMl92cmNtcHlyX3MwLCJSZGQz Mj12cmNtcHlyKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLCJWZWN0b3IgQ29tcGxleCBNcHkgUmVh bCIsCit7IFJkZFYgPSBmTVBZMTZTUyhmR0VUSEFMRigwLFJzc1YpLGZHRVRIQUxGKDAsUnR0Vikp IC0gXAorICAgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMSxSc3NWKSxmR0VUSEFMRigxLFJ0dFYp KSArIFwKKyAgICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDIsUnNzViksZkdFVEhBTEYoMixSdHRW KSkgLSBcCisgICAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigzLFJzc1YpLGZHRVRIQUxGKDMsUnR0 VikpO1wKK30pCisKK1E2SU5TTihNMl92cmNtcHlpX3MwYywiUmRkMzI9dnJjbXB5aShSc3MzMixS dHQzMiopIixBVFRSSUJTKEFfQVJDSFYyKSwiVmVjdG9yIENvbXBsZXggTXB5IEltYWdpbmFyeSIs Cit7CitSZGRWID0gZk1QWTE2U1MoZkdFVEhBTEYoMSxSc3NWKSxmR0VUSEFMRigwLFJ0dFYpKSAt IFwKKyAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigwLFJzc1YpLGZHRVRIQUxGKDEsUnR0VikpICsg XAorICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDMsUnNzViksZkdFVEhBTEYoMixSdHRWKSkgLSBc CisgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigzLFJ0dFYpKTtcCit9 KQorCitRNklOU04oTTJfdnJjbXB5cl9zMGMsIlJkZDMyPXZyY21weXIoUnNzMzIsUnR0MzIqKSIs QVRUUklCUyhBX0FSQ0hWMiksIlZlY3RvciBDb21wbGV4IE1weSBSZWFsIiwKK3sgUmRkViA9IGZN UFkxNlNTKGZHRVRIQUxGKDAsUnNzViksZkdFVEhBTEYoMCxSdHRWKSkgKyBcCisgICAgICAgICBm TVBZMTZTUyhmR0VUSEFMRigxLFJzc1YpLGZHRVRIQUxGKDEsUnR0VikpICsgXAorICAgICAgICAg Zk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigyLFJ0dFYpKSArIFwKKyAgICAgICAg IGZNUFkxNlNTKGZHRVRIQUxGKDMsUnNzViksZkdFVEhBTEYoMyxSdHRWKSk7XAorfSkKKworUTZJ TlNOKE0yX2NtcHlpX3MwLCJSZGQzMj1jbXB5aShSczMyLFJ0MzIpIixBVFRSSUJTKCksIlZlY3Rv ciBDb21wbGV4IE1weSBJbWFnaW5hcnkiLAoreworUmRkViA9IGZNUFkxNlNTKGZHRVRIQUxGKDEs UnNWKSxmR0VUSEFMRigwLFJ0VikpICsgXAorICAgICAgIGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNW KSxmR0VUSEFMRigxLFJ0VikpOworfSkKKworUTZJTlNOKE0yX2NtcHlyX3MwLCJSZGQzMj1jbXB5 cihSczMyLFJ0MzIpIixBVFRSSUJTKCksIlZlY3RvciBDb21wbGV4IE1weSBSZWFsIiwKK3sgUmRk ViA9IGZNUFkxNlNTKGZHRVRIQUxGKDAsUnNWKSxmR0VUSEFMRigwLFJ0VikpIC0gXAorICAgICAg ICAgZk1QWTE2U1MoZkdFVEhBTEYoMSxSc1YpLGZHRVRIQUxGKDEsUnRWKSk7Cit9KQorCisKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KKy8qIENvbXBsZXggbXB5L21hYyB3aXRoIDJ4MzIgYml0IGFjY3VtLCBzYXQsIHNoaWZ0 ICAgICAgICAgICAgKi8KKy8qIDMyeDE2IHJlYWwgb3IgaW1hZyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI2lmIDEKKworUTZJTlNOKE00X2Nt cHlpX3doLCJSZDMyPWNtcHlpd2goUnNzMzIsUnQzMik6PDwxOnJuZDpzYXQiLEFUVFJJQlMoKSwi TWl4ZWQgUHJlY2lzaW9uIENvbXBsZXggTXVsdGlwbHkiLAoreworIFJkViA9IGZTQVQoICAoICBm TVBZMzIxNlNTKGZHRVRXT1JEKDAsUnNzViksZkdFVEhBTEYoMSxSdFYpKQorICAgICAgICAgICAg ICAgKyBmTVBZMzIxNlNTKGZHRVRXT1JEKDEsUnNzViksZkdFVEhBTEYoMCxSdFYpKQorICAgICAg ICAgICAgICAgKyAweDQwMDApPj4xNSk7Cit9KQorCisKK1E2SU5TTihNNF9jbXB5cl93aCwiUmQz Mj1jbXB5cndoKFJzczMyLFJ0MzIpOjw8MTpybmQ6c2F0IixBVFRSSUJTKCksIk1peGVkIFByZWNp c2lvbiBDb21wbGV4IE11bHRpcGx5IiwKK3sKKyBSZFYgPSBmU0FUKCAgKCAgZk1QWTMyMTZTUyhm R0VUV09SRCgwLFJzc1YpLGZHRVRIQUxGKDAsUnRWKSkKKyAgICAgICAgICAgICAgIC0gZk1QWTMy MTZTUyhmR0VUV09SRCgxLFJzc1YpLGZHRVRIQUxGKDEsUnRWKSkKKyAgICAgICAgICAgICAgICsg MHg0MDAwKT4+MTUpOworfSkKKworUTZJTlNOKE00X2NtcHlpX3doYywiUmQzMj1jbXB5aXdoKFJz czMyLFJ0MzIqKTo8PDE6cm5kOnNhdCIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gQ29tcGxl eCBNdWx0aXBseSIsCit7CisgUmRWID0gZlNBVCggICggIGZNUFkzMjE2U1MoZkdFVFdPUkQoMSxS c3NWKSxmR0VUSEFMRigwLFJ0VikpCisgICAgICAgICAgICAgICAtIGZNUFkzMjE2U1MoZkdFVFdP UkQoMCxSc3NWKSxmR0VUSEFMRigxLFJ0VikpCisgICAgICAgICAgICAgICArIDB4NDAwMCk+PjE1 KTsKK30pCisKKworUTZJTlNOKE00X2NtcHlyX3doYywiUmQzMj1jbXB5cndoKFJzczMyLFJ0MzIq KTo8PDE6cm5kOnNhdCIsQVRUUklCUygpLCJNaXhlZCBQcmVjaXNpb24gQ29tcGxleCBNdWx0aXBs eSIsCit7CisgUmRWID0gZlNBVCggICggIGZNUFkzMjE2U1MoZkdFVFdPUkQoMCxSc3NWKSxmR0VU SEFMRigwLFJ0VikpCisgICAgICAgICAgICAgICArIGZNUFkzMjE2U1MoZkdFVFdPUkQoMSxSc3NW KSxmR0VUSEFMRigxLFJ0VikpCisgICAgICAgICAgICAgICArIDB4NDAwMCk+PjE1KTsKK30pCisK KworI2VuZGlmCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKy8qIFZlY3RvciBtcHkvbWFjIHdpdGggMngzMiBiaXQgYWNj dW0sIHNhdCwgc2hpZnQgICAgICAgICAgICAgKi8KKy8qIGVpdGhlciBkbyByZWFsIG9yIGltYWcs ICBuZXZlciBib3RoICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworI3VuZGVm IFZDTVBZU0VNSQorI2RlZmluZSBWQ01QWVNFTUkoRFNULEFDQzAsQUNDMSxTSElGVCxTQVQpIFwK KwlmU0VUV09SRCgwLERTVCxTQVQoQUNDMCBmU0NBTEUoU0hJRlQsZk1QWTE2U1MoZkdFVEhBTEYo MSxSc3NWKSxmR0VUSEFMRigwLFJ0dFYpKSArIFwKKwkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmTVBZMTZTUyhmR0VUSEFMRigwLFJzc1YpLGZHRVRIQUxGKDEsUnR0VikpKSkp OyBcCisJZlNFVFdPUkQoMSxEU1QsU0FUKEFDQzEgZlNDQUxFKFNISUZULGZNUFkxNlNTKGZHRVRI QUxGKDMsUnNzViksZkdFVEhBTEYoMixSdHRWKSkgKyBcCisJICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMixSc3NWKSxmR0VUSEFMRigzLFJ0dFYp KSkpKTsgXAorCisjdW5kZWYgVkNNUFlTRU1SCisjZGVmaW5lIFZDTVBZU0VNUihEU1QsQUNDMCxB Q0MxLFNISUZULFNBVCkgXAorCWZTRVRXT1JEKDAsRFNULFNBVChBQ0MwIGZTQ0FMRShTSElGVCxm TVBZMTZTUyhmR0VUSEFMRigwLFJzc1YpLGZHRVRIQUxGKDAsUnR0VikpIC0gXAorCSAgICAgICAg ICAgICAgICAgICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMSxSc3NWKSxmR0VUSEFMRigxLFJ0dFYp KSkpKTsgXAorCWZTRVRXT1JEKDEsRFNULFNBVChBQ0MxIGZTQ0FMRShTSElGVCxmTVBZMTZTUyhm R0VUSEFMRigyLFJzc1YpLGZHRVRIQUxGKDIsUnR0VikpIC0gXAorCSAgICAgICAgICAgICAgICAg ICAgICAgZk1QWTE2U1MoZkdFVEhBTEYoMyxSc3NWKSxmR0VUSEFMRigzLFJ0dFYpKSkpKTsgXAor CisKKyN1bmRlZiBWQ01QWUlSCisjZGVmaW5lIFZDTVBZSVIoVEFHQkFTRSxEU1RTWU4sRFNUVkFM LEFDQ1NFTSxBQ0NWQUwwLEFDQ1ZBTDEsU0hJRlRTWU4sU0hJRlRWQUwsU0FUU1lOLFNBVFZBTCkg XAorUTZJTlNOKE0yXyMjVEFHQkFTRSMjaSxEU1RTWU4gQUNDU0VNICJ2Y21weWkoUnNzMzIsUnR0 MzIpIiBTSElGVFNZTiBTQVRTWU4sQVRUUklCUyhBX0FSQ0hWMiksIFwKKwkiVmVjdG9yIENvbXBs ZXggTXVsdGlwbHkgSW1hZ2luYXJ5IiwgeyBWQ01QWVNFTUkoRFNUVkFMLEFDQ1ZBTDAsQUNDVkFM MSxTSElGVFZBTCxTQVRWQUwpOyB9KSBcCitRNklOU04oTTJfIyNUQUdCQVNFIyNyLERTVFNZTiBB Q0NTRU0gInZjbXB5cihSc3MzMixSdHQzMikiIFNISUZUU1lOIFNBVFNZTixBVFRSSUJTKEFfQVJD SFYyKSwgXAorCSJWZWN0b3IgQ29tcGxleCBNdWx0aXBseSBJbWFnaW5hcnkiLCB7IFZDTVBZU0VN UihEU1RWQUwsQUNDVkFMMCxBQ0NWQUwxLFNISUZUVkFMLFNBVFZBTCk7IH0pCisKKworVkNNUFlJ Uih2Y21weV9zMF9zYXRfLCJSZGQzMiIsUmRkViwiPSIsLCwiIiwwLCI6c2F0IixmU0FUKQorVkNN UFlJUih2Y21weV9zMV9zYXRfLCJSZGQzMiIsUmRkViwiPSIsLCwiOjw8MSIsMSwiOnNhdCIsZlNB VCkKK1ZDTVBZSVIodmNtYWNfczBfc2F0XywiUnh4MzIiLFJ4eFYsIis9IixmR0VUV09SRCgwLFJ4 eFYpICsgLGZHRVRXT1JEKDEsUnh4VikgKyAsIiIsMCwiOnNhdCIsZlNBVCkKKworCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKgorICogIFJvdGF0aW9uICAtLSBieSAwLCA5MCwgMTgwLCBvciAyNzAgbWVhbnMgbXVs dCBieSAxLCBKLCAtMSwgLUogICAgICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5TTihTMl92Y3Jv dGF0ZSwiUmRkMzI9dmNyb3RhdGUoUnNzMzIsUnQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLCJSb3Rh dGUgY29tcGxleCB2YWx1ZSBieSBtdWx0aXBsZSBvZiBQSS8yIiwKK3sKKwlmSElERShzaXplMXVf dCB0bXA7KQorCXRtcCA9IGZFWFRSQUNUVV9SQU5HRShSdFYsMSwwKTsKKwlpZiAodG1wID09IDAp IHsgLyogTm8gcm90YXRpb24gKi8KKwkJZlNFVEhBTEYoMCxSZGRWLGZHRVRIQUxGKDAsUnNzVikp OworCQlmU0VUSEFMRigxLFJkZFYsZkdFVEhBTEYoMSxSc3NWKSk7CisJfSBlbHNlIGlmICh0bXAg PT0gMSkgeyAvKiBNdWx0aXBseSBieSAtSiAqLworCQlmU0VUSEFMRigwLFJkZFYsZkdFVEhBTEYo MSxSc3NWKSk7CisJCWZTRVRIQUxGKDEsUmRkVixmU0FUSCgtZkdFVEhBTEYoMCxSc3NWKSkpOwor CX0gZWxzZSBpZiAodG1wID09IDIpIHsgLyogTXVsdGlwbHkgYnkgSiAqLworCQlmU0VUSEFMRigw LFJkZFYsZlNBVEgoLWZHRVRIQUxGKDEsUnNzVikpKTsKKwkJZlNFVEhBTEYoMSxSZGRWLGZHRVRI QUxGKDAsUnNzVikpOworCX0gZWxzZSB7IC8qIE11bHRpcGx5IGJ5IC0xICovCisJCWZISURFKGlm ICh0bXAgIT0gMykgZmF0YWwoIkMgaXMgYnJva2VuIik7KQorCQlmU0VUSEFMRigwLFJkZFYsZlNB VEgoLWZHRVRIQUxGKDAsUnNzVikpKTsKKwkJZlNFVEhBTEYoMSxSZGRWLGZTQVRIKC1mR0VUSEFM RigxLFJzc1YpKSk7CisJfQorCXRtcCA9IGZFWFRSQUNUVV9SQU5HRShSdFYsMywyKTsKKwlpZiAo dG1wID09IDApIHsgLyogTm8gcm90YXRpb24gKi8KKwkJZlNFVEhBTEYoMixSZGRWLGZHRVRIQUxG KDIsUnNzVikpOworCQlmU0VUSEFMRigzLFJkZFYsZkdFVEhBTEYoMyxSc3NWKSk7CisJfSBlbHNl IGlmICh0bXAgPT0gMSkgeyAvKiBNdWx0aXBseSBieSAtSiAqLworCQlmU0VUSEFMRigyLFJkZFYs ZkdFVEhBTEYoMyxSc3NWKSk7CisJCWZTRVRIQUxGKDMsUmRkVixmU0FUSCgtZkdFVEhBTEYoMixS c3NWKSkpOworCX0gZWxzZSBpZiAodG1wID09IDIpIHsgLyogTXVsdGlwbHkgYnkgSiAqLworCQlm U0VUSEFMRigyLFJkZFYsZlNBVEgoLWZHRVRIQUxGKDMsUnNzVikpKTsKKwkJZlNFVEhBTEYoMyxS ZGRWLGZHRVRIQUxGKDIsUnNzVikpOworCX0gZWxzZSB7IC8qIE11bHRpcGx5IGJ5IC0xICovCisJ CWZISURFKGlmICh0bXAgIT0gMykgZmF0YWwoIkMgaXMgYnJva2VuIik7KQorCQlmU0VUSEFMRigy LFJkZFYsZlNBVEgoLWZHRVRIQUxGKDIsUnNzVikpKTsKKwkJZlNFVEhBTEYoMyxSZGRWLGZTQVRI KC1mR0VUSEFMRigzLFJzc1YpKSk7CisJfQorfSkKKworCitRNklOU04oUzRfdnJjcm90YXRlX2Fj YywiUnh4MzIrPXZyY3JvdGF0ZShSc3MzMixSdDMyLCN1MikiLEFUVFJJQlMoKSwiUm90YXRlIGFu ZCBSZWR1Y2UgQnl0ZXMiLAoreworCWZISURFKGludCBpOyBpbnQgdG1wcjsgaW50IHRtcGk7IHVu c2lnbmVkIGludCBjb250cm9sOykKKwlmSElERShpbnQgc3VtcjsgaW50IHN1bWk7KQorCXN1bXIg PSAwOworCXN1bWkgPSAwOworCWNvbnRyb2wgPSBmR0VUVUJZVEUodWlWLFJ0Vik7CisJZm9yIChp ID0gMDsgaSA8IDg7IGkgKz0gMikgeworCQl0bXByID0gZkdFVEJZVEUoaSAgLFJzc1YpOworCQl0 bXBpID0gZkdFVEJZVEUoaSsxLFJzc1YpOworCQlzd2l0Y2ggKGNvbnRyb2wgJiAzKSB7CisJCQlj YXNlIDA6IC8qIE5vIFJvdGF0aW9uICovCisJCQkJc3VtciArPSB0bXByOworCQkJCXN1bWkgKz0g dG1waTsKKwkJCQlicmVhazsKKwkJCWNhc2UgMTogLyogTXVsdGlwbHkgYnkgLUogKi8KKwkJCQlz dW1yICs9IHRtcGk7CisJCQkJc3VtaSAtPSB0bXByOworCQkJCWJyZWFrOworCQkJY2FzZSAyOiAv KiBNdWx0aXBseSBieSBKICovCisJCQkJc3VtciAtPSB0bXBpOworCQkJCXN1bWkgKz0gdG1wcjsK KwkJCQlicmVhazsKKwkJCWNhc2UgMzogLyogTXVsdGlwbHkgYnkgLTEgKi8KKwkJCQlzdW1yIC09 IHRtcHI7CisJCQkJc3VtaSAtPSB0bXBpOworCQkJCWJyZWFrOworCQkJZkhJREUoZGVmYXVsdDog ZmF0YWwoIkMgaXMgYnJva2VuISIpOykKKwkJfQorCQljb250cm9sID0gY29udHJvbCA+PiAyOwor CX0KKwlmU0VUV09SRCgwLFJ4eFYsZkdFVFdPUkQoMCxSeHhWKSArIHN1bXIpOworCWZTRVRXT1JE KDEsUnh4VixmR0VUV09SRCgxLFJ4eFYpICsgc3VtaSk7Cit9KQorCitRNklOU04oUzRfdnJjcm90 YXRlLCJSZGQzMj12cmNyb3RhdGUoUnNzMzIsUnQzMiwjdTIpIixBVFRSSUJTKCksIlJvdGF0ZSBh bmQgUmVkdWNlIEJ5dGVzIiwKK3sKKwlmSElERShpbnQgaTsgaW50IHRtcHI7IGludCB0bXBpOyB1 bnNpZ25lZCBpbnQgY29udHJvbDspCisJZkhJREUoaW50IHN1bXI7IGludCBzdW1pOykKKwlzdW1y ID0gMDsKKwlzdW1pID0gMDsKKwljb250cm9sID0gZkdFVFVCWVRFKHVpVixSdFYpOworCWZvciAo aSA9IDA7IGkgPCA4OyBpICs9IDIpIHsKKwkJdG1wciA9IGZHRVRCWVRFKGkgICxSc3NWKTsKKwkJ dG1waSA9IGZHRVRCWVRFKGkrMSxSc3NWKTsKKwkJc3dpdGNoIChjb250cm9sICYgMykgeworCQkJ Y2FzZSAwOiAvKiBObyBSb3RhdGlvbiAqLworCQkJCXN1bXIgKz0gdG1wcjsKKwkJCQlzdW1pICs9 IHRtcGk7CisJCQkJYnJlYWs7CisJCQljYXNlIDE6IC8qIE11bHRpcGx5IGJ5IC1KICovCisJCQkJ c3VtciArPSB0bXBpOworCQkJCXN1bWkgLT0gdG1wcjsKKwkJCQlicmVhazsKKwkJCWNhc2UgMjog LyogTXVsdGlwbHkgYnkgSiAqLworCQkJCXN1bXIgLT0gdG1waTsKKwkJCQlzdW1pICs9IHRtcHI7 CisJCQkJYnJlYWs7CisJCQljYXNlIDM6IC8qIE11bHRpcGx5IGJ5IC0xICovCisJCQkJc3VtciAt PSB0bXByOworCQkJCXN1bWkgLT0gdG1waTsKKwkJCQlicmVhazsKKwkJCWZISURFKGRlZmF1bHQ6 IGZhdGFsKCJDIGlzIGJyb2tlbiEiKTspCisJCX0KKwkJY29udHJvbCA9IGNvbnRyb2wgPj4gMjsK Kwl9CisJZlNFVFdPUkQoMCxSZGRWLHN1bXIpOworCWZTRVRXT1JEKDEsUmRkVixzdW1pKTsKK30p CisKKworUTZJTlNOKFMyX3ZjbmVnaCwiUmRkMzI9dmNuZWdoKFJzczMyLFJ0MzIpIixBVFRSSUJT KCksIkNvbmRpdGlvbmFsIE5lZ2F0ZSBoYWxmd29yZHMiLAoreworCWZISURFKGludCBpOykKKwlm b3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7CisJCWlmIChmR0VUQklUKGksUnRWKSkgeworCQkJZlNF VEhBTEYoaSxSZGRWLGZTQVRIKC1mR0VUSEFMRihpLFJzc1YpKSk7CisJCX0gZWxzZSB7CisJCQlm U0VUSEFMRihpLFJkZFYsZkdFVEhBTEYoaSxSc3NWKSk7CisJCX0KKwl9Cit9KQorCitRNklOU04o UzJfdnJjbmVnaCwiUnh4MzIrPXZyY25lZ2goUnNzMzIsUnQzMikiLEFUVFJJQlMoKSwiVmVjdG9y IFJlZHVjZSBDb25kaXRpb25hbCBOZWdhdGUgaGFsZndvcmRzIiwKK3sKKwlmSElERShpbnQgaTsp CisJZm9yIChpID0gMDsgaSA8IDQ7IGkrKykgeworCQlpZiAoZkdFVEJJVChpLFJ0VikpIHsKKwkJ CVJ4eFYgKz0gLWZHRVRIQUxGKGksUnNzVik7CisJCX0gZWxzZSB7CisJCQlSeHhWICs9IGZHRVRI QUxGKGksUnNzVik7CisJCX0KKwl9Cit9KQorCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKiAgRmluaXRl LWZpZWxkIG11bHRpcGxpZXMuICBXcml0dGVuIGJ5IERhdmlkIEhveWxlICAgICAgICAgICAgICAg ICAgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNOKE00X3BtcHl3LCJSZGQzMj1wbXB5dyhSczMy LFJ0MzIpIixBVFRSSUJTKCksIlBvbHlub21pYWwgMzJiaXQgTXVsdGlwbGljYXRpb24gd2l0aCBB ZGRpdGlvbiBpbiBHRigyKSIsCit7CisgICAgICAgIGZISURFKGludCBpOyB1bnNpZ25lZCBpbnQg eTspCisgICAgICAgIGZISURFKHVuc2lnbmVkIGxvbmcgbG9uZyB4OyB1bnNpZ25lZCBsb25nIGxv bmcgcHJvZDspCisgICAgICAgIHggPSBmR0VUVVdPUkQoMCwgUnNWKTsKKyAgICAgICAgeSA9IGZH RVRVV09SRCgwLCBSdFYpOworCisgICAgICAgIHByb2QgPSAwOworICAgICAgICBmb3IoaT0wOyBp IDwgMzI7IGkrKykgeworICAgICAgICAgICAgaWYoKHkgPj4gaSkgJiAxKSBwcm9kIF49ICh4IDw8 IGkpOworICAgICAgICB9CisJUmRkViA9IHByb2Q7Cit9KQorCitRNklOU04oTTRfdnBtcHloLCJS ZGQzMj12cG1weWgoUnMzMixSdDMyKSIsQVRUUklCUygpLCJEdWFsIFBvbHlub21pYWwgMTZiaXQg TXVsdGlwbGljYXRpb24gd2l0aCBBZGRpdGlvbiBpbiBHRigyKSIsCit7CisgICAgICAgIGZISURF KGludCBpOyB1bnNpZ25lZCBpbnQgeDA7IHVuc2lnbmVkIGludCB4MTspCisgICAgICAgIGZISURF KHVuc2lnbmVkIGludCB5MDsgdW5zaWduZWQgaW50IHkxOykKKyAgICAgICAgZkhJREUodW5zaWdu ZWQgaW50IHByb2QwOyB1bnNpZ25lZCBpbnQgcHJvZDE7KQorCisgICAgICAgIHgwID0gZkdFVFVI QUxGKDAsIFJzVik7CisgICAgICAgIHgxID0gZkdFVFVIQUxGKDEsIFJzVik7CisgICAgICAgIHkw ID0gZkdFVFVIQUxGKDAsIFJ0Vik7CisgICAgICAgIHkxID0gZkdFVFVIQUxGKDEsIFJ0Vik7CisK KyAgICAgICAgcHJvZDAgPSBwcm9kMSA9IDA7CisgICAgICAgIGZvcihpPTA7IGkgPCAxNjsgaSsr KSB7CisgICAgICAgICAgICBpZigoeTAgPj4gaSkgJiAxKSBwcm9kMCBePSAoeDAgPDwgaSk7Cisg ICAgICAgICAgICBpZigoeTEgPj4gaSkgJiAxKSBwcm9kMSBePSAoeDEgPDwgaSk7CisgICAgICAg IH0KKyAgICAgICAgZlNFVEhBTEYoMCxSZGRWLGZHRVRVSEFMRigwLHByb2QwKSk7CisgICAgICAg IGZTRVRIQUxGKDEsUmRkVixmR0VUVUhBTEYoMCxwcm9kMSkpOworICAgICAgICBmU0VUSEFMRigy LFJkZFYsZkdFVFVIQUxGKDEscHJvZDApKTsKKyAgICAgICAgZlNFVEhBTEYoMyxSZGRWLGZHRVRV SEFMRigxLHByb2QxKSk7Cit9KQorCitRNklOU04oTTRfcG1weXdfYWNjLCJSeHgzMl49cG1weXco UnMzMixSdDMyKSIsQVRUUklCUygpLCJQb2x5bm9taWFsIDMyYml0IE11bHRpcGxpY2F0aW9uIHdp dGggQWRkaXRpb24gaW4gR0YoMikiLAoreworICAgICAgICBmSElERShpbnQgaTsgdW5zaWduZWQg aW50IHk7KQorICAgICAgICBmSElERSh1bnNpZ25lZCBsb25nIGxvbmcgeDsgdW5zaWduZWQgbG9u ZyBsb25nIHByb2Q7KQorICAgICAgICB4ID0gZkdFVFVXT1JEKDAsIFJzVik7CisgICAgICAgIHkg PSBmR0VUVVdPUkQoMCwgUnRWKTsKKworICAgICAgICBwcm9kID0gMDsKKyAgICAgICAgZm9yKGk9 MDsgaSA8IDMyOyBpKyspIHsKKyAgICAgICAgICAgIGlmKCh5ID4+IGkpICYgMSkgcHJvZCBePSAo eCA8PCBpKTsKKyAgICAgICAgfQorCVJ4eFYgXj0gcHJvZDsKK30pCisKK1E2SU5TTihNNF92cG1w eWhfYWNjLCJSeHgzMl49dnBtcHloKFJzMzIsUnQzMikiLEFUVFJJQlMoKSwiRHVhbCBQb2x5bm9t aWFsIDE2Yml0IE11bHRpcGxpY2F0aW9uIHdpdGggQWRkaXRpb24gaW4gR0YoMikiLAoreworICAg ICAgICBmSElERShpbnQgaTsgdW5zaWduZWQgaW50IHgwOyB1bnNpZ25lZCBpbnQgeDE7KQorICAg ICAgICBmSElERSh1bnNpZ25lZCBpbnQgeTA7IHVuc2lnbmVkIGludCB5MTspCisgICAgICAgIGZI SURFKHVuc2lnbmVkIGludCBwcm9kMDsgdW5zaWduZWQgaW50IHByb2QxOykKKworICAgICAgICB4 MCA9IGZHRVRVSEFMRigwLCBSc1YpOworICAgICAgICB4MSA9IGZHRVRVSEFMRigxLCBSc1YpOwor ICAgICAgICB5MCA9IGZHRVRVSEFMRigwLCBSdFYpOworICAgICAgICB5MSA9IGZHRVRVSEFMRigx LCBSdFYpOworCisgICAgICAgIHByb2QwID0gcHJvZDEgPSAwOworICAgICAgICBmb3IoaT0wOyBp IDwgMTY7IGkrKykgeworICAgICAgICAgICAgaWYoKHkwID4+IGkpICYgMSkgcHJvZDAgXj0gKHgw IDw8IGkpOworICAgICAgICAgICAgaWYoKHkxID4+IGkpICYgMSkgcHJvZDEgXj0gKHgxIDw8IGkp OworICAgICAgICB9CisgICAgICAgIGZTRVRIQUxGKDAsUnh4VixmR0VUVUhBTEYoMCxSeHhWKSBe IGZHRVRVSEFMRigwLHByb2QwKSk7CisgICAgICAgIGZTRVRIQUxGKDEsUnh4VixmR0VUVUhBTEYo MSxSeHhWKSBeIGZHRVRVSEFMRigwLHByb2QxKSk7CisgICAgICAgIGZTRVRIQUxGKDIsUnh4Vixm R0VUVUhBTEYoMixSeHhWKSBeIGZHRVRVSEFMRigxLHByb2QwKSk7CisgICAgICAgIGZTRVRIQUxG KDMsUnh4VixmR0VUVUhBTEYoMyxSeHhWKSBeIGZHRVRVSEFMRigxLHByb2QxKSk7Cit9KQorCisK Ky8qIFY3MDogVElOWSBDT1JFICovCisKKyNkZWZpbmUgQ01QWTY0KFRBRyxOQU1FLERFU0MsT1BF UkFORDEsT1AsVzAsVzEsVzIsVzMpIFwKK1E2SU5TTihNN18jI1RBRywiUmRkMzI9IiBOQU1FICIo UnNzMzIsIiBPUEVSQU5EMSAiKSIsQVRUUklCUyhBX1JFU1RSSUNUX1NMT1QzT05MWSksIkNvbXBs ZXggTXVsdGlwbHkgNjQtYml0ICIgREVTQywgICAgeyBSZGRWICA9IChmTVBZMzJTUyhmR0VUV09S RChXMCwgUnNzViksIGZHRVRXT1JEKFcxLCBSdHRWKSkgT1AgZk1QWTMyU1MoZkdFVFdPUkQoVzIs IFJzc1YpLCBmR0VUV09SRChXMywgUnR0VikpKTt9KVwKK1E2SU5TTihNN18jI1RBRyMjX2FjYywi Unh4MzIrPSIgTkFNRSAiKFJzczMyLCJPUEVSQU5EMSIpIixBVFRSSUJTKEFfUkVTVFJJQ1RfU0xP VDNPTkxZKSwiQ29tcGxleCBNdWx0aXBseS1BY2N1bXVsYXRlIDY0LWJpdCAiIERFU0MsIHsgUnh4 ViArPSAoZk1QWTMyU1MoZkdFVFdPUkQoVzAsIFJzc1YpLCBmR0VUV09SRChXMSwgUnR0VikpIE9Q IGZNUFkzMlNTKGZHRVRXT1JEKFcyLCBSc3NWKSwgZkdFVFdPUkQoVzMsIFJ0dFYpKSk7fSkKKwor Q01QWTY0KGRjbXB5cncsICJjbXB5cnciLCJSZWFsIiwiUnR0MzIiICwtLDAsMCwxLDEpCitDTVBZ NjQoZGNtcHlyd2MsImNtcHlydyIsIlJlYWwiLCJSdHQzMioiLCssMCwwLDEsMSkKK0NNUFk2NChk Y21weWl3LCAiY21weWl3IiwiSW1hZyIsIlJ0dDMyIiAsKywwLDEsMSwwKQorQ01QWTY0KGRjbXB5 aXdjLCJjbXB5aXciLCJJbWFnIiwiUnR0MzIqIiwtLDEsMCwwLDEpCisKKyNkZWZpbmUgQ01QWTEy OChUQUcsIE5BTUUsIE9QRVJBTkQxLCBXT1JEMCwgV09SRDEsIFdPUkQyLCBXT1JEMywgT1ApIFwK K1E2SU5TTihNN18jI1RBRywiUmQzMj0iIE5BTUUgIihSc3MzMiwiT1BFUkFORDEiKTo8PDE6c2F0 IixBVFRSSUJTKEFfUkVTVFJJQ1RfU0xPVDNPTkxZKSwiQ29tcGxleCBNdWx0aXBseSAzMi1iaXQg cmVzdWx0IHJlYWwiLCAgXAoreyBcCitmSElERShzaXplMTZzX3QgYWNjMTI4OylcCitmSElERShz aXplMTZzX3QgdG1wMTI4OylcCitmSElERShzaXplOHNfdCBhY2M2NDspXAordG1wMTI4ID0gZkNB U1Q4U18xNlMoZk1QWTMyU1MoZkdFVFdPUkQoV09SRDAsIFJzc1YpLCBmR0VUV09SRChXT1JEMSwg UnR0VikpKTtcCithY2MxMjggPSBmQ0FTVDhTXzE2UyhmTVBZMzJTUyhmR0VUV09SRChXT1JEMiwg UnNzViksIGZHRVRXT1JEKFdPUkQzLCBSdHRWKSkpO1wKK2FjYzEyOCA9IE9QKHRtcDEyOCxhY2Mx MjgpO1wKK2FjYzEyOCA9IGZTSElGVFIxMjgoYWNjMTI4LCAzMSk7XAorYWNjNjQgPSAgZkNBU1Qx NlNfOFMoYWNjMTI4KTtcCitSZFYgPSBmU0FUVyhhY2M2NCk7XAorfSkKKworCitDTVBZMTI4KHdj bXB5cncsICJjbXB5cnciLCAiUnR0MzIiLCAwLCAwLCAxLCAxLCBmU1VCMTI4KQorQ01QWTEyOCh3 Y21weXJ3YywgImNtcHlydyIsICJSdHQzMioiLCAwLCAwLCAxLCAxLCBmQUREMTI4KQorQ01QWTEy OCh3Y21weWl3LCAiY21weWl3IiwgIlJ0dDMyIiwgMCwgMSwgMSwgMCwgZkFERDEyOCkKK0NNUFkx Mjgod2NtcHlpd2MsICJjbXB5aXciLCAiUnR0MzIqIiwgMSwgMCwgMCwgMSwgZlNVQjEyOCkKKwor CisjZGVmaW5lIENNUFkxMjhSTkQoVEFHLCBOQU1FLCBPUEVSQU5EMSwgV09SRDAsIFdPUkQxLCBX T1JEMiwgV09SRDMsIE9QKSBcCitRNklOU04oTTdfIyNUQUcjI19ybmQsIlJkMzI9IiBOQU1FICIo UnNzMzIsIk9QRVJBTkQxIik6PDwxOnJuZDpzYXQiLEFUVFJJQlMoQV9SRVNUUklDVF9TTE9UM09O TFkpLCJDb21wbGV4IE11bHRpcGx5IDMyLWJpdCByZXN1bHQgcmVhbCIsICBcCit7IFwKK2ZISURF KHNpemUxNnNfdCBhY2MxMjg7KVwKK2ZISURFKHNpemUxNnNfdCB0bXAxMjg7KVwKK2ZISURFKHNp emUxNnNfdCBjb25zdDEyODspXAorZkhJREUoc2l6ZThzX3QgYWNjNjQ7KVwKK3RtcDEyOCA9IGZD QVNUOFNfMTZTKGZNUFkzMlNTKGZHRVRXT1JEKFdPUkQwLCBSc3NWKSwgZkdFVFdPUkQoV09SRDEs IFJ0dFYpKSk7XAorYWNjMTI4ID0gZkNBU1Q4U18xNlMoZk1QWTMyU1MoZkdFVFdPUkQoV09SRDIs IFJzc1YpLCBmR0VUV09SRChXT1JEMywgUnR0VikpKTtcCitjb25zdDEyOCA9IGZDQVNUOFNfMTZT KGZDT05TVExMKDB4NDAwMDAwMDApKTtcCithY2MxMjggPSBPUCh0bXAxMjgsYWNjMTI4KTtcCith Y2MxMjggPSBmQUREMTI4KGFjYzEyOCxjb25zdDEyOCk7XAorYWNjMTI4ID0gZlNISUZUUjEyOChh Y2MxMjgsIDMxKTtcCithY2M2NCA9ICBmQ0FTVDE2U184UyhhY2MxMjgpO1wKK1JkViA9IGZTQVRX KGFjYzY0KTtcCit9KQorCitDTVBZMTI4Uk5EKHdjbXB5cncsICJjbXB5cnciLCAiUnR0MzIiLCAw LCAwLCAxLCAxLCBmU1VCMTI4KQorQ01QWTEyOFJORCh3Y21weXJ3YywgImNtcHlydyIsICJSdHQz MioiLCAwLCAwLCAxLCAxLCBmQUREMTI4KQorQ01QWTEyOFJORCh3Y21weWl3LCAiY21weWl3Iiwg IlJ0dDMyIiwgMCwgMSwgMSwgMCwgZkFERDEyOCkKK0NNUFkxMjhSTkQod2NtcHlpd2MsICJjbXB5 aXciLCAiUnR0MzIqIiwgMSwgMCwgMCwgMSwgZlNVQjEyOCkKKworCisKKwpkaWZmIC0tZ2l0IGEv dGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvc2hpZnQuaWRlZiBiL3RhcmdldC9oZXhhZ29uL2ltcG9y dGVkL3NoaWZ0LmlkZWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDg1YzI3 OQotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL3NoaWZ0LmlkZWYK QEAgLTAsMCArMSwxMDY3IEBACisvKgorICogIENvcHlyaWdodChjKSAyMDE5LTIwMjAgUXVhbGNv bW0gSW5ub3ZhdGlvbiBDZW50ZXIsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiAg VGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vciBtb2RpZnkKKyAqICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCisgKiAgKGF0IHlvdXIg b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT ZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCBz ZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorICovCisKKy8qCisgKiBTLXR5cGUg SW5zdHJ1Y3Rpb25zCisgKi8KKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKiovCisvKiBTSElGVFMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwor CisvKiBOT1RFOiBSZGQgPSBScyAqcmlnaHQqIHNoaWZ0cyBkb24ndCBtYWtlIHNlbnNlICovCisv KiBOT1RFOiBSZFtkXSA9IFJzW3NdICpyaWdodCogc2hpZnRzIHdpdGggc2F0dXJhdGlvbiBkb24n dCBtYWtlIHNlbnNlICovCisKKworI2RlZmluZSBSU0hJRlRUWVBFUyhUQUdFTkQsUkVHRCxSRUdT LFJFR1NUWVBFLEFDQyxBQ0NTUkMsU0FULFNBVE9QVCxBVFRSUykgXAorUTZJTlNOKFMyX2Fzcl9y XyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPWFzcigiICNSRUdTICIzMixSdDMyKSIgI1NBVE9Q VCxBVFRSSUJTKEFUVFJTKSwgXAorCSJBcml0aG1ldGljIFNoaWZ0IFJpZ2h0IGJ5IFJlZ2lzdGVy IiwgXAorCXsgIFwKKyAgICAgICAgICAgICAgICBmSElERShzaXplNHNfdCkgc2hhbXQ9ZlNYVE4o NywzMixSdFYpO1wKKwkJUkVHRCMjViA9IFNBVChBQ0NTUkMgQUNDIGZCSURJUl9BU0hJRlRSKFJF R1MjI1Ysc2hhbXQsUkVHU1RZUEUpKTsgIFwKKwl9KVwKK1wKK1E2SU5TTihTMl9hc2xfcl8jI1RB R0VORCwjUkVHRCAiMzIiICNBQ0MgIj1hc2woIiAjUkVHUyAiMzIsUnQzMikiICNTQVRPUFQsQVRU UklCUyhBVFRSUyksIFwKKwkiQXJpdGhtZXRpYyBTaGlmdCBMZWZ0IGJ5IFJlZ2lzdGVyIiwgXAor CXsgIFwKKyAgICAgICAgICAgICAgICBmSElERShzaXplNHNfdCkgc2hhbXQ9ZlNYVE4oNywzMixS dFYpO1wKKwkJUkVHRCMjViA9IFNBVChBQ0NTUkMgQUNDIGZCSURJUl9BU0hJRlRMKFJFR1MjI1Ys c2hhbXQsUkVHU1RZUEUpKTsgIFwKKwl9KVwKK1wKK1E2SU5TTihTMl9sc3Jfcl8jI1RBR0VORCwj UkVHRCAiMzIiICNBQ0MgIj1sc3IoIiAjUkVHUyAiMzIsUnQzMikiICNTQVRPUFQsQVRUUklCUyhB VFRSUyksIFwKKwkiTG9naWNhbCBTaGlmdCBSaWdodCBieSBSZWdpc3RlciIsIFwKKwl7ICBcCisg ICAgICAgICAgICAgICAgZkhJREUoc2l6ZTRzX3QpIHNoYW10PWZTWFROKDcsMzIsUnRWKTtcCisJ CVJFR0QjI1YgPSBTQVQoQUNDU1JDIEFDQyBmQklESVJfTFNISUZUUihSRUdTIyNWLHNoYW10LFJF R1NUWVBFKSk7ICBcCisJfSlcCitcCitRNklOU04oUzJfbHNsX3JfIyNUQUdFTkQsI1JFR0QgIjMy IiAjQUNDICI9bHNsKCIgI1JFR1MgIjMyLFJ0MzIpIiAjU0FUT1BULEFUVFJJQlMoQVRUUlMpLCBc CisJIkxvZ2ljYWwgU2hpZnQgTGVmdCBieSBSZWdpc3RlciIsIFwKKwl7ICBcCisgICAgICAgICAg ICAgICAgZkhJREUoc2l6ZTRzX3QpIHNoYW10PWZTWFROKDcsMzIsUnRWKTtcCisJCVJFR0QjI1Yg PSBTQVQoQUNDU1JDIEFDQyBmQklESVJfTFNISUZUTChSRUdTIyNWLHNoYW10LFJFR1NUWVBFKSk7 ICBcCisJfSkKKworUlNISUZUVFlQRVMocixSZCxScyw0XzgsLCxmRUNITywsKQorUlNISUZUVFlQ RVMocCxSZGQsUnNzLDhfOCwsLGZFQ0hPLCwpCitSU0hJRlRUWVBFUyhyX2FjYyxSeCxScyw0Xzgs KyxSeFYsZkVDSE8sLCkKK1JTSElGVFRZUEVTKHBfYWNjLFJ4eCxSc3MsOF84LCssUnh4VixmRUNI TywsKQorUlNISUZUVFlQRVMocl9uYWMsUngsUnMsNF84LC0sUnhWLGZFQ0hPLCwpCitSU0hJRlRU WVBFUyhwX25hYyxSeHgsUnNzLDhfOCwtLFJ4eFYsZkVDSE8sLCkKKworUlNISUZUVFlQRVMocl9h bmQsUngsUnMsNF84LCYsUnhWLGZFQ0hPLCwpCitSU0hJRlRUWVBFUyhyX29yLFJ4LFJzLDRfOCx8 LFJ4VixmRUNITywsKQorUlNISUZUVFlQRVMocF9hbmQsUnh4LFJzcyw4XzgsJixSeHhWLGZFQ0hP LCwpCitSU0hJRlRUWVBFUyhwX29yLFJ4eCxSc3MsOF84LHwsUnh4VixmRUNITywsKQorUlNISUZU VFlQRVMocF94b3IsUnh4LFJzcyw4XzgsXixSeHhWLGZFQ0hPLCwpCisKKworI3VuZGVmIFJTSElG VFRZUEVTCisKKy8qIFJlZ2lzdGVyIHNoaWZ0IHdpdGggc2F0dXJhdGlvbiAqLworI2RlZmluZSBS U0FUU0hJRlRUWVBFUyhUQUdFTkQsUkVHRCxSRUdTLFJFR1NUWVBFKSBcCitRNklOU04oUzJfYXNy X3JfIyNUQUdFTkQsI1JFR0QgIjMyIiAiPWFzcigiICNSRUdTICIzMixSdDMyKTpzYXQiLEFUVFJJ QlMoKSwgXAorCSJBcml0aG1ldGljIFNoaWZ0IFJpZ2h0IGJ5IFJlZ2lzdGVyIiwgXAorCXsgIFwK KyAgICAgICAgICAgICAgICBmSElERShzaXplNHNfdCkgc2hhbXQ9ZlNYVE4oNywzMixSdFYpO1wK KwkJUkVHRCMjViA9IGZCSURJUl9BU0hJRlRSX1NBVChSRUdTIyNWLHNoYW10LFJFR1NUWVBFKTsg IFwKKwl9KVwKK1wKK1E2SU5TTihTMl9hc2xfcl8jI1RBR0VORCwjUkVHRCAiMzIiICI9YXNsKCIg I1JFR1MgIjMyLFJ0MzIpOnNhdCIsQVRUUklCUygpLCBcCisJIkFyaXRobWV0aWMgU2hpZnQgTGVm dCBieSBSZWdpc3RlciIsIFwKKwl7ICBcCisgICAgICAgICAgICAgICAgZkhJREUoc2l6ZTRzX3Qp IHNoYW10PWZTWFROKDcsMzIsUnRWKTtcCisJCVJFR0QjI1YgPSBmQklESVJfQVNISUZUTF9TQVQo UkVHUyMjVixzaGFtdCxSRUdTVFlQRSk7ICBcCisJfSkKKworUlNBVFNISUZUVFlQRVMocl9zYXQs UmQsUnMsNF84KQorCisKKworCisKKyNkZWZpbmUgSVNISUZUVFlQRVMoVEFHRU5ELFNJWkUsUkVH RCxSRUdTLFJFR1NUWVBFLEFDQyxBQ0NTUkMsU0FULFNBVE9QVCxBVFRSUykgXAorUTZJTlNOKFMy X2Fzcl9pXyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPWFzcigiICNSRUdTICIzMiwjdSIgI1NJ WkUgIikiICNTQVRPUFQsQVRUUklCUyhBVFRSUyksIFwKKwkiQXJpdGhtZXRpYyBTaGlmdCBSaWdo dCBieSBJbW1lZGlhdGUiLCBcCisJeyBSRUdEIyNWID0gU0FUKEFDQ1NSQyBBQ0MgZkFTSElGVFIo UkVHUyMjVix1aVYsUkVHU1RZUEUpKTsgfSkgXAorXAorUTZJTlNOKFMyX2xzcl9pXyMjVEFHRU5E LCNSRUdEICIzMiIgI0FDQyAiPWxzcigiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRPUFQs QVRUUklCUyhBVFRSUyksIFwKKwkiTG9naWNhbCBTaGlmdCBSaWdodCBieSBJbW1lZGlhdGUiLCBc CisJeyBSRUdEIyNWID0gU0FUKEFDQ1NSQyBBQ0MgZkxTSElGVFIoUkVHUyMjVix1aVYsUkVHU1RZ UEUpKTsgfSkgXAorXAorUTZJTlNOKFMyX2FzbF9pXyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAi PWFzbCgiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRPUFQsQVRUUklCUyhBVFRSUyksIFwK KwkiU2hpZnQgTGVmdCBieSBJbW1lZGlhdGUiLCBcCisJeyBSRUdEIyNWID0gU0FUKEFDQ1NSQyBB Q0MgZkFTSElGVEwoUkVHUyMjVix1aVYsUkVHU1RZUEUpKTsgfSkgXAorUTZJTlNOKFM2X3JvbF9p XyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPXJvbCgiICNSRUdTICIzMiwjdSIgI1NJWkUgIiki ICNTQVRPUFQsQVRUUklCUyhBVFRSUyksIFwKKwkiUm90YXRlIExlZnQgYnkgSW1tZWRpYXRlIiwg XAorCXsgUkVHRCMjViA9IFNBVChBQ0NTUkMgQUNDIGZST1RMKFJFR1MjI1YsdWlWLFJFR1NUWVBF KSk7IH0pCisKKworI2RlZmluZSBJU0hJRlRUWVBFU19PTkxZX0FTTChUQUdFTkQsU0laRSxSRUdE LFJFR1MsUkVHU1RZUEUsQUNDLEFDQ1NSQyxTQVQsU0FUT1BUKSBcCitRNklOU04oUzJfYXNsX2lf IyNUQUdFTkQsI1JFR0QgIjMyIiAjQUNDICI9YXNsKCIgI1JFR1MgIjMyLCN1IiAjU0laRSAiKSIg I1NBVE9QVCxBVFRSSUJTKCksIFwKKwkiIiwgXAorCXsgUkVHRCMjViA9IFNBVChBQ0NTUkMgQUND IGZBU0hJRlRMKFJFR1MjI1YsdWlWLFJFR1NUWVBFKSk7IH0pCisKKyNkZWZpbmUgSVNISUZUVFlQ RVNfT05MWV9BU1IoVEFHRU5ELFNJWkUsUkVHRCxSRUdTLFJFR1NUWVBFLEFDQyxBQ0NTUkMsU0FU LFNBVE9QVCkgXAorUTZJTlNOKFMyX2Fzcl9pXyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPWFz cigiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRPUFQsQVRUUklCUygpLCBcCisJIiIsIFwK Kwl7IFJFR0QjI1YgPSBTQVQoQUNDU1JDIEFDQyBmQVNISUZUUihSRUdTIyNWLHVpVixSRUdTVFlQ RSkpOyB9KQorCisKKyNkZWZpbmUgSVNISUZUVFlQRVNfTk9BU1IoVEFHRU5ELFNJWkUsUkVHRCxS RUdTLFJFR1NUWVBFLEFDQyxBQ0NTUkMsU0FULFNBVE9QVCkgXAorUTZJTlNOKFMyX2xzcl9pXyMj VEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPWxzcigiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNT QVRPUFQsQVRUUklCUygpLCBcCisJIkxvZ2ljYWwgU2hpZnQgUmlnaHQgYnkgUmVnaXN0ZXIiLCBc CisJeyBSRUdEIyNWID0gU0FUKEFDQ1NSQyBBQ0MgZkxTSElGVFIoUkVHUyMjVix1aVYsUkVHU1RZ UEUpKTsgfSkgXAorUTZJTlNOKFMyX2FzbF9pXyMjVEFHRU5ELCNSRUdEICIzMiIgI0FDQyAiPWFz bCgiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRPUFQsQVRUUklCUygpLCBcCisJIlNoaWZ0 IExlZnQgYnkgUmVnaXN0ZXIiLCBcCisJeyBSRUdEIyNWID0gU0FUKEFDQ1NSQyBBQ0MgZkFTSElG VEwoUkVHUyMjVix1aVYsUkVHU1RZUEUpKTsgfSkgXAorUTZJTlNOKFM2X3JvbF9pXyMjVEFHRU5E LCNSRUdEICIzMiIgI0FDQyAiPXJvbCgiICNSRUdTICIzMiwjdSIgI1NJWkUgIikiICNTQVRPUFQs QVRUUklCUygpLCBcCisJIlJvdGF0ZSBMZWZ0IGJ5IEltbWVkaWF0ZSIsIFwKKwl7IFJFR0QjI1Yg PSBTQVQoQUNDU1JDIEFDQyBmUk9UTChSRUdTIyNWLHVpVixSRUdTVFlQRSkpOyB9KQorCisKKwor SVNISUZUVFlQRVMociw1LFJkLFJzLDRfNCwsLGZFQ0hPLCwpCitJU0hJRlRUWVBFUyhwLDYsUmRk LFJzcyw4XzgsLCxmRUNITywsKQorSVNISUZUVFlQRVMocl9hY2MsNSxSeCxScyw0XzQsKyxSeFYs ZkVDSE8sLCkKK0lTSElGVFRZUEVTKHBfYWNjLDYsUnh4LFJzcyw4XzgsKyxSeHhWLGZFQ0hPLCwp CitJU0hJRlRUWVBFUyhyX25hYyw1LFJ4LFJzLDRfNCwtLFJ4VixmRUNITywsKQorSVNISUZUVFlQ RVMocF9uYWMsNixSeHgsUnNzLDhfOCwtLFJ4eFYsZkVDSE8sLCkKKworSVNISUZUVFlQRVNfTk9B U1Iocl94YWNjLDUsUngsUnMsNF80LF4sIFJ4VixmRUNITywpCitJU0hJRlRUWVBFU19OT0FTUihw X3hhY2MsNixSeHgsUnNzLDhfOCxeLCBSeHhWLGZFQ0hPLCkKKworSVNISUZUVFlQRVMocl9hbmQs NSxSeCxScyw0XzQsJixSeFYsZkVDSE8sLCkKK0lTSElGVFRZUEVTKHJfb3IsNSxSeCxScyw0XzQs fCxSeFYsZkVDSE8sLCkKK0lTSElGVFRZUEVTKHBfYW5kLDYsUnh4LFJzcyw4XzgsJixSeHhWLGZF Q0hPLCwpCitJU0hJRlRUWVBFUyhwX29yLDYsUnh4LFJzcyw4XzgsfCxSeHhWLGZFQ0hPLCwpCisK K0lTSElGVFRZUEVTX09OTFlfQVNMKHJfc2F0LDUsUmQsUnMsNF84LCwsZlNBVCw6c2F0KQorCisK K1E2SU5TTihTMl9hc3JfaV9yX3JuZCwiUmQzMj1hc3IoUnMzMiwjdTUpOnJuZCIsQVRUUklCUygp LAorICAgICAgICJTaGlmdCByaWdodCB3aXRoIHJvdW5kIiwKKyAgICAgICB7IFJkViA9IGZBU0hJ RlRSKCgoZkFTSElGVFIoUnNWLHVpViw0XzgpKSsxKSwxLDhfOCk7IH0pCisKKworUTZJTlNOKFMy X2Fzcl9pX3Bfcm5kLCJSZGQzMj1hc3IoUnNzMzIsI3U2KTpybmQiLEFUVFJJQlMoKSwgIlNoaWZ0 IHJpZ2h0IHdpdGggcm91bmQiLAoreyBmSElERShzaXplOHVfdCB0bXA7KQorICBmSElERShzaXpl OHVfdCBybmQ7KQorICB0bXAgPSBmQVNISUZUUihSc3NWLHVpViw4XzgpOworICBybmQgPSB0bXAg JiAxOworICBSZGRWID0gZkFTSElGVFIodG1wLDEsOF84KSArIHJuZDsgfSkKKworCitRNklOU04o UzRfbHNsaSwiUmQzMj1sc2woI3M2LFJ0MzIpIixBVFRSSUJTKCksICJTaGlmdCBhbiBpbW1lZGlh dGUgbGVmdCBieSByZWdpc3RlciBhbW91bnQiLAoreworCWZISURFKHNpemU0c190KSBzaGFtdCA9 IGZTWFROKDcsMzIsUnRWKTsKKwlSZFYgPSBmQklESVJfTFNISUZUTChzaVYsc2hhbXQsNF84KTsK K30pCisKKworCisKK1E2SU5TTihTMl9hZGRhc2xfcnJyaSwiUmQzMj1hZGRhc2woUnQzMixSczMy LCN1MykiLEFUVFJJQlMoKSwKKwkiU2hpZnQgbGVmdCBieSBzbWFsbCBhbW91bnQgYW5kIGFkZCIs CisJeyBSZFYgPSBSdFYgKyBmQVNISUZUTChSc1YsdWlWLDRfNCk7IH0pCisKKworCisjZGVmaW5l IFNISUZUT1BJKFRBR0VORCxJTk5FUk9QLElOTkVSU0VNKVwKK1E2SU5TTihTNF9hbmRpXyMjVEFH RU5ELCJSeDMyPWFuZCgjdTgsIklOTkVST1AiKSIsLCJTaGlmdC1vcCIse1J4Vj1mSU1NRVhUKHVp VikmSU5ORVJTRU07fSlcCitRNklOU04oUzRfb3JpXyMjVEFHRU5ELCAiUngzMj1vcigjdTgsIklO TkVST1AiKSIsLCJTaGlmdC1vcCIse1J4Vj1mSU1NRVhUKHVpVil8SU5ORVJTRU07fSlcCitRNklO U04oUzRfYWRkaV8jI1RBR0VORCwiUngzMj1hZGQoI3U4LCJJTk5FUk9QIikiLCwiU2hpZnQtb3Ai LHtSeFY9ZklNTUVYVCh1aVYpK0lOTkVSU0VNO30pXAorUTZJTlNOKFM0X3N1YmlfIyNUQUdFTkQs IlJ4MzI9c3ViKCN1OCwiSU5ORVJPUCIpIiwsIlNoaWZ0LW9wIix7UnhWPWZJTU1FWFQodWlWKS1J Tk5FUlNFTTt9KQorCisKK1NISUZUT1BJKGFzbF9yaSwiYXNsKFJ4MzIsI1U1KSIsKFJ4Vjw8VWlW KSkKK1NISUZUT1BJKGxzcl9yaSwibHNyKFJ4MzIsI1U1KSIsKCgodW5zaWduZWQgaW50KVJ4Vik+ PlVpVikpCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisvKiBQRVJNVVRFUyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworUTZJTlNOKFMy X3ZhbGlnbmliLCJSZGQzMj12YWxpZ25iKFJ0dDMyLFJzczMyLCN1MykiLAorQVRUUklCUygpLCAi VmVjdG9yIGFsaWduIGJ5dGVzIiwKK3sKKyAgUmRkViA9IChmTFNISUZUUihSc3NWLHVpVio4LDhf OCkpfChmQVNISUZUTChSdHRWLCgoOC11aVYpKjgpLDhfOCkpOworfSkKKworUTZJTlNOKFMyX3Zh bGlnbnJiLCJSZGQzMj12YWxpZ25iKFJ0dDMyLFJzczMyLFB1NCkiLAorQVRUUklCUygpLCAiQWxp Z24gd2l0aCByZWdpc3RlciIsCit7IFJkZFYgPSBmTFNISUZUUihSc3NWLChQdVYmMHg3KSo4LDhf OCl8KGZBU0hJRlRMKFJ0dFYsKDgtKFB1ViYweDcpKSo4LDhfOCkpO30pCisKK1E2SU5TTihTMl92 c3BsaWNlaWIsIlJkZDMyPXZzcGxpY2ViKFJzczMyLFJ0dDMyLCN1MykiLAorQVRUUklCUygpLCAi VmVjdG9yIHNwbGljZSBieXRlcyIsCit7IFJkZFYgPSBmQVNISUZUTChSdHRWLHVpVio4LDhfOCkg fCBmWlhUTih1aVYqOCw2NCxSc3NWKTsgfSkKKworUTZJTlNOKFMyX3ZzcGxpY2VyYiwiUmRkMzI9 dnNwbGljZWIoUnNzMzIsUnR0MzIsUHU0KSIsCitBVFRSSUJTKCksICJTcGxpY2Ugd2l0aCByZWdp c3RlciIsCit7IFJkZFYgPSBmQVNISUZUTChSdHRWLChQdVYmNykqOCw4XzgpIHwgZlpYVE4oKFB1 ViY3KSo4LDY0LFJzc1YpOyB9KQorCitRNklOU04oUzJfdnNwbGF0cmgsIlJkZDMyPXZzcGxhdGgo UnMzMikiLAorQVRUUklCUygpLCAiVmVjdG9yIHNwbGF0IGhhbGZ3b3JkcyBmcm9tIHJlZ2lzdGVy IiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7 CisJICBmU0VUSEFMRihpLFJkZFYsIGZHRVRIQUxGKDAsUnNWKSk7CisgICAgICAgIH0KK30pCisK KworUTZJTlNOKFMyX3ZzcGxhdHJiLCJSZDMyPXZzcGxhdGIoUnMzMikiLAorQVRUUklCUygpLCAi VmVjdG9yIHNwbGF0IGJ5dGVzIGZyb20gcmVnaXN0ZXIiLAoreworICAgICAgICBmSElERShpbnQg aTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKwkgIGZTRVRCWVRFKGksUmRWLCBmR0VU QllURSgwLFJzVikpOworICAgICAgICB9Cit9KQorCitRNklOU04oUzZfdnNwbGF0cmJwLCJSZGQz Mj12c3BsYXRiKFJzMzIpIiwKK0FUVFJJQlMoKSwgIlZlY3RvciBzcGxhdCBieXRlcyBmcm9tIHJl Z2lzdGVyIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDg7 aSsrKSB7CisJICBmU0VUQllURShpLFJkZFYsIGZHRVRCWVRFKDAsUnNWKSk7CisgICAgICAgIH0K K30pCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKy8qIEluc2VydC9FeHRyYWN0W3VdICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5TTihT Ml9pbnNlcnQsIlJ4MzI9aW5zZXJ0KFJzMzIsI3U1LCNVNSkiLAorQVRUUklCUygpLCAiSW5zZXJ0 IGJpdHMiLAoreworICAgICAgICBmSElERShpbnQpIHdpZHRoPXVpVjsKKyAgICAgICAgZkhJREUo aW50KSBvZmZzZXQ9VWlWOworCS8qIGNsZWFyIGJpdHMgaW4gUnh4IHdoZXJlIG5ldyBiaXRzIGdv ICovCisJUnhWICY9IH4oKChmQ09OU1RMTCgxKTw8d2lkdGgpLTEpPDxvZmZzZXQpOworCS8qIE9S IGluIG5ldyBiaXRzICovCisJUnhWIHw9ICgoUnNWICYgKChmQ09OU1RMTCgxKTw8d2lkdGgpLTEp KSA8PCBvZmZzZXQpOworfSkKKworCitRNklOU04oUzJfdGFibGVpZHhiLCJSeDMyPXRhYmxlaWR4 YihSczMyLCN1NCwjUzYpOnJhdyIsCitBVFRSSUJTKEFfQVJDSFYyKSwgIkV4dHJhY3QgYW5kIGlu c2VydCBiaXRzIiwKK3sKKyAgICAgICAgZkhJREUoaW50KSB3aWR0aD11aVY7CisgICAgICAgIGZI SURFKGludCkgb2Zmc2V0PVNpVjsKKyAgICAgICAgZkhJREUoaW50KSBmaWVsZCA9IGZFWFRSQUNU VV9CSURJUihSc1Ysd2lkdGgsb2Zmc2V0KTsKKyAgICAgICAgZklOU0VSVF9CSVRTKFJ4Vix3aWR0 aCwwLGZpZWxkKTsKK30pCisKK1E2SU5TTihTMl90YWJsZWlkeGgsIlJ4MzI9dGFibGVpZHhoKFJz MzIsI3U0LCNTNik6cmF3IiwKK0FUVFJJQlMoQV9BUkNIVjIpLCAiRXh0cmFjdCBhbmQgaW5zZXJ0 IGJpdHMiLAoreworICAgICAgICBmSElERShpbnQpIHdpZHRoPXVpVjsKKyAgICAgICAgZkhJREUo aW50KSBvZmZzZXQ9U2lWKzE7CisgICAgICAgIGZISURFKGludCkgZmllbGQgPSBmRVhUUkFDVFVf QklESVIoUnNWLHdpZHRoLG9mZnNldCk7CisgICAgICAgIGZJTlNFUlRfQklUUyhSeFYsd2lkdGgs MSxmaWVsZCk7Cit9KQorCitRNklOU04oUzJfdGFibGVpZHh3LCJSeDMyPXRhYmxlaWR4dyhSczMy LCN1NCwjUzYpOnJhdyIsCitBVFRSSUJTKEFfQVJDSFYyKSwgIkV4dHJhY3QgYW5kIGluc2VydCBi aXRzIiwKK3sKKyAgICAgICAgZkhJREUoaW50KSB3aWR0aD11aVY7CisgICAgICAgIGZISURFKGlu dCkgb2Zmc2V0PVNpVisyOworICAgICAgICBmSElERShpbnQpIGZpZWxkID0gZkVYVFJBQ1RVX0JJ RElSKFJzVix3aWR0aCxvZmZzZXQpOworICAgICAgICBmSU5TRVJUX0JJVFMoUnhWLHdpZHRoLDIs ZmllbGQpOworfSkKKworUTZJTlNOKFMyX3RhYmxlaWR4ZCwiUngzMj10YWJsZWlkeGQoUnMzMiwj dTQsI1M2KTpyYXciLAorQVRUUklCUyhBX0FSQ0hWMiksICJFeHRyYWN0IGFuZCBpbnNlcnQgYml0 cyIsCit7CisgICAgICAgIGZISURFKGludCkgd2lkdGg9dWlWOworICAgICAgICBmSElERShpbnQp IG9mZnNldD1TaVYrMzsKKyAgICAgICAgZkhJREUoaW50KSBmaWVsZCA9IGZFWFRSQUNUVV9CSURJ UihSc1Ysd2lkdGgsb2Zmc2V0KTsKKyAgICAgICAgZklOU0VSVF9CSVRTKFJ4Vix3aWR0aCwzLGZp ZWxkKTsKK30pCisKKworUTZJTlNOKEE0X2JpdHNwbGl0aSwiUmRkMzI9Yml0c3BsaXQoUnMzMiwj dTUpIiwKK0FUVFJJQlMoKSwgIlNwbGl0IGEgYml0ZmllbGQgaW50byB0d28gcmVnaXN0ZXJzIiwK K3sKKyAgICAgICAgZlNFVFdPUkQoMSxSZGRWLChmQ0FTVDRfNHUoUnNWKT4+dWlWKSk7CisgICAg ICAgIGZTRVRXT1JEKDAsUmRkVixmWlhUTih1aVYsMzIsUnNWKSk7Cit9KQorCitRNklOU04oQTRf Yml0c3BsaXQsIlJkZDMyPWJpdHNwbGl0KFJzMzIsUnQzMikiLAorQVRUUklCUygpLCAiU3BsaXQg YSBiaXRmaWVsZCBpbnRvIHR3byByZWdpc3RlcnMiLAoreworCQlmSElERShzaXplNHVfdCkgc2hh bXQgPSBmWlhUTig1LDMyLFJ0Vik7CisgICAgICAgIGZTRVRXT1JEKDEsUmRkViwoZkNBU1Q0XzR1 KFJzVik+PnNoYW10KSk7CisgICAgICAgIGZTRVRXT1JEKDAsUmRkVixmWlhUTihzaGFtdCwzMixS c1YpKTsKK30pCisKKworCisKK1E2SU5TTihTNF9leHRyYWN0LCJSZDMyPWV4dHJhY3QoUnMzMiwj dTUsI1U1KSIsCitBVFRSSUJTKCksICJFeHRyYWN0IHNpZ25lZCBiaXRmaWVsZCIsCit7CisgICAg ICAgIGZISURFKGludCkgd2lkdGg9dWlWOworICAgICAgICBmSElERShpbnQpIG9mZnNldD1VaVY7 CisJCVJkViA9IGZTWFROKHdpZHRoLDMyLChmQ0FTVDRfNHUoUnNWKSA+PiBvZmZzZXQpKTsKK30p CisKKworUTZJTlNOKFMyX2V4dHJhY3R1LCJSZDMyPWV4dHJhY3R1KFJzMzIsI3U1LCNVNSkiLAor QVRUUklCUygpLCAiRXh0cmFjdCB1bnNpZ25lZCBiaXRmaWVsZCIsCit7CisgICAgICAgIGZISURF KGludCkgd2lkdGg9dWlWOworICAgICAgICBmSElERShpbnQpIG9mZnNldD1VaVY7CisJCVJkViA9 IGZaWFROKHdpZHRoLDMyLChmQ0FTVDRfNHUoUnNWKSA+PiBvZmZzZXQpKTsKK30pCisKK1E2SU5T TihTMl9pbnNlcnRwLCJSeHgzMj1pbnNlcnQoUnNzMzIsI3U2LCNVNikiLAorQVRUUklCUygpLCAi SW5zZXJ0IGJpdHMiLAoreworICAgICAgICBmSElERShpbnQpIHdpZHRoPXVpVjsKKyAgICAgIAlm SElERShpbnQpIG9mZnNldD1VaVY7CisJCS8qIGNsZWFyIGJpdHMgaW4gUnh4IHdoZXJlIG5ldyBi aXRzIGdvICovCisJCVJ4eFYgJj0gfigoKGZDT05TVExMKDEpPDx3aWR0aCktMSk8PG9mZnNldCk7 CisJCS8qIE9SIGluIG5ldyBiaXRzICovCisJCVJ4eFYgfD0gKChSc3NWICYgKChmQ09OU1RMTCgx KTw8d2lkdGgpLTEpKSA8PCBvZmZzZXQpOworfSkKKworCitRNklOU04oUzRfZXh0cmFjdHAsIlJk ZDMyPWV4dHJhY3QoUnNzMzIsI3U2LCNVNikiLAorQVRUUklCUygpLCAiRXh0cmFjdCBzaWduZWQg Yml0ZmllbGQiLAoreworICAgICAgICBmSElERShpbnQpIHdpZHRoPXVpVjsKKyAgICAgICAgZkhJ REUoaW50KSBvZmZzZXQ9VWlWOworCVJkZFYgPSBmU1hUTih3aWR0aCw2NCwoZkNBU1Q4Xzh1KFJz c1YpID4+IG9mZnNldCkpOworfSkKKworCitRNklOU04oUzJfZXh0cmFjdHVwLCJSZGQzMj1leHRy YWN0dShSc3MzMiwjdTYsI1U2KSIsCitBVFRSSUJTKCksICJFeHRyYWN0IHVuc2lnbmVkIGJpdGZp ZWxkIiwKK3sKKyAgICAgICAgZkhJREUoaW50KSB3aWR0aD11aVY7CisgICAgICAgIGZISURFKGlu dCkgb2Zmc2V0PVVpVjsKKwlSZGRWID0gZlpYVE4od2lkdGgsNjQsKGZDQVNUOF84dShSc3NWKSA+ PiBvZmZzZXQpKTsKK30pCisKKworCisKK1E2SU5TTihTMl9tYXNrLCJSZDMyPW1hc2soI3U1LCNV NSkiLAorQVRUUklCUygpLCAiRm9ybSBtYXNrIGZyb20gaW1tZWRpYXRlIiwKK3sKKyAgICBSZFYg PSAoKDE8PHVpViktMSkgPDwgVWlWOworfSkKKworCisKKworCitRNklOU04oUzJfaW5zZXJ0X3Jw LCJSeDMyPWluc2VydChSczMyLFJ0dDMyKSIsCitBVFRSSUJTKCksICJJbnNlcnQgYml0cyIsCit7 CisgICAgICAgIGZISURFKGludCkgd2lkdGg9ZlpYVE4oNiwzMiwoZkdFVFdPUkQoMSxSdHRWKSkp OworICAgICAgICBmSElERShpbnQpIG9mZnNldD1mU1hUTig3LDMyLChmR0VUV09SRCgwLFJ0dFYp KSk7CisJZkhJREUoc2l6ZTh1X3QpIG1hc2sgPSAoKGZDT05TVExMKDEpPDx3aWR0aCktMSk7CisJ aWYgKG9mZnNldCA8IDApIHsKKwkJUnhWID0gMDsKKwl9IGVsc2UgeworCQkvKiBjbGVhciBiaXRz IGluIFJ4eCB3aGVyZSBuZXcgYml0cyBnbyAqLworCQlSeFYgJj0gfihtYXNrPDxvZmZzZXQpOwor CQkvKiBPUiBpbiBuZXcgYml0cyAqLworCQlSeFYgfD0gKChSc1YgJiBtYXNrKSA8PCBvZmZzZXQp OworCX0KK30pCisKKworUTZJTlNOKFM0X2V4dHJhY3RfcnAsIlJkMzI9ZXh0cmFjdChSczMyLFJ0 dDMyKSIsCitBVFRSSUJTKCksICJFeHRyYWN0IHNpZ25lZCBiaXRmaWVsZCIsCit7CisgICAgICAg IGZISURFKGludCkgd2lkdGg9ZlpYVE4oNiwzMiwoZkdFVFdPUkQoMSxSdHRWKSkpOworICAgICAg ICBmSElERShpbnQpIG9mZnNldD1mU1hUTig3LDMyLChmR0VUV09SRCgwLFJ0dFYpKSk7CisJUmRW ID0gZlNYVE4od2lkdGgsNjQsZkJJRElSX0xTSElGVFIoZkNBU1Q0Xzh1KFJzViksb2Zmc2V0LDRf OCkpOworfSkKKworCisKK1E2SU5TTihTMl9leHRyYWN0dV9ycCwiUmQzMj1leHRyYWN0dShSczMy LFJ0dDMyKSIsCitBVFRSSUJTKCksICJFeHRyYWN0IHVuc2lnbmVkIGJpdGZpZWxkIiwKK3sKKyAg ICAgICAgZkhJREUoaW50KSB3aWR0aD1mWlhUTig2LDMyLChmR0VUV09SRCgxLFJ0dFYpKSk7Cisg ICAgICAgIGZISURFKGludCkgb2Zmc2V0PWZTWFROKDcsMzIsKGZHRVRXT1JEKDAsUnR0VikpKTsK KwlSZFYgPSBmWlhUTih3aWR0aCw2NCxmQklESVJfTFNISUZUUihmQ0FTVDRfOHUoUnNWKSxvZmZz ZXQsNF84KSk7Cit9KQorCitRNklOU04oUzJfaW5zZXJ0cF9ycCwiUnh4MzI9aW5zZXJ0KFJzczMy LFJ0dDMyKSIsCitBVFRSSUJTKCksICJJbnNlcnQgYml0cyIsCit7CisgICAgICAgIGZISURFKGlu dCkgd2lkdGg9ZlpYVE4oNiwzMiwoZkdFVFdPUkQoMSxSdHRWKSkpOworICAgICAgICBmSElERShp bnQpIG9mZnNldD1mU1hUTig3LDMyLChmR0VUV09SRCgwLFJ0dFYpKSk7CisJZkhJREUoc2l6ZTh1 X3QpIG1hc2sgPSAoKGZDT05TVExMKDEpPDx3aWR0aCktMSk7CisJaWYgKG9mZnNldCA8IDApIHsK KwkJUnh4ViA9IDA7CisJfSBlbHNlIHsKKwkJLyogY2xlYXIgYml0cyBpbiBSeHggd2hlcmUgbmV3 IGJpdHMgZ28gKi8KKwkJUnh4ViAmPSB+KG1hc2s8PG9mZnNldCk7CisJCS8qIE9SIGluIG5ldyBi aXRzICovCisJCVJ4eFYgfD0gKChSc3NWICYgbWFzaykgPDwgb2Zmc2V0KTsKKwl9Cit9KQorCisK K1E2SU5TTihTNF9leHRyYWN0cF9ycCwiUmRkMzI9ZXh0cmFjdChSc3MzMixSdHQzMikiLAorQVRU UklCUygpLCAiRXh0cmFjdCBzaWduZWQgYml0ZmllbGQiLAoreworICAgICAgICBmSElERShpbnQp IHdpZHRoPWZaWFROKDYsMzIsKGZHRVRXT1JEKDEsUnR0VikpKTsKKyAgICAgICAgZkhJREUoaW50 KSBvZmZzZXQ9ZlNYVE4oNywzMiwoZkdFVFdPUkQoMCxSdHRWKSkpOworCVJkZFYgPSBmU1hUTih3 aWR0aCw2NCxmQklESVJfTFNISUZUUihmQ0FTVDhfOHUoUnNzViksb2Zmc2V0LDhfOCkpOworfSkK KworCitRNklOU04oUzJfZXh0cmFjdHVwX3JwLCJSZGQzMj1leHRyYWN0dShSc3MzMixSdHQzMiki LAorQVRUUklCUygpLCAiRXh0cmFjdCB1bnNpZ25lZCBiaXRmaWVsZCIsCit7CisgICAgICAgIGZI SURFKGludCkgd2lkdGg9ZlpYVE4oNiwzMiwoZkdFVFdPUkQoMSxSdHRWKSkpOworICAgICAgICBm SElERShpbnQpIG9mZnNldD1mU1hUTig3LDMyLChmR0VUV09SRCgwLFJ0dFYpKSk7CisJUmRkViA9 IGZaWFROKHdpZHRoLDY0LGZCSURJUl9MU0hJRlRSKGZDQVNUOF84dShSc3NWKSxvZmZzZXQsOF84 KSk7Cit9KQorCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKy8qIHRzdGJpdC9zZXRiaXQvY2xyYml0ICAgICAgICAgICAgICAgICAgICAgICAqLworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5TTihT Ml90c3RiaXRfaSwiUGQ0PXRzdGJpdChSczMyLCN1NSkiLAorQVRUUklCUygpLCAiVGVzdCBhIGJp dCIsCit7CisJUGRWID0gZjhCSVRTT0YoKFJzViAmICgxPDx1aVYpKSAhPSAwKTsKK30pCisKK1E2 SU5TTihTNF9udHN0Yml0X2ksIlBkND0hdHN0Yml0KFJzMzIsI3U1KSIsCitBVFRSSUJTKCksICJU ZXN0IGEgYml0IiwKK3sKKwlQZFYgPSBmOEJJVFNPRigoUnNWICYgKDE8PHVpVikpID09IDApOwor fSkKKworUTZJTlNOKFMyX3NldGJpdF9pLCJSZDMyPXNldGJpdChSczMyLCN1NSkiLAorQVRUUklC UygpLCAiU2V0IGEgYml0IiwKK3sKKwlSZFYgPSAoUnNWIHwgKDE8PHVpVikpOworfSkKKworUTZJ TlNOKFMyX3RvZ2dsZWJpdF9pLCJSZDMyPXRvZ2dsZWJpdChSczMyLCN1NSkiLAorQVRUUklCUygp LCAiVG9nZ2xlIGEgYml0IiwKK3sKKwlSZFYgPSAoUnNWIF4gKDE8PHVpVikpOworfSkKKworUTZJ TlNOKFMyX2NscmJpdF9pLCJSZDMyPWNscmJpdChSczMyLCN1NSkiLAorQVRUUklCUygpLCAiQ2xl YXIgYSBiaXQiLAoreworCVJkViA9IChSc1YgJiAofigxPDx1aVYpKSk7Cit9KQorCisKKworLyog dXNpbmcgYSByZWdpc3RlciAqLworUTZJTlNOKFMyX3RzdGJpdF9yLCJQZDQ9dHN0Yml0KFJzMzIs UnQzMikiLAorQVRUUklCUygpLCAiVGVzdCBhIGJpdCIsCit7CisJUGRWID0gZjhCSVRTT0YoKGZD QVNUNF84dShSc1YpICYgZkJJRElSX0xTSElGVEwoMSxmU1hUTig3LDMyLFJ0ViksNF84KSkgIT0g MCk7Cit9KQorCitRNklOU04oUzRfbnRzdGJpdF9yLCJQZDQ9IXRzdGJpdChSczMyLFJ0MzIpIiwK K0FUVFJJQlMoKSwgIlRlc3QgYSBiaXQiLAoreworCVBkViA9IGY4QklUU09GKChmQ0FTVDRfOHUo UnNWKSAmIGZCSURJUl9MU0hJRlRMKDEsZlNYVE4oNywzMixSdFYpLDRfOCkpID09IDApOworfSkK KworUTZJTlNOKFMyX3NldGJpdF9yLCJSZDMyPXNldGJpdChSczMyLFJ0MzIpIiwKK0FUVFJJQlMo KSwgIlNldCBhIGJpdCIsCit7CisJUmRWID0gKFJzViB8IGZCSURJUl9MU0hJRlRMKDEsZlNYVE4o NywzMixSdFYpLDRfOCkpOworfSkKKworUTZJTlNOKFMyX3RvZ2dsZWJpdF9yLCJSZDMyPXRvZ2ds ZWJpdChSczMyLFJ0MzIpIiwKK0FUVFJJQlMoKSwgIlRvZ2dsZSBhIGJpdCIsCit7CisJUmRWID0g KFJzViBeIGZCSURJUl9MU0hJRlRMKDEsZlNYVE4oNywzMixSdFYpLDRfOCkpOworfSkKKworUTZJ TlNOKFMyX2NscmJpdF9yLCJSZDMyPWNscmJpdChSczMyLFJ0MzIpIiwKK0FUVFJJQlMoKSwgIkNs ZWFyIGEgYml0IiwKK3sKKwlSZFYgPSAoUnNWICYgKH4oZkJJRElSX0xTSElGVEwoMSxmU1hUTig3 LDMyLFJ0ViksNF84KSkpKTsKK30pCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCisvKiB2ZWN0b3Igc2hpZnRpbmcgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKi8KKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqLworCisvKiBIYWxmIFZlY3RvciBJbW1lZGlhdGUgU2hpZnRzICovCisKK1E2SU5TTihTMl9h c3JfaV92aCwiUmRkMzI9dmFzcmgoUnNzMzIsI3U0KSIsQVRUUklCUygpLAorCSJWZWN0b3IgQXJp dGhtZXRpYyBTaGlmdCBSaWdodCBieSBJbW1lZGlhdGUiLAoreworICAgICAgICBmSElERShpbnQg aTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKwkgIGZTRVRIQUxGKGksUmRkViwgKGZH RVRIQUxGKGksUnNzVik+PnVpVikpOworICAgICAgICB9Cit9KQorCisKK1E2SU5TTihTMl9sc3Jf aV92aCwiUmRkMzI9dmxzcmgoUnNzMzIsI3U0KSIsQVRUUklCUygpLAorCSJWZWN0b3IgTG9naWNh bCBTaGlmdCBSaWdodCBieSBJbW1lZGlhdGUiLAoreworICAgICAgICBmSElERShpbnQgaTspCisg ICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKwkgIGZTRVRIQUxGKGksUmRkViwgKGZHRVRVSEFM RihpLFJzc1YpPj51aVYpKTsKKyAgICAgICAgfQorfSkKKworUTZJTlNOKFMyX2FzbF9pX3ZoLCJS ZGQzMj12YXNsaChSc3MzMiwjdTQpIixBVFRSSUJTKCksCisJIlZlY3RvciBBcml0aG1ldGljIFNo aWZ0IExlZnQgYnkgSW1tZWRpYXRlIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAg ICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisJICBmU0VUSEFMRihpLFJkZFYsIChmR0VUSEFMRihpLFJz c1YpPDx1aVYpKTsKKyAgICAgICAgfQorfSkKKworLyogSGFsZiBWZWN0b3IgUmVnaXN0ZXIgU2hp ZnRzICovCisKK1E2SU5TTihTMl9hc3Jfcl92aCwiUmRkMzI9dmFzcmgoUnNzMzIsUnQzMikiLEFU VFJJQlMoKSwKKwkiVmVjdG9yIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgYnkgUmVnaXN0ZXIiLAor eworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKwkg IGZTRVRIQUxGKGksUmRkViwgZkJJRElSX0FTSElGVFIoZkdFVEhBTEYoaSxSc3NWKSxmU1hUTig3 LDMyLFJ0ViksMl84KSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihTNV9hc3JodWJfcm5kX3Nh dCwiUmQzMj12YXNyaHViKFJzczMyLCN1NCk6cmF3IiwsCisJIlZlY3RvciBBcml0aG1ldGljIFNo aWZ0IFJpZ2h0IGJ5IEltbWVkaWF0ZSB3aXRoIFJvdW5kLCBTYXR1cmF0ZSwgYW5kIFBhY2siLAor eworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKwkJ CWZTRVRCWVRFKGksUmRWLCBmU0FUVUIoICgoZkdFVEhBTEYoaSxSc3NWKSA+PiB1aVYgKSsxKT4+ MSAgKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihTNV9hc3JodWJfc2F0LCJSZDMyPXZhc3Jo dWIoUnNzMzIsI3U0KTpzYXQiLCwKKwkiVmVjdG9yIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgYnkg SW1tZWRpYXRlIHdpdGggU2F0dXJhdGUgYW5kIFBhY2siLAoreworICAgICAgICBmSElERShpbnQg aTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKwkJCWZTRVRCWVRFKGksUmRWLCBmU0FU VUIoIGZHRVRIQUxGKGksUnNzVikgPj4gdWlWICkpOworICAgICAgICB9Cit9KQorCisKKworUTZJ TlNOKFM1X3Zhc3Jocm5kLCJSZGQzMj12YXNyaChSc3MzMiwjdTQpOnJhdyIsLAorCSJWZWN0b3Ig QXJpdGhtZXRpYyBTaGlmdCBSaWdodCBieSBJbW1lZGlhdGUgd2l0aCBSb3VuZCIsCit7CisgICAg ICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTw0O2krKykgeworCQkJZlNFVEhB TEYoaSxSZGRWLCAoICgoZkdFVEhBTEYoaSxSc3NWKSA+PiB1aVYpKzEpPj4xICApKTsKKyAgICAg ICAgfQorfSkKKworCitRNklOU04oUzJfYXNsX3JfdmgsIlJkZDMyPXZhc2xoKFJzczMyLFJ0MzIp IixBVFRSSUJTKCksCisJIlZlY3RvciBBcml0aG1ldGljIFNoaWZ0IExlZnQgYnkgUmVnaXN0ZXIi LAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsK KwkgIGZTRVRIQUxGKGksUmRkViwgZkJJRElSX0FTSElGVEwoZkdFVEhBTEYoaSxSc3NWKSxmU1hU Tig3LDMyLFJ0ViksMl84KSk7CisgICAgICAgIH0KK30pCisKKworCitRNklOU04oUzJfbHNyX3Jf dmgsIlJkZDMyPXZsc3JoKFJzczMyLFJ0MzIpIixBVFRSSUJTKCksCisJIlZlY3RvciBMb2dpY2Fs IFNoaWZ0IFJpZ2h0IGJ5IFJlZ2lzdGVyIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAg ICAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisJICBmU0VUSEFMRihpLFJkZFYsIGZCSURJUl9MU0hJ RlRSKGZHRVRVSEFMRihpLFJzc1YpLGZTWFROKDcsMzIsUnRWKSwyXzgpKTsKKyAgICAgICAgfQor fSkKKworCitRNklOU04oUzJfbHNsX3JfdmgsIlJkZDMyPXZsc2xoKFJzczMyLFJ0MzIpIixBVFRS SUJTKCksCisJIlZlY3RvciBMb2dpY2FsIFNoaWZ0IExlZnQgYnkgUmVnaXN0ZXIiLAoreworICAg ICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKwkgIGZTRVRI QUxGKGksUmRkViwgZkJJRElSX0xTSElGVEwoZkdFVFVIQUxGKGksUnNzViksZlNYVE4oNywzMixS dFYpLDJfOCkpOworICAgICAgICB9Cit9KQorCisKKworCisvKiBXb3JkIFZlY3RvciBJbW1lZGlh dGUgU2hpZnRzICovCisKK1E2SU5TTihTMl9hc3JfaV92dywiUmRkMzI9dmFzcncoUnNzMzIsI3U1 KSIsQVRUUklCUygpLAorCSJWZWN0b3IgQXJpdGhtZXRpYyBTaGlmdCBSaWdodCBieSBJbW1lZGlh dGUiLAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8MjtpKysp IHsKKwkgIGZTRVRXT1JEKGksUmRkViwoZkdFVFdPUkQoaSxSc3NWKT4+dWlWKSk7CisgICAgICAg IH0KK30pCisKKworCitRNklOU04oUzJfYXNyX2lfc3Z3X3RydW4sIlJkMzI9dmFzcncoUnNzMzIs I3U1KSIsQVRUUklCUyhBX0FSQ0hWMiksCisJIlZlY3RvciBBcml0aG1ldGljIFNoaWZ0IFJpZ2h0 IGJ5IEltbWVkaWF0ZSB3aXRoIFRydW5jYXRlIGFuZCBQYWNrIiwKK3sKKyAgICAgICAgZkhJREUo aW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VUSEFMRihpLFJkVixm R0VUSEFMRigwLChmR0VUV09SRChpLFJzc1YpPj51aVYpKSk7CisgICAgICAgIH0KK30pCisKK1E2 SU5TTihTMl9hc3Jfcl9zdndfdHJ1biwiUmQzMj12YXNydyhSc3MzMixSdDMyKSIsQVRUUklCUyhB X0FSQ0hWMiksCisJIlZlY3RvciBBcml0aG1ldGljIFNoaWZ0IFJpZ2h0IHRydW5jYXRlIGFuZCBQ YWNrIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsr KSB7CisgCSAgZlNFVEhBTEYoaSxSZFYsZkdFVEhBTEYoMCxmQklESVJfQVNISUZUUihmR0VUV09S RChpLFJzc1YpLGZTWFROKDcsMzIsUnRWKSw0XzgpKSk7CisgICAgICAgIH0KK30pCisKKworUTZJ TlNOKFMyX2xzcl9pX3Z3LCJSZGQzMj12bHNydyhSc3MzMiwjdTUpIixBVFRSSUJTKCksCisJIlZl Y3RvciBMb2dpY2FsIFNoaWZ0IFJpZ2h0IGJ5IEltbWVkaWF0ZSIsCit7CisgICAgICAgIGZISURF KGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTwyO2krKykgeworCSAgZlNFVFdPUkQoaSxSZGRW LChmR0VUVVdPUkQoaSxSc3NWKT4+dWlWKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihTMl9h c2xfaV92dywiUmRkMzI9dmFzbHcoUnNzMzIsI3U1KSIsQVRUUklCUygpLAorCSJWZWN0b3IgQXJp dGhtZXRpYyBTaGlmdCBMZWZ0IGJ5IEltbWVkaWF0ZSIsCit7CisgICAgICAgIGZISURFKGludCBp OykKKyAgICAgICAgZm9yIChpPTA7aTwyO2krKykgeworCSAgZlNFVFdPUkQoaSxSZGRWLChmR0VU V09SRChpLFJzc1YpPDx1aVYpKTsKKyAgICAgICAgfQorfSkKKworLyogV29yZCBWZWN0b3IgUmVn aXN0ZXIgU2hpZnRzICovCisKK1E2SU5TTihTMl9hc3Jfcl92dywiUmRkMzI9dmFzcncoUnNzMzIs UnQzMikiLEFUVFJJQlMoKSwKKwkiVmVjdG9yIEFyaXRobWV0aWMgU2hpZnQgUmlnaHQgYnkgUmVn aXN0ZXIiLAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8Mjtp KyspIHsKKyAJICBmU0VUV09SRChpLFJkZFYsIGZCSURJUl9BU0hJRlRSKGZHRVRXT1JEKGksUnNz ViksZlNYVE4oNywzMixSdFYpLDRfOCkpOworICAgICAgICB9Cit9KQorCisKKworUTZJTlNOKFMy X2FzbF9yX3Z3LCJSZGQzMj12YXNsdyhSc3MzMixSdDMyKSIsQVRUUklCUygpLAorCSJWZWN0b3Ig QXJpdGhtZXRpYyBTaGlmdCBMZWZ0IGJ5IFJlZ2lzdGVyIiwKK3sKKyAgICAgICAgZkhJREUoaW50 IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgCSAgZlNFVFdPUkQoaSxSZGRWLCBm QklESVJfQVNISUZUTChmR0VUV09SRChpLFJzc1YpLGZTWFROKDcsMzIsUnRWKSw0XzgpKTsKKyAg ICAgICAgfQorfSkKKworCitRNklOU04oUzJfbHNyX3JfdncsIlJkZDMyPXZsc3J3KFJzczMyLFJ0 MzIpIixBVFRSSUJTKCksCisJIlZlY3RvciBMb2dpY2FsIFNoaWZ0IFJpZ2h0IGJ5IFJlZ2lzdGVy IiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7 CisgCSAgZlNFVFdPUkQoaSxSZGRWLCBmQklESVJfTFNISUZUUihmR0VUVVdPUkQoaSxSc3NWKSxm U1hUTig3LDMyLFJ0ViksNF84KSk7CisgICAgICAgIH0KK30pCisKKworCitRNklOU04oUzJfbHNs X3JfdncsIlJkZDMyPXZsc2x3KFJzczMyLFJ0MzIpIixBVFRSSUJTKCksCisJIlZlY3RvciBMb2dp Y2FsIFNoaWZ0IExlZnQgYnkgUmVnaXN0ZXIiLAoreworICAgICAgICBmSElERShpbnQgaTspCisg ICAgICAgIGZvciAoaT0wO2k8MjtpKyspIHsKKyAJICBmU0VUV09SRChpLFJkZFYsIGZCSURJUl9M U0hJRlRMKGZHRVRVV09SRChpLFJzc1YpLGZTWFROKDcsMzIsUnRWKSw0XzgpKTsKKyAgICAgICAg fQorfSkKKworCisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KKy8qIFZlY3RvciBTWFQvWlhUL1NBVC9UUlVOL1JORFBBQ0sgICAgICAgICAgICAq LworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKwor UTZJTlNOKFMyX3ZybmRwYWNrd2gsIlJkMzI9dnJuZHdoKFJzczMyKSIsQVRUUklCUygpLAorIlJv dW5kIGFuZCBQYWNrIHZlY3RvciBvZiB3b3JkcyB0byBIYWxmd29yZHMiLAoreworICAgICAgICBm SElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8MjtpKyspIHsKKwkgIGZTRVRIQUxGKGks UmRWLGZHRVRIQUxGKDEsKGZHRVRXT1JEKGksUnNzVikrMHgwODAwMCkpKTsKKyAgICAgICAgfQor fSkKKworUTZJTlNOKFMyX3ZybmRwYWNrd2hzLCJSZDMyPXZybmR3aChSc3MzMik6c2F0IixBVFRS SUJTKCksCisiUm91bmQgYW5kIFBhY2sgdmVjdG9yIG9mIHdvcmRzIHRvIEhhbGZ3b3JkcyIsCit7 CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTwyO2krKykgeworCSAg ZlNFVEhBTEYoaSxSZFYsZkdFVEhBTEYoMSxmU0FUKGZHRVRXT1JEKGksUnNzVikrMHgwODAwMCkp KTsKKyAgICAgICAgfQorfSkKKworUTZJTlNOKFMyX3ZzeHRiaCwiUmRkMzI9dnN4dGJoKFJzMzIp IixBVFRSSUJTKEFfQVJDSFYyKSwKKyJWZWN0b3Igc2lnbiBleHRlbmQgYnl0ZSB0byBoYWxmIiwK K3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7Cisg IAkgIGZTRVRIQUxGKGksUmRkVixmR0VUQllURShpLFJzVikpOworICAgICAgICB9Cit9KQorCitR NklOU04oUzJfdnp4dGJoLCJSZGQzMj12enh0YmgoUnMzMikiLEFUVFJJQlMoKSwKKyJWZWN0b3Ig emVybyBleHRlbmQgYnl0ZSB0byBoYWxmIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAg ICAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgIAkgIGZTRVRIQUxGKGksUmRkVixmR0VUVUJZVEUo aSxSc1YpKTsKKyAgICAgICAgfQorfSkKKworUTZJTlNOKFMyX3ZzYXRodWIsIlJkMzI9dnNhdGh1 YihSc3MzMikiLEFUVFJJQlMoKSwKKyJWZWN0b3Igc2F0dXJhdGUgaGFsZiB0byB1bnNpZ25lZCBi eXRlIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDQ7aSsr KSB7CisgIAkgIGZTRVRCWVRFKGksUmRWLGZTQVRVTig4LGZHRVRIQUxGKGksUnNzVikpKTsKKyAg ICAgICAgfQorfSkKKworCisKKworCitRNklOU04oUzJfc3ZzYXRodWIsIlJkMzI9dnNhdGh1YihS czMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiVmVjdG9yIHNhdHVyYXRlIGhhbGYgdG8gdW5zaWdu ZWQgYnl0ZSIsCit7CisJZlNFVEJZVEUoMCxSZFYsZlNBVFVOKDgsZkdFVEhBTEYoMCxSc1YpKSk7 CisgIAlmU0VUQllURSgxLFJkVixmU0FUVU4oOCxmR0VUSEFMRigxLFJzVikpKTsKKyAgCWZTRVRC WVRFKDIsUmRWLDApOworICAJZlNFVEJZVEUoMyxSZFYsMCk7Cit9KQorCitRNklOU04oUzJfc3Zz YXRoYiwiUmQzMj12c2F0aGIoUnMzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIlZlY3RvciBzYXR1 cmF0ZSBoYWxmIHRvIHNpZ25lZCBieXRlIiwKK3sKKwlmU0VUQllURSgwLFJkVixmU0FUTig4LGZH RVRIQUxGKDAsUnNWKSkpOworICAJZlNFVEJZVEUoMSxSZFYsZlNBVE4oOCxmR0VUSEFMRigxLFJz VikpKTsKKyAgCWZTRVRCWVRFKDIsUmRWLDApOworICAJZlNFVEJZVEUoMyxSZFYsMCk7Cit9KQor CisKK1E2SU5TTihTMl92c2F0aGIsIlJkMzI9dnNhdGhiKFJzczMyKSIsQVRUUklCUyhBX0FSQ0hW MiksCisiVmVjdG9yIHNhdHVyYXRlIGhhbGYgdG8gc2lnbmVkIGJ5dGUiLAoreworICAgICAgICBm SElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgCSAgZlNFVEJZVEUo aSxSZFYsZlNBVE4oOCxmR0VUSEFMRihpLFJzc1YpKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5T TihTMl92dHJ1bm9oYiwiUmQzMj12dHJ1bm9oYihSc3MzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAor IlZlY3RvciB0cnVuY2F0ZSBoYWxmIHRvIGJ5dGU6IHRha2UgaGlnaCIsCit7CisgICAgICAgIGZI SURFKGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTw0O2krKykgeworICAJICBmU0VUQllURShp LFJkVixmR0VUQllURShpKjIrMSxSc3NWKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihTMl92 dHJ1bmV3aCwiUmRkMzI9dnRydW5ld2goUnNzMzIsUnR0MzIpIixBVFRSSUJTKEFfQVJDSFYyKSwK KyJWZWN0b3IgdHJ1bmNhdGUgd29yZCB0byBoYWxmOiB0YWtlIGxvdyIsCit7CisJZlNFVEhBTEYo MCxSZGRWLGZHRVRIQUxGKDAsUnR0VikpOworCWZTRVRIQUxGKDEsUmRkVixmR0VUSEFMRigyLFJ0 dFYpKTsKKwlmU0VUSEFMRigyLFJkZFYsZkdFVEhBTEYoMCxSc3NWKSk7CisJZlNFVEhBTEYoMyxS ZGRWLGZHRVRIQUxGKDIsUnNzVikpOworfSkKKworUTZJTlNOKFMyX3Z0cnVub3doLCJSZGQzMj12 dHJ1bm93aChSc3MzMixSdHQzMikiLEFUVFJJQlMoQV9BUkNIVjIpLAorIlZlY3RvciB0cnVuY2F0 ZSB3b3JkIHRvIGhhbGY6IHRha2UgaGlnaCIsCit7CisJZlNFVEhBTEYoMCxSZGRWLGZHRVRIQUxG KDEsUnR0VikpOworCWZTRVRIQUxGKDEsUmRkVixmR0VUSEFMRigzLFJ0dFYpKTsKKwlmU0VUSEFM RigyLFJkZFYsZkdFVEhBTEYoMSxSc3NWKSk7CisJZlNFVEhBTEYoMyxSZGRWLGZHRVRIQUxGKDMs UnNzVikpOworfSkKKworCitRNklOU04oUzJfdnRydW5laGIsIlJkMzI9dnRydW5laGIoUnNzMzIp IixBVFRSSUJTKCksCisiVmVjdG9yIHRydW5jYXRlIGhhbGYgdG8gYnl0ZTogdGFrZSBsb3ciLAor eworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAg CSAgZlNFVEJZVEUoaSxSZFYsZkdFVEJZVEUoaSoyLFJzc1YpKTsKKyAgICAgICAgfQorfSkKKwor UTZJTlNOKFM2X3Z0cnVuZWhiX3BwcCwiUmRkMzI9dnRydW5laGIoUnNzMzIsUnR0MzIpIixBVFRS SUJTKCksCisiVmVjdG9yIHRydW5jYXRlIGhhbGYgdG8gYnl0ZTogdGFrZSBsb3ciLAoreworICAg ICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAoaT0wO2k8NDtpKyspIHsKKyAgCSAgCQlm U0VUQllURShpLFJkZFYsZkdFVEJZVEUoaSoyLFJ0dFYpKTsKKwkJCWZTRVRCWVRFKGkrNCxSZGRW LGZHRVRCWVRFKGkqMixSc3NWKSk7CisgICAgICAgIH0KK30pCisKK1E2SU5TTihTNl92dHJ1bm9o Yl9wcHAsIlJkZDMyPXZ0cnVub2hiKFJzczMyLFJ0dDMyKSIsQVRUUklCUygpLAorIlZlY3RvciB0 cnVuY2F0ZSBoYWxmIHRvIGJ5dGU6IHRha2UgaGlnaCIsCit7CisgICAgICAgIGZISURFKGludCBp OykKKyAgICAgICAgZm9yIChpPTA7aTw0O2krKykgeworICAJICAJCWZTRVRCWVRFKGksUmRkVixm R0VUQllURShpKjIrMSxSdHRWKSk7CisgIAkgIAkJZlNFVEJZVEUoaSs0LFJkZFYsZkdFVEJZVEUo aSoyKzEsUnNzVikpOworICAgICAgICB9Cit9KQorCitRNklOU04oUzJfdnN4dGh3LCJSZGQzMj12 c3h0aHcoUnMzMikiLEFUVFJJQlMoKSwKKyJWZWN0b3Igc2lnbiBleHRlbmQgaGFsZiB0byB3b3Jk IiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7 CisgIAkgIGZTRVRXT1JEKGksUmRkVixmR0VUSEFMRihpLFJzVikpOworICAgICAgICB9Cit9KQor CitRNklOU04oUzJfdnp4dGh3LCJSZGQzMj12enh0aHcoUnMzMikiLEFUVFJJQlMoKSwKKyJWZWN0 b3IgemVybyBleHRlbmQgaGFsZiB0byB3b3JkIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQor ICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisgIAkgIGZTRVRXT1JEKGksUmRkVixmR0VUVUhB TEYoaSxSc1YpKTsKKyAgICAgICAgfQorfSkKKworCitRNklOU04oUzJfdnNhdHdoLCJSZDMyPXZz YXR3aChSc3MzMikiLEFUVFJJQlMoKSwKKyJWZWN0b3Igc2F0dXJhdGUgd29yZCB0byBzaWduZWQg aGFsZiIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTwyO2kr KykgeworICAJICBmU0VUSEFMRihpLFJkVixmU0FUTigxNixmR0VUV09SRChpLFJzc1YpKSk7Cisg ICAgICAgIH0KK30pCisKK1E2SU5TTihTMl92c2F0d3VoLCJSZDMyPXZzYXR3dWgoUnNzMzIpIixB VFRSSUJTKCksCisiVmVjdG9yIHNhdHVyYXRlIHdvcmQgdG8gdW5zaWduZWQgaGFsZiIsCit7Cisg ICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChpPTA7aTwyO2krKykgeworICAJICBm U0VUSEFMRihpLFJkVixmU0FUVU4oMTYsZkdFVFdPUkQoaSxSc3NWKSkpOworICAgICAgICB9Cit9 KQorCisvKiBPdGhlciBtaXNjIGluc25zIG9mIHRoaXMgdHlwZSAqLworCitRNklOU04oUzJfcGFj a2hsLCJSZGQzMj1wYWNraGwoUnMzMixSdDMyKSIsQVRUUklCUygpLAorIlBhY2sgaGlnaCBoYWxm d29yZHMgYW5kIGxvdyBoYWxmd29yZHMgdG9nZXRoZXIiLAoreworICAgIGZTRVRIQUxGKDAsUmRk VixmR0VUSEFMRigwLFJ0VikpOworICAgIGZTRVRIQUxGKDEsUmRkVixmR0VUSEFMRigwLFJzVikp OworICAgIGZTRVRIQUxGKDIsUmRkVixmR0VUSEFMRigxLFJ0VikpOworICAgIGZTRVRIQUxGKDMs UmRkVixmR0VUSEFMRigxLFJzVikpOworfSkKKworUTZJTlNOKEEyX3N3aXosIlJkMzI9c3dpeihS czMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiRW5kaWFuIHN3YXAgdGhlIGJ5dGVzIG9mIFJzIiwK K3sKKyAgICBmU0VUQllURSgwLFJkVixmR0VUQllURSgzLFJzVikpOworICAgIGZTRVRCWVRFKDEs UmRWLGZHRVRCWVRFKDIsUnNWKSk7CisgICAgZlNFVEJZVEUoMixSZFYsZkdFVEJZVEUoMSxSc1Yp KTsKKyAgICBmU0VUQllURSgzLFJkVixmR0VUQllURSgwLFJzVikpOworfSkKKworCisKKy8qIFZl Y3RvciBTYXQgd2l0aG91dCBQYWNraW5nICovCitRNklOU04oUzJfdnNhdGh1Yl9ub3BhY2ssIlJk ZDMyPXZzYXRodWIoUnNzMzIpIixBVFRSSUJTKCksCisiVmVjdG9yIHNhdHVyYXRlIGhhbGYgdG8g dW5zaWduZWQgYnl0ZSIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9yIChp PTA7aTw0O2krKykgeworICAJICBmU0VUSEFMRihpLFJkZFYsZlNBVFVOKDgsZkdFVEhBTEYoaSxS c3NWKSkpOworICAgICAgICB9Cit9KQorCitRNklOU04oUzJfdnNhdGhiX25vcGFjaywiUmRkMzI9 dnNhdGhiKFJzczMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiVmVjdG9yIHNhdHVyYXRlIGhhbGYg dG8gc2lnbmVkIGJ5dGUgd2l0aG91dCBwYWNrIiwKK3sKKyAgICAgICAgZkhJREUoaW50IGk7KQor ICAgICAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisgIAkgIGZTRVRIQUxGKGksUmRkVixmU0FUTig4 LGZHRVRIQUxGKGksUnNzVikpKTsKKyAgICAgICAgfQorfSkKKworUTZJTlNOKFMyX3ZzYXR3aF9u b3BhY2ssIlJkZDMyPXZzYXR3aChSc3MzMikiLEFUVFJJQlMoKSwKKyJWZWN0b3Igc2F0dXJhdGUg d29yZCB0byBzaWduZWQgaGFsZiIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAg Zm9yIChpPTA7aTwyO2krKykgeworICAJICBmU0VUV09SRChpLFJkZFYsZlNBVE4oMTYsZkdFVFdP UkQoaSxSc3NWKSkpOworICAgICAgICB9Cit9KQorCitRNklOU04oUzJfdnNhdHd1aF9ub3BhY2ss IlJkZDMyPXZzYXR3dWgoUnNzMzIpIixBVFRSSUJTKCksCisiVmVjdG9yIHNhdHVyYXRlIHdvcmQg dG8gdW5zaWduZWQgaGFsZiIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9y IChpPTA7aTwyO2krKykgeworICAJICBmU0VUV09SRChpLFJkZFYsZlNBVFVOKDE2LGZHRVRXT1JE KGksUnNzVikpKTsKKyAgICAgICAgfQorfSkKKworCisvKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKi8KKy8qIFNodWZmbGUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCisKKworUTZJTlNOKFMyX3NodWZmb2IsIlJkZDMyPXNodWZmb2IoUnR0MzIsUnNz MzIpIixBVFRSSUJTKCksCisiU2h1ZmZsZSBoaWdoIGJ5dGVzIHRvZ2V0aGVyIiwKK3sKKyAgICAg ICAgZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDQ7aSsrKSB7CisJICBmU0VUQllU RShpKjIgICxSZGRWLGZHRVRCWVRFKGkqMisxLFJzc1YpKTsKKwkgIGZTRVRCWVRFKGkqMisxLFJk ZFYsZkdFVEJZVEUoaSoyKzEsUnR0VikpOworICAgICAgICB9Cit9KQorCitRNklOU04oUzJfc2h1 ZmZlYiwiUmRkMzI9c2h1ZmZlYihSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJTaHVmZmxlIGxv dyBieXRlcyB0b2dldGhlciIsCit7CisgICAgICAgIGZISURFKGludCBpOykKKyAgICAgICAgZm9y IChpPTA7aTw0O2krKykgeworCSAgZlNFVEJZVEUoaSoyICAsUmRkVixmR0VUQllURShpKjIsUnR0 VikpOworCSAgZlNFVEJZVEUoaSoyKzEsUmRkVixmR0VUQllURShpKjIsUnNzVikpOworICAgICAg ICB9Cit9KQorCitRNklOU04oUzJfc2h1ZmZvaCwiUmRkMzI9c2h1ZmZvaChSdHQzMixSc3MzMiki LEFUVFJJQlMoKSwKKyJTaHVmZmxlIGhpZ2ggaGFsdmVzIHRvZ2V0aGVyIiwKK3sKKyAgICAgICAg ZkhJREUoaW50IGk7KQorICAgICAgICBmb3IgKGk9MDtpPDI7aSsrKSB7CisJICBmU0VUSEFMRihp KjIgICxSZGRWLGZHRVRIQUxGKGkqMisxLFJzc1YpKTsKKwkgIGZTRVRIQUxGKGkqMisxLFJkZFYs ZkdFVEhBTEYoaSoyKzEsUnR0VikpOworICAgICAgICB9Cit9KQorCitRNklOU04oUzJfc2h1ZmZl aCwiUmRkMzI9c2h1ZmZlaChSc3MzMixSdHQzMikiLEFUVFJJQlMoKSwKKyJTaHVmZmxlIGxvdyBo YWx2ZXMgdG9nZXRoZXIiLAoreworICAgICAgICBmSElERShpbnQgaTspCisgICAgICAgIGZvciAo aT0wO2k8MjtpKyspIHsKKwkgIGZTRVRIQUxGKGkqMiAgLFJkZFYsZkdFVEhBTEYoaSoyLFJ0dFYp KTsKKwkgIGZTRVRIQUxGKGkqMisxLFJkZFYsZkdFVEhBTEYoaSoyLFJzc1YpKTsKKyAgICAgICAg fQorfSkKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq Ki8KKy8qIFN0cmFuZ2UgYml0IGluc3RydWN0aW9ucyAgICAgICAgICAgICAgICAgICAqLworLyoq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5TTihT NV9wb3Bjb3VudHAsIlJkMzI9cG9wY291bnQoUnNzMzIpIixBVFRSSUJTKCksCisiUG9wdWxhdGlv biBDb3VudCIsIHsgUmRWID0gZkNPVU5UT05FU184KFJzc1YpOyB9KQorCitRNklOU04oUzRfcGFy aXR5LCJSZDMyPXBhcml0eShSczMyLFJ0MzIpIiwsCisiUGFyaXR5IG9mIE1hc2tlZCBWYWx1ZSIs IHsgUmRWID0gMSZmQ09VTlRPTkVTXzQoUnNWICYgUnRWKTsgfSkKKworUTZJTlNOKFMyX3Bhcml0 eXAsIlJkMzI9cGFyaXR5KFJzczMyLFJ0dDMyKSIsQVRUUklCUyhBX0FSQ0hWMiksCisiUGFyaXR5 IG9mIE1hc2tlZCBWYWx1ZSIsIHsgUmRWID0gMSZmQ09VTlRPTkVTXzgoUnNzViAmIFJ0dFYpOyB9 KQorCitRNklOU04oUzJfbGZzcCwiUmRkMzI9bGZzKFJzczMyLFJ0dDMyKSIsQVRUUklCUyhBX0FS Q0hWMiksCisiUGFyaXR5IG9mIE1hc2tlZCBWYWx1ZSIsIHsgUmRkViA9IChmQ0FTVDh1KFJzc1Yp ID4+IDEpIHwgKGZDQVNUOHUoKDEmZkNPVU5UT05FU184KFJzc1YgJiBSdHRWKSkpPDw2MykgOyB9 KQorCitRNklOU04oUzJfY2xibm9ybSwiUmQzMj1ub3JtYW10KFJzMzIpIixBVFRSSUJTKEFfQVJD SFYyKSwKKyJDb3VudCBsZWFkaW5nIHNpZ24gYml0cyAtIDEiLCB7IGlmIChSc1YgPT0gMCkgeyBS ZFYgPSAwOyB9IGVsc2UgeyBSZFYgPSAoZk1BWChmQ0wxXzQoUnNWKSxmQ0wxXzQoflJzVikpKS0x O30gfSkKKworUTZJTlNOKFM0X2NsYmFkZGksIlJkMzI9YWRkKGNsYihSczMyKSwjczYpIixBVFRS SUJTKEFfQVJDSFYyKSwKKyJDb3VudCBsZWFkaW5nIHNpZ24gYml0cyB0aGVuIGFkZCBzaWduZWQg bnVtYmVyIiwKK3sgUmRWID0gKGZNQVgoZkNMMV80KFJzViksZkNMMV80KH5Sc1YpKSkrc2lWO30g KQorCitRNklOU04oUzRfY2xicG5vcm0sIlJkMzI9bm9ybWFtdChSc3MzMikiLEFUVFJJQlMoQV9B UkNIVjIpLAorIkNvdW50IGxlYWRpbmcgc2lnbiBiaXRzIC0gMSIsIHsgaWYgKFJzc1YgPT0gMCkg eyBSZFYgPSAwOyB9CitlbHNlIHsgUmRWID0gKGZNQVgoZkNMMV84KFJzc1YpLGZDTDFfOCh+UnNz VikpKS0xO319KQorCitRNklOU04oUzRfY2xicGFkZGksIlJkMzI9YWRkKGNsYihSc3MzMiksI3M2 KSIsQVRUUklCUyhBX0FSQ0hWMiksCisiQ291bnQgbGVhZGluZyBzaWduIGJpdHMgdGhlbiBhZGQg c2lnbmVkIG51bWJlciIsCit7IFJkViA9IChmTUFYKGZDTDFfOChSc3NWKSxmQ0wxXzgoflJzc1Yp KSkrc2lWO30pCisKKworUTZJTlNOKFMyX2NsYiwiUmQzMj1jbGIoUnMzMikiLEFUVFJJQlMoKSwK KyJDb3VudCBsZWFkaW5nIGJpdHMiLCB7UmRWID0gZk1BWChmQ0wxXzQoUnNWKSxmQ0wxXzQoflJz VikpO30pCisKKworUTZJTlNOKFMyX2NsMCwiUmQzMj1jbDAoUnMzMikiLEFUVFJJQlMoKSwKKyJD b3VudCBsZWFkaW5nIGJpdHMiLCB7UmRWID0gZkNMMV80KH5Sc1YpO30pCisKK1E2SU5TTihTMl9j bDEsIlJkMzI9Y2wxKFJzMzIpIixBVFRSSUJTKCksCisiQ291bnQgbGVhZGluZyBiaXRzIiwge1Jk ViA9IGZDTDFfNChSc1YpO30pCisKK1E2SU5TTihTMl9jbGJwLCJSZDMyPWNsYihSc3MzMikiLEFU VFJJQlMoKSwKKyJDb3VudCBsZWFkaW5nIGJpdHMiLCB7UmRWID0gZk1BWChmQ0wxXzgoUnNzViks ZkNMMV84KH5Sc3NWKSk7fSkKKworUTZJTlNOKFMyX2NsMHAsIlJkMzI9Y2wwKFJzczMyKSIsQVRU UklCUygpLAorIkNvdW50IGxlYWRpbmcgYml0cyIsIHtSZFYgPSBmQ0wxXzgoflJzc1YpO30pCisK K1E2SU5TTihTMl9jbDFwLCJSZDMyPWNsMShSc3MzMikiLEFUVFJJQlMoKSwKKyJDb3VudCBsZWFk aW5nIGJpdHMiLCB7UmRWID0gZkNMMV84KFJzc1YpO30pCisKKworCisKK1E2SU5TTihTMl9icmV2 LAkiUmQzMj1icmV2KFJzMzIpIiwgICBBVFRSSUJTKEFfQVJDSFYyKSwgIkJpdCBSZXZlcnNlIix7 UmRWID0gZkJSRVZfNChSc1YpO30pCitRNklOU04oUzJfYnJldnAsIlJkZDMyPWJyZXYoUnNzMzIp IiwgQVRUUklCUygpLCAiQml0IFJldmVyc2UiLHtSZGRWID0gZkJSRVZfOChSc3NWKTt9KQorUTZJ TlNOKFMyX2N0MCwgICJSZDMyPWN0MChSczMyKSIsICAgIEFUVFJJQlMoQV9BUkNIVjIpLCAiQ291 bnQgVHJhaWxpbmciLHtSZFYgPSBmQ0wxXzQofmZCUkVWXzQoUnNWKSk7fSkKK1E2SU5TTihTMl9j dDEsICAiUmQzMj1jdDEoUnMzMikiLCAgICBBVFRSSUJTKEFfQVJDSFYyKSwgIkNvdW50IFRyYWls aW5nIix7UmRWID0gZkNMMV80KGZCUkVWXzQoUnNWKSk7fSkKK1E2SU5TTihTMl9jdDBwLCAiUmQz Mj1jdDAoUnNzMzIpIiwgICBBVFRSSUJTKCksICJDb3VudCBUcmFpbGluZyIse1JkViA9IGZDTDFf OCh+ZkJSRVZfOChSc3NWKSk7fSkKK1E2SU5TTihTMl9jdDFwLCAiUmQzMj1jdDEoUnNzMzIpIiwg ICBBVFRSSUJTKCksICJDb3VudCBUcmFpbGluZyIse1JkViA9IGZDTDFfOChmQlJFVl84KFJzc1Yp KTt9KQorCisKK1E2SU5TTihTMl9pbnRlcmxlYXZlLCJSZGQzMj1pbnRlcmxlYXZlKFJzczMyKSIs QVRUUklCUyhBX0FSQ0hWMiksIkludGVybGVhdmUgYml0cyIsCit7UmRkViA9IGZJTlRFUkxFQVZF KGZHRVRXT1JEKDEsUnNzViksZkdFVFdPUkQoMCxSc3NWKSk7fSkKKworUTZJTlNOKFMyX2RlaW50 ZXJsZWF2ZSwiUmRkMzI9ZGVpbnRlcmxlYXZlKFJzczMyKSIsQVRUUklCUyhBX0FSQ0hWMiksIklu dGVybGVhdmUgYml0cyIsCit7UmRkViA9IGZERUlOVEVSTEVBVkUoUnNzVik7fSkKKwpkaWZmIC0t Z2l0IGEvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvc3ViaW5zbnMuaWRlZiBiL3RhcmdldC9oZXhh Z29uL2ltcG9ydGVkL3N1Ymluc25zLmlkZWYKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uM2JhYjEyZgotLS0gL2Rldi9udWxsCisrKyBiL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVk L3N1Ymluc25zLmlkZWYKQEAgLTAsMCArMSwxNTIgQEAKKy8qCisgKiAgQ29weXJpZ2h0KGMpIDIw MTktMjAyMCBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy dmVkLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IK KyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIHBy b2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhpcyBwcm9n cmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKwor LyoKKyAqIHN1Yi1pbnN0cnVjdGlvbnMKKyAqLworCisKKworLyoqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworLyogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAq LworLyogICAgICAgICAgICAgICAgICAgICAgIEEtdHlwZSBzdWJpbnNucyAgICAgICAgICAgICAg ICAgICAgICAgICAqLworLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAqLworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCitRNklOU04oU0ExX2FkZGks ICAgICAiUngxNj1hZGQoUngxNiwjczcpIiwgICAgQVRUUklCUyhBX1NVQklOU04pLCJBZGQiLCAg ICAgICAgeyBmSU1NRVhUKHNpVik7IFJ4Vj1SeFYrc2lWO30pCitRNklOU04oU0ExX3RmciwgICAg ICAiUmQxNj1SczE2IiwgICAgICAgICAgICAgQVRUUklCUyhBX1NVQklOU04pLCJUZnIiLCAgICAg ICAgeyBSZFY9UnNWO30pCitRNklOU04oU0ExX3NldGksICAgICAiUmQxNj0jdTYiLCAgICAgICAg ICAgICAgQVRUUklCUyhBX1NVQklOU04pLCJTZXQgaW1tZWQiLCAgeyBmSU1NRVhUKHVpVik7IFJk Vj11aVY7fSkKK1E2SU5TTihTQTFfc2V0aW4xLCAgICJSZDE2PSMtMSIsICAgICAgICAgICAgICBB VFRSSUJTKEFfU1VCSU5TTiksIlNldCB0byAtMSIsICB7IFJkVj0tMTt9KQorUTZJTlNOKFNBMV9j bHJ0bmV3LCAgImlmIChwMC5uZXcpIFJkMTY9IzAiLCAgIEFUVFJJQlMoQV9TVUJJTlNOKSwiY2xl YXIgaWYgdHJ1ZSIsIHsgaWYgKGZMU0JORVcwKSB7UmRWPTA7fSBlbHNlIHtDQU5DRUw7fSB9KQor UTZJTlNOKFNBMV9jbHJmbmV3LCAgImlmICghcDAubmV3KSBSZDE2PSMwIiwgIEFUVFJJQlMoQV9T VUJJTlNOKSwiY2xlYXIgaWYgZmFsc2UiLHsgaWYgKGZMU0JORVcwTk9UKSB7UmRWPTA7fSBlbHNl IHtDQU5DRUw7fSB9KQorUTZJTlNOKFNBMV9jbHJ0LCAgICAgImlmIChwMCkgUmQxNj0jMCIsICAg ICAgIEFUVFJJQlMoQV9TVUJJTlNOKSwiY2xlYXIgaWYgdHJ1ZSIsIHsgaWYgKGZMU0JPTEQoZlJF QURfUDAoKSkpIHtSZFY9MDt9IGVsc2Uge0NBTkNFTDt9IH0pCitRNklOU04oU0ExX2NscmYsICAg ICAiaWYgKCFwMCkgUmQxNj0jMCIsICAgICAgQVRUUklCUyhBX1NVQklOU04pLCJjbGVhciBpZiBm YWxzZSIseyBpZiAoZkxTQk9MRE5PVChmUkVBRF9QMCgpKSkge1JkVj0wO30gZWxzZSB7Q0FOQ0VM O30gfSkKKworUTZJTlNOKFNBMV9hZGRzcCwgICAgIlJkMTY9YWRkKHIyOSwjdTY6MikiLCAgIEFU VFJJQlMoQV9TVUJJTlNOKSwiQWRkIiwgICAgICAgIHsgUmRWPWZSRUFEX1NQKCkrdWlWOyB9KQor UTZJTlNOKFNBMV9pbmMsICAgICAgIlJkMTY9YWRkKFJzMTYsIzEpIiwgICAgIEFUVFJJQlMoQV9T VUJJTlNOKSwiSW5jIiwgICAgICAgIHsgUmRWPVJzVisxO30pCitRNklOU04oU0ExX2RlYywgICAg ICAiUmQxNj1hZGQoUnMxNiwjLTEpIiwgICAgQVRUUklCUyhBX1NVQklOU04pLCJEZWMiLCAgICAg ICAgeyBSZFY9UnNWLTE7fSkKK1E2SU5TTihTQTFfYWRkcngsICAgICJSeDE2PWFkZChSeDE2LFJz MTYpIiwgICBBVFRSSUJTKEFfU1VCSU5TTiksIkFkZCIsICAgICAgICB7IFJ4Vj1SeFYrUnNWOyB9 KQorUTZJTlNOKFNBMV96eHRiLCAgICAgIlJkMTY9YW5kKFJzMTYsIzI1NSkiLCAgIEFUVFJJQlMo QV9TVUJJTlNOKSwiWnh0YiIsICAgICAgIHsgUmRWPSBmWlhUTig4LDMyLFJzVik7fSkKK1E2SU5T TihTQTFfYW5kMSwgICAgICJSZDE2PWFuZChSczE2LCMxKSIsICAgICBBVFRSSUJTKEFfU1VCSU5T TiksIkFuZCAjMSIsICAgICB7IFJkVj0gUnNWJjE7fSkKK1E2SU5TTihTQTFfc3h0YiwgICAgICJS ZDE2PXN4dGIoUnMxNikiLCAgICAgICBBVFRSSUJTKEFfU1VCSU5TTiksIlN4dGIiLCAgICAgICB7 IFJkVj0gZlNYVE4oOCwzMixSc1YpO30pCitRNklOU04oU0ExX3p4dGgsICAgICAiUmQxNj16eHRo KFJzMTYpIiwgICAgICAgQVRUUklCUyhBX1NVQklOU04pLCJaeHRoIiwgICAgICAgeyBSZFY9IGZa WFROKDE2LDMyLFJzVik7fSkKK1E2SU5TTihTQTFfc3h0aCwgICAgICJSZDE2PXN4dGgoUnMxNiki LCAgICAgICBBVFRSSUJTKEFfU1VCSU5TTiksIlN4dGgiLCAgICAgICB7IFJkVj0gZlNYVE4oMTYs MzIsUnNWKTt9KQorUTZJTlNOKFNBMV9jb21iaW5lenIsIlJkZDg9Y29tYmluZSgjMCxSczE2KSIs IEFUVFJJQlMoQV9TVUJJTlNOKSwiQ29tYmluZXMiLCAgIHsgZlNFVFdPUkQoMCxSZGRWLFJzVik7 IGZTRVRXT1JEKDEsUmRkViwwKTsgfSkKK1E2SU5TTihTQTFfY29tYmluZXJ6LCJSZGQ4PWNvbWJp bmUoUnMxNiwjMCkiLCBBVFRSSUJTKEFfU1VCSU5TTiksIkNvbWJpbmVzIiwgICB7IGZTRVRXT1JE KDAsUmRkViwwKTsgZlNFVFdPUkQoMSxSZGRWLFJzVik7IH0pCitRNklOU04oU0ExX2NvbWJpbmUw aSwiUmRkOD1jb21iaW5lKCMwLCN1MikiLCBBVFRSSUJTKEFfU1VCSU5TTiksIkNvbWJpbmVzIiwg ICB7IGZTRVRXT1JEKDAsUmRkVix1aVYpOyBmU0VUV09SRCgxLFJkZFYsMCk7IH0pCitRNklOU04o U0ExX2NvbWJpbmUxaSwiUmRkOD1jb21iaW5lKCMxLCN1MikiLCBBVFRSSUJTKEFfU1VCSU5TTiks IkNvbWJpbmVzIiwgICB7IGZTRVRXT1JEKDAsUmRkVix1aVYpOyBmU0VUV09SRCgxLFJkZFYsMSk7 IH0pCitRNklOU04oU0ExX2NvbWJpbmUyaSwiUmRkOD1jb21iaW5lKCMyLCN1MikiLCBBVFRSSUJT KEFfU1VCSU5TTiksIkNvbWJpbmVzIiwgICB7IGZTRVRXT1JEKDAsUmRkVix1aVYpOyBmU0VUV09S RCgxLFJkZFYsMik7IH0pCitRNklOU04oU0ExX2NvbWJpbmUzaSwiUmRkOD1jb21iaW5lKCMzLCN1 MikiLCBBVFRSSUJTKEFfU1VCSU5TTiksIkNvbWJpbmVzIiwgICB7IGZTRVRXT1JEKDAsUmRkVix1 aVYpOyBmU0VUV09SRCgxLFJkZFYsMyk7IH0pCitRNklOU04oU0ExX2NtcGVxaSwgICAicDA9Y21w LmVxKFJzMTYsI3UyKSIsICAgQVRUUklCUyhBX1NVQklOU04pLCJDb21wYXJlSW1tZWQiLHtmV1JJ VEVfUDAoZjhCSVRTT0YoUnNWPT11aVYpKTt9KQorCisKKworCisvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisvKiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgTGQxLzIgc3ViaW5zbnMgICAgICAgICAgICAg ICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2SU5TTihTTDFfbG9h ZHJpX2lvLCAgIlJkMTY9bWVtdyhSczE2KyN1NDoyKSIsIEFUVFJJQlMoQV9MT0FELEFfU1VCSU5T TiksImxvYWQgd29yZCIsIHtmRUFfUkkoUnNWLHVpVik7IGZMT0FEKDEsNCx1LEVBLFJkVik7fSkK K1E2SU5TTihTTDFfbG9hZHJ1Yl9pbywgIlJkMTY9bWVtdWIoUnMxNisjdTQ6MCkiLEFUVFJJQlMo QV9MT0FELEFfU1VCSU5TTiksImxvYWQgYnl0ZSIsIHtmRUFfUkkoUnNWLHVpVik7IGZMT0FEKDEs MSx1LEVBLFJkVik7fSkKKworUTZJTlNOKFNMMl9sb2FkcmhfaW8sICAiUmQxNj1tZW1oKFJzMTYr I3UzOjEpIiwgQVRUUklCUyhBX0xPQUQsQV9TVUJJTlNOKSwibG9hZCBoYWxmIiwge2ZFQV9SSShS c1YsdWlWKTsgZkxPQUQoMSwyLHMsRUEsUmRWKTt9KQorUTZJTlNOKFNMMl9sb2FkcnVoX2lvLCAi UmQxNj1tZW11aChSczE2KyN1MzoxKSIsQVRUUklCUyhBX0xPQUQsQV9TVUJJTlNOKSwibG9hZCBo YWxmIiwge2ZFQV9SSShSc1YsdWlWKTsgZkxPQUQoMSwyLHUsRUEsUmRWKTt9KQorUTZJTlNOKFNM Ml9sb2FkcmJfaW8sICAiUmQxNj1tZW1iKFJzMTYrI3UzOjApIiwgQVRUUklCUyhBX0xPQUQsQV9T VUJJTlNOKSwibG9hZCBieXRlIiwge2ZFQV9SSShSc1YsdWlWKTsgZkxPQUQoMSwxLHMsRUEsUmRW KTt9KQorUTZJTlNOKFNMMl9sb2Fkcmlfc3AsICAiUmQxNj1tZW13KHIyOSsjdTU6MikiLCAgQVRU UklCUyhBX0xPQUQsQV9TVUJJTlNOKSwibG9hZCB3b3JkIiwge2ZFQV9SSShmUkVBRF9TUCgpLHVp Vik7IGZMT0FEKDEsNCx1LEVBLFJkVik7fSkKK1E2SU5TTihTTDJfbG9hZHJkX3NwLCAgIlJkZDg9 bWVtZChyMjkrI3U1OjMpIiwgQVRUUklCUyhBX0xPQUQsQV9TVUJJTlNOKSwibG9hZCBkd29yZCIs e2ZFQV9SSShmUkVBRF9TUCgpLHVpVik7IGZMT0FEKDEsOCx1LEVBLFJkZFYpO30pCisKK1E2SU5T TihTTDJfZGVhbGxvY2ZyYW1lLCJkZWFsbG9jZnJhbWUiLCBBVFRSSUJTKEFfU1VCSU5TTixBX0xP QUQpLCAiRGVhbGxvY2F0ZSBzdGFjayBmcmFtZSIsCit7IGZISURFKHNpemU4dV90IHRtcDspIGZF QV9SRUcoZlJFQURfRlAoKSk7CisJZkxPQUQoMSw4LHUsRUEsdG1wKTsKKwl0bXAgPSBmRlJBTUVf VU5TQ1JBTUJMRSh0bXApOworCWZXUklURV9MUihmR0VUV09SRCgxLHRtcCkpOworCWZXUklURV9G UChmR0VUV09SRCgwLHRtcCkpOworCWZXUklURV9TUChFQSs4KTsgfSkKKworUTZJTlNOKFNMMl9y ZXR1cm4sImRlYWxsb2NfcmV0dXJuIiwgQVRUUklCUyhBX0pJTkRJUixBX1NVQklOU04sQV9MT0FE LEFfUkVUVVJOLEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwgIkRlYWxsb2NhdGUgc3RhY2sgZnJhbWUg YW5kIHJldHVybiIsCit7IGZISURFKHNpemU4dV90IHRtcDspIGZFQV9SRUcoZlJFQURfRlAoKSk7 CisJZkxPQUQoMSw4LHUsRUEsdG1wKTsKKwl0bXAgPSBmRlJBTUVfVU5TQ1JBTUJMRSh0bXApOwor CWZXUklURV9MUihmR0VUV09SRCgxLHRtcCkpOworCWZXUklURV9GUChmR0VUV09SRCgwLHRtcCkp OworCWZXUklURV9TUChFQSs4KTsKKyAgICBmSlVNUFIoUkVHX0xSLGZHRVRXT1JEKDEsdG1wKSxD T0ZfVFlQRV9KVU1QUik7fSkKKworUTZJTlNOKFNMMl9yZXR1cm5fdCwiaWYgKHAwKSBkZWFsbG9j X3JldHVybiIsIEFUVFJJQlMoQV9KSU5ESVJPTEQsQV9TVUJJTlNOLEFfTE9BRCxBX1JFVFVSTixB X1JFU1RSSUNUX1NMT1QwT05MWSksICJEZWFsbG9jYXRlIHN0YWNrIGZyYW1lIGFuZCByZXR1cm4i LAoreyBmSElERShzaXplOHVfdCB0bXA7KTsgZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoZkxTQk9M RChmUkVBRF9QMCgpKSwsIFNQRUNVTEFURV9OT1RfVEFLRU4sNCwwKTsgZkVBX1JFRyhmUkVBRF9G UCgpKTsgaWYgKGZMU0JPTEQoZlJFQURfUDAoKSkpIHsgZkxPQUQoMSw4LHUsRUEsdG1wKTsgdG1w ID0gZkZSQU1FX1VOU0NSQU1CTEUodG1wKTsgZldSSVRFX0xSKGZHRVRXT1JEKDEsdG1wKSk7IGZX UklURV9GUChmR0VUV09SRCgwLHRtcCkpOyBmV1JJVEVfU1AoRUErOCk7CisgIGZKVU1QUihSRUdf TFIsZkdFVFdPUkQoMSx0bXApLENPRl9UWVBFX0pVTVBSKTt9IGVsc2Uge0xPQURfQ0FOQ0VMKEVB KTt9IH0pCisKK1E2SU5TTihTTDJfcmV0dXJuX2YsImlmICghcDApIGRlYWxsb2NfcmV0dXJuIiwg QVRUUklCUyhBX0pJTkRJUk9MRCxBX1NVQklOU04sQV9MT0FELEFfUkVUVVJOLEFfUkVTVFJJQ1Rf U0xPVDBPTkxZKSwgIkRlYWxsb2NhdGUgc3RhY2sgZnJhbWUgYW5kIHJldHVybiIsCit7IGZISURF KHNpemU4dV90IHRtcDspO2ZCUkFOQ0hfU1BFQ1VMQVRFX1NUQUxMKGZMU0JPTEROT1QoZlJFQURf UDAoKSksLCBTUEVDVUxBVEVfTk9UX1RBS0VOLDQsMCk7IGZFQV9SRUcoZlJFQURfRlAoKSk7IGlm IChmTFNCT0xETk9UKGZSRUFEX1AwKCkpKSB7IGZMT0FEKDEsOCx1LEVBLHRtcCk7IHRtcCA9IGZG UkFNRV9VTlNDUkFNQkxFKHRtcCk7IGZXUklURV9MUihmR0VUV09SRCgxLHRtcCkpOyBmV1JJVEVf RlAoZkdFVFdPUkQoMCx0bXApKTsgZldSSVRFX1NQKEVBKzgpOworICBmSlVNUFIoUkVHX0xSLGZH RVRXT1JEKDEsdG1wKSxDT0ZfVFlQRV9KVU1QUik7fSBlbHNlIHtMT0FEX0NBTkNFTChFQSk7fSB9 KQorCisKKworUTZJTlNOKFNMMl9yZXR1cm5fdG5ldywiaWYgKHAwLm5ldykgZGVhbGxvY19yZXR1 cm46bnQiLCBBVFRSSUJTKEFfSklORElSTkVXLEFfU1VCSU5TTixBX0xPQUQsQV9SRVRVUk4sQV9S RVNUUklDVF9TTE9UME9OTFkpLCAiRGVhbGxvY2F0ZSBzdGFjayBmcmFtZSBhbmQgcmV0dXJuIiwK K3sgZkhJREUoc2l6ZTh1X3QgdG1wOykgZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoZkxTQk5FVzAs LCBTUEVDVUxBVEVfTk9UX1RBS0VOICwgNCwzKTsgZkVBX1JFRyhmUkVBRF9GUCgpKTsgaWYgKGZM U0JORVcwKSB7IGZMT0FEKDEsOCx1LEVBLHRtcCk7IHRtcCA9IGZGUkFNRV9VTlNDUkFNQkxFKHRt cCk7IGZXUklURV9MUihmR0VUV09SRCgxLHRtcCkpOyBmV1JJVEVfRlAoZkdFVFdPUkQoMCx0bXAp KTsgZldSSVRFX1NQKEVBKzgpOworICBmSlVNUFIoUkVHX0xSLGZHRVRXT1JEKDEsdG1wKSxDT0Zf VFlQRV9KVU1QUik7fSBlbHNlIHtMT0FEX0NBTkNFTChFQSk7fSB9KQorCitRNklOU04oU0wyX3Jl dHVybl9mbmV3LCJpZiAoIXAwLm5ldykgZGVhbGxvY19yZXR1cm46bnQiLCBBVFRSSUJTKEFfSklO RElSTkVXLEFfU1VCSU5TTixBX0xPQUQsQV9SRVRVUk4sQV9SRVNUUklDVF9TTE9UME9OTFkpLCAi RGVhbGxvY2F0ZSBzdGFjayBmcmFtZSBhbmQgcmV0dXJuIiwKK3sgZkhJREUoc2l6ZTh1X3QgdG1w OykgZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoZkxTQk5FVzBOT1QsLCBTUEVDVUxBVEVfTk9UX1RB S0VOICwgNCwzKTsgZkVBX1JFRyhmUkVBRF9GUCgpKTsgaWYgKGZMU0JORVcwTk9UKSB7IGZMT0FE KDEsOCx1LEVBLHRtcCk7IHRtcCA9IGZGUkFNRV9VTlNDUkFNQkxFKHRtcCk7IGZXUklURV9MUihm R0VUV09SRCgxLHRtcCkpOyBmV1JJVEVfRlAoZkdFVFdPUkQoMCx0bXApKTsgZldSSVRFX1NQKEVB KzgpOworICBmSlVNUFIoUkVHX0xSLGZHRVRXT1JEKDEsdG1wKSxDT0ZfVFlQRV9KVU1QUik7fSBl bHNlIHtMT0FEX0NBTkNFTChFQSk7fSB9KQorCisKK1E2SU5TTihTTDJfanVtcHIzMSwianVtcHIg cjMxIixBVFRSSUJTKEFfU1VCSU5TTixBX0pJTkRJUixBX1JFU1RSSUNUX1NMT1QwT05MWSksImlu ZGlyZWN0IHVuY29uZGl0aW9uYWwganVtcCIsCit7IGZKVU1QUihSRUdfTFIsZlJFQURfTFIoKSxD T0ZfVFlQRV9KVU1QUik7fSkKKworUTZJTlNOKFNMMl9qdW1wcjMxX3QsImlmIChwMCkganVtcHIg cjMxIixBVFRSSUJTKEFfU1VCSU5TTixBX0pJTkRJUk9MRCxBX1JFU1RSSUNUX1NMT1QwT05MWSks ImluZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAgaWYgdHJ1ZSIsCit7ZkJSQU5DSF9TUEVDVUxBVEVf U1RBTEwoZkxTQk9MRChmUkVBRF9QMCgpKSwsIFNQRUNVTEFURV9UQUtFTiw0LDApOyBpZiAoZkxT Qk9MRChmUkVBRF9QMCgpKSkge2ZKVU1QUihSRUdfTFIsZlJFQURfTFIoKSxDT0ZfVFlQRV9KVU1Q Uik7fX0pCisKK1E2SU5TTihTTDJfanVtcHIzMV9mLCJpZiAoIXAwKSBqdW1wciByMzEiLEFUVFJJ QlMoQV9TVUJJTlNOLEFfSklORElST0xELEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwiaW5kaXJlY3Qg Y29uZGl0aW9uYWwganVtcCBpZiBmYWxzZSIsCit7ZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoZkxT Qk9MRE5PVChmUkVBRF9QMCgpKSwsIFNQRUNVTEFURV9UQUtFTiw0LDApOyBpZiAoZkxTQk9MRE5P VChmUkVBRF9QMCgpKSkge2ZKVU1QUihSRUdfTFIsZlJFQURfTFIoKSxDT0ZfVFlQRV9KVU1QUik7 fX0pCisKKworCitRNklOU04oU0wyX2p1bXByMzFfdG5ldywiaWYgKHAwLm5ldykganVtcHI6bnQg cjMxIixBVFRSSUJTKEFfU1VCSU5TTixBX0pJTkRJUk5FVyxBX1JFU1RSSUNUX1NMT1QwT05MWSks ImluZGlyZWN0IGNvbmRpdGlvbmFsIGp1bXAgaWYgdHJ1ZSIsCit7ZkJSQU5DSF9TUEVDVUxBVEVf U1RBTEwoZkxTQk5FVzAsLCBTUEVDVUxBVEVfTk9UX1RBS0VOICwgNCwzKTsgaWYgKGZMU0JORVcw KSB7ZkpVTVBSKFJFR19MUixmUkVBRF9MUigpLENPRl9UWVBFX0pVTVBSKTt9fSkKKworUTZJTlNO KFNMMl9qdW1wcjMxX2ZuZXcsImlmICghcDAubmV3KSBqdW1wcjpudCByMzEiLEFUVFJJQlMoQV9T VUJJTlNOLEFfSklORElSTkVXLEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwiaW5kaXJlY3QgY29uZGl0 aW9uYWwganVtcCBpZiBmYWxzZSIsCit7ZkJSQU5DSF9TUEVDVUxBVEVfU1RBTEwoZkxTQk5FVzBO T1QsLCBTUEVDVUxBVEVfTk9UX1RBS0VOICwgNCwzKTsgaWYgKGZMU0JORVcwTk9UKSB7ZkpVTVBS KFJFR19MUixmUkVBRF9MUigpLENPRl9UWVBFX0pVTVBSKTt9fSkKKworCisKKworCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KiovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgU3QxLzIgc3ViaW5zbnMg ICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK1E2 SU5TTihTUzFfc3RvcmV3X2lvLCAgIm1lbXcoUnMxNisjdTQ6Mik9UnQxNiIsIEFUVFJJQlMoQV9T VE9SRSxBX1NVQklOU04pLCAic3RvcmUgd29yZCIsIHtmRUFfUkkoUnNWLHVpVik7IGZTVE9SRSgx LDQsRUEsUnRWKTt9KQorUTZJTlNOKFNTMV9zdG9yZWJfaW8sICAibWVtYihSczE2KyN1NDowKT1S dDE2IiwgQVRUUklCUyhBX1NUT1JFLEFfU1VCSU5TTiksICJzdG9yZSBieXRlIiwge2ZFQV9SSShS c1YsdWlWKTsgZlNUT1JFKDEsMSxFQSxmR0VUQllURSgwLFJ0VikpO30pCitRNklOU04oU1MyX3N0 b3JlaF9pbywgICJtZW1oKFJzMTYrI3UzOjEpPVJ0MTYiLCBBVFRSSUJTKEFfU1RPUkUsQV9TVUJJ TlNOKSwgInN0b3JlIGhhbGYiLCB7ZkVBX1JJKFJzVix1aVYpOyBmU1RPUkUoMSwyLEVBLGZHRVRI QUxGKDAsUnRWKSk7fSkKK1E2SU5TTihTUzJfc3RvcmVkX3NwLCAgIm1lbWQocjI5KyNzNjozKT1S dHQ4IiwgQVRUUklCUyhBX1NUT1JFLEFfU1VCSU5TTiksICJzdG9yZSBkd29yZCIse2ZFQV9SSShm UkVBRF9TUCgpLHNpVik7IGZTVE9SRSgxLDgsRUEsUnR0Vik7fSkKK1E2SU5TTihTUzJfc3RvcmV3 X3NwLCAgIm1lbXcocjI5KyN1NToyKT1SdDE2IiwgIEFUVFJJQlMoQV9TVE9SRSxBX1NVQklOU04p LCAic3RvcmUgd29yZCIsIHtmRUFfUkkoZlJFQURfU1AoKSx1aVYpOyBmU1RPUkUoMSw0LEVBLFJ0 Vik7fSkKK1E2SU5TTihTUzJfc3RvcmV3aTAsICAgIm1lbXcoUnMxNisjdTQ6Mik9IzAiLCBBVFRS SUJTKEFfU1RPUkUsQV9TVUJJTlNOKSwgInN0b3JlIHdvcmQiLCB7ZkVBX1JJKFJzVix1aVYpOyBm U1RPUkUoMSw0LEVBLDApO30pCitRNklOU04oU1MyX3N0b3JlYmkwLCAgICJtZW1iKFJzMTYrI3U0 OjApPSMwIiwgQVRUUklCUyhBX1NUT1JFLEFfU1VCSU5TTiksICJzdG9yZSBieXRlIiwge2ZFQV9S SShSc1YsdWlWKTsgZlNUT1JFKDEsMSxFQSwwKTt9KQorUTZJTlNOKFNTMl9zdG9yZXdpMSwgICAi bWVtdyhSczE2KyN1NDoyKT0jMSIsIEFUVFJJQlMoQV9TVE9SRSxBX1NVQklOU04pLCAic3RvcmUg d29yZCIsIHtmRUFfUkkoUnNWLHVpVik7IGZTVE9SRSgxLDQsRUEsMSk7fSkKK1E2SU5TTihTUzJf c3RvcmViaTEsICAgIm1lbWIoUnMxNisjdTQ6MCk9IzEiLCBBVFRSSUJTKEFfU1RPUkUsQV9TVUJJ TlNOKSwgInN0b3JlIGJ5dGUiLCB7ZkVBX1JJKFJzVix1aVYpOyBmU1RPUkUoMSwxLEVBLDEpO30p CisKKworUTZJTlNOKFNTMl9hbGxvY2ZyYW1lLCJhbGxvY2ZyYW1lKCN1NTozKSIsIEFUVFJJQlMo QV9TVUJJTlNOLEFfU1RPUkUsQV9SRVNUUklDVF9TTE9UME9OTFkpLCAiQWxsb2NhdGUgc3RhY2sg ZnJhbWUiLAoreyBmRUFfUkkoZlJFQURfU1AoKSwtOCk7ICBmU1RPUkUoMSw4LEVBLGZGUkFNRV9T Q1JBTUJMRSgoZkNBU1Q4Xzh1KGZSRUFEX0xSKCkpIDw8IDMyKSB8IGZDQVNUNF80dShmUkVBRF9G UCgpKSkpOyBmV1JJVEVfRlAoRUEpOyBmRlJBTUVDSEVDSyhFQS11aVYsRUEpOyBmV1JJVEVfU1Ao RUEtdWlWKTsgfSkKKworCisKZGlmZiAtLWdpdCBhL3RhcmdldC9oZXhhZ29uL2ltcG9ydGVkL3N5 c3RlbS5pZGVmIGIvdGFyZ2V0L2hleGFnb24vaW1wb3J0ZWQvc3lzdGVtLmlkZWYKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNzQ2MTQ0ZAotLS0gL2Rldi9udWxsCisrKyBiL3Rh cmdldC9oZXhhZ29uL2ltcG9ydGVkL3N5c3RlbS5pZGVmCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisg KiAgQ29weXJpZ2h0KGMpIDIwMTktMjAyMCBRdWFsY29tbSBJbm5vdmF0aW9uIENlbnRlciwgSW5j LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0 d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVy IHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVk IGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBv ZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorICoKKyAqICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKKyAqICBHTlUgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFs b25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uCisgKi8KKworLyoKKyAqIFN5c3RlbSBJbnRlcmZhY2UgSW5zdHJ1Y3Rpb25zCisg Ki8KKworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K Ky8qIFVzZXItPk9TIGludGVyZmFjZSAgICAgICAgICAgICAgICAgICAgICAgKi8KKy8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworUTZJTlNOKEoyX3RyYXAw LCJ0cmFwMCgjdTgpIixBVFRSSUJTKEFfQ09GKSwKKyJUcmFwIHRvIE9wZXJhdGluZyBTeXN0ZW0i LAorCWZUUkFQKDAsdWlWKTsKKykKKworUTZJTlNOKFkyX2ljaW52YSwiaWNpbnZhKFJzMzIpIixB VFRSSUJTKEFfSUNPUCxBX0lDRkxVU0hPUCksIkluc3RydWN0aW9uIENhY2hlIEludmFsaWRhdGUg QWRkcmVzcyIse2ZFQV9SRUcoUnNWKTsgZklDSU5WQShFQSk7fSkKKworUTZJTlNOKFkyX2lzeW5j LCJpc3luYyIsQVRUUklCUygpLCJNZW1vcnkgU3luY2hyb25pemF0aW9uIix7ZklTWU5DKCk7fSkK K1E2SU5TTihZMl9iYXJyaWVyLCJiYXJyaWVyIixBVFRSSUJTKEFfUkVTVFJJQ1RfU0xPVDBPTkxZ KSwiTWVtb3J5IEJhcnJpZXIiLHtmQkFSUklFUigpO30pCitRNklOU04oWTJfc3luY2h0LCJzeW5j aHQiLEFUVFJJQlMoQV9SRVNUUklDVF9TTE9UME9OTFkpLCJNZW1vcnkgU3luY2hyb25pemF0aW9u Iix7ZlNZTkNIKCk7fSkKKworCitRNklOU04oWTJfZGNmZXRjaGJvLCJkY2ZldGNoKFJzMzIrI3Ux MTozKSIsQVRUUklCUyhBX1JFU1RSSUNUX1BSRUZFUlNMT1QwLEFfRENGRVRDSCksIkRhdGEgQ2Fj aGUgUHJlZmV0Y2giLHtmRUFfUkkoUnNWLHVpVik7IGZEQ0ZFVENIKEVBKTt9KQorCisKK1E2SU5T TihZMl9kY3plcm9hLCJkY3plcm9hKFJzMzIpIixBVFRSSUJTKEFfU1RPUkUsQV9SRVNUUklDVF9T TE9UME9OTFksQV9EQ1pFUk9BKSwiWmVybyBhbiBhbGlnbmVkIDMyLWJ5dGUgY2FjaGVsaW5lIix7 ZkVBX1JFRyhSc1YpOyBmRENaRVJPQShFQSk7fSkKK1E2SU5TTihZMl9kY2NsZWFuYSwiZGNjbGVh bmEoUnMzMikiLEFUVFJJQlMoQV9SRVNUUklDVF9TTE9UME9OTFksQV9EQ0ZMVVNIT1ApLCJEYXRh IENhY2hlIENsZWFuIEFkZHJlc3MiLHtmRUFfUkVHKFJzVik7IGZEQ0NMRUFOQShFQSk7fSkKK1E2 SU5TTihZMl9kY2NsZWFuaW52YSwiZGNjbGVhbmludmEoUnMzMikiLEFUVFJJQlMoQV9SRVNUUklD VF9TTE9UME9OTFksQV9EQ0ZMVVNIT1ApLCJEYXRhIENhY2hlIENsZWFuIGFuZCBJbnZhbGlkYXRl IEFkZHJlc3MiLHtmRUFfUkVHKFJzVik7IGZEQ0NMRUFOSU5WQShFQSk7fSkKK1E2SU5TTihZMl9k Y2ludmEsImRjaW52YShSczMyKSIsQVRUUklCUyhBX1JFU1RSSUNUX1NMT1QwT05MWSxBX0RDRkxV U0hPUCksIkRhdGEgQ2FjaGUgSW52YWxpZGF0ZSBBZGRyZXNzIix7ZkVBX1JFRyhSc1YpOyBmREND TEVBTklOVkEoRUEpO30pCisKKworCisKKworCitRNklOU04oWTRfbDJmZXRjaCwibDJmZXRjaChS czMyLFJ0MzIpIixBVFRSSUJTKEFfUkVTVFJJQ1RfU0xPVDBPTkxZKSwiTDIgQ2FjaGUgUHJlZmV0 Y2giLAoreyBmTDJGRVRDSChSc1YsCisJKFJ0ViYweGZmKSwgLypoZWlnaHQqLworCSgoUnRWPj44 KSYweGZmKSwgLyp3aWR0aCovCisJKChSdFY+PjE2KSYweGZmZmYpLCAvKnN0cmlkZSovCisJMCk7 IC8qZXh0cmEgYXR0cmliIGZsYWdzKi8KK30pCisKKworCitRNklOU04oWTVfbDJmZXRjaCwibDJm ZXRjaChSczMyLFJ0dDMyKSIsQVRUUklCUyhBX1JFU1RSSUNUX1NMT1QwT05MWSksIkwyIENhY2hl IFByZWZldGNoIiwKK3sgZkwyRkVUQ0goUnNWLAorCWZHRVRVSEFMRigwLFJ0dFYpLCAvKmhlaWdo dCovCisJZkdFVFVIQUxGKDEsUnR0ViksIC8qd2lkdGgqLworCWZHRVRVSEFMRigyLFJ0dFYpLCAv KnN0cmlkZSovCisJZkdFVFVIQUxGKDMsUnR0VikpOyAvKmZsYWdzKi8KK30pCi0tIAoyLjcuNAoK