Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vhhnA-004b2S-37 for pgsql-hackers@arkaria.postgresql.org; Mon, 19 Jan 2026 05:27:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vhhnA-00BgIJ-0N for pgsql-hackers@arkaria.postgresql.org; Mon, 19 Jan 2026 05:27:08 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vhhn9-00BgI9-0P for pgsql-hackers@lists.postgresql.org; Mon, 19 Jan 2026 05:27:08 +0000 Received: from mail-lf1-x12b.google.com ([2a00:1450:4864:20::12b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vhhn5-001BXF-2q for pgsql-hackers@lists.postgresql.org; Mon, 19 Jan 2026 05:27:06 +0000 Received: by mail-lf1-x12b.google.com with SMTP id 2adb3069b0e04-59b855a46d2so3451964e87.2 for ; Sun, 18 Jan 2026 21:27:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1768800421; cv=none; d=google.com; s=arc-20240605; b=KkhljxVyWwd8vET+/ZJXDtxBJLXGKOSKrGmZYAhI82py77B6ZJRWhyKRwUGtPrJdFq zIJbwVNHNDJmKMzu2kzpyi7mtkGeZXQx7GFPydXFv7C7FXDP9OaGZO4owwXM5FYp3u3e AczmD6zEnU1Y/c3LFmGx1K1D7L0qfBrk8Om2V35DyazOfdg9/AOqxUAiATIWYhLjPSvY mdzvyXS0S4IBIK14xc0uVrQGB75VuqQWjYKRA7Iz62vzBJAbuEAWzTksywnykUaeLrKN 0T+r9Iw91LhkDOt3f87pHetUg1y0o6DQ/VGtCFa/Z+JoShE8/5afPvTFrV5gQ1PDFNYR mFqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=1/pT4xQ3j9J5NOC0urdFx5xPrqLkpWaeJ04GNbwHSrc=; fh=Mu7Zn1yF/M529mEvzmqra+efswxt84CSZTsSvBh5rxQ=; b=eVd4Qf1oSG25i0v/zNsLqgGtfvU48I2CELqavhO/O6AubC/0juOrrGDAFtbVbQvmDw Hl1QxHqRJ/IGWWs3HJbqeIXjxGFj4wMYOV+FrMNQFQFYJby+mk7r9ZF8Ph+MIPFcwh0+ ZYbtJJPAxm6YGh4W5HoUi9iCe1hNDW+xX0nfn51bZOUX+Tydlfc2Lo19umiQ9kQpJVf4 QmkLj/T1Oxiu2825XoKDwCqiyo1PgkmBsYY8cMvaMo92PlOAy5jr7nwsnhpEHH74GTgk hh+b88Ud/qXd3pCI1n0XW/0sNg1amvbAwc4Tl/Kh041ymUgekx0IFHB4+e/nOeBQnfdE 2Jqw==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768800421; x=1769405221; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=1/pT4xQ3j9J5NOC0urdFx5xPrqLkpWaeJ04GNbwHSrc=; b=K2q04HqgHxBVZZt2vY5KBsEBgVHr5xttra5kxQHUW3No7wlO7M2Od9gm9S7ro02Wbe +ysKb7Nnd0eODFTbViwGRGH8FaUavk6ck320qrWXTG5gMwLFozdObUVpy4EKB+ak2ZNu kSigjgcIShTboWnSI0x05hHngfXgPbVlAkzvOBwPhVXNv+IA5rKpD4FGCyD8Nwa+nPbn FVsH84PTe3AEe/S0EUK5Q/voC9S15dcdTpe38y4SHRi+1R0PALFQT5kiJgt178VVTbHh dSphX45F55IuNX2O4sgdXRW35ITTfH6ZKFd9NTXKr7NRaXQRyQrhZ55yi8nzTXq7WviW SF0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768800421; x=1769405221; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=1/pT4xQ3j9J5NOC0urdFx5xPrqLkpWaeJ04GNbwHSrc=; b=bXeei5HzZfXlD0yVZQbsjMbiv3evXSyxy220lps8qMCAKQk32Z/beRMFIkllOYBmwx /qTRFAwxwVwRfPW95LcEl8HuScjcwwfHQgxqwVYSLlaphMm51dM44Y0EJMnLlLdaORqy lTvAje8q5IvYgMsNpmPG+YOt1zojGd8xRrVz3QIo3cQrb8CdqldrwtQYXYgwkSeKep/T anlaOQbVRdFRa7qhrc0gVm2zTUGIa2FJxIau6twZj3G4De7k5RKTywIisY6Ra7gRJwwh SF4be0LOOSti+P5iTu1RSF1y7sifltEnqnTj5g6mC+BviNww80xlWHAwySdkgCqERaVM biIw== X-Forwarded-Encrypted: i=1; AJvYcCXCxT0QMFYFKe2NZrjpq86fVXtakY+Xh9TzApvdvD61VrnTPWYpclqkFVLLOHpwZgIStjxStul9FxrGHtRc@lists.postgresql.org X-Gm-Message-State: AOJu0YygGctQTtqWDgYSYbFj0W/hNvi3RC1jEZU/0+KhBO5gYmZKhCti x9buHybl8pUaKi8Slmd3nwd+bBwotdr0lPEPC2VeHOM8qFaU2VwuBjJJP+FoDO/msx1aikw5MD9 8gyHpS44HBI05i6e1E6GOv9eTG59SI9M= X-Gm-Gg: AY/fxX7jsEoS/JWznLCjURbZurRMrStg92634moE5Mrdzll30D8TT63+8TymC8ispK1 J/ESkbJt99ALJg6tTxGDIlLBoFMf2lOpVU1jjsSlVoN3mtW/aJGEkMkc3uSh2nun6yHGvsS8oEP EpHiSh/NOZfQcq65vpI9Q4d/0wbelnAzB/S7Ac68G6jI4kWJI8d5lmNUXRqrXzwgsBfz+ARtQnA ZwA9fcw6hlaAgJiIV2QKL6Qff3G49l4SUUe0OUnw2qY4AT/wD198i6WVhpd2TGBUOCpIyJ9LCu3 UwOTQ28f2xophSjyPDnHY3g= X-Received: by 2002:a05:6512:1389:b0:59b:b0cb:abe with SMTP id 2adb3069b0e04-59bb0cb0ae3mr2902050e87.25.1768800421211; Sun, 18 Jan 2026 21:27:01 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Dilip Kumar Date: Mon, 19 Jan 2026 10:56:44 +0530 X-Gm-Features: AZwV_QiBpa7GgDBxYsfl56A6rYcZAV6Chon5a9Uyw0loBrat1Xu60dqPRfRJBW8 Message-ID: Subject: Re: Proposal: Conflict log history table for Logical Replication To: Peter Smith Cc: Amit Kapila , shveta malik , vignesh C , Masahiko Sawada , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000c9126b0648b6f01a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000c9126b0648b6f01a Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Jan 19, 2026 at 9:42=E2=80=AFAM Peter Smith = wrote: > > Some review comments for v22-0003. > > =3D=3D=3D=3D=3D=3D > > 1. > It looks like none of my previous v20-0003 review comments [1] have > been addressed. Maybe accidentally overlooked? > > =3D=3D=3D=3D=3D=3D > > 2. > + > + > + The internal conflict logging table is strictly tied to > the lifecycle of the > + subscription or the > conflict_log_destination setting. If > + the subscription is dropped, or if the destination is changed= to > + log, the table and all its recorded > conflict data are > + permanently deleted. To perform a > post-mortem analysis > + after removing a subscription, users must manually back up > or rename the > + conflict table before the deletion occurs. > + > + > > 2a. > Let's consistently call this the "Conflict log table", same as > everywhere else, not "logging table". > > ~ > > 2b. > This is only a caution for the CLT, so I felt it's better to put this > in the scope of the 'table' param value. > > ~~~ > > 3. > + analysis of conflicts. This table is automatically > dropped when the > + subscription is removed. > > If you move the to this scope, as suggested above in #2b, > then you can remove the sentence "This table is automatically dropped > when the subscription is removed", because that is duplicate > information you already wrote in the caution. The attached patch fixes above comments and other comments reported in v22-0001 and v22-0002 > =3D=3D=3D=3D=3D=3D > [1] v20 docs review - > https://www.postgresql.org/message-id/CAHut%2BPuzB4gNYvqX9hb28KE0RK_xhU%2= B2-%3DwUfL5OEVUCi92Hqw%40mail.gmail.com I think I missed them, so I will respond to them separately. --=20 Regards, Dilip Kumar Google --000000000000c9126b0648b6f01a Content-Type: application/octet-stream; name="v23-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Disposition: attachment; filename="v23-0001-Add-configurable-conflict-log-table-for-Logical-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkkq1yqe0 RnJvbSA3MWNjZWNkN2JjYjVmYmVhMmZlMjgyYmMyZDQ2MWU3MzliNWE2Y2I0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogV2VkLCAxNyBEZWMgMjAyNSAxMTo1Mzo0NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIz IDEvM10gQWRkIGNvbmZpZ3VyYWJsZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIExvZ2ljYWwKIFJl cGxpY2F0aW9uCgpUaGlzIHBhdGNoIGFkZHMgYSBmZWF0dXJlIHRvIHByb3ZpZGUgYSBzdHJ1Y3R1 cmVkLCBxdWVyeWFibGUgcmVjb3JkIG9mIGFsbApsb2dpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0 cy4gVGhlIGN1cnJlbnQgYXBwcm9hY2ggb2YgbG9nZ2luZyBjb25mbGljdHMgYXMKcGxhaW4gdGV4 dCBpbiB0aGUgc2VydmVyIGxvZ3MgbWFrZXMgaXQgZGlmZmljdWx0IHRvIHF1ZXJ5LCBhbmFseXpl LCBhbmQKdXNlIGZvciBleHRlcm5hbCBtb25pdG9yaW5nIGFuZCBhdXRvbWF0aW9uLgoKVGhpcyBw YXRjaCBhZGRyZXNzZXMgdGhlc2UgbGltaXRhdGlvbnMgYnkgaW50cm9kdWNpbmcgYSBjb25maWd1 cmFibGUKY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPSgnbG9nJy8ndGFibGUnLydhbGwnKSBvcHRp b24gaW4gdGhlIENSRUFURSBTVUJTQ1JJUFRJT04KY29tbWFuZC4KCklmIHRoZSB1c2VyIGNob29z ZXMgdG8gZW5hYmxlIGxvZ2dpbmcgdG8gYSB0YWJsZSAoYnkgc2VsZWN0aW5nICd0YWJsZScgb3Ig J2FsbCcpLAphbiBpbnRlcm5hbCBsb2dnaW5nIHRhYmxlIG5hbWVkIGNvbmZsaWN0X2xvZ190YWJs ZV88c3ViaWQ+IGlzIGF1dG9tYXRpY2FsbHkKY3JlYXRlZCB3aXRoaW4gYSBkZWRpY2F0ZWQsIHN5 c3RlbS1tYW5hZ2VkIG5hbWVzcGFjZSBuYW1lZCBwZ19jb25mbGljdC4gVGhpcyB0YWJsZQppcyBs aW5rZWQgdG8gdGhlIHN1YnNjcmlwdGlvbiB2aWEgYW4gaW50ZXJuYWwgZGVwZW5kZW5jeSwgZW5z dXJpbmcgaXQgaXMKYXV0b21hdGljYWxseSBkcm9wcGVkIHdoZW4gdGhlIHN1YnNjcmlwdGlvbiBp cyByZW1vdmVkLgoKVGhlIGNvbmZsaWN0IGRldGFpbHMsIGluY2x1ZGluZyB0aGUgb3JpZ2luYWwg YW5kIHJlbW90ZSB0dXBsZXMsIGFyZSBzdG9yZWQgaW4gSlNPTgpjb2x1bW5zLCBwcm92aWRpbmcg YSBmbGV4aWJsZSBmb3JtYXQgdG8gYWNjb21tb2RhdGUgZGlmZmVyZW50IHRhYmxlIHNjaGVtYXMu CgpUaGUgbG9nIHRhYmxlIGNhcHR1cmVzIGVzc2VudGlhbCBhdHRyaWJ1dGVzIHN1Y2ggYXMgbG9j YWwgYW5kIHJlbW90ZSB0cmFuc2FjdGlvbiBJRHMsCkxTTnMsIGNvbW1pdCB0aW1lc3RhbXBzLCBh bmQgY29uZmxpY3QgdHlwZSwgcHJvdmlkaW5nIGEgY29tcGxldGUgcmVjb3JkIGZvciBwb3N0LW1v cnRlbQphbmFseXNpcy4KClRoaXMgZmVhdHVyZSB3aWxsIG1ha2UgbG9naWNhbCByZXBsaWNhdGlv biBjb25mbGljdHMgZWFzaWVyIHRvIG1vbml0b3IgYW5kIG1hbmFnZSwKc2lnbmlmaWNhbnRseSBp bXByb3ZpbmcgdGhlIG92ZXJhbGwgcmVzaWxpZW5jZSBhbmQgb3BlcmFiaWxpdHkgb2YgcmVwbGlj YXRpb24gc2V0dXBzLgoKVGhlIGNvbmZsaWN0IGxvZyB0YWJsZXMgd2lsbCBub3QgYmUgaW5jbHVk ZWQgaW4gYSBwdWJsaWNhdGlvbiwgZXZlbiBpZiB0aGUgcHVibGljYXRpb24KaXMgY29uZmlndXJl ZCB0byBpbmNsdWRlIEFMTCBUQUJMRVMgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEuCi0tLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMgICAgICAgICAgICAgIHwgIDI3ICstCiBzcmMvYmFj a2VuZC9jYXRhbG9nL2hlYXAuYyAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNrZW5k L2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jICAgICAgIHwgIDE0ICstCiBzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5jICAgICAgfCAgIDcgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jICAgIHwgMjM5ICsrKysrKysrKystCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICAgfCAgIDYgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNNYWluLmMgICAgICAgICAgICB8ICAxNSArCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAg ICAgICAgICAgICAgICAgfCAgMTYgKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAg ICAgICAgICAgICB8ICAgOCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmggICAgICAg ICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdCAgICAg ICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlwdGlvbi5oICAgICAgfCAg MTEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oICAgIHwgICAzICsK IHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmggICAgICAgICB8ICA1NSArKysKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCB8IDQ0NCArKysrKysrKysr KysrKysrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwgICAgICB8 IDIxNyArKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAg ICAgfCAgIDIgKwogMTggZmlsZXMgY2hhbmdlZCwgOTc4IGluc2VydGlvbnMoKyksIDEwMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2NhdGFsb2cuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvY2F0YWxvZy5jCmluZGV4IDdiZTQ5MDMyOTM0Li5kNDM4ZGM2ODJl YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9jYXRhbG9nLmMKQEAgLTg2LDcgKzg2LDggQEAgYm9vbAogSXNTeXN0ZW1D bGFzcyhPaWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCiB7CiAJLyogSXNDYXRhbG9n UmVsYXRpb25PaWQgaXMgYSBiaXQgZmFzdGVyLCBzbyB0ZXN0IHRoYXQgZmlyc3QgKi8KLQlyZXR1 cm4gKElzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSB8fCBJc1RvYXN0Q2xhc3MocmVsdHVwbGUp KTsKKwlyZXR1cm4gKElzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSB8fCBJc1RvYXN0Q2xhc3Mo cmVsdHVwbGUpCisJCQl8fCBJc0NvbmZsaWN0Q2xhc3MocmVsdHVwbGUpKTsKIH0KIAogLyoKQEAg LTIzMCw2ICsyMzEsMTggQEAgSXNUb2FzdENsYXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpCiAJ cmV0dXJuIElzVG9hc3ROYW1lc3BhY2UocmVsbmFtZXNwYWNlKTsKIH0KIAorLyoKKyAqIElzQ29u ZmxpY3RDbGFzcyAtIENoZWNrIGlmIHRoZSBnaXZlbiBwZ19jbGFzcyB0dXBsZSBiZWxvbmdzIHRv IHRoZSBjb25mbGljdAorICoJCQkJCSBuYW1lc3BhY2UuCisgKi8KK2Jvb2wKK0lzQ29uZmxpY3RD bGFzcyhGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQoreworCU9pZAkJCXJlbG5hbWVzcGFjZSA9IHJl bHR1cGxlLT5yZWxuYW1lc3BhY2U7CisKKwlyZXR1cm4gSXNDb25mbGljdE5hbWVzcGFjZShyZWxu YW1lc3BhY2UpOworfQorCiAvKgogICogSXNDYXRhbG9nTmFtZXNwYWNlCiAgKgkJVHJ1ZSBpZmYg bmFtZXNwYWNlIGlzIHBnX2NhdGFsb2cuCkBAIC0yNjQsNiArMjc3LDE4IEBAIElzVG9hc3ROYW1l c3BhY2UoT2lkIG5hbWVzcGFjZUlkKQogCQlpc1RlbXBUb2FzdE5hbWVzcGFjZShuYW1lc3BhY2VJ ZCk7CiB9CiAKKy8qCisgKiBJc0NvbmZsaWN0TmFtZXNwYWNlCisgKgkJVHJ1ZSBpZmYgbmFtZXNw YWNlIGlzIHBnX2NvbmZsaWN0LgorICoKKyAqCQlEb2VzIG5vdCBwZXJmb3JtIGFueSBjYXRhbG9n IGFjY2Vzc2VzLgorICovCitib29sCitJc0NvbmZsaWN0TmFtZXNwYWNlKE9pZCBuYW1lc3BhY2VJ ZCkKK3sKKwlyZXR1cm4gbmFtZXNwYWNlSWQgPT0gUEdfQ09ORkxJQ1RfTkFNRVNQQUNFOworfQor CiAKIC8qCiAgKiBJc1Jlc2VydmVkTmFtZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwppbmRleCA2MDY0MzQ4MjNjZi4u MTBkYWRmMzc4YTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC0zMTQsNyArMzE0LDggQEAgaGVhcF9jcmVh dGUoY29uc3QgY2hhciAqcmVsbmFtZSwKIAkgKi8KIAlpZiAoIWFsbG93X3N5c3RlbV90YWJsZV9t b2RzICYmCiAJCSgoSXNDYXRhbG9nTmFtZXNwYWNlKHJlbG5hbWVzcGFjZSkgJiYgcmVsa2luZCAh PSBSRUxLSU5EX0lOREVYKSB8fAotCQkgSXNUb2FzdE5hbWVzcGFjZShyZWxuYW1lc3BhY2UpKSAm JgorCQkgSXNUb2FzdE5hbWVzcGFjZShyZWxuYW1lc3BhY2UpIHx8CisJCSBJc0NvbmZsaWN0TmFt ZXNwYWNlKHJlbG5hbWVzcGFjZSkpICYmCiAJCUlzTm9ybWFsUHJvY2Vzc2luZ01vZGUoKSkKIAkJ ZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxF R0UpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggYzNiNzlhMmJhNDguLjQwMDI5MmZkMDZi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAgLTM1MjMsNyArMzUyMyw3IEBAIExvb2t1cENy ZWF0aW9uTmFtZXNwYWNlKGNvbnN0IGNoYXIgKm5zcG5hbWUpCiAgKgogICogV2UgY29tcGxhaW4g aWYgZWl0aGVyIHRoZSBvbGQgb3IgbmV3IG5hbWVzcGFjZXMgaXMgYSB0ZW1wb3Jhcnkgc2NoZW1h CiAgKiAob3IgdGVtcG9yYXJ5IHRvYXN0IHNjaGVtYSksIG9yIGlmIGVpdGhlciB0aGUgb2xkIG9y IG5ldyBuYW1lc3BhY2VzIGlzIHRoZQotICogVE9BU1Qgc2NoZW1hLgorICogVE9BU1Qgc2NoZW1h IG9yIHRoZSBDT05GTElDVCBzY2hlbWEuCiAgKi8KIHZvaWQKIENoZWNrU2V0TmFtZXNwYWNlKE9p ZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpCkBAIC0zNTM5LDYgKzM1MzksMTIgQEAgQ2hlY2tTZXRO YW1lc3BhY2UoT2lkIG9sZE5zcE9pZCwgT2lkIG5zcE9pZCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJIGVycm1zZygi Y2Fubm90IG1vdmUgb2JqZWN0cyBpbnRvIG9yIG91dCBvZiBUT0FTVCBzY2hlbWEiKSkpOworCisJ Lyogc2ltaWxhcmx5IGZvciBDT05GTElDVCBzY2hlbWEgKi8KKwlpZiAobnNwT2lkID09IFBHX0NP TkZMSUNUX05BTUVTUEFDRSB8fCBvbGROc3BPaWQgPT0gUEdfQ09ORkxJQ1RfTkFNRVNQQUNFKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9S VEVEKSwKKwkJCQkgZXJybXNnKCJjYW5ub3QgbW92ZSBvYmplY3RzIGludG8gb3Igb3V0IG9mIENP TkZMSUNUIHNjaGVtYSIpKSk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9u LmMKaW5kZXggOWE0NzkxYzU3M2UuLmEzM2MzM2VmZTBkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJs aWNhdGlvbl9yZWwuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJj b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zdWJzY3JpcHRp b25jbWRzLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5Lmgi CiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTg1LDYgKzg2LDE1IEBAIGNoZWNrX3B1 YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihSZWxhdGlvbiB0YXJnZXRyZWwpCiAJCQkJIGVycm1zZygi Y2Fubm90IGFkZCByZWxhdGlvbiBcIiVzXCIgdG8gcHVibGljYXRpb24iLAogCQkJCQkJUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSksCiAJCQkJIGVycmRldGFpbCgiVGhpcyBvcGVy YXRpb24gaXMgbm90IHN1cHBvcnRlZCBmb3IgdW5sb2dnZWQgdGFibGVzLiIpKSk7CisKKwkvKiBD YW4ndCBiZSBjb25mbGljdCBsb2cgdGFibGUgKi8KKwlpZiAoSXNDb25mbGljdE5hbWVzcGFjZShS ZWxhdGlvbkdldE5hbWVzcGFjZSh0YXJnZXRyZWwpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCQkgZXJybXNnKCJj YW5ub3QgYWRkIHJlbGF0aW9uIFwiJXMuJXNcIiB0byBwdWJsaWNhdGlvbiIsCisJCQkJCQlnZXRf bmFtZXNwYWNlX25hbWUoUmVsYXRpb25HZXROYW1lc3BhY2UodGFyZ2V0cmVsKSksCisJCQkJCQlS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpKSwKKwkJCQkgZXJyZGV0YWlsKCJUaGlz IG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciBjb25mbGljdCBsb2cgdGFibGVzLiIpKSk7 CiB9CiAKIC8qCkBAIC05NSw3ICsxMDUsOCBAQCBzdGF0aWMgdm9pZAogY2hlY2tfcHVibGljYXRp b25fYWRkX3NjaGVtYShPaWQgc2NoZW1haWQpCiB7CiAJLyogQ2FuJ3QgYmUgc3lzdGVtIG5hbWVz cGFjZSAqLwotCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElzVG9hc3ROYW1l c3BhY2Uoc2NoZW1haWQpKQorCWlmIChJc0NhdGFsb2dOYW1lc3BhY2Uoc2NoZW1haWQpIHx8IElz VG9hc3ROYW1lc3BhY2Uoc2NoZW1haWQpIHx8CisJCUlzQ29uZmxpY3ROYW1lc3BhY2Uoc2NoZW1h aWQpKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJB TUVURVJfVkFMVUUpLAogCQkJCSBlcnJtc2coImNhbm5vdCBhZGQgc2NoZW1hIFwiJXNcIiB0byBw dWJsaWNhdGlvbiIsCkBAIC0xMzksNiArMTUwLDcgQEAgaXNfcHVibGlzaGFibGVfY2xhc3MoT2lk IHJlbGlkLCBGb3JtX3BnX2NsYXNzIHJlbHR1cGxlKQogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0g UkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSB8fAogCQkJcmVsdHVwbGUtPnJlbGtpbmQgPT0gUkVM S0lORF9TRVFVRU5DRSkgJiYKIAkJIUlzQ2F0YWxvZ1JlbGF0aW9uT2lkKHJlbGlkKSAmJgorCQkh SXNDb25mbGljdENsYXNzKHJlbHR1cGxlKSAmJgogCQlyZWx0dXBsZS0+cmVscGVyc2lzdGVuY2Ug PT0gUkVMUEVSU0lTVEVOQ0VfUEVSTUFORU5UICYmCiAJCXJlbGlkID49IEZpcnN0Tm9ybWFsT2Jq ZWN0SWQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1YnNjcmlwdGlv bi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwppbmRleCAyYjEwMzI0 NTI5MC4uMjg1YTU5ODQ5N2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vi c2NyaXB0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwpA QCAtMTA2LDYgKzEwNiw3IEBAIEdldFN1YnNjcmlwdGlvbihPaWQgc3ViaWQsIGJvb2wgbWlzc2lu Z19vaykKIAlzdWItPnJldGFpbmRlYWR0dXBsZXMgPSBzdWJmb3JtLT5zdWJyZXRhaW5kZWFkdHVw bGVzOwogCXN1Yi0+bWF4cmV0ZW50aW9uID0gc3ViZm9ybS0+c3VibWF4cmV0ZW50aW9uOwogCXN1 Yi0+cmV0ZW50aW9uYWN0aXZlID0gc3ViZm9ybS0+c3VicmV0ZW50aW9uYWN0aXZlOworCXN1Yi0+ Y29uZmxpY3Rsb2dyZWxpZCA9IHN1YmZvcm0tPnN1YmNvbmZsaWN0bG9ncmVsaWQ7CiAKIAkvKiBH ZXQgY29ubmluZm8gKi8KIAlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoU1VCU0NSSVBU SU9OT0lELApAQCAtMTQxLDYgKzE0MiwxMiBAQCBHZXRTdWJzY3JpcHRpb24oT2lkIHN1YmlkLCBi b29sIG1pc3Npbmdfb2spCiAJCQkJCQkJCSAgIEFudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9yaWdp bik7CiAJc3ViLT5vcmlnaW4gPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKIAorCS8qIEdl dCBjb25mbGljdCBsb2cgZGVzdGluYXRpb24gKi8KKwlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0ck5v dE51bGwoU1VCU0NSSVBUSU9OT0lELAorCQkJCQkJCQkgICB0dXAsCisJCQkJCQkJCSAgIEFudW1f cGdfc3Vic2NyaXB0aW9uX3N1YmNvbmZsaWN0bG9nZGVzdCk7CisJc3ViLT5jb25mbGljdGxvZ2Rl c3QgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRhdHVtKTsKKwogCS8qIElzIHRoZSBzdWJzY3JpcHRp b24gb3duZXIgYSBzdXBlcnVzZXI/ICovCiAJc3ViLT5vd25lcnN1cGVydXNlciA9IHN1cGVydXNl cl9hcmcoc3ViLT5vd25lcik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMu YwppbmRleCBkNjY3NGYyMGZjMi4uZGUxOTc3ZjgxZWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z dWJzY3JpcHRpb25jbWRzLmMKQEAgLTE1LDI1ICsxNSwzMSBAQAogI2luY2x1ZGUgInBvc3RncmVz LmgiCiAKICNpbmNsdWRlICJhY2Nlc3MvY29tbWl0X3RzLmgiCisjaW5jbHVkZSAiYWNjZXNzL2hl YXBhbS5oIgogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKICNpbmNsdWRlICJhY2Nl c3MvdGFibGUuaCIKICNpbmNsdWRlICJhY2Nlc3MvdHdvcGhhc2UuaCIKICNpbmNsdWRlICJhY2Nl c3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvY2F0YWxvZy5oIgogI2luY2x1ZGUgImNhdGFs b2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgogI2luY2x1ZGUgImNh dGFsb2cvaW5kZXhpbmcuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRy ZXNzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbV9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19hdXRoaWRfZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfZGF0YWJhc2VfZC5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdWJzY3Jp cHRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNjcmlwdGlvbl9yZWwuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9jb21tZW50LmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNsdWRl ICJleGVjdXRvci9leGVjdXRvci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJt aXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJwZ3N0 YXQuaCIKQEAgLTUxLDYgKzU3LDcgQEAKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNp bmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5oIgorI2lu Y2x1ZGUgInV0aWxzL3JlZ3Byb2MuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiAv KgpAQCAtNzUsNiArODIsNyBAQAogI2RlZmluZSBTVUJPUFRfTUFYX1JFVEVOVElPTl9EVVJBVElP TgkweDAwMDA4MDAwCiAjZGVmaW5lIFNVQk9QVF9MU04JCQkJCTB4MDAwMTAwMDAKICNkZWZpbmUg U1VCT1BUX09SSUdJTgkJCQkweDAwMDIwMDAwCisjZGVmaW5lIFNVQk9QVF9DT05GTElDVF9MT0df REVTVAkweDAwMDQwMDAwCiAKIC8qIGNoZWNrIGlmIHRoZSAndmFsJyBoYXMgJ2JpdHMnIHNldCAq LwogI2RlZmluZSBJc1NldCh2YWwsIGJpdHMpICAoKCh2YWwpICYgKGJpdHMpKSA9PSAoYml0cykp CkBAIC0xMDMsNiArMTExLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU3ViT3B0cwogCWJvb2wJCXJldGFp bmRlYWR0dXBsZXM7CiAJaW50MzIJCW1heHJldGVudGlvbjsKIAljaGFyCSAgICpvcmlnaW47CisJ Q29uZmxpY3RMb2dEZXN0IGNvbmZsaWN0bG9nZGVzdDsKIAlYTG9nUmVjUHRyCWxzbjsKIH0gU3Vi T3B0czsKIApAQCAtMTM1LDcgKzE0NCw3IEBAIHN0YXRpYyBMaXN0ICptZXJnZV9wdWJsaWNhdGlv bnMoTGlzdCAqb2xkcHVibGlzdCwgTGlzdCAqbmV3cHVibGlzdCwgYm9vbCBhZGRwdWIsCiBzdGF0 aWMgdm9pZCBSZXBvcnRTbG90Q29ubmVjdGlvbkVycm9yKExpc3QgKnJzdGF0ZXMsIE9pZCBzdWJp ZCwgY2hhciAqc2xvdG5hbWUsIGNoYXIgKmVycik7CiBzdGF0aWMgdm9pZCBDaGVja0FsdGVyU3Vi T3B0aW9uKFN1YnNjcmlwdGlvbiAqc3ViLCBjb25zdCBjaGFyICpvcHRpb24sCiAJCQkJCQkJCWJv b2wgc2xvdF9uZWVkc191cGRhdGUsIGJvb2wgaXNUb3BMZXZlbCk7Ci0KK3N0YXRpYyBPaWQgY3Jl YXRlX2NvbmZsaWN0X2xvZ190YWJsZShPaWQgc3ViaWQsIGNoYXIgKnN1Ym5hbWUpOwogCiAvKgog ICogQ29tbW9uIG9wdGlvbiBwYXJzaW5nIGZ1bmN0aW9uIGZvciBDUkVBVEUgYW5kIEFMVEVSIFNV QlNDUklQVElPTiBjb21tYW5kcy4KQEAgLTE5MSw2ICsyMDAsOCBAQCBwYXJzZV9zdWJzY3JpcHRp b25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJb3B0 cy0+bWF4cmV0ZW50aW9uID0gMDsKIAlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9P UklHSU4pKQogCQlvcHRzLT5vcmlnaW4gPSBwc3RyZHVwKExPR0lDQUxSRVBfT1JJR0lOX0FOWSk7 CisJaWYgKElzU2V0KHN1cHBvcnRlZF9vcHRzLCBTVUJPUFRfQ09ORkxJQ1RfTE9HX0RFU1QpKQor CQlvcHRzLT5jb25mbGljdGxvZ2Rlc3QgPSBDT05GTElDVF9MT0dfREVTVF9MT0c7CiAKIAkvKiBQ YXJzZSBvcHRpb25zICovCiAJZm9yZWFjaChsYywgc3RtdF9vcHRpb25zKQpAQCAtNDAyLDYgKzQx MywxOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExp c3QgKnN0bXRfb3B0aW9ucywKIAkJCW9wdHMtPnNwZWNpZmllZF9vcHRzIHw9IFNVQk9QVF9MU047 CiAJCQlvcHRzLT5sc24gPSBsc247CiAJCX0KKwkJZWxzZSBpZiAoSXNTZXQoc3VwcG9ydGVkX29w dHMsIFNVQk9QVF9DT05GTElDVF9MT0dfREVTVCkgJiYKKwkJCQkgc3RyY21wKGRlZmVsLT5kZWZu YW1lLCAiY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIikgPT0gMCkKKwkJeworCQkJY2hhciAqdmFs OworCisJCQlpZiAoSXNTZXQob3B0cy0+c3BlY2lmaWVkX29wdHMsIFNVQk9QVF9DT05GTElDVF9M T0dfREVTVCkpCisJCQkJZXJyb3JDb25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisK KwkJCXZhbCA9IGRlZkdldFN0cmluZyhkZWZlbCk7CisJCQlvcHRzLT5jb25mbGljdGxvZ2Rlc3Qg PSBHZXRMb2dEZXN0aW5hdGlvbih2YWwpOworCQkJb3B0cy0+c3BlY2lmaWVkX29wdHMgfD0gU1VC T1BUX0NPTkZMSUNUX0xPR19ERVNUOworCQl9CiAJCWVsc2UKIAkJCWVyZXBvcnQoRVJST1IsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKQEAgLTU5OSw2ICs2MjIsNyBAQCBD cmVhdGVTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTdWJzY3JpcHRpb25T dG10ICpzdG10LAogCWJpdHMzMgkJc3VwcG9ydGVkX29wdHM7CiAJU3ViT3B0cwkJb3B0cyA9IHsw fTsKIAlBY2xSZXN1bHQJYWNscmVzdWx0OworCU9pZAkJCWxvZ3JlbGlkID0gSW52YWxpZE9pZDsK IAogCS8qCiAJICogUGFyc2UgYW5kIGNoZWNrIG9wdGlvbnMuCkBAIC02MTIsNyArNjM2LDggQEAg Q3JlYXRlU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwKIAkJCQkJICBTVUJPUFRfRElTQUJMRV9PTl9FUlIgfCBTVUJPUFRfUEFTU1dP UkRfUkVRVUlSRUQgfAogCQkJCQkgIFNVQk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfRkFJTE9W RVIgfAogCQkJCQkgIFNVQk9QVF9SRVRBSU5fREVBRF9UVVBMRVMgfAotCQkJCQkgIFNVQk9QVF9N QVhfUkVURU5USU9OX0RVUkFUSU9OIHwgU1VCT1BUX09SSUdJTik7CisJCQkJCSAgU1VCT1BUX01B WF9SRVRFTlRJT05fRFVSQVRJT04gfCBTVUJPUFRfT1JJR0lOIHwKKwkJCQkJICBTVUJPUFRfQ09O RkxJQ1RfTE9HX0RFU1QpOwogCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3Rt dC0+b3B0aW9ucywgc3VwcG9ydGVkX29wdHMsICZvcHRzKTsKIAogCS8qCkBAIC03NDcsNiArNzcy LDE4IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVN1YnNj cmlwdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9yaWdp biAtIDFdID0KIAkJQ1N0cmluZ0dldFRleHREYXR1bShvcHRzLm9yaWdpbik7CiAKKwkvKiBBbHdh eXMgc2V0IHRoZSBkZXN0aW5hdGlvbiwgZGVmYXVsdCB3aWxsIGJlICdsb2cnLiAqLworCXZhbHVl c1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9CisJCUNTdHJp bmdHZXRUZXh0RGF0dW0oQ29uZmxpY3RMb2dEZXN0TmFtZXNbb3B0cy5jb25mbGljdGxvZ2Rlc3Rd KTsKKworCS8qIElmIGxvZ2dpbmcgdG8gYSB0YWJsZSBpcyByZXF1aXJlZCwgcGh5c2ljYWxseSBj cmVhdGUgdGhlIHRhYmxlLiAqLworCWlmIChJc1NldChvcHRzLmNvbmZsaWN0bG9nZGVzdCwgQ09O RkxJQ1RfTE9HX0RFU1RfVEFCTEUpKQorCQlsb2dyZWxpZCA9IGNyZWF0ZV9jb25mbGljdF9sb2df dGFibGUoc3ViaWQsIHN0bXQtPnN1Ym5hbWUpOworCisJLyogU3RvcmUgdGFibGUgT0lEIGluIHRo ZSBjYXRhbG9nLiAqLworCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxv Z3JlbGlkIC0gMV0gPQorCQkJCQkJT2JqZWN0SWRHZXREYXR1bShsb2dyZWxpZCk7CisKIAl0dXAg PSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzKTsK IAogCS8qIEluc2VydCB0dXBsZSBpbnRvIGNhdGFsb2cuICovCkBAIC0xNDEwLDcgKzE0NDcsOCBA QCBBbHRlclN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyU3Vic2NyaXB0aW9u U3RtdCAqc3RtdCwKIAkJCQkJCQkJICBTVUJPUFRfUlVOX0FTX09XTkVSIHwgU1VCT1BUX0ZBSUxP VkVSIHwKIAkJCQkJCQkJICBTVUJPUFRfUkVUQUlOX0RFQURfVFVQTEVTIHwKIAkJCQkJCQkJICBT VUJPUFRfTUFYX1JFVEVOVElPTl9EVVJBVElPTiB8Ci0JCQkJCQkJCSAgU1VCT1BUX09SSUdJTik7 CisJCQkJCQkJCSAgU1VCT1BUX09SSUdJTiB8CisJCQkJCQkJCSAgU1VCT1BUX0NPTkZMSUNUX0xP R19ERVNUKTsKIAogCQkJCXBhcnNlX3N1YnNjcmlwdGlvbl9vcHRpb25zKHBzdGF0ZSwgc3RtdC0+ b3B0aW9ucywKIAkJCQkJCQkJCQkgICBzdXBwb3J0ZWRfb3B0cywgJm9wdHMpOwpAQCAtMTY2NSw2 ICsxNzAzLDYzIEBAIEFsdGVyU3Vic2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJT dWJzY3JpcHRpb25TdG10ICpzdG10LAogCQkJCQlvcmlnaW4gPSBvcHRzLm9yaWdpbjsKIAkJCQl9 CiAKKwkJCQlpZiAoSXNTZXQob3B0cy5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX0NPTkZMSUNUX0xP R19ERVNUKSkKKwkJCQl7CisJCQkJCUNvbmZsaWN0TG9nRGVzdCBvbGRfZGVzdCA9CisJCQkJCQkJ R2V0TG9nRGVzdGluYXRpb24oc3ViLT5jb25mbGljdGxvZ2Rlc3QpOworCisJCQkJCWlmIChvcHRz LmNvbmZsaWN0bG9nZGVzdCAhPSBvbGRfZGVzdCkKKwkJCQkJeworCQkJCQkJYm9vbCB3YW50X3Rh YmxlID0gSXNTZXQob3B0cy5jb25mbGljdGxvZ2Rlc3QsCisJCQkJCQkJCQkJCQlDT05GTElDVF9M T0dfREVTVF9UQUJMRSk7CisJCQkJCQlib29sIGhhc19vbGR0YWJsZSA9CisJCQkJCQkJCUlzU2V0 KG9sZF9kZXN0LCBDT05GTElDVF9MT0dfREVTVF9UQUJMRSk7CisKKwkJCQkJCXZhbHVlc1tBbnVt X3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ2Rlc3QgLSAxXSA9CisJCQkJCQkJQ1N0cmlu Z0dldFRleHREYXR1bShDb25mbGljdExvZ0Rlc3ROYW1lc1tvcHRzLmNvbmZsaWN0bG9nZGVzdF0p OworCQkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dkZXN0 IC0gMV0gPSB0cnVlOworCisJCQkJCQlpZiAod2FudF90YWJsZSAmJiAhaGFzX29sZHRhYmxlKQor CQkJCQkJeworCQkJCQkJCU9pZAkJcmVsaWQ7CisKKwkJCQkJCQlyZWxpZCA9IGNyZWF0ZV9jb25m bGljdF9sb2dfdGFibGUoc3ViaWQsIHN1Yi0+bmFtZSk7CisKKwkJCQkJCQl2YWx1ZXNbQW51bV9w Z19zdWJzY3JpcHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0KKwkJCQkJCQkJCQkJCQkJ T2JqZWN0SWRHZXREYXR1bShyZWxpZCk7CisJCQkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3Jp cHRpb25fc3ViY29uZmxpY3Rsb2dyZWxpZCAtIDFdID0KKwkJCQkJCQkJCQkJCQkJdHJ1ZTsKKwkJ CQkJCX0KKwkJCQkJCWVsc2UgaWYgKCF3YW50X3RhYmxlICYmIGhhc19vbGR0YWJsZSkKKwkJCQkJ CXsKKwkJCQkJCQlPYmplY3RBZGRyZXNzIG9iamVjdDsKKworCQkJCQkJCS8qCisJCQkJCQkJICog Q29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgcmVjb3JkZWQgYXMgaW50ZXJuYWwKKwkJCQkJCQkgKiBk ZXBlbmRlbmNpZXMgb2YgdGhlIHN1YnNjcmlwdGlvbi4gIERyb3AgdGhlCisJCQkJCQkJICogdGFi bGUgaWYgaXQgaXMgbm90IHJlcXVpcmVkIGFueW1vcmUgdG8gYXZvaWQKKwkJCQkJCQkgKiBzdGFs ZSBvciBvcnBoYW5lZCByZWxhdGlvbnMuCisJCQkJCQkJICoKKwkJCQkJCQkgKiBYWFg6IEF0IHBy ZXNlbnQsIG9ubHkgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUKKwkJCQkJCQkgKiBtYW5hZ2VkIHRo aXMgd2F5LiAgSW4gZnV0dXJlIGlmIHdlIGludHJvZHVjZQorCQkJCQkJCSAqIGFkZGl0aW9uYWwg aW50ZXJuYWwgZGVwZW5kZW5jaWVzLCB3ZSBtYXkgbmVlZAorCQkJCQkJCSAqIGEgdGFyZ2V0ZWQg ZGVsZXRpb24gdG8gYXZvaWQgZGVsZXRpb24gb2YgYW55CisJCQkJCQkJICogb3RoZXIgb2JqZWN0 cy4KKwkJCQkJCQkgKi8KKwkJCQkJCQlPYmplY3RBZGRyZXNzU2V0KG9iamVjdCwgU3Vic2NyaXB0 aW9uUmVsYXRpb25JZCwKKwkJCQkJCQkJCQkJIHN1YmlkKTsKKwkJCQkJCQlwZXJmb3JtRGVsZXRp b24oJm9iamVjdCwgRFJPUF9DQVNDQURFLAorCQkJCQkJCQkJCQlQRVJGT1JNX0RFTEVUSU9OX0lO VEVSTkFMIHwKKwkJCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9TS0lQX09SSUdJTkFMKTsKKwor CQkJCQkJCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0g MV0gPQorCQkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShJbnZhbGlkT2lkKTsKKwkJCQkJCQly ZXBsYWNlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJjb25mbGljdGxvZ3JlbGlkIC0gMV0gPQor CQkJCQkJCQkJCQkJdHJ1ZTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCX0KKwogCQkJCXVwZGF0ZV90 dXBsZSA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQl9CkBAIC0yMDI3LDYgKzIxMjIsNyBAQCBEcm9w U3Vic2NyaXB0aW9uKERyb3BTdWJzY3JpcHRpb25TdG10ICpzdG10LCBib29sIGlzVG9wTGV2ZWwp CiAJRm9ybV9wZ19zdWJzY3JpcHRpb24gZm9ybTsKIAlMaXN0CSAgICpyc3RhdGVzOwogCWJvb2wJ CW11c3RfdXNlX3Bhc3N3b3JkOworCU9iamVjdEFkZHJlc3MJb2JqZWN0OwogCiAJLyoKIAkgKiBU aGUgbGF1bmNoZXIgbWF5IGNvbmN1cnJlbnRseSBzdGFydCBhIG5ldyB3b3JrZXIgZm9yIHRoaXMg c3Vic2NyaXB0aW9uLgpAQCAtMjE4NCw2ICsyMjgwLDE5IEBAIERyb3BTdWJzY3JpcHRpb24oRHJv cFN1YnNjcmlwdGlvblN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkKIAkvKiBDbGVhbiB1cCBk ZXBlbmRlbmNpZXMgKi8KIAlkZWxldGVTaGFyZWREZXBlbmRlbmN5UmVjb3Jkc0ZvcihTdWJzY3Jp cHRpb25SZWxhdGlvbklkLCBzdWJpZCwgMCk7CiAKKwkvKgorCSAqIENvbmZsaWN0IGxvZyB0YWJs ZXMgYXJlIHJlY29yZGVkIGFzIGludGVybmFsIGRlcGVuZGVuY2llcyBvZiB0aGUKKwkgKiBzdWJz Y3JpcHRpb24uICBXZSBtdXN0IGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIGJlZm9yZSB0aGUK KwkgKiBzdWJzY3JpcHRpb24gaXRzZWxmIGlzIHJlbW92ZWQuICBCeSB1c2luZworCSAqIFBFUkZP Uk1fREVMRVRJT05fU0tJUF9PUklHSU5BTCwgd2UgZW5zdXJlIHRoYXQgb25seSB0aGUgY29uZmxp Y3QgbG9nCisJICogdGFibGUgaXMgcmVhcGVkIHdoaWxlIHRoZSBzdWJzY3JpcHRpb24gcmVtYWlu cyBmb3IgdGhlIGZpbmFsIGRlbGV0aW9uCisJICogc3RlcC4KKwkgKi8KKwlPYmplY3RBZGRyZXNz U2V0KG9iamVjdCwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOworCXBlcmZvcm1EZWxl dGlvbigmb2JqZWN0LCBEUk9QX0NBU0NBREUsCisJCQkJCVBFUkZPUk1fREVMRVRJT05fSU5URVJO QUwgfAorCQkJCQlQRVJGT1JNX0RFTEVUSU9OX1NLSVBfT1JJR0lOQUwpOworCiAJLyogUmVtb3Zl IGFueSBhc3NvY2lhdGVkIHJlbGF0aW9uIHN5bmNocm9uaXphdGlvbiBzdGF0ZXMuICovCiAJUmVt b3ZlU3Vic2NyaXB0aW9uUmVsKHN1YmlkLCBJbnZhbGlkT2lkKTsKIApAQCAtMzE5MCwzICszMjk5 LDEyNyBAQCBkZWZHZXRTdHJlYW1pbmdNb2RlKERlZkVsZW0gKmRlZikKIAkJCQkJZGVmLT5kZWZu YW1lKSkpOwogCXJldHVybiBMT0dJQ0FMUkVQX1NUUkVBTV9PRkY7CS8qIGtlZXAgY29tcGlsZXIg cXVpZXQgKi8KIH0KKworLyoKKyAqIEJ1aWxkcyB0aGUgVHVwbGVEZXNjIGZvciB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlLgorICovCitzdGF0aWMgVHVwbGVEZXNjCitjcmVhdGVfY29uZmxpY3RfbG9n X3RhYmxlX3R1cGRlc2Modm9pZCkKK3sKKwlUdXBsZURlc2MJdHVwZGVzYzsKKworCXR1cGRlc2Mg PSBDcmVhdGVUZW1wbGF0ZVR1cGxlRGVzYyhNQVhfQ09ORkxJQ1RfQVRUUl9OVU0pOworCisJZm9y IChpbnQgaSA9IDA7IGkgPCBNQVhfQ09ORkxJQ1RfQVRUUl9OVU07IGkrKykKKwl7CisJCU9pZCB0 eXBlX29pZCA9IENvbmZsaWN0TG9nU2NoZW1hW2ldLmF0dHR5cGlkOworCisJCS8qCisJCSAqIFNw ZWNpYWwgaGFuZGxpbmcgZm9yIHRoZSBKU09OIGFycmF5IHR5cGUgZm9yIHByb3BlcgorCQkgKiBU dXBsZURlc2NJbml0RW50cnkgY2FsbC4KKwkJICovCisJCWlmICh0eXBlX29pZCA9PSBKU09OQVJS QVlPSUQpCisJCQl0eXBlX29pZCA9IGdldF9hcnJheV90eXBlKEpTT05PSUQpOworCisJCVR1cGxl RGVzY0luaXRFbnRyeSh0dXBkZXNjLCBpICsgMSwKKwkJCQkJCSAgIENvbmZsaWN0TG9nU2NoZW1h W2ldLmF0dG5hbWUsCisJCQkJCQkgICB0eXBlX29pZCwKKwkJCQkJCSAgIC0xLCAwKTsKKwl9CisK KwlyZXR1cm4gQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7Cit9CisKKy8qCisgKiBDcmVhdGUgYSBz dHJ1Y3R1cmVkIGNvbmZsaWN0IGxvZyB0YWJsZSBmb3IgYSBzdWJzY3JpcHRpb24uCisgKgorICog VGhlIHRhYmxlIGlzIGNyZWF0ZWQgd2l0aGluIHRoZSBzeXN0ZW0tbWFuYWdlZCAncGdfY29uZmxp Y3QnIG5hbWVzcGFjZS4KKyAqIFRoZSB0YWJsZSBuYW1lIGlzIGdlbmVyYXRlZCBhdXRvbWF0aWNh bGx5IHVzaW5nIHRoZSBzdWJzY3JpcHRpb24ncyBPSUQKKyAqIChlLmcuLCAicGdfY29uZmxpY3Rf PHN1YmlkPiIpIHRvIGVuc3VyZSB1bmlxdWVuZXNzIHdpdGhpbiB0aGUgY2x1c3RlciBhbmQKKyAq IHRvIGF2b2lkIGNvbGxpc2lvbnMgZHVyaW5nIHN1YnNjcmlwdGlvbiByZW5hbWVzLgorICovCitz dGF0aWMgT2lkCitjcmVhdGVfY29uZmxpY3RfbG9nX3RhYmxlKE9pZCBzdWJpZCwgY2hhciAqc3Vi bmFtZSkKK3sKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwlPaWQJCQlyZWxpZDsKKwlPYmplY3RBZGRy ZXNzCW15c2VsZjsKKwlPYmplY3RBZGRyZXNzCXN1YmFkZHI7CisJY2hhciAgICAJcmVsbmFtZVtO QU1FREFUQUxFTl07CisKKwlzbnByaW50ZihyZWxuYW1lLCBOQU1FREFUQUxFTiwgInBnX2NvbmZs aWN0XyV1Iiwgc3ViaWQpOworCisJLyogVGhlcmUgY2FuIG5vdCBiZSBhbiBleGlzdGluZyB0YWJs ZSB3aXRoIHRoZSBzYW1lIG5hbWUuICovCisJQXNzZXJ0KCFPaWRJc1ZhbGlkKGdldF9yZWxuYW1l X3JlbGlkKHJlbG5hbWUsIFBHX0NPTkZMSUNUX05BTUVTUEFDRSkpKTsKKworCS8qIEJ1aWxkIHRo ZSB0dXBsZSBkZXNjcmlwdG9yIGZvciB0aGUgbmV3IHRhYmxlLiAqLworCXR1cGRlc2MgPSBjcmVh dGVfY29uZmxpY3RfbG9nX3RhYmxlX3R1cGRlc2MoKTsKKworCS8qIENyZWF0ZSBjb25mbGljdCBs b2cgdGFibGUuICovCisJcmVsaWQgPSBoZWFwX2NyZWF0ZV93aXRoX2NhdGFsb2cocmVsbmFtZSwK KwkJCQkJCQkJCSBQR19DT05GTElDVF9OQU1FU1BBQ0UsCisJCQkJCQkJCQkgMCwJLyogdGFibGVz cGFjZSAqLworCQkJCQkJCQkJIEludmFsaWRPaWQsIC8qIHJlbGlkICovCisJCQkJCQkJCQkgSW52 YWxpZE9pZCwgLyogcmVsdHlwZWlkICovCisJCQkJCQkJCQkgSW52YWxpZE9pZCwgLyogcmVsb2Z0 eXBlaWQgKi8KKwkJCQkJCQkJCSBHZXRVc2VySWQoKSwKKwkJCQkJCQkJCSBIRUFQX1RBQkxFX0FN X09JRCwKKwkJCQkJCQkJCSB0dXBkZXNjLAorCQkJCQkJCQkJIE5JTCwKKwkJCQkJCQkJCSBSRUxL SU5EX1JFTEFUSU9OLAorCQkJCQkJCQkJIFJFTFBFUlNJU1RFTkNFX1BFUk1BTkVOVCwKKwkJCQkJ CQkJCSBmYWxzZSwgLyogc2hhcmVkX3JlbGF0aW9uICovCisJCQkJCQkJCQkgZmFsc2UsIC8qIG1h cHBlZF9yZWxhdGlvbiAqLworCQkJCQkJCQkJIE9OQ09NTUlUX05PT1AsCisJCQkJCQkJCQkgKERh dHVtKSAwLCAvKiByZWxvcHRpb25zICovCisJCQkJCQkJCQkgZmFsc2UsIC8qIHVzZV91c2VyX2Fj bCAqLworCQkJCQkJCQkJIHRydWUsIC8qIGFsbG93X3N5c3RlbV90YWJsZV9tb2RzICovCisJCQkJ CQkJCQkgdHJ1ZSwgLyogaXNfaW50ZXJuYWwgKi8KKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAvKiBy ZWxyZXdyaXRlICovCisJCQkJCQkJCQkgTlVMTCk7IC8qIHR5cGFkZHJlc3MgKi8KKworCS8qCisJ ICogRXN0YWJsaXNoIGFuIGludGVybmFsIGRlcGVuZGVuY3kgYmV0d2VlbiB0aGUgY29uZmxpY3Qg bG9nIHRhYmxlIGFuZAorCSAqIHRoZSBzdWJzY3JpcHRpb24uCisJICoKKwkgKiBXZSB1c2UgREVQ RU5ERU5DWV9JTlRFUk5BTCB0byBzaWduaWZ5IHRoYXQgdGhlIHRhYmxlJ3MgbGlmZWN5Y2xlIGlz CisJICogc3RyaWN0bHkgdGllZCB0byB0aGUgc3Vic2NyaXB0aW9uLCBzaW1pbGFyIHRvIGhvdyBh IFRPQVNUIHRhYmxlIHJlbGF0ZXMKKwkgKiB0byBpdHMgbWFpbiB0YWJsZSBvciBhIHNlcXVlbmNl IHJlbGF0ZXMgdG8gYW4gaWRlbnRpdHkgY29sdW1uLgorCSAqCisJICogVGhpcyBlbnN1cmVzIHRo ZSBjb25mbGljdCBsb2cgdGFibGUgaXMgYXV0b21hdGljYWxseSByZWFwZWQgZHVyaW5nIGEKKwkg KiBEUk9QIFNVQlNDUklQVElPTiB2aWEgcGVyZm9ybURlbGV0aW9uKCkuCisJICovCisJT2JqZWN0 QWRkcmVzc1NldChteXNlbGYsIFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsaWQpOworCU9iamVjdEFk ZHJlc3NTZXQoc3ViYWRkciwgU3Vic2NyaXB0aW9uUmVsYXRpb25JZCwgc3ViaWQpOworCXJlY29y ZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmc3ViYWRkciwgREVQRU5ERU5DWV9JTlRFUk5BTCk7CisK KwkvKiBSZWxlYXNlIHR1cGxlIGRlc2NyaXB0b3IgbWVtb3J5LiAqLworCUZyZWVUdXBsZURlc2Mo dHVwZGVzYyk7CisKKwlyZXR1cm4gcmVsaWQ7Cit9CisKKy8qCisgKiBHZXRMb2dEZXN0aW5hdGlv bgorICoKKyAqIENvbnZlcnQgc3RyaW5nIHRvIGVudW0gYnkgY29tcGFyaW5nIGFnYWluc3Qgc3Rh bmRhcmRpemVkIGxhYmVscy4KKyAqLworQ29uZmxpY3RMb2dEZXN0CitHZXRMb2dEZXN0aW5hdGlv bihjb25zdCBjaGFyICpkZXN0KQoreworCS8qIEVtcHR5IHN0cmluZyBvciBOVUxMIGRlZmF1bHRz IHRvIExPRy4gKi8KKwlpZiAoZGVzdCA9PSBOVUxMIHx8IGRlc3RbMF0gPT0gJ1wwJyB8fCBwZ19z dHJjYXNlY21wKGRlc3QsICJsb2ciKSA9PSAwKQorCQlyZXR1cm4gQ09ORkxJQ1RfTE9HX0RFU1Rf TE9HOworCisJaWYgKHBnX3N0cmNhc2VjbXAoZGVzdCwgInRhYmxlIikgPT0gMCkKKwkJcmV0dXJu IENPTkZMSUNUX0xPR19ERVNUX1RBQkxFOworCisJaWYgKHBnX3N0cmNhc2VjbXAoZGVzdCwgImFs bCIpID09IDApCisJCXJldHVybiBDT05GTElDVF9MT0dfREVTVF9BTEw7CisKKwkvKiBVbnJlY29n bml6ZWQgc3RyaW5nLiAqLworCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKKwkJCSBlcnJtc2coInVucmVjb2duaXplZCBjb25mbGlj dF9sb2dfZGVzdGluYXRpb24gdmFsdWU6IFwiJXNcIiIsIGRlc3QpLAorCQkJIGVycmhpbnQoIlZh bGlkIHZhbHVlcyBhcmUgXCJsb2dcIiwgXCJ0YWJsZVwiLCBhbmQgXCJhbGxcIi4iKSkpOworfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBmOTc2YzBlNWM3ZS4uNGJmMzlmMzU5ZDcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yMzk4LDkgKzIzOTgsMTEgQEAgdHJ1bmNhdGVf Y2hlY2tfcmVsKE9pZCByZWxpZCwgRm9ybV9wZ19jbGFzcyByZWx0dXBsZSkKIAkgKiBwZ19sYXJn ZW9iamVjdCBhbmQgcGdfbGFyZ2VvYmplY3RfbWV0YWRhdGEgdG8gYmUgdHJ1bmNhdGVkIGFzIHBh cnQgb2YKIAkgKiBwZ191cGdyYWRlLCBiZWNhdXNlIHdlIG5lZWQgdG8gY2hhbmdlIGl0cyByZWxm aWxlbm9kZSB0byBtYXRjaCB0aGUgb2xkCiAJICogY2x1c3RlciwgYW5kIGFsbG93aW5nIGEgVFJV TkNBVEUgY29tbWFuZCB0byBiZSBleGVjdXRlZCBpcyB0aGUgZWFzaWVzdAotCSAqIHdheSBvZiBk b2luZyB0aGF0LgorCSAqIHdheSBvZiBkb2luZyB0aGF0LiAgV2UgYWxzbyBhbGxvdyBUUlVOQ0FU RSBvbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlcywKKwkgKiB0byBwZXJtaXQgdXNlcnMgdG8gbWFu dWFsbHkgcHJ1bmUgdGhlc2UgbG9ncyB0byBtYW5hZ2UgZGlzayBzcGFjZS4KIAkgKi8KLQlpZiAo IWFsbG93U3lzdGVtVGFibGVNb2RzICYmIElzU3lzdGVtQ2xhc3MocmVsaWQsIHJlbHR1cGxlKQor CWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgcmVsdHVw bGUpICYmCisJCSFJc0NvbmZsaWN0Q2xhc3MocmVsdHVwbGUpCiAJCSYmICghSXNCaW5hcnlVcGdy YWRlIHx8CiAJCQkocmVsaWQgIT0gTGFyZ2VPYmplY3RSZWxhdGlvbklkICYmCiAJCQkgcmVsaWQg IT0gTGFyZ2VPYmplY3RNZXRhZGF0YVJlbGF0aW9uSWQpKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5j CmluZGV4IGJmZDNlYmM2MDFlLi45NzFiNzVhNTk2ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5j CkBAIC0xMTcwLDYgKzExNzAsMjEgQEAgQ2hlY2tWYWxpZFJlc3VsdFJlbChSZXN1bHRSZWxJbmZv ICpyZXN1bHRSZWxJbmZvLCBDbWRUeXBlIG9wZXJhdGlvbiwKIAkJCQkJCQlSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZXN1bHRSZWwpKSkpOwogCQkJYnJlYWs7CiAJfQorCisJLyoKKwkgKiBDb25m bGljdCBsb2cgdGFibGVzIGFyZSBtYW5hZ2VkIGJ5IHRoZSBzeXN0ZW0gdG8gcmVjb3JkIGxvZ2lj YWwKKwkgKiByZXBsaWNhdGlvbiBjb25mbGljdHMuICBXZSBhbGxvdyBERUxFVEUgdG8gcGVybWl0 IHVzZXJzIHRvIG1hbnVhbGx5CisJICogcHJ1bmUgb3IgdHJ1bmNhdGUgdGhlc2UgbG9ncywgYnV0 IG1hbnVhbCBkYXRhIGluc2VydGlvbiBvciBtb2RpZmljYXRpb24KKwkgKiAoSU5TRVJULCBVUERB VEUsIE1FUkdFKSBpcyBwcm9oaWJpdGVkIHRvIG1haW50YWluIHRoZSBpbnRlZ3JpdHkgb2YgdGhl CisJICogc3lzdGVtLWdlbmVyYXRlZCBsb2dzLgorCSAqLworCWlmIChJc0NvbmZsaWN0TmFtZXNw YWNlKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlc3VsdFJlbCkpICYmCisJCW9wZXJhdGlvbiAhPSBD TURfREVMRVRFKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZG SUNJRU5UX1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygiY2Fubm90IG1vZGlmeSBvciBpbnNlcnQg ZGF0YSBmb3IgY29uZmxpY3QgbG9nIHRhYmxlIFwiJXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZXN1bHRSZWwpKSwKKwkJCQkgZXJyZGV0YWlsKCJDb25mbGljdCBsb2cgdGFi bGVzIGFyZSBzeXN0ZW0tbWFuYWdlZCBhbmQgb25seSBzdXBwb3J0IGNsZWFudXAgdmlhIERFTEVU RSBvciBUUlVOQ0FURS4iKSkpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAzNTg0YzRlMTQyOC4uMjFj ZmUzOTA0MzAgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9i aW4vcHNxbC9kZXNjcmliZS5jCkBAIC02ODA2LDcgKzY4MDYsNyBAQCBkZXNjcmliZVN1YnNjcmlw dGlvbnMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCXByaW50UXVlcnlPcHQg bXlvcHQgPSBwc2V0LnBvcHQ7CiAJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNb XSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKIAkJZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0JZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCWZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxMDAwMDApCiAJewpAQCAtNjkwMCw2 ICs2OTAwLDIwIEBAIGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJCQkJCSAgIiwgc3Vi c2tpcGxzbiBBUyBcIiVzXCJcbiIsCiAJCQkJCQkJICBnZXR0ZXh0X25vb3AoIlNraXAgTFNOIikp OworCisJCS8qIENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiBpcyBzdXBwb3J0ZWQgaW4gdjE5IGFu ZCBoaWdoZXIgKi8KKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQl7CisJCQlhcHBl bmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCSAgIiwgc3ViY29uZmxpY3Rsb2dkZXN0IEFTIFwi JXNcIlxuIiwKKwkJCQkJCQkgIGdldHRleHRfbm9vcCgiQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9u IikpOworCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCSAgIiwgKENBU0UgV0hF TiBzdWJjb25mbGljdGxvZ2Rlc3QgSU4gKCd0YWJsZScsICdhbGwnKSAiCisJCQkJCQkJICAiIFRI RU4gJ3BnX2NvbmZsaWN0XycgfHwgb2lkICIKKwkJCQkJCQkgICIgRUxTRSAnLScgRU5EKSBBUyBc IiVzXCJcbiIsCisJCQkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbmZsaWN0IGxvZyB0YWJsZSIpKTsK KwkJfQogCX0KIAogCS8qIE9ubHkgZGlzcGxheSBzdWJzY3JpcHRpb25zIGluIGN1cnJlbnQgZGF0 YWJhc2UuICovCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9z cmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggOGI5MWJjMDAwNjIuLjEyZWVlOGEw ZDQzIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMzQ0LDggKzIzNDQsOCBAQCBtYXRjaF9w cmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiKCIsICJQVUJM SUNBVElPTiIpOwogCS8qIEFMVEVSIFNVQlNDUklQVElPTiA8bmFtZT4gU0VUICggKi8KIAllbHNl IGlmIChNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlO LCAiU0VUIiwgIigiKSkKLQkJQ09NUExFVEVfV0lUSCgiYmluYXJ5IiwgImRpc2FibGVfb25fZXJy b3IiLCAiZmFpbG92ZXIiLAotCQkJCQkgICJtYXhfcmV0ZW50aW9uX2R1cmF0aW9uIiwgIm9yaWdp biIsCisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25mbGljdF9sb2dfZGVzdGluYXRpb24i LCAiZGlzYWJsZV9vbl9lcnJvciIsCisJCQkJCSAgImZhaWxvdmVyIiwgIm1heF9yZXRlbnRpb25f ZHVyYXRpb24iLCAib3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRfcmVxdWlyZWQiLCAicmV0YWlu X2RlYWRfdHVwbGVzIiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwgInNsb3RfbmFtZSIsICJzdHJl YW1pbmciLAogCQkJCQkgICJzeW5jaHJvbm91c19jb21taXQiLCAidHdvX3BoYXNlIik7CkBAIC0z ODYwLDggKzM4NjAsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJ Q09NUExFVEVfV0lUSCgiV0lUSCAoIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBTVUJTQ1JJUFRJ T04gPG5hbWU+IC4uLiAgV0lUSCAoIDxvcHQ+IiAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueU4sICJXSVRIIiwgIigiKSkKLQkJQ09NUExFVEVf V0lUSCgiYmluYXJ5IiwgImNvbm5lY3QiLCAiY29weV9kYXRhIiwgImNyZWF0ZV9zbG90IiwKLQkJ CQkJICAiZGlzYWJsZV9vbl9lcnJvciIsICJlbmFibGVkIiwgImZhaWxvdmVyIiwKKwkJQ09NUExF VEVfV0lUSCgiYmluYXJ5IiwgImNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiIsICJjb25uZWN0Iiwg ImNvcHlfZGF0YSIsCisJCQkJCSAgImNyZWF0ZV9zbG90IiwgImRpc2FibGVfb25fZXJyb3IiLCAi ZW5hYmxlZCIsICJmYWlsb3ZlciIsCiAJCQkJCSAgIm1heF9yZXRlbnRpb25fZHVyYXRpb24iLCAi b3JpZ2luIiwKIAkJCQkJICAicGFzc3dvcmRfcmVxdWlyZWQiLCAicmV0YWluX2RlYWRfdHVwbGVz IiwKIAkJCQkJICAicnVuX2FzX293bmVyIiwgInNsb3RfbmFtZSIsICJzdHJlYW1pbmciLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9jYXRhbG9nLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL2NhdGFsb2cuaAppbmRleCBhOWQ2ZThlYTk4Ni4uODE5MzIyOWYyZTIgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0YWxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv Y2F0YWxvZy5oCkBAIC0yNSw2ICsyNSw3IEBAIGV4dGVybiBib29sIElzSW5wbGFjZVVwZGF0ZVJl bGF0aW9uKFJlbGF0aW9uIHJlbGF0aW9uKTsKIAogZXh0ZXJuIGJvb2wgSXNTeXN0ZW1DbGFzcyhP aWQgcmVsaWQsIEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOwogZXh0ZXJuIGJvb2wgSXNUb2FzdENs YXNzKEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOworZXh0ZXJuIGJvb2wgSXNDb25mbGljdENsYXNz KEZvcm1fcGdfY2xhc3MgcmVsdHVwbGUpOwogCiBleHRlcm4gYm9vbCBJc0NhdGFsb2dSZWxhdGlv bk9pZChPaWQgcmVsaWQpOwogZXh0ZXJuIGJvb2wgSXNDYXRhbG9nVGV4dFVuaXF1ZUluZGV4T2lk KE9pZCByZWxpZCk7CkBAIC0zMiw2ICszMyw3IEBAIGV4dGVybiBib29sIElzSW5wbGFjZVVwZGF0 ZU9pZChPaWQgcmVsaWQpOwogCiBleHRlcm4gYm9vbCBJc0NhdGFsb2dOYW1lc3BhY2UoT2lkIG5h bWVzcGFjZUlkKTsKIGV4dGVybiBib29sIElzVG9hc3ROYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlk KTsKK2V4dGVybiBib29sIElzQ29uZmxpY3ROYW1lc3BhY2UoT2lkIG5hbWVzcGFjZUlkKTsKIAog ZXh0ZXJuIGJvb2wgSXNSZXNlcnZlZE5hbWUoY29uc3QgY2hhciAqbmFtZSk7CiAKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfbmFtZXNwYWNlLmRhdAppbmRleCAzMDc1ZTE0MmM3My4uYjQ1Y2I5MzgzYTggMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfbmFtZXNwYWNlLmRhdAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX25hbWVzcGFjZS5kYXQKQEAgLTE4LDYgKzE4LDkgQEAKIHsgb2lk ID0+ICc5OScsIG9pZF9zeW1ib2wgPT4gJ1BHX1RPQVNUX05BTUVTUEFDRScsCiAgIGRlc2NyID0+ ICdyZXNlcnZlZCBzY2hlbWEgZm9yIFRPQVNUIHRhYmxlcycsCiAgIG5zcG5hbWUgPT4gJ3BnX3Rv YXN0JywgbnNwYWNsID0+ICdfbnVsbF8nIH0sCit7IG9pZCA9PiAnMTM4MicsIG9pZF9zeW1ib2wg PT4gJ1BHX0NPTkZMSUNUX05BTUVTUEFDRScsCisgIGRlc2NyID0+ICdyZXNlcnZlZCBzY2hlbWEg Zm9yIHN1YnNjcmlwdGlvbi1zcGVjaWZpYyBjb25mbGljdCBsb2cgdGFibGVzJywKKyAgbnNwbmFt ZSA9PiAncGdfY29uZmxpY3QnLCBuc3BhY2wgPT4gJ19udWxsXycgfSwKICMgdXBkYXRlIGR1bXBO YW1lc3BhY2UoKSBpZiBjaGFuZ2luZyB0aGlzIGRlc2NyCiB7IG9pZCA9PiAnMjIwMCcsIG9pZF9z eW1ib2wgPT4gJ1BHX1BVQkxJQ19OQU1FU1BBQ0UnLAogICBkZXNjciA9PiAnc3RhbmRhcmQgcHVi bGljIHNjaGVtYScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1YnNjcmlw dGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaAppbmRleCBmMzU3 MWQyYmZjZi4uNzZhNDYzOGIzODkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf c3Vic2NyaXB0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24u aApAQCAtOTAsNiArOTAsNyBAQCBDQVRBTE9HKHBnX3N1YnNjcmlwdGlvbiw2MTAwLFN1YnNjcmlw dGlvblJlbGF0aW9uSWQpIEJLSV9TSEFSRURfUkVMQVRJT04gQktJX1JPVwogCQkJCQkJCQkJICog ZXhjZWVkZWQgbWF4X3JldGVudGlvbl9kdXJhdGlvbiwgd2hlbgogCQkJCQkJCQkJICogZGVmaW5l ZCAqLwogCisJT2lkICAgICAgICAgc3ViY29uZmxpY3Rsb2dyZWxpZDsgLyogUmVsaWQgb2YgdGhl IGNvbmZsaWN0IGxvZyB0YWJsZS4gKi8KICNpZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlh YmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwogCS8qIENvbm5lY3Rpb24gc3RyaW5nIHRv IHRoZSBwdWJsaXNoZXIgKi8KIAl0ZXh0CQlzdWJjb25uaW5mbyBCS0lfRk9SQ0VfTk9UX05VTEw7 CkBAIC0xMDMsNiArMTA0LDE0IEBAIENBVEFMT0cocGdfc3Vic2NyaXB0aW9uLDYxMDAsU3Vic2Ny aXB0aW9uUmVsYXRpb25JZCkgQktJX1NIQVJFRF9SRUxBVElPTiBCS0lfUk9XCiAJLyogTGlzdCBv ZiBwdWJsaWNhdGlvbnMgc3Vic2NyaWJlZCB0byAqLwogCXRleHQJCXN1YnB1YmxpY2F0aW9uc1sx XSBCS0lfRk9SQ0VfTk9UX05VTEw7CiAKKwkvKgorCSAqIFN0cmF0ZWd5IGZvciBsb2dnaW5nIHJl cGxpY2F0aW9uIGNvbmZsaWN0czoKKwkgKiAnbG9nJyAtIHNlcnZlciBsb2cgb25seSwKKwkgKiAn dGFibGUnIC0gY29uZmxpY3QgbG9nIHRhYmxlIG9ubHksCisJICogJ2FsbCcgLSBib3RoIGxvZyBh bmQgdGFibGUuCisJICovCisJdGV4dAkJc3ViY29uZmxpY3Rsb2dkZXN0OworCiAJLyogT25seSBw dWJsaXNoIGRhdGEgb3JpZ2luYXRpbmcgZnJvbSB0aGUgc3BlY2lmaWVkIG9yaWdpbiAqLwogCXRl eHQJCXN1Ym9yaWdpbiBCS0lfREVGQVVMVChMT0dJQ0FMUkVQX09SSUdJTl9BTlkpOwogI2VuZGlm CkBAIC0xNTIsMTIgKzE2MSwxNCBAQCB0eXBlZGVmIHN0cnVjdCBTdWJzY3JpcHRpb24KIAkJCQkJ CQkJCSAqIGFuZCB0aGUgcmV0ZW50aW9uIGR1cmF0aW9uIGhhcyBub3QKIAkJCQkJCQkJCSAqIGV4 Y2VlZGVkIG1heF9yZXRlbnRpb25fZHVyYXRpb24sIHdoZW4KIAkJCQkJCQkJCSAqIGRlZmluZWQg Ki8KKwlPaWQJCQljb25mbGljdGxvZ3JlbGlkOwkvKiBjb25mbGljdCBsb2cgdGFibGUgT2lkICov CiAJY2hhcgkgICAqY29ubmluZm87CQkvKiBDb25uZWN0aW9uIHN0cmluZyB0byB0aGUgcHVibGlz aGVyICovCiAJY2hhcgkgICAqc2xvdG5hbWU7CQkvKiBOYW1lIG9mIHRoZSByZXBsaWNhdGlvbiBz bG90ICovCiAJY2hhcgkgICAqc3luY2NvbW1pdDsJCS8qIFN5bmNocm9ub3VzIGNvbW1pdCBzZXR0 aW5nIGZvciB3b3JrZXIgKi8KIAlMaXN0CSAgICpwdWJsaWNhdGlvbnM7CS8qIExpc3Qgb2YgcHVi bGljYXRpb24gbmFtZXMgdG8gc3Vic2NyaWJlIHRvICovCiAJY2hhcgkgICAqb3JpZ2luOwkJCS8q IE9ubHkgcHVibGlzaCBkYXRhIG9yaWdpbmF0aW5nIGZyb20gdGhlCiAJCQkJCQkJCSAqIHNwZWNp ZmllZCBvcmlnaW4gKi8KKwljaGFyCSAgICpjb25mbGljdGxvZ2Rlc3Q7CS8qIENvbmZsaWN0IGxv ZyBkZXN0aW5hdGlvbiAqLwogfSBTdWJzY3JpcHRpb247CiAKICNpZmRlZiBFWFBPU0VfVE9fQ0xJ RU5UX0NPREUKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNt ZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaAppbmRleCA2MzUw NDIzMmExNC4uYTg5NTEyN2Y4ZmUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3N1 YnNjcmlwdGlvbmNtZHMuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zdWJzY3JpcHRpb25j bWRzLmgKQEAgLTE3LDYgKzE3LDcgQEAKIAogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVz cy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisjaW5jbHVkZSAicmVwbGljYXRp b24vY29uZmxpY3QuaCIKIAogZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlU3Vic2NyaXB0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJ CQkJCQlib29sIGlzVG9wTGV2ZWwpOwpAQCAtMzYsNCArMzcsNiBAQCBleHRlcm4gdm9pZCBDaGVj a1N1YkRlYWRUdXBsZVJldGVudGlvbihib29sIGNoZWNrX2d1YywgYm9vbCBzdWJfZGlzYWJsZWQs CiAJCQkJCQkJCQkgICBib29sIHJldGVudGlvbl9hY3RpdmUsCiAJCQkJCQkJCQkgICBib29sIG1h eF9yZXRlbnRpb25fc2V0KTsKIAorZXh0ZXJuIENvbmZsaWN0TG9nRGVzdCBHZXRMb2dEZXN0aW5h dGlvbihjb25zdCBjaGFyICpkZXN0KTsKKwogI2VuZGlmCQkJCQkJCS8qIFNVQlNDUklQVElPTkNN RFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaCBi L3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKaW5kZXggZDUzODI3NDYzN2YuLjRl NGY1OWJiNDUzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5o CisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKQEAgLTEwLDYgKzEwLDcg QEAKICNkZWZpbmUgQ09ORkxJQ1RfSAogCiAjaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZzLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAibm9kZXMvcGdfbGlzdC5oIgog I2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgogCkBAIC03OSw2ICs4MCw2MCBAQCB0eXBlZGVm IHN0cnVjdCBDb25mbGljdFR1cGxlSW5mbwogCQkJCQkJCQkgKiBjb25mbGljdGluZyBsb2NhbCBy b3cgb2NjdXJyZWQgKi8KIH0gQ29uZmxpY3RUdXBsZUluZm87CiAKKy8qCisgKiBDb25mbGljdCBs b2cgZGVzdGluYXRpb24gdHlwZXMuCisgKgorICogVGhlc2UgdmFsdWVzIGFyZSBkZWZpbmVkIGFz IGJpdG1hc2sgZmxhZ3MgdG8gYWxsb3cgZm9yIG11bHRpcGxlIHNpbXVsdGFuZW91cworICogbG9n Z2luZyBkZXN0aW5hdGlvbnMgKGUuZy4sIGxvZ2dpbmcgdG8gYm90aCBzeXN0ZW0gbG9ncyBhbmQg YSB0YWJsZSkuCisgKiBJbnRlcm5hbGx5LCB3ZSB1c2UgdGhlc2UgZm9yIGJpdHdpc2UgY29tcGFy aXNvbnMgKElzU2V0KSwgYnV0IHRoZSBzdHJpbmcKKyAqIHJlcHJlc2VudGF0aW9uIGlzIHN0b3Jl ZCBpbiBwZ19zdWJzY3JpcHRpb24uc3ViY29uZmxpY3Rsb2dkZXN0LgorICovCit0eXBlZGVmIGVu dW0gQ29uZmxpY3RMb2dEZXN0Cit7CisJLyogTG9nIGNvbmZsaWN0cyB0byB0aGUgc2VydmVyIGxv Z3MgKi8KKwlDT05GTElDVF9MT0dfREVTVF9MT0cgICA9IDEgPDwgMCwgICAvKiAweDAxICovCisK KwkvKiBMb2cgY29uZmxpY3RzIHRvIGFuIGludGVybmFsbHkgbWFuYWdlZCBjb25mbGljdCBsb2cg dGFibGUgKi8KKwlDT05GTElDVF9MT0dfREVTVF9UQUJMRSA9IDEgPDwgMSwgICAvKiAweDAyICov CisKKwkvKiBDb252ZW5pZW5jZSBiaXRtYXNrIGZvciBhbGwgc3VwcG9ydGVkIGRlc3RpbmF0aW9u cyAqLworCUNPTkZMSUNUX0xPR19ERVNUX0FMTCAgID0gKENPTkZMSUNUX0xPR19ERVNUX0xPRyB8 IENPTkZMSUNUX0xPR19ERVNUX1RBQkxFKQorfSBDb25mbGljdExvZ0Rlc3Q7CisKKy8qCisgKiBB cnJheSBtYXBwaW5nIGZvciBjb252ZXJ0aW5nIGludGVybmFsIGVudW0gdG8gc3RyaW5nLgorICov CitzdGF0aWMgY29uc3QgY2hhciAqY29uc3QgQ29uZmxpY3RMb2dEZXN0TmFtZXNbXSA9IHsKKwlb Q09ORkxJQ1RfTE9HX0RFU1RfTE9HXSA9ICJsb2ciLAorCVtDT05GTElDVF9MT0dfREVTVF9UQUJM RV0gPSAidGFibGUiLAorCVtDT05GTElDVF9MT0dfREVTVF9BTExdID0gImFsbCIKK307CisKKy8q IFN0cnVjdHVyZSB0byBob2xkIG1ldGFkYXRhIGZvciBvbmUgY29sdW1uIG9mIHRoZSBjb25mbGlj dCBsb2cgdGFibGUgKi8KK3R5cGVkZWYgc3RydWN0IENvbmZsaWN0TG9nQ29sdW1uRGVmCit7CisJ Y29uc3QgY2hhciAqYXR0bmFtZTsgICAgLyogQ29sdW1uIG5hbWUgKi8KKwlPaWQgICAgICAgICBh dHR0eXBpZDsgICAvKiBEYXRhIHR5cGUgT0lEICovCit9IENvbmZsaWN0TG9nQ29sdW1uRGVmOwor CisvKiBUaGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCBmb3IgdGhlIGNvbmZsaWN0IGxvZyB0YWJs ZSBzY2hlbWEgKi8KK3N0YXRpYyBjb25zdCBDb25mbGljdExvZ0NvbHVtbkRlZiBDb25mbGljdExv Z1NjaGVtYVtdID0KK3sKKwl7IC5hdHRuYW1lID0gInJlbGlkIiwgICAgICAgICAgICAuYXR0dHlw aWQgPSBPSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gInNjaGVtYW5hbWUiLCAgICAgICAuYXR0dHlw aWQgPSBURVhUT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZWxuYW1lIiwgICAgICAgICAgLmF0dHR5 cGlkID0gVEVYVE9JRCB9LAorCXsgLmF0dG5hbWUgPSAiY29uZmxpY3RfdHlwZSIsICAgIC5hdHR0 eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV94aWQiLCAgICAgICAuYXR0 dHlwaWQgPSBYSURPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9jb21taXRfbHNuIiwuYXR0 dHlwaWQgPSBMU05PSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlbW90ZV9jb21taXRfdHMiLCAuYXR0 dHlwaWQgPSBUSU1FU1RBTVBUWk9JRCB9LAorCXsgLmF0dG5hbWUgPSAicmVtb3RlX29yaWdpbiIs ICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0gInJlcGxpY2FfaWRlbnRp dHkiLCAuYXR0dHlwaWQgPSBKU09OT0lEIH0sCisJeyAuYXR0bmFtZSA9ICJyZW1vdGVfdHVwbGUi LCAgICAgLmF0dHR5cGlkID0gSlNPTk9JRCB9LAorCXsgLmF0dG5hbWUgPSAibG9jYWxfY29uZmxp Y3RzIiwgIC5hdHR0eXBpZCA9IEpTT05BUlJBWU9JRCB9Cit9OworCisjZGVmaW5lIE1BWF9DT05G TElDVF9BVFRSX05VTSBsZW5ndGhvZihDb25mbGljdExvZ1NjaGVtYSkKKwogZXh0ZXJuIGJvb2wg R2V0VHVwbGVUcmFuc2FjdGlvbkluZm8oVHVwbGVUYWJsZVNsb3QgKmxvY2Fsc2xvdCwKIAkJCQkJ CQkJCVRyYW5zYWN0aW9uSWQgKnhtaW4sCiAJCQkJCQkJCQlSZXBPcmlnaW5JZCAqbG9jYWxvcmln aW4sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKaW5kZXggYjNl Y2NkOGFmZTMuLmI5NGJjYzNjYzIzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJz Y3JpcHRpb24ub3V0CkBAIC0xMTYsMTggKzExNiwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YjQgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQ VQogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0 ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3Jl YXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFs dGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKyByZWdy ZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9u X3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBk ZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwg e3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAg ICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg MCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVz c19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwg LQogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViNCBTRVQgKG9y aWdpbiA9IGFueSk7CiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3Vi NCB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vic2Ny aXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAg fCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9n ICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIzOwpAQCAtMTQ1LDEwICsxNDUsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdmb29iYXInOwogRVJST1I6ICBpbnZhbGlkIGNv bm5lY3Rpb24gc3RyaW5nIHN5bnRheDogbWlzc2luZyAiPSIgYWZ0ZXIgImZvb2JhciIgaW4gY29u bmVjdGlvbiBpbmZvIHN0cmluZwogCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAg T3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFt aW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNz d29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1 cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hy b25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFy YWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAw MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5n IHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29y ZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxl cyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENv bmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAg ICAgICAgICB8IC0KICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgUFVCTElDQVRJT04gdGVzdHB1YjIsIHRlc3RwdWIzIFdJVEggKHJlZnJlc2ggPSBmYWxz ZSk7CkBAIC0xNTcsMTAgKzE1NywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc2xvdF9uYW1lID0gJ25ld25hbWUnKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNlKTsKIEFMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChydW5fYXNfb3duZXIgPSB0cnVlKTsKIFxkUnMr Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVu dGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBw YXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBv ZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAw MDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFi bGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCBmICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCBmICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 MiB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAK IEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJl ZCA9IHRydWUpOwpAQCAtMTc2LDEwICsxNzYsMTAgQEAgRVJST1I6ICB1bnJlY29nbml6ZWQgc3Vi c2NyaXB0aW9uIHBhcmFtZXRlcjogImNyZWF0ZV9zbG90IgogLS0gb2sKIEFMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNuID0gJzAvMTIzNDUnKTsKIFxkUnMrCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAg ICBQdWJsaWNhdGlvbiAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFz IG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBk dXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAxMjM0NQor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBk ZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lw IExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCist LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAg IHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAv MDAwMTIzNDUgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIC0tIG9r IC0gd2l0aCBsc24gPSBOT05FCkBAIC0xODgsMTAgKzE4OCwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9IE5PTkUpOwogQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChsc24gPSAnMC8wJyk7CiBFUlJPUjogIGludmFsaWQgV0FM IGxvY2F0aW9uIChMU04pOiAwLzAKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0 YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3Rp dmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg IFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25z CisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRp b24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVz dGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAg ICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAg ICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIEJFR0lOOwpAQCAtMjIzLDEwICsyMjMsMTAgQEAg QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1Yl9mb28gU0VUIChzeW5jaHJvbm91c19j b21taXQgPSBmb29iYXIpOwogRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBwYXJhbWV0ZXIgInN5 bmNocm9ub3VzX2NvbW1pdCI6ICJmb29iYXIiCiBISU5UOiAgQXZhaWxhYmxlIHZhbHVlczogbG9j YWwsIHJlbW90ZV93cml0ZSwgcmVtb3RlX2FwcGx5LCBvbiwgb2ZmLgogXGRScysKLSAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAg ICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg ICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9u IGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVzc19z dWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAg IHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkg ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAg ICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAg IHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAv MDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICAgIE5hbWUgICAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9u ICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0 ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAg ICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxp Y3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNz X3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgbG9jYWwgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0MiB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAg ICAgfCAtCiAoMSByb3cpCiAKIC0tIHJlbmFtZSBiYWNrIHRvIGtlZXAgdGhlIHJlc3Qgc2ltcGxl CkBAIC0yNTUsMTkgKzI1NSwxOSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzog IHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBU byBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBs aWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJz Y3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg IFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rz dWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg dCAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAK Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgdCAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAg ICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKGJpbmFyeSA9IGZhbHNlKTsKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKIFxkUnMrCi0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlv biBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAg ICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQotIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg UmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBh Y3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRh YmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxl bCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwg bG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiBEUk9QIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWI7CkBAIC0yNzksMjcgKzI3OSwyNyBAQCBDUkVBVEUgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBj b25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFs bHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwg YW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMK LSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8 IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERp c2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25l cj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRp b24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAg ICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1 YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24g fCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmlu Zm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENv bmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb24gICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYg ICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAg ICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwg MC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxU RVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHBhcmFsbGVs KTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlv biBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBk Ym5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0 aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFi bGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0 IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFz IG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBk dXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0 aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3Nf dGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9 ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93 KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5nID0g ZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFt ZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRp b25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQg ICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFz ZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQg fCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0 ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8 ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBsb2cg ZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisg cmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7 dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAw IHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAgfCAt CiAoMSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNhdGlvbiBhbHJlYWR5IGV4aXN0cwpAQCAtMzE0 LDEwICszMTQsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVC TElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJlZnIKIEFMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX3Rlc3RzdWIgQUREIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBXSVRI IChyZWZyZXNoID0gZmFsc2UpOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjEiIGlzIGFs cmVhZHkgaW4gc3Vic2NyaXB0aW9uICJyZWdyZXNzX3Rlc3RzdWIiCiBcZFJzKwotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAg ICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAg ICAgICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRl bnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yix0ZXN0cHViMSx0ZXN0cHVi Mn0gfCBmICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAg ICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAg ICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAg ICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgICAg IFB1YmxpY2F0aW9uICAgICAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlv biBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3Rp bmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIxLHRlc3RwdWIyfSB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBs b2cgICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIC0tIGZhaWwgLSBwdWJsaWNh dGlvbiB1c2VkIG1vcmUgdGhhbiBvbmNlCkBAIC0zMzIsMTAgKzMzMiwxMCBAQCBFUlJPUjogIHB1 YmxpY2F0aW9uICJ0ZXN0cHViMyIgaXMgbm90IGluIHN1YnNjcmlwdGlvbiAicmVncmVzc190ZXN0 c3ViIgogLS0gb2sgLSBkZWxldGUgcHVibGljYXRpb25zCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViIERST1AgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIyIFdJVEggKHJl ZnJlc2ggPSBmYWxzZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwg VHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCBy ZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8 IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMg Y29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAg IHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAg ICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdv LXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1 aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1h eCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29t bWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0 IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJl Z3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAgICAgICAgICAgICAgICAgICAg ICB8IC0KICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViOwpAQCAt MzcxLDE5ICszNzEsMTkgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09O TkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJz Y3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5p dGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRp b24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0 aW9uIHRvIHJlZnJlc2ggcHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8 IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2lu IHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4g ZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lw IExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwg cmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAg ICB8IHBhcmFsbGVsICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAg ICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAv MDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExT TiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25f dXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IHAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAg ICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAg ICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIC0tIHdlIGNhbiBhbHRlciBzdHJlYW1pbmcg d2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAg ICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0 cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwg UGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVh ZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExT TiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8 IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAw MDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVh bWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFz c3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0 dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAg fCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNl ciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IHAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAg ICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTM5MywxMCArMzkzLDEwIEBAIENSRUFU RSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCcgUFVCCiBXQVJOSU5HOiAgc3Vic2NyaXB0aW9uIHdhcyBjcmVhdGVkLCBi dXQgaXMgbm90IGNvbm5lY3RlZAogSElOVDogIFRvIGluaXRpYXRlIHJlcGxpY2F0aW9uLCB5b3Ug bXVzdCBtYW51YWxseSBjcmVhdGUgdGhlIHJlcGxpY2F0aW9uIHNsb3QsIGVuYWJsZSB0aGUgc3Vi c2NyaXB0aW9uLCBhbmQgYWx0ZXIgdGhlIHN1YnNjcmlwdGlvbiB0byByZWZyZXNoIHB1YmxpY2F0 aW9ucy4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVu dGlvbiBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAg ICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3Vz ZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAg ICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAg fCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2Ny aXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBF bmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29t bWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVu IGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlv biBkdXJhdGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3Rp bmF0aW9uIHwgQ29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jl c3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3Rw dWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBwICAgICAgICAgICAgICAgIHwgZiAgICAgICAg ICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYg ICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYg ICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEg cm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1l ID0gTk9ORSk7CkBAIC00MDksMTggKzQwOSwxOCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jl c3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgog V0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQK IEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRl IHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVy IHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5h bWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0 aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRl bnRpb24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAg ICAgICAgIHwgIFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdy ZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0 cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBm ICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBm ICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9l c25vdGV4aXN0IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUg ICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9u IHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJy b3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3Zl ciB8IFJldGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRp b24gYWN0aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAg ICAgIHwgIFNraXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxv ZyB0YWJsZSAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFy YWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2Zm ICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAw MCB8IGxvZyAgICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKGRpc2FibGVfb25fZXJyb3IgPSB0cnVlKTsKIFxk UnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJh dGlvbiB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAg IHwgdCAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgMCB8IGYgICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAwMDAwMDAwCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwor ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgUmV0YWluIGRlYWQgdHVwbGVzIHwgTWF4IHJldGVudGlvbiBkdXJhdGlv biB8IFJldGVudGlvbiBhY3RpdmUgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25u aW5mbyAgICAgICAgICAgfCAgU2tpcCBMU04gIHwgQ29uZmxpY3QgbG9nIGRlc3RpbmF0aW9uIHwg Q29uZmxpY3QgbG9nIHRhYmxlIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBm ICAgICAgfCBwYXJhbGxlbCAgfCBkICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICAgICB8 IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwg ZiAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgMCB8IGYgICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAwLzAwMDAwMDAwIHwgbG9nICAgICAgICAgICAgICAgICAgICAgIHwgLQogKDEgcm93KQogCiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7 CkBAIC00MzMsMTAgKzQzMywxMCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1 YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzog IHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBU byBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBs aWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJz Y3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCiBcZFJzKwotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAg fCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmlu YXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBP cmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJl dGFpbiBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0 aXZlIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwg IFNraXAgTFNOICAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3Rz dWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwg ZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAg fCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8 IGYgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 IHwgMC8wMDAwMDAwMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFJldGFp biBkZWFkIHR1cGxlcyB8IE1heCByZXRlbnRpb24gZHVyYXRpb24gfCBSZXRlbnRpb24gYWN0aXZl IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgIFNr aXAgTFNOICB8IENvbmZsaWN0IGxvZyBkZXN0aW5hdGlvbiB8IENvbmZsaWN0IGxvZyB0YWJsZSAK Ky0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgIDAgfCBmICAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wMDAwMDAwMCB8IGxvZyAg ICAgICAgICAgICAgICAgICAgICB8IC0KICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtNDUwLDE5ICs0NTAsMTkg QEAgTk9USUNFOiAgbWF4X3JldGVudGlvbl9kdXJhdGlvbiBpcyBpbmVmZmVjdGl2ZSB3aGVuIHJl dGFpbl9kZWFkX3R1cGxlcyBpcyBkaXNhYmwKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNy ZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRp b24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxl IHRoZSBzdWJzY3JpcHRpb24sIGFuZCBhbHRlciB0aGUgc3Vic2NyaXB0aW9uIHRvIHJlZnJlc2gg cHVibGljYXRpb25zLgogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3 by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVx dWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBN YXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgCi0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAxMDAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBv ZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1w aGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWly ZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXgg cmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBTa2lwIExTTiAgfCBDb25mbGljdCBs b2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUgCistLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t CisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAg fCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBm ICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAx MDAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdy ZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cgICAgICAgICAgICAgICAgICAgICAg fCAtCiAoMSByb3cpCiAKIC0tIG9rCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi IFNFVCAobWF4X3JldGVudGlvbl9kdXJhdGlvbiA9IDApOwogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJp bmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwg T3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBS ZXRhaW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFj dGl2ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 ICBTa2lwIExTTiAgCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IHBhcmFsbGVsICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg fCBmICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IDAvMDAwMDAwMDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1lICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBSZXRh aW4gZGVhZCB0dXBsZXMgfCBNYXggcmV0ZW50aW9uIGR1cmF0aW9uIHwgUmV0ZW50aW9uIGFjdGl2 ZSB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8ICBT a2lwIExTTiAgfCBDb25mbGljdCBsb2cgZGVzdGluYXRpb24gfCBDb25mbGljdCBsb2cgdGFibGUg CistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IHBhcmFsbGVsICB8 IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICAgICAwIHwgZiAgICAgICAgICAgICAgICB8IG9mZiAgICAgICAg ICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMDAwMDAwMDAgfCBsb2cg ICAgICAgICAgICAgICAgICAgICAgfCAtCiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiBy ZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25hbWUgPSBOT05FKTsKQEAgLTUxNyw2ICs1MTcsMjc0 IEBAIENPTU1JVDsKIC0tIG9rLCBvd25pbmcgaXQgaXMgZW5vdWdoIGZvciB0aGlzIHN0dWZmCiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7 CiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CistLQorLS0gQ09ORkxJQ1QgTE9H IERFU1RJTkFUSU9OIFRFU1RTCistLQorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiAncmVncmVz c19zdWJzY3JpcHRpb25fdXNlcic7CistLSBmYWlsIC0gdW5yZWNvZ25pemVkIHBhcmFtZXRlciB2 YWx1ZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2ZhaWwgQ09OTkVDVElP TiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEgg KGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2ludmFsaWQnKTsK K0VSUk9SOiAgdW5yZWNvZ25pemVkIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiB2YWx1ZTogImlu dmFsaWQiCitISU5UOiAgVmFsaWQgdmFsdWVzIGFyZSAibG9nIiwgInRhYmxlIiwgYW5kICJhbGwi LgorLS0gdmVyaWZ5IHN1YmNvbmZsaWN0bG9nZGVzdCBpcyAnbG9nJyBhbmQgcmVsaWQgaXMgMCAo SW52YWxpZE9pZCkgZm9yIGRlZmF1bHQgY2FzZQorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X2xvZ19kZWZhdWx0IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UpOworV0FSTklO RzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6 ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSBy ZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBz dWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCitTRUxFQ1Qgc3VibmFtZSwgc3Vi Y29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlv biBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQnOworICAgICAg ICAgICBzdWJuYW1lICAgICAgICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBzdWJjb25mbGlj dGxvZ3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1 bHQgfCBsb2cgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAwCisoMSByb3cpCisK Ky0tIHZlcmlmeSBlbXB0eSBzdHJpbmcgZGVmYXVsdHMgdG8gJ2xvZycKK0NSRUFURSBTVUJTQ1JJ UFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jl c3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxz ZSwgY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJycpOworV0FSTklORzogIHN1YnNjcmlwdGlv biB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSBy ZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90 LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8g cmVmcmVzaCBwdWJsaWNhdGlvbnMuCitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0 LCBzdWJjb25mbGljdGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1l ID0gJ3JlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyJzsKKyAgICAgICAgICBzdWJuYW1lICAgICAg ICAgICB8IHN1YmNvbmZsaWN0bG9nZGVzdCB8IHN1YmNvbmZsaWN0bG9ncmVsaWQgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIHwgbG9nICAgICAgICAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgMAorKDEgcm93KQorCistLSB0aGlzIHNob3VsZCBnZW5lcmF0 ZSBhbiBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUgbmFtZWQgcGdfY29uZmxpY3RfJHN1Ymlk JAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIENPTk5FQ1RJT04g J2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChj b25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworV0FS TklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJ TlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRo ZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRo ZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCistLSBjaGVjayBtZXRhZGF0 YSBpbiBwZ19zdWJzY3JpcHRpb246IGRlc3RpbmF0aW9uIHNob3VsZCBiZSAndGFibGUnIGFuZCBy ZWxpZCB2YWxpZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxp Y3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBz dWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworICAgICAgICBzdWJuYW1lICAgICAg ICAgfCBzdWJjb25mbGljdGxvZ2Rlc3QgfCBoYXNfcmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0 X3Rlc3QxIHwgdGFibGUgICAgICAgICAgICAgIHwgdAorKDEgcm93KQorCistLSB2ZXJpZnkgdGhl IHBoeXNpY2FsIHRhYmxlIGV4aXN0cywgaXRzIE9JRCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9ncmVs aWQsCistLSBhbmQgaXQgaXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UK K1NFTEVDVCBuLm5zcG5hbWUsIChjLm9pZCA9IHMuc3ViY29uZmxpY3Rsb2dyZWxpZCkgQVMgIm9p ZF9tYXRjaGVzIgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMu cmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitKT0lOIHBnX25hbWVzcGFjZSBuIE9O IGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X3Rlc3QxJzsKKyAgIG5zcG5hbWUgICB8IG9pZF9tYXRjaGVzIAorLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tCisgcGdfY29uZmxpY3QgfCB0CisoMSByb3cpCisKKy0tIGNoZWNrIGlmIHRo ZSBjb25mbGljdCBsb2cgdGFibGUgaGFzIHRoZSBjb3JyZWN0IHNjaGVtYQorU0VMRUNUIGEuYXR0 bnVtLCBhLmF0dG5hbWUKK0ZST00gcGdfYXR0cmlidXRlIGEKK0pPSU4gcGdfY2xhc3MgYyBPTiBh LmF0dHJlbGlkID0gYy5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gYy5yZWxuYW1lID0g J3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X3Rlc3QxJyBBTkQgYS5hdHRudW0gPiAwCisgICAgT1JERVIgQlkgYS5hdHRudW07CisgYXR0 bnVtIHwgICAgICBhdHRuYW1lICAgICAgCistLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAgICAxIHwgcmVsaWQKKyAgICAgIDIgfCBzY2hlbWFuYW1lCisgICAgICAzIHwgcmVsbmFtZQor ICAgICAgNCB8IGNvbmZsaWN0X3R5cGUKKyAgICAgIDUgfCByZW1vdGVfeGlkCisgICAgICA2IHwg cmVtb3RlX2NvbW1pdF9sc24KKyAgICAgIDcgfCByZW1vdGVfY29tbWl0X3RzCisgICAgICA4IHwg cmVtb3RlX29yaWdpbgorICAgICAgOSB8IHJlcGxpY2FfaWRlbnRpdHkKKyAgICAgMTAgfCByZW1v dGVfdHVwbGUKKyAgICAgMTEgfCBsb2NhbF9jb25mbGljdHMKKygxMSByb3dzKQorCistLQorLS0g QUxURVIgU1VCU0NSSVBUSU9OIC0gY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uIHN0YXRlIHRyYW5z aXRpb25zCistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRoZSB0cmFuc2l0aW9uIGxvZ2ljIGJl dHdlZW4gZGlmZmVyZW50IGxvZ2dpbmcKKy0tIGRlc3RpbmF0aW9ucywgZW5zdXJpbmcgY29uZmxp Y3QgbG9nIHRhYmxlcyBhcmUgY3JlYXRlZCBvciBkcm9wcGVkIGFzCistLSBleHBlY3RlZAorLS0K Ky0tIHRyYW5zaXRpb24gZnJvbSAnbG9nJyB0byAnYWxsJworLS0gYSBuZXcgaW50ZXJuYWwgY29u ZmxpY3QgbG9nIHRhYmxlIHNob3VsZCBiZSBjcmVhdGVkCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfY29uZmxpY3RfdGVzdDIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4 aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwgY29uZmxpY3Rf bG9nX2Rlc3RpbmF0aW9uID0gJ2xvZycpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3Jl YXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlv biwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUg dGhlIHN1YnNjcmlwdGlvbiwgYW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBw dWJsaWNhdGlvbnMuCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBT RVQgKGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdhbGwnKTsKKy0tIHZlcmlmeSBtZXRhZGF0 YSBhZnRlciBBTFRFUiAoZGVzdGluYXRpb24gc2hvdWxkIGJlICdhbGwnKQorU0VMRUNUIHN1Ym5h bWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZCA+IDAgQVMgaGFzX3Jl bGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxp Y3RfdGVzdDInOworICAgICAgICBzdWJuYW1lICAgICAgICAgfCBzdWJjb25mbGljdGxvZ2Rlc3Qg fCBoYXNfcmVsaWQgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIHwgYWxsICAgICAgICAgICAg ICAgIHwgdAorKDEgcm93KQorCistLSB0cmFuc2l0aW9uIGZyb20gJ2FsbCcgdG8gJ3RhYmxlJwor LS0gc2hvdWxkIE5PVCBkcm9wIHRoZSB0YWJsZSwgb25seSBjaGFuZ2UgZGVzdGluYXRpb24gc3Ry aW5nCitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dyZWxpZCBBUyBvbGRfcmVsaWQgRlJPTSBwZ19zdWJz Y3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJyBcZ3NldAor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChjb25mbGljdF9s b2dfZGVzdGluYXRpb24gPSAndGFibGUnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1 YmNvbmZsaWN0bG9ncmVsaWQgPSA6b2xkX3JlbGlkIEFTIHJlbGlkX3VuY2hhbmdlZAorRlJPTSBw Z19zdWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsK KyBzdWJjb25mbGljdGxvZ2Rlc3QgfCByZWxpZF91bmNoYW5nZWQgCistLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLQorIHRhYmxlICAgICAgICAgICAgICB8IHQKKygxIHJvdykK KworLS0gdHJhbnNpdGlvbiBmcm9tICd0YWJsZScgdG8gJ2xvZycKKy0tIHNob3VsZCBkcm9wIHRo ZSB0YWJsZSBhbmQgY2xlYXIgcmVsaWQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ2xvZycpOworU0VMRUNU IHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rsb2dyZWxpZAorRlJPTSBwZ19zdWJzY3Jp cHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKyBzdWJjb25m bGljdGxvZ2Rlc3QgfCBzdWJjb25mbGljdGxvZ3JlbGlkIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgbG9nICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgMAorKDEgcm93KQorCistLSB2ZXJpZnkgdGhlIHBoeXNpY2FsIHRhYmxlIGlzIGdvbmUK K1NFTEVDVCBjb3VudCgqKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBz IE9OIGMucmVsbmFtZSA9ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitXSEVSRSBzLnN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworLS0KKy0tIFBVQkxJQ0FUSU9OOiBWZXJpZnkgY29uZmxpY3QgbG9nIHRhYmxlcyBh cmUgbm90IHB1Ymxpc2hhYmxlCistLQorLS0gcGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUgc2hv dWxkIHJldHVybiBmYWxzZSBmb3IgaW50ZXJuYWwgY29uZmxpY3QgbG9nCistLSB0YWJsZXMgdG8g cHJldmVudCB0aGVtIGZyb20gYmVpbmcgYWNjaWRlbnRhbGx5IGluY2x1ZGVkIGluIHB1YmxpY2F0 aW9ucworLS0KK1NFTEVDVCBuLm5zcG5hbWUsIHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKGMu b2lkKQorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIGMucmVsbmFtZXNw YWNlID0gbi5vaWQKK0pPSU4gcGdfc3Vic2NyaXB0aW9uIHMgT04gcy5zdWJjb25mbGljdGxvZ3Jl bGlkID0gYy5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsK KyAgIG5zcG5hbWUgICB8IHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlIAorLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgcGdfY29uZmxpY3QgfCBmCisoMSByb3cp CisKKy0tCistLSBUYWJsZSBQcm90ZWN0aW9uIGFuZCBMaWZlY3ljbGUgTWFuYWdlbWVudAorLS0K Ky0tIFRoZXNlIHRlc3RzIHZlcmlmeSB0aGF0OgorLS0gTWFudWFsIERST1AgVEFCTEUgaXMgZGlz YWxsb3dlZAorLS0gRFJPUCBTVUJTQ1JJUFRJT04gYXV0b21hdGljYWxseSByZWFwcyB0aGUgdGFi bGUKKy0tCistLSByZS1lbmFibGUgdGFibGUgbG9nZ2luZyBmb3IgdmVyaWZpY2F0aW9uCitBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQgKGNvbmZsaWN0X2xvZ19k ZXN0aW5hdGlvbiA9ICd0YWJsZScpOworLS0gV2UgdXNlIGEgRE8gYmxvY2sgd2l0aCBkeW5hbWlj IFNRTCBiZWNhdXNlIHRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKKy0tIG5hbWUgY29u dGFpbnMgdGhlIHN1YnNjcmlwdGlvbiBPSUQsIHdoaWNoIGlzIG5vbi1kZXRlcm1pbmlzdGljLiBU aGlzCistLSBhcHByb2FjaCBhbGxvd3MgdXMgdG8gYXR0ZW1wdCB0aGUgRFJPUCBhbmQgY2FwdHVy ZSB0aGUgZXhwZWN0ZWQgZXJyb3IKKy0tIHdpdGhvdXQgaGFyZC1jb2RpbmcgYSBzcGVjaWZpYyBP SUQgaW4gdGhlIGV4cGVjdGVkIG91dHB1dAorLS0gZmFpbCAtIGRyb3AgdGFibGUgbm90IGFsbG93 ZWQgZHVlIHRvIGludGVybmFsIGRlcGVuZGVuY3kKK0RPICQkCitCRUdJTgorICAgIEVYRUNVVEUg J0RST1AgVEFCTEUgJyB8fCAoU0VMRUNUICdwZ19jb25mbGljdC5wZ19jb25mbGljdF8nIHx8IG9p ZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3Rf dGVzdDEnKTsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAg IFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2 aWxlZ2UnOworRU5EICQkOworTk9USUNFOiAgY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3Vm ZmljaWVudF9wcml2aWxlZ2UKKy0tIENMRUFOVVA6IERST1AgU1VCU0NSSVBUSU9OIHJlYXBzIHRo ZSB0YWJsZQorQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDEgRElTQUJM RTsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIFNFVCAoc2xvdF9u YW1lID0gTk9ORSk7CistLSBWZXJpZnkgdGhlIHRhYmxlIE9JRCBmb3IgcmVhcCBjaGVjaworU0VM RUNUICdwZ19jb25mbGljdF8nIHx8IG9pZCBBUyBpbnRlcm5hbF90YWJsZW5hbWUgRlJPTSBwZ19z dWJzY3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyBcZ3Nl dAorRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MTsKKy0tIHNob3VsZCBy ZXR1cm4gTlVMTCwgbWVhbmluZyB0aGUgY29uZmxpY3QgbG9nIHRhYmxlIHdhcyByZWFwZWQgdmlh IGRlcGVuZGVuY3kKK1NFTEVDVCB0b19yZWdjbGFzcyg6J2ludGVybmFsX3RhYmxlbmFtZScpOwor IHRvX3JlZ2NsYXNzIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCistLQorLS0gQWRkaXRp b25hbCBOYW1lc3BhY2UgYW5kIFRhYmxlIFByb3RlY3Rpb24gVGVzdHMKKy0tCistLSBTZXR1cDog RW5zdXJlIHdlIGhhdmUgYSBzdWJzY3JpcHRpb24gd2l0aCBhIGNvbmZsaWN0IGxvZyB0YWJsZQor Q1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBDT05O RUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnCisgICAgUFVCTElDQVRJT04gdGVz dHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0 YWJsZScpOworV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBj b25uZWN0ZWQKK0hJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFs bHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwg YW5kIGFsdGVyIHRoZSBzdWJzY3JpcHRpb24gdG8gcmVmcmVzaCBwdWJsaWNhdGlvbnMuCistLSBU cnlpbmcgdG8gQUxURVIgdGhlIGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBz aG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gQXMgbWVu dGlvbmVkIGluIHByZXZpb3VzIHRlc3QgY2FzZXMsIHdlIHVzZSBhIERPIGJsb2NrIHRvIGhpZGUg ZHluYW1pYyBPSURzCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgor ICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBG Uk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdf Y29uZmxpY3RfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZs aWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBSQUlTRSBOT1RJQ0UgJ0F0dGVtcHRpbmcgQUxU RVIgVEFCTEUgb24gaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlJzsKKyAgICBFWEVDVVRFICdB TFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgQUREIENPTFVNTiBleHRyYV9pbmZvIHRleHQn OworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisgICAgUkFJU0Ug Tk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBk dXJpbmcgQUxURVInOworRU5EICQkOworTk9USUNFOiAgQXR0ZW1wdGluZyBBTFRFUiBUQUJMRSBv biBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKK05PVElDRTogIGNhcHR1cmVkIGV4cGVjdGVk IGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBBTFRFUgorLS0gVGVzdCBNYW51 YWwgSU5TRVJUIG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNh dXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhl IGVycm9yIG1lc3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RFQ0xBUkUK KyAgICB0YWJfbmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwg cmVsbmFtZSBJTlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2Ny aXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKKyAgICBXSEVS RSBzLnN1Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAg RVhFQ1VURSAnSU5TRVJUIElOVE8gJyB8fCB0YWJfbmFtZSB8fCAnIChyZWxuYW1lKSBWQUxVRVMg KCcnbXl0ZXN0JycpJzsKK0VYQ0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhF TgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVu dF9wcml2aWxlZ2UgZHVyaW5nIElOU0VSVCc7CitFTkQgJCQ7CitOT1RJQ0U6ICBjYXB0dXJlZCBl eHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBkdXJpbmcgSU5TRVJUCistLSBU ZXN0IE1hbnVhbCBVUERBVEUgb24gY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBm YWlsIGJlY2F1c2UgdGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBIaWRpbmcgdGhlIE9J RCBpbiB0aGUgZXJyb3IgbWVzc2FnZSBieSBjYXRjaGluZyB0aGUgZXhjZXB0aW9uCitETyAkJAor REVDTEFSRQorICAgIHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxp Y3QuJyB8fCByZWxuYW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBw Z19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAor ICAgIFdIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7 CisKKyAgICBFWEVDVVRFICdVUERBVEUgJyB8fCB0YWJfbmFtZSB8fCAnIFNFVCByZWxuYW1lID0g JydteXRlc3QnJyAnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVO CisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50 X3ByaXZpbGVnZSBkdXJpbmcgVVBEQVRFJzsKK0VORCAkJDsKK05PVElDRTogIGNhcHR1cmVkIGV4 cGVjdGVkIGVycm9yOiBpbnN1ZmZpY2llbnRfcHJpdmlsZWdlIGR1cmluZyBVUERBVEUKKy0tIFRy eWluZyB0byBwZXJmb3JtIFRSVU5DQVRFL0RFTEVURSBvbiB0aGUgaW50ZXJuYWwgY29uZmxpY3Qg bG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBiZSBhbGxvd2VkIHNvIHRoYXQgdXNlciBjYW4gcGVy Zm9ybSBjbGVhbnVwCitTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBBUyBjb25mbGlj dF90YWIKK0ZST00gcGdfY2xhc3MgYworSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5h bWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3Nf Y29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JyBcZ3NldAorVFJVTkNBVEUgOmNvbmZsaWN0X3RhYjsK K0RFTEVURSBGUk9NIDpjb25mbGljdF90YWI7CistLSBUcnlpbmcgdG8gY3JlYXRlIGEgbmV3IHRh YmxlIG1hbnVhbGx5IGluIHRoZSBwZ19jb25mbGljdCBuYW1lc3BhY2UKKy0tIFRoaXMgc2hvdWxk IGZhaWwgYXMgdGhlIG5hbWVzcGFjZSBpcyByZXNlcnZlZCBmb3IgY29uZmxpY3QgbG9ncyB0YWJs ZXMKK0NSRUFURSBUQUJMRSBwZ19jb25mbGljdC5tYW51YWxfdGFibGUgKGlkIGludCk7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIHRvIGNyZWF0ZSAicGdfY29uZmxpY3QubWFudWFsX3RhYmxl IgorREVUQUlMOiAgU3lzdGVtIGNhdGFsb2cgbW9kaWZpY2F0aW9ucyBhcmUgY3VycmVudGx5IGRp c2FsbG93ZWQuCistLSBNb3ZpbmcgYW4gZXhpc3RpbmcgdGFibGUgaW50byB0aGUgcGdfY29uZmxp Y3QgbmFtZXNwYWNlCistLSBVc2VycyBzaG91bGQgbm90IGJlIGFibGUgdG8gbW92ZSB0aGVpciBv d24gdGFibGVzIHdpdGhpbiB0aGlzIG5hbWVzcGFjZQorQ1JFQVRFIFRBQkxFIHB1YmxpYy50ZXN0 X21vdmUgKGlkIGludCk7CitBTFRFUiBUQUJMRSBwdWJsaWMudGVzdF9tb3ZlIFNFVCBTQ0hFTUEg cGdfY29uZmxpY3Q7CitFUlJPUjogIGNhbm5vdCBtb3ZlIG9iamVjdHMgaW50byBvciBvdXQgb2Yg Q09ORkxJQ1Qgc2NoZW1hCitEUk9QIFRBQkxFIHB1YmxpYy50ZXN0X21vdmU7CistLSBDbGVhbiB1 cCByZW1haW5pbmcgdGVzdCBzdWJzY3JpcHRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNz X2NvbmZsaWN0X2xvZ19kZWZhdWx0IERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c19jb25mbGljdF9sb2dfZGVmYXVsdCBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdDsKK0FMVEVSIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0ciBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9Q IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2VtcHR5X3N0cjsKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworRFJPUCBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MjsKK0FMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBESVNBQkxFOworQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7 CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdDsKIFJF U0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyOwogRFJPUCBST0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIyOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKaW5kZXggZWYwYzI5OGQyZGYuLmQyOTM0NDc4MzkyIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKQEAgLTM2NSw2ICszNjUsMjIzIEBA IENPTU1JVDsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzbG90X25h bWUgPSBOT05FKTsKIERST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjsKIAorLS0KKy0t IENPTkZMSUNUIExPRyBERVNUSU5BVElPTiBURVNUUworLS0KKworU0VUIFNFU1NJT04gQVVUSE9S SVpBVElPTiAncmVncmVzc19zdWJzY3JpcHRpb25fdXNlcic7CisKKy0tIGZhaWwgLSB1bnJlY29n bml6ZWQgcGFyYW1ldGVyIHZhbHVlCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxp Y3RfZmFpbCBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FU SU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBjb25mbGljdF9sb2dfZGVzdGluYXRp b24gPSAnaW52YWxpZCcpOworCistLSB2ZXJpZnkgc3ViY29uZmxpY3Rsb2dkZXN0IGlzICdsb2cn IGFuZCByZWxpZCBpcyAwIChJbnZhbGlkT2lkKSBmb3IgZGVmYXVsdCBjYXNlCitDUkVBVEUgU1VC U0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfbG9nX2RlZmF1bHQgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3Qg PSBmYWxzZSk7CitTRUxFQ1Qgc3VibmFtZSwgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGlj dGxvZ3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3Nf Y29uZmxpY3RfbG9nX2RlZmF1bHQnOworCistLSB2ZXJpZnkgZW1wdHkgc3RyaW5nIGRlZmF1bHRz IHRvICdsb2cnCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3Ry IENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVz dHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICcn KTsKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVs aWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAncmVncmVzc19jb25mbGlj dF9lbXB0eV9zdHInOworCistLSB0aGlzIHNob3VsZCBnZW5lcmF0ZSBhbiBpbnRlcm5hbCBjb25m bGljdCBsb2cgdGFibGUgbmFtZWQgcGdfY29uZmxpY3RfJHN1YmlkJAorQ1JFQVRFIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNv bmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0YWJsZScpOworCistLSBjaGVjayBtZXRhZGF0YSBp biBwZ19zdWJzY3JpcHRpb246IGRlc3RpbmF0aW9uIHNob3VsZCBiZSAndGFibGUnIGFuZCByZWxp ZCB2YWxpZAorU0VMRUNUIHN1Ym5hbWUsIHN1YmNvbmZsaWN0bG9nZGVzdCwgc3ViY29uZmxpY3Rs b2dyZWxpZCA+IDAgQVMgaGFzX3JlbGlkCitGUk9NIHBnX3N1YnNjcmlwdGlvbiBXSEVSRSBzdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnOworCistLSB2ZXJpZnkgdGhlIHBoeXNpY2Fs IHRhYmxlIGV4aXN0cywgaXRzIE9JRCBtYXRjaGVzIHN1YmNvbmZsaWN0bG9ncmVsaWQsCistLSBh bmQgaXQgaXMgbG9jYXRlZCBpbiB0aGUgJ3BnX2NvbmZsaWN0JyBuYW1lc3BhY2UKK1NFTEVDVCBu Lm5zcG5hbWUsIChjLm9pZCA9IHMuc3ViY29uZmxpY3Rsb2dyZWxpZCkgQVMgIm9pZF9tYXRjaGVz IgorRlJPTSBwZ19jbGFzcyBjCitKT0lOIHBnX3N1YnNjcmlwdGlvbiBzIE9OIGMucmVsbmFtZSA9 ICdwZ19jb25mbGljdF8nIHx8IHMub2lkCitKT0lOIHBnX25hbWVzcGFjZSBuIE9OIGMucmVsbmFt ZXNwYWNlID0gbi5vaWQKK1dIRVJFIHMuc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3Qx JzsKKworLS0gY2hlY2sgaWYgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSBoYXMgdGhlIGNvcnJlY3Qg c2NoZW1hCitTRUxFQ1QgYS5hdHRudW0sIGEuYXR0bmFtZQorRlJPTSBwZ19hdHRyaWJ1dGUgYQor Sk9JTiBwZ19jbGFzcyBjIE9OIGEuYXR0cmVsaWQgPSBjLm9pZAorSk9JTiBwZ19zdWJzY3JpcHRp b24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorV0hFUkUgcy5zdWJu YW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnIEFORCBhLmF0dG51bSA+IDAKKyAgICBPUkRF UiBCWSBhLmF0dG51bTsKKworLS0KKy0tIEFMVEVSIFNVQlNDUklQVElPTiAtIGNvbmZsaWN0X2xv Z19kZXN0aW5hdGlvbiBzdGF0ZSB0cmFuc2l0aW9ucworLS0KKy0tIFRoZXNlIHRlc3RzIHZlcmlm eSB0aGUgdHJhbnNpdGlvbiBsb2dpYyBiZXR3ZWVuIGRpZmZlcmVudCBsb2dnaW5nCistLSBkZXN0 aW5hdGlvbnMsIGVuc3VyaW5nIGNvbmZsaWN0IGxvZyB0YWJsZXMgYXJlIGNyZWF0ZWQgb3IgZHJv cHBlZCBhcworLS0gZXhwZWN0ZWQKKy0tCistLSB0cmFuc2l0aW9uIGZyb20gJ2xvZycgdG8gJ2Fs bCcKKy0tIGEgbmV3IGludGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZSBzaG91bGQgYmUgY3JlYXRl ZAorQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIENPTk5FQ1RJT04g J2RibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChj b25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK0FMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rl c3RpbmF0aW9uID0gJ2FsbCcpOworCistLSB2ZXJpZnkgbWV0YWRhdGEgYWZ0ZXIgQUxURVIgKGRl c3RpbmF0aW9uIHNob3VsZCBiZSAnYWxsJykKK1NFTEVDVCBzdWJuYW1lLCBzdWJjb25mbGljdGxv Z2Rlc3QsIHN1YmNvbmZsaWN0bG9ncmVsaWQgPiAwIEFTIGhhc19yZWxpZAorRlJPTSBwZ19zdWJz Y3JpcHRpb24gV0hFUkUgc3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0g dHJhbnNpdGlvbiBmcm9tICdhbGwnIHRvICd0YWJsZScKKy0tIHNob3VsZCBOT1QgZHJvcCB0aGUg dGFibGUsIG9ubHkgY2hhbmdlIGRlc3RpbmF0aW9uIHN0cmluZworU0VMRUNUIHN1YmNvbmZsaWN0 bG9ncmVsaWQgQVMgb2xkX3JlbGlkIEZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUg PSAncmVncmVzc19jb25mbGljdF90ZXN0MicgXGdzZXQKK0FMVEVSIFNVQlNDUklQVElPTiByZWdy ZXNzX2NvbmZsaWN0X3Rlc3QyIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxl Jyk7CitTRUxFQ1Qgc3ViY29uZmxpY3Rsb2dkZXN0LCBzdWJjb25mbGljdGxvZ3JlbGlkID0gOm9s ZF9yZWxpZCBBUyByZWxpZF91bmNoYW5nZWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1 Ym5hbWUgPSAncmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tIHRyYW5zaXRpb24gZnJvbSAn dGFibGUnIHRvICdsb2cnCistLSBzaG91bGQgZHJvcCB0aGUgdGFibGUgYW5kIGNsZWFyIHJlbGlk CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBTRVQgKGNvbmZsaWN0 X2xvZ19kZXN0aW5hdGlvbiA9ICdsb2cnKTsKK1NFTEVDVCBzdWJjb25mbGljdGxvZ2Rlc3QsIHN1 YmNvbmZsaWN0bG9ncmVsaWQKK0ZST00gcGdfc3Vic2NyaXB0aW9uIFdIRVJFIHN1Ym5hbWUgPSAn cmVncmVzc19jb25mbGljdF90ZXN0Mic7CisKKy0tIHZlcmlmeSB0aGUgcGh5c2ljYWwgdGFibGUg aXMgZ29uZQorU0VMRUNUIGNvdW50KCopCitGUk9NIHBnX2NsYXNzIGMKK0pPSU4gcGdfc3Vic2Ny aXB0aW9uIHMgT04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKK1dIRVJFIHMu c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QyJzsKKworLS0KKy0tIFBVQkxJQ0FUSU9O OiBWZXJpZnkgY29uZmxpY3QgbG9nIHRhYmxlcyBhcmUgbm90IHB1Ymxpc2hhYmxlCistLQorLS0g cGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUgc2hvdWxkIHJldHVybiBmYWxzZSBmb3IgaW50ZXJu YWwgY29uZmxpY3QgbG9nCistLSB0YWJsZXMgdG8gcHJldmVudCB0aGVtIGZyb20gYmVpbmcgYWNj aWRlbnRhbGx5IGluY2x1ZGVkIGluIHB1YmxpY2F0aW9ucworLS0KK1NFTEVDVCBuLm5zcG5hbWUs IHBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKGMub2lkKQorRlJPTSBwZ19jbGFzcyBjCitKT0lO IHBnX25hbWVzcGFjZSBuIE9OIGMucmVsbmFtZXNwYWNlID0gbi5vaWQKK0pPSU4gcGdfc3Vic2Ny aXB0aW9uIHMgT04gcy5zdWJjb25mbGljdGxvZ3JlbGlkID0gYy5vaWQKK1dIRVJFIHMuc3VibmFt ZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJzsKKworLS0KKy0tIFRhYmxlIFByb3RlY3Rpb24g YW5kIExpZmVjeWNsZSBNYW5hZ2VtZW50CistLQorLS0gVGhlc2UgdGVzdHMgdmVyaWZ5IHRoYXQ6 CistLSBNYW51YWwgRFJPUCBUQUJMRSBpcyBkaXNhbGxvd2VkCistLSBEUk9QIFNVQlNDUklQVElP TiBhdXRvbWF0aWNhbGx5IHJlYXBzIHRoZSB0YWJsZQorLS0KKy0tIHJlLWVuYWJsZSB0YWJsZSBs b2dnaW5nIGZvciB2ZXJpZmljYXRpb24KK0FMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZs aWN0X3Rlc3QxIFNFVCAoY29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uID0gJ3RhYmxlJyk7CisKKy0t IFdlIHVzZSBhIERPIGJsb2NrIHdpdGggZHluYW1pYyBTUUwgYmVjYXVzZSB0aGUgaW50ZXJuYWwg Y29uZmxpY3QgbG9nIHRhYmxlCistLSBuYW1lIGNvbnRhaW5zIHRoZSBzdWJzY3JpcHRpb24gT0lE LCB3aGljaCBpcyBub24tZGV0ZXJtaW5pc3RpYy4gVGhpcworLS0gYXBwcm9hY2ggYWxsb3dzIHVz IHRvIGF0dGVtcHQgdGhlIERST1AgYW5kIGNhcHR1cmUgdGhlIGV4cGVjdGVkIGVycm9yCistLSB3 aXRob3V0IGhhcmQtY29kaW5nIGEgc3BlY2lmaWMgT0lEIGluIHRoZSBleHBlY3RlZCBvdXRwdXQK KworLS0gZmFpbCAtIGRyb3AgdGFibGUgbm90IGFsbG93ZWQgZHVlIHRvIGludGVybmFsIGRlcGVu ZGVuY3kKK0RPICQkCitCRUdJTgorICAgIEVYRUNVVEUgJ0RST1AgVEFCTEUgJyB8fCAoU0VMRUNU ICdwZ19jb25mbGljdC5wZ19jb25mbGljdF8nIHx8IG9pZCBGUk9NIHBnX3N1YnNjcmlwdGlvbiBX SEVSRSBzdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfdGVzdDEnKTsKK0VYQ0VQVElPTiBXSEVO IGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnY2FwdHVyZWQg ZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UnOworRU5EICQkOworCistLSBD TEVBTlVQOiBEUk9QIFNVQlNDUklQVElPTiByZWFwcyB0aGUgdGFibGUKK0FMVEVSIFNVQlNDUklQ VElPTiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxIERJU0FCTEU7CitBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc19jb25mbGljdF90ZXN0MSBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOworCistLSBWZXJp ZnkgdGhlIHRhYmxlIE9JRCBmb3IgcmVhcCBjaGVjaworU0VMRUNUICdwZ19jb25mbGljdF8nIHx8 IG9pZCBBUyBpbnRlcm5hbF90YWJsZW5hbWUgRlJPTSBwZ19zdWJzY3JpcHRpb24gV0hFUkUgc3Vi bmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Rlc3QxJyBcZ3NldAorCitEUk9QIFNVQlNDUklQVElP TiByZWdyZXNzX2NvbmZsaWN0X3Rlc3QxOworCistLSBzaG91bGQgcmV0dXJuIE5VTEwsIG1lYW5p bmcgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3YXMgcmVhcGVkIHZpYSBkZXBlbmRlbmN5CitTRUxF Q1QgdG9fcmVnY2xhc3MoOidpbnRlcm5hbF90YWJsZW5hbWUnKTsKKworLS0KKy0tIEFkZGl0aW9u YWwgTmFtZXNwYWNlIGFuZCBUYWJsZSBQcm90ZWN0aW9uIFRlc3RzCistLQorCistLSBTZXR1cDog RW5zdXJlIHdlIGhhdmUgYSBzdWJzY3JpcHRpb24gd2l0aCBhIGNvbmZsaWN0IGxvZyB0YWJsZQor Q1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBDT05O RUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnCisgICAgUFVCTElDQVRJT04gdGVz dHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2UsIGNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbiA9ICd0 YWJsZScpOworCistLSBUcnlpbmcgdG8gQUxURVIgdGhlIGludGVybmFsIGNvbmZsaWN0IGxvZyB0 YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0YWJsZSBpcyBzeXN0ZW0tbWFu YWdlZAorLS0gQXMgbWVudGlvbmVkIGluIHByZXZpb3VzIHRlc3QgY2FzZXMsIHdlIHVzZSBhIERP IGJsb2NrIHRvIGhpZGUgZHluYW1pYyBPSURzCitETyAkJAorREVDTEFSRQorICAgIHRhYl9uYW1l IHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxuYW1lIElOVE8g dGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRpb24gcyBPTiBj LnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMuc3VibmFtZSA9 ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBSQUlTRSBOT1RJQ0Ug J0F0dGVtcHRpbmcgQUxURVIgVEFCTEUgb24gaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlJzsK KyAgICBFWEVDVVRFICdBTFRFUiBUQUJMRSAnIHx8IHRhYl9uYW1lIHx8ICcgQUREIENPTFVNTiBl eHRyYV9pbmZvIHRleHQnOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBU SEVOCisgICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNp ZW50X3ByaXZpbGVnZSBkdXJpbmcgQUxURVInOworRU5EICQkOworCistLSBUZXN0IE1hbnVhbCBJ TlNFUlQgb24gY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBmYWlsIGJlY2F1c2Ug dGhlIHRhYmxlIGlzIHN5c3RlbS1tYW5hZ2VkCistLSBIaWRpbmcgdGhlIE9JRCBpbiB0aGUgZXJy b3IgbWVzc2FnZSBieSBjYXRjaGluZyB0aGUgZXhjZXB0aW9uCitETyAkJAorREVDTEFSRQorICAg IHRhYl9uYW1lIHRleHQ7CitCRUdJTgorICAgIFNFTEVDVCAncGdfY29uZmxpY3QuJyB8fCByZWxu YW1lIElOVE8gdGFiX25hbWUKKyAgICBGUk9NIHBnX2NsYXNzIGMgSk9JTiBwZ19zdWJzY3JpcHRp b24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAorICAgIFdIRVJFIHMu c3VibmFtZSA9ICdyZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCc7CisKKyAgICBFWEVD VVRFICdJTlNFUlQgSU5UTyAnIHx8IHRhYl9uYW1lIHx8ICcgKHJlbG5hbWUpIFZBTFVFUyAoJydt eXRlc3QnJyknOworRVhDRVBUSU9OIFdIRU4gaW5zdWZmaWNpZW50X3ByaXZpbGVnZSBUSEVOCisg ICAgUkFJU0UgTk9USUNFICdjYXB0dXJlZCBleHBlY3RlZCBlcnJvcjogaW5zdWZmaWNpZW50X3By aXZpbGVnZSBkdXJpbmcgSU5TRVJUJzsKK0VORCAkJDsKKworLS0gVGVzdCBNYW51YWwgVVBEQVRF IG9uIGNvbmZsaWN0IGxvZyB0YWJsZQorLS0gVGhpcyBzaG91bGQgZmFpbCBiZWNhdXNlIHRoZSB0 YWJsZSBpcyBzeXN0ZW0tbWFuYWdlZAorLS0gSGlkaW5nIHRoZSBPSUQgaW4gdGhlIGVycm9yIG1l c3NhZ2UgYnkgY2F0Y2hpbmcgdGhlIGV4Y2VwdGlvbgorRE8gJCQKK0RFQ0xBUkUKKyAgICB0YWJf bmFtZSB0ZXh0OworQkVHSU4KKyAgICBTRUxFQ1QgJ3BnX2NvbmZsaWN0LicgfHwgcmVsbmFtZSBJ TlRPIHRhYl9uYW1lCisgICAgRlJPTSBwZ19jbGFzcyBjIEpPSU4gcGdfc3Vic2NyaXB0aW9uIHMg T04gYy5yZWxuYW1lID0gJ3BnX2NvbmZsaWN0XycgfHwgcy5vaWQKKyAgICBXSEVSRSBzLnN1Ym5h bWUgPSAncmVncmVzc19jb25mbGljdF9wcm90ZWN0aW9uX3Rlc3QnOworCisgICAgRVhFQ1VURSAn VVBEQVRFICcgfHwgdGFiX25hbWUgfHwgJyBTRVQgcmVsbmFtZSA9ICcnbXl0ZXN0JycgJzsKK0VY Q0VQVElPTiBXSEVOIGluc3VmZmljaWVudF9wcml2aWxlZ2UgVEhFTgorICAgIFJBSVNFIE5PVElD RSAnY2FwdHVyZWQgZXhwZWN0ZWQgZXJyb3I6IGluc3VmZmljaWVudF9wcml2aWxlZ2UgZHVyaW5n IFVQREFURSc7CitFTkQgJCQ7CisKKy0tIFRyeWluZyB0byBwZXJmb3JtIFRSVU5DQVRFL0RFTEVU RSBvbiB0aGUgaW50ZXJuYWwgY29uZmxpY3QgbG9nIHRhYmxlCistLSBUaGlzIHNob3VsZCBiZSBh bGxvd2VkIHNvIHRoYXQgdXNlciBjYW4gcGVyZm9ybSBjbGVhbnVwCitTRUxFQ1QgJ3BnX2NvbmZs aWN0LicgfHwgcmVsbmFtZSBBUyBjb25mbGljdF90YWIKK0ZST00gcGdfY2xhc3MgYworSk9JTiBw Z19zdWJzY3JpcHRpb24gcyBPTiBjLnJlbG5hbWUgPSAncGdfY29uZmxpY3RfJyB8fCBzLm9pZAor V0hFUkUgcy5zdWJuYW1lID0gJ3JlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0JyBcZ3Nl dAorVFJVTkNBVEUgOmNvbmZsaWN0X3RhYjsKK0RFTEVURSBGUk9NIDpjb25mbGljdF90YWI7CisK Ky0tIFRyeWluZyB0byBjcmVhdGUgYSBuZXcgdGFibGUgbWFudWFsbHkgaW4gdGhlIHBnX2NvbmZs aWN0IG5hbWVzcGFjZQorLS0gVGhpcyBzaG91bGQgZmFpbCBhcyB0aGUgbmFtZXNwYWNlIGlzIHJl c2VydmVkIGZvciBjb25mbGljdCBsb2dzIHRhYmxlcworQ1JFQVRFIFRBQkxFIHBnX2NvbmZsaWN0 Lm1hbnVhbF90YWJsZSAoaWQgaW50KTsKKworLS0gTW92aW5nIGFuIGV4aXN0aW5nIHRhYmxlIGlu dG8gdGhlIHBnX2NvbmZsaWN0IG5hbWVzcGFjZQorLS0gVXNlcnMgc2hvdWxkIG5vdCBiZSBhYmxl IHRvIG1vdmUgdGhlaXIgb3duIHRhYmxlcyB3aXRoaW4gdGhpcyBuYW1lc3BhY2UKK0NSRUFURSBU QUJMRSBwdWJsaWMudGVzdF9tb3ZlIChpZCBpbnQpOworQUxURVIgVEFCTEUgcHVibGljLnRlc3Rf bW92ZSBTRVQgU0NIRU1BIHBnX2NvbmZsaWN0OworRFJPUCBUQUJMRSBwdWJsaWMudGVzdF9tb3Zl OworCistLSBDbGVhbiB1cCByZW1haW5pbmcgdGVzdCBzdWJzY3JpcHRpb24KK0FMVEVSIFNVQlND UklQVElPTiByZWdyZXNzX2NvbmZsaWN0X2xvZ19kZWZhdWx0IERJU0FCTEU7CitBTFRFUiBTVUJT Q1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdCBTRVQgKHNsb3RfbmFtZSA9IE5P TkUpOworRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9sb2dfZGVmYXVsdDsKKwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3RyIERJU0FCTEU7CitB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF9lbXB0eV9zdHIgU0VUIChzbG90X25h bWUgPSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfZW1wdHlfc3Ry OworCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc19jb25mbGljdF90ZXN0MiBESVNBQkxFOwor QUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDIgU0VUIChzbG90X25hbWUg PSBOT05FKTsKK0RST1AgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfdGVzdDI7CisKK0FM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0X3Byb3RlY3Rpb25fdGVzdCBESVNBQkxF OworQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfY29uZmxpY3RfcHJvdGVjdGlvbl90ZXN0IFNF VCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX2NvbmZsaWN0 X3Byb3RlY3Rpb25fdGVzdDsKKwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJPUCBS T0xFIHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXI7CiBEUk9QIFJPTEUgcmVncmVzc19zdWJzY3Jp cHRpb25fdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDNmM2E4ODhmZDBlLi5l MTE4NzNhYjkzMSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK KysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTUwMiw2ICs1MDIsOCBA QCBDb25kaXRpb25WYXJpYWJsZU1pbmltYWxseVBhZGRlZAogQ29uZGl0aW9uYWxTdGFjawogQ29u ZmlnRGF0YQogQ29uZmlnVmFyaWFibGUKK0NvbmZsaWN0TG9nQ29sdW1uRGVmCitDb25mbGljdExv Z0Rlc3QKIENvbmZsaWN0VHVwbGVJbmZvCiBDb25mbGljdFR5cGUKIENvbm5DYWNoZUVudHJ5Ci0t IAoyLjQ5LjAKCg== --000000000000c9126b0648b6f01a Content-Type: application/octet-stream; name="v23-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Disposition: attachment; filename="v23-0002-Implement-the-conflict-insertion-infrastructure-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkkq1yqm1 RnJvbSAxZDViNjQ4YTM2MDg3MDQ0ZjM3N2U5OWViMDkxYWMxODFiMWJhYTc1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogTW9uLCAxMiBKYW4gMjAyNiAyMDoyMTowMyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIz IDIvM10gSW1wbGVtZW50IHRoZSBjb25mbGljdCBpbnNlcnRpb24gaW5mcmFzdHJ1Y3R1cmUgZm9y CiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlCgpUaGlzIHBhdGNoIGludHJvZHVjZXMgdGhlIGNvcmUg bG9naWMgdG8gcG9wdWxhdGUgdGhlIGNvbmZsaWN0IGxvZyB0YWJsZSB3aGVuZXZlcgphIGxvZ2lj YWwgcmVwbGljYXRpb24gY29uZmxpY3QgaXMgZGV0ZWN0ZWQuIEl0IGNhcHR1cmVzIHRoZSByZW1v dGUgdHJhbnNhY3Rpb24KZGV0YWlscyBhbG9uZyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGxvY2Fs IHN0YXRlIGF0IHRoZSB0aW1lIG9mIHRoZSBjb25mbGljdC4KCkhhbmRsaW5nIE11bHRpLXJvdyBD b25mbGljdHM6IEEgc2luZ2xlIHJlbW90ZSB0dXBsZSBtYXkgY29uZmxpY3Qgd2l0aCBtdWx0aXBs ZQpsb2NhbCB0dXBsZXMgKGUuZy4sIGluIHRoZSBjYXNlIG9mIG11bHRpcGxlX3VuaXF1ZV9jb25m bGljdHMpLiBUbyBoYW5kbGUgdGhpcywKdGhlIGluZnJhc3RydWN0dXJlIGNyZWF0ZXMgYSBzaW5n bGUgcm93IGluIHRoZSBjb25mbGljdCBsb2cgdGFibGUgZm9yIGVhY2gKcmVtb3RlIHR1cGxlLiBU aGUgZGV0YWlscyBvZiBhbGwgY29uZmxpY3RpbmcgbG9jYWwgcm93cyBhcmUgYWdncmVnYXRlZCBp bnRvIGEKc2luZ2xlIEpTT04gYXJyYXkgaW4gdGhlIGxvY2FsX2NvbmZsaWN0cyBjb2x1bW4uCgpU aGUgSlNPTiBhcnJheSB1c2VzIHRoZSBmb2xsb3dpbmcgc3RydWN0dXJlZCBmb3JtYXQ6ClsgeyAi eGlkIjogIjEwMDEiLCAiY29tbWl0X3RzIjogIjIwMjUtMTItMjUgMTA6MDA6MDArMDU6MzAiLCAi b3JpZ2luIjogIm5vZGVfMSIsCiJrZXkiOiB7ImlkIjogMX0sICJ0dXBsZSI6IHsiaWQiOiAxLCAi dmFsIjogIm9sZF9kYXRhIn0gfSwgLi4uIF0KCkV4YW1wbGUgb2YgcXVlcnlpbmcgdGhlIHN0cnVj dHVyZWQgY29uZmxpY3QgZGF0YToKClNFTEVDVCByZW1vdGVfeGlkLCByZWxuYW1lLCByZW1vdGVf b3JpZ2luLCBsb2NhbF9jb25mbGljdHNbMV0gLT4+ICd4aWQnIEFTIGxvY2FsX3hpZCwKICAgICAg IGxvY2FsX2NvbmZsaWN0c1sxXSAtPj4gJ3R1cGxlJyBBUyBsb2NhbF90dXBsZQpGUk9NIG15c2No ZW1hLmNvbmZsaWN0X2xvZ19oaXN0b3J5MjsKCiByZW1vdGVfeGlkIHwgcmVsbmFtZSAgfCByZW1v dGVfb3JpZ2luIHwgbG9jYWxfeGlkIHwgICAgIGxvY2FsX3R1cGxlCi0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0K ICAgICAgICA3NjAgfCB0ZXN0ICAgICB8IHBnXzE2NDA2ICAgICAgfCA3NzEgICAgICAgfCB7ImEi OjEsImIiOjEwfQogICAgICAgIDc2NSB8IGNvbmZfdGFiIHwgcGdfMTY0MDYgICAgICB8IDc3NSAg ICAgICB8IHsiYSI6MiwiYiI6MiwiYyI6Mn0KLS0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL2NvbmZsaWN0LmMgfCA1NjEgKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMgfCAgIDEgKwogc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC93b3JrZXIuYyAgIHwgIDMxICstCiBzcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi9jb25mbGljdC5oICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v d29ya2VyX2ludGVybmFsLmggIHwgICA3ICsKIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9j b25mbGljdHMucGwgICB8ICA0NyArLQogNiBmaWxlcyBjaGFuZ2VkLCA2MDUgaW5zZXJ0aW9ucygr KSwgNDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25m bGljdC5jCmluZGV4IDkzMjIyZWUzYjg4Li45OTkyNjAzNjgyNSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpAQCAtMTUsMTMgKzE1LDIxIEBACiAjaW5jbHVk ZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImFjY2Vzcy9jb21taXRfdHMuaCIKKyNpbmNsdWRl ICJhY2Nlc3MvaGVhcGFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxlYW0uaCIKKyNpbmNsdWRl ICJjb21tYW5kcy9zdWJzY3JpcHRpb25jbWRzLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0 b3IuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCiAjaW5jbHVk ZSAicmVwbGljYXRpb24vY29uZmxpY3QuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi93b3JrZXJf aW50ZXJuYWwuaCIKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9h cnJheS5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZm1n cm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9w Z19sc24uaCIKKyNpbmNsdWRlICJ1dGlscy9qc29uLmgiCiAKIHN0YXRpYyBjb25zdCBjaGFyICpj b25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9JTlNFUlRfRVhJU1RTXSA9ICJpbnNl cnRfZXhpc3RzIiwKQEAgLTM0LDYgKzQyLDE4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBD b25mbGljdFR5cGVOYW1lc1tdID0gewogCVtDVF9NVUxUSVBMRV9VTklRVUVfQ09ORkxJQ1RTXSA9 ICJtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIgogfTsKIAorLyogU2NoZW1hIGZvciB0aGUgZWxl bWVudHMgd2l0aGluIHRoZSAnbG9jYWxfY29uZmxpY3RzJyBKU09OIGFycmF5ICovCitzdGF0aWMg Y29uc3QgQ29uZmxpY3RMb2dDb2x1bW5EZWYgTG9jYWxDb25mbGljdFNjaGVtYVtdID0KK3sKKwl7 IC5hdHRuYW1lID0gInhpZCIsICAgICAgIC5hdHR0eXBpZCA9IFhJRE9JRCB9LAorCXsgLmF0dG5h bWUgPSAiY29tbWl0X3RzIiwgLmF0dHR5cGlkID0gVElNRVNUQU1QVFpPSUQgfSwKKwl7IC5hdHRu YW1lID0gIm9yaWdpbiIsICAgIC5hdHR0eXBpZCA9IFRFWFRPSUQgfSwKKwl7IC5hdHRuYW1lID0g ImtleSIsICAgICAgIC5hdHR0eXBpZCA9IEpTT05PSUQgfSwKKwl7IC5hdHRuYW1lID0gInR1cGxl IiwgICAgIC5hdHR0eXBpZCA9IEpTT05PSUQgfQorfTsKKworI2RlZmluZSBNQVhfTE9DQUxfQ09O RkxJQ1RfSU5GT19BVFRSUyBsZW5ndGhvZihMb2NhbENvbmZsaWN0U2NoZW1hKQorCiBzdGF0aWMg aW50CWVycmNvZGVfYXBwbHlfY29uZmxpY3QoQ29uZmxpY3RUeXBlIHR5cGUpOwogc3RhdGljIHZv aWQgZXJyZGV0YWlsX2FwcGx5X2NvbmZsaWN0KEVTdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkJIFJl c3VsdFJlbEluZm8gKnJlbGluZm8sCkBAIC01MCw4ICs3MCwyNyBAQCBzdGF0aWMgY2hhciAqYnVp bGRfdHVwbGVfdmFsdWVfZGV0YWlscyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVs aW5mbywKIAkJCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpsb2NhbHNsb3QsCiAJCQkJCQkJCQkg ICBUdXBsZVRhYmxlU2xvdCAqcmVtb3Rlc2xvdCwKIAkJCQkJCQkJCSAgIE9pZCBpbmRleG9pZCk7 CitzdGF0aWMgdm9pZCBidWlsZF9pbmRleF9kYXR1bXNfZnJvbV9zbG90KEVTdGF0ZSAqZXN0YXRl LCBSZWxhdGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJ CQkJCQkJCQkJIFJlbGF0aW9uIGluZGV4RGVzYywgRGF0dW0gKnZhbHVlcywKKwkJCQkJCQkJCQkg Ym9vbCAqaXNudWxsKTsKIHN0YXRpYyBjaGFyICpidWlsZF9pbmRleF92YWx1ZV9kZXNjKEVTdGF0 ZSAqZXN0YXRlLCBSZWxhdGlvbiBsb2NhbHJlbCwKIAkJCQkJCQkJCVR1cGxlVGFibGVTbG90ICpz bG90LCBPaWQgaW5kZXhvaWQpOworc3RhdGljIERhdHVtIHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNv bl9kYXR1bShUdXBsZVRhYmxlU2xvdCAqc2xvdCk7CitzdGF0aWMgRGF0dW0gdHVwbGVfdGFibGVf c2xvdF90b19pbmRleHR1cF9qc29uKEVTdGF0ZSAqZXN0YXRlLAorCQkJCQkJCQkJCQkgICBSZWxh dGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkJCQkJICAgT2lkIHJlcGxpY2FfaW5kZXgsCisJCQkJCQkJ CQkJCSAgIFR1cGxlVGFibGVTbG90ICpzbG90KTsKK3N0YXRpYyBUdXBsZURlc2MgYnVpbGRfY29u ZmxpY3RfdHVwbGVkZXNjKHZvaWQpOworc3RhdGljIERhdHVtIGJ1aWxkX2xvY2FsX2NvbmZsaWN0 c19qc29uX2FycmF5KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkJCQkJCSAg Q29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJCQkJCSAgTGlzdCAqY29uZmxpY3R0 dXBsZXMpOworc3RhdGljIHZvaWQgcHJlcGFyZV9jb25mbGljdF9sb2dfdHVwbGUoRVN0YXRlICpl c3RhdGUsIFJlbGF0aW9uIHJlbCwKKwkJCQkJCQkJCSAgIFJlbGF0aW9uIGNvbmZsaWN0bG9ncmVs LAorCQkJCQkJCQkJICAgQ29uZmxpY3RUeXBlIGNvbmZsaWN0X3R5cGUsCisJCQkJCQkJCQkgICBU dXBsZVRhYmxlU2xvdCAqc2VhcmNoc2xvdCwKKwkJCQkJCQkJCSAgIExpc3QgKmNvbmZsaWN0dHVw bGVzLAorCQkJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnJlbW90ZXNsb3QpOwogCiAvKgogICog R2V0IHRoZSB4bWluIGFuZCBjb21taXQgdGltZXN0YW1wIGRhdGEgKG9yaWdpbiBhbmQgdGltZXN0 YW1wKSBhc3NvY2lhdGVkCkBAIC0xMDUsMzAgKzE0NCw5MCBAQCBSZXBvcnRBcHBseUNvbmZsaWN0 KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLCBpbnQgZWxldmVsLAogCQkJ CQlDb25mbGljdFR5cGUgdHlwZSwgVHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCiAJCQkJCVR1 cGxlVGFibGVTbG90ICpyZW1vdGVzbG90LCBMaXN0ICpjb25mbGljdHR1cGxlcykKIHsKLQlSZWxh dGlvbglsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKLQlTdHJpbmdJbmZvRGF0 YSBlcnJfZGV0YWlsOworCVJlbGF0aW9uCQlsb2NhbHJlbCA9IHJlbGluZm8tPnJpX1JlbGF0aW9u RGVzYzsKKwlDb25mbGljdExvZ0Rlc3QJZGVzdDsKKwlSZWxhdGlvbgkJY29uZmxpY3Rsb2dyZWw7 CisJYm9vbAkJCWxvZ19kZXN0X2NsdDsKKwlib29sIAkJCWxvZ19kZXN0X2xvZ2ZpbGU7CiAKLQlp bml0U3RyaW5nSW5mbygmZXJyX2RldGFpbCk7CisJcGdzdGF0X3JlcG9ydF9zdWJzY3JpcHRpb25f Y29uZmxpY3QoTXlTdWJzY3JpcHRpb24tPm9pZCwgdHlwZSk7CiAKLQkvKiBGb3JtIGVycmRldGFp bCBtZXNzYWdlIGJ5IGNvbWJpbmluZyBjb25mbGljdGluZyB0dXBsZXMgaW5mb3JtYXRpb24uICov Ci0JZm9yZWFjaF9wdHIoQ29uZmxpY3RUdXBsZUluZm8sIGNvbmZsaWN0dHVwbGUsIGNvbmZsaWN0 dHVwbGVzKQotCQllcnJkZXRhaWxfYXBwbHlfY29uZmxpY3QoZXN0YXRlLCByZWxpbmZvLCB0eXBl LCBzZWFyY2hzbG90LAotCQkJCQkJCQkgY29uZmxpY3R0dXBsZS0+c2xvdCwgcmVtb3Rlc2xvdCwK LQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPmluZGV4b2lkLAotCQkJCQkJCQkgY29uZmxpY3R0dXBs ZS0+eG1pbiwKLQkJCQkJCQkJIGNvbmZsaWN0dHVwbGUtPm9yaWdpbiwKLQkJCQkJCQkJIGNvbmZs aWN0dHVwbGUtPnRzLAotCQkJCQkJCQkgJmVycl9kZXRhaWwpOworCS8qCisJICogR2V0IHRoZSBj b25mbGljdCBsb2cgZGVzdGluYXRpb24uIEFsc28sIChpZiB0aGVyZSBpcyBvbmUpIHJldHVybiB0 aGUKKwkgKiBDTFQgcmVsYXRpb24gYWxyZWFkeSBvcGVuZWQgYW5kIHJlYWR5IGZvciBpbnNlcnRp b24uCisJICovCisJY29uZmxpY3Rsb2dyZWwgPSBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZSgm ZGVzdCk7CiAKLQlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9jb25mbGljdChNeVN1YnNjcmlw dGlvbi0+b2lkLCB0eXBlKTsKKwlsb2dfZGVzdF9jbHQgPSAoKGRlc3QgJiBDT05GTElDVF9MT0df REVTVF9UQUJMRSkgIT0gMCk7CisJbG9nX2Rlc3RfbG9nZmlsZSA9ICgoZGVzdCAmIENPTkZMSUNU X0xPR19ERVNUX0xPRykgIT0gMCk7CisKKwkvKiBJbnNlcnQgdG8gdGFibGUgaWYgcmVxdWVzdGVk LiAqLworCWlmIChsb2dfZGVzdF9jbHQpCisJeworCQlBc3NlcnQoY29uZmxpY3Rsb2dyZWwgIT0g TlVMTCk7CisKKwkJLyoKKwkJICogUHJlcGFyZSB0aGUgY29uZmxpY3QgbG9nIHR1cGxlLiBJZiB0 aGUgZXJyb3IgbGV2ZWwgaXMgYmVsb3cgRVJST1IsCisJCSAqIGluc2VydCBpdCBpbW1lZGlhdGVs eS4gT3RoZXJ3aXNlLCBkZWZlciB0aGUgaW5zZXJ0aW9uIHRvIGEgbmV3CisJCSAqIHRyYW5zYWN0 aW9uIGFmdGVyIHRoZSBjdXJyZW50IG9uZSBhYm9ydHMsIGVuc3VyaW5nIHRoZSBpbnNlcnRpb24g b2YKKwkJICogdGhlIGxvZyB0dXBsZSBpcyBub3Qgcm9sbGVkIGJhY2suCisJCSAqLworCQlwcmVw YXJlX2NvbmZsaWN0X2xvZ190dXBsZShlc3RhdGUsCisJCQkJCQkJCSAgIHJlbGluZm8tPnJpX1Jl bGF0aW9uRGVzYywKKwkJCQkJCQkJICAgY29uZmxpY3Rsb2dyZWwsCisJCQkJCQkJCSAgIHR5cGUs CisJCQkJCQkJCSAgIHNlYXJjaHNsb3QsCisJCQkJCQkJCSAgIGNvbmZsaWN0dHVwbGVzLAorCQkJ CQkJCQkgICByZW1vdGVzbG90KTsKKwkJaWYgKGVsZXZlbCA8IEVSUk9SKQorCQkJSW5zZXJ0Q29u ZmxpY3RMb2dUdXBsZShjb25mbGljdGxvZ3JlbCk7CisKKwkJaWYgKCFsb2dfZGVzdF9sb2dmaWxl KQorCQl7CisJCQkvKgorCQkJICogTm90IGxvZ2dpbmcgY29uZmxpY3QgZGV0YWlscyB0byB0aGUg c2VydmVyIGxvZzsgUmVwb3J0IHRoZSBlcnJvcgorCQkJICogbXNnIGJ1dCBvbWl0IHJhdyB0dXBs ZSBkYXRhIGZyb20gc2VydmVyIGxvZ3Mgc2luY2UgaXQncyBhbHJlYWR5CisJCQkgKiBjYXB0dXJl ZCBpbiB0aGUgY29uZmxpY3QgbG9nIHRhYmxlLgorCQkJICovCisJCQllcmVwb3J0KGVsZXZlbCwK KwkJCQkJZXJyY29kZV9hcHBseV9jb25mbGljdCh0eXBlKSwKKwkJCQkJZXJybXNnKCJjb25mbGlj dCBkZXRlY3RlZCBvbiByZWxhdGlvbiBcIiVzLiVzXCI6IGNvbmZsaWN0PSVzIiwKKwkJCQkJCWdl dF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShsb2NhbHJlbCkpLAorCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUobG9jYWxyZWwpLAorCQkJCQkJQ29uZmxpY3RUeXBlTmFt ZXNbdHlwZV0pLAorCQkJCQllcnJkZXRhaWwoIkNvbmZsaWN0IGRldGFpbHMgYXJlIGxvZ2dlZCB0 byB0aGUgY29uZmxpY3QgbG9nIHRhYmxlOiAlcyIsCisJCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShjb25mbGljdGxvZ3JlbCkpKTsKKwkJfQorCisJCXRhYmxlX2Nsb3NlKGNvbmZsaWN0 bG9ncmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwl9CiAKLQllcmVwb3J0KGVsZXZlbCwKLQkJCWVy cmNvZGVfYXBwbHlfY29uZmxpY3QodHlwZSksCi0JCQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVk IG9uIHJlbGF0aW9uIFwiJXMuJXNcIjogY29uZmxpY3Q9JXMiLAotCQkJCSAgIGdldF9uYW1lc3Bh Y2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShsb2NhbHJlbCkpLAotCQkJCSAgIFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKGxvY2FscmVsKSwKLQkJCQkgICBDb25mbGljdFR5cGVOYW1lc1t0eXBl XSksCi0JCQllcnJkZXRhaWxfaW50ZXJuYWwoIiVzIiwgZXJyX2RldGFpbC5kYXRhKSk7CisJLyog TG9nIGludG8gdGhlIHNlcnZlciBsb2cgaWYgcmVxdWVzdGVkLiAqLworCWlmIChsb2dfZGVzdF9s b2dmaWxlKQorCXsKKwkJU3RyaW5nSW5mb0RhdGEJZXJyX2RldGFpbDsKKworCQlpbml0U3RyaW5n SW5mbygmZXJyX2RldGFpbCk7CisKKwkJLyogRm9ybSBlcnJkZXRhaWwgbWVzc2FnZSBieSBjb21i aW5pbmcgY29uZmxpY3RpbmcgdHVwbGVzIGluZm9ybWF0aW9uLiAqLworCQlmb3JlYWNoX3B0cihD b25mbGljdFR1cGxlSW5mbywgY29uZmxpY3R0dXBsZSwgY29uZmxpY3R0dXBsZXMpCisJCQllcnJk ZXRhaWxfYXBwbHlfY29uZmxpY3QoZXN0YXRlLCByZWxpbmZvLCB0eXBlLCBzZWFyY2hzbG90LAor CQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+c2xvdCwgcmVtb3Rlc2xvdCwKKwkJCQkJCQkJCWNvbmZs aWN0dHVwbGUtPmluZGV4b2lkLAorCQkJCQkJCQkJY29uZmxpY3R0dXBsZS0+eG1pbiwKKwkJCQkJ CQkJCWNvbmZsaWN0dHVwbGUtPm9yaWdpbiwKKwkJCQkJCQkJCWNvbmZsaWN0dHVwbGUtPnRzLAor CQkJCQkJCQkJJmVycl9kZXRhaWwpOworCisJCS8qIFN0YW5kYXJkIHJlcG9ydGluZyB3aXRoIGZ1 bGwgaW50ZXJuYWwgZGV0YWlscy4gKi8KKwkJZXJlcG9ydChlbGV2ZWwsCisJCQkJZXJyY29kZV9h cHBseV9jb25mbGljdCh0eXBlKSwKKwkJCQllcnJtc2coImNvbmZsaWN0IGRldGVjdGVkIG9uIHJl bGF0aW9uIFwiJXMuJXNcIjogY29uZmxpY3Q9JXMiLAorCQkJCQkgICBnZXRfbmFtZXNwYWNlX25h bWUoUmVsYXRpb25HZXROYW1lc3BhY2UobG9jYWxyZWwpKSwKKwkJCQkJICAgUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUobG9jYWxyZWwpLAorCQkJCQkgICBDb25mbGljdFR5cGVOYW1lc1t0eXBlXSks CisJCQkJZXJyZGV0YWlsX2ludGVybmFsKCIlcyIsIGVycl9kZXRhaWwuZGF0YSkpOworCX0KIH0K IAogLyoKQEAgLTE2Miw2ICsyNjEsNjQgQEAgSW5pdENvbmZsaWN0SW5kZXhlcyhSZXN1bHRSZWxJ bmZvICpyZWxJbmZvKQogCXJlbEluZm8tPnJpX29uQ29uZmxpY3RBcmJpdGVySW5kZXhlcyA9IHVu aXF1ZUluZGV4ZXM7CiB9CiAKKy8qCisgKiBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZQorICoK KyAqIEZldGNoZXMgY29uZmxpY3QgbG9nZ2luZyBtZXRhZGF0YSBmcm9tIHRoZSBjYWNoZWQgTXlT dWJzY3JpcHRpb24gcG9pbnRlci4KKyAqIFNldHMgdGhlIGRlc3RpbmF0aW9uIGVudW0gaW4gKmxv Z19kZXN0IGFuZCwgaWYgYXBwbGljYWJsZSwgb3BlbnMgYW5kCisgKiByZXR1cm5zIHRoZSByZWxh dGlvbiBoYW5kbGUgZm9yIHRoZSBjb25mbGljdCBsb2cgdGFibGUuCisgKi8KK1JlbGF0aW9uCitH ZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZShDb25mbGljdExvZ0Rlc3QgKmxvZ19kZXN0KQorewor CU9pZAkJCWNvbmZsaWN0bG9ncmVsaWQ7CisJUmVsYXRpb24JY29uZmxpY3Rsb2dyZWwgPSBOVUxM OworCisJLyoKKwkgKiBDb252ZXJ0IHRoZSB0ZXh0IGxvZyBkZXN0aW5hdGlvbiB0byB0aGUgaW50 ZXJuYWwgZW51bS4gIE15U3Vic2NyaXB0aW9uCisJICogYWxyZWFkeSBjb250YWlucyB0aGUgZGF0 YSBmcm9tIHBnX3N1YnNjcmlwdGlvbi4KKwkgKi8KKwkqbG9nX2Rlc3QgPSBHZXRMb2dEZXN0aW5h dGlvbihNeVN1YnNjcmlwdGlvbi0+Y29uZmxpY3Rsb2dkZXN0KTsKKworCS8qIFF1aWNrIGV4aXQg aWYgYSBjb25mbGljdCBsb2cgdGFibGUgd2FzIG5vdCByZXF1ZXN0ZWQuICovCisJaWYgKCgqbG9n X2Rlc3QgJiBDT05GTElDVF9MT0dfREVTVF9UQUJMRSkgPT0gMCkKKwkJcmV0dXJuIE5VTEw7CisK Kwljb25mbGljdGxvZ3JlbGlkID0gTXlTdWJzY3JpcHRpb24tPmNvbmZsaWN0bG9ncmVsaWQ7CisK KwlBc3NlcnQoT2lkSXNWYWxpZChjb25mbGljdGxvZ3JlbGlkKSk7CisKKwljb25mbGljdGxvZ3Jl bCA9IHRhYmxlX29wZW4oY29uZmxpY3Rsb2dyZWxpZCwgUm93RXhjbHVzaXZlTG9jayk7CisJaWYg KGNvbmZsaWN0bG9ncmVsID09IE5VTEwpCisJCWVsb2coRVJST1IsICJjb3VsZCBub3Qgb3BlbiBj b25mbGljdCBsb2cgdGFibGUgKE9JRCAldSkiLAorCQkJIGNvbmZsaWN0bG9ncmVsaWQpOworCisJ cmV0dXJuIGNvbmZsaWN0bG9ncmVsOworfQorCisvKgorICogSW5zZXJ0Q29uZmxpY3RMb2dUdXBs ZQorICoKKyAqIEluc2VydCBjb25mbGljdCBsb2cgdHVwbGUgaW50byB0aGUgY29uZmxpY3QgbG9n IHRhYmxlLiBJdCB1c2VzCisgKiBIRUFQX0lOU0VSVF9OT19MT0dJQ0FMIHRvIGV4cGxpY2l0bHkg YmxvY2sgbG9naWNhbCBkZWNvZGluZyBvZiB0aGUgdHVwbGUKKyAqIGluc2VydGVkIGludG8gdGhl IGNvbmZsaWN0IGxvZyB0YWJsZS4KKyAqLwordm9pZAorSW5zZXJ0Q29uZmxpY3RMb2dUdXBsZShS ZWxhdGlvbiBjb25mbGljdGxvZ3JlbCkKK3sKKwlpbnQJCQlvcHRpb25zID0gSEVBUF9JTlNFUlRf Tk9fTE9HSUNBTDsKKworCS8qIEEgdmFsaWQgdHVwbGUgbXVzdCBiZSBwcmVwYXJlZCBhbmQgc3Rv cmVkIGluIE15TG9naWNhbFJlcFdvcmtlci4gKi8KKwlBc3NlcnQoTXlMb2dpY2FsUmVwV29ya2Vy LT5jb25mbGljdF9sb2dfdHVwbGUgIT0gTlVMTCk7CisKKwloZWFwX2luc2VydChjb25mbGljdGxv Z3JlbCwgTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUsCisJCQkJR2V0Q3Vy cmVudENvbW1hbmRJZCh0cnVlKSwgb3B0aW9ucywgTlVMTCk7CisKKwkvKiBGcmVlIGNvbmZsaWN0 IGxvZyB0dXBsZS4gKi8KKwloZWFwX2ZyZWV0dXBsZShNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZs aWN0X2xvZ190dXBsZSk7CisJTXlMb2dpY2FsUmVwV29ya2VyLT5jb25mbGljdF9sb2dfdHVwbGUg PSBOVUxMOworfQorCiAvKgogICogQWRkIFNRTFNUQVRFIGVycm9yIGNvZGUgdG8gdGhlIGN1cnJl bnQgY29uZmxpY3QgcmVwb3J0LgogICovCkBAIC00NzIsNiArNjI5LDQwIEBAIGJ1aWxkX3R1cGxl X3ZhbHVlX2RldGFpbHMoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJ cmV0dXJuIHR1cGxlX3ZhbHVlLmRhdGE7CiB9CiAKKy8qCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8g ZXh0cmFjdCB0aGUgInJhdyIgaW5kZXgga2V5IERhdHVtcyBhbmQgdGhlaXIgbnVsbCBmbGFncwor ICogZnJvbSBhIFR1cGxlVGFibGVTbG90LCBnaXZlbiBhbiBhbHJlYWR5IG9wZW4gaW5kZXggZGVz Y3JpcHRvci4KKyAqIFRoaXMgaXMgdGhlIHJldXNhYmxlIGNvcmUgbG9naWMuCisgKi8KK3N0YXRp YyB2b2lkCitidWlsZF9pbmRleF9kYXR1bXNfZnJvbV9zbG90KEVTdGF0ZSAqZXN0YXRlLCBSZWxh dGlvbiBsb2NhbHJlbCwKKwkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJCQkJCQkJIFJl bGF0aW9uIGluZGV4RGVzYywgRGF0dW0gKnZhbHVlcywKKwkJCQkJCQkgYm9vbCAqaXNudWxsKQor eworCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBzbG90OworCisJLyoKKwkgKiBJZiB0aGUg c2xvdCBpcyBhIHZpcnR1YWwgc2xvdCwgY29weSBpdCBpbnRvIGEgaGVhcCB0dXBsZSBzbG90IGFz CisJICogRm9ybUluZGV4RGF0dW0gb25seSB3b3JrcyB3aXRoIGhlYXAgdHVwbGUgc2xvdHMuCisJ ICovCisJaWYgKFRUU19JU19WSVJUVUFMKHNsb3QpKQorCXsKKwkJLyogU2xvdCBpcyBjcmVhdGVk IHdpdGhpbiB0aGUgRVN0YXRlJ3MgdHVwbGUgdGFibGUgKi8KKwkJdGFibGVzbG90ID0gdGFibGVf c2xvdF9jcmVhdGUobG9jYWxyZWwsICZlc3RhdGUtPmVzX3R1cGxlVGFibGUpOworCQl0YWJsZXNs b3QgPSBFeGVjQ29weVNsb3QodGFibGVzbG90LCBzbG90KTsKKwl9CisKKwkvKgorCSAqIEluaXRp YWxpemUgZWN4dF9zY2FudHVwbGUgZm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUluZGV4RGF0dW0K KwkgKi8KKwlHZXRQZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSktPmVjeHRfc2NhbnR1cGxlID0g dGFibGVzbG90OworCisJLyogRm9ybSB0aGUgaW5kZXggZGF0dW1zICovCisJRm9ybUluZGV4RGF0 dW0oQnVpbGRJbmRleEluZm8oaW5kZXhEZXNjKSwgdGFibGVzbG90LCBlc3RhdGUsIHZhbHVlcywK KwkJCQkgICBpc251bGwpOworfQorCiAvKgogICogSGVscGVyIGZ1bmN0aW9ucyB0byBjb25zdHJ1 Y3QgYSBzdHJpbmcgZGVzY3JpYmluZyB0aGUgY29udGVudHMgb2YgYW4gaW5kZXgKICAqIGVudHJ5 LiBTZWUgQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24gZm9yIGRldGFpbHMuCkBAIC00ODcsNDEg KzY3OCwzMjUgQEAgYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhFU3RhdGUgKmVzdGF0ZSwgUmVsYXRp b24gbG9jYWxyZWwsIFR1cGxlVGFibGVTbG90ICpzbG90LAogCVJlbGF0aW9uCWluZGV4RGVzYzsK IAlEYXR1bQkJdmFsdWVzW0lOREVYX01BWF9LRVlTXTsKIAlib29sCQlpc251bGxbSU5ERVhfTUFY X0tFWVNdOwotCVR1cGxlVGFibGVTbG90ICp0YWJsZXNsb3QgPSBzbG90OwogCi0JaWYgKCF0YWJs ZXNsb3QpCisJaWYgKCFzbG90KQogCQlyZXR1cm4gTlVMTDsKIAogCUFzc2VydChDaGVja1JlbGF0 aW9uT2lkTG9ja2VkQnlNZShpbmRleG9pZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkpOwogCiAJ aW5kZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleG9pZCwgTm9Mb2NrKTsKIAotCS8qCi0JICogSWYg dGhlIHNsb3QgaXMgYSB2aXJ0dWFsIHNsb3QsIGNvcHkgaXQgaW50byBhIGhlYXAgdHVwbGUgc2xv dCBhcwotCSAqIEZvcm1JbmRleERhdHVtIG9ubHkgd29ya3Mgd2l0aCBoZWFwIHR1cGxlIHNsb3Rz LgotCSAqLwotCWlmIChUVFNfSVNfVklSVFVBTChzbG90KSkKKwlidWlsZF9pbmRleF9kYXR1bXNf ZnJvbV9zbG90KGVzdGF0ZSwgbG9jYWxyZWwsIHNsb3QsIGluZGV4RGVzYywgdmFsdWVzLAorCQkJ CQkJCQkgaXNudWxsKTsKKworCWluZGV4X3ZhbHVlID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRp b24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVsbCk7CisKKwlpbmRleF9jbG9zZShpbmRleERlc2Ms IE5vTG9jayk7CisKKwlyZXR1cm4gaW5kZXhfdmFsdWU7Cit9CisKKy8qCisgKiB0dXBsZV90YWJs ZV9zbG90X3RvX2pzb25fZGF0dW0KKyAqCisgKiBIZWxwZXIgZnVuY3Rpb24gdG8gY29udmVydCBh IFR1cGxlVGFibGVTbG90IHRvIEpTT04uCisgKi8KK3N0YXRpYyBEYXR1bQordHVwbGVfdGFibGVf c2xvdF90b19qc29uX2RhdHVtKFR1cGxlVGFibGVTbG90ICpzbG90KQoreworCUhlYXBUdXBsZQl0 dXBsZTsKKwlEYXR1bQkJZGF0dW07CisJRGF0dW0JCWpzb247CisKKwlBc3NlcnQoc2xvdCAhPSBO VUxMKTsKKworCXR1cGxlID0gRXhlY0NvcHlTbG90SGVhcFR1cGxlKHNsb3QpOworCWRhdHVtID0g aGVhcF9jb3B5X3R1cGxlX2FzX2RhdHVtKHR1cGxlLCBzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9y KTsKKworCWpzb24gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190b19qc29uLCBkYXR1bSk7CisJ aGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJcmV0dXJuIGpzb247Cit9CisKKy8qCisgKiB0dXBs ZV90YWJsZV9zbG90X3RvX2luZGV4dHVwX2pzb24KKyAqCisgKiBGZXRjaCByZXBsaWNhIGlkZW50 aXR5IGtleSBmcm9tIHRoZSB0dXBsZSB0YWJsZSBzbG90IGFuZCBjb252ZXJ0IGludG8gYQorICog SlNPTiBkYXR1bS4KKyAqLworc3RhdGljIERhdHVtCit0dXBsZV90YWJsZV9zbG90X3RvX2luZGV4 dHVwX2pzb24oRVN0YXRlICplc3RhdGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQkJCQkgIE9p ZCBpbmRleGlkLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCkKK3sKKwlSZWxhdGlvbglpbmRleERlc2M7 CisJRGF0dW0JCXZhbHVlc1tJTkRFWF9NQVhfS0VZU107CisJYm9vbAkJaXNudWxsW0lOREVYX01B WF9LRVlTXTsKKwlIZWFwVHVwbGUJdHVwbGU7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJRGF0dW0J CWRhdHVtOworCisJQXNzZXJ0KHNsb3QgIT0gTlVMTCk7CisKKwlBc3NlcnQoQ2hlY2tSZWxhdGlv bk9pZExvY2tlZEJ5TWUoaW5kZXhpZCwgUm93RXhjbHVzaXZlTG9jaywgdHJ1ZSkpOworCisJaW5k ZXhEZXNjID0gaW5kZXhfb3BlbihpbmRleGlkLCBOb0xvY2spOworCisJYnVpbGRfaW5kZXhfZGF0 dW1zX2Zyb21fc2xvdChlc3RhdGUsIGxvY2FscmVsLCBzbG90LCBpbmRleERlc2MsIHZhbHVlcywK KwkJCQkJCQkJIGlzbnVsbCk7CisJdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IoaW5kZXhEZXNj KTsKKworCS8qIEJsZXNzIHRoZSB0dXBkZXNjIHNvIGl0IGNhbiBiZSBsb29rZWQgdXAgYnkgcm93 X3RvX2pzb24uICovCisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwkvKiBGb3JtIHRoZSBy ZXBsaWNhIGlkZW50aXR5IHR1cGxlLiAqLworCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKHR1cGRl c2MsIHZhbHVlcywgaXNudWxsKTsKKwlkYXR1bSA9IGhlYXBfY29weV90dXBsZV9hc19kYXR1bSh0 dXBsZSwgdHVwZGVzYyk7CisKKwlpbmRleF9jbG9zZShpbmRleERlc2MsIE5vTG9jayk7CisJaGVh cF9mcmVldHVwbGUodHVwbGUpOworCisJLyogQ29udmVydCB0byBhIEpTT04gZGF0dW0uICovCisJ cmV0dXJuIERpcmVjdEZ1bmN0aW9uQ2FsbDEocm93X3RvX2pzb24sIGRhdHVtKTsKK30KKworLyoK KyAqIGJ1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYworICoKKyAqIEJ1aWxkIGFuZCBibGVzcyBhIHR1 cGxlIGRlc2NyaXB0b3IgZm9yIHRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cgdGFibGUKKyAqIGJh c2VkIG9uIHRoZSBwcmVkZWZpbmVkIExvY2FsQ29uZmxpY3RTY2hlbWEuCisgKi8KK3N0YXRpYyBU dXBsZURlc2MKK2J1aWxkX2NvbmZsaWN0X3R1cGxlZGVzYyh2b2lkKQoreworCVR1cGxlRGVzYyAg IHR1cGRlc2M7CisKKwl0dXBkZXNjID0gQ3JlYXRlVGVtcGxhdGVUdXBsZURlc2MoTUFYX0xPQ0FM X0NPTkZMSUNUX0lORk9fQVRUUlMpOworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBNQVhfTE9DQUxf Q09ORkxJQ1RfSU5GT19BVFRSUzsgaSsrKQorCQlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywg KEF0dHJOdW1iZXIpIChpICsgMSksCisJCQkJCQkgICBMb2NhbENvbmZsaWN0U2NoZW1hW2ldLmF0 dG5hbWUsCisJCQkJCQkgICBMb2NhbENvbmZsaWN0U2NoZW1hW2ldLmF0dHR5cGlkLAorCQkJCQkJ ICAgLTEsIDApOworCisJQmxlc3NUdXBsZURlc2ModHVwZGVzYyk7CisKKwlyZXR1cm4gdHVwZGVz YzsKK30KKworLyoKKyAqIEJ1aWxkcyB0aGUgbG9jYWwgY29uZmxpY3RzIEpTT04gYXJyYXkgY29s dW1uIGZyb20gdGhlIGxpc3Qgb2YKKyAqIENvbmZsaWN0VHVwbGVJbmZvIG9iamVjdHMuCisgKgor ICogRXhhbXBsZSBvdXRwdXQgc3RydWN0dXJlOgorICogWyB7ICJ4aWQiOiAiMTAwMSIsICJjb21t aXRfdHMiOiAiLi4uIiwgIm9yaWdpbiI6ICIuLi4iLCAidHVwbGUiOiB7Li4ufSB9LCAuLi4gXQor ICovCitzdGF0aWMgRGF0dW0KK2J1aWxkX2xvY2FsX2NvbmZsaWN0c19qc29uX2FycmF5KEVTdGF0 ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkJCSBDb25mbGljdFR5cGUgY29uZmxpY3Rf dHlwZSwKKwkJCQkJCQkJIExpc3QgKmNvbmZsaWN0dHVwbGVzKQoreworCUxpc3RDZWxsICAgKmxj OworCUxpc3QJICAgKmpzb25fZGF0dW1zID0gTklMOworCURhdHVtCSAgICpqc29uX2RhdHVtX2Fy cmF5OworCWJvb2wJICAgKmpzb25fbnVsbF9hcnJheTsKKwlEYXR1bQkJanNvbl9hcnJheV9kYXR1 bTsKKwlpbnQJCQludW1fY29uZmxpY3RzOworCWludAkJCWk7CisJaW50MTYJCXR5cGxlbjsKKwli b29sCQl0eXBieXZhbDsKKwljaGFyCQl0eXBhbGlnbjsKKwlUdXBsZURlc2MJdHVwZGVzYzsKKwor CS8qIEJ1aWxkIGxvY2FsIGNvbmZsaWN0cyB0dXBsZSBkZXNjcmlwdG9yLiAqLworCXR1cGRlc2Mg PSBidWlsZF9jb25mbGljdF90dXBsZWRlc2MoKTsKKworCS8qIFByb2Nlc3MgbG9jYWwgY29uZmxp Y3QgdHVwbGUgbGlzdCBhbmQgcHJlcGFyZSBhbiBhcnJheSBvZiBKU09OLiAqLworCWZvcmVhY2hf cHRyKENvbmZsaWN0VHVwbGVJbmZvLCBjb25mbGljdHR1cGxlLCBjb25mbGljdHR1cGxlcykKIAl7 Ci0JCXRhYmxlc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKGxvY2FscmVsLCAmZXN0YXRlLT5lc190 dXBsZVRhYmxlKTsKLQkJdGFibGVzbG90ID0gRXhlY0NvcHlTbG90KHRhYmxlc2xvdCwgc2xvdCk7 CisJCURhdHVtCQl2YWx1ZXNbTUFYX0xPQ0FMX0NPTkZMSUNUX0lORk9fQVRUUlNdID0gezB9Owor CQlib29sCQludWxsc1tNQVhfTE9DQUxfQ09ORkxJQ1RfSU5GT19BVFRSU10gPSB7MH07CisJCWNo YXIJICAgKm9yaWdpbl9uYW1lID0gTlVMTDsKKwkJSGVhcFR1cGxlCXR1cGxlOworCQlEYXR1bQkJ anNvbl9kYXR1bTsKKwkJaW50CQkJYXR0bm87CisKKwkJYXR0bm8gPSAwOworCQl2YWx1ZXNbYXR0 bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0dW0oY29uZmxpY3R0dXBsZS0+eG1pbik7CisKKwkJ aWYgKGNvbmZsaWN0dHVwbGUtPnRzKQorCQkJdmFsdWVzW2F0dG5vKytdID0gVGltZXN0YW1wVHpH ZXREYXR1bShjb25mbGljdHR1cGxlLT50cyk7CisJCWVsc2UKKwkJCW51bGxzW2F0dG5vKytdID0g dHJ1ZTsKKworCQlpZiAoY29uZmxpY3R0dXBsZS0+b3JpZ2luICE9IEludmFsaWRSZXBPcmlnaW5J ZCkKKwkJCXJlcGxvcmlnaW5fYnlfb2lkKGNvbmZsaWN0dHVwbGUtPm9yaWdpbiwgdHJ1ZSwgJm9y aWdpbl9uYW1lKTsKKworCQkvKiBTdG9yZSBlbXB0eSBzdHJpbmcgaWYgb3JpZ2luIG5hbWUgZm9y IHRoZSB0dXBsZSBpcyBOVUxMLiAqLworCQlpZiAob3JpZ2luX25hbWUgIT0gTlVMTCkKKwkJCXZh bHVlc1thdHRubysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0ob3JpZ2luX25hbWUpOworCQllbHNl CisJCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwkJLyoKKwkJICogQWRkIHRoZSBjb25mbGlj dGluZyBrZXkgdmFsdWVzIGluIHRoZSBjYXNlIG9mIGEgdW5pcXVlIGNvbnN0cmFpbnQKKwkJICog dmlvbGF0aW9uLgorCQkgKi8KKwkJaWYgKGNvbmZsaWN0X3R5cGUgPT0gQ1RfSU5TRVJUX0VYSVNU UyB8fAorCQkJY29uZmxpY3RfdHlwZSA9PSBDVF9VUERBVEVfRVhJU1RTIHx8CisJCQljb25mbGlj dF90eXBlID09IENUX01VTFRJUExFX1VOSVFVRV9DT05GTElDVFMpCisJCXsKKwkJCU9pZAlpbmRl eG9pZCA9IGNvbmZsaWN0dHVwbGUtPmluZGV4b2lkOworCisJCQlBc3NlcnQoT2lkSXNWYWxpZChp bmRleG9pZCkgJiYgY29uZmxpY3R0dXBsZS0+c2xvdCAmJgorCQkJCSAgIENoZWNrUmVsYXRpb25P aWRMb2NrZWRCeU1lKGluZGV4b2lkLCBSb3dFeGNsdXNpdmVMb2NrLAorCQkJCQkJCQkJCQkgIHRy dWUpKTsKKwkJCXZhbHVlc1thdHRubysrXSA9CisJCQkJCXR1cGxlX3RhYmxlX3Nsb3RfdG9faW5k ZXh0dXBfanNvbihlc3RhdGUsIHJlbCwKKwkJCQkJCQkJCQkJCQkgIGluZGV4b2lkLAorCQkJCQkJ CQkJCQkJCSAgY29uZmxpY3R0dXBsZS0+c2xvdCk7CisJCX0KKwkJZWxzZQorCQkJbnVsbHNbYXR0 bm8rK10gPSB0cnVlOworCisJCS8qIENvbnZlcnQgY29uZmxpY3RpbmcgdHVwbGUgdG8gSlNPTiBk YXR1bS4gKi8KKwkJaWYgKGNvbmZsaWN0dHVwbGUtPnNsb3QpCisJCQl2YWx1ZXNbYXR0bm9dID0g dHVwbGVfdGFibGVfc2xvdF90b19qc29uX2RhdHVtKGNvbmZsaWN0dHVwbGUtPnNsb3QpOworCQll bHNlCisJCQludWxsc1thdHRub10gPSB0cnVlOworCisJCUFzc2VydChhdHRubyArIDEgPT0gTUFY X0xPQ0FMX0NPTkZMSUNUX0lORk9fQVRUUlMpOworCisJCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxl KHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCisJCWpzb25fZGF0dW0gPSBoZWFwX2NvcHlfdHVw bGVfYXNfZGF0dW0odHVwbGUsIHR1cGRlc2MpOworCisJCS8qCisJCSAqIEJ1aWxkIHRoZSBoaWdo ZXIgbGV2ZWwgSlNPTiBkYXR1bSBpbiBmb3JtYXQgZGVzY3JpYmVkIGluIGZ1bmN0aW9uCisJCSAq IGhlYWRlci4KKwkJICovCisJCWpzb25fZGF0dW0gPSBEaXJlY3RGdW5jdGlvbkNhbGwxKHJvd190 b19qc29uLCBqc29uX2RhdHVtKTsKKworCQkvKiBEb25lIHdpdGggdGhlIHRlbXBvcmFyeSB0dXBs ZS4gKi8KKwkJaGVhcF9mcmVldHVwbGUodHVwbGUpOworCisJCS8qIEFkZCB0byB0aGUgYXJyYXkg ZWxlbWVudC4gKi8KKwkJanNvbl9kYXR1bXMgPSBsYXBwZW5kKGpzb25fZGF0dW1zLCAodm9pZCAq KSBqc29uX2RhdHVtKTsKIAl9CiAKLQkvKgotCSAqIEluaXRpYWxpemUgZWN4dF9zY2FudHVwbGUg Zm9yIHBvdGVudGlhbCB1c2UgaW4gRm9ybUluZGV4RGF0dW0gd2hlbgotCSAqIGluZGV4IGV4cHJl c3Npb25zIGFyZSBwcmVzZW50LgotCSAqLwotCUdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRl KS0+ZWN4dF9zY2FudHVwbGUgPSB0YWJsZXNsb3Q7CisJbnVtX2NvbmZsaWN0cyA9IGxpc3RfbGVu Z3RoKGpzb25fZGF0dW1zKTsKIAotCS8qCi0JICogVGhlIHZhbHVlcy9udWxscyBhcnJheXMgcGFz c2VkIHRvIEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uIHNob3VsZCBiZQotCSAqIHRoZSByZXN1 bHRzIG9mIEZvcm1JbmRleERhdHVtLCB3aGljaCBhcmUgdGhlICJyYXciIGlucHV0IHRvIHRoZSBp bmRleAotCSAqIEFNLgotCSAqLwotCUZvcm1JbmRleERhdHVtKEJ1aWxkSW5kZXhJbmZvKGluZGV4 RGVzYyksIHRhYmxlc2xvdCwgZXN0YXRlLCB2YWx1ZXMsIGlzbnVsbCk7CisJanNvbl9kYXR1bV9h cnJheSA9IHBhbGxvY19hcnJheShEYXR1bSwgbnVtX2NvbmZsaWN0cyk7CisJanNvbl9udWxsX2Fy cmF5ID0gcGFsbG9jMF9hcnJheShib29sLCBudW1fY29uZmxpY3RzKTsKIAotCWluZGV4X3ZhbHVl ID0gQnVpbGRJbmRleFZhbHVlRGVzY3JpcHRpb24oaW5kZXhEZXNjLCB2YWx1ZXMsIGlzbnVsbCk7 CisJaSA9IDA7CisJZm9yZWFjaChsYywganNvbl9kYXR1bXMpCisJeworCQlqc29uX2RhdHVtX2Fy cmF5W2ldID0gKERhdHVtKSBsZmlyc3QobGMpOworCQlpKys7CisJfQogCi0JaW5kZXhfY2xvc2Uo aW5kZXhEZXNjLCBOb0xvY2spOworCS8qIENvbnN0cnVjdCB0aGUgSlNPTiBhcnJheSBEYXR1bS4g Ki8KKwlnZXRfdHlwbGVuYnl2YWxhbGlnbihKU09OT0lELCAmdHlwbGVuLCAmdHlwYnl2YWwsICZ0 eXBhbGlnbik7CisJanNvbl9hcnJheV9kYXR1bSA9IFBvaW50ZXJHZXREYXR1bShjb25zdHJ1Y3Rf YXJyYXkoanNvbl9kYXR1bV9hcnJheSwKKwkJCQkJCQkJCQkJCQkgICBudW1fY29uZmxpY3RzLAor CQkJCQkJCQkJCQkJCSAgIEpTT05PSUQsCisJCQkJCQkJCQkJCQkJICAgdHlwbGVuLAorCQkJCQkJ CQkJCQkJCSAgIHR5cGJ5dmFsLAorCQkJCQkJCQkJCQkJCSAgIHR5cGFsaWduKSk7CisJcGZyZWUo anNvbl9kYXR1bV9hcnJheSk7CisJcGZyZWUoanNvbl9udWxsX2FycmF5KTsKKworCXJldHVybiBq c29uX2FycmF5X2RhdHVtOworfQogCi0JcmV0dXJuIGluZGV4X3ZhbHVlOworLyoKKyAqIHByZXBh cmVfY29uZmxpY3RfbG9nX3R1cGxlCisgKgorICogVGhpcyByb3V0aW5lIHByZXBhcmVzIGEgdHVw bGUgZGV0YWlsaW5nIGEgY29uZmxpY3QgZW5jb3VudGVyZWQgZHVyaW5nCisgKiBsb2dpY2FsIHJl cGxpY2F0aW9uLiBUaGUgcHJlcGFyZWQgdHVwbGUgd2lsbCBiZSBzdG9yZWQgaW4KKyAqIE15TG9n aWNhbFJlcFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlIHdoaWNoIHNob3VsZCBiZSBpbnNlcnRl ZCBpbnRvIHRoZQorICogY29uZmxpY3QgbG9nIHRhYmxlIGJ5IGNhbGxpbmcgSW5zZXJ0Q29uZmxp Y3RMb2dUdXBsZS4KKyAqLworc3RhdGljIHZvaWQKK3ByZXBhcmVfY29uZmxpY3RfbG9nX3R1cGxl KEVTdGF0ZSAqZXN0YXRlLCBSZWxhdGlvbiByZWwsCisJCQkJCQkgICBSZWxhdGlvbiBjb25mbGlj dGxvZ3JlbCwKKwkJCQkJCSAgIENvbmZsaWN0VHlwZSBjb25mbGljdF90eXBlLAorCQkJCQkJICAg VHVwbGVUYWJsZVNsb3QgKnNlYXJjaHNsb3QsCisJCQkJCQkgICBMaXN0ICpjb25mbGljdHR1cGxl cywKKwkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpyZW1vdGVzbG90KQoreworCURhdHVtCQl2YWx1 ZXNbTUFYX0NPTkZMSUNUX0FUVFJfTlVNXSA9IHswfTsKKwlib29sCQludWxsc1tNQVhfQ09ORkxJ Q1RfQVRUUl9OVU1dID0gezB9OworCWludAkJCWF0dG5vOworCWNoYXIJICAgKnJlbW90ZV9vcmln aW4gPSBOVUxMOworCU1lbW9yeUNvbnRleHQJb2xkY3R4OworCisJQXNzZXJ0KE15TG9naWNhbFJl cFdvcmtlci0+Y29uZmxpY3RfbG9nX3R1cGxlID09IE5VTEwpOworCisJLyogUG9wdWxhdGUgdGhl IHZhbHVlcyBhbmQgbnVsbHMgYXJyYXlzLiAqLworCWF0dG5vID0gMDsKKwl2YWx1ZXNbYXR0bm8r K10gPSBPYmplY3RJZEdldERhdHVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CisKKwl2YWx1ZXNb YXR0bm8rK10gPQorCQkJQ1N0cmluZ0dldFRleHREYXR1bShnZXRfbmFtZXNwYWNlX25hbWUoUmVs YXRpb25HZXROYW1lc3BhY2UocmVsKSkpOworCisJdmFsdWVzW2F0dG5vKytdID0gQ1N0cmluZ0dl dFRleHREYXR1bShSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKKworCXZhbHVlc1thdHRu bysrXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oQ29uZmxpY3RUeXBlTmFtZXNbY29uZmxpY3RfdHlw ZV0pOworCisJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHJlbW90ZV94aWQpKQorCQl2YWx1ZXNb YXR0bm8rK10gPSBUcmFuc2FjdGlvbklkR2V0RGF0dW0ocmVtb3RlX3hpZCk7CisJZWxzZQorCQlu dWxsc1thdHRubysrXSA9IHRydWU7CisKKwl2YWx1ZXNbYXR0bm8rK10gPSBMU05HZXREYXR1bShy ZW1vdGVfZmluYWxfbHNuKTsKKworCWlmIChyZW1vdGVfY29tbWl0X3RzID4gMCkKKwkJdmFsdWVz W2F0dG5vKytdID0gVGltZXN0YW1wVHpHZXREYXR1bShyZW1vdGVfY29tbWl0X3RzKTsKKwllbHNl CisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCWlmIChyZXBsb3JpZ2luX3Nlc3Npb25fb3Jp Z2luICE9IEludmFsaWRSZXBPcmlnaW5JZCkKKwkJcmVwbG9yaWdpbl9ieV9vaWQocmVwbG9yaWdp bl9zZXNzaW9uX29yaWdpbiwgdHJ1ZSwgJnJlbW90ZV9vcmlnaW4pOworCisJaWYgKHJlbW90ZV9v cmlnaW4gIT0gTlVMTCkKKwkJdmFsdWVzW2F0dG5vKytdID0gQ1N0cmluZ0dldFRleHREYXR1bShy ZW1vdGVfb3JpZ2luKTsKKwllbHNlCisJCW51bGxzW2F0dG5vKytdID0gdHJ1ZTsKKworCWlmICgh VHVwSXNOdWxsKHNlYXJjaHNsb3QpKQorCXsKKwkJT2lkCQlyZXBsaWNhX2luZGV4ID0gR2V0UmVs YXRpb25JZGVudGl0eU9yUEsocmVsKTsKKworCQkvKgorCQkgKiBJZiB0aGUgdGFibGUgaGFzIGEg dmFsaWQgcmVwbGljYSBpZGVudGl0eSBpbmRleCwgYnVpbGQgdGhlIGluZGV4CisJCSAqIEpTT04g ZGF0dW0gZnJvbSBrZXkgdmFsdWUuIE90aGVyd2lzZSwgY29uc3RydWN0IGl0IGZyb20gdGhlIGNv bXBsZXRlCisJCSAqIHR1cGxlIGluIFJFUExJQ0EgSURFTlRJVFkgRlVMTCBjYXNlcy4KKwkJICov CisJCWlmIChPaWRJc1ZhbGlkKHJlcGxpY2FfaW5kZXgpKQorCQkJdmFsdWVzW2F0dG5vKytdID0g dHVwbGVfdGFibGVfc2xvdF90b19pbmRleHR1cF9qc29uKGVzdGF0ZSwgcmVsLAorCQkJCQkJCQkJ CQkJCQkJCXJlcGxpY2FfaW5kZXgsCisJCQkJCQkJCQkJCQkJCQkJc2VhcmNoc2xvdCk7CisJCWVs c2UKKwkJCXZhbHVlc1thdHRubysrXSA9IHR1cGxlX3RhYmxlX3Nsb3RfdG9fanNvbl9kYXR1bShz ZWFyY2hzbG90KTsKKwl9CisJZWxzZQorCQludWxsc1thdHRubysrXSA9IHRydWU7CisKKwlpZiAo IVR1cElzTnVsbChyZW1vdGVzbG90KSkKKwkJdmFsdWVzW2F0dG5vKytdID0gdHVwbGVfdGFibGVf c2xvdF90b19qc29uX2RhdHVtKHJlbW90ZXNsb3QpOworCWVsc2UKKwkJbnVsbHNbYXR0bm8rK10g PSB0cnVlOworCisJdmFsdWVzW2F0dG5vXSA9IGJ1aWxkX2xvY2FsX2NvbmZsaWN0c19qc29uX2Fy cmF5KGVzdGF0ZSwgcmVsLAorCQkJCQkJCQkJCQkJCSBjb25mbGljdF90eXBlLAorCQkJCQkJCQkJ CQkJCSBjb25mbGljdHR1cGxlcyk7CisKKwlBc3NlcnQoYXR0bm8gKyAxID09IE1BWF9DT05GTElD VF9BVFRSX05VTSk7CisKKwlvbGRjdHggPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oQXBwbHlDb250 ZXh0KTsKKwlNeUxvZ2ljYWxSZXBXb3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9CisJCWhlYXBf Zm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKGNvbmZsaWN0bG9ncmVsKSwgdmFsdWVzLCBudWxs cyk7CisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN0eCk7CiB9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMgYi9zcmMvYmFja2VuZC9yZXBs aWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMKaW5kZXggM2VkODY0ODBiZTIuLjJkZGE1YTQ0MjE4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xhdW5jaGVyLmMK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sYXVuY2hlci5jCkBAIC00Nzcs NiArNDc3LDcgQEAgcmV0cnk6CiAJd29ya2VyLT5vbGRlc3Rfbm9ucmVtb3ZhYmxlX3hpZCA9IHJl dGFpbl9kZWFkX3R1cGxlcwogCQk/IE15UmVwbGljYXRpb25TbG90LT5kYXRhLnhtaW4KIAkJOiBJ bnZhbGlkVHJhbnNhY3Rpb25JZDsKKwl3b3JrZXItPmNvbmZsaWN0X2xvZ190dXBsZSA9IE5VTEw7 CiAJd29ya2VyLT5sYXN0X2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOwogCVRJTUVTVEFNUF9OT0JF R0lOKHdvcmtlci0+bGFzdF9zZW5kX3RpbWUpOwogCVRJTUVTVEFNUF9OT0JFR0lOKHdvcmtlci0+ bGFzdF9yZWN2X3RpbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9n aWNhbC93b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvd29ya2VyLmMK aW5kZXggYWQyODFlNzA2OWIuLmQ0YmUxMTIyNjAzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvd29ya2VyLmMKQEAgLTQ4Miw3ICs0ODIsOSBAQCBzdGF0aWMgYm9vbCBNeVN1YnNj cmlwdGlvblZhbGlkID0gZmFsc2U7CiBzdGF0aWMgTGlzdCAqb25fY29tbWl0X3dha2V1cF93b3Jr ZXJzX3N1YmlkcyA9IE5JTDsKIAogYm9vbAkJaW5fcmVtb3RlX3RyYW5zYWN0aW9uID0gZmFsc2U7 Ci1zdGF0aWMgWExvZ1JlY1B0ciByZW1vdGVfZmluYWxfbHNuID0gSW52YWxpZFhMb2dSZWNQdHI7 CitYTG9nUmVjUHRyIHJlbW90ZV9maW5hbF9sc24gPSBJbnZhbGlkWExvZ1JlY1B0cjsKK1RyYW5z YWN0aW9uSWQJcmVtb3RlX3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOworVGltZXN0YW1wVHoJ cmVtb3RlX2NvbW1pdF90cyA9IDA7CiAKIC8qIGZpZWxkcyB2YWxpZCBvbmx5IHdoZW4gcHJvY2Vz c2luZyBzdHJlYW1lZCB0cmFuc2FjdGlvbiAqLwogc3RhdGljIGJvb2wgaW5fc3RyZWFtZWRfdHJh bnNhY3Rpb24gPSBmYWxzZTsKQEAgLTEyMTksNiArMTIyMSw4IEBAIGFwcGx5X2hhbmRsZV9iZWdp bihTdHJpbmdJbmZvIHMpCiAJc2V0X2FwcGx5X2Vycm9yX2NvbnRleHRfeGFjdChiZWdpbl9kYXRh LnhpZCwgYmVnaW5fZGF0YS5maW5hbF9sc24pOwogCiAJcmVtb3RlX2ZpbmFsX2xzbiA9IGJlZ2lu X2RhdGEuZmluYWxfbHNuOworCXJlbW90ZV9jb21taXRfdHMgPSBiZWdpbl9kYXRhLmNvbW1pdHRp bWU7CisJcmVtb3RlX3hpZCA9IGJlZ2luX2RhdGEueGlkOwogCiAJbWF5YmVfc3RhcnRfc2tpcHBp bmdfY2hhbmdlcyhiZWdpbl9kYXRhLmZpbmFsX2xzbik7CiAKQEAgLTE3NDUsNiArMTc0OSwxMCBA QCBhcHBseV9oYW5kbGVfc3RyZWFtX3N0YXJ0KFN0cmluZ0luZm8gcykKIAkvKiBleHRyYWN0IFhJ RCBvZiB0aGUgdG9wLWxldmVsIHRyYW5zYWN0aW9uICovCiAJc3RyZWFtX3hpZCA9IGxvZ2ljYWxy ZXBfcmVhZF9zdHJlYW1fc3RhcnQocywgJmZpcnN0X3NlZ21lbnQpOwogCisJcmVtb3RlX3hpZCA9 IHN0cmVhbV94aWQ7CisJcmVtb3RlX2ZpbmFsX2xzbiA9IEludmFsaWRYTG9nUmVjUHRyOworCXJl bW90ZV9jb21taXRfdHMgPSAwOworCiAJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChzdHJlYW1f eGlkKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1BST1RPQ09MX1ZJ T0xBVElPTiksCkBAIC01NjA5LDYgKzU2MTcsMjcgQEAgc3RhcnRfYXBwbHkoWExvZ1JlY1B0ciBv cmlnaW5fc3RhcnRwb3MpCiAJCQlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9lcnJvcihNeVN1 YnNjcmlwdGlvbi0+b2lkLAogCQkJCQkJCQkJCQkgTXlMb2dpY2FsUmVwV29ya2VyLT50eXBlKTsK IAorCQkJLyoKKwkJCSAqIEluc2VydCBhbnkgcGVuZGluZyBjb25mbGljdCBsb2cgdHVwbGUgdW5k ZXIgYSBuZXcgdHJhbnNhY3Rpb24uCisJCQkgKi8KKwkJCWlmIChNeUxvZ2ljYWxSZXBXb3JrZXIt PmNvbmZsaWN0X2xvZ190dXBsZSAhPSBOVUxMKQorCQkJeworCQkJCVJlbGF0aW9uCWNvbmZsaWN0 bG9ncmVsOworCQkJCUNvbmZsaWN0TG9nRGVzdAlkZXN0OworCisJCQkJU3RhcnRUcmFuc2FjdGlv bkNvbW1hbmQoKTsKKwkJCQlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25TbmFwc2hv dCgpKTsKKworCQkJCS8qIE9wZW4gY29uZmxpY3QgbG9nIHRhYmxlIGFuZCBpbnNlcnQgdGhlIHR1 cGxlLiAqLworCQkJCWNvbmZsaWN0bG9ncmVsID0gR2V0Q29uZmxpY3RMb2dEZXN0QW5kVGFibGUo JmRlc3QpOworCQkJCUFzc2VydCgoZGVzdCAmIENPTkZMSUNUX0xPR19ERVNUX1RBQkxFKSAhPSAw KTsKKwkJCQlJbnNlcnRDb25mbGljdExvZ1R1cGxlKGNvbmZsaWN0bG9ncmVsKTsKKwkJCQl0YWJs ZV9jbG9zZShjb25mbGljdGxvZ3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJCQlQb3BBY3Rp dmVTbmFwc2hvdCgpOworCQkJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOworCQkJfQorCiAJ CQlQR19SRV9USFJPVygpOwogCQl9CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGlj YXRpb24vY29uZmxpY3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKaW5k ZXggNGU0ZjU5YmI0NTMuLmFmZjFkYjIyMmE0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBs aWNhdGlvbi9jb25mbGljdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0 LmgKQEAgLTE0NCw0ICsxNDQsNyBAQCBleHRlcm4gdm9pZCBSZXBvcnRBcHBseUNvbmZsaWN0KEVT dGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpyZWxpbmZvLAogCQkJCQkJCQlUdXBsZVRhYmxl U2xvdCAqcmVtb3Rlc2xvdCwKIAkJCQkJCQkJTGlzdCAqY29uZmxpY3R0dXBsZXMpOwogZXh0ZXJu IHZvaWQgSW5pdENvbmZsaWN0SW5kZXhlcyhSZXN1bHRSZWxJbmZvICpyZWxJbmZvKTsKK2V4dGVy biBSZWxhdGlvbiBHZXRDb25mbGljdExvZ0Rlc3RBbmRUYWJsZShDb25mbGljdExvZ0Rlc3QgKmxv Z19kZXN0KTsKK2V4dGVybiB2b2lkIEluc2VydENvbmZsaWN0TG9nVHVwbGUoUmVsYXRpb24gY29u ZmxpY3Rsb2dyZWwpOworZXh0ZXJuIGJvb2wgVmFsaWRhdGVDb25mbGljdExvZ1RhYmxlKFJlbGF0 aW9uIHJlbCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dv cmtlcl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd29ya2VyX2ludGVybmFs LmgKaW5kZXggYzEyODVmZGQxYmMuLjViZWRmYzU0NTBmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi93b3JrZXJfaW50ZXJuYWwuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNh dGlvbi93b3JrZXJfaW50ZXJuYWwuaApAQCAtMTAxLDYgKzEwMSw5IEBAIHR5cGVkZWYgc3RydWN0 IExvZ2ljYWxSZXBXb3JrZXIKIAkgKi8KIAlUcmFuc2FjdGlvbklkIG9sZGVzdF9ub25yZW1vdmFi bGVfeGlkOwogCisJLyogQSBjb25mbGljdCBsb2cgdHVwbGUgdGhhdCBpcyBwcmVwYXJlZCBidXQg bm90IHlldCBpbnNlcnRlZC4gKi8KKwlIZWFwVHVwbGUJY29uZmxpY3RfbG9nX3R1cGxlOworCiAJ LyogU3RhdHMuICovCiAJWExvZ1JlY1B0cglsYXN0X2xzbjsKIAlUaW1lc3RhbXBUeiBsYXN0X3Nl bmRfdGltZTsKQEAgLTI1Niw2ICsyNTksMTAgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgSW5p dGlhbGl6aW5nQXBwbHlXb3JrZXI7CiAKIGV4dGVybiBQR0RMTElNUE9SVCBMaXN0ICp0YWJsZV9z dGF0ZXNfbm90X3JlYWR5OwogCitleHRlcm4gWExvZ1JlY1B0ciByZW1vdGVfZmluYWxfbHNuOwor ZXh0ZXJuIFRpbWVzdGFtcFR6IHJlbW90ZV9jb21taXRfdHM7CitleHRlcm4gVHJhbnNhY3Rpb25J ZAlyZW1vdGVfeGlkOworCiBleHRlcm4gdm9pZCBsb2dpY2FscmVwX3dvcmtlcl9hdHRhY2goaW50 IHNsb3QpOwogZXh0ZXJuIExvZ2ljYWxSZXBXb3JrZXIgKmxvZ2ljYWxyZXBfd29ya2VyX2ZpbmQo TG9naWNhbFJlcFdvcmtlclR5cGUgd3R5cGUsCiAJCQkJCQkJCQkJCQlPaWQgc3ViaWQsIE9pZCBy ZWxpZCwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNV9jb25mbGljdHMu cGwgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxpY3RzLnBsCmluZGV4IGRkYzc1 ZTIzZmIwLi5hMGYzYmVmYzA2ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3Qv MDM1X2NvbmZsaWN0cy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzVfY29uZmxp Y3RzLnBsCkBAIC01MCw3ICs1MCw3IEBAICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKIAkn cG9zdGdyZXMnLAogCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHN1Yl90YWIKIAkgQ09OTkVDVElPTiAn JHB1Ymxpc2hlcl9jb25uc3RyIGFwcGxpY2F0aW9uX25hbWU9JGFwcG5hbWUnCi0JIFBVQkxJQ0FU SU9OIHB1Yl90YWI7Iik7CisJIFBVQkxJQ0FUSU9OIHB1Yl90YWIgV0lUSCAoY29uZmxpY3RfbG9n X2Rlc3RpbmF0aW9uPWFsbCkiKTsKIAogIyBXYWl0IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8g ZmluaXNoCiAkbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9k ZV9wdWJsaXNoZXIsICRhcHBuYW1lKTsKQEAgLTg2LDEwICs4NiwzNSBAQCAkbm9kZV9zdWJzY3Jp YmVyLT53YWl0X2Zvcl9sb2coCiAuKktleSBcKGNcKT1cKDRcKTsgZXhpc3RpbmcgbG9jYWwgcm93 IFwoNCwgNCwgNFwpOyByZW1vdGUgcm93IFwoMiwgMywgNFwpLi8sCiAJJGxvZ19vZmZzZXQpOwog CisjIFZlcmlmeSB0aGUgY29udGVudHMgb2YgdGhlIENvbmZsaWN0IExvZyBUYWJsZSAoQ0xUKQor IyBUaGlzIHNlY3Rpb24gZW5zdXJlcyB0aGF0IHRoZSBjbHQgY29udGFpbnMgdGhlIGV4cGVjdGVk CisjIHR5cGUgYW5kIHNwZWNpZmljIGtleSBkYXRhLgorbXkgJHN1YmlkID0gJG5vZGVfc3Vic2Ny aWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBvaWQgRlJPTSBwZ19zdWJzY3Jp cHRpb24gV0hFUkUgc3VibmFtZSA9ICdzdWJfdGFiJzsiKTsKK215ICRjbHQgPSAicGdfY29uZmxp Y3QucGdfY29uZmxpY3RfJHN1YmlkIjsKKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8gYmUg bG9nZ2VkIGluIHRoZSBDTFQKK215ICRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5wb2xs X3F1ZXJ5X3VudGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+IDAg RlJPTSAkY2x0OyIKKyk7CisKK215ICRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmliZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgRlJPTSAkY2x0IFdI RVJFIGNvbmZsaWN0X3R5cGUgPSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7Citpcygk Y29uZmxpY3RfY2hlY2ssIDEsICdWZXJpZmllZCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGxv Z2dlZCBpbnRvIGNvbmZsaWN0IGxvZyB0YWJsZScpOworCitteSAkanNvbl9xdWVyeSA9ICJTRUxF Q1QgbG9jYWxfY29uZmxpY3RzIEZST00gJGNsdDsiOworbXkgJHJhd19qc29uID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICRqc29uX3F1ZXJ5KTsKKworIyBWZXJpZnkg dGhhdCAnMicgaXMgcHJlc2VudCBpbnNpZGUgdGhlIEpTT04gc3RydWN0dXJlIHVzaW5nIGEgcmVn ZXgKKyMgVGhpcyBtYXRjaGVzIHRoZSBrZXkvdmFsdWUgcGF0dGVybiBmb3IgImEiOiAyCitsaWtl KCRyYXdfanNvbiwgcXIvXFwiYVxcIjoyLywgJ1ZlcmlmaWVkIHRoYXQga2V5IDIgZXhpc3RzIGlu IHRoZSBsb2NhbF9jb25mbGljdHMnKTsKKwogcGFzcygnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0 cyBkZXRlY3RlZCBkdXJpbmcgaW5zZXJ0Jyk7CiAKICMgVHJ1bmNhdGUgdGFibGUgdG8gZ2V0IHJp ZCBvZiB0aGUgZXJyb3IKICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi VFJVTkNBVEUgY29uZl90YWI7Iik7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIkRFTEVURSBGUk9NICRjbHQiKTsKIAogIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKICMgVGVzdCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3Rz IGR1ZSB0byBVUERBVEUKQEAgLTExOCw2ICsxNDMsMjYgQEAgJG5vZGVfc3Vic2NyaWJlci0+d2Fp dF9mb3JfbG9nKAogLipLZXkgXChjXCk9XCg4XCk7IGV4aXN0aW5nIGxvY2FsIHJvdyBcKDgsIDgs IDhcKTsgcmVtb3RlIHJvdyBcKDYsIDcsIDhcKS4vLAogCSRsb2dfb2Zmc2V0KTsKIAorIyBWZXJp ZnkgdGhlIGNvbnRlbnRzIG9mIHRoZSBDb25mbGljdCBMb2cgVGFibGUgKENMVCkKKyMgVGhpcyBz ZWN0aW9uIGVuc3VyZXMgdGhhdCB0aGUgQ0xUIGNvbnRhaW5zIHRoZSBleHBlY3RlZAorIyB0eXBl IGFuZCBzcGVjaWZpYyBrZXkgZGF0YS4KKworIyBXYWl0IGZvciB0aGUgY29uZmxpY3QgdG8gYmUg bG9nZ2VkIGluIHRoZSBDTFQKKyRsb2dfY2hlY2sgPSAkbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1 ZXJ5X3VudGlsKAorICAgICdwb3N0Z3JlcycsCisgICAgIlNFTEVDVCBjb3VudCgqKSA+IDAgRlJP TSAkY2x0OyIKKyk7CisKKyRjb25mbGljdF9jaGVjayA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLAorICAgICJTRUxFQ1QgY291bnQoKikgRlJPTSAkY2x0IFdIRVJFIGNv bmZsaWN0X3R5cGUgPSAnbXVsdGlwbGVfdW5pcXVlX2NvbmZsaWN0cyc7Iik7CitpcygkY29uZmxp Y3RfY2hlY2ssIDEsICdWZXJpZmllZCBtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGxvZ2dlZCBp bnRvIGNvbmZsaWN0IGxvZyB0YWJsZScpOworCiskcmF3X2pzb24gPSAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJGpzb25fcXVlcnkpOworCisjIFZlcmlmeSB0aGF0ICc2 JyBpcyBwcmVzZW50IGluc2lkZSB0aGUgSlNPTiBzdHJ1Y3R1cmUgdXNpbmcgYSByZWdleAorIyBU aGlzIG1hdGNoZXMgdGhlIGtleS92YWx1ZSBwYXR0ZXJuIGZvciAiYSI6IDYKK2xpa2UoJHJhd19q c29uLCBxci9cXCJhXFwiOjYvLCAnVmVyaWZpZWQgdGhhdCBrZXkgNiBleGlzdHMgaW4gdGhlIGxv Y2FsX2NvbmZsaWN0cycpOworCiBwYXNzKCdtdWx0aXBsZV91bmlxdWVfY29uZmxpY3RzIGRldGVj dGVkIGR1cmluZyB1cGRhdGUnKTsKIAogIyBUcnVuY2F0ZSB0YWJsZSB0byBnZXQgcmlkIG9mIHRo ZSBlcnJvcgotLSAKMi40OS4wCgo= --000000000000c9126b0648b6f01a Content-Type: application/octet-stream; name="v23-0003-Doccumentation-patch.patch" Content-Disposition: attachment; filename="v23-0003-Doccumentation-patch.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkkq1yqp2 RnJvbSBiZGQ3ODY3MWU1MTBiMzcyMTAyM2EwMDI3YmI2OWNhM2FkNmU4N2E0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBEaWxpcCBLdW1hciA8ZGlsaXBrdW1hcmJAZ29vZ2xlLmNvbT4K RGF0ZTogU3VuLCAyMSBEZWMgMjAyNSAxODo1MTo1NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjIz IDMvM10gRG9jY3VtZW50YXRpb24gcGF0Y2gKCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbCAgICAgfCAxMTYgKysrKysrKysrKysrKysrKysrKysrLQogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbCAgfCAgMTQgKystCiBkb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCB8ICA0NCArKysrKysrKwogMyBmaWxlcyBjaGFu Z2VkLCAxNzEgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwt cmVwbGljYXRpb24uc2dtbAppbmRleCA2OGQ2ZWZlNTExNC4uYmE5MzQyOTM2ZWUgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMjg5LDYgKzI4OSwxOSBAQAogICAgb3B0 aW9uIG9mIDxjb21tYW5kPkNSRUFURSBTVUJTQ1JJUFRJT048L2NvbW1hbmQ+IGZvciBkZXRhaWxz LgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBDb25mbGljdHMgdGhhdCBvY2N1ciBkdXJpbmcg cmVwbGljYXRpb24gYXJlLCBieSBkZWZhdWx0LCBsb2dnZWQgYXMgcGxhaW4gdGV4dAorICAgaW4g dGhlIHNlcnZlciBsb2csIHdoaWNoIGNhbiBtYWtlIGF1dG9tYXRlZCBtb25pdG9yaW5nIGFuZCBh bmFseXNpcyBkaWZmaWN1bHQuCisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFNVQlNDUklQVElPTjwv Y29tbWFuZD4gY29tbWFuZCBwcm92aWRlcyB0aGUKKyAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVh dGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtY29uZmxpY3QtbG9nLWRlc3RpbmF0aW9uIj4KKyAg IDxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+IG9wdGlv biB0byByZWNvcmQgZGV0YWlsZWQKKyAgIGNvbmZsaWN0IGluZm9ybWF0aW9uIGluIGEgc3RydWN0 dXJlZCwgcXVlcnlhYmxlIGZvcm1hdC4gV2hlbiB0aGlzIHBhcmFtZXRlcgorICAgaXMgc2V0IHRv IDxsaXRlcmFsPnRhYmxlPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+LCB0aGUg c3lzdGVtCisgICBhdXRvbWF0aWNhbGx5IG1hbmFnZXMgYSBkZWRpY2F0ZWQgY29uZmxpY3QgbG9n IHRhYmxlLCB3aGljaCBpcyBjcmVhdGVkIGFuZAorICAgZHJvcHBlZCBhbG9uZyB3aXRoIHRoZSBz dWJzY3JpcHRpb24uIFRoaXMgc2lnbmlmaWNhbnRseSBpbXByb3ZlcyBwb3N0LW1vcnRlbQorICAg YW5hbHlzaXMgYW5kIG9wZXJhdGlvbmFsIHZpc2liaWxpdHkgb2YgdGhlIHJlcGxpY2F0aW9uIHNl dHVwLgorICA8L3BhcmE+CisKICAgPHNlY3QyIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLXN1YnNj cmlwdGlvbi1zbG90Ij4KICAgIDx0aXRsZT5Mb2dpY2FsIFJlcGxpY2F0aW9uIFNsb3QgTWFuYWdl bWVudDwvdGl0bGU+CiAKQEAgLTIxMTgsNyArMjEzMSw5OCBAQCBQdWJsaWNhdGlvbnM6CiAgIDwv cGFyYT4KIAogICA8cGFyYT4KLSAgIFRoZSBsb2cgZm9ybWF0IGZvciBsb2dpY2FsIHJlcGxpY2F0 aW9uIGNvbmZsaWN0cyBpcyBhcyBmb2xsb3dzOgorICAgV2hlbiB0aGUgPGxpbmsgbGlua2VuZD0i c3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRp b24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+Cisg ICBwYXJhbWV0ZXIgaXMgc2V0IHRvIDxsaXRlcmFsPnRhYmxlPC9saXRlcmFsPiBvciA8bGl0ZXJh bD5hbGw8L2xpdGVyYWw+LCB0aGUgc3lzdGVtCisgICBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBu ZXcgdGFibGUgd2l0aCBhIHByZWRlZmluZWQgc2NoZW1hIHRvIGxvZyBjb25mbGljdAorICAgZGV0 YWlscy4gVGhpcyB0YWJsZSBpcyBjcmVhdGVkIGluIHRoZSBkZWRpY2F0ZWQKKyAgIDxsaXRlcmFs PnBnX2NvbmZsaWN0PC9saXRlcmFsPiBuYW1lc3BhY2UuICBUaGUgbmFtZSBvZiB0aGUgY29uZmxp Y3QgbG9nIHRhYmxlCisgICBpcyA8bGl0ZXJhbD5wZ19jb25mbGljdF8mbHQ7c3ViaWQmZ3Q7PC9s aXRlcmFsPi4gVGhlIHNjaGVtYSBvZiB0aGlzCisgICB0YWJsZSBpcyBkZXRhaWxlZCBpbgorICAg PHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNhdGlvbi1jb25mbGljdC1sb2ctc2NoZW1hIi8+ LgorICA8L3BhcmE+CisKKyAgPHRhYmxlIGlkPSJsb2dpY2FsLXJlcGxpY2F0aW9uLWNvbmZsaWN0 LWxvZy1zY2hlbWEiPgorICAgPHRpdGxlPkNvbmZsaWN0IExvZyBUYWJsZSBTY2hlbWE8L3RpdGxl PgorICAgPHRncm91cCBjb2xzPSIzIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8 ZW50cnk+Q29sdW1uPC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UeXBlPC9lbnRyeT4KKyAgICAgIDxl bnRyeT5EZXNjcmlwdGlvbjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisgICAg PHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnJlbGlkPC9saXRlcmFs PjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+b2lkPC90eXBlPjwvZW50cnk+CisgICAgICA8 ZW50cnk+VGhlIE9JRCBvZiB0aGUgbG9jYWwgdGFibGUgd2hlcmUgdGhlIGNvbmZsaWN0IG9jY3Vy cmVkLjwvZW50cnk+CisgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRl cmFsPnNjaGVtYW5hbWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT50ZXh0 PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHNjaGVtYSBuYW1lIG9mIHRoZSBjb25m bGljdGluZyB0YWJsZS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD5yZWxuYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5 cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSBuYW1lIG9mIHRoZSBjb25m bGljdGluZyB0YWJsZS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD5jb25mbGljdF90eXBlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50 cnk+PHR5cGU+dGV4dDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PlRoZSB0eXBlIG9mIGNv bmZsaWN0IHRoYXQgb2NjdXJyZWQgKGUuZy4sIDxsaXRlcmFsPmluc2VydF9leGlzdHM8L2xpdGVy YWw+KS48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0 ZXJhbD5yZW1vdGVfeGlkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+eGlk PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHJlbW90ZSB0cmFuc2FjdGlvbiBJRCB0 aGF0IGNhdXNlZCB0aGUgY29uZmxpY3QuPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+ CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2NvbW1pdF9sc248L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT48dHlwZT5wZ19sc248L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT5UaGUgZmluYWwgTFNOIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAg PC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX2NvbW1pdF90 czwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnRpbWVzdGFtcHR6PC90eXBl PjwvZW50cnk+CisgICAgICA8ZW50cnk+VGhlIHJlbW90ZSBjb21taXQgdGltZXN0YW1wIG9mIHRo ZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX29yaWdpbjwvbGl0ZXJhbD48L2VudHJ5PgorICAg ICAgPGVudHJ5Pjx0eXBlPnRleHQ8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5UaGUgb3Jp Z2luIG9mIHRoZSByZW1vdGUgdHJhbnNhY3Rpb24uPC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAg IDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cmVtb3RlX3R1cGxlPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICA8ZW50cnk+PHR5cGU+anNvbjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5 PlRoZSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBpbmNvbWluZyByZW1vdGUgcm93IHRoYXQg Y2F1c2VkIHRoZSBjb25mbGljdC48L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD5sb2NhbF9jb25mbGljdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT48dHlwZT5qc29uW108L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT4KKyAg ICAgICBBbiBhcnJheSBvZiBKU09OIG9iamVjdHMgcmVwcmVzZW50aW5nIHRoZSBsb2NhbCBzdGF0 ZSBmb3IgZWFjaCBjb25mbGljdCBhdHRlbXB0LgorICAgICAgIEVhY2ggb2JqZWN0IGluY2x1ZGVz IHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBJRCAoPGxpdGVyYWw+eGlkPC9saXRlcmFsPiksIGNvbW1p dAorICAgICAgIHRpbWVzdGFtcCAoPGxpdGVyYWw+Y29tbWl0X3RzPC9saXRlcmFsPiksIG9yaWdp biAoPGxpdGVyYWw+b3JpZ2luPC9saXRlcmFsPiksCisgICAgICAgY29uZmxpY3Rpbmcga2V5IGRh dGEgKDxsaXRlcmFsPmtleTwvbGl0ZXJhbD4pLCBhbmQgdGhlIGZ1bGwgbG9jYWwgcm93CisgICAg ICAgaW1hZ2UgKDxsaXRlcmFsPnR1cGxlPC9saXRlcmFsPikuCisgICAgICA8L2VudHJ5PgorICAg ICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisKKyAgPHBh cmE+CisgICBUaGUgY29uZmxpY3Rpbmcgcm93IGRhdGEsIGluY2x1ZGluZyB0aGUgaW5jb21pbmcg cmVtb3RlIHJvdyBhbmQgdGhlIGFzc29jaWF0ZWQKKyAgIGxvY2FsIGNvbmZsaWN0IGRldGFpbHMs IGlzIHN0b3JlZCBpbiA8dHlwZT5KU09OPC90eXBlPiBmb3JtYXRzICg8bGl0ZXJhbD5yZW1vdGVf dHVwbGU8L2xpdGVyYWw+CisgICBhbmQgPGxpdGVyYWw+bG9jYWxfY29uZmxpY3RzPC9saXRlcmFs PikgZm9yIGZsZXhpYmxlIHF1ZXJ5aW5nIGFuZCBhbmFseXNpcy4KKyAgPC9wYXJhPgorCisgIDxw YXJhPgorICAgSWYgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMt d2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0 aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICBpcyBsZWZ0IGF0IHRoZSBkZWZhdWx0IHNldHRp bmcgb3IgZXhwbGljaXRseSBjb25maWd1cmVkIGFzIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD4KKyAg IG9yIDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD4sIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3Rz IGFyZSBsb2dnZWQgaW4gdGhlCisgICBmb2xsb3dpbmcgZm9ybWF0OgogPHN5bm9wc2lzPgogTE9H OiAgY29uZmxpY3QgZGV0ZWN0ZWQgb24gcmVsYXRpb24gIjxyZXBsYWNlYWJsZT5zY2hlbWFuYW1l PC9yZXBsYWNlYWJsZT4uPHJlcGxhY2VhYmxlPnRhYmxlbmFtZTwvcmVwbGFjZWFibGU+IjogY29u ZmxpY3Q9PHJlcGxhY2VhYmxlPmNvbmZsaWN0X3R5cGU8L3JlcGxhY2VhYmxlPgogREVUQUlMOiAg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRldGFpbGVkX2V4cGxhbmF0aW9uPC9yZXBs YWNlYWJsZT4uCkBAIC0yNDEyLDYgKzI1MTYsMTYgQEAgQ09OVEVYVDogIHByb2Nlc3NpbmcgcmVt b3RlIGRhdGEgZm9yIHJlcGxpY2F0aW9uIG9yaWdpbiAicGdfMTYzOTUiIGR1cmluZyAiSU5TRVIK ICAgICAga2V5IG9yIHJlcGxpY2EgaWRlbnRpdHkgZGVmaW5lZCBmb3IgaXQuCiAgICAgPC9wYXJh PgogICAgPC9saXN0aXRlbT4KKworICAgPGxpc3RpdGVtPgorICAgIDxwYXJhPgorICAgICBUaGUg aW50ZXJuYWwgdGFibGUgYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4KKyAgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVz dGluYXRpb24iPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xp bms+CisgICAgIGlzIHNldCB0byA8bGl0ZXJhbD50YWJsZTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+ YWxsPC9saXRlcmFsPiBpcyBleGNsdWRlZCBmcm9tCisgICAgIGxvZ2ljYWwgcmVwbGljYXRpb24u IEl0IHdpbGwgbm90IGJlIHB1Ymxpc2hlZCwgZXZlbiBpZiBhIHB1YmxpY2F0aW9uIG9uIHRoZQor ICAgICBzdWJzY3JpYmVyIGlzIGRlZmluZWQgdXNpbmcgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8 L2xpdGVyYWw+LgorICAgIDwvcGFyYT4KKyAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0 PgogIDwvc2VjdDE+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2Ny aXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCmlu ZGV4IDI3YzA2NDM5ZjRmLi4yZGUyYzNjNTJmYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3N1 YnNjcmlwdGlvbi5zZ21sCkBAIC0yODAsOCArMjgwLDkgQEAgQUxURVIgU1VCU0NSSVBUSU9OIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRP IDwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdp dGgtb3JpZ2luIj48bGl0ZXJhbD5vcmlnaW48L2xpdGVyYWw+PC9saW5rPiwKICAgICAgIDxsaW5r IGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZmFpbG92ZXIiPjxs aXRlcmFsPmZhaWxvdmVyPC9saXRlcmFsPjwvbGluaz4sCiAgICAgICA8bGluayBsaW5rZW5kPSJz cWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXR3by1waGFzZSI+PGxpdGVyYWw+dHdv X3BoYXNlPC9saXRlcmFsPjwvbGluaz4sCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRl c3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXJldGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVyYWw+cmV0 YWluX2RlYWRfdHVwbGVzPC9saXRlcmFsPjwvbGluaz4sIGFuZAotICAgICAgPGxpbmsgbGlua2Vu ZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1tYXgtcmV0ZW50aW9uLWR1cmF0 aW9uIj48bGl0ZXJhbD5tYXhfcmV0ZW50aW9uX2R1cmF0aW9uPC9saXRlcmFsPjwvbGluaz4uCisg ICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLXJl dGFpbi1kZWFkLXR1cGxlcyI+PGxpdGVyYWw+cmV0YWluX2RlYWRfdHVwbGVzPC9saXRlcmFsPjwv bGluaz4sCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFt cy13aXRoLW1heC1yZXRlbnRpb24tZHVyYXRpb24iPjxsaXRlcmFsPm1heF9yZXRlbnRpb25fZHVy YXRpb248L2xpdGVyYWw+PC9saW5rPiBhbmQsCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3Jl YXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlvbiI+PGxp dGVyYWw+Y29uZmxpY3RfbG9nX2Rlc3RpbmF0aW9uPC9saXRlcmFsPjwvbGluaz4uCiAgICAgICBP bmx5IGEgc3VwZXJ1c2VyIGNhbiBzZXQgPGxpdGVyYWw+cGFzc3dvcmRfcmVxdWlyZWQgPSBmYWxz ZTwvbGl0ZXJhbD4uCiAgICAgIDwvcGFyYT4KIApAQCAtMzM5LDYgKzM0MCwxNSBAQCBBTFRFUiBT VUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBSRU5BTUUgVE8gPAogICAgICAgPHF1b3RlPjxsaXRlcmFsPnBnX2NvbmZsaWN0X2RldGVj dGlvbjwvbGl0ZXJhbD48L3F1b3RlPiwgY3JlYXRlZCB0byByZXRhaW4KICAgICAgIGRlYWQgdHVw bGVzIGZvciBjb25mbGljdCBkZXRlY3Rpb24sIHdpbGwgYmUgZHJvcHBlZC4KICAgICAgPC9wYXJh PgorCisgICAgIDxwYXJhPgorICAgICAgV2hlbiB0aGUgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0 ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1jb25mbGljdC1sb2ctZGVzdGluYXRpb24iPjxsaXRl cmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0ZXJhbD48L2xpbms+CisgICAgICBwYXJh bWV0ZXIgaXMgc2V0IHRvIDxsaXRlcmFsPnRhYmxlPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5hbGw8 L2xpdGVyYWw+LCB0aGUgc3lzdGVtCisgICAgICBhdXRvbWF0aWNhbGx5IGNyZWF0ZXMgdGhlIGlu dGVybmFsIGNvbmZsaWN0IGxvZyB0YWJsZSBpZiBpdCBkb2VzIG5vdCBhbHJlYWR5CisgICAgICBl eGlzdC4gQ29udmVyc2VseSwgaWYgdGhlIGRlc3RpbmF0aW9uIGlzIGNoYW5nZWQgdG8KKyAgICAg IDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD4sIGxvZ2dpbmcgdG8gdGhlIHRhYmxlIHN0b3BzIGFuZCB0 aGUgaW50ZXJuYWwKKyAgICAgIHRhYmxlIGlzIGF1dG9tYXRpY2FsbHkgZHJvcHBlZC4KKyAgICAg PC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIApkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAppbmRleCBiN2RkMzYxMjk0Yi4uNTYxZDhm MTE5OTUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0y NDcsNiArMjQ3LDUwIEBAIENSRUFURSBTVUJTQ1JJUFRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnN1YnNjcmlwdGlvbl9uYW1lPC9yZXBsYWNlYWJsCiAgICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJz cWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWNvbmZsaWN0LWxvZy1kZXN0aW5hdGlv biI+CisgICAgICAgIDx0ZXJtPjxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlvbjwvbGl0 ZXJhbD4gKDx0eXBlPmVudW08L3R5cGU+KTwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAg ICAgICAgPHBhcmE+CisgICAgICAgICAgU3BlY2lmaWVzIHRoZSBkZXN0aW5hdGlvbiBmb3IgcmVj b3JkaW5nIGxvZ2ljYWwgcmVwbGljYXRpb24gY29uZmxpY3RzLgorICAgICAgICAgPC9wYXJhPgor ICAgICAgICAgPHBhcmE+CisgICAgICAgICAgVGhlIGF2YWlsYWJsZSBkZXN0aW5hdGlvbnMgYXJl OgorICAgICAgICAgIDxpdGVtaXplZGxpc3Q+CisgICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxsaXRlcmFsPmxvZzwvbGl0ZXJhbD46IENvbmZs aWN0IGRldGFpbHMgYXJlIHJlY29yZGVkIGluIHRoZSBzZXJ2ZXIgbG9nLgorICAgICAgICAgICAg IFRoaXMgaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IuCisgICAgICAgICAgICA8L3BhcmE+CisgICAg ICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgICAgIDxw YXJhPgorICAgICAgICAgICAgIDxsaXRlcmFsPnRhYmxlPC9saXRlcmFsPjogVGhlIHN5c3RlbSBh dXRvbWF0aWNhbGx5IGNyZWF0ZXMgYSBzdHJ1Y3R1cmVkIHRhYmxlCisgICAgICAgICAgICAgbmFt ZWQgPGxpdGVyYWw+cGdfY29uZmxpY3RfJmx0O3N1YmlkJmd0OzwvbGl0ZXJhbD4gaW4gdGhlCisg ICAgICAgICAgICAgPGxpdGVyYWw+cGdfY29uZmxpY3Q8L2xpdGVyYWw+IHNjaGVtYS4gVGhpcyBh bGxvd3MgZm9yIGVhc3kgcXVlcnlpbmcgYW5kCisgICAgICAgICAgICAgYW5hbHlzaXMgb2YgY29u ZmxpY3RzLgorICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgICAgPGNhdXRpb24+CisgICAg ICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIFRoZSBpbnRlcm5hbCBjb25mbGljdCBsb2cg dGFibGUgaXMgc3RyaWN0bHkgdGllZCB0byB0aGUgbGlmZWN5Y2xlIG9mIHRoZQorICAgICAgICAg ICAgICBzdWJzY3JpcHRpb24gb3IgdGhlIDxsaXRlcmFsPmNvbmZsaWN0X2xvZ19kZXN0aW5hdGlv bjwvbGl0ZXJhbD4gc2V0dGluZy4gSWYKKyAgICAgICAgICAgICAgdGhlIHN1YnNjcmlwdGlvbiBp cyBkcm9wcGVkLCBvciBpZiB0aGUgZGVzdGluYXRpb24gaXMgY2hhbmdlZCB0bworICAgICAgICAg ICAgICA8bGl0ZXJhbD5sb2c8L2xpdGVyYWw+LCB0aGUgdGFibGUgYW5kIGFsbCBpdHMgcmVjb3Jk ZWQgY29uZmxpY3QgZGF0YSBhcmUKKyAgICAgICAgICAgICAgPGVtcGhhc2lzPnBlcm1hbmVudGx5 IGRlbGV0ZWQ8L2VtcGhhc2lzPi4gVG8gcGVyZm9ybSBhIHBvc3QtbW9ydGVtIGFuYWx5c2lzCisg ICAgICAgICAgICAgIGFmdGVyIHJlbW92aW5nIGEgc3Vic2NyaXB0aW9uLCB1c2VycyBtdXN0IG1h bnVhbGx5IGJhY2sgdXAgdGhlIGNvbmZsaWN0IGxvZworICAgICAgICAgICAgICB0YWJsZSBiZWZv cmUgdGhlIGRlbGV0aW9uIG9jY3Vycy4KKyAgICAgICAgICAgICA8L3BhcmE+CisgICAgICAgICAg ICA8L2NhdXRpb24+CisgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgIDxsaXN0aXRl bT4KKyAgICAgICAgICAgIDxwYXJhPgorICAgICAgICAgICAgIDxsaXRlcmFsPmFsbDwvbGl0ZXJh bD46IFJlY29yZHMgdG8gYm90aCB0aGUgc2VydmVyIGxvZyBhbmQgdGhlIHRhYmxlLgorICAgICAg ICAgICAgPC9wYXJhPgorICAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgIDwvaXRlbWl6 ZWRsaXN0PgorICAgICAgICAgPC9wYXJhPgorICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgIDwv dmFybGlzdGVudHJ5PgorCiAgICAgICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXN1YnNj cmlwdGlvbi1wYXJhbXMtd2l0aC1jb3B5LWRhdGEiPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5j b3B5X2RhdGE8L2xpdGVyYWw+ICg8dHlwZT5ib29sZWFuPC90eXBlPik8L3Rlcm0+CiAgICAgICAg IDxsaXN0aXRlbT4KLS0gCjIuNDkuMAoK --000000000000c9126b0648b6f01a--