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 1wPeLn-000vNP-11 for pgsql-hackers@arkaria.postgresql.org; Wed, 20 May 2026 10:40:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wPeLi-0077N6-2u for pgsql-hackers@arkaria.postgresql.org; Wed, 20 May 2026 10:40:27 +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 1wPeLh-0077Mx-2r for pgsql-hackers@lists.postgresql.org; Wed, 20 May 2026 10:40:27 +0000 Received: from mail-qk1-x72e.google.com ([2607:f8b0:4864:20::72e]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wPeLf-00000000TOK-2br3 for pgsql-hackers@lists.postgresql.org; Wed, 20 May 2026 10:40:25 +0000 Received: by mail-qk1-x72e.google.com with SMTP id af79cd13be357-91066394ef8so376121085a.1 for ; Wed, 20 May 2026 03:40:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1779273623; cv=none; d=google.com; s=arc-20240605; b=MynV7PhA3+jwQoUbGETJqgTHSOM1MteHXTban5BfH9j/PjTSxsp2chvQ0WyT1gow8z eq3/by7I9/e4xnIWRb0ycKWvSlnwxAWcH3PTOf7qajwfBgBLpgK+hz+z/b6bPQT311tn w129Yv7Y/Ra4f/iFFL1omvpB1hduirI0hmpMse0WZngA8JZNl31wzrgbUcec4OgqjFTO y5OBXd4RnDHkjz4SOc5kNuv8mPJ40li50ddx/0Ezn5kX3X8z9f3VsNl+6cOqAeUkePkw Qc6WGkB0+/fbvNgX3ClSq1LfnZfNz3TflJjKwTtHoxou5r/hSaVEj/cFxUWv9Q1S9kus NTVQ== 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=Ol0QfOifr1jhF252S1zo5V2t7bE1fHXLpWmXDDgHaXU=; fh=FNlgNV42LSVpt8GJ/EwlVe1wY8jGsv9c3RbDDm1NTno=; b=M34h/2XsbNyb3Xtc0b7gU4jWDwUfvo89ADWr1IVxkwsdy3QYGuMA0hZ6kJ8WrLUPii Pu2leKRaNrzZumsopHKypBh/i6wFbwR2/Pi2ZBk16JyGCuaMORt60U5W3OXoBLWV+WsZ lQwfqEbPE5d9hVEBpwXSnS62se4YJGhzto2lvzlWkM2qMgGdc8fkDlorR31tN5c+zZQW Le/xVnp8k2IGIWQppHqfylfNNqaFSbXc7A8mpOg81pcsbIn5a4hmCQc4tsPAa71xQ6DQ E99V+fTT9nKtGjZ5uO9JV6c7/M+aNzk5Z8O2lvEG9ixDFt/X53EUBm1JoOKZvLBxudX8 5kmQ==; 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=20251104; t=1779273623; x=1779878423; 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=Ol0QfOifr1jhF252S1zo5V2t7bE1fHXLpWmXDDgHaXU=; b=iOGh8UkLtv01swyzptnkDCPIij6hmQbiZTcJgdUT5/WO3CWtKsFG6lFT3uzVPf5isz bdktrk/vR2IfXg+60oPras4PnyP0L7cfnjBB8pm4B84UYBcpa/UKrogFFNM5B+/LHQJ2 XGTnDUfGV30fVXWRtpJOk05t/T37+LiDMKEZbIOGS5b5Aaob0zjrmAxNSTwISZQBKMn4 jgrxvndQbU3OcdcuUT2p9DUD9p0oW+V45+4GArH6UjkkL6u+w0EEFRffLSVeXTPSJqxs +k2//JkqFvmDsuu7QmbPAHb/sdLNF3PwLDN/QFm1Dr3qCGt20RGXZIw3XLyyBTIjJ6F1 8sSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779273623; x=1779878423; 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=Ol0QfOifr1jhF252S1zo5V2t7bE1fHXLpWmXDDgHaXU=; b=nZjAvaRklT67K3/MyvgONsNZdvQKgSsbk1jEvpMAjZLKUuuJvHXoHIawwcdsmI+jkO FtRhXzdtAOXusvR4F4gWwTYwDTVg/mOFoZ+dEpcELPl0Sa/7XloRPj/TyGNjJg6WrMAc Bx9NIQqscrRurqNK7SC3aJMZU3cgq2n1ZDsnAyOYdUqMoUp5cuDxlncbmXejxmX8kYof e7ONI9jLtaQvP5XCMeAXwCpe/BtYuNeGj4FfAbFu5PQ7FabphhcHx1mwI3X4OdFFR31I dWVdy5lCBST8ZSGkzuTvk4XBMSFISbeoLDOa65nEuezDhktu0WU+yfurHfeAKdu7FiPn HUWg== X-Forwarded-Encrypted: i=1; AFNElJ/c0HhaXW6iyWYHxuna2bvUSagRvhP8oWPF+FKg9aW2sPYUqb/ITQBSJFe8k2/o+wltMmJd5k9XCMusI1r/@lists.postgresql.org X-Gm-Message-State: AOJu0YwGPfa6Y6Ek1B44zbTS30G588cqbf4uCedTxF2BsmVxqZfphNif 0OsAuHwy1Gr0lqHk+hq8eMHG2gF5Uygly+8WuDJEccYFLzoV9tlBB6Y6KUxla24/BFeKd4CItdl dROweqBrF8EE1BDJ4umMghPptcmUNyo8= X-Gm-Gg: Acq92OEHsHUwnWpu+3bKnDlv89qqfxjCTmszdMQ3xiR3BleHihmwXKLi0QsCKhDUABP +r4c1usjt3QiVWqcGrK9+iNK+8NI6al3Bep/HYQKrp8yaHIssPPYtB4CB0EDf0qDvEeaNjNJEQn jDzipC4UZOEtc+iq0H7Q6Xo70XpeZyvt5BPlNE2C896r8sdtsQA56onVEfNrNtryqrpD7mbsqrA f0/ptC30AMFJnIrlyFfA01KZfqWraINxIW1YaLZlUn+DqezxzJlcxhIIEDF8lW0X3hBzwPIyIkp uWhvCO6sAxy5dwUW7dh2Xh2tlGPdHcC7jiCQgnJncE7mGribVA1g/4kaEJ4MKM7ukrJUga7Z6D9 39PF5ufbZmbhd9BzjQHveXawSr8U/21p8qRzljA== X-Received: by 2002:a05:620a:489a:b0:8ea:d123:5636 with SMTP id af79cd13be357-911cf3f6d7amr3169037185a.31.1779273623409; Wed, 20 May 2026 03:40:23 -0700 (PDT) MIME-Version: 1.0 References: <87cyemfolt.fsf@163.com> In-Reply-To: From: Rafia Sabih Date: Wed, 20 May 2026 12:40:11 +0200 X-Gm-Features: AVHnY4I1y19vHdWeOrley8i-Cl5qEzT5BoCtS1PhD0tacxwApUYUhYQyWFAfaSg Message-ID: Subject: Re: Bypassing cursors in postgres_fdw to enable parallel plans To: Robert Haas Cc: KENAN YILMAZ , Andy Fan , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000004844f506523d6ce4" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000004844f506523d6ce4 Content-Type: multipart/alternative; boundary="0000000000004844f406523d6ce2" --0000000000004844f406523d6ce2 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 12 May 2026 at 14:56, Robert Haas wrote: > On Mon, May 11, 2026 at 7:03=E2=80=AFAM Rafia Sabih > wrote: > > Thanks Robert for the detailed review and some great suggestions for > improving this patch. I went through the comments and the patch and here = is > the revised version. To summarize the changes done in this patch, > > - as suggested, split it into two patches now, the first patch changes > the cursor_exists flag to scan_in_progress, the second patch is the one > with the rest of the changes to implement this fetch mechanism > > - changed the GUC to server/tables level option called streaming_fetch. > Still a boolean type. Open to better naming suggestions. > > - refactored postrgesReScanForeignScan for a more readable code > > Following the suggestions above, now, it handles the case for the > backward cursor separately and exits the function straight from there. In > case of close cursor, it checks if cursor or cursor-free mode is used, an= d > executes different actions as per the mode. In cursor-free mode we end_sc= an > and tuplestore. In the third case when we start scanning the tuples alrea= dy > fetched, things remain the same in both modes. > > - added the changes to show the option in explain verbose output > > - Added a lot more test cases to check the option with other options an= d > also to cover more code-paths, particularly rescans and ending the query = in > between, error cases etc. > > > > There is one problem that remains here, the use of ExprContext. We need > this when we are fetching the tuples for the active scan, but since this = is > only available in node, we can not have the one which was there at the ti= me > when active_scan was the fsstate, so at the moment it is using the econte= xt > from the node. This doesn't seem correct to me, but to have the correct > ExprContext we need the node, but it also doesn't seem totally right to > have the pointer to node in ScanState for this scenario. Please let me kn= ow > what could be a good way to handle this. > > The problem here is that save_to_tuplestore() has gotten itself into > the business of resending the query when a node is rescanned and we > haven't yet buffered the results anywhere. But it doesn't need to do > that in the first place. If the query needs to be resent, it's not > currently active on the connection, and then there's no need to do > anything to free up the connection, so save_to_tuplestore() doesn't > need to be called in the first place. The reason why you're having > this problem is that postgresReScanForeignScan calls end_scan but > end_scan does not clear the active_scan pointer. So then > save_to_tuplestore() gets called if something else tries to use the > connection, and to make that work, you did this. > > But the right solution is to make sure that the active_scan pointer is > only non-NULL when there are actually results already on the wire that > need to be drained. If you do that, then save_to_tuplestore() won't > get called if rescan has already read all of the pending results off > the wire, and then you can delete the code that resends the query, and > then you won't need an econtext here in the first place. > > Thanks Robert for the quick follow up on this. I found this to be true an= d modified the patch accordingly. Please find the updated patches attached. In the first patch jnothing is changed, just adding it here for the sake of completeness. --=20 Regards, Rafia Sabih CYBERTEC PostgreSQL International GmbH --0000000000004844f406523d6ce2 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Tue, 12 May = 2026 at 14:56, Robert Haas <rob= ertmhaas@gmail.com> wrote:
On Mon, May 11, 2026 at 7:03=E2=80=AFAM Rafia Sabih <<= a href=3D"mailto:rafia.pghackers@gmail.com" target=3D"_blank">rafia.pghacke= rs@gmail.com> wrote:
> Thanks Robert for the detailed review and some great suggestions for i= mproving this patch. I went through the comments and the patch and here is = the revised version. To summarize the changes done in this patch,
> - as suggested, split it into two patches now, the first patch changes= the cursor_exists flag to scan_in_progress, the second patch is the one wi= th the rest of the changes to implement this fetch mechanism
> - changed the GUC to server/tables level option called streaming_fetch= . Still a boolean type. Open to better naming suggestions.
> - refactored postrgesReScanForeignScan for a more readable code
>=C2=A0 =C2=A0Following the suggestions above, now, it handles the case = for the backward cursor separately and exits the function straight from the= re. In case of close cursor, it checks if cursor or cursor-free mode is use= d, and executes different actions as per the mode. In cursor-free mode we e= nd_scan and tuplestore. In the third case when we start scanning the tuples= already fetched, things remain the same in both modes.
> - added the changes to show the option in explain verbose output
> - Added a lot more test cases to check the option with other options a= nd also to cover more code-paths, particularly rescans and ending the query= in between, error cases etc.
>
> There is one problem that remains here, the use of ExprContext. We nee= d this when we are fetching the tuples for the active scan, but since this = is only available in node, we can not have the one which was there at the t= ime when active_scan was the fsstate, so at the moment it is using the econ= text from the node. This doesn't seem correct to me, but to have the co= rrect ExprContext we need the node, but it also doesn't seem totally ri= ght to have the pointer to node in ScanState for this scenario. Please let = me know what could be a good way to handle this.

The problem here is that save_to_tuplestore() has gotten itself into
the business of resending the query when a node is rescanned and we
haven't yet buffered the results anywhere. But it doesn't need to d= o
that in the first place. If the query needs to be resent, it's not
currently active on the connection, and then there's no need to do
anything to free up the connection, so save_to_tuplestore() doesn't
need to be called in the first place. The reason why you're having
this problem is that postgresReScanForeignScan calls end_scan but
end_scan does not clear the active_scan pointer. So then
save_to_tuplestore() gets called if something else tries to use the
connection, and to make that work, you did this.

But the right solution is to make sure that the active_scan pointer is
only non-NULL when there are actually results already on the wire that
need to be drained. If you do that, then save_to_tuplestore() won't
get called if rescan has already read all of the pending results off
the wire, and then you can delete the code that resends the query, and
then you won't need an econtext here in the first place.

Thanks Robert for the quick follow up on this. I found this to b= e true and modified the patch accordingly.
Please find the update= d patches attached. In the first patch jnothing is changed, just adding it = here for the sake of completeness.

--
Regards,
Rafia Sabih
CYBERTEC PostgreSQL Int= ernational GmbH
--0000000000004844f406523d6ce2-- --0000000000004844f506523d6ce4 Content-Type: application/octet-stream; name="v10-0002-postgres_fdw-Add-streaming_fetch-option-for-curs.patch" Content-Disposition: attachment; filename="v10-0002-postgres_fdw-Add-streaming_fetch-option-for-curs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpdxk39s1 RnJvbSA4ZGQ3MGM1MTM5NjExMTNiMWYwYzJkZWFmODkyNzgyOGEyZjYyMzM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWZpYSBTYWJpaCA8cmFmaWEuc2FiaWhAY3liZXJ0ZWMuYXQ+ CkRhdGU6IFdlZCwgMjAgTWF5IDIwMjYgMTI6MzU6MjIgKzAyMDAKU3ViamVjdDogW1BBVENIIHYx MCAyLzJdIHBvc3RncmVzX2ZkdzpBZGQgc3RyZWFtaW5nX2ZldGNoIG9wdGlvbiBmb3IKIGN1cnNv ci1mcmVlIGZldGNoaW5nCgpwb3N0Z3Jlc19mZHcgdXNlcyBjdXJzb3JzIHRvIGZldGNoIHR1cGxl cyBmcm9tIHRoZSByZW1vdGUgc2VydmVyCmluY3JlbWVudGFsbHkuIFdoaWxlIHRoaXMgd29ya3Mg Y29ycmVjdGx5LCBjdXJzb3JzIHByZXZlbnQgdGhlIHJlbW90ZQpzaWRlIGZyb20gdXNpbmcgcGFy YWxsZWwgcXVlcnkgZXhlY3V0aW9uLCB3aGljaCBjYW4gc2lnbmlmaWNhbnRseSBsaW1pdApwZXJm b3JtYW5jZSBmb3IgbGFyZ2Ugc2NhbnMuCgpUaGlzIGFkZHMgYSBuZXcgYm9vbGVhbiBvcHRpb24g c3RyZWFtaW5nX2ZldGNoLCBhdmFpbGFibGUgYXQgYm90aCB0aGUKc2VydmVyIGFuZCB0YWJsZSBs ZXZlbCwgdGhhdCBnaXZlcyBhbiBhbHRlcm5hdGUgZmV0Y2hpbmcgbWVjaGFuaXNtLgpCZWNhdXNl IG5vIGN1cnNvciBpcyBjcmVhdGVkIG9uIHRoZSByZW1vdGUgc2lkZSwgdGhlIHJlbW90ZSBxdWVy eSBpcyBmcmVlCnRvIHVzZSBwYXJhbGxlbCBleGVjdXRpb24uCgpXaGVuIGEgc2Vjb25kIHNjYW4g YmVnaW5zIG9uIHRoZSBzYW1lIGNvbm5lY3Rpb24gd2hpbGUgYW5vdGhlciBpcyBzdGlsbAppbiBw cm9ncmVzcywgdGhlIHJlbWFpbmluZyB0dXBsZXMgb2YgdGhlIGFjdGl2ZSBzY2FuIGFyZSBkcmFp bmVkIGludG8gYQp0dXBsZXN0b3JlIGFuZCByZXBsYXllZCB3aGVuIGV4ZWN1dGlvbiByZXR1cm5z IHRvIHRoYXQgc2Nhbi4gVGhpcwpwcmVzZXJ2ZXMgY29ycmVjdCByZXN1bHRzIGFjcm9zcyBuZXN0 ZWQgb3IgaW50ZXJsZWF2ZWQgc2NhbnMgd2l0aG91dApyZXF1aXJpbmcgYW4gYWRkaXRpb25hbCBj b25uZWN0aW9uLgoKc3RyZWFtaW5nX2ZldGNoIGRlZmF1bHRzIHRvIGZhbHNlLCBwcmVzZXJ2aW5n IGV4aXN0aW5nIGJlaGF2aW9yLgpBc3luY2hyb25vdXMgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQgaW4gdGhpcyBtb2RlIGFuZCBpcyBkaXNhYmxlZAphdXRvbWF0aWNhbGx5IHdoZW4gc3RyZWFt aW5nX2ZldGNoIGlzIGVuYWJsZWQuCgpPcmlnaW5hbCBpZGVhOiBCZXJuZCBIZWxtbGUKS2V5IHN1 Z2dlc3Rpb25zOiBSb2JlcnQgSGFhcwotLS0KIGNvbnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rp b24uYyAgICAgICAgICAgICB8ICAxMSArCiAuLi4vcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3Rn cmVzX2Zkdy5vdXQgICAgfCA5ODYgKysrKysrKysrKysrKysrKystCiBjb250cmliL3Bvc3RncmVz X2Zkdy9vcHRpb24uYyAgICAgICAgICAgICAgICAgfCAgIDQgKwogY29udHJpYi9wb3N0Z3Jlc19m ZHcvcG9zdGdyZXNfZmR3LmMgICAgICAgICAgIHwgNDM5ICsrKysrKystCiBjb250cmliL3Bvc3Rn cmVzX2Zkdy9wb3N0Z3Jlc19mZHcuaCAgICAgICAgICAgfCAgIDYgKwogY29udHJpYi9wb3N0Z3Jl c19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgICAgIHwgNDEwICsrKysrKysrCiBkb2Mvc3JjL3Nn bWwvcG9zdGdyZXMtZmR3LnNnbWwgICAgICAgICAgICAgICAgfCAgMTUgKwogNyBmaWxlcyBjaGFu Z2VkLCAxODI0IGluc2VydGlvbnMoKyksIDQ3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2Nv bm5lY3Rpb24uYwppbmRleCAzZDJhOGQwNTE5ZC4uNTQzYmIzMWNmYzYgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L2Nvbm5lY3Rpb24uYworKysgYi9jb250cmliL3Bvc3RncmVzX2Zk dy9jb25uZWN0aW9uLmMKQEAgLTEwODIsNiArMTA4MiwxNyBAQCBwZ2Zkd19nZXRfcmVzdWx0KFBH Y29ubiAqY29ubikKIAlyZXR1cm4gbGlicHFzcnZfZ2V0X3Jlc3VsdF9sYXN0KGNvbm4sIHBnZmR3 X3dlX2dldF9yZXN1bHQpOwogfQogCisvKgorICogV3JhcCBsaWJwcXNydl9nZXRfcmVzdWx0KCks IGFkZGluZyB3YWl0IGV2ZW50LgorICogVXNlZCBpbiBjYXNlIG9mIHN0cmVhbWluZ19mZXRjaCBt b2RlLgorICogQ2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciB0aGUgZXJyb3IgaGFuZGxpbmcgb24g dGhlIHJlc3VsdC4KKyAqLworUEdyZXN1bHQgKgorcGdmZHdfZ2V0X25leHRfcmVzdWx0KFBHY29u biAqY29ubikKK3sKKwlyZXR1cm4gbGlicHFzcnZfZ2V0X3Jlc3VsdChjb25uLCBwZ2Zkd193ZV9n ZXRfcmVzdWx0KTsKK30KKwogLyoKICAqIFJlcG9ydCBhbiBlcnJvciB3ZSBnb3QgZnJvbSB0aGUg cmVtb3RlIHNlcnZlci4KICAqCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBl Y3RlZC9wb3N0Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dAppbmRleCBhYWZmY2YzMTI3MS4uMjE2YzczMDU5NjQgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKKysrIGIvY29u dHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dApAQCAtMjc3LDYgKzI3 NywzNjMgQEAgU0VMRUNUIGMzLCBjNCBGUk9NIGZ0MSBPUkRFUiBCWSBjMywgYzEgTElNSVQgMTsg IC0tIHNob3VsZCB3b3JrIGFnYWluCiBBTkFMWVpFIGZ0MTsKIEFMVEVSIEZPUkVJR04gVEFCTEUg ZnQyIE9QVElPTlMgKHVzZV9yZW1vdGVfZXN0aW1hdGUgJ3RydWUnKTsKIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Ky0tIHRlc3Qgc3RyZWFtaW5nX2ZldGNoIG9wdGlvbgorLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorQ1JFQVRFIFNF UlZFUiBmZXRjaF9zdHJlYW1fc3J2CisgICAgRk9SRUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdyZXNf ZmR3CisgICAgT1BUSU9OUyAoZGJuYW1lIDonY3VycmVudF9kYXRhYmFzZScsIHBvcnQgOidjdXJy ZW50X3BvcnQnKTsKK0NSRUFURSBVU0VSIE1BUFBJTkcgRk9SIENVUlJFTlRfVVNFUiBTRVJWRVIg ZmV0Y2hfc3RyZWFtX3NydjsKK0NSRUFURSBUQUJMRSBsb2NhbF90YmwgKGlkIGludCwgdmFsIHRl eHQpOworSU5TRVJUIElOVE8gbG9jYWxfdGJsIFZBTFVFUyAoMSwgJ2EnKSwgKDIsICdiJyksICgz LCAnYycpOworLS0gMS4gc3RyZWFtaW5nX2ZldGNoIHNldCBhdCBTRVJWRVIgbGV2ZWwgb25seQor LS0gMWEuIFNldCBzdHJlYW1pbmdfZmV0Y2ggPSB0cnVlIG9uIHRoZSBzZXJ2ZXIKK0FMVEVSIFNF UlZFUiBmZXRjaF9zdHJlYW1fc3J2IE9QVElPTlMgKEFERCBzdHJlYW1pbmdfZmV0Y2ggJ3RydWUn KTsKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGZ0X3NlcnZlciAoaWQgaW50LCB2YWwgdGV4dCkKKyAg ICBTRVJWRVIgZmV0Y2hfc3RyZWFtX3NydgorICAgIE9QVElPTlMgKHNjaGVtYV9uYW1lICdwdWJs aWMnLCB0YWJsZV9uYW1lICdsb2NhbF90YmwnKTsKKy0tIFZlcmlmeSBvcHRpb24gYXBwZWFycyBp biBmb3JlaWduIHNlcnZlcgorU0VMRUNUIHNydm5hbWUsIG9wdGlvbl9uYW1lLCBvcHRpb25fdmFs dWUKK0ZST00gcGdfZm9yZWlnbl9zZXJ2ZXIsCisgICAgIExBVEVSQUwgcGdfb3B0aW9uc190b190 YWJsZShzcnZvcHRpb25zKQorV0hFUkUgc3J2bmFtZSA9ICdmZXRjaF9zdHJlYW1fc3J2JworICBB TkQgb3B0aW9uX25hbWUgSU4gKCdzdHJlYW1pbmdfZmV0Y2gnKQorT1JERVIgQlkgc3J2bmFtZSwg b3B0aW9uX25hbWU7CisgICAgIHNydm5hbWUgICAgICB8ICAgb3B0aW9uX25hbWUgICB8IG9wdGlv bl92YWx1ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLQorIGZldGNoX3N0cmVhbV9zcnYgfCBzdHJlYW1pbmdfZmV0Y2ggfCB0cnVlCisoMSByb3cp CisKKy0tIFZlcmlmeSBvcHRpb24gaXMgTk9UIHByZXNlbnQgYXQgdGFibGUgbGV2ZWwgKGluaGVy aXRzIGZyb20gc2VydmVyKQorU0VMRUNUIGZ0cmVsaWQ6OnJlZ2NsYXNzLCBmdG9wdGlvbnMKK0ZS T00gcGdfZm9yZWlnbl90YWJsZQorV0hFUkUgZnRyZWxpZCA9ICdmdF9zZXJ2ZXInOjpyZWdjbGFz czsKKyAgZnRyZWxpZCAgfCAgICAgICAgICAgICAgICAgZnRvcHRpb25zICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBmdF9zZXJ2ZXIgfCB7c2NoZW1hX25hbWU9cHVibGljLHRhYmxlX25hbWU9bG9jYWxfdGJs fQorKDEgcm93KQorCistLSAxYi4gU3dpdGNoIHNlcnZlci1sZXZlbCB0byBzdHJlYW1pbmdfZmV0 Y2ggPSBmYWxzZQorQUxURVIgU0VSVkVSIGZldGNoX3N0cmVhbV9zcnYgT1BUSU9OUyAoU0VUIHN0 cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsKK1NFTEVDVCBzcnZuYW1lLCBvcHRpb25fbmFtZSwgb3B0 aW9uX3ZhbHVlCitGUk9NIHBnX2ZvcmVpZ25fc2VydmVyLAorICAgICBMQVRFUkFMIHBnX29wdGlv bnNfdG9fdGFibGUoc3J2b3B0aW9ucykKK1dIRVJFIHNydm5hbWUgPSAnZmV0Y2hfc3RyZWFtX3Ny dicKKyAgQU5EIG9wdGlvbl9uYW1lIElOICgnc3RyZWFtaW5nX2ZldGNoJykKK09SREVSIEJZIHNy dm5hbWUsIG9wdGlvbl9uYW1lOworICAgICBzcnZuYW1lICAgICAgfCAgIG9wdGlvbl9uYW1lICAg fCBvcHRpb25fdmFsdWUgCistLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0KKyBmZXRjaF9zdHJlYW1fc3J2IHwgc3RyZWFtaW5nX2ZldGNoIHwgZmFsc2UK KygxIHJvdykKKworLS0gVmVyaWZ5IG9wdGlvbiBpcyBOT1QgcHJlc2VudCBhdCB0YWJsZSBsZXZl bCAoaW5oZXJpdHMgZnJvbSBzZXJ2ZXIpCitTRUxFQ1QgZnRyZWxpZDo6cmVnY2xhc3MsIGZ0b3B0 aW9ucworRlJPTSBwZ19mb3JlaWduX3RhYmxlCitXSEVSRSBmdHJlbGlkID0gJ2Z0X3NlcnZlcic6 OnJlZ2NsYXNzOworICBmdHJlbGlkICB8ICAgICAgICAgICAgICAgICBmdG9wdGlvbnMgICAgICAg ICAgICAgICAgIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIGZ0X3NlcnZlciB8IHtzY2hlbWFfbmFtZT1wdWJsaWMsdGFibGVfbmFtZT1s b2NhbF90Ymx9CisoMSByb3cpCisKKy0tIDIuIHN0cmVhbWluZ19mZXRjaCBzZXQgYXQgVEFCTEUg bGV2ZWwgb25seSAobm8gc2VydmVyLWxldmVsIG9wdGlvbikKK0FMVEVSIFNFUlZFUiBmZXRjaF9z dHJlYW1fc3J2IE9QVElPTlMgKERST1Agc3RyZWFtaW5nX2ZldGNoKTsKKy0tIDJhLiBzdHJlYW1p bmdfZmV0Y2ggPSB0cnVlIGF0IHRhYmxlIGxldmVsCitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0X3Nl cnZlciBPUFRJT05TIChBREQgc3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CitTRUxFQ1QgZnRyZWxp ZDo6cmVnY2xhc3MsIGZ0b3B0aW9ucworRlJPTSBwZ19mb3JlaWduX3RhYmxlCitXSEVSRSBmdHJl bGlkID0gJ2Z0X3NlcnZlcic6OnJlZ2NsYXNzOworICBmdHJlbGlkICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgZnRvcHRpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIGZ0X3NlcnZlciB8IHtzY2hlbWFfbmFtZT1wdWJsaWMsdGFibGVfbmFt ZT1sb2NhbF90Ymwsc3RyZWFtaW5nX2ZldGNoPXRydWV9CisoMSByb3cpCisKK1NFTEVDVCAqIEZS T00gZnRfc2VydmVyIE9SREVSIEJZIGlkOworIGlkIHwgdmFsIAorLS0tLSstLS0tLQorICAxIHwg YQorICAyIHwgYgorICAzIHwgYworKDMgcm93cykKKworLS0gMmIuIHN0cmVhbWluZ19mZXRjaCA9 IGZhbHNlIGF0IHRhYmxlIGxldmVsCitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0X3NlcnZlciBPUFRJ T05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICdmYWxzZScpOworU0VMRUNUIGZ0cmVsaWQ6OnJlZ2Ns YXNzLCBmdG9wdGlvbnMKK0ZST00gcGdfZm9yZWlnbl90YWJsZQorV0hFUkUgZnRyZWxpZCA9ICdm dF9zZXJ2ZXInOjpyZWdjbGFzczsKKyAgZnRyZWxpZCAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmdG9wdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIGZ0X3NlcnZlciB8IHtzY2hlbWFfbmFtZT1wdWJsaWMsdGFibGVfbmFtZT1sb2Nh bF90Ymwsc3RyZWFtaW5nX2ZldGNoPWZhbHNlfQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIGZ0 X3NlcnZlciBPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCAKKy0tLS0rLS0tLS0KKyAgMSB8IGEKKyAg MiB8IGIKKyAgMyB8IGMKKygzIHJvd3MpCisKKy0tIDMuIFRBQkxFLWxldmVsIHZhbHVlIG92ZXJy aWRlcyBTRVJWRVItbGV2ZWwgdmFsdWUKKy0tIDNhLiBTZXJ2ZXIgPSB0cnVlLCBUYWJsZSA9IGZh bHNlCitBTFRFUiBTRVJWRVIgZmV0Y2hfc3RyZWFtX3NydiBPUFRJT05TIChBREQgc3RyZWFtaW5n X2ZldGNoICd0cnVlJyk7CistLSBTZXJ2ZXIgIHNob3dzIHRydWUKK1NFTEVDVCBzcnZuYW1lLCBv cHRpb25fbmFtZSwgb3B0aW9uX3ZhbHVlCitGUk9NIHBnX2ZvcmVpZ25fc2VydmVyLAorICAgICBM QVRFUkFMIHBnX29wdGlvbnNfdG9fdGFibGUoc3J2b3B0aW9ucykKK1dIRVJFIHNydm5hbWUgPSAn ZmV0Y2hfc3RyZWFtX3NydicKKyAgQU5EIG9wdGlvbl9uYW1lIElOICgnc3RyZWFtaW5nX2ZldGNo JykKK09SREVSIEJZIHNydm5hbWUsIG9wdGlvbl9uYW1lOworICAgICBzcnZuYW1lICAgICAgfCAg IG9wdGlvbl9uYW1lICAgfCBvcHRpb25fdmFsdWUgCistLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBmZXRjaF9zdHJlYW1fc3J2IHwgc3RyZWFtaW5n X2ZldGNoIHwgdHJ1ZQorKDEgcm93KQorCistLSBUYWJsZSBzaG93cyBpdHMgb3duIG92ZXJyaWRl OiBmYWxzZQorU0VMRUNUIGZ0cmVsaWQ6OnJlZ2NsYXNzLCBmdG9wdGlvbnMKK0ZST00gcGdfZm9y ZWlnbl90YWJsZQorV0hFUkUgZnRyZWxpZCA9ICdmdF9zZXJ2ZXInOjpyZWdjbGFzczsKKyAgZnRy ZWxpZCAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdG9wdGlvbnMgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGZ0X3NlcnZlciB8IHtzY2hl bWFfbmFtZT1wdWJsaWMsdGFibGVfbmFtZT1sb2NhbF90Ymwsc3RyZWFtaW5nX2ZldGNoPWZhbHNl fQorKDEgcm93KQorCistLSBRdWVyeSBtdXN0IHN1Y2NlZWQgYW5kIHVzZSB0YWJsZS1sZXZlbCBz ZXR0aW5nIChmYWxzZSkKK1NFTEVDVCAqIEZST00gZnRfc2VydmVyIE9SREVSIEJZIGlkOworIGlk IHwgdmFsIAorLS0tLSstLS0tLQorICAxIHwgYQorICAyIHwgYgorICAzIHwgYworKDMgcm93cykK KworLS0gM2IuIFNlcnZlciA9IGZhbHNlLCBUYWJsZSA9IHRydWUgIOKGkiAgZWZmZWN0aXZlIHZh bHVlIGlzIHRydWUKK0FMVEVSIFNFUlZFUiBmZXRjaF9zdHJlYW1fc3J2IE9QVElPTlMgKFNFVCBz dHJlYW1pbmdfZmV0Y2ggJ2ZhbHNlJyk7CitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0X3NlcnZlciBP UFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CistLSBTZXJ2ZXIgc2hvd3MgZmFs c2UKK1NFTEVDVCBzcnZuYW1lLCBvcHRpb25fbmFtZSwgb3B0aW9uX3ZhbHVlCitGUk9NIHBnX2Zv cmVpZ25fc2VydmVyLAorICAgICBMQVRFUkFMIHBnX29wdGlvbnNfdG9fdGFibGUoc3J2b3B0aW9u cykKK1dIRVJFIHNydm5hbWUgPSAnZmV0Y2hfc3RyZWFtX3NydicKKyAgQU5EIG9wdGlvbl9uYW1l IElOICgnc3RyZWFtaW5nX2ZldGNoJykKK09SREVSIEJZIHNydm5hbWUsIG9wdGlvbl9uYW1lOwor ICAgICBzcnZuYW1lICAgICAgfCAgIG9wdGlvbl9uYW1lICAgfCBvcHRpb25fdmFsdWUgCistLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KKyBmZXRjaF9z dHJlYW1fc3J2IHwgc3RyZWFtaW5nX2ZldGNoIHwgZmFsc2UKKygxIHJvdykKKworLS0gVGFibGUg c2hvd3MgaXRzIG93biBvdmVycmlkZTogdHJ1ZQorU0VMRUNUIGZ0cmVsaWQ6OnJlZ2NsYXNzLCBm dG9wdGlvbnMKK0ZST00gcGdfZm9yZWlnbl90YWJsZQorV0hFUkUgZnRyZWxpZCA9ICdmdF9zZXJ2 ZXInOjpyZWdjbGFzczsKKyAgZnRyZWxpZCAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ0 b3B0aW9ucyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyBmdF9zZXJ2ZXIgfCB7c2NoZW1hX25hbWU9cHVibGljLHRhYmxlX25hbWU9bG9jYWxfdGJsLHN0 cmVhbWluZ19mZXRjaD10cnVlfQorKDEgcm93KQorCistLSBRdWVyeSBtdXN0IHN1Y2NlZWQgYW5k IHVzZSB0YWJsZS1sZXZlbCBzZXR0aW5nICh0cnVlKQorU0VMRUNUICogRlJPTSBmdF9zZXJ2ZXIg T1JERVIgQlkgaWQ7CisgaWQgfCB2YWwgCistLS0tKy0tLS0tCisgIDEgfCBhCisgIDIgfCBiCisg IDMgfCBjCisoMyByb3dzKQorCistLSA0LiBOZWdhdGl2ZSB0ZXN0czogaW52YWxpZCB2YWx1ZXMg bXVzdCBiZSByZWplY3RlZAorLS0gc3RyZWFtaW5nX2ZldGNoIGlzIGJvb2xlYW47IG5vbi1ib29s ZWFuIHZhbHVlIG11c3QgRVJST1IKK1xzZXQgVkVSQk9TSVRZIHRlcnNlCitDUkVBVEUgRk9SRUlH TiBUQUJMRSBmdF9pbnZhbGlkIChpZCBpbnQsIHZhbCB0ZXh0KQorICAgIFNFUlZFUiBmZXRjaF9z dHJlYW1fc3J2CisgICAgT1BUSU9OUyAoc2NoZW1hX25hbWUgJ3B1YmxpYycsIHRhYmxlX25hbWUg J2xvY2FsX3RibCcsIHN0cmVhbWluZ19mZXRjaCAneWVzJyk7ICAtLSBFUlJPUgorRVJST1I6ICBz dHJlYW1pbmdfZmV0Y2ggcmVxdWlyZXMgYSBCb29sZWFuIHZhbHVlCitDUkVBVEUgRk9SRUlHTiBU QUJMRSBmdF9pbnZhbGlkIChpZCBpbnQsIHZhbCB0ZXh0KQorICAgIFNFUlZFUiBmZXRjaF9zdHJl YW1fc3J2CisgICAgT1BUSU9OUyAoc2NoZW1hX25hbWUgJ3B1YmxpYycsIHRhYmxlX25hbWUgJ2xv Y2FsX3RibCcsIHN0cmVhbWluZ19mZXRjaCAnMScpOyAgICAtLSBFUlJPUgorRVJST1I6ICBzdHJl YW1pbmdfZmV0Y2ggcmVxdWlyZXMgYSBCb29sZWFuIHZhbHVlCitDUkVBVEUgRk9SRUlHTiBUQUJM RSBmdF9pbnZhbGlkIChpZCBpbnQsIHZhbCB0ZXh0KQorICAgIFNFUlZFUiBmZXRjaF9zdHJlYW1f c3J2CisgICAgT1BUSU9OUyAoc2NoZW1hX25hbWUgJ3B1YmxpYycsIHRhYmxlX25hbWUgJ2xvY2Fs X3RibCcsIHN0cmVhbWluZ19mZXRjaCAnJyk7ICAgICAtLSBFUlJPUgorRVJST1I6ICBzdHJlYW1p bmdfZmV0Y2ggcmVxdWlyZXMgYSBCb29sZWFuIHZhbHVlCitBTFRFUiBTRVJWRVIgZmV0Y2hfc3Ry ZWFtX3NydiBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICdub3RhYm9vbCcpOyAgICAgICAg ICAgICAtLSBFUlJPUgorRVJST1I6ICBzdHJlYW1pbmdfZmV0Y2ggcmVxdWlyZXMgYSBCb29sZWFu IHZhbHVlCitcc2V0IFZFUkJPU0lUWSBkZWZhdWx0CistLSA1LiBBTFRFUiBGT1JFSUdOIFRBQkxF OiBhZGQsIGNoYW5nZSwgYW5kIGRyb3Agc3RyZWFtaW5nX2ZldGNoCitBTFRFUiBTRVJWRVIgZmV0 Y2hfc3RyZWFtX3NydiBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CitDUkVB VEUgRk9SRUlHTiBUQUJMRSBmdF9hbHRlcl90ZXN0IChpZCBpbnQsIHZhbCB0ZXh0KQorICAgIFNF UlZFUiBmZXRjaF9zdHJlYW1fc3J2CisgICAgT1BUSU9OUyAoc2NoZW1hX25hbWUgJ3B1YmxpYycs IHRhYmxlX25hbWUgJ2xvY2FsX3RibCcpOworLS0gTm8gdGFibGUtbGV2ZWwgb3B0aW9uIHlldAor U0VMRUNUIGZ0cmVsaWQ6OnJlZ2NsYXNzLCBmdG9wdGlvbnMKK0ZST00gcGdfZm9yZWlnbl90YWJs ZQorV0hFUkUgZnRyZWxpZCA9ICdmdF9hbHRlcl90ZXN0Jzo6cmVnY2xhc3M7CisgICAgZnRyZWxp ZCAgICB8ICAgICAgICAgICAgICAgICBmdG9wdGlvbnMgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBm dF9hbHRlcl90ZXN0IHwge3NjaGVtYV9uYW1lPXB1YmxpYyx0YWJsZV9uYW1lPWxvY2FsX3RibH0K KygxIHJvdykKKworLS0gQUREIHRhYmxlLWxldmVsIG9wdGlvbgorQUxURVIgRk9SRUlHTiBUQUJM RSBmdF9hbHRlcl90ZXN0IE9QVElPTlMgKEFERCBzdHJlYW1pbmdfZmV0Y2ggJ2ZhbHNlJyk7CitT RUxFQ1QgZnRyZWxpZDo6cmVnY2xhc3MsIGZ0b3B0aW9ucworRlJPTSBwZ19mb3JlaWduX3RhYmxl CitXSEVSRSBmdHJlbGlkID0gJ2Z0X2FsdGVyX3Rlc3QnOjpyZWdjbGFzczsKKyAgICBmdHJlbGlk ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnRvcHRpb25zICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZnRfYWx0ZXJfdGVzdCB8 IHtzY2hlbWFfbmFtZT1wdWJsaWMsdGFibGVfbmFtZT1sb2NhbF90Ymwsc3RyZWFtaW5nX2ZldGNo PWZhbHNlfQorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIGZ0X2FsdGVyX3Rlc3QgT1JERVIgQlkg aWQ7CisgaWQgfCB2YWwgCistLS0tKy0tLS0tCisgIDEgfCBhCisgIDIgfCBiCisgIDMgfCBjCiso MyByb3dzKQorCistLSBTRVQgKGNoYW5nZSkgdGFibGUtbGV2ZWwgb3B0aW9uCitBTFRFUiBGT1JF SUdOIFRBQkxFIGZ0X2FsdGVyX3Rlc3QgT1BUSU9OUyAoU0VUIHN0cmVhbWluZ19mZXRjaCAndHJ1 ZScpOworU0VMRUNUIGZ0cmVsaWQ6OnJlZ2NsYXNzLCBmdG9wdGlvbnMKK0ZST00gcGdfZm9yZWln bl90YWJsZQorV0hFUkUgZnRyZWxpZCA9ICdmdF9hbHRlcl90ZXN0Jzo6cmVnY2xhc3M7CisgICAg ZnRyZWxpZCAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgZnRvcHRpb25zICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmdF9hbHRlcl90 ZXN0IHwge3NjaGVtYV9uYW1lPXB1YmxpYyx0YWJsZV9uYW1lPWxvY2FsX3RibCxzdHJlYW1pbmdf ZmV0Y2g9dHJ1ZX0KKygxIHJvdykKKworU0VMRUNUICogRlJPTSBmdF9hbHRlcl90ZXN0IE9SREVS IEJZIGlkOworIGlkIHwgdmFsIAorLS0tLSstLS0tLQorICAxIHwgYQorICAyIHwgYgorICAzIHwg YworKDMgcm93cykKKworLS0gRFJPUCB0YWJsZS1sZXZlbCBvcHRpb24gKGZhbGxzIGJhY2sgdG8g c2VydmVyLWxldmVsKQorQUxURVIgRk9SRUlHTiBUQUJMRSBmdF9hbHRlcl90ZXN0IE9QVElPTlMg KERST1Agc3RyZWFtaW5nX2ZldGNoKTsKK1NFTEVDVCBmdHJlbGlkOjpyZWdjbGFzcywgZnRvcHRp b25zCitGUk9NIHBnX2ZvcmVpZ25fdGFibGUKK1dIRVJFIGZ0cmVsaWQgPSAnZnRfYWx0ZXJfdGVz dCc6OnJlZ2NsYXNzOworICAgIGZ0cmVsaWQgICAgfCAgICAgICAgICAgICAgICAgZnRvcHRpb25z ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZnRfYWx0ZXJfdGVzdCB8IHtzY2hlbWFfbmFtZT1wdWJs aWMsdGFibGVfbmFtZT1sb2NhbF90Ymx9CisoMSByb3cpCisKK1NFTEVDVCAqIEZST00gZnRfYWx0 ZXJfdGVzdCBPUkRFUiBCWSBpZDsKKyBpZCB8IHZhbCAKKy0tLS0rLS0tLS0KKyAgMSB8IGEKKyAg MiB8IGIKKyAgMyB8IGMKKygzIHJvd3MpCisKK0RST1AgRk9SRUlHTiBUQUJMRSBmdF9hbHRlcl90 ZXN0OworLS0gNi4gc3RyZWFtaW5nX2ZldGNoIHdpdGggbm9uLWRlZmF1bHQgZmV0Y2hfc2l6ZSB2 YWx1ZXMKKy0tIFVzZSBhIDEyLXJvdyB0YWJsZSBzbyBjaHVuayBib3VuZGFyaWVzIGFyZSBkaXN0 aW5jdCBhbmQgcHJlZGljdGFibGU6CistLSBmZXRjaF9zaXplPTEgZ2l2ZXMgMTIgc2luZ2xlLXJv dyBjaHVua3MsIGZldGNoX3NpemU9NSBnaXZlcyBjaHVua3MKKy0tIG9mIDUrNSsyLCBhbmQgZmV0 Y2hfc2l6ZT0xMDAwIHB1dHMgYWxsIHJvd3MgaW4gYSBzaW5nbGUgY2h1bmsuCitDUkVBVEUgVEFC TEUgbG9jYWxfdGJsX2xhcmdlIChpZCBpbnQsIHZhbCB0ZXh0KTsKK0lOU0VSVCBJTlRPIGxvY2Fs X3RibF9sYXJnZSBTRUxFQ1QgaWQsICd2YWwnIHx8IGlkIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEyKSBpZDsKK0FMVEVSIFNFUlZFUiBmZXRjaF9zdHJlYW1fc3J2IE9QVElPTlMgKFNFVCBzdHJl YW1pbmdfZmV0Y2ggJ3RydWUnKTsKKy0tIGZldGNoX3NpemUgPSAxOiBldmVyeSByb3cgaXMgaXRz IG93biBsaWJwcSBjaHVuazsgZXhlcmNpc2VzIHRoZSBwYXRoCistLSB3aGVyZSBwZ2Zkd19nZXRf bmV4dF9yZXN1bHQgaXMgY2FsbGVkIG9uY2UgcGVyIHJvdy4KK0NSRUFURSBGT1JFSUdOIFRBQkxF IGZ0X2ZldGNoc2l6ZSAoaWQgaW50LCB2YWwgdGV4dCkKKyAgICBTRVJWRVIgZmV0Y2hfc3RyZWFt X3NydgorICAgIE9QVElPTlMgKHNjaGVtYV9uYW1lICdwdWJsaWMnLCB0YWJsZV9uYW1lICdsb2Nh bF90YmxfbGFyZ2UnLCBmZXRjaF9zaXplICcxJyk7CitTRUxFQ1QgY291bnQoKikgRlJPTSBmdF9m ZXRjaHNpemU7CisgY291bnQgCistLS0tLS0tCisgICAgMTIKKygxIHJvdykKKworRFJPUCBGT1JF SUdOIFRBQkxFIGZ0X2ZldGNoc2l6ZTsKKy0tIGZldGNoX3NpemUgPSA1OiB0aHJlZSBjaHVua3Mg d2l0aCBhIHBhcnRpYWwgbGFzdCBjaHVuayAoNSs1KzIpOworLS0gdGhlIGZpbmFsIGNodW5rIGlz IHNtYWxsZXIgdGhhbiBmZXRjaF9zaXplLgorQ1JFQVRFIEZPUkVJR04gVEFCTEUgZnRfZmV0Y2hz aXplIChpZCBpbnQsIHZhbCB0ZXh0KQorICAgIFNFUlZFUiBmZXRjaF9zdHJlYW1fc3J2CisgICAg T1BUSU9OUyAoc2NoZW1hX25hbWUgJ3B1YmxpYycsIHRhYmxlX25hbWUgJ2xvY2FsX3RibF9sYXJn ZScsIGZldGNoX3NpemUgJzUnKTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGZ0X2ZldGNoc2l6ZTsK KyBjb3VudCAKKy0tLS0tLS0KKyAgICAxMgorKDEgcm93KQorCitTRUxFQ1QgKiBGUk9NIGZ0X2Zl dGNoc2l6ZSBPUkRFUiBCWSBpZDsKKyBpZCB8ICB2YWwgIAorLS0tLSstLS0tLS0tCisgIDEgfCB2 YWwxCisgIDIgfCB2YWwyCisgIDMgfCB2YWwzCisgIDQgfCB2YWw0CisgIDUgfCB2YWw1CisgIDYg fCB2YWw2CisgIDcgfCB2YWw3CisgIDggfCB2YWw4CisgIDkgfCB2YWw5CisgMTAgfCB2YWwxMAor IDExIHwgdmFsMTEKKyAxMiB8IHZhbDEyCisoMTIgcm93cykKKworRFJPUCBGT1JFSUdOIFRBQkxF IGZ0X2ZldGNoc2l6ZTsKKy0tIGZldGNoX3NpemUgZXhjZWVkcyB0aGUgdGFibGUgcm93IGNvdW50 OiBhbGwgcm93cyBhcnJpdmUgaW4gb25lIGNodW5rCistLSBmb2xsb3dlZCBpbW1lZGlhdGVseSBi eSB0aGUgZmluYWwgZW1wdHkgUEdSRVNfVFVQTEVTX09LIHJlc3VsdC4KK0NSRUFURSBGT1JFSUdO IFRBQkxFIGZ0X2ZldGNoc2l6ZSAoaWQgaW50LCB2YWwgdGV4dCkKKyAgICBTRVJWRVIgZmV0Y2hf c3RyZWFtX3NydgorICAgIE9QVElPTlMgKHNjaGVtYV9uYW1lICdwdWJsaWMnLCB0YWJsZV9uYW1l ICdsb2NhbF90YmxfbGFyZ2UnLCBmZXRjaF9zaXplICcxMDAwJyk7CitTRUxFQ1QgY291bnQoKikg RlJPTSBmdF9mZXRjaHNpemU7CisgY291bnQgCistLS0tLS0tCisgICAgMTIKKygxIHJvdykKKwor RFJPUCBGT1JFSUdOIFRBQkxFIGZ0X2ZldGNoc2l6ZTsKK0RST1AgVEFCTEUgbG9jYWxfdGJsX2xh cmdlOworLS0gNy4gc3RyZWFtaW5nX2ZldGNoIGNvbWJpbmVkIHdpdGggdXNlX3JlbW90ZV9lc3Rp bWF0ZQorLS0gdXNlX3JlbW90ZV9lc3RpbWF0ZSBpc3N1ZXMgYSByZW1vdGUgRVhQTEFJTiB0byBz aXplIHRoZSBzY2FuIGF0IHBsYW4KKy0tIHRpbWU7IHN0cmVhbWluZ19mZXRjaCBtdXN0IG5vdCBp bnRlcmZlcmUgd2l0aCB0aGF0IEVYUExBSU4gY2FsbC4KK0FMVEVSIFNFUlZFUiBmZXRjaF9zdHJl YW1fc3J2IE9QVElPTlMgKEFERCB1c2VfcmVtb3RlX2VzdGltYXRlICd0cnVlJyk7CitDUkVBVEUg Rk9SRUlHTiBUQUJMRSBmdF9yZW1vdGVfZXN0IChpZCBpbnQsIHZhbCB0ZXh0KQorICAgIFNFUlZF UiBmZXRjaF9zdHJlYW1fc3J2CisgICAgT1BUSU9OUyAoc2NoZW1hX25hbWUgJ3B1YmxpYycsIHRh YmxlX25hbWUgJ2xvY2FsX3RibCcpOworLS0gVmVyaWZ5IGJvdGggb3B0aW9ucyBhcmUgYWN0aXZl IGF0IHRoZSBzZXJ2ZXIgbGV2ZWwuCitTRUxFQ1Qgc3J2bmFtZSwgb3B0aW9uX25hbWUsIG9wdGlv bl92YWx1ZQorRlJPTSBwZ19mb3JlaWduX3NlcnZlciwKKyAgICAgTEFURVJBTCBwZ19vcHRpb25z X3RvX3RhYmxlKHNydm9wdGlvbnMpCitXSEVSRSBzcnZuYW1lID0gJ2ZldGNoX3N0cmVhbV9zcnYn CisgIEFORCBvcHRpb25fbmFtZSBJTiAoJ3N0cmVhbWluZ19mZXRjaCcsICd1c2VfcmVtb3RlX2Vz dGltYXRlJykKK09SREVSIEJZIG9wdGlvbl9uYW1lOworICAgICBzcnZuYW1lICAgICAgfCAgICAg b3B0aW9uX25hbWUgICAgIHwgb3B0aW9uX3ZhbHVlIAorLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIGZldGNoX3N0cmVhbV9zcnYgfCBzdHJl YW1pbmdfZmV0Y2ggICAgIHwgdHJ1ZQorIGZldGNoX3N0cmVhbV9zcnYgfCB1c2VfcmVtb3RlX2Vz dGltYXRlIHwgdHJ1ZQorKDIgcm93cykKKworLS0gQm90aCBvcHRpb25zIGFjdGl2ZTogdXNlX3Jl bW90ZV9lc3RpbWF0ZSBzaXplcyB0aGUgc2NhbiByZW1vdGVseSB2aWEKKy0tIEVYUExBSU4sIHRo ZW4gc3RyZWFtaW5nX2ZldGNoIGZldGNoZXMgcm93cyB3aXRob3V0IGEgY3Vyc29yLgorU0VMRUNU ICogRlJPTSBmdF9yZW1vdGVfZXN0IE9SREVSIEJZIGlkOworIGlkIHwgdmFsIAorLS0tLSstLS0t LQorICAxIHwgYQorICAyIHwgYgorICAzIHwgYworKDMgcm93cykKKworQUxURVIgU0VSVkVSIGZl dGNoX3N0cmVhbV9zcnYgT1BUSU9OUyAoRFJPUCB1c2VfcmVtb3RlX2VzdGltYXRlKTsKKy0tIDku IHN0cmVhbWluZ19mZXRjaCBjaGVjayB0aGUgb3V0cHV0IGluIGV4cGxhaW4gd2l0aCB2ZXJib3Nl CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00gZnRfcmVtb3RlX2Vz dCBPUkRFUiBCWSBpZDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBGb3JlaWduIFNjYW4gb24gcHVibGljLmZ0X3JlbW90ZV9lc3QKKyAgIE91dHB1dDog aWQsIHZhbAorICAgUmVtb3RlIFNRTDogU0VMRUNUIGlkLCB2YWwgRlJPTSBwdWJsaWMubG9jYWxf dGJsIE9SREVSIEJZIGlkIEFTQyBOVUxMUyBMQVNUCisgICBzdHJlYW1pbmdfZmV0Y2g6IHRydWUK Kyg0IHJvd3MpCisKKy0tIENsZWFudXAKK0RST1AgRk9SRUlHTiBUQUJMRSBmdF9yZW1vdGVfZXN0 OworRFJPUCBVU0VSIE1BUFBJTkcgRk9SIENVUlJFTlRfVVNFUiBTRVJWRVIgZmV0Y2hfc3RyZWFt X3NydjsKK0RST1AgU0VSVkVSIGZldGNoX3N0cmVhbV9zcnYgQ0FTQ0FERTsKK05PVElDRTogIGRy b3AgY2FzY2FkZXMgdG8gZm9yZWlnbiB0YWJsZSBmdF9zZXJ2ZXIKK0RST1AgVEFCTEUgbG9jYWxf dGJsOworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQogLS0gdGVzdCBzdWJzY3JpcHRpb24KIC0tID09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IENSRUFURSBTVUJTQ1JJUFRJT04gcmVncmVzc19wZ2Zkd19zdWJzY3JpcHRpb24gU0VSVkVSIHRl c3RzZXJ2ZXIxCkBAIC00NDgsNiArODA1LDg5IEBAIFNFTEVDVCAqIEZST00gZnQxIHQxIFdIRVJF IHQxLmMzID0gKFNFTEVDVCBNQVgoYzMpIEZST00gZnQyIHQyKSBPUkRFUiBCWSBjMTsKICAxMDAw IHwgIDAgfCAwMTAwMCB8IFRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgSmFuIDAx IDAwOjAwOjAwIDE5NzAgfCAwICB8IDAgICAgICAgICAgfCBmb28KICgxIHJvdykKIAorLS0gVGVz dCBpbiBzdHJlYW1pbmdfZmV0Y2ggbW9kZSB0byBjb3ZlciBwcm9jZXNzX3F1ZXJ5X3BhcmFtcyBw YXRoCistLSB3aXRoIG9ubHkgb25lIHRhYmxlIHVzaW5nIHN0cmVhbWluZ19mZXRjaAorQUxURVIg Rk9SRUlHTiBUQUJMRSBmdDEgT1BUSU9OUyAoc3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CitTRUxF Q1QgKiBGUk9NIGZ0MSB0MSBXSEVSRSB0MS5jMyA9IChTRUxFQ1QgTUFYKGMzKSBGUk9NIGZ0MiB0 MikgT1JERVIgQlkgYzE7CisgIGMxICB8IGMyIHwgIGMzICAgfCAgICAgICAgICAgICAgYzQgICAg ICAgICAgICAgIHwgICAgICAgICAgICBjNSAgICAgICAgICAgIHwgYzYgfCAgICAgYzcgICAgIHwg YzggIAorLS0tLS0tKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0KKyAxMDAw IHwgIDAgfCAwMTAwMCB8IFRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgSmFuIDAx IDAwOjAwOjAwIDE5NzAgfCAwICB8IDAgICAgICAgICAgfCBmb28KKygxIHJvdykKKworLS0gVGVz dCBqb2luIHdpdGggb25seSBvbmUgdGFibGUgdXNpbmcgc3RyZWFtaW5nX2ZldGNoIGF0IGEgdGlt ZQorU0VMRUNUIHQxLmMxLCB0Mi4iQyAxIiBGUk9NIGZ0MiB0MSBKT0lOICJTIDEiLiJUIDEiIHQy IE9OICh0MS5jMSA9IHQyLiJDIDEiKSBPRkZTRVQgMTAwIExJTUlUIDEwOworIGMxICB8IEMgMSAK Ky0tLS0tKy0tLS0tCisgMTAxIHwgMTAxCisgMTAyIHwgMTAyCisgMTAzIHwgMTAzCisgMTA0IHwg MTA0CisgMTA1IHwgMTA1CisgMTA2IHwgMTA2CisgMTA3IHwgMTA3CisgMTA4IHwgMTA4CisgMTA5 IHwgMTA5CisgMTEwIHwgMTEwCisoMTAgcm93cykKKworQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEg T1BUSU9OUyAoU0VUIHN0cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsKK0FMVEVSIEZPUkVJR04gVEFC TEUgZnQyIE9QVElPTlMgKHN0cmVhbWluZ19mZXRjaCAndHJ1ZScpOworU0VMRUNUIHQxLmMxLCB0 Mi4iQyAxIiBGUk9NIGZ0MiB0MSBKT0lOICJTIDEiLiJUIDEiIHQyIE9OICh0MS5jMSA9IHQyLiJD IDEiKSBPRkZTRVQgMTAwIExJTUlUIDEwOworIGMxICB8IEMgMSAKKy0tLS0tKy0tLS0tCisgMTAx IHwgMTAxCisgMTAyIHwgMTAyCisgMTAzIHwgMTAzCisgMTA0IHwgMTA0CisgMTA1IHwgMTA1Cisg MTA2IHwgMTA2CisgMTA3IHwgMTA3CisgMTA4IHwgMTA4CisgMTA5IHwgMTA5CisgMTEwIHwgMTEw CisoMTAgcm93cykKKworLS0gd2l0aCBib3RoIHRoZSB0YWJsZXMgdXNpbmcgc3RyZWFtaW5nX2Zl dGNoCitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNo ICd0cnVlJyk7CitTRUxFQ1QgKiBGUk9NIGZ0MSB0MSBXSEVSRSB0MS5jMyA9IChTRUxFQ1QgTUFY KGMzKSBGUk9NIGZ0MiB0MikgT1JERVIgQlkgYzE7CisgIGMxICB8IGMyIHwgIGMzICAgfCAgICAg ICAgICAgICAgYzQgICAgICAgICAgICAgIHwgICAgICAgICAgICBjNSAgICAgICAgICAgIHwgYzYg fCAgICAgYzcgICAgIHwgYzggIAorLS0tLS0tKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0KKyAxMDAwIHwgIDAgfCAwMTAwMCB8IFRodSBKYW4gMDEgMDA6MDA6MDAgMTk3MCBQ U1QgfCBUaHUgSmFuIDAxIDAwOjAwOjAwIDE5NzAgfCAwICB8IDAgICAgICAgICAgfCBmb28KKygx IHJvdykKKworLS0gVGVzdCBqb2luIHdpdGggYm90aCB0aGUgdGFibGVzIHVzaW5nIHN0cmVhbWlu Z19mZXRjaAorU0VMRUNUIHQxLmMxLCB0Mi4iQyAxIiBGUk9NIGZ0MiB0MSBKT0lOICJTIDEiLiJU IDEiIHQyIE9OICh0MS5jMSA9IHQyLiJDIDEiKSBPRkZTRVQgMTAwIExJTUlUIDEwOworIGMxICB8 IEMgMSAKKy0tLS0tKy0tLS0tCisgMTAxIHwgMTAxCisgMTAyIHwgMTAyCisgMTAzIHwgMTAzCisg MTA0IHwgMTA0CisgMTA1IHwgMTA1CisgMTA2IHwgMTA2CisgMTA3IHwgMTA3CisgMTA4IHwgMTA4 CisgMTA5IHwgMTA5CisgMTEwIHwgMTEwCisoMTAgcm93cykKKworQUxURVIgRk9SRUlHTiBUQUJM RSBmdDEgT1BUSU9OUyAoU0VUIHN0cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsKK0FMVEVSIEZPUkVJ R04gVEFCTEUgZnQyIE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ2ZhbHNlJyk7CistLSBz dHJlYW1pbmdfZmV0Y2g6IHZlcmlmeSBjb3JyZWN0IHJlc3VsdHMgd2hlbiBwYXJhbGxlbC1mcmll bmRseSBzZXR0aW5ncworLS0gYXJlIGFjdGl2ZSBsb2NhbGx5LiAgV2l0aCBubyBjdXJzb3Igb24g dGhlIHJlbW90ZSBzaWRlLCB0aGUgcmVtb3RlCistLSBwbGFubmVyIGlzIGZyZWUgdG8gY2hvb3Nl IGEgcGFyYWxsZWwgcGxhbjsgcmVzdWx0cyBtdXN0IG1hdGNoIGV4YWN0bHkuCitBTFRFUiBGT1JF SUdOIFRBQkxFIGZ0MSBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CitTRVQg bWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9IDI7CitTRVQgbWluX3BhcmFsbGVsX3Rh YmxlX3NjYW5fc2l6ZSA9IDA7CitTRUxFQ1QgY291bnQoKikgRlJPTSBmdDE7CisgY291bnQgCist LS0tLS0tCisgIDEwMDAKKygxIHJvdykKKworUkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVy X2dhdGhlcjsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitBTFRFUiBGT1JF SUdOIFRBQkxFIGZ0MSBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICdmYWxzZScpOwogLS0g dXNlZCBpbiBDVEUKIFdJVEggdDEgQVMgKFNFTEVDVCAqIEZST00gZnQxIFdIRVJFIGMxIDw9IDEw KSBTRUxFQ1QgdDIuYzEsIHQyLmMyLCB0Mi5jMywgdDIuYzQgRlJPTSB0MSwgZnQyIHQyIFdIRVJF IHQxLmMxID0gdDIuYzEgT1JERVIgQlkgdDEuYzE7CiAgYzEgfCBjMiB8ICBjMyAgIHwgICAgICAg ICAgICAgIGM0ICAgICAgICAgICAgICAKQEAgLTc4NCwxNiArMTIyNCwyNjUgQEAgRVhQTEFJTiAo VkVSQk9TRSwgQ09TVFMgT0ZGKQogICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUICJDIDEiLCBj MiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOCBGUk9NICJTIDEiLiJUIDEiIFdIRVJFICgoIkMgMSIg PSAkMTo6aW50ZWdlcikpCiAoOCByb3dzKQogCi1TRUxFQ1QgKiBGUk9NICJTIDEiLiJUIDEiIGEs IGZ0MiBiIFdIRVJFIGEuIkMgMSIgPSA0NyBBTkQgYi5jMSA9IGEuYzI7Ci0gQyAxIHwgYzIgfCAg YzMgICB8ICAgICAgICAgICAgICBjNCAgICAgICAgICAgICAgfCAgICAgICAgICAgIGM1ICAgICAg ICAgICAgfCBjNiB8ICAgICBjNyAgICAgfCBjOCAgfCBjMSB8IGMyIHwgIGMzICAgfCAgICAgICAg ICAgICAgYzQgICAgICAgICAgICAgIHwgICAgICAgICAgICBjNSAgICAgICAgICAgIHwgYzYgfCAg ICAgYzcgICAgIHwgYzggIAotLS0tLS0rLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tKy0tLS0tLS0tLS0tLSst LS0tLSstLS0tKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0KLSAgNDcgfCAg NyB8IDAwMDQ3IHwgVHVlIEZlYiAxNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBGZWIgMTcgMDA6 MDA6MDAgMTk3MCB8IDcgIHwgNyAgICAgICAgICB8IGZvbyB8ICA3IHwgIDcgfCAwMDAwNyB8IFRo dSBKYW4gMDggMDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgSmFuIDA4IDAwOjAwOjAwIDE5NzAgfCA3 ICB8IDcgICAgICAgICAgfCBmb28KK1NFTEVDVCAqIEZST00gIlMgMSIuIlQgMSIgYSwgZnQyIGIg V0hFUkUgYS4iQyAxIiA9IDQ3IEFORCBiLmMxID0gYS5jMjsKKyBDIDEgfCBjMiB8ICBjMyAgIHwg ICAgICAgICAgICAgIGM0ICAgICAgICAgICAgICB8ICAgICAgICAgICAgYzUgICAgICAgICAgICB8 IGM2IHwgICAgIGM3ICAgICB8IGM4ICB8IGMxIHwgYzIgfCAgYzMgICB8ICAgICAgICAgICAgICBj NCAgICAgICAgICAgICAgfCAgICAgICAgICAgIGM1ICAgICAgICAgICAgfCBjNiB8ICAgICBjNyAg ICAgfCBjOCAgCistLS0tLSstLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tKy0t LS0rLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tKy0tLS0tLS0tLS0tLSstLS0tLQorICA0NyB8ICA3IHwgMDAw NDcgfCBUdWUgRmViIDE3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEZlYiAxNyAwMDowMDowMCAx OTcwIHwgNyAgfCA3ICAgICAgICAgIHwgZm9vIHwgIDcgfCAgNyB8IDAwMDA3IHwgVGh1IEphbiAw OCAwMDowMDowMCAxOTcwIFBTVCB8IFRodSBKYW4gMDggMDA6MDA6MDAgMTk3MCB8IDcgIHwgNyAg ICAgICAgICB8IGZvbworKDEgcm93KQorCistLSBjaGVjayBib3RoIHNhZmUgYW5kIHVuc2FmZSBq b2luIGNvbmRpdGlvbnMKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKKyAgU0VMRUNUICog RlJPTSBmdDIgYSwgZnQyIGIKKyAgV0hFUkUgYS5jMiA9IDYgQU5EIGIuYzEgPSBhLmMxIEFORCBh LmM4ID0gJ2ZvbycgQU5EIGIuYzcgPSB1cHBlcihhLmM3KTsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBOZXN0ZWQgTG9vcAorICAgT3V0cHV0OiBh LmMxLCBhLmMyLCBhLmMzLCBhLmM0LCBhLmM1LCBhLmM2LCBhLmM3LCBhLmM4LCBiLmMxLCBiLmMy LCBiLmMzLCBiLmM0LCBiLmM1LCBiLmM2LCBiLmM3LCBiLmM4CisgICAtPiAgRm9yZWlnbiBTY2Fu IG9uIHB1YmxpYy5mdDIgYQorICAgICAgICAgT3V0cHV0OiBhLmMxLCBhLmMyLCBhLmMzLCBhLmM0 LCBhLmM1LCBhLmM2LCBhLmM3LCBhLmM4CisgICAgICAgICBGaWx0ZXI6IChhLmM4ID0gJ2Zvbyc6 OnVzZXJfZW51bSkKKyAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzIsIGMzLCBj NCwgYzUsIGM2LCBjNywgYzggRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKGMyID0gNikpCisgICAt PiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5mdDIgYgorICAgICAgICAgT3V0cHV0OiBiLmMxLCBi LmMyLCBiLmMzLCBiLmM0LCBiLmM1LCBiLmM2LCBiLmM3LCBiLmM4CisgICAgICAgICBGaWx0ZXI6 ICgoYi5jNyk6OnRleHQgPSB1cHBlcigoYS5jNyk6OnRleHQpKQorICAgICAgICAgUmVtb3RlIFNR TDogU0VMRUNUICJDIDEiLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOCBGUk9NICJTIDEiLiJU IDEiIFdIRVJFICgoJDE6OmludGVnZXIgPSAiQyAxIikpCisoMTAgcm93cykKKworU0VMRUNUICog RlJPTSBmdDIgYSwgZnQyIGIKK1dIRVJFIGEuYzIgPSA2IEFORCBiLmMxID0gYS5jMSBBTkQgYS5j OCA9ICdmb28nIEFORCBiLmM3ID0gdXBwZXIoYS5jNyk7CisgYzEgIHwgYzIgfCAgYzMgICB8ICAg ICAgICAgICAgICBjNCAgICAgICAgICAgICAgfCAgICAgICAgICAgIGM1ICAgICAgICAgICAgfCBj NiB8ICAgICBjNyAgICAgfCBjOCAgfCBjMSAgfCBjMiB8ICBjMyAgIHwgICAgICAgICAgICAgIGM0 ICAgICAgICAgICAgICB8ICAgICAgICAgICAgYzUgICAgICAgICAgICB8IGM2IHwgICAgIGM3ICAg ICB8IGM4ICAKKy0tLS0tKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0rLS0t LS0rLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tKy0tLS0tLS0tLS0tLSstLS0tLQorICAgNiB8ICA2IHwgMDAw MDYgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIEphbiAwNyAwMDowMDowMCAx OTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgICA2IHwgIDYgfCAwMDAwNiB8IFdlZCBKYW4g MDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYg ICAgICAgICAgfCBmb28KKyAgMTYgfCAgNiB8IDAwMDE2IHwgU2F0IEphbiAxNyAwMDowMDowMCAx OTcwIFBTVCB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZv byB8ICAxNiB8ICA2IHwgMDAwMTYgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0 IEphbiAxNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgIDI2IHwgIDYg fCAwMDAyNiB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgSmFuIDI3IDAwOjAw OjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAgMjYgfCAgNiB8IDAwMDI2IHwgVHVl IEphbiAyNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCB8IDYg IHwgNiAgICAgICAgICB8IGZvbworICAzNiB8ICA2IHwgMDAwMzYgfCBGcmkgRmViIDA2IDAwOjAw OjAwIDE5NzAgUFNUIHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAg IHwgZm9vIHwgIDM2IHwgIDYgfCAwMDAzNiB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCBQU1Qg fCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAgNDYg fCAgNiB8IDAwMDQ2IHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIFBTVCB8IE1vbiBGZWIgMTYg MDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8ICA0NiB8ICA2IHwgMDAwNDYg fCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgUFNUIHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcw IHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgIDU2IHwgIDYgfCAwMDA1NiB8IFRodSBGZWIgMjYg MDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAg ICAgICAgfCBmb28gfCAgNTYgfCAgNiB8IDAwMDU2IHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcw IFBTVCB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbwor ICA2NiB8ICA2IHwgMDAwNjYgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU3VuIE1h ciAwOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgIDY2IHwgIDYgfCAw MDA2NiB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCBQU1QgfCBTdW4gTWFyIDA4IDAwOjAwOjAw IDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAgNzYgfCAgNiB8IDAwMDc2IHwgV2VkIE1h ciAxOCAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCB8IDYgIHwg NiAgICAgICAgICB8IGZvbyB8ICA3NiB8ICA2IHwgMDAwNzYgfCBXZWQgTWFyIDE4IDAwOjAwOjAw IDE5NzAgUFNUIHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwg Zm9vCisgIDg2IHwgIDYgfCAwMDA4NiB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCBQU1QgfCBT YXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAgODYgfCAg NiB8IDAwMDg2IHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBNYXIgMjggMDA6 MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworICA5NiB8ICA2IHwgMDAwOTYgfCBU dWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIHwg NiAgfCA2ICAgICAgICAgIHwgZm9vIHwgIDk2IHwgIDYgfCAwMDA5NiB8IFR1ZSBBcHIgMDcgMDA6 MDA6MDAgMTk3MCBQU1QgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAg ICAgfCBmb28KKyAxMDYgfCAgNiB8IDAwMTA2IHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIFBT VCB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDEw NiB8ICA2IHwgMDAxMDYgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIEphbiAw NyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMTE2IHwgIDYgfCAwMDEx NiB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5 NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAxMTYgfCAgNiB8IDAwMTE2IHwgU2F0IEphbiAx NyAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAg ICAgICAgICB8IGZvbworIDEyNiB8ICA2IHwgMDAxMjYgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5 NzAgUFNUIHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9v IHwgMTI2IHwgIDYgfCAwMDEyNiB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUg SmFuIDI3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAxMzYgfCAgNiB8 IDAwMTM2IHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIFBTVCB8IEZyaSBGZWIgMDYgMDA6MDA6 MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDEzNiB8ICA2IHwgMDAxMzYgfCBGcmkg RmViIDA2IDAwOjAwOjAwIDE5NzAgUFNUIHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIHwgNiAg fCA2ICAgICAgICAgIHwgZm9vCisgMTQ2IHwgIDYgfCAwMDE0NiB8IE1vbiBGZWIgMTYgMDA6MDA6 MDAgMTk3MCBQU1QgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAg fCBmb28gfCAxNDYgfCAgNiB8IDAwMTQ2IHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIFBTVCB8 IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDE1NiB8 ICA2IHwgMDAxNTYgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgUFNUIHwgVGh1IEZlYiAyNiAw MDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMTU2IHwgIDYgfCAwMDE1NiB8 IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAg fCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAxNjYgfCAgNiB8IDAwMTY2IHwgU3VuIE1hciAwOCAw MDowMDowMCAxOTcwIFBTVCB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAg ICAgICB8IGZvbyB8IDE2NiB8ICA2IHwgMDAxNjYgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAg UFNUIHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisg MTc2IHwgIDYgfCAwMDE3NiB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgTWFy IDE4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAxNzYgfCAgNiB8IDAw MTc2IHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBNYXIgMTggMDA6MDA6MDAg MTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDE4NiB8ICA2IHwgMDAxODYgfCBTYXQgTWFy IDI4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2 ICAgICAgICAgIHwgZm9vIHwgMTg2IHwgIDYgfCAwMDE4NiB8IFNhdCBNYXIgMjggMDA6MDA6MDAg MTk3MCBQU1QgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBm b28KKyAxOTYgfCAgNiB8IDAwMTk2IHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1 ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDE5NiB8ICA2 IHwgMDAxOTYgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFwciAwNyAwMDow MDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMjA2IHwgIDYgfCAwMDIwNiB8IFdl ZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgfCA2 ICB8IDYgICAgICAgICAgfCBmb28gfCAyMDYgfCAgNiB8IDAwMjA2IHwgV2VkIEphbiAwNyAwMDow MDowMCAxOTcwIFBTVCB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAg ICB8IGZvbworIDIxNiB8ICA2IHwgMDAyMTYgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgUFNU IHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMjE2 IHwgIDYgfCAwMDIxNiB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgSmFuIDE3 IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAyMjYgfCAgNiB8IDAwMjI2 IHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3 MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDIyNiB8ICA2IHwgMDAyMjYgfCBUdWUgSmFuIDI3 IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAg ICAgICAgIHwgZm9vCisgMjM2IHwgIDYgfCAwMDIzNiB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3 MCBQU1QgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28g fCAyMzYgfCAgNiB8IDAwMjM2IHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIFBTVCB8IEZyaSBG ZWIgMDYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDI0NiB8ICA2IHwg MDAyNDYgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgUFNUIHwgTW9uIEZlYiAxNiAwMDowMDow MCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMjQ2IHwgIDYgfCAwMDI0NiB8IE1vbiBG ZWIgMTYgMDA6MDA6MDAgMTk3MCBQU1QgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgfCA2ICB8 IDYgICAgICAgICAgfCBmb28KKyAyNTYgfCAgNiB8IDAwMjU2IHwgVGh1IEZlYiAyNiAwMDowMDow MCAxOTcwIFBTVCB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8 IGZvbyB8IDI1NiB8ICA2IHwgMDAyNTYgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgUFNUIHwg VGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMjY2IHwg IDYgfCAwMDI2NiB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCBQU1QgfCBTdW4gTWFyIDA4IDAw OjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAyNjYgfCAgNiB8IDAwMjY2IHwg U3VuIE1hciAwOCAwMDowMDowMCAxOTcwIFBTVCB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCB8 IDYgIHwgNiAgICAgICAgICB8IGZvbworIDI3NiB8ICA2IHwgMDAyNzYgfCBXZWQgTWFyIDE4IDAw OjAwOjAwIDE5NzAgUFNUIHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAg ICAgIHwgZm9vIHwgMjc2IHwgIDYgfCAwMDI3NiB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCBQ U1QgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAy ODYgfCAgNiB8IDAwMjg2IHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBNYXIg MjggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDI4NiB8ICA2IHwgMDAy ODYgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IE1hciAyOCAwMDowMDowMCAx OTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMjk2IHwgIDYgfCAwMDI5NiB8IFR1ZSBBcHIg MDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYg ICAgICAgICAgfCBmb28gfCAyOTYgfCAgNiB8IDAwMjk2IHwgVHVlIEFwciAwNyAwMDowMDowMCAx OTcwIFBTVCB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZv bworIDMwNiB8ICA2IHwgMDAzMDYgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2Vk IEphbiAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMzA2IHwgIDYg fCAwMDMwNiB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgSmFuIDA3IDAwOjAw OjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAzMTYgfCAgNiB8IDAwMzE2IHwgU2F0 IEphbiAxNyAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCB8IDYg IHwgNiAgICAgICAgICB8IGZvbyB8IDMxNiB8ICA2IHwgMDAzMTYgfCBTYXQgSmFuIDE3IDAwOjAw OjAwIDE5NzAgUFNUIHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAg IHwgZm9vCisgMzI2IHwgIDYgfCAwMDMyNiB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCBQU1Qg fCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAzMjYg fCAgNiB8IDAwMzI2IHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBKYW4gMjcg MDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDMzNiB8ICA2IHwgMDAzMzYg fCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgUFNUIHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcw IHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMzM2IHwgIDYgfCAwMDMzNiB8IEZyaSBGZWIgMDYg MDA6MDA6MDAgMTk3MCBQU1QgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAg ICAgICAgfCBmb28KKyAzNDYgfCAgNiB8IDAwMzQ2IHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcw IFBTVCB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8 IDM0NiB8ICA2IHwgMDAzNDYgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgUFNUIHwgTW9uIEZl YiAxNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMzU2IHwgIDYgfCAw MDM1NiB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgRmViIDI2IDAwOjAwOjAw IDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAzNTYgfCAgNiB8IDAwMzU2IHwgVGh1IEZl YiAyNiAwMDowMDowMCAxOTcwIFBTVCB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCB8IDYgIHwg NiAgICAgICAgICB8IGZvbworIDM2NiB8ICA2IHwgMDAzNjYgfCBTdW4gTWFyIDA4IDAwOjAwOjAw IDE5NzAgUFNUIHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwg Zm9vIHwgMzY2IHwgIDYgfCAwMDM2NiB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCBQU1QgfCBT dW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAzNzYgfCAg NiB8IDAwMzc2IHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBNYXIgMTggMDA6 MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDM3NiB8ICA2IHwgMDAzNzYgfCBX ZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIHwg NiAgfCA2ICAgICAgICAgIHwgZm9vCisgMzg2IHwgIDYgfCAwMDM4NiB8IFNhdCBNYXIgMjggMDA6 MDA6MDAgMTk3MCBQU1QgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAg ICAgfCBmb28gfCAzODYgfCAgNiB8IDAwMzg2IHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIFBT VCB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDM5 NiB8ICA2IHwgMDAzOTYgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFwciAw NyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMzk2IHwgIDYgfCAwMDM5 NiB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5 NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA0MDYgfCAgNiB8IDAwNDA2IHwgV2VkIEphbiAw NyAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAg ICAgICAgICB8IGZvbyB8IDQwNiB8ICA2IHwgMDA0MDYgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5 NzAgUFNUIHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9v CisgNDE2IHwgIDYgfCAwMDQxNiB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQg SmFuIDE3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA0MTYgfCAgNiB8 IDAwNDE2IHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBKYW4gMTcgMDA6MDA6 MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDQyNiB8ICA2IHwgMDA0MjYgfCBUdWUg SmFuIDI3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIHwgNiAg fCA2ICAgICAgICAgIHwgZm9vIHwgNDI2IHwgIDYgfCAwMDQyNiB8IFR1ZSBKYW4gMjcgMDA6MDA6 MDAgMTk3MCBQU1QgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAg fCBmb28KKyA0MzYgfCAgNiB8IDAwNDM2IHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIFBTVCB8 IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDQzNiB8 ICA2IHwgMDA0MzYgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgUFNUIHwgRnJpIEZlYiAwNiAw MDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNDQ2IHwgIDYgfCAwMDQ0NiB8 IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCBQU1QgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAg fCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA0NDYgfCAgNiB8IDAwNDQ2IHwgTW9uIEZlYiAxNiAw MDowMDowMCAxOTcwIFBTVCB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAg ICAgICB8IGZvbworIDQ1NiB8ICA2IHwgMDA0NTYgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAg UFNUIHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwg NDU2IHwgIDYgfCAwMDQ1NiB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgRmVi IDI2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA0NjYgfCAgNiB8IDAw NDY2IHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIFBTVCB8IFN1biBNYXIgMDggMDA6MDA6MDAg MTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDQ2NiB8ICA2IHwgMDA0NjYgfCBTdW4gTWFy IDA4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2 ICAgICAgICAgIHwgZm9vCisgNDc2IHwgIDYgfCAwMDQ3NiB8IFdlZCBNYXIgMTggMDA6MDA6MDAg MTk3MCBQU1QgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBm b28gfCA0NzYgfCAgNiB8IDAwNDc2IHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIFBTVCB8IFdl ZCBNYXIgMTggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDQ4NiB8ICA2 IHwgMDA0ODYgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IE1hciAyOCAwMDow MDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNDg2IHwgIDYgfCAwMDQ4NiB8IFNh dCBNYXIgMjggMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgfCA2 ICB8IDYgICAgICAgICAgfCBmb28KKyA0OTYgfCAgNiB8IDAwNDk2IHwgVHVlIEFwciAwNyAwMDow MDowMCAxOTcwIFBTVCB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAg ICB8IGZvbyB8IDQ5NiB8ICA2IHwgMDA0OTYgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgUFNU IHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNTA2 IHwgIDYgfCAwMDUwNiB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgSmFuIDA3 IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA1MDYgfCAgNiB8IDAwNTA2 IHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3 MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDUxNiB8ICA2IHwgMDA1MTYgfCBTYXQgSmFuIDE3 IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAg ICAgICAgIHwgZm9vIHwgNTE2IHwgIDYgfCAwMDUxNiB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3 MCBQU1QgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28K KyA1MjYgfCAgNiB8IDAwNTI2IHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBK YW4gMjcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDUyNiB8ICA2IHwg MDA1MjYgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEphbiAyNyAwMDowMDow MCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNTM2IHwgIDYgfCAwMDUzNiB8IEZyaSBG ZWIgMDYgMDA6MDA6MDAgMTk3MCBQU1QgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgfCA2ICB8 IDYgICAgICAgICAgfCBmb28gfCA1MzYgfCAgNiB8IDAwNTM2IHwgRnJpIEZlYiAwNiAwMDowMDow MCAxOTcwIFBTVCB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8 IGZvbworIDU0NiB8ICA2IHwgMDA1NDYgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgUFNUIHwg TW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNTQ2IHwg IDYgfCAwMDU0NiB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCBQU1QgfCBNb24gRmViIDE2IDAw OjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA1NTYgfCAgNiB8IDAwNTU2IHwg VGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIFBTVCB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCB8 IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDU1NiB8ICA2IHwgMDA1NTYgfCBUaHUgRmViIDI2IDAw OjAwOjAwIDE5NzAgUFNUIHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAg ICAgIHwgZm9vCisgNTY2IHwgIDYgfCAwMDU2NiB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCBQ U1QgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA1 NjYgfCAgNiB8IDAwNTY2IHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIFBTVCB8IFN1biBNYXIg MDggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDU3NiB8ICA2IHwgMDA1 NzYgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIE1hciAxOCAwMDowMDowMCAx OTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNTc2IHwgIDYgfCAwMDU3NiB8IFdlZCBNYXIg MTggMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYg ICAgICAgICAgfCBmb28KKyA1ODYgfCAgNiB8IDAwNTg2IHwgU2F0IE1hciAyOCAwMDowMDowMCAx OTcwIFBTVCB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZv byB8IDU4NiB8ICA2IHwgMDA1ODYgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0 IE1hciAyOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNTk2IHwgIDYg fCAwMDU5NiB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgQXByIDA3IDAwOjAw OjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA1OTYgfCAgNiB8IDAwNTk2IHwgVHVl IEFwciAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCB8IDYg IHwgNiAgICAgICAgICB8IGZvbworIDYwNiB8ICA2IHwgMDA2MDYgfCBXZWQgSmFuIDA3IDAwOjAw OjAwIDE5NzAgUFNUIHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAg IHwgZm9vIHwgNjA2IHwgIDYgfCAwMDYwNiB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCBQU1Qg fCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA2MTYg fCAgNiB8IDAwNjE2IHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBKYW4gMTcg MDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDYxNiB8ICA2IHwgMDA2MTYg fCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcw IHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNjI2IHwgIDYgfCAwMDYyNiB8IFR1ZSBKYW4gMjcg MDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAg ICAgICAgfCBmb28gfCA2MjYgfCAgNiB8IDAwNjI2IHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcw IFBTVCB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbwor IDYzNiB8ICA2IHwgMDA2MzYgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgUFNUIHwgRnJpIEZl YiAwNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNjM2IHwgIDYgfCAw MDYzNiB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCBQU1QgfCBGcmkgRmViIDA2IDAwOjAwOjAw IDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA2NDYgfCAgNiB8IDAwNjQ2IHwgTW9uIEZl YiAxNiAwMDowMDowMCAxOTcwIFBTVCB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCB8IDYgIHwg NiAgICAgICAgICB8IGZvbyB8IDY0NiB8ICA2IHwgMDA2NDYgfCBNb24gRmViIDE2IDAwOjAwOjAw IDE5NzAgUFNUIHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwg Zm9vCisgNjU2IHwgIDYgfCAwMDY1NiB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCBQU1QgfCBU aHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA2NTYgfCAg NiB8IDAwNjU2IHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIFBTVCB8IFRodSBGZWIgMjYgMDA6 MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDY2NiB8ICA2IHwgMDA2NjYgfCBT dW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIHwg NiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNjY2IHwgIDYgfCAwMDY2NiB8IFN1biBNYXIgMDggMDA6 MDA6MDAgMTk3MCBQU1QgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAg ICAgfCBmb28KKyA2NzYgfCAgNiB8IDAwNjc2IHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIFBT VCB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDY3 NiB8ICA2IHwgMDA2NzYgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIE1hciAx OCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNjg2IHwgIDYgfCAwMDY4 NiB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5 NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA2ODYgfCAgNiB8IDAwNjg2IHwgU2F0IE1hciAy OCAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAg ICAgICAgICB8IGZvbworIDY5NiB8ICA2IHwgMDA2OTYgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5 NzAgUFNUIHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9v IHwgNjk2IHwgIDYgfCAwMDY5NiB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUg QXByIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA3MDYgfCAgNiB8 IDAwNzA2IHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBKYW4gMDcgMDA6MDA6 MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDcwNiB8ICA2IHwgMDA3MDYgfCBXZWQg SmFuIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIHwgNiAg fCA2ICAgICAgICAgIHwgZm9vCisgNzE2IHwgIDYgfCAwMDcxNiB8IFNhdCBKYW4gMTcgMDA6MDA6 MDAgMTk3MCBQU1QgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAg fCBmb28gfCA3MTYgfCAgNiB8IDAwNzE2IHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIFBTVCB8 IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDcyNiB8 ICA2IHwgMDA3MjYgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEphbiAyNyAw MDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNzI2IHwgIDYgfCAwMDcyNiB8 IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAg fCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA3MzYgfCAgNiB8IDAwNzM2IHwgRnJpIEZlYiAwNiAw MDowMDowMCAxOTcwIFBTVCB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAg ICAgICB8IGZvbyB8IDczNiB8ICA2IHwgMDA3MzYgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAg UFNUIHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisg NzQ2IHwgIDYgfCAwMDc0NiB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCBQU1QgfCBNb24gRmVi IDE2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA3NDYgfCAgNiB8IDAw NzQ2IHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIFBTVCB8IE1vbiBGZWIgMTYgMDA6MDA6MDAg MTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDc1NiB8ICA2IHwgMDA3NTYgfCBUaHUgRmVi IDI2IDAwOjAwOjAwIDE5NzAgUFNUIHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2 ICAgICAgICAgIHwgZm9vIHwgNzU2IHwgIDYgfCAwMDc1NiB8IFRodSBGZWIgMjYgMDA6MDA6MDAg MTk3MCBQU1QgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBm b28KKyA3NjYgfCAgNiB8IDAwNzY2IHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIFBTVCB8IFN1 biBNYXIgMDggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDc2NiB8ICA2 IHwgMDA3NjYgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU3VuIE1hciAwOCAwMDow MDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNzc2IHwgIDYgfCAwMDc3NiB8IFdl ZCBNYXIgMTggMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgfCA2 ICB8IDYgICAgICAgICAgfCBmb28gfCA3NzYgfCAgNiB8IDAwNzc2IHwgV2VkIE1hciAxOCAwMDow MDowMCAxOTcwIFBTVCB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAg ICB8IGZvbworIDc4NiB8ICA2IHwgMDA3ODYgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgUFNU IHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNzg2 IHwgIDYgfCAwMDc4NiB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgTWFyIDI4 IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA3OTYgfCAgNiB8IDAwNzk2 IHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3 MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDc5NiB8ICA2IHwgMDA3OTYgfCBUdWUgQXByIDA3 IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAg ICAgICAgIHwgZm9vCisgODA2IHwgIDYgfCAwMDgwNiB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3 MCBQU1QgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28g fCA4MDYgfCAgNiB8IDAwODA2IHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBK YW4gMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDgxNiB8ICA2IHwg MDA4MTYgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IEphbiAxNyAwMDowMDow MCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgODE2IHwgIDYgfCAwMDgxNiB8IFNhdCBK YW4gMTcgMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgfCA2ICB8 IDYgICAgICAgICAgfCBmb28KKyA4MjYgfCAgNiB8IDAwODI2IHwgVHVlIEphbiAyNyAwMDowMDow MCAxOTcwIFBTVCB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8 IGZvbyB8IDgyNiB8ICA2IHwgMDA4MjYgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgUFNUIHwg VHVlIEphbiAyNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgODM2IHwg IDYgfCAwMDgzNiB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCBQU1QgfCBGcmkgRmViIDA2IDAw OjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA4MzYgfCAgNiB8IDAwODM2IHwg RnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIFBTVCB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCB8 IDYgIHwgNiAgICAgICAgICB8IGZvbworIDg0NiB8ICA2IHwgMDA4NDYgfCBNb24gRmViIDE2IDAw OjAwOjAwIDE5NzAgUFNUIHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAg ICAgIHwgZm9vIHwgODQ2IHwgIDYgfCAwMDg0NiB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCBQ U1QgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA4 NTYgfCAgNiB8IDAwODU2IHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIFBTVCB8IFRodSBGZWIg MjYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDg1NiB8ICA2IHwgMDA4 NTYgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgUFNUIHwgVGh1IEZlYiAyNiAwMDowMDowMCAx OTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgODY2IHwgIDYgfCAwMDg2NiB8IFN1biBNYXIg MDggMDA6MDA6MDAgMTk3MCBQU1QgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYg ICAgICAgICAgfCBmb28gfCA4NjYgfCAgNiB8IDAwODY2IHwgU3VuIE1hciAwOCAwMDowMDowMCAx OTcwIFBTVCB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZv bworIDg3NiB8ICA2IHwgMDA4NzYgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2Vk IE1hciAxOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgODc2IHwgIDYg fCAwMDg3NiB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgTWFyIDE4IDAwOjAw OjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA4ODYgfCAgNiB8IDAwODg2IHwgU2F0 IE1hciAyOCAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCB8IDYg IHwgNiAgICAgICAgICB8IGZvbyB8IDg4NiB8ICA2IHwgMDA4ODYgfCBTYXQgTWFyIDI4IDAwOjAw OjAwIDE5NzAgUFNUIHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAg IHwgZm9vCisgODk2IHwgIDYgfCAwMDg5NiB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCBQU1Qg fCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA4OTYg fCAgNiB8IDAwODk2IHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBBcHIgMDcg MDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDkwNiB8ICA2IHwgMDA5MDYg fCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcw IHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgOTA2IHwgIDYgfCAwMDkwNiB8IFdlZCBKYW4gMDcg MDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAg ICAgICAgfCBmb28KKyA5MTYgfCAgNiB8IDAwOTE2IHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcw IFBTVCB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8 IDkxNiB8ICA2IHwgMDA5MTYgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IEph biAxNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgOTI2IHwgIDYgfCAw MDkyNiB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgSmFuIDI3IDAwOjAwOjAw IDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA5MjYgfCAgNiB8IDAwOTI2IHwgVHVlIEph biAyNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCB8IDYgIHwg NiAgICAgICAgICB8IGZvbworIDkzNiB8ICA2IHwgMDA5MzYgfCBGcmkgRmViIDA2IDAwOjAwOjAw IDE5NzAgUFNUIHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwg Zm9vIHwgOTM2IHwgIDYgfCAwMDkzNiB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCBQU1QgfCBG cmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA5NDYgfCAg NiB8IDAwOTQ2IHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIFBTVCB8IE1vbiBGZWIgMTYgMDA6 MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDk0NiB8ICA2IHwgMDA5NDYgfCBN b24gRmViIDE2IDAwOjAwOjAwIDE5NzAgUFNUIHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIHwg NiAgfCA2ICAgICAgICAgIHwgZm9vCisgOTU2IHwgIDYgfCAwMDk1NiB8IFRodSBGZWIgMjYgMDA6 MDA6MDAgMTk3MCBQU1QgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAg ICAgfCBmb28gfCA5NTYgfCAgNiB8IDAwOTU2IHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIFBT VCB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDk2 NiB8ICA2IHwgMDA5NjYgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU3VuIE1hciAw OCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgOTY2IHwgIDYgfCAwMDk2 NiB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCBQU1QgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5 NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA5NzYgfCAgNiB8IDAwOTc2IHwgV2VkIE1hciAx OCAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAg ICAgICAgICB8IGZvbyB8IDk3NiB8ICA2IHwgMDA5NzYgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5 NzAgUFNUIHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9v CisgOTg2IHwgIDYgfCAwMDk4NiB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQg TWFyIDI4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA5ODYgfCAgNiB8 IDAwOTg2IHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBNYXIgMjggMDA6MDA6 MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDk5NiB8ICA2IHwgMDA5OTYgfCBUdWUg QXByIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIHwgNiAg fCA2ICAgICAgICAgIHwgZm9vIHwgOTk2IHwgIDYgfCAwMDk5NiB8IFR1ZSBBcHIgMDcgMDA6MDA6 MDAgMTk3MCBQU1QgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAg fCBmb28KKygxMDAgcm93cykKKworLS0gVGVzdCBpbiBzdHJlYW1pbmdfZmV0Y2ggbW9kZSBmb3Ig cmVzY2FuIHBhdGgKK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQyIE9QVElPTlMgKFNFVCBzdHJlYW1p bmdfZmV0Y2ggJ3RydWUnKTsKK1NFTEVDVCAqIEZST00gZnQyIGEsIGZ0MiBiCitXSEVSRSBhLmMy ID0gNiBBTkQgYi5jMSA9IGEuYzEgQU5EIGEuYzggPSAnZm9vJyBBTkQgYi5jNyA9IHVwcGVyKGEu YzcpOworIGMxICB8IGMyIHwgIGMzICAgfCAgICAgICAgICAgICAgYzQgICAgICAgICAgICAgIHwg ICAgICAgICAgICBjNSAgICAgICAgICAgIHwgYzYgfCAgICAgYzcgICAgIHwgYzggIHwgYzEgIHwg YzIgfCAgYzMgICB8ICAgICAgICAgICAgICBjNCAgICAgICAgICAgICAgfCAgICAgICAgICAgIGM1 ICAgICAgICAgICAgfCBjNiB8ICAgICBjNyAgICAgfCBjOCAgCistLS0tLSstLS0tKy0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tKy0tLS0tKy0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0KKyAgIDYgfCAgNiB8IDAwMDA2IHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcw IFBTVCB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8 ICAgNiB8ICA2IHwgMDAwMDYgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIEph biAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgIDE2IHwgIDYgfCAw MDAxNiB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgSmFuIDE3IDAwOjAwOjAw IDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAgMTYgfCAgNiB8IDAwMDE2IHwgU2F0IEph biAxNyAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCB8IDYgIHwg NiAgICAgICAgICB8IGZvbworICAyNiB8ICA2IHwgMDAwMjYgfCBUdWUgSmFuIDI3IDAwOjAwOjAw IDE5NzAgUFNUIHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwg Zm9vIHwgIDI2IHwgIDYgfCAwMDAyNiB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCBQU1QgfCBU dWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAgMzYgfCAg NiB8IDAwMDM2IHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIFBTVCB8IEZyaSBGZWIgMDYgMDA6 MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8ICAzNiB8ICA2IHwgMDAwMzYgfCBG cmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgUFNUIHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIHwg NiAgfCA2ICAgICAgICAgIHwgZm9vCisgIDQ2IHwgIDYgfCAwMDA0NiB8IE1vbiBGZWIgMTYgMDA6 MDA6MDAgMTk3MCBQU1QgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAg ICAgfCBmb28gfCAgNDYgfCAgNiB8IDAwMDQ2IHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIFBT VCB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworICA1 NiB8ICA2IHwgMDAwNTYgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgUFNUIHwgVGh1IEZlYiAy NiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgIDU2IHwgIDYgfCAwMDA1 NiB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5 NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAgNjYgfCAgNiB8IDAwMDY2IHwgU3VuIE1hciAw OCAwMDowMDowMCAxOTcwIFBTVCB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAg ICAgICAgICB8IGZvbyB8ICA2NiB8ICA2IHwgMDAwNjYgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5 NzAgUFNUIHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9v CisgIDc2IHwgIDYgfCAwMDA3NiB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQg TWFyIDE4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAgNzYgfCAgNiB8 IDAwMDc2IHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBNYXIgMTggMDA6MDA6 MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworICA4NiB8ICA2IHwgMDAwODYgfCBTYXQg TWFyIDI4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIHwgNiAg fCA2ICAgICAgICAgIHwgZm9vIHwgIDg2IHwgIDYgfCAwMDA4NiB8IFNhdCBNYXIgMjggMDA6MDA6 MDAgMTk3MCBQU1QgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAg fCBmb28KKyAgOTYgfCAgNiB8IDAwMDk2IHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIFBTVCB8 IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8ICA5NiB8 ICA2IHwgMDAwOTYgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFwciAwNyAw MDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMTA2IHwgIDYgfCAwMDEwNiB8 IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAg fCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAxMDYgfCAgNiB8IDAwMTA2IHwgV2VkIEphbiAwNyAw MDowMDowMCAxOTcwIFBTVCB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAg ICAgICB8IGZvbworIDExNiB8ICA2IHwgMDAxMTYgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAg UFNUIHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwg MTE2IHwgIDYgfCAwMDExNiB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgSmFu IDE3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAxMjYgfCAgNiB8IDAw MTI2IHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAg MTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDEyNiB8ICA2IHwgMDAxMjYgfCBUdWUgSmFu IDI3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2 ICAgICAgICAgIHwgZm9vCisgMTM2IHwgIDYgfCAwMDEzNiB8IEZyaSBGZWIgMDYgMDA6MDA6MDAg MTk3MCBQU1QgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBm b28gfCAxMzYgfCAgNiB8IDAwMTM2IHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIFBTVCB8IEZy aSBGZWIgMDYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDE0NiB8ICA2 IHwgMDAxNDYgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgUFNUIHwgTW9uIEZlYiAxNiAwMDow MDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMTQ2IHwgIDYgfCAwMDE0NiB8IE1v biBGZWIgMTYgMDA6MDA6MDAgMTk3MCBQU1QgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgfCA2 ICB8IDYgICAgICAgICAgfCBmb28KKyAxNTYgfCAgNiB8IDAwMTU2IHwgVGh1IEZlYiAyNiAwMDow MDowMCAxOTcwIFBTVCB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAg ICB8IGZvbyB8IDE1NiB8ICA2IHwgMDAxNTYgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgUFNU IHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMTY2 IHwgIDYgfCAwMDE2NiB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCBQU1QgfCBTdW4gTWFyIDA4 IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAxNjYgfCAgNiB8IDAwMTY2 IHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIFBTVCB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3 MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDE3NiB8ICA2IHwgMDAxNzYgfCBXZWQgTWFyIDE4 IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAg ICAgICAgIHwgZm9vIHwgMTc2IHwgIDYgfCAwMDE3NiB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3 MCBQU1QgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28K KyAxODYgfCAgNiB8IDAwMTg2IHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBN YXIgMjggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDE4NiB8ICA2IHwg MDAxODYgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IE1hciAyOCAwMDowMDow MCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMTk2IHwgIDYgfCAwMDE5NiB8IFR1ZSBB cHIgMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8 IDYgICAgICAgICAgfCBmb28gfCAxOTYgfCAgNiB8IDAwMTk2IHwgVHVlIEFwciAwNyAwMDowMDow MCAxOTcwIFBTVCB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8 IGZvbworIDIwNiB8ICA2IHwgMDAyMDYgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwg V2VkIEphbiAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMjA2IHwg IDYgfCAwMDIwNiB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgSmFuIDA3IDAw OjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAyMTYgfCAgNiB8IDAwMjE2IHwg U2F0IEphbiAxNyAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCB8 IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDIxNiB8ICA2IHwgMDAyMTYgfCBTYXQgSmFuIDE3IDAw OjAwOjAwIDE5NzAgUFNUIHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAg ICAgIHwgZm9vCisgMjI2IHwgIDYgfCAwMDIyNiB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCBQ U1QgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAy MjYgfCAgNiB8IDAwMjI2IHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBKYW4g MjcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDIzNiB8ICA2IHwgMDAy MzYgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgUFNUIHwgRnJpIEZlYiAwNiAwMDowMDowMCAx OTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMjM2IHwgIDYgfCAwMDIzNiB8IEZyaSBGZWIg MDYgMDA6MDA6MDAgMTk3MCBQU1QgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYg ICAgICAgICAgfCBmb28KKyAyNDYgfCAgNiB8IDAwMjQ2IHwgTW9uIEZlYiAxNiAwMDowMDowMCAx OTcwIFBTVCB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZv byB8IDI0NiB8ICA2IHwgMDAyNDYgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgUFNUIHwgTW9u IEZlYiAxNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMjU2IHwgIDYg fCAwMDI1NiB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgRmViIDI2IDAwOjAw OjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAyNTYgfCAgNiB8IDAwMjU2IHwgVGh1 IEZlYiAyNiAwMDowMDowMCAxOTcwIFBTVCB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCB8IDYg IHwgNiAgICAgICAgICB8IGZvbworIDI2NiB8ICA2IHwgMDAyNjYgfCBTdW4gTWFyIDA4IDAwOjAw OjAwIDE5NzAgUFNUIHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAg IHwgZm9vIHwgMjY2IHwgIDYgfCAwMDI2NiB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCBQU1Qg fCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAyNzYg fCAgNiB8IDAwMjc2IHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBNYXIgMTgg MDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDI3NiB8ICA2IHwgMDAyNzYg fCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcw IHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMjg2IHwgIDYgfCAwMDI4NiB8IFNhdCBNYXIgMjgg MDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAg ICAgICAgfCBmb28gfCAyODYgfCAgNiB8IDAwMjg2IHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcw IFBTVCB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbwor IDI5NiB8ICA2IHwgMDAyOTYgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFw ciAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMjk2IHwgIDYgfCAw MDI5NiB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgQXByIDA3IDAwOjAwOjAw IDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAzMDYgfCAgNiB8IDAwMzA2IHwgV2VkIEph biAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwg NiAgICAgICAgICB8IGZvbyB8IDMwNiB8ICA2IHwgMDAzMDYgfCBXZWQgSmFuIDA3IDAwOjAwOjAw IDE5NzAgUFNUIHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwg Zm9vCisgMzE2IHwgIDYgfCAwMDMxNiB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCBQU1QgfCBT YXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAzMTYgfCAg NiB8IDAwMzE2IHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBKYW4gMTcgMDA6 MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDMyNiB8ICA2IHwgMDAzMjYgfCBU dWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIHwg NiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMzI2IHwgIDYgfCAwMDMyNiB8IFR1ZSBKYW4gMjcgMDA6 MDA6MDAgMTk3MCBQU1QgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAg ICAgfCBmb28KKyAzMzYgfCAgNiB8IDAwMzM2IHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIFBT VCB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDMz NiB8ICA2IHwgMDAzMzYgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgUFNUIHwgRnJpIEZlYiAw NiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgMzQ2IHwgIDYgfCAwMDM0 NiB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCBQU1QgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5 NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCAzNDYgfCAgNiB8IDAwMzQ2IHwgTW9uIEZlYiAx NiAwMDowMDowMCAxOTcwIFBTVCB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAg ICAgICAgICB8IGZvbworIDM1NiB8ICA2IHwgMDAzNTYgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5 NzAgUFNUIHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9v IHwgMzU2IHwgIDYgfCAwMDM1NiB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUg RmViIDI2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAzNjYgfCAgNiB8 IDAwMzY2IHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIFBTVCB8IFN1biBNYXIgMDggMDA6MDA6 MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDM2NiB8ICA2IHwgMDAzNjYgfCBTdW4g TWFyIDA4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIHwgNiAg fCA2ICAgICAgICAgIHwgZm9vCisgMzc2IHwgIDYgfCAwMDM3NiB8IFdlZCBNYXIgMTggMDA6MDA6 MDAgMTk3MCBQU1QgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAg fCBmb28gfCAzNzYgfCAgNiB8IDAwMzc2IHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIFBTVCB8 IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDM4NiB8 ICA2IHwgMDAzODYgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IE1hciAyOCAw MDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgMzg2IHwgIDYgfCAwMDM4NiB8 IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAg fCA2ICB8IDYgICAgICAgICAgfCBmb28KKyAzOTYgfCAgNiB8IDAwMzk2IHwgVHVlIEFwciAwNyAw MDowMDowMCAxOTcwIFBTVCB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAg ICAgICB8IGZvbyB8IDM5NiB8ICA2IHwgMDAzOTYgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAg UFNUIHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisg NDA2IHwgIDYgfCAwMDQwNiB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgSmFu IDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA0MDYgfCAgNiB8IDAw NDA2IHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBKYW4gMDcgMDA6MDA6MDAg MTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDQxNiB8ICA2IHwgMDA0MTYgfCBTYXQgSmFu IDE3IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2 ICAgICAgICAgIHwgZm9vIHwgNDE2IHwgIDYgfCAwMDQxNiB8IFNhdCBKYW4gMTcgMDA6MDA6MDAg MTk3MCBQU1QgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBm b28KKyA0MjYgfCAgNiB8IDAwNDI2IHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1 ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDQyNiB8ICA2 IHwgMDA0MjYgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEphbiAyNyAwMDow MDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNDM2IHwgIDYgfCAwMDQzNiB8IEZy aSBGZWIgMDYgMDA6MDA6MDAgMTk3MCBQU1QgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgfCA2 ICB8IDYgICAgICAgICAgfCBmb28gfCA0MzYgfCAgNiB8IDAwNDM2IHwgRnJpIEZlYiAwNiAwMDow MDowMCAxOTcwIFBTVCB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAg ICB8IGZvbworIDQ0NiB8ICA2IHwgMDA0NDYgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgUFNU IHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNDQ2 IHwgIDYgfCAwMDQ0NiB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCBQU1QgfCBNb24gRmViIDE2 IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA0NTYgfCAgNiB8IDAwNDU2 IHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIFBTVCB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3 MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDQ1NiB8ICA2IHwgMDA0NTYgfCBUaHUgRmViIDI2 IDAwOjAwOjAwIDE5NzAgUFNUIHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAg ICAgICAgIHwgZm9vCisgNDY2IHwgIDYgfCAwMDQ2NiB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3 MCBQU1QgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28g fCA0NjYgfCAgNiB8IDAwNDY2IHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIFBTVCB8IFN1biBN YXIgMDggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDQ3NiB8ICA2IHwg MDA0NzYgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIE1hciAxOCAwMDowMDow MCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNDc2IHwgIDYgfCAwMDQ3NiB8IFdlZCBN YXIgMTggMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgfCA2ICB8 IDYgICAgICAgICAgfCBmb28KKyA0ODYgfCAgNiB8IDAwNDg2IHwgU2F0IE1hciAyOCAwMDowMDow MCAxOTcwIFBTVCB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8 IGZvbyB8IDQ4NiB8ICA2IHwgMDA0ODYgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgUFNUIHwg U2F0IE1hciAyOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNDk2IHwg IDYgfCAwMDQ5NiB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgQXByIDA3IDAw OjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA0OTYgfCAgNiB8IDAwNDk2IHwg VHVlIEFwciAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCB8 IDYgIHwgNiAgICAgICAgICB8IGZvbworIDUwNiB8ICA2IHwgMDA1MDYgfCBXZWQgSmFuIDA3IDAw OjAwOjAwIDE5NzAgUFNUIHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAg ICAgIHwgZm9vIHwgNTA2IHwgIDYgfCAwMDUwNiB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCBQ U1QgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA1 MTYgfCAgNiB8IDAwNTE2IHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBKYW4g MTcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDUxNiB8ICA2IHwgMDA1 MTYgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IEphbiAxNyAwMDowMDowMCAx OTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNTI2IHwgIDYgfCAwMDUyNiB8IFR1ZSBKYW4g MjcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYg ICAgICAgICAgfCBmb28gfCA1MjYgfCAgNiB8IDAwNTI2IHwgVHVlIEphbiAyNyAwMDowMDowMCAx OTcwIFBTVCB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZv bworIDUzNiB8ICA2IHwgMDA1MzYgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgUFNUIHwgRnJp IEZlYiAwNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNTM2IHwgIDYg fCAwMDUzNiB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCBQU1QgfCBGcmkgRmViIDA2IDAwOjAw OjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA1NDYgfCAgNiB8IDAwNTQ2IHwgTW9u IEZlYiAxNiAwMDowMDowMCAxOTcwIFBTVCB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCB8IDYg IHwgNiAgICAgICAgICB8IGZvbyB8IDU0NiB8ICA2IHwgMDA1NDYgfCBNb24gRmViIDE2IDAwOjAw OjAwIDE5NzAgUFNUIHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAg IHwgZm9vCisgNTU2IHwgIDYgfCAwMDU1NiB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCBQU1Qg fCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA1NTYg fCAgNiB8IDAwNTU2IHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIFBTVCB8IFRodSBGZWIgMjYg MDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDU2NiB8ICA2IHwgMDA1NjYg fCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcw IHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNTY2IHwgIDYgfCAwMDU2NiB8IFN1biBNYXIgMDgg MDA6MDA6MDAgMTk3MCBQU1QgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAg ICAgICAgfCBmb28KKyA1NzYgfCAgNiB8IDAwNTc2IHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcw IFBTVCB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8 IDU3NiB8ICA2IHwgMDA1NzYgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIE1h ciAxOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNTg2IHwgIDYgfCAw MDU4NiB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgTWFyIDI4IDAwOjAwOjAw IDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA1ODYgfCAgNiB8IDAwNTg2IHwgU2F0IE1h ciAyOCAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCB8IDYgIHwg NiAgICAgICAgICB8IGZvbworIDU5NiB8ICA2IHwgMDA1OTYgfCBUdWUgQXByIDA3IDAwOjAwOjAw IDE5NzAgUFNUIHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwg Zm9vIHwgNTk2IHwgIDYgfCAwMDU5NiB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBU dWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA2MDYgfCAg NiB8IDAwNjA2IHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBKYW4gMDcgMDA6 MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDYwNiB8ICA2IHwgMDA2MDYgfCBX ZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIHwg NiAgfCA2ICAgICAgICAgIHwgZm9vCisgNjE2IHwgIDYgfCAwMDYxNiB8IFNhdCBKYW4gMTcgMDA6 MDA6MDAgMTk3MCBQU1QgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAg ICAgfCBmb28gfCA2MTYgfCAgNiB8IDAwNjE2IHwgU2F0IEphbiAxNyAwMDowMDowMCAxOTcwIFBT VCB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDYy NiB8ICA2IHwgMDA2MjYgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEphbiAy NyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNjI2IHwgIDYgfCAwMDYy NiB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5 NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA2MzYgfCAgNiB8IDAwNjM2IHwgRnJpIEZlYiAw NiAwMDowMDowMCAxOTcwIFBTVCB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAg ICAgICAgICB8IGZvbyB8IDYzNiB8ICA2IHwgMDA2MzYgfCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5 NzAgUFNUIHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9v CisgNjQ2IHwgIDYgfCAwMDY0NiB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCBQU1QgfCBNb24g RmViIDE2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA2NDYgfCAgNiB8 IDAwNjQ2IHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIFBTVCB8IE1vbiBGZWIgMTYgMDA6MDA6 MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDY1NiB8ICA2IHwgMDA2NTYgfCBUaHUg RmViIDI2IDAwOjAwOjAwIDE5NzAgUFNUIHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIHwgNiAg fCA2ICAgICAgICAgIHwgZm9vIHwgNjU2IHwgIDYgfCAwMDY1NiB8IFRodSBGZWIgMjYgMDA6MDA6 MDAgMTk3MCBQU1QgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAg fCBmb28KKyA2NjYgfCAgNiB8IDAwNjY2IHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIFBTVCB8 IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDY2NiB8 ICA2IHwgMDA2NjYgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU3VuIE1hciAwOCAw MDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNjc2IHwgIDYgfCAwMDY3NiB8 IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAg fCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA2NzYgfCAgNiB8IDAwNjc2IHwgV2VkIE1hciAxOCAw MDowMDowMCAxOTcwIFBTVCB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAg ICAgICB8IGZvbworIDY4NiB8ICA2IHwgMDA2ODYgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAg UFNUIHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwg Njg2IHwgIDYgfCAwMDY4NiB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgTWFy IDI4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA2OTYgfCAgNiB8IDAw Njk2IHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAg MTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDY5NiB8ICA2IHwgMDA2OTYgfCBUdWUgQXBy IDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2 ICAgICAgICAgIHwgZm9vCisgNzA2IHwgIDYgfCAwMDcwNiB8IFdlZCBKYW4gMDcgMDA6MDA6MDAg MTk3MCBQU1QgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBm b28gfCA3MDYgfCAgNiB8IDAwNzA2IHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFdl ZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDcxNiB8ICA2 IHwgMDA3MTYgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IEphbiAxNyAwMDow MDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNzE2IHwgIDYgfCAwMDcxNiB8IFNh dCBKYW4gMTcgMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgfCA2 ICB8IDYgICAgICAgICAgfCBmb28KKyA3MjYgfCAgNiB8IDAwNzI2IHwgVHVlIEphbiAyNyAwMDow MDowMCAxOTcwIFBTVCB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAg ICB8IGZvbyB8IDcyNiB8ICA2IHwgMDA3MjYgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5NzAgUFNU IHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNzM2 IHwgIDYgfCAwMDczNiB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCBQU1QgfCBGcmkgRmViIDA2 IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA3MzYgfCAgNiB8IDAwNzM2 IHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIFBTVCB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3 MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDc0NiB8ICA2IHwgMDA3NDYgfCBNb24gRmViIDE2 IDAwOjAwOjAwIDE5NzAgUFNUIHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAg ICAgICAgIHwgZm9vIHwgNzQ2IHwgIDYgfCAwMDc0NiB8IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3 MCBQU1QgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28K KyA3NTYgfCAgNiB8IDAwNzU2IHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcwIFBTVCB8IFRodSBG ZWIgMjYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDc1NiB8ICA2IHwg MDA3NTYgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgUFNUIHwgVGh1IEZlYiAyNiAwMDowMDow MCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgNzY2IHwgIDYgfCAwMDc2NiB8IFN1biBN YXIgMDggMDA6MDA6MDAgMTk3MCBQU1QgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgfCA2ICB8 IDYgICAgICAgICAgfCBmb28gfCA3NjYgfCAgNiB8IDAwNzY2IHwgU3VuIE1hciAwOCAwMDowMDow MCAxOTcwIFBTVCB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8 IGZvbworIDc3NiB8ICA2IHwgMDA3NzYgfCBXZWQgTWFyIDE4IDAwOjAwOjAwIDE5NzAgUFNUIHwg V2VkIE1hciAxOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgNzc2IHwg IDYgfCAwMDc3NiB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgTWFyIDE4IDAw OjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA3ODYgfCAgNiB8IDAwNzg2IHwg U2F0IE1hciAyOCAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCB8 IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDc4NiB8ICA2IHwgMDA3ODYgfCBTYXQgTWFyIDI4IDAw OjAwOjAwIDE5NzAgUFNUIHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAg ICAgIHwgZm9vCisgNzk2IHwgIDYgfCAwMDc5NiB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCBQ U1QgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA3 OTYgfCAgNiB8IDAwNzk2IHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBBcHIg MDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDgwNiB8ICA2IHwgMDA4 MDYgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIEphbiAwNyAwMDowMDowMCAx OTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgODA2IHwgIDYgfCAwMDgwNiB8IFdlZCBKYW4g MDcgMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYg ICAgICAgICAgfCBmb28KKyA4MTYgfCAgNiB8IDAwODE2IHwgU2F0IEphbiAxNyAwMDowMDowMCAx OTcwIFBTVCB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZv byB8IDgxNiB8ICA2IHwgMDA4MTYgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0 IEphbiAxNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgODI2IHwgIDYg fCAwMDgyNiB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUgSmFuIDI3IDAwOjAw OjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA4MjYgfCAgNiB8IDAwODI2IHwgVHVl IEphbiAyNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCB8IDYg IHwgNiAgICAgICAgICB8IGZvbworIDgzNiB8ICA2IHwgMDA4MzYgfCBGcmkgRmViIDA2IDAwOjAw OjAwIDE5NzAgUFNUIHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAg IHwgZm9vIHwgODM2IHwgIDYgfCAwMDgzNiB8IEZyaSBGZWIgMDYgMDA6MDA6MDAgMTk3MCBQU1Qg fCBGcmkgRmViIDA2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA4NDYg fCAgNiB8IDAwODQ2IHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIFBTVCB8IE1vbiBGZWIgMTYg MDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDg0NiB8ICA2IHwgMDA4NDYg fCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgUFNUIHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcw IHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgODU2IHwgIDYgfCAwMDg1NiB8IFRodSBGZWIgMjYg MDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAg ICAgICAgfCBmb28gfCA4NTYgfCAgNiB8IDAwODU2IHwgVGh1IEZlYiAyNiAwMDowMDowMCAxOTcw IFBTVCB8IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbwor IDg2NiB8ICA2IHwgMDA4NjYgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU3VuIE1h ciAwOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgODY2IHwgIDYgfCAw MDg2NiB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCBQU1QgfCBTdW4gTWFyIDA4IDAwOjAwOjAw IDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA4NzYgfCAgNiB8IDAwODc2IHwgV2VkIE1h ciAxOCAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCB8IDYgIHwg NiAgICAgICAgICB8IGZvbyB8IDg3NiB8ICA2IHwgMDA4NzYgfCBXZWQgTWFyIDE4IDAwOjAwOjAw IDE5NzAgUFNUIHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwg Zm9vCisgODg2IHwgIDYgfCAwMDg4NiB8IFNhdCBNYXIgMjggMDA6MDA6MDAgMTk3MCBQU1QgfCBT YXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA4ODYgfCAg NiB8IDAwODg2IHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBNYXIgMjggMDA6 MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDg5NiB8ICA2IHwgMDA4OTYgfCBU dWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIHwg NiAgfCA2ICAgICAgICAgIHwgZm9vIHwgODk2IHwgIDYgfCAwMDg5NiB8IFR1ZSBBcHIgMDcgMDA6 MDA6MDAgMTk3MCBQU1QgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAg ICAgfCBmb28KKyA5MDYgfCAgNiB8IDAwOTA2IHwgV2VkIEphbiAwNyAwMDowMDowMCAxOTcwIFBT VCB8IFdlZCBKYW4gMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDkw NiB8ICA2IHwgMDA5MDYgfCBXZWQgSmFuIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgV2VkIEphbiAw NyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisgOTE2IHwgIDYgfCAwMDkx NiB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCBQU1QgfCBTYXQgSmFuIDE3IDAwOjAwOjAwIDE5 NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA5MTYgfCAgNiB8IDAwOTE2IHwgU2F0IEphbiAx NyAwMDowMDowMCAxOTcwIFBTVCB8IFNhdCBKYW4gMTcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAg ICAgICAgICB8IGZvbworIDkyNiB8ICA2IHwgMDA5MjYgfCBUdWUgSmFuIDI3IDAwOjAwOjAwIDE5 NzAgUFNUIHwgVHVlIEphbiAyNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9v IHwgOTI2IHwgIDYgfCAwMDkyNiB8IFR1ZSBKYW4gMjcgMDA6MDA6MDAgMTk3MCBQU1QgfCBUdWUg SmFuIDI3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA5MzYgfCAgNiB8 IDAwOTM2IHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIFBTVCB8IEZyaSBGZWIgMDYgMDA6MDA6 MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDkzNiB8ICA2IHwgMDA5MzYgfCBGcmkg RmViIDA2IDAwOjAwOjAwIDE5NzAgUFNUIHwgRnJpIEZlYiAwNiAwMDowMDowMCAxOTcwIHwgNiAg fCA2ICAgICAgICAgIHwgZm9vCisgOTQ2IHwgIDYgfCAwMDk0NiB8IE1vbiBGZWIgMTYgMDA6MDA6 MDAgMTk3MCBQU1QgfCBNb24gRmViIDE2IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAg fCBmb28gfCA5NDYgfCAgNiB8IDAwOTQ2IHwgTW9uIEZlYiAxNiAwMDowMDowMCAxOTcwIFBTVCB8 IE1vbiBGZWIgMTYgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDk1NiB8 ICA2IHwgMDA5NTYgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAgUFNUIHwgVGh1IEZlYiAyNiAw MDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vIHwgOTU2IHwgIDYgfCAwMDk1NiB8 IFRodSBGZWIgMjYgMDA6MDA6MDAgMTk3MCBQU1QgfCBUaHUgRmViIDI2IDAwOjAwOjAwIDE5NzAg fCA2ICB8IDYgICAgICAgICAgfCBmb28KKyA5NjYgfCAgNiB8IDAwOTY2IHwgU3VuIE1hciAwOCAw MDowMDowMCAxOTcwIFBTVCB8IFN1biBNYXIgMDggMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAg ICAgICB8IGZvbyB8IDk2NiB8ICA2IHwgMDA5NjYgfCBTdW4gTWFyIDA4IDAwOjAwOjAwIDE5NzAg UFNUIHwgU3VuIE1hciAwOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisg OTc2IHwgIDYgfCAwMDk3NiB8IFdlZCBNYXIgMTggMDA6MDA6MDAgMTk3MCBQU1QgfCBXZWQgTWFy IDE4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28gfCA5NzYgfCAgNiB8IDAw OTc2IHwgV2VkIE1hciAxOCAwMDowMDowMCAxOTcwIFBTVCB8IFdlZCBNYXIgMTggMDA6MDA6MDAg MTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbworIDk4NiB8ICA2IHwgMDA5ODYgfCBTYXQgTWFy IDI4IDAwOjAwOjAwIDE5NzAgUFNUIHwgU2F0IE1hciAyOCAwMDowMDowMCAxOTcwIHwgNiAgfCA2 ICAgICAgICAgIHwgZm9vIHwgOTg2IHwgIDYgfCAwMDk4NiB8IFNhdCBNYXIgMjggMDA6MDA6MDAg MTk3MCBQU1QgfCBTYXQgTWFyIDI4IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBm b28KKyA5OTYgfCAgNiB8IDAwOTk2IHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIFBTVCB8IFR1 ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCB8IDYgIHwgNiAgICAgICAgICB8IGZvbyB8IDk5NiB8ICA2 IHwgMDA5OTYgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFwciAwNyAwMDow MDowMCAxOTcwIHwgNiAgfCA2ICAgICAgICAgIHwgZm9vCisoMTAwIHJvd3MpCisKKy0tIFRlc3Qg Zm9yIHN0cmVhbWluZ19mZXRjaCBjb3ZlcmluZyByZXNjYW5zIGFuZCB0aHJlZSBhY3RpdmUgY3Vy c29ycworU0VMRUNUIGNvdW50KCopIEZST00gZnQyIGEsIGZ0MiBiLCBmdDIgYworV0hFUkUgYS5j MiA9IDYgQU5EIGIuYzEgPSBhLmMxIEFORCBjLmMxID0gYi5jMSBBTkQgYS5jOCA9ICdmb28nCitB TkQgYi5jNyA9IHVwcGVyKGEuYzcpOworIGNvdW50IAorLS0tLS0tLQorICAgMTAwCiAoMSByb3cp CiAKLS0tIGNoZWNrIGJvdGggc2FmZSBhbmQgdW5zYWZlIGpvaW4gY29uZGl0aW9ucworQUxURVIg Rk9SRUlHTiBUQUJMRSBmdDIgT1BUSU9OUyAoU0VUIHN0cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsK Ky0tIFRlc3QgaW4gc3RyZWFtaW5nX2ZldGNoIG1vZGUgZm9yIGludGVybGVhdmVkIHNjYW5zLgor LS0gVGhlIG5vbi1zaGlwcGFibGUgY29uZGl0aW9uIGEuYzggPSAnZm9vJyAodXNlcl9lbnVtIGlz IG5vdCBhIGJ1aWx0LWluIHR5cGUpCistLSBwcmV2ZW50cyBmdWxsIGpvaW4gcHVzaGRvd24sIHNv IHRoZSBwbGFubmVyIGlzc3VlcyB0d28gc2VwYXJhdGUgRkRXIHNjYW5zCistLSB0aGF0IHNoYXJl IHRoZSBzYW1lIGxvb3BiYWNrIGNvbm5lY3Rpb24uICBXaGVuIHRoZSBpbm5lciBzY2FuJ3MgaW5p dF9zY2FuCistLSBmaXJlcyBpdCBjYWxscyBzYXZlX3RvX3R1cGxlc3RvcmUgdG8gZHJhaW4gdGhl IG91dGVyIHNjYW4ncyB1bnJlYWQgcm93cy4KKyBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MiBPUFRJ T05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CistLSBTaG93IHRoZSBwbGFuOiBmdDIg bXVzdCBhcHBlYXIgYXMgdHdvIGluZGVwZW5kZW50IEZvcmVpZ25TY2FuIG5vZGVzLCBub3QKKy0t IGEgc2luZ2xlIHB1c2hlZC1kb3duIHJlbW90ZSBqb2luLgogRVhQTEFJTiAoVkVSQk9TRSwgQ09T VFMgT0ZGKQotICBTRUxFQ1QgKiBGUk9NIGZ0MiBhLCBmdDIgYgotICBXSEVSRSBhLmMyID0gNiBB TkQgYi5jMSA9IGEuYzEgQU5EIGEuYzggPSAnZm9vJyBBTkQgYi5jNyA9IHVwcGVyKGEuYzcpOwor U0VMRUNUICogRlJPTSBmdDIgYSwgZnQyIGIKK1dIRVJFIGEuYzIgPSA2IEFORCBiLmMxID0gYS5j MSBBTkQgYS5jOCA9ICdmb28nIEFORCBiLmM3ID0gdXBwZXIoYS5jNyk7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgTmVzdGVkIExvb3AKQEAgLTgw MiwxMiArMTQ5MSwxNiBAQCBFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCiAgICAgICAgICBP dXRwdXQ6IGEuYzEsIGEuYzIsIGEuYzMsIGEuYzQsIGEuYzUsIGEuYzYsIGEuYzcsIGEuYzgKICAg ICAgICAgIEZpbHRlcjogKGEuYzggPSAnZm9vJzo6dXNlcl9lbnVtKQogICAgICAgICAgUmVtb3Rl IFNRTDogU0VMRUNUICJDIDEiLCBjMiwgYzMsIGM0LCBjNSwgYzYsIGM3LCBjOCBGUk9NICJTIDEi LiJUIDEiIFdIRVJFICgoYzIgPSA2KSkKKyAgICAgICAgIHN0cmVhbWluZ19mZXRjaDogdHJ1ZQog ICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuZnQyIGIKICAgICAgICAgIE91dHB1dDogYi5j MSwgYi5jMiwgYi5jMywgYi5jNCwgYi5jNSwgYi5jNiwgYi5jNywgYi5jOAogICAgICAgICAgRmls dGVyOiAoKGIuYzcpOjp0ZXh0ID0gdXBwZXIoKGEuYzcpOjp0ZXh0KSkKICAgICAgICAgIFJlbW90 ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzIsIGMzLCBjNCwgYzUsIGM2LCBjNywgYzggRlJPTSAiUyAx Ii4iVCAxIiBXSEVSRSAoKCQxOjppbnRlZ2VyID0gIkMgMSIpKQotKDEwIHJvd3MpCisgICAgICAg ICBzdHJlYW1pbmdfZmV0Y2g6IHRydWUKKygxMiByb3dzKQogCistLSBWZXJpZnkgcmVzdWx0cyB3 aXRoIGN1cnNvciBwYXRoLgorQUxURVIgRk9SRUlHTiBUQUJMRSBmdDIgT1BUSU9OUyAoU0VUIHN0 cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsKIFNFTEVDVCAqIEZST00gZnQyIGEsIGZ0MiBiCiBXSEVS RSBhLmMyID0gNiBBTkQgYi5jMSA9IGEuYzEgQU5EIGEuYzggPSAnZm9vJyBBTkQgYi5jNyA9IHVw cGVyKGEuYzcpOwogIGMxICB8IGMyIHwgIGMzICAgfCAgICAgICAgICAgICAgYzQgICAgICAgICAg ICAgIHwgICAgICAgICAgICBjNSAgICAgICAgICAgIHwgYzYgfCAgICAgYzcgICAgIHwgYzggIHwg YzEgIHwgYzIgfCAgYzMgICB8ICAgICAgICAgICAgICBjNCAgICAgICAgICAgICAgfCAgICAgICAg ICAgIGM1ICAgICAgICAgICAgfCBjNiB8ICAgICBjNyAgICAgfCBjOCAgCkBAIC05MTQsNiArMTYw Nyw1NCBAQCBXSEVSRSBhLmMyID0gNiBBTkQgYi5jMSA9IGEuYzEgQU5EIGEuYzggPSAnZm9vJyBB TkQgYi5jNyA9IHVwcGVyKGEuYzcpOwogIDk5NiB8ICA2IHwgMDA5OTYgfCBUdWUgQXByIDA3IDAw OjAwOjAwIDE5NzAgUFNUIHwgVHVlIEFwciAwNyAwMDowMDowMCAxOTcwIHwgNiAgfCA2ICAgICAg ICAgIHwgZm9vIHwgOTk2IHwgIDYgfCAwMDk5NiB8IFR1ZSBBcHIgMDcgMDA6MDA6MDAgMTk3MCBQ U1QgfCBUdWUgQXByIDA3IDAwOjAwOjAwIDE5NzAgfCA2ICB8IDYgICAgICAgICAgfCBmb28KICgx MDAgcm93cykKIAorQUxURVIgRk9SRUlHTiBUQUJMRSBmdDIgT1BUSU9OUyAoU0VUIHN0cmVhbWlu Z19mZXRjaCAndHJ1ZScpOworLS0gVGhyZWUtd2F5IHNlbGYtam9pbiB0byB0ZXN0IHN0cmVhbWlu Z19mZXRjaAorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUIGNvdW50KCopIEZS T00gZnQyIGEsIGZ0MiBiLCBmdDIgYworV0hFUkUgYS5jMiA9IDYgQU5EIGIuYzEgPSBhLmMxIEFO RCBjLmMxID0gYi5jMQorQU5EIGEuYzggPSAnZm9vJyBBTkQgYi5jNyA9IHVwcGVyKGEuYzcpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgT3V0cHV0OiBjb3VudCgq KQorICAgLT4gIE5lc3RlZCBMb29wCisgICAgICAgICAtPiAgTmVzdGVkIExvb3AKKyAgICAgICAg ICAgICAgIE91dHB1dDogYS5jMSwgYi5jMQorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2Nh biBvbiBwdWJsaWMuZnQyIGEKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogYS5jMSwgYS5j NworICAgICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoYS5jOCA9ICdmb28nOjp1c2VyX2VudW0p CisgICAgICAgICAgICAgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgIkMgMSIsIGM3LCBjOCBG Uk9NICJTIDEiLiJUIDEiIFdIRVJFICgoYzIgPSA2KSkKKyAgICAgICAgICAgICAgICAgICAgIHN0 cmVhbWluZ19mZXRjaDogdHJ1ZQorICAgICAgICAgICAgICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBw dWJsaWMuZnQyIGIKKyAgICAgICAgICAgICAgICAgICAgIE91dHB1dDogYi5jMSwgYi5jNworICAg ICAgICAgICAgICAgICAgICAgRmlsdGVyOiAoKGIuYzcpOjp0ZXh0ID0gdXBwZXIoKGEuYzcpOjp0 ZXh0KSkKKyAgICAgICAgICAgICAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCAiQyAxIiwgYzcg RlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAoKCQxOjppbnRlZ2VyID0gIkMgMSIpKQorICAgICAgICAg ICAgICAgICAgICAgc3RyZWFtaW5nX2ZldGNoOiB0cnVlCisgICAgICAgICAtPiAgRm9yZWlnbiBT Y2FuIG9uIHB1YmxpYy5mdDIgYworICAgICAgICAgICAgICAgT3V0cHV0OiBjLmMxCisgICAgICAg ICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgIkMgMSIgRlJPTSAiUyAxIi4iVCAxIiBXSEVSRSAo KCQxOjppbnRlZ2VyID0gIkMgMSIpKQorICAgICAgICAgICAgICAgc3RyZWFtaW5nX2ZldGNoOiB0 cnVlCisoMTkgcm93cykKKworU0VMRUNUIGNvdW50KCopIEZST00gZnQyIGEsIGZ0MiBiLCBmdDIg YworV0hFUkUgYS5jMiA9IDYgQU5EIGIuYzEgPSBhLmMxIEFORCBjLmMxID0gYi5jMQorQU5EIGEu YzggPSAnZm9vJyBBTkQgYi5jNyA9IHVwcGVyKGEuYzcpOworIGNvdW50IAorLS0tLS0tLQorICAg MTAwCisoMSByb3cpCisKKy0tIG91dHB1dCBtYXRjaGVzIGluIGN1cnNvciBtb2RlCitBTFRFUiBG T1JFSUdOIFRBQkxFIGZ0MiBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICdmYWxzZScpOwor U0VMRUNUIGNvdW50KCopIEZST00gZnQyIGEsIGZ0MiBiLCBmdDIgYworV0hFUkUgYS5jMiA9IDYg QU5EIGIuYzEgPSBhLmMxIEFORCBjLmMxID0gYi5jMQorQU5EIGEuYzggPSAnZm9vJyBBTkQgYi5j NyA9IHVwcGVyKGEuYzcpOworIGNvdW50IAorLS0tLS0tLQorICAgMTAwCisoMSByb3cpCisKK0FM VEVSIEZPUkVJR04gVEFCTEUgZnQyIE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ2ZhbHNl Jyk7CiAtLSBidWcgYmVmb3JlIDkuMy41IGR1ZSB0byBzbG9wcHkgaGFuZGxpbmcgb2YgcmVtb3Rl LWVzdGltYXRlIHBhcmFtZXRlcnMKIFNFTEVDVCAqIEZST00gZnQxIFdIRVJFIGMxID0gQU5ZIChB UlJBWShTRUxFQ1QgYzEgRlJPTSBmdDIgV0hFUkUgYzEgPCA1KSk7CiAgYzEgfCBjMiB8ICBjMyAg IHwgICAgICAgICAgICAgIGM0ICAgICAgICAgICAgICB8ICAgICAgICAgICAgYzUgICAgICAgICAg ICB8IGM2IHwgICAgIGM3ICAgICB8IGM4ICAKQEAgLTIxODMsNiArMjkyNCw0MyBAQCBTRUxFQ1Qg dDEuYzEgRlJPTSBmdDEgdDEgV0hFUkUgTk9UIEVYSVNUUyAoU0VMRUNUIDEgRlJPTSBmdDIgdDIg V0hFUkUgdDEuYzEgPSB0MgogIDExOQogKDEwIHJvd3MpCiAKKy0tIFRlc3QgaW4gc3RyZWFtaW5n X2ZldGNoIG1vZGUgdG8gY292ZXIgdGhlIHBhdGNoIGZvciB0d28gc2ltdWx0YW5lb3VzIGFjdGl2 ZSBjdXJzb3JzCistLSB3aXRoIG9ubHkgb25lIHRhYmxlIHVzaW5nIHN0cmVhbWluZ19mZXRjaAor QUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgT1BUSU9OUyAoU0VUIHN0cmVhbWluZ19mZXRjaCAndHJ1 ZScpOworU0VMRUNUIHQxLmMxIEZST00gZnQxIHQxIFdIRVJFIE5PVCBFWElTVFMgKFNFTEVDVCAx IEZST00gZnQyIHQyIFdIRVJFIHQxLmMxID0gdDIuYzIpIE9SREVSIEJZIHQxLmMxIE9GRlNFVCAx MDAgTElNSVQgMTA7CisgYzEgIAorLS0tLS0KKyAxMTAKKyAxMTEKKyAxMTIKKyAxMTMKKyAxMTQK KyAxMTUKKyAxMTYKKyAxMTcKKyAxMTgKKyAxMTkKKygxMCByb3dzKQorCistLSB3aXRoIGJvdGgg dGhlIHRhYmxlcyB1c2luZyBzdHJlYW1pbmdfZmV0Y2gKK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQy IE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsKK1NFTEVDVCB0MS5jMSBGUk9N IGZ0MSB0MSBXSEVSRSBOT1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIGZ0MiB0MiBXSEVSRSB0MS5j MSA9IHQyLmMyKSBPUkRFUiBCWSB0MS5jMSBPRkZTRVQgMTAwIExJTUlUIDEwOworIGMxICAKKy0t LS0tCisgMTEwCisgMTExCisgMTEyCisgMTEzCisgMTE0CisgMTE1CisgMTE2CisgMTE3CisgMTE4 CisgMTE5CisoMTAgcm93cykKKworQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgT1BUSU9OUyAoU0VU IHN0cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsKK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQyIE9QVElP TlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ2ZhbHNlJyk7CiAtLSBDUk9TUyBKT0lOIGNhbiBiZSBw dXNoZWQgZG93bgogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogU0VMRUNUIHQxLmMxLCB0 Mi5jMSBGUk9NIGZ0MSB0MSBDUk9TUyBKT0lOIGZ0MiB0MiBPUkRFUiBCWSB0MS5jMSwgdDIuYzEg T0ZGU0VUIDEwMCBMSU1JVCAxMDsKQEAgLTIyMzQsNiArMzAxMiwxNiBAQCBTRUxFQ1QgdDEuYzEs IHQyLmMxIEZST00gZnQ1IHQxIEpPSU4gZnQ2IHQyIE9OICh0MS5jMSA9IHQyLmMxKSBPUkRFUiBC WSB0MS5jMSwgdAogLS0tLSstLS0tCiAoMCByb3dzKQogCistLSBUZXN0IGluIHN0cmVhbWluZ19m ZXRjaCBtb2RlIHRvIGNvdmVyIHRoZSBjYXNlIHdpdGggbXVsdGlwbGUgY3Vyc29ycyBidXQgb25s eSBvbmUgYWN0aXZlIGN1cnNvciBhdCBhIHRpbWUKK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQ1IE9Q VElPTlMgKHN0cmVhbWluZ19mZXRjaCAndHJ1ZScpOworQUxURVIgRk9SRUlHTiBUQUJMRSBmdDYg T1BUSU9OUyAoc3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CitTRUxFQ1QgdDEuYzEsIHQyLmMxIEZS T00gZnQ1IHQxIEpPSU4gZnQ2IHQyIE9OICh0MS5jMSA9IHQyLmMxKSBPUkRFUiBCWSB0MS5jMSwg dDIuYzEgT0ZGU0VUIDEwMCBMSU1JVCAxMDsKKyBjMSB8IGMxIAorLS0tLSstLS0tCisoMCByb3dz KQorCitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0NSBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNo ICdmYWxzZScpOworQUxURVIgRk9SRUlHTiBUQUJMRSBmdDYgT1BUSU9OUyAoU0VUIHN0cmVhbWlu Z19mZXRjaCAnZmFsc2UnKTsKIC0tIHVuc2FmZSBqb2luIGNvbmRpdGlvbnMgKGM4IGhhcyBhIFVE VCksIG5vdCBwdXNoZWQgZG93bi4gUHJhY3RpY2FsbHkgYSBDUk9TUwogLS0gSk9JTiBzaW5jZSBj OCBpbiBib3RoIHRhYmxlcyBoYXMgc2FtZSB2YWx1ZS4KIEVYUExBSU4gKFZFUkJPU0UsIENPU1RT IE9GRikKQEAgLTI5NzAsNiArMzc1OCw3MiBAQCBzZWxlY3QgY291bnQoYzYpLCBzdW0oYzEpLCBh dmcoYzEpLCBtaW4oYzIpLCBtYXgoYzEpLCBzdGRkZXYoYzIpLCBzdW0oYzEpICogKHJhbgogICAg MTAwIHwgNDk2MDAgfCA0OTYuMDAwMDAwMDAwMDAwMDAwMCB8ICAgMSB8IDk5MSB8ICAgICAgMCB8 IDQ5NjAwCiAoMSByb3cpCiAKKy0tIFRlc3Qgd2l0aCBsaW1pdCBhbmQgc3RyZWFtaW5nX2ZldGNo CitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICd0 cnVlJyk7CitzZWxlY3QgY291bnQoYzYpLCBzdW0oYzEpLCBhdmcoYzEpLCBtaW4oYzIpLCBtYXgo YzEpLCBzdGRkZXYoYzIpLCBzdW0oYzEpICogKHJhbmRvbSgpIDw9IDEpOjppbnQgYXMgc3VtMiBm cm9tIGZ0MSB3aGVyZSBjMiA8IDUgZ3JvdXAgYnkgYzIgb3JkZXIgYnkgMSwgMiBsaW1pdCAxOwor IGNvdW50IHwgIHN1bSAgfCAgICAgICAgIGF2ZyAgICAgICAgICB8IG1pbiB8IG1heCB8IHN0ZGRl diB8IHN1bTIgIAorLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0r LS0tLS0rLS0tLS0tLS0rLS0tLS0tLQorICAgMTAwIHwgNDk2MDAgfCA0OTYuMDAwMDAwMDAwMDAw MDAwMCB8ICAgMSB8IDk5MSB8ICAgICAgMCB8IDQ5NjAwCisoMSByb3cpCisKK0FMVEVSIEZPUkVJ R04gVEFCTEUgZnQxIE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ2ZhbHNlJyk7CistLSBU ZXN0IExJTUlUIHN0b3BwaW5nIGJlZm9yZSBhbGwgdHVwbGVzIGFyZSBjb25zdW1lZC4KKy0tIFRo ZSBXSEVSRSBjbGF1c2UgcmVmZXJlbmNlcyBjOCAoYSB1c2VyLWRlZmluZWQgdHlwZSB0aGF0IGNh bm5vdCBiZQorLS0gcHVzaGVkIHRvIHRoZSByZW1vdGUpLCBwcmV2ZW50aW5nIExJTUlUIHB1c2hk b3duLiAgVGhlIHJlbW90ZQorLS0gdGhlcmVmb3JlIHN0cmVhbXMgYWxsIHJvd3MsIGFuZCBlbmRf c2NhbiBtdXN0IGRpc2NhcmQgdGhlIGluLWZsaWdodAorLS0gZGF0YSB3aGVuIHRoZSBsb2NhbCBl eGVjdXRvciBzdG9wcyBlYXJseS4KK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQxIE9QVElPTlMgKFNF VCBzdHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsKKy0tIExJTUlUIDUgd2l0aCBkZWZhdWx0IGZldGNo X3NpemU9MTAwOiBzdG9wcyB3ZWxsIHdpdGhpbiB0aGUgZmlyc3QKKy0tIGNodW5rOyBlbmRfc2Nh biBkaXNjYXJkcyB+OTk1IHJvd3Mgc3RpbGwgaW4gZmxpZ2h0IG9uIHRoZSBjb25uZWN0aW9uLgor U0VMRUNUIGMxIEZST00gZnQxIFdIRVJFIGM4ID0gJ2ZvbycgT1JERVIgQlkgYzEgTElNSVQgNTsK KyBjMSAKKy0tLS0KKyAgMQorICAyCisgIDMKKyAgNAorICA1CisoNSByb3dzKQorCistLSBWZXJp ZnkgdGhlIGNvbm5lY3Rpb24gaXMgc3RpbGwgdXNhYmxlIGFmdGVyIHRoZSBlYXJseSBzdG9wLgor U0VMRUNUIGNvdW50KCopIEZST00gZnQxOworIGNvdW50IAorLS0tLS0tLQorICAxMDAwCisoMSBy b3cpCisKKy0tIGZldGNoX3NpemU9MTAsIExJTUlUPTE1OiBjb25zdW1lcyBvbmUgZnVsbCBjaHVu ayAocm93cyAxLTEwKSBwbHVzIDUKKy0tIHJvd3MgZnJvbSBhIHNlY29uZCBjaHVuayAocm93cyAx MS0xNSk7IGVuZF9zY2FuIHRoZW4gZGlzY2FyZHMgdGhlCistLSByZW1haW5kZXIgb2YgdGhhdCBj aHVuayBhbmQgYWxsIHN1YnNlcXVlbnQgaW4tZmxpZ2h0IGNodW5rcy4KK0FMVEVSIEZPUkVJR04g VEFCTEUgZnQxIE9QVElPTlMgKGZldGNoX3NpemUgJzEwJyk7CitTRUxFQ1QgYzEgRlJPTSBmdDEg V0hFUkUgYzggPSAnZm9vJyBPUkRFUiBCWSBjMSBMSU1JVCAxNTsKKyBjMSAKKy0tLS0KKyAgMQor ICAyCisgIDMKKyAgNAorICA1CisgIDYKKyAgNworICA4CisgIDkKKyAxMAorIDExCisgMTIKKyAx MworIDE0CisgMTUKKygxNSByb3dzKQorCitTRUxFQ1QgY291bnQoKikgRlJPTSBmdDE7CisgY291 bnQgCistLS0tLS0tCisgIDEwMDAKKygxIHJvdykKKworQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEg T1BUSU9OUyAoRFJPUCBmZXRjaF9zaXplKTsKK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQxIE9QVElP TlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ2ZhbHNlJyk7CiAtLSBBZ2dyZWdhdGUgaXMgbm90IHB1 c2hlZCBkb3duIGFzIGFnZ3JlZ2F0aW9uIGNvbnRhaW5zIHJhbmRvbSgpCiBleHBsYWluICh2ZXJi b3NlLCBjb3N0cyBvZmYpCiBzZWxlY3Qgc3VtKGMxICogKHJhbmRvbSgpIDw9IDEpOjppbnQpIGFz IHN1bSwgYXZnKGMxKSBmcm9tIGZ0MTsKQEAgLTEwODQwLDYgKzExNjk0LDQ4IEBAIFNFTEVDVCAx IEZST00gZnQxIExJTUlUIDE7ICAgIC0tIHNob3VsZCBmYWlsCiBFUlJPUjogIDA4MDA2CiBcc2V0 IFZFUkJPU0lUWSBkZWZhdWx0CiBDT01NSVQ7CistLSA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSBzdHJlYW1pbmdf ZmV0Y2g6IGVycm9yIHJlY292ZXJ5IHdoZW4gdGhlIHJlbW90ZSBiYWNrZW5kIHRlcm1pbmF0ZXMK Ky0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKy0tIEVuYWJsZSBzdHJlYW1pbmdfZmV0Y2ggc28gaW5pdF9zY2FuIGlz IGV4ZXJjaXNlZCBvbiByZWNvbm5lY3QuCitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBPUFRJT05T IChTRVQgc3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CistLSBFc3RhYmxpc2ggYSBmcmVzaCByZW1v dGUgY29ubmVjdGlvbi4KK1NFTEVDVCAxIEZST00gZnQxIExJTUlUIDE7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgICAgICAgIDEKKygxIHJvdykKKworLS0gVGVybWluYXRlIHRoZSByZW1vdGUg YmFja2VuZCBhbmQgd2FpdCBmb3IgdGhlIHRlcm1pbmF0aW9uIHRvIGNvbXBsZXRlLgorRE8gJCQg QkVHSU4KK1BFUkZPUk0gcGdfdGVybWluYXRlX2JhY2tlbmQocGlkLCAxODAwMDApIEZST00gcGdf c3RhdF9hY3Rpdml0eQorCVdIRVJFIGFwcGxpY2F0aW9uX25hbWUgPSAnZmR3X3JldHJ5X2NoZWNr JzsKK0VORCAkJDsKKy0tIEFmdGVyIHRoZSBjb25uZWN0aW9uIGlzIGJyb2tlbiwgYSBzdHJlYW1p bmdfZmV0Y2ggcXVlcnkgc2hvdWxkIGRldGVjdAorLS0gdGhlIGJyb2tlbiBjb25uZWN0aW9uLCBy ZWVzdGFibGlzaCBpdCwgYW5kIHN1Y2NlZWQuCitCRUdJTjsKK1NFTEVDVCBjMSBGUk9NIGZ0MSBP UkRFUiBCWSBjMSBMSU1JVCAzOworIGMxIAorLS0tLQorICAxCisgIDMKKyAgNAorKDMgcm93cykK KworLS0gSW5zaWRlIGEgc3VidHJhbnNhY3Rpb24gdGhlIGJyb2tlbiBjb25uZWN0aW9uIG11c3Qg bm90IGJlIHNpbGVudGx5CistLSByZXRyaWVkOyB0aGUgcXVlcnkgc2hvdWxkIGZhaWwuCitETyAk JCBCRUdJTgorUEVSRk9STSBwZ190ZXJtaW5hdGVfYmFja2VuZChwaWQsIDE4MDAwMCkgRlJPTSBw Z19zdGF0X2FjdGl2aXR5CisJV0hFUkUgYXBwbGljYXRpb25fbmFtZSA9ICdmZHdfcmV0cnlfY2hl Y2snOworRU5EICQkOworU0FWRVBPSU5UIHMyOworLS0gVGhlIHRleHQgb2YgdGhlIGVycm9yIG1p Z2h0IHZhcnkgYWNyb3NzIHBsYXRmb3Jtcywgc28gb25seSBzaG93IFNRTFNUQVRFLgorXHNldCBW RVJCT1NJVFkgc3Fsc3RhdGUKK1NFTEVDVCAxIEZST00gZnQxIExJTUlUIDE7ICAgIC0tIHNob3Vs ZCBmYWlsCitFUlJPUjogIDA4MDA2Citcc2V0IFZFUkJPU0lUWSBkZWZhdWx0CitDT01NSVQ7CitB TFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICdmYWxz ZScpOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIHRlc3QgY29ubmVjdGlvbiBpbnZhbGlk YXRpb24gY2FzZXMgYW5kIHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnMgZnVuY3Rpb24KIC0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CkBAIC0xMjAwMyw2ICsxMjg5OSw4MCBAQCBTRUxFQ1QgKiBG Uk9NIGxvY2FsX3RibCwgYXN5bmNfcHQgV0hFUkUgbG9jYWxfdGJsLmEgPSBhc3luY19wdC5hIEFO RCBsb2NhbF90YmwuYwogCiBBTFRFUiBGT1JFSUdOIFRBQkxFIGFzeW5jX3AxIE9QVElPTlMgKERS T1AgdXNlX3JlbW90ZV9lc3RpbWF0ZSk7CiBBTFRFUiBGT1JFSUdOIFRBQkxFIGFzeW5jX3AyIE9Q VElPTlMgKERST1AgdXNlX3JlbW90ZV9lc3RpbWF0ZSk7CistLSBUZXN0IGFzeW5jX2NhcGFibGUg d2l0aCBzdHJlYW1pbmdfZmV0Y2gKKy0tIE5vIHN0cmVhbWluZ19mZXRjaCBhdCBzZXJ2ZXIsIHRo aXMgc2hvdWxkIGdpdmUgQXN5bmMgRm9yZWlnbiBTY2FuIGZvciBmb3IgYXN5bmNfcDEgYW5kIGFz eW5jX3AyCitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9NIGFzeW5j X3B0OworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIEFwcGVuZAorICAgLT4gIEFzeW5jIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMu YXN5bmNfcDEgYXN5bmNfcHRfMQorICAgICAgICAgT3V0cHV0OiBhc3luY19wdF8xLmEsIGFzeW5j X3B0XzEuYiwgYXN5bmNfcHRfMS5jCisgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwg YyBGUk9NIHB1YmxpYy5iYXNlX3RibDEKKyAgIC0+ICBBc3luYyBGb3JlaWduIFNjYW4gb24gcHVi bGljLmFzeW5jX3AyIGFzeW5jX3B0XzIKKyAgICAgICAgIE91dHB1dDogYXN5bmNfcHRfMi5hLCBh c3luY19wdF8yLmIsIGFzeW5jX3B0XzIuYworICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGEs IGIsIGMgRlJPTSBwdWJsaWMuYmFzZV90YmwyCisgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmFz eW5jX3AzIGFzeW5jX3B0XzMKKyAgICAgICAgIE91dHB1dDogYXN5bmNfcHRfMy5hLCBhc3luY19w dF8zLmIsIGFzeW5jX3B0XzMuYworKDkgcm93cykKKworLS0gc3RyZWFtaW5nX2ZldGNoID0gZmFs c2UgYXQgbG9vcGJhY2sgc2VydmVyLCB0aGlzIHNob3VsZCBzdGlsbCBnaXZlIEFzeW5jIEZvcmVp Z24gU2NhbiBmb3IgYXN5bmNfcDEgYW5kIGFzeW5jX3AyCitBTFRFUiBTRVJWRVIgbG9vcGJhY2sg T1BUSU9OUyAoc3RyZWFtaW5nX2ZldGNoICdmYWxzZScpOworRVhQTEFJTiAoVkVSQk9TRSwgQ09T VFMgT0ZGKQorU0VMRUNUICogRlJPTSBhc3luY19wdDsKKyAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBBcHBlbmQKKyAgIC0+ICBB c3luYyBGb3JlaWduIFNjYW4gb24gcHVibGljLmFzeW5jX3AxIGFzeW5jX3B0XzEKKyAgICAgICAg IE91dHB1dDogYXN5bmNfcHRfMS5hLCBhc3luY19wdF8xLmIsIGFzeW5jX3B0XzEuYworICAgICAg ICAgUmVtb3RlIFNRTDogU0VMRUNUIGEsIGIsIGMgRlJPTSBwdWJsaWMuYmFzZV90YmwxCisgICAt PiAgQXN5bmMgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5hc3luY19wMiBhc3luY19wdF8yCisgICAg ICAgICBPdXRwdXQ6IGFzeW5jX3B0XzIuYSwgYXN5bmNfcHRfMi5iLCBhc3luY19wdF8yLmMKKyAg ICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjIEZST00gcHVibGljLmJhc2VfdGJsMgor ICAgLT4gIFNlcSBTY2FuIG9uIHB1YmxpYy5hc3luY19wMyBhc3luY19wdF8zCisgICAgICAgICBP dXRwdXQ6IGFzeW5jX3B0XzMuYSwgYXN5bmNfcHRfMy5iLCBhc3luY19wdF8zLmMKKyg5IHJvd3Mp CisKKy0tIHN0cmVhbWluZ19mZXRjaCA9IGZhbHNlIGF0IGxvb3BiYWNrIHNlcnZlciBidXQgdHJ1 ZSBmb3IgYXN5bmNfcDEsIHRoaXMgc2hvdWxkIGdpdmUgRm9yZWlnbiBTY2FuIGZvciBhc3luY19w MQorQUxURVIgRk9SRUlHTiBUQUJMRSBhc3luY19wMSBPUFRJT05TIChBREQgc3RyZWFtaW5nX2Zl dGNoICd0cnVlJyk7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9N IGFzeW5jX3B0OworICAgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIEFwcGVuZAorICAgLT4gIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMu YXN5bmNfcDEgYXN5bmNfcHRfMQorICAgICAgICAgT3V0cHV0OiBhc3luY19wdF8xLmEsIGFzeW5j X3B0XzEuYiwgYXN5bmNfcHRfMS5jCisgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwg YyBGUk9NIHB1YmxpYy5iYXNlX3RibDEKKyAgICAgICAgIHN0cmVhbWluZ19mZXRjaDogdHJ1ZQor ICAgLT4gIEFzeW5jIEZvcmVpZ24gU2NhbiBvbiBwdWJsaWMuYXN5bmNfcDIgYXN5bmNfcHRfMgor ICAgICAgICAgT3V0cHV0OiBhc3luY19wdF8yLmEsIGFzeW5jX3B0XzIuYiwgYXN5bmNfcHRfMi5j CisgICAgICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgYSwgYiwgYyBGUk9NIHB1YmxpYy5iYXNlX3Ri bDIKKyAgIC0+ICBTZXEgU2NhbiBvbiBwdWJsaWMuYXN5bmNfcDMgYXN5bmNfcHRfMworICAgICAg ICAgT3V0cHV0OiBhc3luY19wdF8zLmEsIGFzeW5jX3B0XzMuYiwgYXN5bmNfcHRfMy5jCisoMTAg cm93cykKKworLS0gc3RyZWFtaW5nX2ZldGNoID0gdHJ1ZSBhdCBsb29wYmFjazIgc2VydmVyLCB0 aGlzIHNob3VsZCBnaXZlIEZvcmVpZ24gU2NhbiBmb3IgYXN5bmNfcDIgYWxzbworQUxURVIgU0VS VkVSIGxvb3BiYWNrMiBPUFRJT05TIChzdHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsKK0VYUExBSU4g KFZFUkJPU0UsIENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gYXN5bmNfcHQ7CisgICAgICAgICAg ICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQXBw ZW5kCisgICAtPiAgRm9yZWlnbiBTY2FuIG9uIHB1YmxpYy5hc3luY19wMSBhc3luY19wdF8xCisg ICAgICAgICBPdXRwdXQ6IGFzeW5jX3B0XzEuYSwgYXN5bmNfcHRfMS5iLCBhc3luY19wdF8xLmMK KyAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVDVCBhLCBiLCBjIEZST00gcHVibGljLmJhc2VfdGJs MQorICAgICAgICAgc3RyZWFtaW5nX2ZldGNoOiB0cnVlCisgICAtPiAgRm9yZWlnbiBTY2FuIG9u IHB1YmxpYy5hc3luY19wMiBhc3luY19wdF8yCisgICAgICAgICBPdXRwdXQ6IGFzeW5jX3B0XzIu YSwgYXN5bmNfcHRfMi5iLCBhc3luY19wdF8yLmMKKyAgICAgICAgIFJlbW90ZSBTUUw6IFNFTEVD VCBhLCBiLCBjIEZST00gcHVibGljLmJhc2VfdGJsMgorICAgICAgICAgc3RyZWFtaW5nX2ZldGNo OiB0cnVlCisgICAtPiAgU2VxIFNjYW4gb24gcHVibGljLmFzeW5jX3AzIGFzeW5jX3B0XzMKKyAg ICAgICAgIE91dHB1dDogYXN5bmNfcHRfMy5hLCBhc3luY19wdF8zLmIsIGFzeW5jX3B0XzMuYwor KDExIHJvd3MpCisKK0FMVEVSIEZPUkVJR04gVEFCTEUgYXN5bmNfcDEgT1BUSU9OUyAoRFJPUCBz dHJlYW1pbmdfZmV0Y2gpOworQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKERST1Agc3Ry ZWFtaW5nX2ZldGNoKTsKK0FMVEVSIFNFUlZFUiBsb29wYmFjazIgT1BUSU9OUyAoRFJPUCBzdHJl YW1pbmdfZmV0Y2gpOwogRFJPUCBUQUJMRSBsb2NhbF90Ymw7CiBEUk9QIElOREVYIGJhc2VfdGJs MV9pZHg7CiBEUk9QIElOREVYIGJhc2VfdGJsMl9pZHg7CmRpZmYgLS1naXQgYS9jb250cmliL3Bv c3RncmVzX2Zkdy9vcHRpb24uYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L29wdGlvbi5jCmluZGV4 IDM5NDRhZWRiYWNjLi4wMjBjMjc4Y2MzNSAxMDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19m ZHcvb3B0aW9uLmMKKysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvb3B0aW9uLmMKQEAgLTEyMSw2 ICsxMjEsNyBAQCBwb3N0Z3Jlc19mZHdfdmFsaWRhdG9yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQlz dHJjbXAoZGVmLT5kZWZuYW1lLCAicGFyYWxsZWxfY29tbWl0IikgPT0gMCB8fAogCQkJc3RyY21w KGRlZi0+ZGVmbmFtZSwgInBhcmFsbGVsX2Fib3J0IikgPT0gMCB8fAogCQkJc3RyY21wKGRlZi0+ ZGVmbmFtZSwgImtlZXBfY29ubmVjdGlvbnMiKSA9PSAwIHx8CisJCQlzdHJjbXAoZGVmLT5kZWZu YW1lLCAic3RyZWFtaW5nX2ZldGNoIikgPT0gMCB8fAogCQkJc3RyY21wKGRlZi0+ZGVmbmFtZSwg InJlc3RvcmVfc3RhdHMiKSA9PSAwKQogCQl7CiAJCQkvKiB0aGVzZSBhY2NlcHQgb25seSBib29s ZWFuIHZhbHVlcyAqLwpAQCAtMjYxLDYgKzI2Miw5IEBAIEluaXRQZ0Zkd09wdGlvbnModm9pZCkK IAkJLyogZmV0Y2hfc2l6ZSBpcyBhdmFpbGFibGUgb24gYm90aCBzZXJ2ZXIgYW5kIHRhYmxlICov CiAJCXsiZmV0Y2hfc2l6ZSIsIEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkLCBmYWxzZX0sCiAJCXsi ZmV0Y2hfc2l6ZSIsIEZvcmVpZ25UYWJsZVJlbGF0aW9uSWQsIGZhbHNlfSwKKwkJLyogc3RyZWFt aW5nX2ZldGNoIGlzIGF2YWlsYWJsZSBvbiBib3RoIHNlcnZlciBhbmQgdGFibGUgKi8KKwkJeyJz dHJlYW1pbmdfZmV0Y2giLCBGb3JlaWduU2VydmVyUmVsYXRpb25JZCwgZmFsc2V9LAorCQl7InN0 cmVhbWluZ19mZXRjaCIsIEZvcmVpZ25UYWJsZVJlbGF0aW9uSWQsIGZhbHNlfSwKIAkJLyogYmF0 Y2hfc2l6ZSBpcyBhdmFpbGFibGUgb24gYm90aCBzZXJ2ZXIgYW5kIHRhYmxlICovCiAJCXsiYmF0 Y2hfc2l6ZSIsIEZvcmVpZ25TZXJ2ZXJSZWxhdGlvbklkLCBmYWxzZX0sCiAJCXsiYmF0Y2hfc2l6 ZSIsIEZvcmVpZ25UYWJsZVJlbGF0aW9uSWQsIGZhbHNlfSwKZGlmZiAtLWdpdCBhL2NvbnRyaWIv cG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5jIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdy ZXNfZmR3LmMKaW5kZXggMzUwZGMxOWYyOWEuLmMwMWE1NGI5MGZhIDEwMDY0NAotLS0gYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYworKysgYi9jb250cmliL3Bvc3RncmVzX2Zk dy9wb3N0Z3Jlc19mZHcuYwpAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgInV0aWxzL3JlbC5o IgogI2luY2x1ZGUgInV0aWxzL3NhbXBsaW5nLmgiCiAjaW5jbHVkZSAidXRpbHMvc2VsZnVuY3Mu aCIKKyNpbmNsdWRlICJ1dGlscy90dXBsZXN0b3JlLmgiCiAKIFBHX01PRFVMRV9NQUdJQ19FWFQo CiAJCQkJCS5uYW1lID0gInBvc3RncmVzX2ZkdyIsCkBAIC04Miw2ICs4Myw3IEBAIGVudW0gRmR3 U2NhblByaXZhdGVJbmRleAogCUZkd1NjYW5Qcml2YXRlUmV0cmlldmVkQXR0cnMsCiAJLyogSW50 ZWdlciByZXByZXNlbnRpbmcgdGhlIGRlc2lyZWQgZmV0Y2hfc2l6ZSAqLwogCUZkd1NjYW5Qcml2 YXRlRmV0Y2hTaXplLAorCUZkd1NjYW5Qcml2YXRlU3RyZWFtaW5nRmV0Y2gsCiAKIAkvKgogCSAq IFN0cmluZyBkZXNjcmliaW5nIGpvaW4gaS5lLiBuYW1lcyBvZiByZWxhdGlvbnMgYmVpbmcgam9p bmVkIGFuZCB0eXBlcwpAQCAtMTUzLDcgKzE1NSw3IEBAIHR5cGVkZWYgc3RydWN0IFBnRmR3U2Nh blN0YXRlCiAKIAkvKiBmb3IgcmVtb3RlIHF1ZXJ5IGV4ZWN1dGlvbiAqLwogCVBHY29ubgkgICAq Y29ubjsJCQkvKiBjb25uZWN0aW9uIGZvciB0aGUgc2NhbiAqLwotCVBnRmR3Q29ublN0YXRlICpj b25uX3N0YXRlOyAvKiBleHRyYSBwZXItY29ubmVjdGlvbiBzdGF0ZSAqLworCVBnRmR3Q29ublN0 YXRlICpjb25uX3N0YXRlOwogCXVuc2lnbmVkIGludCBjdXJzb3JfbnVtYmVyOyAvKiBxdWFzaS11 bmlxdWUgSUQgZm9yIG15IGN1cnNvciAqLwogCWJvb2wJCXNjYW5faW5fcHJvZ3Jlc3M7CS8qIGlz IHRoZXJlIGEgc2NhbiBpbiBwcm9ncmVzcz8gKi8KIAlpbnQJCQludW1QYXJhbXM7CQkvKiBudW1i ZXIgb2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gcXVlcnkgKi8KQEAgLTE3OCw2ICsxODAsMTIgQEAg dHlwZWRlZiBzdHJ1Y3QgUGdGZHdTY2FuU3RhdGUKIAlNZW1vcnlDb250ZXh0IHRlbXBfY3h0OwkJ LyogY29udGV4dCBmb3IgcGVyLXR1cGxlIHRlbXBvcmFyeSBkYXRhICovCiAKIAlpbnQJCQlmZXRj aF9zaXplOwkJLyogbnVtYmVyIG9mIHR1cGxlcyBwZXIgZmV0Y2ggKi8KKwkvKiBSZXF1aXJlZCBm b3IgdGhlIHN0cmVhbWluZ19mZXRjaCBtb2RlICovCisJYm9vbAkJc3RyZWFtaW5nX2ZldGNoOwkv KiBzZXQgaWYgdGhlIHNjYW4gaXMgdXNpbmcKKwkJCQkJCQkJCSAqIHN0cmVhbWluZ19mZXRjaCBt b2RlICovCisJVHVwbGVzdG9yZXN0YXRlICp0dXBsZXN0b3JlOwkvKiBUdXBsZXN0b3JlIHRvIHNh dmUgdGhlIHR1cGxlcyBvZiB0aGUKKwkJCQkJCQkJCSAqIHF1ZXJ5IGZvciBsYXRlciBmZXRjaC4g Ki8KKwlib29sCQlyZXNjYW47CQkJLyogaWRlbnRpZnkgd2hlbiByZXNjYW4gaXMgcmVxdWlyZWQg Ki8KIH0gUGdGZHdTY2FuU3RhdGU7CiAKIC8qCkBAIC03MzAsNyArNzM4LDggQEAgc3RhdGljIEhl YXBUdXBsZSBtYWtlX3R1cGxlX2Zyb21fcmVzdWx0X3JvdyhQR3Jlc3VsdCAqcmVzLAogCQkJCQkJ CQkJCQlBdHRJbk1ldGFkYXRhICphdHRpbm1ldGEsCiAJCQkJCQkJCQkJCUxpc3QgKnJldHJpZXZl ZF9hdHRycywKIAkJCQkJCQkJCQkJRm9yZWlnblNjYW5TdGF0ZSAqZnNzdGF0ZSwKLQkJCQkJCQkJ CQkJTWVtb3J5Q29udGV4dCB0ZW1wX2NvbnRleHQpOworCQkJCQkJCQkJCQlNZW1vcnlDb250ZXh0 IHRlbXBfY29udGV4dCwKKwkJCQkJCQkJCQkJVHVwbGVEZXNjIGxhc3RfdHVwZGVzYyk7CiBzdGF0 aWMgdm9pZCBjb252ZXJzaW9uX2Vycm9yX2NhbGxiYWNrKHZvaWQgKmFyZyk7CiBzdGF0aWMgYm9v bCBmb3JlaWduX2pvaW5fb2soUGxhbm5lckluZm8gKnJvb3QsIFJlbE9wdEluZm8gKmpvaW5yZWws CiAJCQkJCQkJSm9pblR5cGUgam9pbnR5cGUsIFJlbE9wdEluZm8gKm91dGVycmVsLCBSZWxPcHRJ bmZvICppbm5lcnJlbCwKQEAgLTc2MCw2ICs3NjksMTMgQEAgc3RhdGljIHZvaWQgbWVyZ2VfZmR3 X29wdGlvbnMoUGdGZHdSZWxhdGlvbkluZm8gKmZwaW5mbywKIAkJCQkJCQkgIGNvbnN0IFBnRmR3 UmVsYXRpb25JbmZvICpmcGluZm9faSk7CiBzdGF0aWMgaW50CWdldF9iYXRjaF9zaXplX29wdGlv bihSZWxhdGlvbiByZWwpOwogCisvKiBPbmx5IHJlcXVpcmVkIGZvciBub24tY3Vyc29yIG1vZGUg Ki8KK3N0YXRpYyB2b2lkIHNldF9zdHJlYW1pbmdfZmV0Y2goRGVmRWxlbSAqZGVmLCBQZ0Zkd1Jl bGF0aW9uSW5mbyAqZnBpbmZvKTsKK3N0YXRpYyB2b2lkIGZldGNoX2Zyb21fdHVwbGVzdG9yZShG b3JlaWduU2NhblN0YXRlICpub2RlKTsKK3N0YXRpYyB2b2lkIHNhdmVfdG9fdHVwbGVzdG9yZShG b3JlaWduU2NhblN0YXRlICpub2RlKTsKK3N0YXRpYyB2b2lkIGluaXRfc2NhbihGb3JlaWduU2Nh blN0YXRlICpub2RlKTsKK3N0YXRpYyB2b2lkIGVuZF9zY2FuKFBHY29ubiAqY29ubik7CitzdGF0 aWMgYm9vbCBpc19hY3RpdmVfc2NhbihQZ0Zkd1NjYW5TdGF0ZSAqZnNzdGF0ZSk7CiAKIC8qCiAg KiBGb3JlaWduLWRhdGEgd3JhcHBlciBoYW5kbGVyIGZ1bmN0aW9uOiByZXR1cm4gYSBzdHJ1Y3Qg d2l0aCBwb2ludGVycwpAQCAtODY5LDkgKzg4NSwxMiBAQCBwb3N0Z3Jlc0dldEZvcmVpZ25SZWxT aXplKFBsYW5uZXJJbmZvICpyb290LAogCWZwaW5mby0+c2hpcHBhYmxlX2V4dGVuc2lvbnMgPSBO SUw7CiAJZnBpbmZvLT5mZXRjaF9zaXplID0gMTAwOwogCWZwaW5mby0+YXN5bmNfY2FwYWJsZSA9 IGZhbHNlOworCWZwaW5mby0+c3RyZWFtaW5nX2ZldGNoID0gZmFsc2U7CiAKIAlhcHBseV9zZXJ2 ZXJfb3B0aW9ucyhmcGluZm8pOwogCWFwcGx5X3RhYmxlX29wdGlvbnMoZnBpbmZvKTsKKwlpZiAo ZnBpbmZvLT5zdHJlYW1pbmdfZmV0Y2gpCisJCWZwaW5mby0+YXN5bmNfY2FwYWJsZSA9IGZhbHNl OwogCiAJLyoKIAkgKiBJZiB0aGUgdGFibGUgb3IgdGhlIHNlcnZlciBpcyBjb25maWd1cmVkIHRv IHVzZSByZW1vdGUgZXN0aW1hdGVzLApAQCAtMTYzMSw5ICsxNjUwLDkgQEAgcG9zdGdyZXNHZXRG b3JlaWduUGxhbihQbGFubmVySW5mbyAqcm9vdCwKIAkgKiBCdWlsZCB0aGUgZmR3X3ByaXZhdGUg bGlzdCB0aGF0IHdpbGwgYmUgYXZhaWxhYmxlIHRvIHRoZSBleGVjdXRvci4KIAkgKiBJdGVtcyBp biB0aGUgbGlzdCBtdXN0IG1hdGNoIG9yZGVyIGluIGVudW0gRmR3U2NhblByaXZhdGVJbmRleC4K IAkgKi8KLQlmZHdfcHJpdmF0ZSA9IGxpc3RfbWFrZTMobWFrZVN0cmluZyhzcWwuZGF0YSksCisJ ZmR3X3ByaXZhdGUgPSBsaXN0X21ha2U0KG1ha2VTdHJpbmcoc3FsLmRhdGEpLAogCQkJCQkJCSBy ZXRyaWV2ZWRfYXR0cnMsCi0JCQkJCQkJIG1ha2VJbnRlZ2VyKGZwaW5mby0+ZmV0Y2hfc2l6ZSkp OworCQkJCQkJCSBtYWtlSW50ZWdlcihmcGluZm8tPmZldGNoX3NpemUpLCBtYWtlQm9vbGVhbihm cGluZm8tPnN0cmVhbWluZ19mZXRjaCkpOwogCWlmIChJU19KT0lOX1JFTChmb3JlaWducmVsKSB8 fCBJU19VUFBFUl9SRUwoZm9yZWlnbnJlbCkpCiAJCWZkd19wcml2YXRlID0gbGFwcGVuZChmZHdf cHJpdmF0ZSwKIAkJCQkJCQkgIG1ha2VTdHJpbmcoZnBpbmZvLT5yZWxhdGlvbl9uYW1lKSk7CkBA IC0xNzY3LDYgKzE3ODYsOCBAQCBwb3N0Z3Jlc0JlZ2luRm9yZWlnblNjYW4oRm9yZWlnblNjYW5T dGF0ZSAqbm9kZSwgaW50IGVmbGFncykKIAkJCQkJCQkJCQkJCSBGZHdTY2FuUHJpdmF0ZVJldHJp ZXZlZEF0dHJzKTsKIAlmc3N0YXRlLT5mZXRjaF9zaXplID0gaW50VmFsKGxpc3RfbnRoKGZzcGxh bi0+ZmR3X3ByaXZhdGUsCiAJCQkJCQkJCQkJICBGZHdTY2FuUHJpdmF0ZUZldGNoU2l6ZSkpOwor CWZzc3RhdGUtPnN0cmVhbWluZ19mZXRjaCA9IGJvb2xWYWwobGlzdF9udGgoZnNwbGFuLT5mZHdf cHJpdmF0ZSwKKwkJCQkJCQkJCQkJCUZkd1NjYW5Qcml2YXRlU3RyZWFtaW5nRmV0Y2gpKTsKIAog CS8qIENyZWF0ZSBjb250ZXh0cyBmb3IgYmF0Y2hlcyBvZiB0dXBsZXMgYW5kIHBlci10dXBsZSB0 ZW1wIHdvcmtzcGFjZS4gKi8KIAlmc3N0YXRlLT5iYXRjaF9jeHQgPSBBbGxvY1NldENvbnRleHRD cmVhdGUoZXN0YXRlLT5lc19xdWVyeV9jeHQsCkBAIC0xODA4LDYgKzE4MjksOCBAQCBwb3N0Z3Jl c0JlZ2luRm9yZWlnblNjYW4oRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSwgaW50IGVmbGFncykKIAog CS8qIFNldCB0aGUgYXN5bmMtY2FwYWJsZSBmbGFnICovCiAJZnNzdGF0ZS0+YXN5bmNfY2FwYWJs ZSA9IG5vZGUtPnNzLnBzLmFzeW5jX2NhcGFibGU7CisJZnNzdGF0ZS0+dHVwbGVzdG9yZSA9IE5V TEw7CisJZnNzdGF0ZS0+cmVzY2FuID0gZmFsc2U7CiB9CiAKIC8qCkBAIC0xODI4LDcgKzE4NTEs MTIgQEAgcG9zdGdyZXNJdGVyYXRlRm9yZWlnblNjYW4oRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkK IAkgKiBmaXJzdCBjYWxsIGFmdGVyIEJlZ2luIG9yIFJlU2Nhbi4KIAkgKi8KIAlpZiAoIWZzc3Rh dGUtPnNjYW5faW5fcHJvZ3Jlc3MpCi0JCWNyZWF0ZV9jdXJzb3Iobm9kZSk7CisJeworCQlpZiAo ZnNzdGF0ZS0+c3RyZWFtaW5nX2ZldGNoKQorCQkJaW5pdF9zY2FuKG5vZGUpOworCQllbHNlCisJ CQljcmVhdGVfY3Vyc29yKG5vZGUpOworCX0KIAogCS8qCiAJICogR2V0IHNvbWUgbW9yZSB0dXBs ZXMsIGlmIHdlJ3ZlIHJ1biBvdXQuCkBAIC0xODY1LDcgKzE4OTMsOCBAQCBwb3N0Z3Jlc1JlU2Nh bkZvcmVpZ25TY2FuKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUpCiB7CiAJUGdGZHdTY2FuU3RhdGUg KmZzc3RhdGUgPSAoUGdGZHdTY2FuU3RhdGUgKikgbm9kZS0+ZmR3X3N0YXRlOwogCWNoYXIJCXNx bFs2NF07Ci0JUEdyZXN1bHQgICAqcmVzOworCVBHcmVzdWx0ICAgKnJlcyA9IE5VTEw7CisJYm9v bAkJcmVpbml0aWFsaXplX3NjYW4gPSBmYWxzZTsKIAogCS8qIElmIG5vIHNjYW4gaXMgaW4gcHJv Z3Jlc3MsIG5vdGhpbmcgdG8gZG8uICovCiAJaWYgKCFmc3N0YXRlLT5zY2FuX2luX3Byb2dyZXNz KQpAQCAtMTg5NCwyMCArMTkyMywzMSBAQCBwb3N0Z3Jlc1JlU2NhbkZvcmVpZ25TY2FuKEZvcmVp Z25TY2FuU3RhdGUgKm5vZGUpCiAJICovCiAJaWYgKG5vZGUtPnNzLnBzLmNoZ1BhcmFtICE9IE5V TEwpCiAJewotCQlmc3N0YXRlLT5zY2FuX2luX3Byb2dyZXNzID0gZmFsc2U7Ci0JCXNucHJpbnRm KHNxbCwgc2l6ZW9mKHNxbCksICJDTE9TRSBjJXUiLAotCQkJCSBmc3N0YXRlLT5jdXJzb3JfbnVt YmVyKTsKKwkJcmVpbml0aWFsaXplX3NjYW4gPSB0cnVlOwogCX0KIAllbHNlIGlmIChmc3N0YXRl LT5mZXRjaF9jdF8yID4gMSkKIAl7CiAJCWlmIChQUXNlcnZlclZlcnNpb24oZnNzdGF0ZS0+Y29u bikgPCAxNTAwMDApCisJCXsKIAkJCXNucHJpbnRmKHNxbCwgc2l6ZW9mKHNxbCksICJNT1ZFIEJB Q0tXQVJEIEFMTCBJTiBjJXUiLAogCQkJCQkgZnNzdGF0ZS0+Y3Vyc29yX251bWJlcik7CisJCQly ZXMgPSBwZ2Zkd19leGVjX3F1ZXJ5KGZzc3RhdGUtPmNvbm4sIHNxbCwgZnNzdGF0ZS0+Y29ubl9z dGF0ZSk7CisJCQlpZiAoUFFyZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQor CQkJCXBnZmR3X3JlcG9ydF9lcnJvcihyZXMsIGZzc3RhdGUtPmNvbm4sIHNxbCk7CisKKwkJCVBR Y2xlYXIocmVzKTsKKworCQkJLyogTm93IGZvcmNlIGEgZnJlc2ggRkVUQ0guICovCisJCQlmc3N0 YXRlLT50dXBsZXMgPSBOVUxMOworCQkJZnNzdGF0ZS0+bnVtX3R1cGxlcyA9IDA7CisJCQlmc3N0 YXRlLT5uZXh0X3R1cGxlID0gMDsKKwkJCWZzc3RhdGUtPmZldGNoX2N0XzIgPSAwOworCQkJZnNz dGF0ZS0+ZW9mX3JlYWNoZWQgPSBmYWxzZTsKKwkJCXJldHVybjsKKwkJfQogCQllbHNlCiAJCXsK LQkJCWZzc3RhdGUtPnNjYW5faW5fcHJvZ3Jlc3MgPSBmYWxzZTsKLQkJCXNucHJpbnRmKHNxbCwg c2l6ZW9mKHNxbCksICJDTE9TRSBjJXUiLAotCQkJCQkgZnNzdGF0ZS0+Y3Vyc29yX251bWJlcik7 CisJCQlyZWluaXRpYWxpemVfc2NhbiA9IHRydWU7CiAJCX0KIAl9CiAJZWxzZQpAQCAtMTkxNiwx OCArMTk1NiwzNiBAQCBwb3N0Z3Jlc1JlU2NhbkZvcmVpZ25TY2FuKEZvcmVpZ25TY2FuU3RhdGUg Km5vZGUpCiAJCWZzc3RhdGUtPm5leHRfdHVwbGUgPSAwOwogCQlyZXR1cm47CiAJfQotCi0JcmVz ID0gcGdmZHdfZXhlY19xdWVyeShmc3N0YXRlLT5jb25uLCBzcWwsIGZzc3RhdGUtPmNvbm5fc3Rh dGUpOwotCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX0NPTU1BTkRfT0spCi0JCXBn ZmR3X3JlcG9ydF9lcnJvcihyZXMsIGZzc3RhdGUtPmNvbm4sIHNxbCk7Ci0JUFFjbGVhcihyZXMp OwotCi0JLyogTm93IGZvcmNlIGEgZnJlc2ggRkVUQ0guICovCi0JZnNzdGF0ZS0+dHVwbGVzID0g TlVMTDsKLQlmc3N0YXRlLT5udW1fdHVwbGVzID0gMDsKLQlmc3N0YXRlLT5uZXh0X3R1cGxlID0g MDsKLQlmc3N0YXRlLT5mZXRjaF9jdF8yID0gMDsKLQlmc3N0YXRlLT5lb2ZfcmVhY2hlZCA9IGZh bHNlOworCWlmIChyZWluaXRpYWxpemVfc2NhbikKKwl7CisJCWlmIChmc3N0YXRlLT5zdHJlYW1p bmdfZmV0Y2gpCisJCXsKKwkJCWZzc3RhdGUtPnJlc2NhbiA9IHRydWU7CisJCQlpZiAoaXNfYWN0 aXZlX3NjYW4oZnNzdGF0ZSkpCisJCQkJZW5kX3NjYW4oZnNzdGF0ZS0+Y29ubik7CisJCQlpZiAo ZnNzdGF0ZS0+dHVwbGVzdG9yZSkKKwkJCXsKKwkJCQl0dXBsZXN0b3JlX2VuZChmc3N0YXRlLT50 dXBsZXN0b3JlKTsKKwkJCQlmc3N0YXRlLT50dXBsZXN0b3JlID0gTlVMTDsKKwkJCX0KKwkJfQor CQllbHNlCisJCXsKKwkJCXNucHJpbnRmKHNxbCwgc2l6ZW9mKHNxbCksICJDTE9TRSBjJXUiLAor CQkJCQkgZnNzdGF0ZS0+Y3Vyc29yX251bWJlcik7CisJCQlyZXMgPSBwZ2Zkd19leGVjX3F1ZXJ5 KGZzc3RhdGUtPmNvbm4sIHNxbCwgZnNzdGF0ZS0+Y29ubl9zdGF0ZSk7CisJCQlpZiAoUFFyZXN1 bHRTdGF0dXMocmVzKSAhPSBQR1JFU19DT01NQU5EX09LKQorCQkJCXBnZmR3X3JlcG9ydF9lcnJv cihyZXMsIGZzc3RhdGUtPmNvbm4sIHNxbCk7CisJCQlQUWNsZWFyKHJlcyk7CisJCX0KKwkJLyog Tm93IGZvcmNlIGEgZnJlc2ggRkVUQ0guICovCisJCWZzc3RhdGUtPnR1cGxlcyA9IE5VTEw7CisJ CWZzc3RhdGUtPm51bV90dXBsZXMgPSAwOworCQlmc3N0YXRlLT5uZXh0X3R1cGxlID0gMDsKKwkJ ZnNzdGF0ZS0+ZmV0Y2hfY3RfMiA9IDA7CisJCWZzc3RhdGUtPmVvZl9yZWFjaGVkID0gZmFsc2U7 CisJCWZzc3RhdGUtPnNjYW5faW5fcHJvZ3Jlc3MgPSBmYWxzZTsKKwl9CiB9CiAKIC8qCkBAIC0x OTQ1LDkgKzIwMDMsMjYgQEAgcG9zdGdyZXNFbmRGb3JlaWduU2NhbihGb3JlaWduU2NhblN0YXRl ICpub2RlKQogCiAJLyogQ2xvc2UgdGhlIGN1cnNvciBpZiBvcGVuLCB0byBwcmV2ZW50IGFjY3Vt dWxhdGlvbiBvZiBjdXJzb3JzICovCiAJaWYgKGZzc3RhdGUtPnNjYW5faW5fcHJvZ3Jlc3MpCi0J CWNsb3NlX2N1cnNvcihmc3N0YXRlLT5jb25uLCBmc3N0YXRlLT5jdXJzb3JfbnVtYmVyLAotCQkJ CQkgZnNzdGF0ZS0+Y29ubl9zdGF0ZSk7CisJeworCQlpZiAoZnNzdGF0ZS0+c3RyZWFtaW5nX2Zl dGNoKQorCQl7CisJCQkvKiBSZW1vdmUgdGhlIHBvaW50ZXIgZnJvbSBjb25uX3N0YXRlIHNpbmNl IGVuZGluZyB0aGlzIHNjYW4uICovCisJCQlpZiAoaXNfYWN0aXZlX3NjYW4oZnNzdGF0ZSkpCisJ CQkJZnNzdGF0ZS0+Y29ubl9zdGF0ZS0+YWN0aXZlX3NjYW4gPSBOVUxMOworCQkJaWYgKGZzc3Rh dGUtPnR1cGxlc3RvcmUpCisJCQkJdHVwbGVzdG9yZV9lbmQoZnNzdGF0ZS0+dHVwbGVzdG9yZSk7 CiAKKwkJCS8qCisJCQkgKiB0dXBsZXN0b3JlIHJlc2lkZXMgaW4gYmF0Y2hfY3h0LCBzbyB3ZSBj b3VsZG4ndCByZXNldCBpdAorCQkJICogZWFybGllciBpbiBzdHJlYW1pbmcgZmV0Y2ggbW9kZS4K KwkJCSAqLworCQkJTWVtb3J5Q29udGV4dFJlc2V0KGZzc3RhdGUtPmJhdGNoX2N4dCk7CisJCQll bmRfc2Nhbihmc3N0YXRlLT5jb25uKTsKKwkJfQorCQllbHNlCisJCQljbG9zZV9jdXJzb3IoZnNz dGF0ZS0+Y29ubiwgZnNzdGF0ZS0+Y3Vyc29yX251bWJlciwKKwkJCQkJCSBmc3N0YXRlLT5jb25u X3N0YXRlKTsKKwl9CiAJLyogUmVsZWFzZSByZW1vdGUgY29ubmVjdGlvbiAqLwogCVJlbGVhc2VD b25uZWN0aW9uKGZzc3RhdGUtPmNvbm4pOwogCWZzc3RhdGUtPmNvbm4gPSBOVUxMOwpAQCAtMzEz OCw5ICszMjEzLDEzIEBAIHBvc3RncmVzRXhwbGFpbkZvcmVpZ25TY2FuKEZvcmVpZ25TY2FuU3Rh dGUgKm5vZGUsIEV4cGxhaW5TdGF0ZSAqZXMpCiAJaWYgKGVzLT52ZXJib3NlKQogCXsKIAkJY2hh cgkgICAqc3FsOworCQlib29sCQlzdHJlYW1fZmV0Y2g7CiAKIAkJc3FsID0gc3RyVmFsKGxpc3Rf bnRoKGZkd19wcml2YXRlLCBGZHdTY2FuUHJpdmF0ZVNlbGVjdFNxbCkpOworCQlzdHJlYW1fZmV0 Y2ggPSBib29sVmFsKGxpc3RfbnRoKGZkd19wcml2YXRlLCBGZHdTY2FuUHJpdmF0ZVN0cmVhbWlu Z0ZldGNoKSk7CiAJCUV4cGxhaW5Qcm9wZXJ0eVRleHQoIlJlbW90ZSBTUUwiLCBzcWwsIGVzKTsK KwkJaWYgKHN0cmVhbV9mZXRjaCkKKwkJCUV4cGxhaW5Qcm9wZXJ0eUJvb2woInN0cmVhbWluZ19m ZXRjaCIsIHN0cmVhbV9mZXRjaCwgZXMpOwogCX0KIH0KIApAQCAtMzk1MSw2ICs0MDMwLDE1IEBA IGNyZWF0ZV9jdXJzb3IoRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkKIAlpZiAoZnNzdGF0ZS0+Y29u bl9zdGF0ZS0+cGVuZGluZ0FyZXEpCiAJCXByb2Nlc3NfcGVuZGluZ19yZXF1ZXN0KGZzc3RhdGUt PmNvbm5fc3RhdGUtPnBlbmRpbmdBcmVxKTsKIAorCS8qCisJICogSWYgdGhlIG90aGVyIHNjYW5f aW5fcHJvZ3Jlc3MgaXMgdXNpbmcgc3RyZWFtaW5nX2ZldGNoIG1vZGUsIHRoZW4gc2F2ZQorCSAq IHRoZSB0dXBsZXMgdG8gdHVwbGVzdG9yZSBiZWZvcmUgY3JlYXRpbmcgdGhpcyBjdXJzb3IuCisJ ICovCisJaWYgKGZzc3RhdGUtPmNvbm5fc3RhdGUtPmFjdGl2ZV9zY2FuICYmCisJCWZzc3RhdGUt PmNvbm5fc3RhdGUtPmFjdGl2ZV9zY2FuLT5zdHJlYW1pbmdfZmV0Y2ggJiYKKwkJZnNzdGF0ZSAh PSBmc3N0YXRlLT5jb25uX3N0YXRlLT5hY3RpdmVfc2NhbikKKwkJc2F2ZV90b190dXBsZXN0b3Jl KG5vZGUpOworCiAJLyoKIAkgKiBDb25zdHJ1Y3QgYXJyYXkgb2YgcXVlcnkgcGFyYW1ldGVyIHZh bHVlcyBpbiB0ZXh0IGZvcm1hdC4gIFdlIGRvIHRoZQogCSAqIGNvbnZlcnNpb25zIGluIHRoZSBz aG9ydC1saXZlZCBwZXItdHVwbGUgY29udGV4dCwgc28gYXMgbm90IHRvIGNhdXNlIGEKQEAgLTQw MDYsNiArNDA5NCw3MCBAQCBjcmVhdGVfY3Vyc29yKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUpCiAJ cGZyZWUoYnVmLmRhdGEpOwogfQogCitzdGF0aWMgdm9pZAoraW5pdF9zY2FuKEZvcmVpZ25TY2Fu U3RhdGUgKm5vZGUpCit7CisJUGdGZHdTY2FuU3RhdGUgKmZzc3RhdGUgPSAoUGdGZHdTY2FuU3Rh dGUgKikgbm9kZS0+ZmR3X3N0YXRlOworCUV4cHJDb250ZXh0ICplY29udGV4dCA9IG5vZGUtPnNz LnBzLnBzX0V4cHJDb250ZXh0OworCWludAkJCW51bVBhcmFtcyA9IGZzc3RhdGUtPm51bVBhcmFt czsKKwljb25zdCBjaGFyICoqdmFsdWVzID0gZnNzdGF0ZS0+cGFyYW1fdmFsdWVzOworCVBHY29u bgkgICAqY29ubiA9IGZzc3RhdGUtPmNvbm47CisKKwkvKgorCSAqIENvbnN0cnVjdCBhcnJheSBv ZiBxdWVyeSBwYXJhbWV0ZXIgdmFsdWVzIGluIHRleHQgZm9ybWF0LiAgV2UgZG8gdGhlCisJICog Y29udmVyc2lvbnMgaW4gdGhlIHNob3J0LWxpdmVkIHBlci10dXBsZSBjb250ZXh0LCBzbyBhcyBu b3QgdG8gY2F1c2UgYQorCSAqIG1lbW9yeSBsZWFrIG92ZXIgcmVwZWF0ZWQgc2NhbnMuCisJICov CisJaWYgKG51bVBhcmFtcyA+IDApCisJeworCQlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisK KwkJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlY29udGV4dC0+ZWN4dF9wZXJf dHVwbGVfbWVtb3J5KTsKKworCQlwcm9jZXNzX3F1ZXJ5X3BhcmFtcyhlY29udGV4dCwKKwkJCQkJ CQkgZnNzdGF0ZS0+cGFyYW1fZmxpbmZvLAorCQkJCQkJCSBmc3N0YXRlLT5wYXJhbV9leHBycywK KwkJCQkJCQkgdmFsdWVzKTsKKworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7 CisJfQorCisJLyoKKwkgKiBGaW5pc2ggZmV0Y2hpbmcgdHVwbGVzIG9mIHRoZSBsYXN0IHF1ZXJ5 LiBEbyB0aGlzIG9ubHkgd2hlbiB0aGVyZSBpcyBhCisJICogZGlmZmVyZW50IHF1ZXJ5IHRoYW4g dGhlIGN1cnJlbnQgb25lLiBJbiB0aGUgY2FzZSBvZiByZXNjYW4sCisJICogY3JlYXRlX2N1cnNv ciBpcyBjYWxsZWQgc2ltdWx0YW5lb3VzbHkgZm9yIHRoZSBzYW1lIHF1ZXJ5IHNvIHRvIGF2b2lk CisJICogY2FsbGluZyBzYXZlX3RvX3R1cGxlc3RvcmUgaW4gc3VjaCBjYXNlcywgY2hlY2sgaWYg dGhlIHF1ZXJpZXMgYXJlCisJICogZGlmZmVyZW50IGFuZCB0dXBsZXN0b3JlIGlzIG5vdCBhbHJl YWR5IGZpbGxlZCBmb3IgdGhpcyBxdWVyeS4KKwkgKi8KKwlpZiAoZnNzdGF0ZS0+Y29ubl9zdGF0 ZS0+YWN0aXZlX3NjYW4gJiYKKwkJZnNzdGF0ZSAhPSBmc3N0YXRlLT5jb25uX3N0YXRlLT5hY3Rp dmVfc2NhbikKKwkJc2F2ZV90b190dXBsZXN0b3JlKG5vZGUpOworCisJLyoKKwkgKiBUbyByZW1l bWJlciB0aGUgY3VycmVudCBzY2FuIGFzIHRoZSBsYXN0IG9uZSwgd2hlbiBjb250cm9sIHN3aXRj aGVzIHRvCisJICogYW5vdGhlciBzY2FuCisJICovCisJZnNzdGF0ZS0+Y29ubl9zdGF0ZS0+YWN0 aXZlX3NjYW4gPSBmc3N0YXRlOworCisJaWYgKCFQUXNlbmRRdWVyeVBhcmFtcyhjb25uLCBmc3N0 YXRlLT5xdWVyeSwgbnVtUGFyYW1zLAorCQkJCQkJICAgTlVMTCwgdmFsdWVzLCBOVUxMLCBOVUxM LCAwKSkKKwkJcGdmZHdfcmVwb3J0X2Vycm9yKE5VTEwsIGNvbm4sIGZzc3RhdGUtPnF1ZXJ5KTsK KworCS8qCisJICogQ2FsbCBmb3IgQ2h1bmtlZCByb3dzIG1vZGUgd2l0aCBzYW1lIHNpemUgb2Yg Y2h1bmsgYXMgdGhlIGZldGNoIHNpemUKKwkgKi8KKwlpZiAoIVBRc2V0Q2h1bmtlZFJvd3NNb2Rl KGNvbm4sIGZzc3RhdGUtPmZldGNoX3NpemUpKQorCQlwZ2Zkd19yZXBvcnRfZXJyb3IoTlVMTCwg Y29ubiwgZnNzdGF0ZS0+cXVlcnkpOworCisJZnNzdGF0ZS0+dHVwbGVzID0gTlVMTDsKKwlmc3N0 YXRlLT5udW1fdHVwbGVzID0gMDsKKwlmc3N0YXRlLT5uZXh0X3R1cGxlID0gMDsKKwlmc3N0YXRl LT5mZXRjaF9jdF8yID0gMDsKKwlmc3N0YXRlLT5lb2ZfcmVhY2hlZCA9IGZhbHNlOworCWZzc3Rh dGUtPnNjYW5faW5fcHJvZ3Jlc3MgPSB0cnVlOworCWZzc3RhdGUtPnJlc2NhbiA9IGZhbHNlOwor fQorCiAvKgogICogRmV0Y2ggc29tZSBtb3JlIHJvd3MgZnJvbSB0aGUgbm9kZSdzIGN1cnNvci4K ICAqLwpAQCAtNDAxNSwxNiArNDE2NywxOCBAQCBmZXRjaF9tb3JlX2RhdGEoRm9yZWlnblNjYW5T dGF0ZSAqbm9kZSkKIAlQZ0Zkd1NjYW5TdGF0ZSAqZnNzdGF0ZSA9IChQZ0Zkd1NjYW5TdGF0ZSAq KSBub2RlLT5mZHdfc3RhdGU7CiAJUEdjb25uCSAgICpjb25uID0gZnNzdGF0ZS0+Y29ubjsKIAlQ R3Jlc3VsdCAgICpyZXM7Ci0JaW50CQkJbnVtcm93czsKLQlpbnQJCQlpOworCWludAkJCW51bXJv d3MgPSAwLAorCQkJCWkgPSAwOwogCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKIAogCS8qCiAJ ICogV2UnbGwgc3RvcmUgdGhlIHR1cGxlcyBpbiB0aGUgYmF0Y2hfY3h0LiAgRmlyc3QsIGZsdXNo IHRoZSBwcmV2aW91cwotCSAqIGJhdGNoLgorCSAqIGJhdGNoLiBXaGVuIGN1cnNvcnMgYXJlIGRp c2FibGVkLCB0aGUgdHVwbGVzdG9yZSBpcyBjcmVhdGVkIGluCisJICogYmF0Y2hfY3h0LCBzbyBp dCBzaG91bGQgbm90IGJlIHJlc2V0IGluIHN0cmVhbWluZ19mZXRjaCBtb2RlLgogCSAqLwogCWZz c3RhdGUtPnR1cGxlcyA9IE5VTEw7Ci0JTWVtb3J5Q29udGV4dFJlc2V0KGZzc3RhdGUtPmJhdGNo X2N4dCk7CisJaWYgKCFmc3N0YXRlLT5zdHJlYW1pbmdfZmV0Y2gpCisJCU1lbW9yeUNvbnRleHRS ZXNldChmc3N0YXRlLT5iYXRjaF9jeHQpOwogCW9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0U3dp dGNoVG8oZnNzdGF0ZS0+YmF0Y2hfY3h0KTsKIAogCWlmIChmc3N0YXRlLT5hc3luY19jYXBhYmxl KQpAQCAtNDA0Myw3ICs0MTk3LDcgQEAgZmV0Y2hfbW9yZV9kYXRhKEZvcmVpZ25TY2FuU3RhdGUg Km5vZGUpCiAJCS8qIFJlc2V0IHBlci1jb25uZWN0aW9uIHN0YXRlICovCiAJCWZzc3RhdGUtPmNv bm5fc3RhdGUtPnBlbmRpbmdBcmVxID0gTlVMTDsKIAl9Ci0JZWxzZQorCWVsc2UgaWYgKCFmc3N0 YXRlLT5zdHJlYW1pbmdfZmV0Y2gpCiAJewogCQljaGFyCQlzcWxbNjRdOwogCkBAIC00MDU2LDcg KzQyMTAsMzAgQEAgZmV0Y2hfbW9yZV9kYXRhKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUpCiAJCWlm IChQUXJlc3VsdFN0YXR1cyhyZXMpICE9IFBHUkVTX1RVUExFU19PSykKIAkJCXBnZmR3X3JlcG9y dF9lcnJvcihyZXMsIGNvbm4sIGZzc3RhdGUtPnF1ZXJ5KTsKIAl9CisJZWxzZQorCXsKKwkJLyoK KwkJICogV2hlbiBjdXJzb3IgbW9kZSBpcyBub3QgdXNlZCwgdGhlcmUgaXMgYSBzcGVjaWFsIHBv c3NpYmlsaXR5IC0tCisJCSAqIHJlYWRpbmcgZnJvbSB0aGUgdHVwbGVzdG9yZS4gRm9yIHByb2Nl c3Npbmcgb2YgdHVwbGVzIG5vdGhpbmcKKwkJICogY2hhbmdlcyBpbiBjdXJzb3IgYW5kIG1vZGUg d2l0aG91dCBjdXJzb3IgZHVyaW5nIGZldGNoLgorCQkgKi8KKwkJaWYgKGZzc3RhdGUtPnR1cGxl c3RvcmUpCisJCXsKKwkJCS8qIFJlYWRpbmcgdHVwbGVzIGZyb20gdHVwbGVzdG9yZSAqLworCQkJ ZmV0Y2hfZnJvbV90dXBsZXN0b3JlKG5vZGUpOworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9s ZGNvbnRleHQpOworCQkJcmV0dXJuOworCQl9CisKKwkJLyoKKwkJICogTm9uLWN1cnNvciBtb2Rl IHVzZXMgUFFTZXRDaHVua2VkUm93c01vZGUgZHVyaW5nIGluaXRfc2Nhbiwgc28ganVzdAorCQkg KiBnZXQgdGhlIHJlc3VsdCBoZXJlLgorCQkgKi8KKwkJcmVzID0gcGdmZHdfZ2V0X25leHRfcmVz dWx0KGNvbm4pOwogCisJCWlmICghcmVzIHx8IFBRcmVzdWx0U3RhdHVzKHJlcykgPT0gUEdSRVNf RkFUQUxfRVJST1IpCisJCQlwZ2Zkd19yZXBvcnRfZXJyb3IocmVzLCBjb25uLCBmc3N0YXRlLT5x dWVyeSk7CisJfQogCS8qIENvbnZlcnQgdGhlIGRhdGEgaW50byBIZWFwVHVwbGVzICovCiAJbnVt cm93cyA9IFBRbnR1cGxlcyhyZXMpOwogCWZzc3RhdGUtPnR1cGxlcyA9IChIZWFwVHVwbGUgKikg cGFsbG9jMChudW1yb3dzICogc2l6ZW9mKEhlYXBUdXBsZSkpOwpAQCAtNDA3Myw3ICs0MjUwLDgg QEAgZmV0Y2hfbW9yZV9kYXRhKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUpCiAJCQkJCQkJCQkgICBm c3N0YXRlLT5hdHRpbm1ldGEsCiAJCQkJCQkJCQkgICBmc3N0YXRlLT5yZXRyaWV2ZWRfYXR0cnMs CiAJCQkJCQkJCQkgICBub2RlLAotCQkJCQkJCQkJICAgZnNzdGF0ZS0+dGVtcF9jeHQpOworCQkJ CQkJCQkJICAgZnNzdGF0ZS0+dGVtcF9jeHQsCisJCQkJCQkJCQkgICBOVUxMKTsKIAl9CiAKIAkv KiBVcGRhdGUgZmV0Y2hfY3RfMiAqLwpAQCAtNDA4OCw2ICs0MjY2LDE1MCBAQCBmZXRjaF9tb3Jl X2RhdGEoRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xk Y29udGV4dCk7CiB9CiAKK3N0YXRpYyBib29sCitpc19hY3RpdmVfc2NhbihQZ0Zkd1NjYW5TdGF0 ZSAqZnNzdGF0ZSkKK3sKKwlpZiAoZnNzdGF0ZS0+c3RyZWFtaW5nX2ZldGNoICYmIGZzc3RhdGUt PmNvbm5fc3RhdGUtPmFjdGl2ZV9zY2FuICYmCisJCWZzc3RhdGUgPT0gZnNzdGF0ZS0+Y29ubl9z dGF0ZS0+YWN0aXZlX3NjYW4pCisJCXJldHVybiB0cnVlOworCXJldHVybiBmYWxzZTsKK30KKwor LyoKKyAqIFRoaXMgaXMgdXNlZCBpbiBzdHJlYW1pbmdfZmV0Y2ggbW9kZSBvbmx5IHRvIGZldGNo IHRoZSB0dXBsZXMgZnJvbSB0aGUgdHVwbGVzdG9yZS4KKyAqLworc3RhdGljIHZvaWQKK2ZldGNo X2Zyb21fdHVwbGVzdG9yZShGb3JlaWduU2NhblN0YXRlICpub2RlKQoreworCVBnRmR3U2NhblN0 YXRlICpmc3N0YXRlID0gKFBnRmR3U2NhblN0YXRlICopIG5vZGUtPmZkd19zdGF0ZTsKKwlUdXBs ZVRhYmxlU2xvdCAqc2xvdDsKKwlpbnQJCQludW1yb3dzID0gMCwKKwkJCQlpID0gMDsKKworCS8q IFJldHJpZXZlIHRoZSB0dXBsZXMgZnJvbSB0aGUgdHVwbGVzdG9yZSBpbnN0ZWFkIG9mIGFjdHVh bCBmZXRjaCAqLworCW51bXJvd3MgPSB0dXBsZXN0b3JlX3R1cGxlX2NvdW50KGZzc3RhdGUtPnR1 cGxlc3RvcmUpOworCWZzc3RhdGUtPnR1cGxlcyA9IChIZWFwVHVwbGUgKikgcGFsbG9jMChudW1y b3dzICogc2l6ZW9mKEhlYXBUdXBsZSkpOworCXNsb3QgPSBNYWtlU2luZ2xlVHVwbGVUYWJsZVNs b3QoZnNzdGF0ZS0+dHVwZGVzYywgJlRUU09wc01pbmltYWxUdXBsZSk7CisKKwl3aGlsZSAodHVw bGVzdG9yZV9nZXR0dXBsZXNsb3QoZnNzdGF0ZS0+dHVwbGVzdG9yZSwgdHJ1ZSwgdHJ1ZSwgc2xv dCkpCisJeworCQlmc3N0YXRlLT50dXBsZXNbaSsrXSA9IEV4ZWNGZXRjaFNsb3RIZWFwVHVwbGUo c2xvdCwgdHJ1ZSwgTlVMTCk7CisJCUV4ZWNDbGVhclR1cGxlKHNsb3QpOworCX0KKwlmc3N0YXRl LT5udW1fdHVwbGVzID0gbnVtcm93czsKKwlmc3N0YXRlLT5uZXh0X3R1cGxlID0gMDsKKwlmc3N0 YXRlLT5lb2ZfcmVhY2hlZCA9IHRydWU7CisKKwkvKiBDbGVhbiB1cCAqLworCXR1cGxlc3RvcmVf ZW5kKGZzc3RhdGUtPnR1cGxlc3RvcmUpOworCUV4ZWNEcm9wU2luZ2xlVHVwbGVUYWJsZVNsb3Qo c2xvdCk7CisJZnNzdGF0ZS0+dHVwbGVzdG9yZSA9IE5VTEw7Cit9CisKKy8qCisgKiBJbiBub24t Y3Vyc29yIG1vZGUgb25seSwgc2F2ZSB0aGUgdHVwbGVzIHRvIHR1cGxlc3RvcmUuCisgKi8KK3N0 YXRpYyB2b2lkCitzYXZlX3RvX3R1cGxlc3RvcmUoRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkKK3sK KwlQZ0Zkd1NjYW5TdGF0ZSAqZnNzdGF0ZSA9IChQZ0Zkd1NjYW5TdGF0ZSAqKSBub2RlLT5mZHdf c3RhdGU7CisJUGdGZHdTY2FuU3RhdGUgKmFjdGl2ZV9mc3N0YXRlID0gZnNzdGF0ZS0+Y29ubl9z dGF0ZS0+YWN0aXZlX3NjYW47CisJUEdjb25uCSAgICpjb25uID0gZnNzdGF0ZS0+Y29ubjsKKwlQ R3Jlc3VsdCAgICpyZXM7CisJaW50CQkJbnVtcm93cyA9IDAsCisJCQkJaSA9IDA7CisJTWVtb3J5 Q29udGV4dCBvbGRjb250ZXh0OworCS8qCisJICogV2hlbiBjb21pbmcgZnJvbSByZXNjYW4sIHRo ZSBjb25uZWN0aW9uIGlzIG5vdCBzZXR1cC4gSXQgaXMgdGhlbgorCSAqIHJlcXVpcmVkIHRvIHNl dCB1cCB0aGUgY29ubmVjdGlvbiBiYXNlZCBvbiB0aGUgcXVlcnkgaW4KKwkgKiBhY3RpdmVfc2Nh bi4KKwkgKi8KKwlpZiAoYWN0aXZlX2Zzc3RhdGUtPnJlc2NhbikKKwl7CisJCWlmICghUFFzZW5k UXVlcnlQYXJhbXMoY29ubiwgYWN0aXZlX2Zzc3RhdGUtPnF1ZXJ5LCBhY3RpdmVfZnNzdGF0ZS0+ bnVtUGFyYW1zLAorCQkJCQkJCSAgIE5VTEwsICBhY3RpdmVfZnNzdGF0ZS0+cGFyYW1fdmFsdWVz LCBOVUxMLCBOVUxMLCAwKSkKKwkJCXBnZmR3X3JlcG9ydF9lcnJvcihOVUxMLCBjb25uLCBhY3Rp dmVfZnNzdGF0ZS0+cXVlcnkpOworCisJCWlmICghUFFzZXRDaHVua2VkUm93c01vZGUoY29ubiwg YWN0aXZlX2Zzc3RhdGUtPmZldGNoX3NpemUpKQorCQkJcGdmZHdfcmVwb3J0X2Vycm9yKE5VTEws IGNvbm4sIGFjdGl2ZV9mc3N0YXRlLT5xdWVyeSk7CisJCWFjdGl2ZV9mc3N0YXRlLT5yZXNjYW4g PSBmYWxzZTsKKwl9CisJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhhY3RpdmVf ZnNzdGF0ZS0+YmF0Y2hfY3h0KTsKKworCXJlcyA9IHBnZmR3X2dldF9uZXh0X3Jlc3VsdChjb25u KTsKKworCWlmIChQUXJlc3VsdFN0YXR1cyhyZXMpID09IFBHUkVTX0ZBVEFMX0VSUk9SKQorCQlw Z2Zkd19yZXBvcnRfZXJyb3IocmVzLCBjb25uLCBhY3RpdmVfZnNzdGF0ZS0+cXVlcnkpOworCWVs c2UgaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgPT0gUEdSRVNfVFVQTEVTX09LKQorCXsKKwkJLyoK KwkJICogVGhpcyBzaWduaWZpZXMgdGhlcmUgaXMgbm90aGluZyB0b2RvLCBhbGwgaXMgZmV0Y2hl ZC4gQnV0IHRoaXMKKwkJICogaGFwcGVuZWQgb25seSBhZnRlciB0aGlzIGNhbGwsIHNvIHNldCB0 aGUgZW9mX3JlYWNoZWQgZm9yIHRoZSBzY2FuLgorCQkgKi8KKwkJYWN0aXZlX2Zzc3RhdGUtPmVv Zl9yZWFjaGVkID0gdHJ1ZTsKKwkJQXNzZXJ0KFBRbnR1cGxlcyhyZXMpID09IDApOworCQlQUWNs ZWFyKHJlcyk7CisJfQorCWVsc2UgaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgPT0gUEdSRVNfVFVQ TEVTX0NIVU5LKQorCXsKKwkJYWN0aXZlX2Zzc3RhdGUtPnR1cGxlc3RvcmUgPSB0dXBsZXN0b3Jl X2JlZ2luX2hlYXAodHJ1ZSwgZmFsc2UsIHdvcmtfbWVtKTsKKworCQlmb3IgKDs7KQorCQl7CisJ CQkvKgorCQkJICogU2luY2UgaXQgaXMgdXNpbmcgUFFTZXRDaHVua2VkUm93c01vZGUsIHdlIG9u bHkgZ2V0IHRoZQorCQkJICogZnNzdGF0ZS0+ZmV0Y2hfc2l6ZSB0dXBsZXMgaW4gb25lIHJ1biwg c28ga2VlcCBvbiBleGVjdXRpbmcKKwkJCSAqIHRpbGwgd2UgZ2V0IE5VTEwgaW4gUEdyZXN1bHQg aS5lLiBhbGwgdGhlIHR1cGxlcyBhcmUgcmV0cmlldmVkLgorCQkJICovCisJCQlDSEVDS19GT1Jf SU5URVJSVVBUUygpOworCQkJbnVtcm93cyA9IFBRbnR1cGxlcyhyZXMpOworCisJCQkvKiBDb252 ZXJ0IHRoZSBkYXRhIGludG8gSGVhcFR1cGxlcyAqLworCQkJQXNzZXJ0KElzQShub2RlLT5zcy5w cy5wbGFuLCBGb3JlaWduU2NhbikpOworCQkJZm9yIChpID0gMDsgaSA8IG51bXJvd3M7IGkrKykK KwkJCXsKKwkJCQlIZWFwVHVwbGUJdGVtcF90dXBsZTsKKworCQkJCXRlbXBfdHVwbGUgPSBtYWtl X3R1cGxlX2Zyb21fcmVzdWx0X3JvdyhyZXMsIGksCisJCQkJCQkJCQkJCQkJCWFjdGl2ZV9mc3N0 YXRlLT5yZWwsCisJCQkJCQkJCQkJCQkJCWFjdGl2ZV9mc3N0YXRlLT5hdHRpbm1ldGEsCisJCQkJ CQkJCQkJCQkJCWFjdGl2ZV9mc3N0YXRlLT5yZXRyaWV2ZWRfYXR0cnMsCisJCQkJCQkJCQkJCQkJ CW5vZGUsCisJCQkJCQkJCQkJCQkJCWFjdGl2ZV9mc3N0YXRlLT50ZW1wX2N4dCwKKwkJCQkJCQkJ CQkJCQkJYWN0aXZlX2Zzc3RhdGUtPnR1cGRlc2MpOworCQkJCXR1cGxlc3RvcmVfcHV0dHVwbGUo YWN0aXZlX2Zzc3RhdGUtPnR1cGxlc3RvcmUsIHRlbXBfdHVwbGUpOworCQkJCWhlYXBfZnJlZXR1 cGxlKHRlbXBfdHVwbGUpOworCQkJfQorCQkJUFFjbGVhcihyZXMpOworCQkJcmVzID0gcGdmZHdf Z2V0X25leHRfcmVzdWx0KGNvbm4pOworCQkJaWYgKHJlcyA9PSBOVUxMKQorCQkJCWJyZWFrOwor CQkJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgPT0gUEdSRVNfRkFUQUxfRVJST1IpCisJCQkJcGdm ZHdfcmVwb3J0X2Vycm9yKHJlcywgY29ubiwgYWN0aXZlX2Zzc3RhdGUtPnF1ZXJ5KTsKKwkJCWVs c2UgaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgPT0gUEdSRVNfVFVQTEVTX09LKQorCQkJeworCQkJ CUFzc2VydChQUW50dXBsZXMocmVzKSA9PSAwKTsKKwkJCQlQUWNsZWFyKHJlcyk7CisJCQkJYnJl YWs7CisJCQl9CisJCX0KKwl9CisKKwkvKgorCSAqIFRoZXJlIGFyZSBubyBtb3JlIHR1cGxlcyB0 byBmZXRjaCwgYSBmaW5hbCBjYWxsIHRvIHJlYWNoIHRoZSB0ZXJtaW5hbAorCSAqIHN0YXRlLgor CSAqLworCXJlcyA9IHBnZmR3X2dldF9uZXh0X3Jlc3VsdChjb25uKTsKKwlBc3NlcnQocmVzID09 IE5VTEwpOworCisJLyoKKwkgKiBSZW1vdmUgdGhlIGFjdGl2ZV9zY2FuIHNpbmNlIGl0IGlzIGNv bXBsZXRlbHkgZmV0Y2hlZCwgc28gbm8gbmVlZCB0bworCSAqIHJlbWVtYmVyIGl0IG5vdy4KKwkg Ki8KKwlmc3N0YXRlLT5jb25uX3N0YXRlLT5hY3RpdmVfc2NhbiA9IE5VTEw7CisJTWVtb3J5Q29u dGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworfQorCiAvKgogICogRm9yY2UgYXNzb3J0ZWQgR1VD IHBhcmFtZXRlcnMgdG8gc2V0dGluZ3MgdGhhdCBlbnN1cmUgdGhhdCB3ZSdsbCBvdXRwdXQKICAq IGRhdGEgdmFsdWVzIGluIGEgZm9ybSB0aGF0IGlzIHVuYW1iaWd1b3VzIHRvIHRoZSByZW1vdGUg c2VydmVyLgpAQCAtNDE2Myw2ICs0NDg1LDI2IEBAIGNsb3NlX2N1cnNvcihQR2Nvbm4gKmNvbm4s IHVuc2lnbmVkIGludCBjdXJzb3JfbnVtYmVyLAogCVBRY2xlYXIocmVzKTsKIH0KIAorLyoKKyAq IFdoZW4gY3Vyc29ycyBhcmUgZGlzYWJsZWQsIGVuZCB0aGUgc2Nhbi4KKyAqLworc3RhdGljIHZv aWQKK2VuZF9zY2FuKFBHY29ubiAqY29ubikKK3sKKwlQR3Jlc3VsdCAgICpyZXM7CisKKwlyZXMg PSBwZ2Zkd19nZXRfcmVzdWx0KGNvbm4pOworCisJLyoKKwkgKiBRdWVyeSBjb21wbGV0ZSwgbm90 aGluZyB0byBkby4KKwkgKi8KKwlpZiAocmVzID09IE5VTEwpCisJCXJldHVybjsKKwlpZiAoUFFy ZXN1bHRTdGF0dXMocmVzKSAhPSBQR1JFU19UVVBMRVNfT0spCisJCXBnZmR3X3JlcG9ydF9lcnJv cihyZXMsIGNvbm4sICJzY2FuIG5vdCBlbmRlZCBwcm9wZXJseSBpbiBzdHJlYW1pbmdfZmV0Y2gg bW9kZSIpOworCVBRY2xlYXIocmVzKTsKK30KKwogLyoKICAqIGNyZWF0ZV9mb3JlaWduX21vZGlm eQogICoJCUNvbnN0cnVjdCBhbiBleGVjdXRpb24gc3RhdGUgb2YgYSBmb3JlaWduIGluc2VydC91 cGRhdGUvZGVsZXRlCkBAIC00NTQ0LDcgKzQ4ODYsNyBAQCBzdG9yZV9yZXR1cm5pbmdfcmVzdWx0 KFBnRmR3TW9kaWZ5U3RhdGUgKmZtc3RhdGUsCiAJCQkJCQkJCQkJZm1zdGF0ZS0+YXR0aW5tZXRh LAogCQkJCQkJCQkJCWZtc3RhdGUtPnJldHJpZXZlZF9hdHRycywKIAkJCQkJCQkJCQlOVUxMLAot CQkJCQkJCQkJCWZtc3RhdGUtPnRlbXBfY3h0KTsKKwkJCQkJCQkJCQlmbXN0YXRlLT50ZW1wX2N4 dCwgTlVMTCk7CiAKIAkvKgogCSAqIFRoZSByZXR1cm5pbmcgc2xvdCB3aWxsIG5vdCBuZWNlc3Nh cmlseSBiZSBzdWl0YWJsZSB0byBzdG9yZSBoZWFwdHVwbGVzCkBAIC00ODIzLDcgKzUxNjUsNyBA QCBnZXRfcmV0dXJuaW5nX2RhdGEoRm9yZWlnblNjYW5TdGF0ZSAqbm9kZSkKIAkJCQkJCQkJCQkJ ZG1zdGF0ZS0+YXR0aW5tZXRhLAogCQkJCQkJCQkJCQlkbXN0YXRlLT5yZXRyaWV2ZWRfYXR0cnMs CiAJCQkJCQkJCQkJCW5vZGUsCi0JCQkJCQkJCQkJCWRtc3RhdGUtPnRlbXBfY3h0KTsKKwkJCQkJ CQkJCQkJZG1zdGF0ZS0+dGVtcF9jeHQsIE5VTEwpOwogCQlFeGVjU3RvcmVIZWFwVHVwbGUobmV3 dHVwLCBzbG90LCBmYWxzZSk7CiAJCS8qIEdldCB0aGUgdXBkYXRlZC9kZWxldGVkIHR1cGxlLiAq LwogCQlpZiAoZG1zdGF0ZS0+cmVsKQpAQCAtNTQ1NSw3ICs1Nzk3LDcgQEAgcG9zdGdyZXNBY3F1 aXJlU2FtcGxlUm93c0Z1bmMoUmVsYXRpb24gcmVsYXRpb24sIGludCBlbGV2ZWwsCiAJZm9yICg7 OykKIAl7CiAJCWludAkJCW51bXJvd3M7Ci0JCWludAkJCWk7CisJCWludAkJCWkgPSAwOwogCiAJ CS8qIEFsbG93IHVzZXJzIHRvIGNhbmNlbCBsb25nIHF1ZXJ5ICovCiAJCUNIRUNLX0ZPUl9JTlRF UlJVUFRTKCk7CkBAIC01NTc2LDcgKzU5MTgsNyBAQCBhbmFseXplX3Jvd19wcm9jZXNzb3IoUEdy ZXN1bHQgKnJlcywgaW50IHJvdywgUGdGZHdBbmFseXplU3RhdGUgKmFzdGF0ZSkKIAkJCQkJCQkJ CQkJCQkgICBhc3RhdGUtPmF0dGlubWV0YSwKIAkJCQkJCQkJCQkJCQkgICBhc3RhdGUtPnJldHJp ZXZlZF9hdHRycywKIAkJCQkJCQkJCQkJCQkgICBOVUxMLAotCQkJCQkJCQkJCQkJCSAgIGFzdGF0 ZS0+dGVtcF9jeHQpOworCQkJCQkJCQkJCQkJCSAgIGFzdGF0ZS0+dGVtcF9jeHQsIE5VTEwpOwog CiAJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIAl9CkBAIC03MDkyLDYgKzc0 MzQsOCBAQCBhcHBseV9zZXJ2ZXJfb3B0aW9ucyhQZ0Zkd1JlbGF0aW9uSW5mbyAqZnBpbmZvKQog CQkJKHZvaWQpIHBhcnNlX2ludChkZWZHZXRTdHJpbmcoZGVmKSwgJmZwaW5mby0+ZmV0Y2hfc2l6 ZSwgMCwgTlVMTCk7CiAJCWVsc2UgaWYgKHN0cmNtcChkZWYtPmRlZm5hbWUsICJhc3luY19jYXBh YmxlIikgPT0gMCkKIAkJCWZwaW5mby0+YXN5bmNfY2FwYWJsZSA9IGRlZkdldEJvb2xlYW4oZGVm KTsKKwkJZWxzZSBpZiAoc3RyY21wKGRlZi0+ZGVmbmFtZSwgInN0cmVhbWluZ19mZXRjaCIpID09 IDApCisJCQlzZXRfc3RyZWFtaW5nX2ZldGNoKGRlZiwgZnBpbmZvKTsKIAl9CiB9CiAKQEAgLTcx MTUsOSArNzQ1OSwyMCBAQCBhcHBseV90YWJsZV9vcHRpb25zKFBnRmR3UmVsYXRpb25JbmZvICpm cGluZm8pCiAJCQkodm9pZCkgcGFyc2VfaW50KGRlZkdldFN0cmluZyhkZWYpLCAmZnBpbmZvLT5m ZXRjaF9zaXplLCAwLCBOVUxMKTsKIAkJZWxzZSBpZiAoc3RyY21wKGRlZi0+ZGVmbmFtZSwgImFz eW5jX2NhcGFibGUiKSA9PSAwKQogCQkJZnBpbmZvLT5hc3luY19jYXBhYmxlID0gZGVmR2V0Qm9v bGVhbihkZWYpOworCQllbHNlIGlmIChzdHJjbXAoZGVmLT5kZWZuYW1lLCAic3RyZWFtaW5nX2Zl dGNoIikgPT0gMCkKKwkJCXNldF9zdHJlYW1pbmdfZmV0Y2goZGVmLCBmcGluZm8pOwogCX0KIH0K IAorc3RhdGljIHZvaWQKK3NldF9zdHJlYW1pbmdfZmV0Y2goRGVmRWxlbSAqZGVmLCBQZ0Zkd1Jl bGF0aW9uSW5mbyAqZnBpbmZvKQoreworCWZwaW5mby0+c3RyZWFtaW5nX2ZldGNoID0gZGVmR2V0 Qm9vbGVhbihkZWYpOworCWlmIChmcGluZm8tPnN0cmVhbWluZ19mZXRjaCAmJiBQUWxpYlZlcnNp b24oKSA8IDE3MDAwMCkKKwkJZXJlcG9ydChFUlJPUiwgZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJZXJybXNnKCJzdHJlYW1pbmdfZmV0Y2ggcmVxdWlyZXMgbGli cHEgdmVyc2lvbiAxNyBvciBsYXRlciIpKTsKK30KKwogLyoKICAqIE1lcmdlIEZEVyBvcHRpb25z IGZyb20gaW5wdXQgcmVsYXRpb25zIGludG8gYSBuZXcgc2V0IG9mIG9wdGlvbnMgZm9yIGEgam9p bgogICogb3IgYW4gdXBwZXIgcmVsLgpAQCAtNzE1MCw2ICs3NTA1LDcgQEAgbWVyZ2VfZmR3X29w dGlvbnMoUGdGZHdSZWxhdGlvbkluZm8gKmZwaW5mbywKIAlmcGluZm8tPnVzZV9yZW1vdGVfZXN0 aW1hdGUgPSBmcGluZm9fby0+dXNlX3JlbW90ZV9lc3RpbWF0ZTsKIAlmcGluZm8tPmZldGNoX3Np emUgPSBmcGluZm9fby0+ZmV0Y2hfc2l6ZTsKIAlmcGluZm8tPmFzeW5jX2NhcGFibGUgPSBmcGlu Zm9fby0+YXN5bmNfY2FwYWJsZTsKKwlmcGluZm8tPnN0cmVhbWluZ19mZXRjaCA9IGZwaW5mb19v LT5zdHJlYW1pbmdfZmV0Y2g7CiAKIAkvKiBNZXJnZSB0aGUgdGFibGUgbGV2ZWwgb3B0aW9ucyBm cm9tIGVpdGhlciBzaWRlIG9mIHRoZSBqb2luLiAqLwogCWlmIChmcGluZm9faSkKQEAgLTg0MjMs NyArODc3OSw4IEBAIG1ha2VfdHVwbGVfZnJvbV9yZXN1bHRfcm93KFBHcmVzdWx0ICpyZXMsCiAJ CQkJCQkgICBBdHRJbk1ldGFkYXRhICphdHRpbm1ldGEsCiAJCQkJCQkgICBMaXN0ICpyZXRyaWV2 ZWRfYXR0cnMsCiAJCQkJCQkgICBGb3JlaWduU2NhblN0YXRlICpmc3N0YXRlLAotCQkJCQkJICAg TWVtb3J5Q29udGV4dCB0ZW1wX2NvbnRleHQpCisJCQkJCQkgICBNZW1vcnlDb250ZXh0IHRlbXBf Y29udGV4dCwKKwkJCQkJCSAgIFR1cGxlRGVzYyBsYXN0X3R1cGRlc2MpCiB7CiAJSGVhcFR1cGxl CXR1cGxlOwogCVR1cGxlRGVzYwl0dXBkZXNjOwpAQCAtODQ0Nyw5ICs4ODA0LDEzIEBAIG1ha2Vf dHVwbGVfZnJvbV9yZXN1bHRfcm93KFBHcmVzdWx0ICpyZXMsCiAKIAkvKgogCSAqIEdldCB0aGUg dHVwbGUgZGVzY3JpcHRvciBmb3IgdGhlIHJvdy4gIFVzZSB0aGUgcmVsJ3MgdHVwZGVzYyBpZiBy ZWwgaXMKLQkgKiBwcm92aWRlZCwgb3RoZXJ3aXNlIGxvb2sgdG8gdGhlIHNjYW4gbm9kZSdzIFNj YW5UdXBsZVNsb3QuCisJICogcHJvdmlkZWQsIG90aGVyd2lzZSBsb29rIHRvIHRoZSBzY2FuIG5v ZGUncyBTY2FuVHVwbGVTbG90LiBJbiBjYXNlIG9mCisJICogbm9uLWN1cnNvciBtb2RlLCB1c2Ug dGhlIHR1cGxlZGVzYyB0aGF0IGlzIGFscmVhZHkgcHJvdmlkZWQsIGJlY2F1c2UKKwkgKiBnZXR0 aW5nIGZyb20gdGhlIGN1cnJlbnQgZnNzdGF0ZSB3b3VsZCBiZSB3cm9uZyBpbiB0aGlzIGNhc2Uu CiAJICovCi0JaWYgKHJlbCkKKwlpZiAobGFzdF90dXBkZXNjKQorCQl0dXBkZXNjID0gbGFzdF90 dXBkZXNjOworCWVsc2UgaWYgKHJlbCkKIAkJdHVwZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVs KTsKIAllbHNlCiAJewpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNf ZmR3LmggYi9jb250cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuaAppbmRleCBhMmJiMWZm MzUyYy4uYzJkZmJlOWQzMjEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3Rn cmVzX2Zkdy5oCisrKyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bvc3RncmVzX2Zkdy5oCkBAIC04 OCw2ICs4OCw3IEBAIHR5cGVkZWYgc3RydWN0IFBnRmR3UmVsYXRpb25JbmZvCiAJVXNlck1hcHBp bmcgKnVzZXI7CQkJLyogb25seSBzZXQgaW4gdXNlX3JlbW90ZV9lc3RpbWF0ZSBtb2RlICovCiAK IAlpbnQJCQlmZXRjaF9zaXplOwkJLyogZmV0Y2ggc2l6ZSBmb3IgdGhpcyByZW1vdGUgdGFibGUg Ki8KKwlib29sCQlzdHJlYW1pbmdfZmV0Y2g7CSAvKiB0cnVlIGlmIGN1cnNvci1mcmVlIGZldGNo IGlzIGVuYWJsZWQgKi8KIAogCS8qCiAJICogTmFtZSBvZiB0aGUgcmVsYXRpb24sIGZvciB1c2Ug d2hpbGUgRVhQTEFJTmluZyBGb3JlaWduU2Nhbi4gIEl0IGlzIHVzZWQKQEAgLTEzMSwxMiArMTMy LDE2IEBAIHR5cGVkZWYgc3RydWN0IFBnRmR3UmVsYXRpb25JbmZvCiAJaW50CQkJcmVsYXRpb25f aW5kZXg7CiB9IFBnRmR3UmVsYXRpb25JbmZvOwogCit0eXBlZGVmIHN0cnVjdCBQZ0Zkd1NjYW5T dGF0ZSBQZ0Zkd1NjYW5TdGF0ZTsKKwogLyoKICAqIEV4dHJhIGNvbnRyb2wgaW5mb3JtYXRpb24g cmVsYXRpbmcgdG8gYSBjb25uZWN0aW9uLgogICovCiB0eXBlZGVmIHN0cnVjdCBQZ0Zkd0Nvbm5T dGF0ZQogewogCUFzeW5jUmVxdWVzdCAqcGVuZGluZ0FyZXE7CS8qIHBlbmRpbmcgYXN5bmMgcmVx dWVzdCAqLworCVBnRmR3U2NhblN0YXRlICphY3RpdmVfc2NhbjsJLyogbGFzdCBxdWVyeSBleGVj dXRlZCwgcmVxdWlyZWQgZm9yCisJCQkJCQkJCQkgKiBub24tY3Vyc29yIG1vZGUgKi8KIH0gUGdG ZHdDb25uU3RhdGU7CiAKIC8qCkBAIC0xNjQsNiArMTY5LDcgQEAgZXh0ZXJuIHVuc2lnbmVkIGlu dCBHZXRDdXJzb3JOdW1iZXIoUEdjb25uICpjb25uKTsKIGV4dGVybiB1bnNpZ25lZCBpbnQgR2V0 UHJlcFN0bXROdW1iZXIoUEdjb25uICpjb25uKTsKIGV4dGVybiB2b2lkIGRvX3NxbF9jb21tYW5k KFBHY29ubiAqY29ubiwgY29uc3QgY2hhciAqc3FsKTsKIGV4dGVybiBQR3Jlc3VsdCAqcGdmZHdf Z2V0X3Jlc3VsdChQR2Nvbm4gKmNvbm4pOworZXh0ZXJuIFBHcmVzdWx0ICpwZ2Zkd19nZXRfbmV4 dF9yZXN1bHQoUEdjb25uICpjb25uKTsKIGV4dGVybiBQR3Jlc3VsdCAqcGdmZHdfZXhlY19xdWVy eShQR2Nvbm4gKmNvbm4sIGNvbnN0IGNoYXIgKnF1ZXJ5LAogCQkJCQkJCQkgIFBnRmR3Q29ublN0 YXRlICpzdGF0ZSk7CiBwZ19ub3JldHVybiBleHRlcm4gdm9pZCBwZ2Zkd19yZXBvcnRfZXJyb3Io UEdyZXN1bHQgKnJlcywgUEdjb25uICpjb25uLApkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jl c19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbAppbmRleCAyNjdkM2MxYTdlNy4uZTlmNzA1ZTk3OGYgMTAwNjQ0Ci0tLSBh L2NvbnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCisrKyBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCkBAIC0yNjcsNiArMjY3LDI0MyBAQCBT RUxFQ1QgYzMsIGM0IEZST00gZnQxIE9SREVSIEJZIGMzLCBjMSBMSU1JVCAxOyAgLS0gc2hvdWxk IHdvcmsgYWdhaW4KIEFOQUxZWkUgZnQxOwogQUxURVIgRk9SRUlHTiBUQUJMRSBmdDIgT1BUSU9O UyAodXNlX3JlbW90ZV9lc3RpbWF0ZSAndHJ1ZScpOwogCistLSA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CistLSB0ZXN0 IHN0cmVhbWluZ19mZXRjaCBvcHRpb24KKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KK0NSRUFURSBTRVJWRVIgZmV0 Y2hfc3RyZWFtX3NydgorICAgIEZPUkVJR04gREFUQSBXUkFQUEVSIHBvc3RncmVzX2ZkdworICAg IE9QVElPTlMgKGRibmFtZSA6J2N1cnJlbnRfZGF0YWJhc2UnLCBwb3J0IDonY3VycmVudF9wb3J0 Jyk7CitDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBDVVJSRU5UX1VTRVIgU0VSVkVSIGZldGNoX3N0 cmVhbV9zcnY7CisKK0NSRUFURSBUQUJMRSBsb2NhbF90YmwgKGlkIGludCwgdmFsIHRleHQpOwor SU5TRVJUIElOVE8gbG9jYWxfdGJsIFZBTFVFUyAoMSwgJ2EnKSwgKDIsICdiJyksICgzLCAnYycp OworLS0gMS4gc3RyZWFtaW5nX2ZldGNoIHNldCBhdCBTRVJWRVIgbGV2ZWwgb25seQorCistLSAx YS4gU2V0IHN0cmVhbWluZ19mZXRjaCA9IHRydWUgb24gdGhlIHNlcnZlcgorQUxURVIgU0VSVkVS IGZldGNoX3N0cmVhbV9zcnYgT1BUSU9OUyAoQUREIHN0cmVhbWluZ19mZXRjaCAndHJ1ZScpOwor CitDUkVBVEUgRk9SRUlHTiBUQUJMRSBmdF9zZXJ2ZXIgKGlkIGludCwgdmFsIHRleHQpCisgICAg U0VSVkVSIGZldGNoX3N0cmVhbV9zcnYKKyAgICBPUFRJT05TIChzY2hlbWFfbmFtZSAncHVibGlj JywgdGFibGVfbmFtZSAnbG9jYWxfdGJsJyk7CisKKy0tIFZlcmlmeSBvcHRpb24gYXBwZWFycyBp biBmb3JlaWduIHNlcnZlcgorU0VMRUNUIHNydm5hbWUsIG9wdGlvbl9uYW1lLCBvcHRpb25fdmFs dWUKK0ZST00gcGdfZm9yZWlnbl9zZXJ2ZXIsCisgICAgIExBVEVSQUwgcGdfb3B0aW9uc190b190 YWJsZShzcnZvcHRpb25zKQorV0hFUkUgc3J2bmFtZSA9ICdmZXRjaF9zdHJlYW1fc3J2JworICBB TkQgb3B0aW9uX25hbWUgSU4gKCdzdHJlYW1pbmdfZmV0Y2gnKQorT1JERVIgQlkgc3J2bmFtZSwg b3B0aW9uX25hbWU7CisKKy0tIFZlcmlmeSBvcHRpb24gaXMgTk9UIHByZXNlbnQgYXQgdGFibGUg bGV2ZWwgKGluaGVyaXRzIGZyb20gc2VydmVyKQorU0VMRUNUIGZ0cmVsaWQ6OnJlZ2NsYXNzLCBm dG9wdGlvbnMKK0ZST00gcGdfZm9yZWlnbl90YWJsZQorV0hFUkUgZnRyZWxpZCA9ICdmdF9zZXJ2 ZXInOjpyZWdjbGFzczsKKworLS0gMWIuIFN3aXRjaCBzZXJ2ZXItbGV2ZWwgdG8gc3RyZWFtaW5n X2ZldGNoID0gZmFsc2UKK0FMVEVSIFNFUlZFUiBmZXRjaF9zdHJlYW1fc3J2IE9QVElPTlMgKFNF VCBzdHJlYW1pbmdfZmV0Y2ggJ2ZhbHNlJyk7CisKK1NFTEVDVCBzcnZuYW1lLCBvcHRpb25fbmFt ZSwgb3B0aW9uX3ZhbHVlCitGUk9NIHBnX2ZvcmVpZ25fc2VydmVyLAorICAgICBMQVRFUkFMIHBn X29wdGlvbnNfdG9fdGFibGUoc3J2b3B0aW9ucykKK1dIRVJFIHNydm5hbWUgPSAnZmV0Y2hfc3Ry ZWFtX3NydicKKyAgQU5EIG9wdGlvbl9uYW1lIElOICgnc3RyZWFtaW5nX2ZldGNoJykKK09SREVS IEJZIHNydm5hbWUsIG9wdGlvbl9uYW1lOworCistLSBWZXJpZnkgb3B0aW9uIGlzIE5PVCBwcmVz ZW50IGF0IHRhYmxlIGxldmVsIChpbmhlcml0cyBmcm9tIHNlcnZlcikKK1NFTEVDVCBmdHJlbGlk OjpyZWdjbGFzcywgZnRvcHRpb25zCitGUk9NIHBnX2ZvcmVpZ25fdGFibGUKK1dIRVJFIGZ0cmVs aWQgPSAnZnRfc2VydmVyJzo6cmVnY2xhc3M7CisKKy0tIDIuIHN0cmVhbWluZ19mZXRjaCBzZXQg YXQgVEFCTEUgbGV2ZWwgb25seSAobm8gc2VydmVyLWxldmVsIG9wdGlvbikKK0FMVEVSIFNFUlZF UiBmZXRjaF9zdHJlYW1fc3J2IE9QVElPTlMgKERST1Agc3RyZWFtaW5nX2ZldGNoKTsKKworLS0g MmEuIHN0cmVhbWluZ19mZXRjaCA9IHRydWUgYXQgdGFibGUgbGV2ZWwKK0FMVEVSIEZPUkVJR04g VEFCTEUgZnRfc2VydmVyIE9QVElPTlMgKEFERCBzdHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsKKwor U0VMRUNUIGZ0cmVsaWQ6OnJlZ2NsYXNzLCBmdG9wdGlvbnMKK0ZST00gcGdfZm9yZWlnbl90YWJs ZQorV0hFUkUgZnRyZWxpZCA9ICdmdF9zZXJ2ZXInOjpyZWdjbGFzczsKKworU0VMRUNUICogRlJP TSBmdF9zZXJ2ZXIgT1JERVIgQlkgaWQ7CisKKy0tIDJiLiBzdHJlYW1pbmdfZmV0Y2ggPSBmYWxz ZSBhdCB0YWJsZSBsZXZlbAorQUxURVIgRk9SRUlHTiBUQUJMRSBmdF9zZXJ2ZXIgT1BUSU9OUyAo U0VUIHN0cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsKKworU0VMRUNUIGZ0cmVsaWQ6OnJlZ2NsYXNz LCBmdG9wdGlvbnMKK0ZST00gcGdfZm9yZWlnbl90YWJsZQorV0hFUkUgZnRyZWxpZCA9ICdmdF9z ZXJ2ZXInOjpyZWdjbGFzczsKKworU0VMRUNUICogRlJPTSBmdF9zZXJ2ZXIgT1JERVIgQlkgaWQ7 CisKKy0tIDMuIFRBQkxFLWxldmVsIHZhbHVlIG92ZXJyaWRlcyBTRVJWRVItbGV2ZWwgdmFsdWUK KworLS0gM2EuIFNlcnZlciA9IHRydWUsIFRhYmxlID0gZmFsc2UKK0FMVEVSIFNFUlZFUiBmZXRj aF9zdHJlYW1fc3J2IE9QVElPTlMgKEFERCBzdHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsKKworLS0g U2VydmVyICBzaG93cyB0cnVlCitTRUxFQ1Qgc3J2bmFtZSwgb3B0aW9uX25hbWUsIG9wdGlvbl92 YWx1ZQorRlJPTSBwZ19mb3JlaWduX3NlcnZlciwKKyAgICAgTEFURVJBTCBwZ19vcHRpb25zX3Rv X3RhYmxlKHNydm9wdGlvbnMpCitXSEVSRSBzcnZuYW1lID0gJ2ZldGNoX3N0cmVhbV9zcnYnCisg IEFORCBvcHRpb25fbmFtZSBJTiAoJ3N0cmVhbWluZ19mZXRjaCcpCitPUkRFUiBCWSBzcnZuYW1l LCBvcHRpb25fbmFtZTsKKworLS0gVGFibGUgc2hvd3MgaXRzIG93biBvdmVycmlkZTogZmFsc2UK K1NFTEVDVCBmdHJlbGlkOjpyZWdjbGFzcywgZnRvcHRpb25zCitGUk9NIHBnX2ZvcmVpZ25fdGFi bGUKK1dIRVJFIGZ0cmVsaWQgPSAnZnRfc2VydmVyJzo6cmVnY2xhc3M7CisKKy0tIFF1ZXJ5IG11 c3Qgc3VjY2VlZCBhbmQgdXNlIHRhYmxlLWxldmVsIHNldHRpbmcgKGZhbHNlKQorU0VMRUNUICog RlJPTSBmdF9zZXJ2ZXIgT1JERVIgQlkgaWQ7CisKKy0tIDNiLiBTZXJ2ZXIgPSBmYWxzZSwgVGFi bGUgPSB0cnVlICDihpIgIGVmZmVjdGl2ZSB2YWx1ZSBpcyB0cnVlCitBTFRFUiBTRVJWRVIgZmV0 Y2hfc3RyZWFtX3NydiBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICdmYWxzZScpOworCitB TFRFUiBGT1JFSUdOIFRBQkxFIGZ0X3NlcnZlciBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNo ICd0cnVlJyk7CisKKy0tIFNlcnZlciBzaG93cyBmYWxzZQorU0VMRUNUIHNydm5hbWUsIG9wdGlv bl9uYW1lLCBvcHRpb25fdmFsdWUKK0ZST00gcGdfZm9yZWlnbl9zZXJ2ZXIsCisgICAgIExBVEVS QUwgcGdfb3B0aW9uc190b190YWJsZShzcnZvcHRpb25zKQorV0hFUkUgc3J2bmFtZSA9ICdmZXRj aF9zdHJlYW1fc3J2JworICBBTkQgb3B0aW9uX25hbWUgSU4gKCdzdHJlYW1pbmdfZmV0Y2gnKQor T1JERVIgQlkgc3J2bmFtZSwgb3B0aW9uX25hbWU7CisKKy0tIFRhYmxlIHNob3dzIGl0cyBvd24g b3ZlcnJpZGU6IHRydWUKK1NFTEVDVCBmdHJlbGlkOjpyZWdjbGFzcywgZnRvcHRpb25zCitGUk9N IHBnX2ZvcmVpZ25fdGFibGUKK1dIRVJFIGZ0cmVsaWQgPSAnZnRfc2VydmVyJzo6cmVnY2xhc3M7 CisKKy0tIFF1ZXJ5IG11c3Qgc3VjY2VlZCBhbmQgdXNlIHRhYmxlLWxldmVsIHNldHRpbmcgKHRy dWUpCitTRUxFQ1QgKiBGUk9NIGZ0X3NlcnZlciBPUkRFUiBCWSBpZDsKKworLS0gNC4gTmVnYXRp dmUgdGVzdHM6IGludmFsaWQgdmFsdWVzIG11c3QgYmUgcmVqZWN0ZWQKKworLS0gc3RyZWFtaW5n X2ZldGNoIGlzIGJvb2xlYW47IG5vbi1ib29sZWFuIHZhbHVlIG11c3QgRVJST1IKK1xzZXQgVkVS Qk9TSVRZIHRlcnNlCisKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGZ0X2ludmFsaWQgKGlkIGludCwg dmFsIHRleHQpCisgICAgU0VSVkVSIGZldGNoX3N0cmVhbV9zcnYKKyAgICBPUFRJT05TIChzY2hl bWFfbmFtZSAncHVibGljJywgdGFibGVfbmFtZSAnbG9jYWxfdGJsJywgc3RyZWFtaW5nX2ZldGNo ICd5ZXMnKTsgIC0tIEVSUk9SCisKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGZ0X2ludmFsaWQgKGlk IGludCwgdmFsIHRleHQpCisgICAgU0VSVkVSIGZldGNoX3N0cmVhbV9zcnYKKyAgICBPUFRJT05T IChzY2hlbWFfbmFtZSAncHVibGljJywgdGFibGVfbmFtZSAnbG9jYWxfdGJsJywgc3RyZWFtaW5n X2ZldGNoICcxJyk7ICAgIC0tIEVSUk9SCisKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGZ0X2ludmFs aWQgKGlkIGludCwgdmFsIHRleHQpCisgICAgU0VSVkVSIGZldGNoX3N0cmVhbV9zcnYKKyAgICBP UFRJT05TIChzY2hlbWFfbmFtZSAncHVibGljJywgdGFibGVfbmFtZSAnbG9jYWxfdGJsJywgc3Ry ZWFtaW5nX2ZldGNoICcnKTsgICAgIC0tIEVSUk9SCisKK0FMVEVSIFNFUlZFUiBmZXRjaF9zdHJl YW1fc3J2IE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ25vdGFib29sJyk7ICAgICAgICAg ICAgIC0tIEVSUk9SCisKK1xzZXQgVkVSQk9TSVRZIGRlZmF1bHQKKworLS0gNS4gQUxURVIgRk9S RUlHTiBUQUJMRTogYWRkLCBjaGFuZ2UsIGFuZCBkcm9wIHN0cmVhbWluZ19mZXRjaAorCitBTFRF UiBTRVJWRVIgZmV0Y2hfc3RyZWFtX3NydiBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICd0 cnVlJyk7CisKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGZ0X2FsdGVyX3Rlc3QgKGlkIGludCwgdmFs IHRleHQpCisgICAgU0VSVkVSIGZldGNoX3N0cmVhbV9zcnYKKyAgICBPUFRJT05TIChzY2hlbWFf bmFtZSAncHVibGljJywgdGFibGVfbmFtZSAnbG9jYWxfdGJsJyk7CisKKy0tIE5vIHRhYmxlLWxl dmVsIG9wdGlvbiB5ZXQKK1NFTEVDVCBmdHJlbGlkOjpyZWdjbGFzcywgZnRvcHRpb25zCitGUk9N IHBnX2ZvcmVpZ25fdGFibGUKK1dIRVJFIGZ0cmVsaWQgPSAnZnRfYWx0ZXJfdGVzdCc6OnJlZ2Ns YXNzOworCistLSBBREQgdGFibGUtbGV2ZWwgb3B0aW9uCitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0 X2FsdGVyX3Rlc3QgT1BUSU9OUyAoQUREIHN0cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsKK1NFTEVD VCBmdHJlbGlkOjpyZWdjbGFzcywgZnRvcHRpb25zCitGUk9NIHBnX2ZvcmVpZ25fdGFibGUKK1dI RVJFIGZ0cmVsaWQgPSAnZnRfYWx0ZXJfdGVzdCc6OnJlZ2NsYXNzOworCitTRUxFQ1QgKiBGUk9N IGZ0X2FsdGVyX3Rlc3QgT1JERVIgQlkgaWQ7CisKKy0tIFNFVCAoY2hhbmdlKSB0YWJsZS1sZXZl bCBvcHRpb24KK0FMVEVSIEZPUkVJR04gVEFCTEUgZnRfYWx0ZXJfdGVzdCBPUFRJT05TIChTRVQg c3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CitTRUxFQ1QgZnRyZWxpZDo6cmVnY2xhc3MsIGZ0b3B0 aW9ucworRlJPTSBwZ19mb3JlaWduX3RhYmxlCitXSEVSRSBmdHJlbGlkID0gJ2Z0X2FsdGVyX3Rl c3QnOjpyZWdjbGFzczsKKworU0VMRUNUICogRlJPTSBmdF9hbHRlcl90ZXN0IE9SREVSIEJZIGlk OworCistLSBEUk9QIHRhYmxlLWxldmVsIG9wdGlvbiAoZmFsbHMgYmFjayB0byBzZXJ2ZXItbGV2 ZWwpCitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0X2FsdGVyX3Rlc3QgT1BUSU9OUyAoRFJPUCBzdHJl YW1pbmdfZmV0Y2gpOworU0VMRUNUIGZ0cmVsaWQ6OnJlZ2NsYXNzLCBmdG9wdGlvbnMKK0ZST00g cGdfZm9yZWlnbl90YWJsZQorV0hFUkUgZnRyZWxpZCA9ICdmdF9hbHRlcl90ZXN0Jzo6cmVnY2xh c3M7CisKK1NFTEVDVCAqIEZST00gZnRfYWx0ZXJfdGVzdCBPUkRFUiBCWSBpZDsKKworRFJPUCBG T1JFSUdOIFRBQkxFIGZ0X2FsdGVyX3Rlc3Q7CisKKy0tIDYuIHN0cmVhbWluZ19mZXRjaCB3aXRo IG5vbi1kZWZhdWx0IGZldGNoX3NpemUgdmFsdWVzCistLSBVc2UgYSAxMi1yb3cgdGFibGUgc28g Y2h1bmsgYm91bmRhcmllcyBhcmUgZGlzdGluY3QgYW5kIHByZWRpY3RhYmxlOgorLS0gZmV0Y2hf c2l6ZT0xIGdpdmVzIDEyIHNpbmdsZS1yb3cgY2h1bmtzLCBmZXRjaF9zaXplPTUgZ2l2ZXMgY2h1 bmtzCistLSBvZiA1KzUrMiwgYW5kIGZldGNoX3NpemU9MTAwMCBwdXRzIGFsbCByb3dzIGluIGEg c2luZ2xlIGNodW5rLgorQ1JFQVRFIFRBQkxFIGxvY2FsX3RibF9sYXJnZSAoaWQgaW50LCB2YWwg dGV4dCk7CitJTlNFUlQgSU5UTyBsb2NhbF90YmxfbGFyZ2UgU0VMRUNUIGlkLCAndmFsJyB8fCBp ZCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMikgaWQ7CisKK0FMVEVSIFNFUlZFUiBmZXRjaF9z dHJlYW1fc3J2IE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsKKworLS0gZmV0 Y2hfc2l6ZSA9IDE6IGV2ZXJ5IHJvdyBpcyBpdHMgb3duIGxpYnBxIGNodW5rOyBleGVyY2lzZXMg dGhlIHBhdGgKKy0tIHdoZXJlIHBnZmR3X2dldF9uZXh0X3Jlc3VsdCBpcyBjYWxsZWQgb25jZSBw ZXIgcm93LgorQ1JFQVRFIEZPUkVJR04gVEFCTEUgZnRfZmV0Y2hzaXplIChpZCBpbnQsIHZhbCB0 ZXh0KQorICAgIFNFUlZFUiBmZXRjaF9zdHJlYW1fc3J2CisgICAgT1BUSU9OUyAoc2NoZW1hX25h bWUgJ3B1YmxpYycsIHRhYmxlX25hbWUgJ2xvY2FsX3RibF9sYXJnZScsIGZldGNoX3NpemUgJzEn KTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGZ0X2ZldGNoc2l6ZTsKK0RST1AgRk9SRUlHTiBUQUJM RSBmdF9mZXRjaHNpemU7CisKKy0tIGZldGNoX3NpemUgPSA1OiB0aHJlZSBjaHVua3Mgd2l0aCBh IHBhcnRpYWwgbGFzdCBjaHVuayAoNSs1KzIpOworLS0gdGhlIGZpbmFsIGNodW5rIGlzIHNtYWxs ZXIgdGhhbiBmZXRjaF9zaXplLgorQ1JFQVRFIEZPUkVJR04gVEFCTEUgZnRfZmV0Y2hzaXplIChp ZCBpbnQsIHZhbCB0ZXh0KQorICAgIFNFUlZFUiBmZXRjaF9zdHJlYW1fc3J2CisgICAgT1BUSU9O UyAoc2NoZW1hX25hbWUgJ3B1YmxpYycsIHRhYmxlX25hbWUgJ2xvY2FsX3RibF9sYXJnZScsIGZl dGNoX3NpemUgJzUnKTsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGZ0X2ZldGNoc2l6ZTsKK1NFTEVD VCAqIEZST00gZnRfZmV0Y2hzaXplIE9SREVSIEJZIGlkOworRFJPUCBGT1JFSUdOIFRBQkxFIGZ0 X2ZldGNoc2l6ZTsKKworLS0gZmV0Y2hfc2l6ZSBleGNlZWRzIHRoZSB0YWJsZSByb3cgY291bnQ6 IGFsbCByb3dzIGFycml2ZSBpbiBvbmUgY2h1bmsKKy0tIGZvbGxvd2VkIGltbWVkaWF0ZWx5IGJ5 IHRoZSBmaW5hbCBlbXB0eSBQR1JFU19UVVBMRVNfT0sgcmVzdWx0LgorQ1JFQVRFIEZPUkVJR04g VEFCTEUgZnRfZmV0Y2hzaXplIChpZCBpbnQsIHZhbCB0ZXh0KQorICAgIFNFUlZFUiBmZXRjaF9z dHJlYW1fc3J2CisgICAgT1BUSU9OUyAoc2NoZW1hX25hbWUgJ3B1YmxpYycsIHRhYmxlX25hbWUg J2xvY2FsX3RibF9sYXJnZScsIGZldGNoX3NpemUgJzEwMDAnKTsKK1NFTEVDVCBjb3VudCgqKSBG Uk9NIGZ0X2ZldGNoc2l6ZTsKK0RST1AgRk9SRUlHTiBUQUJMRSBmdF9mZXRjaHNpemU7CisKK0RS T1AgVEFCTEUgbG9jYWxfdGJsX2xhcmdlOworCistLSA3LiBzdHJlYW1pbmdfZmV0Y2ggY29tYmlu ZWQgd2l0aCB1c2VfcmVtb3RlX2VzdGltYXRlCistLSB1c2VfcmVtb3RlX2VzdGltYXRlIGlzc3Vl cyBhIHJlbW90ZSBFWFBMQUlOIHRvIHNpemUgdGhlIHNjYW4gYXQgcGxhbgorLS0gdGltZTsgc3Ry ZWFtaW5nX2ZldGNoIG11c3Qgbm90IGludGVyZmVyZSB3aXRoIHRoYXQgRVhQTEFJTiBjYWxsLgor QUxURVIgU0VSVkVSIGZldGNoX3N0cmVhbV9zcnYgT1BUSU9OUyAoQUREIHVzZV9yZW1vdGVfZXN0 aW1hdGUgJ3RydWUnKTsKKworQ1JFQVRFIEZPUkVJR04gVEFCTEUgZnRfcmVtb3RlX2VzdCAoaWQg aW50LCB2YWwgdGV4dCkKKyAgICBTRVJWRVIgZmV0Y2hfc3RyZWFtX3NydgorICAgIE9QVElPTlMg KHNjaGVtYV9uYW1lICdwdWJsaWMnLCB0YWJsZV9uYW1lICdsb2NhbF90YmwnKTsKKworLS0gVmVy aWZ5IGJvdGggb3B0aW9ucyBhcmUgYWN0aXZlIGF0IHRoZSBzZXJ2ZXIgbGV2ZWwuCitTRUxFQ1Qg c3J2bmFtZSwgb3B0aW9uX25hbWUsIG9wdGlvbl92YWx1ZQorRlJPTSBwZ19mb3JlaWduX3NlcnZl ciwKKyAgICAgTEFURVJBTCBwZ19vcHRpb25zX3RvX3RhYmxlKHNydm9wdGlvbnMpCitXSEVSRSBz cnZuYW1lID0gJ2ZldGNoX3N0cmVhbV9zcnYnCisgIEFORCBvcHRpb25fbmFtZSBJTiAoJ3N0cmVh bWluZ19mZXRjaCcsICd1c2VfcmVtb3RlX2VzdGltYXRlJykKK09SREVSIEJZIG9wdGlvbl9uYW1l OworCistLSBCb3RoIG9wdGlvbnMgYWN0aXZlOiB1c2VfcmVtb3RlX2VzdGltYXRlIHNpemVzIHRo ZSBzY2FuIHJlbW90ZWx5IHZpYQorLS0gRVhQTEFJTiwgdGhlbiBzdHJlYW1pbmdfZmV0Y2ggZmV0 Y2hlcyByb3dzIHdpdGhvdXQgYSBjdXJzb3IuCitTRUxFQ1QgKiBGUk9NIGZ0X3JlbW90ZV9lc3Qg T1JERVIgQlkgaWQ7CisKK0FMVEVSIFNFUlZFUiBmZXRjaF9zdHJlYW1fc3J2IE9QVElPTlMgKERS T1AgdXNlX3JlbW90ZV9lc3RpbWF0ZSk7CisKKy0tIDkuIHN0cmVhbWluZ19mZXRjaCBjaGVjayB0 aGUgb3V0cHV0IGluIGV4cGxhaW4gd2l0aCB2ZXJib3NlCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpIFNFTEVDVCAqIEZST00gZnRfcmVtb3RlX2VzdCBPUkRFUiBCWSBpZDsKKworLS0gQ2xl YW51cAorRFJPUCBGT1JFSUdOIFRBQkxFIGZ0X3JlbW90ZV9lc3Q7CitEUk9QIFVTRVIgTUFQUElO RyBGT1IgQ1VSUkVOVF9VU0VSIFNFUlZFUiBmZXRjaF9zdHJlYW1fc3J2OworRFJPUCBTRVJWRVIg ZmV0Y2hfc3RyZWFtX3NydiBDQVNDQURFOworRFJPUCBUQUJMRSBsb2NhbF90Ymw7CiAtLSA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CiAtLSB0ZXN0IHN1YnNjcmlwdGlvbgogLS0gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpAQCAtMzA3LDYgKzU0 NCwzMiBAQCBTRUxFQ1QgQ09VTlQoKikgRlJPTSBmdDEgdDE7CiBTRUxFQ1QgKiBGUk9NIGZ0MSB0 MSBXSEVSRSB0MS5jMyBJTiAoU0VMRUNUIGMzIEZST00gZnQyIHQyIFdIRVJFIGMxIDw9IDEwKSBP UkRFUiBCWSBjMTsKIC0tIHN1YnF1ZXJ5K01BWAogU0VMRUNUICogRlJPTSBmdDEgdDEgV0hFUkUg dDEuYzMgPSAoU0VMRUNUIE1BWChjMykgRlJPTSBmdDIgdDIpIE9SREVSIEJZIGMxOworLS0gVGVz dCBpbiBzdHJlYW1pbmdfZmV0Y2ggbW9kZSB0byBjb3ZlciBwcm9jZXNzX3F1ZXJ5X3BhcmFtcyBw YXRoCistLSB3aXRoIG9ubHkgb25lIHRhYmxlIHVzaW5nIHN0cmVhbWluZ19mZXRjaAorQUxURVIg Rk9SRUlHTiBUQUJMRSBmdDEgT1BUSU9OUyAoc3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CitTRUxF Q1QgKiBGUk9NIGZ0MSB0MSBXSEVSRSB0MS5jMyA9IChTRUxFQ1QgTUFYKGMzKSBGUk9NIGZ0MiB0 MikgT1JERVIgQlkgYzE7CistLSBUZXN0IGpvaW4gd2l0aCBvbmx5IG9uZSB0YWJsZSB1c2luZyBz dHJlYW1pbmdfZmV0Y2ggYXQgYSB0aW1lCitTRUxFQ1QgdDEuYzEsIHQyLiJDIDEiIEZST00gZnQy IHQxIEpPSU4gIlMgMSIuIlQgMSIgdDIgT04gKHQxLmMxID0gdDIuIkMgMSIpIE9GRlNFVCAxMDAg TElNSVQgMTA7CitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBPUFRJT05TIChTRVQgc3RyZWFtaW5n X2ZldGNoICdmYWxzZScpOworQUxURVIgRk9SRUlHTiBUQUJMRSBmdDIgT1BUSU9OUyAoc3RyZWFt aW5nX2ZldGNoICd0cnVlJyk7CitTRUxFQ1QgdDEuYzEsIHQyLiJDIDEiIEZST00gZnQyIHQxIEpP SU4gIlMgMSIuIlQgMSIgdDIgT04gKHQxLmMxID0gdDIuIkMgMSIpIE9GRlNFVCAxMDAgTElNSVQg MTA7CistLSB3aXRoIGJvdGggdGhlIHRhYmxlcyB1c2luZyBzdHJlYW1pbmdfZmV0Y2gKK0FMVEVS IEZPUkVJR04gVEFCTEUgZnQxIE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsK K1NFTEVDVCAqIEZST00gZnQxIHQxIFdIRVJFIHQxLmMzID0gKFNFTEVDVCBNQVgoYzMpIEZST00g ZnQyIHQyKSBPUkRFUiBCWSBjMTsKKy0tIFRlc3Qgam9pbiB3aXRoIGJvdGggdGhlIHRhYmxlcyB1 c2luZyBzdHJlYW1pbmdfZmV0Y2gKK1NFTEVDVCB0MS5jMSwgdDIuIkMgMSIgRlJPTSBmdDIgdDEg Sk9JTiAiUyAxIi4iVCAxIiB0MiBPTiAodDEuYzEgPSB0Mi4iQyAxIikgT0ZGU0VUIDEwMCBMSU1J VCAxMDsKK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQxIE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0 Y2ggJ2ZhbHNlJyk7CitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MiBPUFRJT05TIChTRVQgc3RyZWFt aW5nX2ZldGNoICdmYWxzZScpOworLS0gc3RyZWFtaW5nX2ZldGNoOiB2ZXJpZnkgY29ycmVjdCBy ZXN1bHRzIHdoZW4gcGFyYWxsZWwtZnJpZW5kbHkgc2V0dGluZ3MKKy0tIGFyZSBhY3RpdmUgbG9j YWxseS4gIFdpdGggbm8gY3Vyc29yIG9uIHRoZSByZW1vdGUgc2lkZSwgdGhlIHJlbW90ZQorLS0g cGxhbm5lciBpcyBmcmVlIHRvIGNob29zZSBhIHBhcmFsbGVsIHBsYW47IHJlc3VsdHMgbXVzdCBt YXRjaCBleGFjdGx5LgorQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgT1BUSU9OUyAoU0VUIHN0cmVh bWluZ19mZXRjaCAndHJ1ZScpOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIg PSAyOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VMRUNUIGNvdW50 KCopIEZST00gZnQxOworUkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKK1JF U0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0 MSBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICdmYWxzZScpOwogLS0gdXNlZCBpbiBDVEUK IFdJVEggdDEgQVMgKFNFTEVDVCAqIEZST00gZnQxIFdIRVJFIGMxIDw9IDEwKSBTRUxFQ1QgdDIu YzEsIHQyLmMyLCB0Mi5jMywgdDIuYzQgRlJPTSB0MSwgZnQyIHQyIFdIRVJFIHQxLmMxID0gdDIu YzEgT1JERVIgQlkgdDEuYzE7CiAtLSBmaXhlZCB2YWx1ZXMKQEAgLTM4Niw2ICs2NDksNTQgQEAg RVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogICBXSEVSRSBhLmMyID0gNiBBTkQgYi5jMSA9 IGEuYzEgQU5EIGEuYzggPSAnZm9vJyBBTkQgYi5jNyA9IHVwcGVyKGEuYzcpOwogU0VMRUNUICog RlJPTSBmdDIgYSwgZnQyIGIKIFdIRVJFIGEuYzIgPSA2IEFORCBiLmMxID0gYS5jMSBBTkQgYS5j OCA9ICdmb28nIEFORCBiLmM3ID0gdXBwZXIoYS5jNyk7CisKKy0tIFRlc3QgaW4gc3RyZWFtaW5n X2ZldGNoIG1vZGUgZm9yIHJlc2NhbiBwYXRoCitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MiBPUFRJ T05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICd0cnVlJyk7CitTRUxFQ1QgKiBGUk9NIGZ0MiBhLCBm dDIgYgorV0hFUkUgYS5jMiA9IDYgQU5EIGIuYzEgPSBhLmMxIEFORCBhLmM4ID0gJ2ZvbycgQU5E IGIuYzcgPSB1cHBlcihhLmM3KTsKKy0tIFRlc3QgZm9yIHN0cmVhbWluZ19mZXRjaCBjb3Zlcmlu ZyByZXNjYW5zIGFuZCB0aHJlZSBhY3RpdmUgY3Vyc29ycworU0VMRUNUIGNvdW50KCopIEZST00g ZnQyIGEsIGZ0MiBiLCBmdDIgYworV0hFUkUgYS5jMiA9IDYgQU5EIGIuYzEgPSBhLmMxIEFORCBj LmMxID0gYi5jMSBBTkQgYS5jOCA9ICdmb28nCitBTkQgYi5jNyA9IHVwcGVyKGEuYzcpOworQUxU RVIgRk9SRUlHTiBUQUJMRSBmdDIgT1BUSU9OUyAoU0VUIHN0cmVhbWluZ19mZXRjaCAnZmFsc2Un KTsKKworLS0gVGVzdCBpbiBzdHJlYW1pbmdfZmV0Y2ggbW9kZSBmb3IgaW50ZXJsZWF2ZWQgc2Nh bnMuCistLSBUaGUgbm9uLXNoaXBwYWJsZSBjb25kaXRpb24gYS5jOCA9ICdmb28nICh1c2VyX2Vu dW0gaXMgbm90IGEgYnVpbHQtaW4gdHlwZSkKKy0tIHByZXZlbnRzIGZ1bGwgam9pbiBwdXNoZG93 biwgc28gdGhlIHBsYW5uZXIgaXNzdWVzIHR3byBzZXBhcmF0ZSBGRFcgc2NhbnMKKy0tIHRoYXQg c2hhcmUgdGhlIHNhbWUgbG9vcGJhY2sgY29ubmVjdGlvbi4gIFdoZW4gdGhlIGlubmVyIHNjYW4n cyBpbml0X3NjYW4KKy0tIGZpcmVzIGl0IGNhbGxzIHNhdmVfdG9fdHVwbGVzdG9yZSB0byBkcmFp biB0aGUgb3V0ZXIgc2NhbidzIHVucmVhZCByb3dzLgorIEFMVEVSIEZPUkVJR04gVEFCTEUgZnQy IE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsKKworLS0gU2hvdyB0aGUgcGxh bjogZnQyIG11c3QgYXBwZWFyIGFzIHR3byBpbmRlcGVuZGVudCBGb3JlaWduU2NhbiBub2Rlcywg bm90CistLSBhIHNpbmdsZSBwdXNoZWQtZG93biByZW1vdGUgam9pbi4KK0VYUExBSU4gKFZFUkJP U0UsIENPU1RTIE9GRikKK1NFTEVDVCAqIEZST00gZnQyIGEsIGZ0MiBiCitXSEVSRSBhLmMyID0g NiBBTkQgYi5jMSA9IGEuYzEgQU5EIGEuYzggPSAnZm9vJyBBTkQgYi5jNyA9IHVwcGVyKGEuYzcp OworCistLSBWZXJpZnkgcmVzdWx0cyB3aXRoIGN1cnNvciBwYXRoLgorQUxURVIgRk9SRUlHTiBU QUJMRSBmdDIgT1BUSU9OUyAoU0VUIHN0cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsKK1NFTEVDVCAq IEZST00gZnQyIGEsIGZ0MiBiCitXSEVSRSBhLmMyID0gNiBBTkQgYi5jMSA9IGEuYzEgQU5EIGEu YzggPSAnZm9vJyBBTkQgYi5jNyA9IHVwcGVyKGEuYzcpOworQUxURVIgRk9SRUlHTiBUQUJMRSBm dDIgT1BUSU9OUyAoU0VUIHN0cmVhbWluZ19mZXRjaCAndHJ1ZScpOworCistLSBUaHJlZS13YXkg c2VsZi1qb2luIHRvIHRlc3Qgc3RyZWFtaW5nX2ZldGNoCitFWFBMQUlOIChWRVJCT1NFLCBDT1NU UyBPRkYpCitTRUxFQ1QgY291bnQoKikgRlJPTSBmdDIgYSwgZnQyIGIsIGZ0MiBjCitXSEVSRSBh LmMyID0gNiBBTkQgYi5jMSA9IGEuYzEgQU5EIGMuYzEgPSBiLmMxCitBTkQgYS5jOCA9ICdmb28n IEFORCBiLmM3ID0gdXBwZXIoYS5jNyk7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIGZ0MiBhLCBm dDIgYiwgZnQyIGMKK1dIRVJFIGEuYzIgPSA2IEFORCBiLmMxID0gYS5jMSBBTkQgYy5jMSA9IGIu YzEKK0FORCBhLmM4ID0gJ2ZvbycgQU5EIGIuYzcgPSB1cHBlcihhLmM3KTsKKworLS0gb3V0cHV0 IG1hdGNoZXMgaW4gY3Vyc29yIG1vZGUKK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQyIE9QVElPTlMg KFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ2ZhbHNlJyk7CitTRUxFQ1QgY291bnQoKikgRlJPTSBmdDIg YSwgZnQyIGIsIGZ0MiBjCitXSEVSRSBhLmMyID0gNiBBTkQgYi5jMSA9IGEuYzEgQU5EIGMuYzEg PSBiLmMxCitBTkQgYS5jOCA9ICdmb28nIEFORCBiLmM3ID0gdXBwZXIoYS5jNyk7CitBTFRFUiBG T1JFSUdOIFRBQkxFIGZ0MiBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICdmYWxzZScpOwor CisKIC0tIGJ1ZyBiZWZvcmUgOS4zLjUgZHVlIHRvIHNsb3BweSBoYW5kbGluZyBvZiByZW1vdGUt ZXN0aW1hdGUgcGFyYW1ldGVycwogU0VMRUNUICogRlJPTSBmdDEgV0hFUkUgYzEgPSBBTlkgKEFS UkFZKFNFTEVDVCBjMSBGUk9NIGZ0MiBXSEVSRSBjMSA8IDUpKTsKIFNFTEVDVCAqIEZST00gZnQy IFdIRVJFIGMxID0gQU5ZIChBUlJBWShTRUxFQ1QgYzEgRlJPTSBmdDEgV0hFUkUgYzEgPCA1KSk7 CkBAIC02NzYsNiArOTg3LDE2IEBAIFNFTEVDVCB0MS5jMSBGUk9NIGZ0MSB0MSBXSEVSRSBFWElT VFMgKFNFTEVDVCAxIEZST00gZnQyIHQyIFdIRVJFIHQxLmMxID0gdDIuYzEpCiBFWFBMQUlOIChW RVJCT1NFLCBDT1NUUyBPRkYpCiBTRUxFQ1QgdDEuYzEgRlJPTSBmdDEgdDEgV0hFUkUgTk9UIEVY SVNUUyAoU0VMRUNUIDEgRlJPTSBmdDIgdDIgV0hFUkUgdDEuYzEgPSB0Mi5jMikgT1JERVIgQlkg dDEuYzEgT0ZGU0VUIDEwMCBMSU1JVCAxMDsKIFNFTEVDVCB0MS5jMSBGUk9NIGZ0MSB0MSBXSEVS RSBOT1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9NIGZ0MiB0MiBXSEVSRSB0MS5jMSA9IHQyLmMyKSBP UkRFUiBCWSB0MS5jMSBPRkZTRVQgMTAwIExJTUlUIDEwOworCistLSBUZXN0IGluIHN0cmVhbWlu Z19mZXRjaCBtb2RlIHRvIGNvdmVyIHRoZSBwYXRjaCBmb3IgdHdvIHNpbXVsdGFuZW91cyBhY3Rp dmUgY3Vyc29ycworLS0gd2l0aCBvbmx5IG9uZSB0YWJsZSB1c2luZyBzdHJlYW1pbmdfZmV0Y2gK K0FMVEVSIEZPUkVJR04gVEFCTEUgZnQxIE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ3Ry dWUnKTsKK1NFTEVDVCB0MS5jMSBGUk9NIGZ0MSB0MSBXSEVSRSBOT1QgRVhJU1RTIChTRUxFQ1Qg MSBGUk9NIGZ0MiB0MiBXSEVSRSB0MS5jMSA9IHQyLmMyKSBPUkRFUiBCWSB0MS5jMSBPRkZTRVQg MTAwIExJTUlUIDEwOworLS0gd2l0aCBib3RoIHRoZSB0YWJsZXMgdXNpbmcgc3RyZWFtaW5nX2Zl dGNoCitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MiBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNo ICd0cnVlJyk7CitTRUxFQ1QgdDEuYzEgRlJPTSBmdDEgdDEgV0hFUkUgTk9UIEVYSVNUUyAoU0VM RUNUIDEgRlJPTSBmdDIgdDIgV0hFUkUgdDEuYzEgPSB0Mi5jMikgT1JERVIgQlkgdDEuYzEgT0ZG U0VUIDEwMCBMSU1JVCAxMDsKK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQxIE9QVElPTlMgKFNFVCBz dHJlYW1pbmdfZmV0Y2ggJ2ZhbHNlJyk7CitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MiBPUFRJT05T IChTRVQgc3RyZWFtaW5nX2ZldGNoICdmYWxzZScpOwogLS0gQ1JPU1MgSk9JTiBjYW4gYmUgcHVz aGVkIGRvd24KIEVYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9GRikKIFNFTEVDVCB0MS5jMSwgdDIu YzEgRlJPTSBmdDEgdDEgQ1JPU1MgSk9JTiBmdDIgdDIgT1JERVIgQlkgdDEuYzEsIHQyLmMxIE9G RlNFVCAxMDAgTElNSVQgMTA7CkBAIC02ODQsNiArMTAwNSwxMiBAQCBTRUxFQ1QgdDEuYzEsIHQy LmMxIEZST00gZnQxIHQxIENST1NTIEpPSU4gZnQyIHQyIE9SREVSIEJZIHQxLmMxLCB0Mi5jMSBP RkZTRVQgMQogRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQogU0VMRUNUIHQxLmMxLCB0Mi5j MSBGUk9NIGZ0NSB0MSBKT0lOIGZ0NiB0MiBPTiAodDEuYzEgPSB0Mi5jMSkgT1JERVIgQlkgdDEu YzEsIHQyLmMxIE9GRlNFVCAxMDAgTElNSVQgMTA7CiBTRUxFQ1QgdDEuYzEsIHQyLmMxIEZST00g ZnQ1IHQxIEpPSU4gZnQ2IHQyIE9OICh0MS5jMSA9IHQyLmMxKSBPUkRFUiBCWSB0MS5jMSwgdDIu YzEgT0ZGU0VUIDEwMCBMSU1JVCAxMDsKKy0tIFRlc3QgaW4gc3RyZWFtaW5nX2ZldGNoIG1vZGUg dG8gY292ZXIgdGhlIGNhc2Ugd2l0aCBtdWx0aXBsZSBjdXJzb3JzIGJ1dCBvbmx5IG9uZSBhY3Rp dmUgY3Vyc29yIGF0IGEgdGltZQorQUxURVIgRk9SRUlHTiBUQUJMRSBmdDUgT1BUSU9OUyAoc3Ry ZWFtaW5nX2ZldGNoICd0cnVlJyk7CitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0NiBPUFRJT05TIChz dHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsKK1NFTEVDVCB0MS5jMSwgdDIuYzEgRlJPTSBmdDUgdDEg Sk9JTiBmdDYgdDIgT04gKHQxLmMxID0gdDIuYzEpIE9SREVSIEJZIHQxLmMxLCB0Mi5jMSBPRkZT RVQgMTAwIExJTUlUIDEwOworQUxURVIgRk9SRUlHTiBUQUJMRSBmdDUgT1BUSU9OUyAoU0VUIHN0 cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsKK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQ2IE9QVElPTlMg KFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ2ZhbHNlJyk7CiAtLSB1bnNhZmUgam9pbiBjb25kaXRpb25z IChjOCBoYXMgYSBVRFQpLCBub3QgcHVzaGVkIGRvd24uIFByYWN0aWNhbGx5IGEgQ1JPU1MKIC0t IEpPSU4gc2luY2UgYzggaW4gYm90aCB0YWJsZXMgaGFzIHNhbWUgdmFsdWUuCiBFWFBMQUlOIChW RVJCT1NFLCBDT1NUUyBPRkYpCkBAIC04MzEsNiArMTE1OCwzMSBAQCBleHBsYWluICh2ZXJib3Nl LCBjb3N0cyBvZmYpCiBzZWxlY3QgY291bnQoYzYpLCBzdW0oYzEpLCBhdmcoYzEpLCBtaW4oYzIp LCBtYXgoYzEpLCBzdGRkZXYoYzIpLCBzdW0oYzEpICogKHJhbmRvbSgpIDw9IDEpOjppbnQgYXMg c3VtMiBmcm9tIGZ0MSB3aGVyZSBjMiA8IDUgZ3JvdXAgYnkgYzIgb3JkZXIgYnkgMSwgMiBsaW1p dCAxOwogc2VsZWN0IGNvdW50KGM2KSwgc3VtKGMxKSwgYXZnKGMxKSwgbWluKGMyKSwgbWF4KGMx KSwgc3RkZGV2KGMyKSwgc3VtKGMxKSAqIChyYW5kb20oKSA8PSAxKTo6aW50IGFzIHN1bTIgZnJv bSBmdDEgd2hlcmUgYzIgPCA1IGdyb3VwIGJ5IGMyIG9yZGVyIGJ5IDEsIDIgbGltaXQgMTsKIAor LS0gVGVzdCB3aXRoIGxpbWl0IGFuZCBzdHJlYW1pbmdfZmV0Y2gKK0FMVEVSIEZPUkVJR04gVEFC TEUgZnQxIE9QVElPTlMgKFNFVCBzdHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsKK3NlbGVjdCBjb3Vu dChjNiksIHN1bShjMSksIGF2ZyhjMSksIG1pbihjMiksIG1heChjMSksIHN0ZGRldihjMiksIHN1 bShjMSkgKiAocmFuZG9tKCkgPD0gMSk6OmludCBhcyBzdW0yIGZyb20gZnQxIHdoZXJlIGMyIDwg NSBncm91cCBieSBjMiBvcmRlciBieSAxLCAyIGxpbWl0IDE7CitBTFRFUiBGT1JFSUdOIFRBQkxF IGZ0MSBPUFRJT05TIChTRVQgc3RyZWFtaW5nX2ZldGNoICdmYWxzZScpOworCistLSBUZXN0IExJ TUlUIHN0b3BwaW5nIGJlZm9yZSBhbGwgdHVwbGVzIGFyZSBjb25zdW1lZC4KKy0tIFRoZSBXSEVS RSBjbGF1c2UgcmVmZXJlbmNlcyBjOCAoYSB1c2VyLWRlZmluZWQgdHlwZSB0aGF0IGNhbm5vdCBi ZQorLS0gcHVzaGVkIHRvIHRoZSByZW1vdGUpLCBwcmV2ZW50aW5nIExJTUlUIHB1c2hkb3duLiAg VGhlIHJlbW90ZQorLS0gdGhlcmVmb3JlIHN0cmVhbXMgYWxsIHJvd3MsIGFuZCBlbmRfc2NhbiBt dXN0IGRpc2NhcmQgdGhlIGluLWZsaWdodAorLS0gZGF0YSB3aGVuIHRoZSBsb2NhbCBleGVjdXRv ciBzdG9wcyBlYXJseS4KK0FMVEVSIEZPUkVJR04gVEFCTEUgZnQxIE9QVElPTlMgKFNFVCBzdHJl YW1pbmdfZmV0Y2ggJ3RydWUnKTsKKy0tIExJTUlUIDUgd2l0aCBkZWZhdWx0IGZldGNoX3NpemU9 MTAwOiBzdG9wcyB3ZWxsIHdpdGhpbiB0aGUgZmlyc3QKKy0tIGNodW5rOyBlbmRfc2NhbiBkaXNj YXJkcyB+OTk1IHJvd3Mgc3RpbGwgaW4gZmxpZ2h0IG9uIHRoZSBjb25uZWN0aW9uLgorU0VMRUNU IGMxIEZST00gZnQxIFdIRVJFIGM4ID0gJ2ZvbycgT1JERVIgQlkgYzEgTElNSVQgNTsKKy0tIFZl cmlmeSB0aGUgY29ubmVjdGlvbiBpcyBzdGlsbCB1c2FibGUgYWZ0ZXIgdGhlIGVhcmx5IHN0b3Au CitTRUxFQ1QgY291bnQoKikgRlJPTSBmdDE7CistLSBmZXRjaF9zaXplPTEwLCBMSU1JVD0xNTog Y29uc3VtZXMgb25lIGZ1bGwgY2h1bmsgKHJvd3MgMS0xMCkgcGx1cyA1CistLSByb3dzIGZyb20g YSBzZWNvbmQgY2h1bmsgKHJvd3MgMTEtMTUpOyBlbmRfc2NhbiB0aGVuIGRpc2NhcmRzIHRoZQor LS0gcmVtYWluZGVyIG9mIHRoYXQgY2h1bmsgYW5kIGFsbCBzdWJzZXF1ZW50IGluLWZsaWdodCBj aHVua3MuCitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBPUFRJT05TIChmZXRjaF9zaXplICcxMCcp OworU0VMRUNUIGMxIEZST00gZnQxIFdIRVJFIGM4ID0gJ2ZvbycgT1JERVIgQlkgYzEgTElNSVQg MTU7CitTRUxFQ1QgY291bnQoKikgRlJPTSBmdDE7CitBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBP UFRJT05TIChEUk9QIGZldGNoX3NpemUpOworQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgT1BUSU9O UyAoU0VUIHN0cmVhbWluZ19mZXRjaCAnZmFsc2UnKTsKKwogLS0gQWdncmVnYXRlIGlzIG5vdCBw dXNoZWQgZG93biBhcyBhZ2dyZWdhdGlvbiBjb250YWlucyByYW5kb20oKQogZXhwbGFpbiAodmVy Ym9zZSwgY29zdHMgb2ZmKQogc2VsZWN0IHN1bShjMSAqIChyYW5kb20oKSA8PSAxKTo6aW50KSBh cyBzdW0sIGF2ZyhjMSkgZnJvbSBmdDE7CkBAIC0zNTQyLDYgKzM4OTQsNDEgQEAgU0VMRUNUIDEg RlJPTSBmdDEgTElNSVQgMTsgICAgLS0gc2hvdWxkIGZhaWwKIFxzZXQgVkVSQk9TSVRZIGRlZmF1 bHQKIENPTU1JVDsKIAorLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gc3RyZWFtaW5nX2ZldGNoOiBlcnJvciBy ZWNvdmVyeSB3aGVuIHRoZSByZW1vdGUgYmFja2VuZCB0ZXJtaW5hdGVzCistLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CistLSBFbmFibGUgc3RyZWFtaW5nX2ZldGNoIHNvIGluaXRfc2NhbiBpcyBleGVyY2lzZWQgb24g cmVjb25uZWN0LgorQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgT1BUSU9OUyAoU0VUIHN0cmVhbWlu Z19mZXRjaCAndHJ1ZScpOworCistLSBFc3RhYmxpc2ggYSBmcmVzaCByZW1vdGUgY29ubmVjdGlv bi4KK1NFTEVDVCAxIEZST00gZnQxIExJTUlUIDE7CisKKy0tIFRlcm1pbmF0ZSB0aGUgcmVtb3Rl IGJhY2tlbmQgYW5kIHdhaXQgZm9yIHRoZSB0ZXJtaW5hdGlvbiB0byBjb21wbGV0ZS4KK0RPICQk IEJFR0lOCitQRVJGT1JNIHBnX3Rlcm1pbmF0ZV9iYWNrZW5kKHBpZCwgMTgwMDAwKSBGUk9NIHBn X3N0YXRfYWN0aXZpdHkKKwlXSEVSRSBhcHBsaWNhdGlvbl9uYW1lID0gJ2Zkd19yZXRyeV9jaGVj ayc7CitFTkQgJCQ7CisKKy0tIEFmdGVyIHRoZSBjb25uZWN0aW9uIGlzIGJyb2tlbiwgYSBzdHJl YW1pbmdfZmV0Y2ggcXVlcnkgc2hvdWxkIGRldGVjdAorLS0gdGhlIGJyb2tlbiBjb25uZWN0aW9u LCByZWVzdGFibGlzaCBpdCwgYW5kIHN1Y2NlZWQuCitCRUdJTjsKK1NFTEVDVCBjMSBGUk9NIGZ0 MSBPUkRFUiBCWSBjMSBMSU1JVCAzOworCistLSBJbnNpZGUgYSBzdWJ0cmFuc2FjdGlvbiB0aGUg YnJva2VuIGNvbm5lY3Rpb24gbXVzdCBub3QgYmUgc2lsZW50bHkKKy0tIHJldHJpZWQ7IHRoZSBx dWVyeSBzaG91bGQgZmFpbC4KK0RPICQkIEJFR0lOCitQRVJGT1JNIHBnX3Rlcm1pbmF0ZV9iYWNr ZW5kKHBpZCwgMTgwMDAwKSBGUk9NIHBnX3N0YXRfYWN0aXZpdHkKKwlXSEVSRSBhcHBsaWNhdGlv bl9uYW1lID0gJ2Zkd19yZXRyeV9jaGVjayc7CitFTkQgJCQ7CitTQVZFUE9JTlQgczI7CistLSBU aGUgdGV4dCBvZiB0aGUgZXJyb3IgbWlnaHQgdmFyeSBhY3Jvc3MgcGxhdGZvcm1zLCBzbyBvbmx5 IHNob3cgU1FMU1RBVEUuCitcc2V0IFZFUkJPU0lUWSBzcWxzdGF0ZQorU0VMRUNUIDEgRlJPTSBm dDEgTElNSVQgMTsgICAgLS0gc2hvdWxkIGZhaWwKK1xzZXQgVkVSQk9TSVRZIGRlZmF1bHQKK0NP TU1JVDsKKworQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgT1BUSU9OUyAoU0VUIHN0cmVhbWluZ19m ZXRjaCAnZmFsc2UnKTsKKwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIHRlc3QgY29ubmVj dGlvbiBpbnZhbGlkYXRpb24gY2FzZXMgYW5kIHBvc3RncmVzX2Zkd19nZXRfY29ubmVjdGlvbnMg ZnVuY3Rpb24KIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkBAIC00MTAwLDYgKzQ0ODcsMjkgQEAg U0VMRUNUICogRlJPTSBsb2NhbF90YmwsIGFzeW5jX3B0IFdIRVJFIGxvY2FsX3RibC5hID0gYXN5 bmNfcHQuYSBBTkQgbG9jYWxfdGJsLmMKIEFMVEVSIEZPUkVJR04gVEFCTEUgYXN5bmNfcDEgT1BU SU9OUyAoRFJPUCB1c2VfcmVtb3RlX2VzdGltYXRlKTsKIEFMVEVSIEZPUkVJR04gVEFCTEUgYXN5 bmNfcDIgT1BUSU9OUyAoRFJPUCB1c2VfcmVtb3RlX2VzdGltYXRlKTsKIAorLS0gVGVzdCBhc3lu Y19jYXBhYmxlIHdpdGggc3RyZWFtaW5nX2ZldGNoCistLSBObyBzdHJlYW1pbmdfZmV0Y2ggYXQg c2VydmVyLCB0aGlzIHNob3VsZCBnaXZlIEFzeW5jIEZvcmVpZ24gU2NhbiBmb3IgZm9yIGFzeW5j X3AxIGFuZCBhc3luY19wMgorRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNUICog RlJPTSBhc3luY19wdDsKKworLS0gc3RyZWFtaW5nX2ZldGNoID0gZmFsc2UgYXQgbG9vcGJhY2sg c2VydmVyLCB0aGlzIHNob3VsZCBzdGlsbCBnaXZlIEFzeW5jIEZvcmVpZ24gU2NhbiBmb3IgYXN5 bmNfcDEgYW5kIGFzeW5jX3AyCitBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoc3RyZWFt aW5nX2ZldGNoICdmYWxzZScpOworRVhQTEFJTiAoVkVSQk9TRSwgQ09TVFMgT0ZGKQorU0VMRUNU ICogRlJPTSBhc3luY19wdDsKKworLS0gc3RyZWFtaW5nX2ZldGNoID0gZmFsc2UgYXQgbG9vcGJh Y2sgc2VydmVyIGJ1dCB0cnVlIGZvciBhc3luY19wMSwgdGhpcyBzaG91bGQgZ2l2ZSBGb3JlaWdu IFNjYW4gZm9yIGFzeW5jX3AxCitBTFRFUiBGT1JFSUdOIFRBQkxFIGFzeW5jX3AxIE9QVElPTlMg KEFERCBzdHJlYW1pbmdfZmV0Y2ggJ3RydWUnKTsKK0VYUExBSU4gKFZFUkJPU0UsIENPU1RTIE9G RikKK1NFTEVDVCAqIEZST00gYXN5bmNfcHQ7CisKKy0tIHN0cmVhbWluZ19mZXRjaCA9IHRydWUg YXQgbG9vcGJhY2syIHNlcnZlciwgdGhpcyBzaG91bGQgZ2l2ZSBGb3JlaWduIFNjYW4gZm9yIGFz eW5jX3AyIGFsc28KK0FMVEVSIFNFUlZFUiBsb29wYmFjazIgT1BUSU9OUyAoc3RyZWFtaW5nX2Zl dGNoICd0cnVlJyk7CitFWFBMQUlOIChWRVJCT1NFLCBDT1NUUyBPRkYpCitTRUxFQ1QgKiBGUk9N IGFzeW5jX3B0OworCitBTFRFUiBGT1JFSUdOIFRBQkxFIGFzeW5jX3AxIE9QVElPTlMgKERST1Ag c3RyZWFtaW5nX2ZldGNoKTsKK0FMVEVSIFNFUlZFUiBsb29wYmFjayBPUFRJT05TIChEUk9QIHN0 cmVhbWluZ19mZXRjaCk7CitBTFRFUiBTRVJWRVIgbG9vcGJhY2syIE9QVElPTlMgKERST1Agc3Ry ZWFtaW5nX2ZldGNoKTsKIERST1AgVEFCTEUgbG9jYWxfdGJsOwogRFJPUCBJTkRFWCBiYXNlX3Ri bDFfaWR4OwogRFJPUCBJTkRFWCBiYXNlX3RibDJfaWR4OwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3Bvc3RncmVzLWZkdy5zZ21sIGIvZG9jL3NyYy9zZ21sL3Bvc3RncmVzLWZkdy5zZ21sCmlu ZGV4IGI4MWYzMzczMmZiLi44NDYzMGRhODIxMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Bv c3RncmVzLWZkdy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wb3N0Z3Jlcy1mZHcuc2dtbApAQCAt NDc2LDYgKzQ3NiwyMSBAQCBPUFRJT05TIChBREQgcGFzc3dvcmRfcmVxdWlyZWQgJ2ZhbHNlJyk7 CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlzdGVu dHJ5PgorICAgICA8dGVybT48bGl0ZXJhbD5zdHJlYW1pbmdfZmV0Y2g8L2xpdGVyYWw+ICg8dHlw ZT5ib29sZWFuPC90eXBlPik8L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFNwZWNpZmllcyB3aGV0aGVyIHRvIGZldGNoIHJvd3MgZnJvbSB0aGUgcmVtb3RlIHNl cnZlciB3aXRob3V0CisgICAgICAgdXNpbmcgYSBjdXJzb3IuIFdoZW4gZW5hYmxlZCwgdGhlIHJl bW90ZSBzZXJ2ZXIgaXMgZnJlZSB0byB1c2UKKyAgICAgICBwYXJhbGxlbCBxdWVyeSBwbGFucywg d2hpY2ggY2FuIHNpZ25pZmljYW50bHkgaW1wcm92ZSBwZXJmb3JtYW5jZQorICAgICAgIGZvciBs YXJnZSBzY2Fucy4gV2hlbiBhIHNlY29uZCBzY2FuIGJlZ2lucyBvbiB0aGUgc2FtZSBjb25uZWN0 aW9uCisgICAgICAgd2hpbGUgb25lIGlzIGFscmVhZHkgaW4gcHJvZ3Jlc3MsIHRoZSByZW1haW5p bmcgcm93cyBvZiB0aGUgZmlyc3Qgc2NhbgorICAgICAgIGFyZSBidWZmZXJlZCBsb2NhbGx5ICh1 c2luZyB3b3JrX21lbSkgYW5kIHJlcGxheWVkIG9uIGRlbWFuZC4KKyAgICAgICBBc3luY2hyb25v dXMgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgaW4gdGhpcyBtb2RlIGFuZCBpcyBkaXNhYmxl ZAorICAgICAgIGF1dG9tYXRpY2FsbHkuIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPmZhbHNlPC9s aXRlcmFsPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3Rl bnRyeT4KICAgIDwvdmFyaWFibGVsaXN0PgogCiAgIDwvc2VjdDM+Ci0tIAoyLjM5LjUgKEFwcGxl IEdpdC0xNTQpCgo= --0000000000004844f506523d6ce4 Content-Type: application/octet-stream; name="v10-0001-postgres_fdw-Rename-cursor_exists-flag-to-scan_i.patch" Content-Disposition: attachment; filename="v10-0001-postgres_fdw-Rename-cursor_exists-flag-to-scan_i.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mpdxk39i0 RnJvbSBlMzBkZmUyZTBiNTA2MjQyN2FlNjQ3Y2RjNjNhNWRiMzhhY2YyZDY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSYWZpYSBTYWJpaCA8cmFmaWEuc2FiaWhAY3liZXJ0ZWMuYXQ+ CkRhdGU6IFR1ZSwgNSBNYXkgMjAyNiAxMjo0OTozNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDEvMl0gcG9zdGdyZXNfZmR3OiBSZW5hbWUgY3Vyc29yX2V4aXN0cyBmbGFnIHRvCiBzY2FuX2lu X3Byb2dyZXNzCgpUaGUgY3Vyc29yX2V4aXN0cyBmbGFnIGluIFBnRmR3U2NhblN0YXRlIHdhcyBu YW1lZCBzcGVjaWZpY2FsbHkgZm9yIHRoZQpjdXJzb3ItYmFzZWQgdHVwbGUtZmV0Y2hpbmcgcGF0 aC4gIEEgZm9sbG93LXVwIHBhdGNoIGludHJvZHVjZXMgYQpjdXJzb3ItZnJlZSBmZXRjaGluZyBt ZWNoYW5pc20sIG1ha2luZyB0aGUgb2xkIG5hbWUgbWlzbGVhZGluZyBpbiB0aGF0CmNvbnRleHQu ICBSZW5hbWUgaXQgdG8gc2Nhbl9pbl9wcm9ncmVzcyB0byByZWZsZWN0IGl0cyBhY3R1YWwgcHVy cG9zZToKdHJhY2tpbmcgd2hldGhlciBhIHNjYW4gaGFzIGJlZW4gc3RhcnRlZCwgcmVnYXJkbGVz cyBvZiB0aGUgZmV0Y2hpbmcKbWV0aG9kIGluIHVzZS4KLS0tCiBjb250cmliL3Bvc3RncmVzX2Zk dy9wb3N0Z3Jlc19mZHcuYyB8IDIyICsrKysrKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFu Z2VkLCAxMSBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250 cmliL3Bvc3RncmVzX2Zkdy9wb3N0Z3Jlc19mZHcuYyBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L3Bv c3RncmVzX2Zkdy5jCmluZGV4IGM0MmNiNjkwYzdiLi4zNTBkYzE5ZjI5YSAxMDA2NDQKLS0tIGEv Y29udHJpYi9wb3N0Z3Jlc19mZHcvcG9zdGdyZXNfZmR3LmMKKysrIGIvY29udHJpYi9wb3N0Z3Jl c19mZHcvcG9zdGdyZXNfZmR3LmMKQEAgLTE1NSw3ICsxNTUsNyBAQCB0eXBlZGVmIHN0cnVjdCBQ Z0Zkd1NjYW5TdGF0ZQogCVBHY29ubgkgICAqY29ubjsJCQkvKiBjb25uZWN0aW9uIGZvciB0aGUg c2NhbiAqLwogCVBnRmR3Q29ublN0YXRlICpjb25uX3N0YXRlOyAvKiBleHRyYSBwZXItY29ubmVj dGlvbiBzdGF0ZSAqLwogCXVuc2lnbmVkIGludCBjdXJzb3JfbnVtYmVyOyAvKiBxdWFzaS11bmlx dWUgSUQgZm9yIG15IGN1cnNvciAqLwotCWJvb2wJCWN1cnNvcl9leGlzdHM7CS8qIGhhdmUgd2Ug Y3JlYXRlZCB0aGUgY3Vyc29yPyAqLworCWJvb2wJCXNjYW5faW5fcHJvZ3Jlc3M7CS8qIGlzIHRo ZXJlIGEgc2NhbiBpbiBwcm9ncmVzcz8gKi8KIAlpbnQJCQludW1QYXJhbXM7CQkvKiBudW1iZXIg b2YgcGFyYW1ldGVycyBwYXNzZWQgdG8gcXVlcnkgKi8KIAlGbWdySW5mbyAgICpwYXJhbV9mbGlu Zm87CS8qIG91dHB1dCBjb252ZXJzaW9uIGZ1bmN0aW9ucyBmb3IgdGhlbSAqLwogCUxpc3QJICAg KnBhcmFtX2V4cHJzOwkvKiBleGVjdXRhYmxlIGV4cHJlc3Npb25zIGZvciBwYXJhbSB2YWx1ZXMg Ki8KQEAgLTE3NTgsNyArMTc1OCw3IEBAIHBvc3RncmVzQmVnaW5Gb3JlaWduU2NhbihGb3JlaWdu U2NhblN0YXRlICpub2RlLCBpbnQgZWZsYWdzKQogCiAJLyogQXNzaWduIGEgdW5pcXVlIElEIGZv ciBteSBjdXJzb3IgKi8KIAlmc3N0YXRlLT5jdXJzb3JfbnVtYmVyID0gR2V0Q3Vyc29yTnVtYmVy KGZzc3RhdGUtPmNvbm4pOwotCWZzc3RhdGUtPmN1cnNvcl9leGlzdHMgPSBmYWxzZTsKKwlmc3N0 YXRlLT5zY2FuX2luX3Byb2dyZXNzID0gZmFsc2U7CiAKIAkvKiBHZXQgcHJpdmF0ZSBpbmZvIGNy ZWF0ZWQgYnkgcGxhbm5lciBmdW5jdGlvbnMuICovCiAJZnNzdGF0ZS0+cXVlcnkgPSBzdHJWYWwo bGlzdF9udGgoZnNwbGFuLT5mZHdfcHJpdmF0ZSwKQEAgLTE4MjcsNyArMTgyNyw3IEBAIHBvc3Rn cmVzSXRlcmF0ZUZvcmVpZ25TY2FuKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUpCiAJICogYWxyZWFk eSBjcmVhdGVkIHRoZSBjdXJzb3IgYmVmb3JlIHdlIGdldCBoZXJlLCBldmVuIGlmIHRoaXMgaXMg dGhlCiAJICogZmlyc3QgY2FsbCBhZnRlciBCZWdpbiBvciBSZVNjYW4uCiAJICovCi0JaWYgKCFm c3N0YXRlLT5jdXJzb3JfZXhpc3RzKQorCWlmICghZnNzdGF0ZS0+c2Nhbl9pbl9wcm9ncmVzcykK IAkJY3JlYXRlX2N1cnNvcihub2RlKTsKIAogCS8qCkBAIC0xODY3LDggKzE4NjcsOCBAQCBwb3N0 Z3Jlc1JlU2NhbkZvcmVpZ25TY2FuKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUpCiAJY2hhcgkJc3Fs WzY0XTsKIAlQR3Jlc3VsdCAgICpyZXM7CiAKLQkvKiBJZiB3ZSBoYXZlbid0IGNyZWF0ZWQgdGhl IGN1cnNvciB5ZXQsIG5vdGhpbmcgdG8gZG8uICovCi0JaWYgKCFmc3N0YXRlLT5jdXJzb3JfZXhp c3RzKQorCS8qIElmIG5vIHNjYW4gaXMgaW4gcHJvZ3Jlc3MsIG5vdGhpbmcgdG8gZG8uICovCisJ aWYgKCFmc3N0YXRlLT5zY2FuX2luX3Byb2dyZXNzKQogCQlyZXR1cm47CiAKIAkvKgpAQCAtMTg5 NCw3ICsxODk0LDcgQEAgcG9zdGdyZXNSZVNjYW5Gb3JlaWduU2NhbihGb3JlaWduU2NhblN0YXRl ICpub2RlKQogCSAqLwogCWlmIChub2RlLT5zcy5wcy5jaGdQYXJhbSAhPSBOVUxMKQogCXsKLQkJ ZnNzdGF0ZS0+Y3Vyc29yX2V4aXN0cyA9IGZhbHNlOworCQlmc3N0YXRlLT5zY2FuX2luX3Byb2dy ZXNzID0gZmFsc2U7CiAJCXNucHJpbnRmKHNxbCwgc2l6ZW9mKHNxbCksICJDTE9TRSBjJXUiLAog CQkJCSBmc3N0YXRlLT5jdXJzb3JfbnVtYmVyKTsKIAl9CkBAIC0xOTA1LDcgKzE5MDUsNyBAQCBw b3N0Z3Jlc1JlU2NhbkZvcmVpZ25TY2FuKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUpCiAJCQkJCSBm c3N0YXRlLT5jdXJzb3JfbnVtYmVyKTsKIAkJZWxzZQogCQl7Ci0JCQlmc3N0YXRlLT5jdXJzb3Jf ZXhpc3RzID0gZmFsc2U7CisJCQlmc3N0YXRlLT5zY2FuX2luX3Byb2dyZXNzID0gZmFsc2U7CiAJ CQlzbnByaW50ZihzcWwsIHNpemVvZihzcWwpLCAiQ0xPU0UgYyV1IiwKIAkJCQkJIGZzc3RhdGUt PmN1cnNvcl9udW1iZXIpOwogCQl9CkBAIC0xOTQ0LDcgKzE5NDQsNyBAQCBwb3N0Z3Jlc0VuZEZv cmVpZ25TY2FuKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUpCiAJCXJldHVybjsKIAogCS8qIENsb3Nl IHRoZSBjdXJzb3IgaWYgb3BlbiwgdG8gcHJldmVudCBhY2N1bXVsYXRpb24gb2YgY3Vyc29ycyAq LwotCWlmIChmc3N0YXRlLT5jdXJzb3JfZXhpc3RzKQorCWlmIChmc3N0YXRlLT5zY2FuX2luX3By b2dyZXNzKQogCQljbG9zZV9jdXJzb3IoZnNzdGF0ZS0+Y29ubiwgZnNzdGF0ZS0+Y3Vyc29yX251 bWJlciwKIAkJCQkJIGZzc3RhdGUtPmNvbm5fc3RhdGUpOwogCkBAIC0zOTk0LDggKzM5OTQsOCBA QCBjcmVhdGVfY3Vyc29yKEZvcmVpZ25TY2FuU3RhdGUgKm5vZGUpCiAJCXBnZmR3X3JlcG9ydF9l cnJvcihyZXMsIGNvbm4sIGZzc3RhdGUtPnF1ZXJ5KTsKIAlQUWNsZWFyKHJlcyk7CiAKLQkvKiBN YXJrIHRoZSBjdXJzb3IgYXMgY3JlYXRlZCwgYW5kIHNob3cgbm8gdHVwbGVzIGhhdmUgYmVlbiBy ZXRyaWV2ZWQgKi8KLQlmc3N0YXRlLT5jdXJzb3JfZXhpc3RzID0gdHJ1ZTsKKwkvKiBNYXJrIHRo ZSBzY2FuIGFzIHN0YXJ0ZWQsIGFuZCBzaG93IG5vIHR1cGxlcyBoYXZlIGJlZW4gcmV0cmlldmVk ICovCisJZnNzdGF0ZS0+c2Nhbl9pbl9wcm9ncmVzcyA9IHRydWU7CiAJZnNzdGF0ZS0+dHVwbGVz ID0gTlVMTDsKIAlmc3N0YXRlLT5udW1fdHVwbGVzID0gMDsKIAlmc3N0YXRlLT5uZXh0X3R1cGxl ID0gMDsKQEAgLTgzMzIsNyArODMzMiw3IEBAIGZldGNoX21vcmVfZGF0YV9iZWdpbihBc3luY1Jl cXVlc3QgKmFyZXEpCiAJQXNzZXJ0KCFmc3N0YXRlLT5jb25uX3N0YXRlLT5wZW5kaW5nQXJlcSk7 CiAKIAkvKiBDcmVhdGUgdGhlIGN1cnNvciBzeW5jaHJvbm91c2x5LiAqLwotCWlmICghZnNzdGF0 ZS0+Y3Vyc29yX2V4aXN0cykKKwlpZiAoIWZzc3RhdGUtPnNjYW5faW5fcHJvZ3Jlc3MpCiAJCWNy ZWF0ZV9jdXJzb3Iobm9kZSk7CiAKIAkvKiBXZSB3aWxsIHNlbmQgdGhpcyBxdWVyeSwgYnV0IG5v dCB3YWl0IGZvciB0aGUgcmVzcG9uc2UuICovCi0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --0000000000004844f506523d6ce4--