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.94.2) (envelope-from ) id 1tU6SP-00E8lJ-WB for pgsql-hackers@arkaria.postgresql.org; Sat, 04 Jan 2025 15:52:59 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tU6SN-00BGjI-Fx for pgsql-hackers@arkaria.postgresql.org; Sat, 04 Jan 2025 15:52:55 +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.94.2) (envelope-from ) id 1tTWmM-004Z6l-Aa for pgsql-hackers@lists.postgresql.org; Fri, 03 Jan 2025 01:47:11 +0000 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tTWmI-001oRE-2i for pgsql-hackers@lists.postgresql.org; Fri, 03 Jan 2025 01:47:08 +0000 Received: by mail-pj1-x1032.google.com with SMTP id 98e67ed59e1d1-2efd81c7ca4so13340836a91.2 for ; Thu, 02 Jan 2025 17:47:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1735868826; x=1736473626; darn=lists.postgresql.org; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=uQja7ncUIXaVB64+3qINBWdgeCz1JK0VozWwplH5mtg=; b=WBC+dorPE9x9f0Kc3BKYSvOFzpKDc8F6H5Z7KQudvMCijTkXG58Ym1HZQUv7vpx5kS TplHttib/gl0bv8kbpt0KM1HQuFkd8tnpYwP4e139rhdsZd1b4C0C8HNe/buNWVTe5j6 aQ7xzGAv7P/s9/c7OhRwqYLRW0tw8gfWEJ/ZuigGEi898qR4NKkvNL8ETl0YdmkjZfnp U+cdnTc/GhPzYa6wUEX2i0mImUTSjVSOA3jljXKfVd2mDnmzWwmT8MjcZR8GH6SQ1Syu JZE62V/fhJtXuWd8Ddau4KbhqtHKFsKrF3yvPAHjFEtYJmY2sbYLjRwKFNN5LAH4j1ct AhMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1735868826; x=1736473626; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=uQja7ncUIXaVB64+3qINBWdgeCz1JK0VozWwplH5mtg=; b=jb6u3vfqOTMNwNEyr6RGeOAPB0d/GTkvjFGOXfp3kCjMqlFgjVJZ2zdXjwXQBlGqKk CTUxMHfwAdfsKwqf35e6a27MPXOGqnnK9uyx689h3iSp9gb9IOLHY771MmiECAC0Dv5J AMKzP4uXbyPMbv8+DeEupqw2FaHqggtHKQVtRIIjnfWfg+PTSsncCWunhBLXLpVCGxEc Mq1ZHIVltrBq+Br3Ng4zKPsLtLtDEY7lNnWlKXljbfQPRPFzKEDVbRnaslj/qP6sDNoY UoL6myqDLBGT+iebXS72ytjDPxJsZmam/KedrKl7ya2Jz1hxNX6ZAuKfL9TTKcE5xlhw OYFQ== X-Forwarded-Encrypted: i=1; AJvYcCU4mFG0IdnpeSBzTPDpjs1OTv7EnkEt5MeczfXLw8vjOfaLI8zmdWrUduIlEjVeg1ImfTJUav4oKops8fmG@lists.postgresql.org X-Gm-Message-State: AOJu0YwCBThT9TUKHE5CdBLC3jlU92v7YTiuMek5Kh0KtjZkv3eZDe9x UcoUP/4C2Kb1N1JCGVYkfxsDC64ToPlOpeRdOsdRo3SNKhbxDbc/xcQ14idCMgE= X-Gm-Gg: ASbGncvXYImfD3vWaOYchpqZBqyZ9VnC1QjGUO7N7x5s8+Rc3Dtc0tT979v2B7lakMw FK2rkCLhYttxs5YprRyCW3JjrT34oMrni3X55m9pfQUXOpkVD0S0T921qIunQLcdVU2LtK4PemI CSl+zi4jzMRPmF6HPYstkUwwuFrHHS1gYnb9KyNd7ro2gDIbW+G66xAWv1rdHCrLsz8bpnRTPZz baUkziyI5Jmtp3pXM+O4/HLh2V7SfxtWs0ScJWmnXgmG2Q+w/91Gf8taLk3QTpXqi7UkQ== X-Google-Smtp-Source: AGHT+IEZK2osDhRNvJIRn1ISg5H1NdRvjt+nN159JVegr5ccqfd3A0cvWPtzasx0JV1drKp69gqvrQ== X-Received: by 2002:a17:90b:54cb:b0:2ee:ba84:5cac with SMTP id 98e67ed59e1d1-2f452dfd2eamr72360171a91.7.1735868824907; Thu, 02 Jan 2025 17:47:04 -0800 (PST) Received: from [192.168.2.139] ([50.39.255.79]) by smtp.googlemail.com with ESMTPSA id 98e67ed59e1d1-2f4477ec3acsm29951219a91.25.2025.01.02.17.47.02 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 02 Jan 2025 17:47:03 -0800 (PST) Content-Type: multipart/mixed; boundary="------------QJ7G02LVkbGy9abPg7beeymq" Message-ID: <8f995a4c-64e3-40cd-bfed-06b54a280d36@illuminatedcomputing.com> Date: Thu, 2 Jan 2025 17:47:02 -0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time To: Peter Eisentraut Cc: jian he , PostgreSQL Hackers , vignesh C References: <081aa43c-3a97-4bd5-a498-ba02e0a7570d@illuminatedcomputing.com> <54390149-11d6-4f52-bbe8-f69832ceb3bd@eisentraut.org> <9b7cb814-c78c-489f-85b2-32be4398647f@illuminatedcomputing.com> <95c6d49b-7d60-4ad0-820c-e00ae1b2a3d4@illuminatedcomputing.com> <57ea0668-5205-426e-b934-efc89f2186c2@illuminatedcomputing.com> <6dc196d4-8853-49d7-8dd3-e391058451c1@eisentraut.org> <66e47fc0-77b7-4763-9b70-5c0b7ff15f21@eisentraut.org> <333d3886-b737-45c3-93f4-594c96bb405d@eisentraut.org> <6a2247d9-461d-4b0a-b692-f0f3c0fab27f@eisentraut.org> Content-Language: en-US From: Paul Jungwirth In-Reply-To: <6a2247d9-461d-4b0a-b692-f0f3c0fab27f@eisentraut.org> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------QJ7G02LVkbGy9abPg7beeymq Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 12/10/24 06:40, Peter Eisentraut wrote: > On 07.12.24 20:29, Paul Jungwirth wrote: >> These five patches all look good to me. >> >> Note that my tests already include a section for REPLICA IDENTITY FULL, which passed. But the >> subscriber was using a SeqScan to look up tuples to update. >> >> Here are the steps (mostly just because it was confusing for me at first): First in >> FindUsableIndexForReplicaIdentityFull, we would call IsIndexUsableForReplicaIdentityFull, get back >> false, and decide there was no index to use. Then in FindReplTupleInLocalRel, localidxoid was 0, >> so we woudln't call IsIndexUsableForReplicaIdentityFull at all. >> >> After applying the five patches, I can see that we choose the index and call >> IsIndexUsableForReplicaIdentityFull from both sites. This should make applying changes a lot faster. > > I have committed these.  I will continue with reviewing v45-0002 and following now. Here is a rebase for the remaining patches. There are some small changes, but almost all the work was fixing the final PERIOD patch (mostly to work with the new cataloged NOT NULL code). The most important patches are the first two, since they fix bugs in the already-committed FK code. I'd love to see FOR PORTION OF get into v18 also, but I'm not sure how much work remains there. It don't think I've received feedback from a committer yet. It felt ready to commit to me, but after the FK fixes here I don't like how I'm getting both an operator and a proc for intersection, in different places. It seems like I should be able to make do with just one in all places. But since intersect is neither a search operator nor an ordering operator, it can't appear in pg_amop, so you can't look it up by stratnum. Maybe the intersect support func should return an operator oid, not a proc oid, and then I can use pg_operator.oprcode to call its proc directly. If that sounds good I'll make the changes. Rebased to e28033fe1a. -- Paul ~{:-) pj@illuminatedcomputing.com --------------QJ7G02LVkbGy9abPg7beeymq Content-Type: text/x-patch; charset=UTF-8; name="v46-0001-Add-without_portion-GiST-support-proc.patch" Content-Disposition: attachment; filename="v46-0001-Add-without_portion-GiST-support-proc.patch" Content-Transfer-Encoding: base64 RnJvbSA1YzlkNjM4OWIzMGZmY2JiOTQwNDI5YzAyMzdhOWMxOWM3Njg2NTkzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4 MDAKU3ViamVjdDogW1BBVENIIHY0NiAxLzhdIEFkZCB3aXRob3V0X3BvcnRpb24gR2lTVCBz dXBwb3J0IHByb2MKClRoaXMgbmV3IHN1cHBvcnQgcHJvYyBpcyB1c2VkIGJ5IFJFU1RSSUNU IGZvcmVpZ24ga2V5cyB0byBjb21wdXRlIHRoZQpwb3J0aW9uIG9mIGhpc3RvcnkgdGhhdCB3 YXMgbG9zdCB3aGVuIHRoZSBhcHBsaWNhdGlvbi10aW1lIGJvdW5kcyBvZiBhCnJlY29yZCBj aGFuZ2UuIFRoaXMgY29tbWl0IGRlZmluZXMgaW1wbGVtZW50YXRpb25zIGZvciByYW5nZXMg YW5kCm11bHRpcmFuZ2VzLgoKVGhlIHByb2NzIHJldHVybiBTRVRPRiB0aGVpciBpbnB1dCB0 eXBlIGFuZCB3b3JrIGxpa2UgbWludXMgYnV0IGRvbid0CmZhaWwgb24gc3BsaXRzLiBUaGUg cmVzdWx0cyBuZXZlciBjb250YWluIGVtcHR5IGVsZW1lbnRzLgoKV2hlbiB3ZSBpbXBsZW1l bnQgRk9SIFBPUlRJT04gT0YsIHdlIHdpbGwgdXNlIHRoZXNlIHByb2NzIHNpbWlhcmx5OiB0 bwpjb21wdXRlIGxlZnRvdmVycyB0aGF0IHdlcmVuJ3QgdG91Y2hlZCBieSB0aGUgVVBEQVRF L0RFTEVURS4KCkF1dGhvcjogUGF1bCBKdW5nd2lydGgKLS0tCiBjb250cmliL2Jsb29tL2Js dmFsaWRhdGUuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9n aXN0LnNnbWwgICAgICAgICAgICAgICAgICAgICAgICB8IDEwNyArKysrKysrKysrLQogZG9j L3NyYy9zZ21sL3hpbmRleC5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgICA4ICstCiBz cmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlkYXRlLmMgICAgICAgfCAgIDggKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFsaWRhdGUuYyAgICAgICAgICB8ICAxMiAr LQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMgICAgICAgIHwgIDI1 ICstLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgICAgICAgIHwg ICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICAgICAgICAg fCAgIDkgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFsaWRhdGUuYyAgICAg ICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWxpZGF0ZS5jICAg ICAgIHwgICA4ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvbXVsdGlyYW5nZXR5cGVzLmMg ICAgICAgfCAgNzEgKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVz LmMgICAgICAgICAgICB8IDE2NiArKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2Fj Y2Vzcy9hbXZhbGlkYXRlLmggICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1ZGUv YWNjZXNzL2dpc3QuaCAgICAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICA4ICsKIHNyYy9pbmNs dWRlL3V0aWxzL3JhbmdldHlwZXMuaCAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5vdXQgfCAxMTYgKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0ICAgICAgfCAg NTQgKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsICAg ICAgfCAgMjIgKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbCAgICAg ICAgICAgfCAgMTAgKysKIDIxIGZpbGVzIGNoYW5nZWQsIDYxMyBpbnNlcnRpb25zKCspLCA0 MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb250cmliL2Jsb29tL2JsdmFsaWRhdGUu YyBiL2NvbnRyaWIvYmxvb20vYmx2YWxpZGF0ZS5jCmluZGV4IGFjYWY5ZDJiZTQ4Li4wZWZk NTFmMmUzZSAxMDA2NDQKLS0tIGEvY29udHJpYi9ibG9vbS9ibHZhbGlkYXRlLmMKKysrIGIv Y29udHJpYi9ibG9vbS9ibHZhbGlkYXRlLmMKQEAgLTEwMyw3ICsxMDMsNyBAQCBibHZhbGlk YXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJ CXsKIAkJCWNhc2UgQkxPT01fSEFTSF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwKKwkJCQlvayA9IGNo ZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2Us IGZhbHNlLAogCQkJCQkJCQkJCQkxLCAxLCBvcGNrZXl0eXBlKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgQkxPT01fT1BUSU9OU19QUk9DOgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dp c3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwKaW5kZXggNjM4ZDkxMmRjMmQuLjFm YmRkZjFiZmIwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9naXN0LnNnbWwKQEAgLTI2Niw3ICsyNjYsNyBAQCBDUkVBVEUgSU5ERVgg T04gbXlfdGFibGUgVVNJTkcgR0lTVCAobXlfaW5ldF9jb2x1bW4gaW5ldF9vcHMpOwogCiAg PHBhcmE+CiAgICBUaGVyZSBhcmUgZml2ZSBtZXRob2RzIHRoYXQgYW4gaW5kZXggb3BlcmF0 b3IgY2xhc3MgZm9yCi0gICA8YWNyb255bT5HaVNUPC9hY3JvbnltPiBtdXN0IHByb3ZpZGUs IGFuZCBzZXZlbiB0aGF0IGFyZSBvcHRpb25hbC4KKyAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9u eW0+IG11c3QgcHJvdmlkZSwgYW5kIGVpZ2h0IHRoYXQgYXJlIG9wdGlvbmFsLgogICAgQ29y cmVjdG5lc3Mgb2YgdGhlIGluZGV4IGlzIGVuc3VyZWQKICAgIGJ5IHByb3BlciBpbXBsZW1l bnRhdGlvbiBvZiB0aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1bmN0aW9uPiwgPGZ1bmN0aW9uPmNv bnNpc3RlbnQ8L2Z1bmN0aW9uPgogICAgYW5kIDxmdW5jdGlvbj51bmlvbjwvZnVuY3Rpb24+ IG1ldGhvZHMsIHdoaWxlIGVmZmljaWVuY3kgKHNpemUgYW5kIHNwZWVkKSBvZiB0aGUKQEAg LTI5NCw2ICsyOTQsOSBAQCBDUkVBVEUgSU5ERVggT04gbXlfdGFibGUgVVNJTkcgR0lTVCAo bXlfaW5ldF9jb2x1bW4gaW5ldF9vcHMpOwogICAgPGZpbGVuYW1lPnNyYy9pbmNsdWRlL2Fj Y2Vzcy9zdHJhdG51bS5oPC9maWxlbmFtZT4pIGludG8gc3RyYXRlZ3kgbnVtYmVycwogICAg dXNlZCBieSB0aGUgb3BlcmF0b3IgY2xhc3MuICBUaGlzIGxldHMgdGhlIGNvcmUgY29kZSBs b29rIHVwIG9wZXJhdG9ycyBmb3IKICAgIHRlbXBvcmFsIGNvbnN0cmFpbnQgaW5kZXhlcy4K KyAgIFRoZSBvcHRpb25hbCB0aGlydGVlbnRoIG1ldGhvZCA8ZnVuY3Rpb24+d2l0aG91dF9w b3J0aW9uPC9mdW5jdGlvbj4gaXMgdXNlZCBieQorICAgPGxpdGVyYWw+UkVTVFJJQ1Q8L2xp dGVyYWw+IGZvcmVpZ24ga2V5cyB0byBjb21wdXRlIHRoZSBwb3J0aW9uIG9mIGhpc3RvcnkK KyAgIHRoYXQgd2FzIGxvc3QuCiAgPC9wYXJhPgogCiAgPHZhcmlhYmxlbGlzdD4KQEAgLTEy MzUsNiArMTIzOCwxMDggQEAgbXlfc3RyYXRudW0oUEdfRlVOQ1RJT05fQVJHUykKICAgICAg IDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICA8 dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48ZnVuY3Rpb24+d2l0aG91dF9wb3J0aW9uPC9m dW5jdGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAg IEdpdmVuIHR3byB2YWx1ZXMgb2YgdGhpcyBvcGNsYXNzLCBpdCBzdWJ0cmFjdHMgdGhlIHNl Y29uZCBmb3IgdGhlIGZpcnN0CisgICAgICAgYW5kIHJldHVybnMgYW4gYXJyYXkgb2YgdGhl IHJlc3VsdHMuCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGlz IHVzZWQgYnkgdGVtcG9yYWwgZm9yZWlnbiBrZXlzIHRvIGNvbXB1dGUgdGhlIHBhcnQKKyAg ICAgICBvZiBoaXN0b3J5IHRoYXQgd2FzIGxvc3QgYnkgYW4gdXBkYXRlLgorICAgICAgPC9w YXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgPGFjcm9ueW0+U1FMPC9hY3Jvbnlt PiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29rIGxpa2UKKyAgICAgICB0 aGlzICh1c2luZyA8bGl0ZXJhbD5teV9yYW5nZV93aXRob3V0X3BvcnRpb248L2xpdGVyYWw+ IGFzIGFuIGV4YW1wbGUpOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiBteV9yYW5nZV93aXRob3V0X3BvcnRpb24oYW55cmFuZ2UsIGFueXJhbmdl KQorUkVUVVJOUyBhbnlhcnJheQorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMg U1RSSUNUOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgIDxw YXJhPgorICAgICAgICBUaGUgbWF0Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQg dGhlbiBmb2xsb3cgdGhpcyBleGFtcGxlOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitEYXR1bQor bXlfcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgdHlw ZWRlZiBzdHJ1Y3QgeworICAgICAgICBSYW5nZVR5cGUgICpyc1syXTsKKyAgICAgICAgaW50 ICAgICAgICAgbjsKKyAgICB9IHJhbmdlX3dpdGhvdXRfcG9ydGlvbl9mY3R4OworCisgICAg RnVuY0NhbGxDb250ZXh0ICpmdW5jY3R4OworICAgIHJhbmdlX3dpdGhvdXRfcG9ydGlvbl9m Y3R4ICpmY3R4OworICAgIE1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKKworICAgIC8qIHN0 dWZmIGRvbmUgb25seSBvbiB0aGUgZmlyc3QgY2FsbCBvZiB0aGUgZnVuY3Rpb24gKi8KKyAg ICBpZiAoU1JGX0lTX0ZJUlNUQ0FMTCgpKQorICAgIHsKKyAgICAgICAgUmFuZ2VUeXBlICAg ICAgICpyMTsKKyAgICAgICAgUmFuZ2VUeXBlICAgICAgICpyMjsKKyAgICAgICAgT2lkICAg ICAgICAgICAgICBybmd0eXBpZDsKKyAgICAgICAgVHlwZUNhY2hlRW50cnkgICp0eXBjYWNo ZTsKKworICAgICAgICAvKiBjcmVhdGUgYSBmdW5jdGlvbiBjb250ZXh0IGZvciBjcm9zcy1j YWxsIHBlcnNpc3RlbmNlICovCisgICAgICAgIGZ1bmNjdHggPSBTUkZfRklSU1RDQUxMX0lO SVQoKTsKKworICAgICAgICAvKgorICAgICAgICAgKiBzd2l0Y2ggdG8gbWVtb3J5IGNvbnRl eHQgYXBwcm9wcmlhdGUgZm9yIG11bHRpcGxlIGZ1bmN0aW9uIGNhbGxzCisgICAgICAgICAq LworICAgICAgICBvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGZ1bmNjdHgt Jmd0O211bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKyAgICAgICAgcjEgPSBQR19HRVRBUkdf UkFOR0VfUCgwKTsKKyAgICAgICAgcjIgPSBQR19HRVRBUkdfUkFOR0VfUCgxKTsKKworICAg ICAgICAvKiBEaWZmZXJlbnQgdHlwZXMgc2hvdWxkIGJlIHByZXZlbnRlZCBieSBBTllSQU5H RSBtYXRjaGluZyBydWxlcyAqLworICAgICAgICBpZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAh PSBSYW5nZVR5cGVHZXRPaWQocjIpKQorICAgICAgICAgICAgZWxvZyhFUlJPUiwgInJhbmdl IHR5cGVzIGRvIG5vdCBtYXRjaCIpOworCisgICAgICAgIC8qIGFsbG9jYXRlIG1lbW9yeSBm b3IgdXNlciBjb250ZXh0ICovCisgICAgICAgIGZjdHggPSAocmFuZ2Vfd2l0aG91dF9wb3J0 aW9uX2ZjdHggKikgcGFsbG9jKHNpemVvZihyYW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCkp OworCisgICAgICAgIC8qCisgICAgICAgICAqIEluaXRpYWxpemUgc3RhdGUuCisgICAgICAg ICAqIFdlIGNhbid0IHN0b3JlIHRoZSByYW5nZSB0eXBjYWNoZSBpbiBmbl9leHRyYSBiZWNh dXNlIHRoZSBjYWxsZXIKKyAgICAgICAgICogdXNlcyB0aGF0IGZvciB0aGUgU1JGIHN0YXRl LgorICAgICAgICAgKi8KKyAgICAgICAgcm5ndHlwaWQgPSBSYW5nZVR5cGVHZXRPaWQocjEp OworICAgICAgICB0eXBjYWNoZSA9IGxvb2t1cF90eXBlX2NhY2hlKHJuZ3R5cGlkLCBUWVBF Q0FDSEVfUkFOR0VfSU5GTyk7CisgICAgICAgIGlmICh0eXBjYWNoZS0mZ3Q7cm5nZWxlbXR5 cGUgPT0gTlVMTCkKKyAgICAgICAgICAgIGVsb2coRVJST1IsICJ0eXBlICV1IGlzIG5vdCBh IHJhbmdlIHR5cGUiLCBybmd0eXBpZCk7CisgICAgICAgIHJhbmdlX3dpdGhvdXRfcG9ydGlv bl9pbnRlcm5hbCh0eXBjYWNoZSwgcjEsIHIyLCBmY3R4LSZndDtycywgJmFtcDtmY3R4LSZn dDtuKTsKKworICAgICAgICBmdW5jY3R4LSZndDt1c2VyX2ZjdHggPSBmY3R4OworICAgICAg ICBNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CisgICAgfQorCisgICAgLyog c3R1ZmYgZG9uZSBvbiBldmVyeSBjYWxsIG9mIHRoZSBmdW5jdGlvbiAqLworICAgIGZ1bmNj dHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOworICAgIGZjdHggPSBmdW5jY3R4LSZndDt1c2Vy X2ZjdHg7CisKKyAgICBpZiAoZnVuY2N0eC0mZ3Q7Y2FsbF9jbnRyICZsdDsgZmN0eC0mZ3Q7 bikKKyAgICB7CisgICAgICAgIC8qCisgICAgICAgICAqIFdlIG11c3Qga2VlcCB0aGVzZSBv biBzZXBhcmF0ZSBsaW5lcworICAgICAgICAgKiBiZWNhdXNlIFNSRl9SRVRVUk5fTkVYVCBk b2VzIGNhbGxfY250cisrOgorICAgICAgICAgKi8KKyAgICAgICAgUmFuZ2VUeXBlICpyZXQg PSBmY3R4LSZndDtyc1tmdW5jY3R4LSZndDtjYWxsX2NudHJdOworICAgICAgICBTUkZfUkVU VVJOX05FWFQoZnVuY2N0eCwgUmFuZ2VUeXBlUEdldERhdHVtKHJldCkpOworICAgIH0KKyAg ICBlbHNlCisgICAgICAgIC8qIGRvIHdoZW4gdGhlcmUgaXMgbm8gbW9yZSBsZWZ0ICovCisg ICAgICAgIFNSRl9SRVRVUk5fRE9ORShmdW5jY3R4KTsKK30KKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+ CiAgIDwvdmFyaWFibGVsaXN0PgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3hpbmRleC5zZ21sIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sCmluZGV4IDNhMTlk YWIxNWUwLi44NWVmNTM5ZDA3YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3hpbmRleC5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC94aW5kZXguc2dtbApAQCAtNTA4LDcgKzUwOCw3IEBA CiAgICA8L3RhYmxlPgogCiAgIDxwYXJhPgotICAgR2lTVCBpbmRleGVzIGhhdmUgdHdlbHZl IHN1cHBvcnQgZnVuY3Rpb25zLCBzZXZlbiBvZiB3aGljaCBhcmUgb3B0aW9uYWwsCisgICBH aVNUIGluZGV4ZXMgaGF2ZSB0aGlydGVlbiBzdXBwb3J0IGZ1bmN0aW9ucywgZWlnaHQgb2Yg d2hpY2ggYXJlIG9wdGlvbmFsLAogICAgYXMgc2hvd24gaW4gPHhyZWYgbGlua2VuZD0ieGlu ZGV4LWdpc3Qtc3VwcG9ydC10YWJsZSIvPi4KICAgIChGb3IgbW9yZSBpbmZvcm1hdGlvbiBz ZWUgPHhyZWYgbGlua2VuZD0iZ2lzdCIvPi4pCiAgIDwvcGFyYT4KQEAgLTU5Niw2ICs1OTYs MTIgQEAKICAgICAgICAgdXNlZCBieSB0aGUgb3BlcmF0b3IgY2xhc3MgKG9wdGlvbmFsKTwv ZW50cnk+CiAgICAgICAgPGVudHJ5PjEyPC9lbnRyeT4KICAgICAgIDwvcm93PgorICAgICAg PHJvdz4KKyAgICAgICA8ZW50cnk+PGZ1bmN0aW9uPndpdGhvdXRfcG9ydGlvbjwvZnVuY3Rp b24+PC9lbnRyeT4KKyAgICAgICA8ZW50cnk+Y29tcHV0ZXMgcmVtYWluaW5nIGR1cmF0aW9u KHMpIGFmdGVyIGRlbGV0aW5nCisgICAgICAgc2Vjb25kIHBhcmFtZXRlciBmcm9tIGZpcnN0 IChvcHRpb25hbCk8L2VudHJ5PgorICAgICAgIDxlbnRyeT4xMzwvZW50cnk+CisgICAgICA8 L3Jvdz4KICAgICAgPC90Ym9keT4KICAgICA8L3Rncm91cD4KICAgIDwvdGFibGU+CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlkYXRlLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlkYXRlLmMKaW5kZXggYTQ5YTkwMDk2MjYu LjIxZWQ3MjQyZDZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmlu X3ZhbGlkYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbl92YWxpZGF0 ZS5jCkBAIC04NywyMSArODcsMjEgQEAgYnJpbnZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQog CQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgQlJJTl9QUk9D TlVNX09QQ0lORk86Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsIHRydWUsCiAJ CQkJCQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlJJ Tl9QUk9DTlVNX0FERFZBTFVFOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9j X3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJ CQkJCQkJCQkJNCwgNCwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJ TlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBCUklOX1BS T0NOVU1fQ09OU0lTVEVOVDoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJ CQkJCQkJCTMsIDQsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5U RVJOQUxPSUQsIElOVDRPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBCUklOX1BST0NOVU1f VU5JT046Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXBy b2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHBy b2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkzLCAz LCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lEKTsK IAkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFs aWRhdGUuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2ludmFsaWRhdGUuYwppbmRleCA2 YmQ5NGU0NDg1NC4uNjYyNDYxYjljOTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9naW4vZ2ludmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbnZh bGlkYXRlLmMKQEAgLTEwNCwzNyArMTA0LDM3IEBAIGdpbnZhbGlkYXRlKE9pZCBvcGNsYXNz b2lkKQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgR0lO X0NPTVBBUkVfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zv cm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJ CQkJCQkJMiwgMiwgb3Bja2V5dHlwZSwgb3Bja2V5dHlwZSk7CiAJCQkJYnJlYWs7CiAJCQlj YXNlIEdJTl9FWFRSQUNUVkFMVUVfUFJPQzoKIAkJCQkvKiBTb21lIG9wY2xhc3NlcyBvbWl0 IG51bGxGbGFncyAqLwotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgZmFsc2Us CiAJCQkJCQkJCQkJCTIsIDMsIG9wY2ludHlwZSwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJ CUlOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lOX0VYVFJBQ1RRVUVSWV9Q Uk9DOgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9taXQgbnVsbEZsYWdzIGFuZCBzZWFyY2hN b2RlICovCi0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXBy b2MsIElOVEVSTkFMT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJ CQkJCQkJNSwgNywgb3BjaW50eXBlLCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5UMk9J RCwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwg SU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fQ09OU0lTVEVOVF9QUk9D OgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9taXQgcXVlcnlLZXlzIGFuZCBudWxsRmxhZ3Mg Ki8KLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywg Qk9PTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJNiwgOCwg SU5URVJOQUxPSUQsIElOVDJPSUQsCiAJCQkJCQkJCQkJCW9wY2ludHlwZSwgSU5UNE9JRCwK IAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlRF Uk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fQ09NUEFS RV9QQVJUSUFMX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwgZmFsc2UsCiAJCQkJ CQkJCQkJCTQsIDQsIG9wY2tleXR5cGUsIG9wY2tleXR5cGUsCiAJCQkJCQkJCQkJCUlOVDJP SUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lOX1RSSUNPTlNJU1RF TlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgQ0hBUk9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIENIQVJPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJ NywgNywgSU5URVJOQUxPSUQsIElOVDJPSUQsCiAJCQkJCQkJCQkJCW9wY2ludHlwZSwgSU5U NE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYwppbmRleCA0OTllZDhjODc0OC4uMGNkYmVh NzQ4NGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0 ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCkBAIC0x MDYsMzYgKzEwNiwzNiBAQCBnaXN0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRj aCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBHSVNUX0NPTlNJU1RFTlRf UFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJv YywgQk9PTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHBy b2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJNSwg NSwgSU5URVJOQUxPSUQsIG9wY2ludHlwZSwKIAkJCQkJCQkJCQkJSU5UMk9JRCwgT0lET0lE LCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJU1RfVU5JT05fUFJPQzoK LQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgb3Bj a2V5dHlwZSwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIG9wY2tleXR5cGUsIGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJMiwg MiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lT VF9DT01QUkVTU19QUk9DOgogCQkJY2FzZSBHSVNUX0RFQ09NUFJFU1NfUFJPQzoKIAkJCWNh c2UgR0lTVF9GRVRDSF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2Ft cHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCB0 cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQlj YXNlIEdJU1RfUEVOQUxUWV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVy ZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNr X2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkzLCAzLCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5U RVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9QSUNL U1BMSVRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgSU5URVJOQUxPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgdHJ1ZSwKIAkJ CQkJCQkJCQkJMiwgMiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsK IAkJCWNhc2UgR0lTVF9FUVVBTF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBm YWxzZSwgZmFsc2UsCiAJCQkJCQkJCQkJCTMsIDMsIG9wY2tleXR5cGUsIG9wY2tleXR5cGUs CiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9E SVNUQU5DRV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBGTE9BVDhPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBGTE9BVDhPSUQsIGZhbHNlLCBmYWxzZSwKIAkJ CQkJCQkJCQkJNSwgNSwgSU5URVJOQUxPSUQsIG9wY2ludHlwZSwKIAkJCQkJCQkJCQkJSU5U Mk9JRCwgT0lET0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CkBAIC0xNDMsMTMgKzE0 MywxNyBAQCBnaXN0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQkJb2sgPSBjaGVja19h bW9wdHNwcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgR0lTVF9TT1JUU1VQUE9SVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3Np Z25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCB0cnVlLAorCQkJCW9rID0gY2hl Y2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCBmYWxzZSwg dHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJ Y2FzZSBHSVNUX1NUUkFUTlVNX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDJPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19h bXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDJPSUQsIGZhbHNlLCB0cnVl LAogCQkJCQkJCQkJCQkxLCAxLCBJTlQyT0lEKTsKIAkJCQlicmVhazsKKwkJCWNhc2UgR0lT VF9XSVRIT1VUX1BPUlRJT05fUFJPQzoKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgb3BjaW50eXBlLCB0cnVlLCB0cnVlLAorCQkJCQkJCQkJ CQkyLCAyLCBvcGNpbnR5cGUsIG9wY2ludHlwZSk7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0 OgogCQkJCWVyZXBvcnQoSU5GTywKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9P QkpFQ1RfREVGSU5JVElPTiksCkBAIC0yNzEsNyArMjc1LDcgQEAgZ2lzdHZhbGlkYXRlKE9p ZCBvcGNsYXNzb2lkKQogCQlpZiAoaSA9PSBHSVNUX0RJU1RBTkNFX1BST0MgfHwgaSA9PSBH SVNUX0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9DT01QUkVTU19QUk9DIHx8IGkgPT0g R0lTVF9ERUNPTVBSRVNTX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9PUFRJT05TX1BST0MgfHwg aSA9PSBHSVNUX1NPUlRTVVBQT1JUX1BST0MgfHwKLQkJCWkgPT0gR0lTVF9TVFJBVE5VTV9Q Uk9DKQorCQkJaSA9PSBHSVNUX1NUUkFUTlVNX1BST0MgfHwgaSA9PSBHSVNUX1dJVEhPVVRf UE9SVElPTl9QUk9DKQogCQkJY29udGludWU7CQkJLyogb3B0aW9uYWwgbWV0aG9kcyAqLwog CQllcmVwb3J0KElORk8sCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9E RUZJTklUSU9OKSwKQEAgLTM0NCw2ICszNDgsNyBAQCBnaXN0YWRqdXN0bWVtYmVycyhPaWQg b3BmYW1pbHlvaWQsCiAJCQljYXNlIEdJU1RfT1BUSU9OU19QUk9DOgogCQkJY2FzZSBHSVNU X1NPUlRTVVBQT1JUX1BST0M6CiAJCQljYXNlIEdJU1RfU1RSQVROVU1fUFJPQzoKKwkJCWNh c2UgR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQzoKIAkJCQkvKiBPcHRpb25hbCwgc28gZm9y Y2UgaXQgdG8gYmUgYSBzb2Z0IGZhbWlseSBkZXBlbmRlbmN5ICovCiAJCQkJb3AtPnJlZl9p c19oYXJkID0gZmFsc2U7CiAJCQkJb3AtPnJlZl9pc19mYW1pbHkgPSB0cnVlOwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHZhbGlkYXRlLmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGFzaC9oYXNodmFsaWRhdGUuYwppbmRleCBiNTRlY2RlOTIyNC4uMjFm ZjQ4M2VmMjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxp ZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h2YWxpZGF0ZS5jCkBA IC0xMDQsMTEgKzEwNCwxMSBAQCBoYXNodmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3 aXRjaCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBIQVNIU1RBTkRBUkRf UFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJv YywgSU5UNE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTEsIDEs IHByb2Nmb3JtLT5hbXByb2NsZWZ0dHlwZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEhBU0hF WFRFTkRFRF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBJTlQ4T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ4T0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJ CQkJMiwgMiwgcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBlLCBJTlQ4T0lEKTsKIAkJCQlicmVh azsKIAkJCWNhc2UgSEFTSE9QVElPTlNfUFJPQzoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgv YW12YWxpZGF0ZS5jCmluZGV4IDRjZjIzNzAxOWFkLi5mZDdiNjUzNzE2YSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jCkBAIC0xNDksNyArMTQ5LDcgQEAgaWRl bnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBDYXRDTGlzdCAqcHJv Y2xpc3QpCiAgKiBJbiBhbnkgY2FzZSB0aGUgZnVuY3Rpb24gcmVzdWx0IHR5cGUgbXVzdCBt YXRjaCByZXN0eXBlIGV4YWN0bHkuCiAgKi8KIGJvb2wKLWNoZWNrX2FtcHJvY19zaWduYXR1 cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wgZXhhY3QsCitjaGVja19hbXByb2Nf c2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIHJldHNldCwgYm9vbCBl eGFjdCwKIAkJCQkJICAgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLikKIHsKIAlib29s CQlyZXN1bHQgPSB0cnVlOwpAQCAtMTYzLDggKzE2Myw5IEBAIGNoZWNrX2FtcHJvY19zaWdu YXR1cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wgZXhhY3QsCiAJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBmdW5jdGlvbiAldSIsIGZ1bmNpZCk7CiAJ cHJvY2Zvcm0gPSAoRm9ybV9wZ19wcm9jKSBHRVRTVFJVQ1QodHApOwogCi0JaWYgKHByb2Nm b3JtLT5wcm9yZXR0eXBlICE9IHJlc3R5cGUgfHwgcHJvY2Zvcm0tPnByb3JldHNldCB8fAot CQlwcm9jZm9ybS0+cHJvbmFyZ3MgPCBtaW5hcmdzIHx8IHByb2Nmb3JtLT5wcm9uYXJncyA+ IG1heGFyZ3MpCisJaWYgKChwcm9jZm9ybS0+cHJvcmV0dHlwZSAhPSByZXN0eXBlICYmIE9p ZElzVmFsaWQocmVzdHlwZSkpCisJCXx8IHByb2Nmb3JtLT5wcm9yZXRzZXQgIT0gcmV0c2V0 IHx8IHByb2Nmb3JtLT5wcm9uYXJncyA8IG1pbmFyZ3MKKwkJfHwgcHJvY2Zvcm0tPnByb25h cmdzID4gbWF4YXJncykKIAkJcmVzdWx0ID0gZmFsc2U7CiAKIAl2YV9zdGFydChhcCwgbWF4 YXJncyk7CkBAIC0xOTEsNyArMTkyLDcgQEAgY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQg ZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKIGJvb2wKIGNoZWNrX2Ftb3B0c3By b2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQpCiB7Ci0JcmV0dXJuIGNoZWNrX2FtcHJvY19zaWdu YXR1cmUoZnVuY2lkLCBWT0lET0lELCB0cnVlLCAxLCAxLCBJTlRFUk5BTE9JRCk7CisJcmV0 dXJuIGNoZWNrX2FtcHJvY19zaWduYXR1cmUoZnVuY2lkLCBWT0lET0lELCBmYWxzZSwgdHJ1 ZSwgMSwgMSwgSU5URVJOQUxPSUQpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL25idHJlZS9uYnR2YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnR2YWxpZGF0ZS5jCmluZGV4IGI4N2M5NTlhMmZkLi43OTA1YzM4OTQwOCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR2YWxpZGF0ZS5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFsaWRhdGUuYwpAQCAtOTEsMTYgKzkx LDE2IEBAIGJ0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRjaCAocHJvY2Zvcm0t PmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBCVE9SREVSX1BST0M6Ci0JCQkJb2sgPSBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIHRydWUsCisJ CQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRP SUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkyLCAyLCBwcm9jZm9ybS0+YW1wcm9jbGVm dHR5cGUsCiAJCQkJCQkJCQkJCXByb2Nmb3JtLT5hbXByb2NyaWdodHR5cGUpOwogCQkJCWJy ZWFrOwogCQkJY2FzZSBCVFNPUlRTVVBQT1JUX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXBy b2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIHRydWUsCisJCQkJb2sg PSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIGZh bHNlLCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7 CiAJCQljYXNlIEJUSU5SQU5HRV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1 ZSwKIAkJCQkJCQkJCQkJNSwgNSwKIAkJCQkJCQkJCQkJcHJvY2Zvcm0tPmFtcHJvY2xlZnR0 eXBlLAogCQkJCQkJCQkJCQlwcm9jZm9ybS0+YW1wcm9jbGVmdHR5cGUsCkBAIC0xMDgsNyAr MTA4LDcgQEAgYnR2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQkJCQkJCQkJQk9PTE9J RCwgQk9PTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJURVFVQUxJTUFHRV9QUk9DOgot CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09M T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgT0lET0lE KTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlRPUFRJT05TX1BST0M6CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3ZhbGlkYXRlLmMKaW5kZXggN2QwNWU0MzcyMGIuLjdkOWNkYTcz ZjU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3ZhbGlkYXRl LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWxpZGF0ZS5jCkBAIC0x MDksNyArMTA5LDcgQEAgc3BndmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCXN3aXRjaCAo cHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBTUEdJU1RfQ09ORklHX1BST0M6 Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZP SURPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIFZPSURPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJCQkyLCAyLCBJTlRF Uk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWNvbmZpZ0luLmF0dFR5cGUgPSBwcm9jZm9y bS0+YW1wcm9jbGVmdHR5cGU7CiAJCQkJbWVtc2V0KCZjb25maWdPdXQsIDAsIHNpemVvZihj b25maWdPdXQpKTsKQEAgLTE2NCwxMSArMTY0LDExIEBAIHNwZ3ZhbGlkYXRlKE9pZCBvcGNs YXNzb2lkKQogCQkJY2FzZSBTUEdJU1RfQ0hPT1NFX1BST0M6CiAJCQljYXNlIFNQR0lTVF9Q SUNLU1BMSVRfUFJPQzoKIAkJCWNhc2UgU1BHSVNUX0lOTkVSX0NPTlNJU1RFTlRfUFJPQzoK LQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgVk9J RE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgVk9JRE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTIsIDIsIElOVEVS TkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFNQR0lTVF9MRUFG X0NPTlNJU1RFTlRfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJ CQkJCQkJCTIsIDIsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIFNQR0lTVF9DT01QUkVTU19QUk9DOgpAQCAtMTc3LDcgKzE3Nyw3IEBAIHNwZ3Zh bGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQkJCQlvayA9IGZhbHNlOwogCQkJCWVsc2UKIAkJ CQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsCi0JCQkJ CQkJCQkJCQljb25maWdPdXRMZWFmVHlwZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJCWNvbmZpZ091 dExlYWZUeXBlLCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJCTEsIDEsIHByb2Nmb3JtLT5h bXByb2NsZWZ0dHlwZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFNQR0lTVF9PUFRJT05TX1BS T0M6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbXVsdGlyYW5nZXR5cGVz LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbXVsdGlyYW5nZXR5cGVzLmMKaW5kZXggY2Q4 NGNlZDViNDguLmRkN2QwNWFhMGYzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvbXVsdGlyYW5nZXR5cGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRp cmFuZ2V0eXBlcy5jCkBAIC0xMjI1LDYgKzEyMjUsNzcgQEAgbXVsdGlyYW5nZV9taW51c19p bnRlcm5hbChPaWQgbWx0cm5ndHlwb2lkLCBUeXBlQ2FjaGVFbnRyeSAqcmFuZ2V0eXAsCiAJ cmV0dXJuIG1ha2VfbXVsdGlyYW5nZShtbHRybmd0eXBvaWQsIHJhbmdldHlwLCByYW5nZV9j b3VudDMsIHJhbmdlczMpOwogfQogCisvKgorICogbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24gLSBtdWx0aXJhbmdlIG1pbnVzIGJ1dCByZXR1cm5pbmcgdGhlIHJlc3VsdCBhcyBhIFNS RiwKKyAqIHdpdGggbm8gcm93cyBpZiB0aGUgcmVzdWx0IHdvdWxkIGJlIGVtcHR5LgorICov CitEYXR1bQorbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05fQVJHUykK K3sKKwlGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7CisJTWVtb3J5Q29udGV4dCBvbGRjb250 ZXh0OworCisJaWYgKCFTUkZfSVNfRklSU1RDQUxMKCkpCisJeworCQkvKiBXZSBuZXZlciBo YXZlIG1vcmUgdGhhbiBvbmUgcmVzdWx0ICovCisJCWZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9T RVRVUCgpOworCQlTUkZfUkVUVVJOX0RPTkUoZnVuY2N0eCk7CisJfQorCWVsc2UKKwl7CisJ CU11bHRpcmFuZ2VUeXBlICptcjE7CisJCU11bHRpcmFuZ2VUeXBlICptcjI7CisJCU9pZAkJ CW1sdHJuZ3R5cG9pZDsKKwkJVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCQlUeXBlQ2Fj aGVFbnRyeSAqcmFuZ2V0eXA7CisJCWludDMyCQlyYW5nZV9jb3VudDE7CisJCWludDMyCQly YW5nZV9jb3VudDI7CisJCVJhbmdlVHlwZSAqKnJhbmdlczE7CisJCVJhbmdlVHlwZSAqKnJh bmdlczI7CisJCU11bHRpcmFuZ2VUeXBlICptcjsKKworCQlmdW5jY3R4ID0gU1JGX0ZJUlNU Q0FMTF9JTklUKCk7CisKKwkJLyoKKwkJICogc3dpdGNoIHRvIG1lbW9yeSBjb250ZXh0IGFw cHJvcHJpYXRlIGZvciBtdWx0aXBsZSBmdW5jdGlvbiBjYWxscworCQkgKi8KKwkJb2xkY29u dGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhmdW5jY3R4LT5tdWx0aV9jYWxsX21lbW9y eV9jdHgpOworCisJCS8qIGdldCBhcmdzLCBkZXRvYXN0aW5nIGludG8gbXVsdGktY2FsbCBt ZW1vcnkgY29udGV4dCAqLworCQltcjEgPSBQR19HRVRBUkdfTVVMVElSQU5HRV9QKDApOwor CQltcjIgPSBQR19HRVRBUkdfTVVMVElSQU5HRV9QKDEpOworCisJCW1sdHJuZ3R5cG9pZCA9 IE11bHRpcmFuZ2VUeXBlR2V0T2lkKG1yMSk7CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVf Y2FjaGUobWx0cm5ndHlwb2lkLCBUWVBFQ0FDSEVfTVVMVElSQU5HRV9JTkZPKTsKKwkJaWYg KHR5cGNhY2hlLT5ybmd0eXBlID09IE5VTEwpCisJCQllbG9nKEVSUk9SLCAidHlwZSAldSBp cyBub3QgYSBtdWx0aXJhbmdlIHR5cGUiLCBtbHRybmd0eXBvaWQpOworCQlyYW5nZXR5cCA9 IHR5cGNhY2hlLT5ybmd0eXBlOworCisJCWlmIChNdWx0aXJhbmdlSXNFbXB0eShtcjEpIHx8 IE11bHRpcmFuZ2VJc0VtcHR5KG1yMikpCisJCQltciA9IG1yMTsKKwkJZWxzZQorCQl7CisJ CQltdWx0aXJhbmdlX2Rlc2VyaWFsaXplKHJhbmdldHlwLCBtcjEsICZyYW5nZV9jb3VudDEs ICZyYW5nZXMxKTsKKwkJCW11bHRpcmFuZ2VfZGVzZXJpYWxpemUocmFuZ2V0eXAsIG1yMiwg JnJhbmdlX2NvdW50MiwgJnJhbmdlczIpOworCisJCQltciA9IG11bHRpcmFuZ2VfbWludXNf aW50ZXJuYWwobWx0cm5ndHlwb2lkLAorCQkJCQkJCQkJCSAgIHJhbmdldHlwLAorCQkJCQkJ CQkJCSAgIHJhbmdlX2NvdW50MSwKKwkJCQkJCQkJCQkgICByYW5nZXMxLAorCQkJCQkJCQkJ CSAgIHJhbmdlX2NvdW50MiwKKwkJCQkJCQkJCQkgICByYW5nZXMyKTsKKwkJfQorCisJCU1l bW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKKworCQlmdW5jY3R4ID0gU1JGX1BF UkNBTExfU0VUVVAoKTsKKwkJaWYgKE11bHRpcmFuZ2VJc0VtcHR5KG1yKSkKKwkJCVNSRl9S RVRVUk5fRE9ORShmdW5jY3R4KTsKKwkJZWxzZQorCQkJU1JGX1JFVFVSTl9ORVhUKGZ1bmNj dHgsIE11bHRpcmFuZ2VUeXBlUEdldERhdHVtKG1yKSk7CisJfQorfQorCiAvKiBtdWx0aXJh bmdlIGludGVyc2VjdGlvbiAqLwogRGF0dW0KIG11bHRpcmFuZ2VfaW50ZXJzZWN0KFBHX0ZV TkNUSU9OX0FSR1MpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0 eXBlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwppbmRleCA1Zjlm YjIzODcxYS4uNDMzNTQzYWRhMDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9yYW5nZXR5cGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMu YwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKICNpbmNsdWRl ICJjb21tb24vaGFzaGZuLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgImxp YnBxL3BxZm9ybWF0LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9k ZXMvbWFrZWZ1bmNzLmgiCkBAIC0zOSw2ICs0MCw3IEBACiAjaW5jbHVkZSAib3B0aW1pemVy L2NsYXVzZXMuaCIKICNpbmNsdWRlICJvcHRpbWl6ZXIvY29zdC5oIgogI2luY2x1ZGUgIm9w dGltaXplci9vcHRpbWl6ZXIuaCIKKyNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgogI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1 ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMTIxMyw2ICsxMjE1LDE3MCBAQCByYW5nZV9z cGxpdF9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUsIGNvbnN0IFJhbmdlVHlw ZSAqcjEsIGNvbnN0IFJhbmdlVAogCXJldHVybiBmYWxzZTsKIH0KIAorLyoKKyAqIHJhbmdl X3dpdGhvdXRfcG9ydGlvbiAtIHN1YnRyYWN0aW9uIGJ1dCBhcyBhIFNSRiB0byBhY2NvbW1v ZGF0ZSBzcGxpdHMsCisgKiB3aXRoIG5vIHJlc3VsdCByb3dzIGlmIHRoZSByZXN1bHQgd291 bGQgYmUgZW1wdHkuCisgKi8KK0RhdHVtCityYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVO Q1RJT05fQVJHUykKK3sKKwl0eXBlZGVmIHN0cnVjdCB7CisJCVJhbmdlVHlwZSAgKnJzWzJd OworCQlpbnQJCQluOworCX0gcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHg7CisKKwlGdW5j Q2FsbENvbnRleHQgKmZ1bmNjdHg7CisJcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKmZj dHg7CisJTWVtb3J5Q29udGV4dCBvbGRjb250ZXh0OworCisJLyogc3R1ZmYgZG9uZSBvbmx5 IG9uIHRoZSBmaXJzdCBjYWxsIG9mIHRoZSBmdW5jdGlvbiAqLworCWlmIChTUkZfSVNfRklS U1RDQUxMKCkpCisJeworCQlSYW5nZVR5cGUJICAgKnIxOworCQlSYW5nZVR5cGUJICAgKnIy OworCQlPaWQJCQkJcm5ndHlwaWQ7CisJCVR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZTsKKwor CQkvKiBjcmVhdGUgYSBmdW5jdGlvbiBjb250ZXh0IGZvciBjcm9zcy1jYWxsIHBlcnNpc3Rl bmNlICovCisJCWZ1bmNjdHggPSBTUkZfRklSU1RDQUxMX0lOSVQoKTsKKworCQkvKgorCQkg KiBzd2l0Y2ggdG8gbWVtb3J5IGNvbnRleHQgYXBwcm9wcmlhdGUgZm9yIG11bHRpcGxlIGZ1 bmN0aW9uIGNhbGxzCisJCSAqLworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKGZ1bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKwkJcjEgPSBQR19HRVRB UkdfUkFOR0VfUCgwKTsKKwkJcjIgPSBQR19HRVRBUkdfUkFOR0VfUCgxKTsKKworCQkvKiBE aWZmZXJlbnQgdHlwZXMgc2hvdWxkIGJlIHByZXZlbnRlZCBieSBBTllSQU5HRSBtYXRjaGlu ZyBydWxlcyAqLworCQlpZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAhPSBSYW5nZVR5cGVHZXRP aWQocjIpKQorCQkJZWxvZyhFUlJPUiwgInJhbmdlIHR5cGVzIGRvIG5vdCBtYXRjaCIpOwor CisJCS8qIGFsbG9jYXRlIG1lbW9yeSBmb3IgdXNlciBjb250ZXh0ICovCisJCWZjdHggPSAo cmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ZjdHggKikgcGFsbG9jKHNpemVvZihyYW5nZV93aXRo b3V0X3BvcnRpb25fZmN0eCkpOworCisJCS8qCisJCSAqIEluaXRpYWxpemUgc3RhdGUuCisJ CSAqIFdlIGNhbid0IHN0b3JlIHRoZSByYW5nZSB0eXBjYWNoZSBpbiBmbl9leHRyYSBiZWNh dXNlIHRoZSBjYWxsZXIKKwkJICogdXNlcyB0aGF0IGZvciB0aGUgU1JGIHN0YXRlLgorCQkg Ki8KKwkJcm5ndHlwaWQgPSBSYW5nZVR5cGVHZXRPaWQocjEpOworCQl0eXBjYWNoZSA9IGxv b2t1cF90eXBlX2NhY2hlKHJuZ3R5cGlkLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7CisJCWlm ICh0eXBjYWNoZS0+cm5nZWxlbXR5cGUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1IsICJ0eXBl ICV1IGlzIG5vdCBhIHJhbmdlIHR5cGUiLCBybmd0eXBpZCk7CisJCXJhbmdlX3dpdGhvdXRf cG9ydGlvbl9pbnRlcm5hbCh0eXBjYWNoZSwgcjEsIHIyLCBmY3R4LT5ycywgJmZjdHgtPm4p OworCisJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9IGZjdHg7CisJCU1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhvbGRjb250ZXh0KTsKKwl9CisKKwkvKiBzdHVmZiBkb25lIG9uIGV2ZXJ5IGNhbGwg b2YgdGhlIGZ1bmN0aW9uICovCisJZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisJ ZmN0eCA9IGZ1bmNjdHgtPnVzZXJfZmN0eDsKKworCWlmIChmdW5jY3R4LT5jYWxsX2NudHIg PCBmY3R4LT5uKQorCXsKKwkJLyoKKwkJICogV2UgbXVzdCBrZWVwIHRoZXNlIG9uIHNlcGFy YXRlIGxpbmVzCisJCSAqIGJlY2F1c2UgU1JGX1JFVFVSTl9ORVhUIGRvZXMgY2FsbF9jbnRy Kys6CisJCSAqLworCQlSYW5nZVR5cGUgKnJldCA9IGZjdHgtPnJzW2Z1bmNjdHgtPmNhbGxf Y250cl07CisJCVNSRl9SRVRVUk5fTkVYVChmdW5jY3R4LCBSYW5nZVR5cGVQR2V0RGF0dW0o cmV0KSk7CisJfQorCWVsc2UKKwkJLyogZG8gd2hlbiB0aGVyZSBpcyBubyBtb3JlIGxlZnQg Ki8KKwkJU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOworfQorCisvKgorICogcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uX2ludGVybmFsIC0gU2V0cyBvdXRwdXRzIGFuZCBvdXRwdXRuIHRvIHRo ZSByYW5nZXMKKyAqIHJlbWFpbmluZyBhbmQgdGhlaXIgY291bnQgKHJlc3BlY3RpdmVseSkg YWZ0ZXIgc3VidHJhY3RpbmcgcjIgZnJvbSByMS4KKyAqIFRoZSBhcnJheSBzaG91bGQgbmV2 ZXIgY29udGFpbiBlbXB0eSByYW5nZXMuCisgKiBUaGUgb3V0cHV0cyB3aWxsIGJlIG9yZGVy ZWQuIFdlIGV4cGVjdCB0aGF0IG91dHB1dHMgaXMgYW4gYXJyYXkgb2YKKyAqIFJhbmdlVHlw ZSBwb2ludGVycywgYWxyZWFkeSBhbGxvY2F0ZWQgd2l0aCB0d28gZWxlbWVudHMuCisgKi8K K3ZvaWQKK3JhbmdlX3dpdGhvdXRfcG9ydGlvbl9pbnRlcm5hbChUeXBlQ2FjaGVFbnRyeSAq dHlwY2FjaGUsIFJhbmdlVHlwZSAqcjEsCisJCQkJCQkJICAgUmFuZ2VUeXBlICpyMiwgUmFu Z2VUeXBlICoqb3V0cHV0cywgaW50ICpvdXRwdXRuKQoreworCWludAkJCWNtcF9sMWwyLAor CQkJCWNtcF9sMXUyLAorCQkJCWNtcF91MWwyLAorCQkJCWNtcF91MXUyOworCVJhbmdlQm91 bmQJbG93ZXIxLAorCQkJCWxvd2VyMjsKKwlSYW5nZUJvdW5kCXVwcGVyMSwKKwkJCQl1cHBl cjI7CisJYm9vbAkJZW1wdHkxLAorCQkJCWVtcHR5MjsKKworCXJhbmdlX2Rlc2VyaWFsaXpl KHR5cGNhY2hlLCByMSwgJmxvd2VyMSwgJnVwcGVyMSwgJmVtcHR5MSk7CisJcmFuZ2VfZGVz ZXJpYWxpemUodHlwY2FjaGUsIHIyLCAmbG93ZXIyLCAmdXBwZXIyLCAmZW1wdHkyKTsKKwor CWlmIChlbXB0eTEpCisJeworCQkvKiBpZiByMSBpcyBlbXB0eSB0aGVuIHIxIC0gcjIgaXMg ZW1wdHksIHNvIHJldHVybiB6ZXJvIHJlc3VsdHMgKi8KKwkJKm91dHB1dG4gPSAwOworCQly ZXR1cm47CisJfQorCWVsc2UgaWYgKGVtcHR5MikKKwl7CisJCS8qIHIyIGlzIGVtcHR5IHNv IHRoZSByZXN1bHQgaXMganVzdCByMSAod2hpY2ggd2Uga25vdyBpcyBub3QgZW1wdHkpICov CisJCW91dHB1dHNbMF0gPSByMTsKKwkJKm91dHB1dG4gPSAxOworCQlyZXR1cm47CisJfQor CisJLyoKKwkgKiBVc2UgdGhlIHNhbWUgbG9naWMgYXMgcmFuZ2VfbWludXNfaW50ZXJuYWws CisJICogYnV0IHN1cHBvcnQgdGhlIHNwbGl0IGNhc2UKKwkgKi8KKwljbXBfbDFsMiA9IHJh bmdlX2NtcF9ib3VuZHModHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIpOworCWNtcF9sMXUy ID0gcmFuZ2VfY21wX2JvdW5kcyh0eXBjYWNoZSwgJmxvd2VyMSwgJnVwcGVyMik7CisJY21w X3UxbDIgPSByYW5nZV9jbXBfYm91bmRzKHR5cGNhY2hlLCAmdXBwZXIxLCAmbG93ZXIyKTsK KwljbXBfdTF1MiA9IHJhbmdlX2NtcF9ib3VuZHModHlwY2FjaGUsICZ1cHBlcjEsICZ1cHBl cjIpOworCisJaWYgKGNtcF9sMWwyIDwgMCAmJiBjbXBfdTF1MiA+IDApCisJeworCQlsb3dl cjIuaW5jbHVzaXZlID0gIWxvd2VyMi5pbmNsdXNpdmU7CisJCWxvd2VyMi5sb3dlciA9IGZh bHNlOwkvKiBpdCB3aWxsIGJlY29tZSB0aGUgdXBwZXIgYm91bmQgKi8KKwkJb3V0cHV0c1sw XSA9IG1ha2VfcmFuZ2UodHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIsIGZhbHNlLCBOVUxM KTsKKworCQl1cHBlcjIuaW5jbHVzaXZlID0gIXVwcGVyMi5pbmNsdXNpdmU7CisJCXVwcGVy Mi5sb3dlciA9IHRydWU7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSBsb3dlciBib3VuZCAqLwor CQlvdXRwdXRzWzFdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJnVwcGVyMiwgJnVwcGVyMSwg ZmFsc2UsIE5VTEwpOworCisJCSpvdXRwdXRuID0gMjsKKwl9CisJZWxzZSBpZiAoY21wX2wx dTIgPiAwIHx8IGNtcF91MWwyIDwgMCkKKwl7CisJCW91dHB1dHNbMF0gPSByMTsKKwkJKm91 dHB1dG4gPSAxOworCX0KKwllbHNlIGlmIChjbXBfbDFsMiA+PSAwICYmIGNtcF91MXUyIDw9 IDApCisJeworCQkqb3V0cHV0biA9IDA7CisJfQorCWVsc2UgaWYgKGNtcF9sMWwyIDw9IDAg JiYgY21wX3UxbDIgPj0gMCAmJiBjbXBfdTF1MiA8PSAwKQorCXsKKwkJbG93ZXIyLmluY2x1 c2l2ZSA9ICFsb3dlcjIuaW5jbHVzaXZlOworCQlsb3dlcjIubG93ZXIgPSBmYWxzZTsJLyog aXQgd2lsbCBiZWNvbWUgdGhlIHVwcGVyIGJvdW5kICovCisJCW91dHB1dHNbMF0gPSBtYWtl X3JhbmdlKHR5cGNhY2hlLCAmbG93ZXIxLCAmbG93ZXIyLCBmYWxzZSwgTlVMTCk7CisJCSpv dXRwdXRuID0gMTsKKwl9CisJZWxzZSBpZiAoY21wX2wxbDIgPj0gMCAmJiBjbXBfdTF1MiA+ PSAwICYmIGNtcF9sMXUyIDw9IDApCisJeworCQl1cHBlcjIuaW5jbHVzaXZlID0gIXVwcGVy Mi5pbmNsdXNpdmU7CisJCXVwcGVyMi5sb3dlciA9IHRydWU7CS8qIGl0IHdpbGwgYmVjb21l IHRoZSBsb3dlciBib3VuZCAqLworCQlvdXRwdXRzWzBdID0gbWFrZV9yYW5nZSh0eXBjYWNo ZSwgJnVwcGVyMiwgJnVwcGVyMSwgZmFsc2UsIE5VTEwpOworCQkqb3V0cHV0biA9IDE7CisJ fQorCWVsc2UKKwl7CisJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGNhc2UgaW4gcmFuZ2Vf d2l0aG91dF9wb3J0aW9uIik7CisJfQorfQorCiAvKiByYW5nZSAtPiByYW5nZSBhZ2dyZWdh dGUgZnVuY3Rpb25zICovCiAKIERhdHVtCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MvYW12YWxpZGF0ZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaAppbmRl eCA0M2IxNjkyYjA3OS4uY2VhOTUyODRlOTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9hbXZhbGlkYXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUu aApAQCAtMjgsOCArMjgsOCBAQCB0eXBlZGVmIHN0cnVjdCBPcEZhbWlseU9wRnVuY0dyb3Vw CiAKIC8qIEZ1bmN0aW9ucyBpbiBhY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jICovCiBleHRl cm4gTGlzdCAqaWRlbnRpZnlfb3BmYW1pbHlfZ3JvdXBzKENhdENMaXN0ICpvcHJsaXN0LCBD YXRDTGlzdCAqcHJvY2xpc3QpOwotZXh0ZXJuIGJvb2wgY2hlY2tfYW1wcm9jX3NpZ25hdHVy ZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBleGFjdCwKLQkJCQkJCQkJICAgaW50 IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CitleHRlcm4gYm9vbCBjaGVja19hbXByb2Nf c2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIHJldHNldCwKKwkJCQkJ CQkJICAgYm9vbCBleGFjdCwgaW50IG1pbmFyZ3MsIGludCBtYXhhcmdzLC4uLik7CiBleHRl cm4gYm9vbCBjaGVja19hbW9wdHNwcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkKTsKIGV4dGVy biBib29sIGNoZWNrX2Ftb3Bfc2lnbmF0dXJlKE9pZCBvcG5vLCBPaWQgcmVzdHlwZSwKIAkJ CQkJCQkJIE9pZCBsZWZ0dHlwZSwgT2lkIHJpZ2h0dHlwZSk7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9hY2Nlc3MvZ2lzdC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaAppbmRl eCA4Y2NhZWNmYTFmNC4uMzdjMmYwYTUwZWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaApAQCAtNDAsNyAr NDAsOCBAQAogI2RlZmluZSBHSVNUX09QVElPTlNfUFJPQwkJCQkxMAogI2RlZmluZSBHSVNU X1NPUlRTVVBQT1JUX1BST0MJCQkxMQogI2RlZmluZSBHSVNUX1NUUkFUTlVNX1BST0MJCQkJ MTIKLSNkZWZpbmUgR0lTVE5Qcm9jcwkJCQkJMTIKKyNkZWZpbmUgR0lTVF9XSVRIT1VUX1BP UlRJT05fUFJPQwkJMTMKKyNkZWZpbmUgR0lTVE5Qcm9jcwkJCQkJMTMKIAogLyoKICAqIFBh Z2Ugb3BhcXVlIGRhdGEgaW4gYSBHaVNUIGluZGV4IHBhZ2UuCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X2FtcHJvYy5kYXQKaW5kZXggYjMzNGE1ZmI4ODIuLmFkNThiYjU2Yzc5IDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19hbXByb2MuZGF0CkBAIC02MDksNiArNjA5LDkgQEAKIHsgYW1wcm9jZmFt aWx5ID0+ICdnaXN0L3JhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScs CiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55cmFuZ2UnLCBhbXByb2NudW0gPT4gJzEyJywK ICAgYW1wcm9jID0+ICdnaXN0X3N0cmF0bnVtX2lkZW50aXR5JyB9LAoreyBhbXByb2NmYW1p bHkgPT4gJ2dpc3QvcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueXJhbmdlJywK KyAgYW1wcm9jcmlnaHR0eXBlID0+ICdhbnlyYW5nZScsIGFtcHJvY251bSA9PiAnMTMnLAor ICBhbXByb2MgPT4gJ3JhbmdlX3dpdGhvdXRfcG9ydGlvbihhbnlyYW5nZSxhbnlyYW5nZSkn IH0sCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFtcHJvY2xlZnR0 eXBlID0+ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVt ID0+ICcxJywKICAgYW1wcm9jID0+ICdpbmV0X2dpc3RfY29uc2lzdGVudCcgfSwKQEAgLTY0 OSw2ICs2NTIsOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvbXVsdGlyYW5nZV9vcHMn LCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsCiAgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnYW55bXVsdGlyYW5nZScsIGFtcHJvY251bSA9PiAnMTInLAogICBhbXByb2MgPT4g J2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9t dWx0aXJhbmdlX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKKyAg YW1wcm9jcmlnaHR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMycs CisgIGFtcHJvYyA9PiAnbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24oYW55bXVsdGlyYW5n ZSxhbnltdWx0aXJhbmdlKScgfSwKIAogIyBnaW4KIHsgYW1wcm9jZmFtaWx5ID0+ICdnaW4v YXJyYXlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueWFycmF5JywKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3Byb2MuZGF0CmluZGV4IGIzN2U4YTZmODgyLi40OWM0ZWQ1Y2UzOSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMDc2Niw2ICsxMDc2NiwxMCBAQAogeyBvaWQgPT4g JzM4NjknLAogICBwcm9uYW1lID0+ICdyYW5nZV9taW51cycsIHByb3JldHR5cGUgPT4gJ2Fu eXJhbmdlJywKICAgcHJvYXJndHlwZXMgPT4gJ2FueXJhbmdlIGFueXJhbmdlJywgcHJvc3Jj ID0+ICdyYW5nZV9taW51cycgfSwKK3sgb2lkID0+ICc4NDA4JywgZGVzY3IgPT4gJ3JlbW92 ZSBwb3J0aW9uIGZyb20gcmFuZ2UnLAorICBwcm9uYW1lID0+ICdyYW5nZV93aXRob3V0X3Bv cnRpb24nLCBwcm9yb3dzID0+ICcyJywKKyAgcHJvcmV0c2V0ID0+ICd0JywgcHJvcmV0dHlw ZSA9PiAnYW55cmFuZ2UnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55cmFuZ2UgYW55cmFuZ2Un LCBwcm9zcmMgPT4gJ3JhbmdlX3dpdGhvdXRfcG9ydGlvbicgfSwKIHsgb2lkID0+ICczODcw JywgZGVzY3IgPT4gJ2xlc3MtZXF1YWwtZ3JlYXRlcicsCiAgIHByb25hbWUgPT4gJ3Jhbmdl X2NtcCcsIHByb3JldHR5cGUgPT4gJ2ludDQnLAogICBwcm9hcmd0eXBlcyA9PiAnYW55cmFu Z2UgYW55cmFuZ2UnLCBwcm9zcmMgPT4gJ3JhbmdlX2NtcCcgfSwKQEAgLTExMDUzLDYgKzEx MDU3LDEwIEBACiB7IG9pZCA9PiAnNDI3MScsCiAgIHByb25hbWUgPT4gJ211bHRpcmFuZ2Vf bWludXMnLCBwcm9yZXR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJndHlwZXMg PT4gJ2FueW11bHRpcmFuZ2UgYW55bXVsdGlyYW5nZScsIHByb3NyYyA9PiAnbXVsdGlyYW5n ZV9taW51cycgfSwKK3sgb2lkID0+ICc4NDA2JywgZGVzY3IgPT4gJ3JlbW92ZSBwb3J0aW9u IGZyb20gbXVsdGlyYW5nZScsCisgIHByb25hbWUgPT4gJ211bHRpcmFuZ2Vfd2l0aG91dF9w b3J0aW9uJywgcHJvcm93cyA9PiAnMScsCisgIHByb3JldHNldCA9PiAndCcsIHByb3JldHR5 cGUgPT4gJ2FueW11bHRpcmFuZ2UnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55bXVsdGlyYW5n ZSBhbnltdWx0aXJhbmdlJywgcHJvc3JjID0+ICdtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlv bicgfSwKIHsgb2lkID0+ICc0MjcyJywKICAgcHJvbmFtZSA9PiAnbXVsdGlyYW5nZV9pbnRl cnNlY3QnLCBwcm9yZXR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJndHlwZXMg PT4gJ2FueW11bHRpcmFuZ2UgYW55bXVsdGlyYW5nZScsCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS91dGlscy9yYW5nZXR5cGVzLmggYi9zcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5cGVz LmgKaW5kZXggNTBhZGIzYzhjMTMuLjM0ZTc3OTBmZWUzIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS91dGlscy9yYW5nZXR5cGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0 eXBlcy5oCkBAIC0xNjQsNSArMTY0LDcgQEAgZXh0ZXJuIFJhbmdlVHlwZSAqbWFrZV9lbXB0 eV9yYW5nZShUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGUpOwogZXh0ZXJuIGJvb2wgcmFuZ2Vf c3BsaXRfaW50ZXJuYWwoVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlLCBjb25zdCBSYW5nZVR5 cGUgKnIxLAogCQkJCQkJCQkgY29uc3QgUmFuZ2VUeXBlICpyMiwgUmFuZ2VUeXBlICoqb3V0 cHV0MSwKIAkJCQkJCQkJIFJhbmdlVHlwZSAqKm91dHB1dDIpOworZXh0ZXJuIHZvaWQgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwg UmFuZ2VUeXBlICpyMSwKKwkJCQkJCQkJCVJhbmdlVHlwZSAqcjIsIFJhbmdlVHlwZSAqKm91 dHB1dHMsIGludCAqb3V0cHV0bik7CiAKICNlbmRpZgkJCQkJCQkvKiBSQU5HRVRZUEVTX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5 cGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91 dAppbmRleCBjNjM2M2ViZWIyNC4uMTFhYTI4MmZmMzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL211bHRpcmFuZ2V0eXBlcy5vdXQKQEAgLTIyMDAsNiArMjIwMCwx MjIgQEAgU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1 KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDAKICB7WzEsMiksWzQsNSl9CiAoMSBy b3cpCiAKKy0tIHdpdGhvdXRfcG9ydGlvbgorU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9w b3J0aW9uKG51bW11bHRpcmFuZ2UoKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBtdWx0aXJhbmdl X3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJv d3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdl KCksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKwor U0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMSwyKSksIG51bW11bHRpcmFuZ2UoKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93KQor CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1y YW5nZSgxLDIpLCBudW1yYW5nZSgzLDQpKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7 WzEsMiksWzMsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdl KG51bXJhbmdlKDIsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMil9CisoMSByb3cpCisKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMil9CisoMSBy b3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdl KG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB7WzIsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlv bihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdl KDIsMykpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7WzEsMiksWzMsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBu dW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVD VCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEs NCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIsNCl9Ciso MSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJh bmdlKG51bXJhbmdlKDEsOCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMiksIG51bXJh bmdlKDMsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIsMyksWzQsOCl9CisoMSByb3cpCisKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsMyksIG51bXJhbmdlKDUsbnVsbCkpKTsKKyBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB7WzEsMiksWzMsNSl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApKSk7CisgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUp fQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVs dGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShu dW1yYW5nZSgyLDQpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQorCitTRUxF Q1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgx LDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDUpKSk7Cisg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVt bXVsdGlyYW5nZShudW1yYW5nZSgwLDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1Qg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDMp LCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDkpKSk7CisgbXVs dGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVs dGlyYW5nZShudW1yYW5nZSg4LDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93 KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgt MiwwKSwgbnVtcmFuZ2UoOCw5KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0KKygxIHJvdykK KwogLS0gaW50ZXJzZWN0aW9uCiBTRUxFQ1QgbnVtbXVsdGlyYW5nZSgpICogbnVtbXVsdGly YW5nZSgpOwogID9jb2x1bW4/IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9yYW5nZXR5cGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0 eXBlcy5vdXQKaW5kZXggYTdjYzIyMGJmMGQuLmFiMjMwOWU4YzFkIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3JhbmdldHlwZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQKQEAgLTQ4MSw2ICs0ODEsNjAgQEAg c2VsZWN0IHJhbmdlX21pbnVzKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2Uo MC4wLDEyMC4yLCcoXScpKTsKICBlbXB0eQogKDEgcm93KQogCitzZWxlY3QgcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uKCdlbXB0eSc6Om51bXJhbmdlLCBudW1yYW5nZSgyLjAsIDMuMCkpOwor IHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCBy b3dzKQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4y KSwgJ2VtcHR5Jzo6bnVtcmFuZ2UpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjIpCisoMSByb3cpCisKK3NlbGVjdCByYW5n ZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjAsIDMu MCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgWzEuMSwyLjApCisoMSByb3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24o bnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjIsIDMuMCkpOworIHJhbmdlX3dpdGhv dXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjIpCisoMSBy b3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIs J1tdJyksIG51bXJhbmdlKDIuMCwgMy4wKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMS4xLDIuMCkKKygxIHJvdykKKworc2VsZWN0 IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjAsIDMuMCksIG51bXJhbmdlKDEu NSwgMi4wKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbMS4wLDEuNSkKKyBbMi4wLDMuMCkKKygyIHJvd3MpCisKK3NlbGVjdCByYW5n ZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5nZSgx MTAuMCwxMjAuMiwnKF0nKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBbMTAuMSwxMi4yXQorKDEgcm93KQorCitzZWxlY3QgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2UoMC4w LDEyMC4yLCcoXScpKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorKDAgcm93cykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihu dW1yYW5nZSgxLjAsMy4wLCdbXScpLCBudW1yYW5nZSgxLjUsMi4wLCcoXScpKTsKKyByYW5n ZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLjAsMS41 XQorICgyLjAsMy4wXQorKDIgcm93cykKKwogc2VsZWN0IG51bXJhbmdlKDQuNSwgNS41LCAn W10nKSAmJiBudW1yYW5nZSg1LjUsIDYuNSk7CiAgP2NvbHVtbj8gCiAtLS0tLS0tLS0tCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbAppbmRleCA0MWQ1NTI0 Mjg1YS4uMGJmYTcxY2FjYTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211 bHRpcmFuZ2V0eXBlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5n ZXR5cGVzLnNxbApAQCAtNDE0LDYgKzQxNCwyOCBAQCBTRUxFQ1QgbnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDMpLCBudW1yYW5nZSg0LDUpKSAtIG51bW11bHRpcmFuZ2UobnVtcmFuZ2Uo Miw5KQogU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1 KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDgsOSkpOwogU0VMRUNUIG51bW11bHRpcmFu Z2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdlKG51bXJh bmdlKC0yLDApLCBudW1yYW5nZSg4LDkpKTsKIAorLS0gd2l0aG91dF9wb3J0aW9uCitTRUxF Q1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZSgpLCBudW1tdWx0 aXJhbmdlKCkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRp cmFuZ2UoKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSk7CitTRUxFQ1QgbXVsdGly YW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSwgbnVt bXVsdGlyYW5nZSgpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1t dWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDMsNCkpLCBudW1tdWx0aXJhbmdl KCkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwy KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMyw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMSwyKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiwzKSkpOwor U0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCw4KSkpOworU0VMRUNUIG11bHRp cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51 bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCwyKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw4KSksIG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMCwyKSwgbnVtcmFuZ2UoMyw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0 aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw4KSksIG51bW11bHRpcmFu Z2UobnVtcmFuZ2UoMiwzKSwgbnVtcmFuZ2UoNSxudWxsKSkpOworU0VMRUNUIG11bHRpcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFu Z2UoNCw1KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoLTIsMCkpKTsKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51 bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiks IG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNSkpKTsKK1NFTEVD VCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEs MiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOSkpKTsKK1NF TEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdl KDEsMyksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsOSkpKTsK K1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJh bmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDgsOSkp KTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0y LDApLCBudW1yYW5nZSg4LDkpKSk7CisKIC0tIGludGVyc2VjdGlvbgogU0VMRUNUIG51bW11 bHRpcmFuZ2UoKSAqIG51bW11bHRpcmFuZ2UoKTsKIFNFTEVDVCBudW1tdWx0aXJhbmdlKCkg KiBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcmFuZ2V0eXBlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5n ZXR5cGVzLnNxbAppbmRleCBhNWVjZGY1MzcyZi4uN2ZjODA1ZDlmZmEgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3JhbmdldHlwZXMuc3FsCkBAIC0xMDcsNiArMTA3LDE2IEBAIHNlbGVjdCBu dW1yYW5nZSgxLjEsIDIuMiwnW10nKSAtIG51bXJhbmdlKDIuMCwgMy4wKTsKIHNlbGVjdCBy YW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDExMC4wLDEy MC4yLCcoXScpKTsKIHNlbGVjdCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1td JyksIG51bXJhbmdlKDAuMCwxMjAuMiwnKF0nKSk7CiAKK3NlbGVjdCByYW5nZV93aXRob3V0 X3BvcnRpb24oJ2VtcHR5Jzo6bnVtcmFuZ2UsIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxl Y3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgJ2VtcHR5Jzo6 bnVtcmFuZ2UpOworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEs IDIuMiksIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgbnVtcmFuZ2UoMi4yLCAzLjApKTsKK3NlbGVjdCBy YW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJyksIG51bXJhbmdl KDIuMCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEu MCwgMy4wKSwgbnVtcmFuZ2UoMS41LCAyLjApKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3Bv cnRpb24obnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5nZSgxMTAuMCwxMjAuMiwn KF0nKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIu MiwnW10nKSwgbnVtcmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsKK3NlbGVjdCByYW5nZV93aXRo b3V0X3BvcnRpb24obnVtcmFuZ2UoMS4wLDMuMCwnW10nKSwgbnVtcmFuZ2UoMS41LDIuMCwn KF0nKSk7CisKIHNlbGVjdCBudW1yYW5nZSg0LjUsIDUuNSwgJ1tdJykgJiYgbnVtcmFuZ2Uo NS41LCA2LjUpOwogc2VsZWN0IG51bXJhbmdlKDEuMCwgMi4wKSA8PCBudW1yYW5nZSgzLjAs IDQuMCk7CiBzZWxlY3QgbnVtcmFuZ2UoMS4wLCAzLjAsJ1tdJykgPDwgbnVtcmFuZ2UoMy4w LCA0LjAsJ1tdJyk7Ci0tIAoyLjQyLjAKCg== --------------QJ7G02LVkbGy9abPg7beeymq Content-Type: text/x-patch; charset=UTF-8; name="v46-0002-Fix-NOACTION-temporal-foreign-keys-when-the-refe.patch" Content-Disposition: attachment; filename*0="v46-0002-Fix-NOACTION-temporal-foreign-keys-when-the-refe.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlMjI2MTI5ODZlMzg0YjQ1ZTk3OTg5NDMwNzRkY2I0MDI4YmZkM2I4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgOSBOb3YgMjAyNCAxNDowNTo0OCAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggdjQ2IDIvOF0gRml4IE5PQUNUSU9OIHRlbXBvcmFsIGZvcmVp Z24ga2V5cyB3aGVuIHRoZQogcmVmZXJlbmNlZCBlbmRwb2ludHMgY2hhbmdlCgpJZiBhIHJl ZmVyZW5jZWQgVVBEQVRFIGNoYW5nZXMgdGhlIHRlbXBvcmFsIHN0YXJ0L2VuZCB0aW1lcywg c2hyaW5raW5nCnRoZSBzcGFuIHRoZSByb3cgaXMgdmFsaWQsIHdlIGdldCBhIGZhbHNlIHJl dHVybiBmcm9tIHJpX0NoZWNrX1BrX01hdGNoLApidXQgb3ZlcmxhcHBpbmcgcmVmZXJlbmNl cyBtYXkgc3RpbGwgYmUgdmFsaWQsIGlmIHRoZWlyIHJlZmVyZW5jZSBkaWRuJ3QKb3Zlcmxh cCB3aXRoIHRoZSByZW1vdmVkIHNwYW4uCgpXZSBuZWVkIHRvIGNvbnNpZGVyIHdoYXQgc3Bh bihzKSBhcmUgc3RpbGwgcHJvdmlkZWQgaW4gdGhlIHJlZmVyZW5jZWQKdGFibGUuIEluc3Rl YWQgb2YgcmV0dXJuaW5nIHRoYXQgZnJvbSByaV9DaGVja19Qa19NYXRjaCwgd2UgY2FuIGp1 c3QKd2UgbG9vayBpdCB1cCBpbiB0aGUgbWFpbiBTUUwgcXVlcnkuCgpSZXBvcnRlZC1ieTog U2FtIEdhYnJpZWxzc29uCkF1dGhvcjogUGF1bCBKdW5nd2lydGgKLS0tCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyAgICAgICAgICAgfCAxNiArKy0KIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyAgICAgICAgICAgfCA5OCArKysrKysrKysr KysrKysrKystCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCAgICAgICAg ICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5kYXQgICAgICAg ICAgIHwgIDYgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 ICAgICB8IDY4ICsrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRf b3ZlcmxhcHMuc3FsICAgICB8IDYwICsrKysrKysrKysrLQogNyBmaWxlcyBjaGFuZ2VkLCAy NDQgaW5zZXJ0aW9ucygrKSwgMTEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X2NvbnN0cmFpbnQuYwppbmRleCAwYzZhYzBiZTQxYy4uY2EwMDU2OWM0MGIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCkBAIC0xNjA5LDExICsxNjA5LDE0IEBAIERl Y29uc3RydWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3Ms CiAgKiBhZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCBpcyBhbHNvIGEgQ29udGFpbmVkQnkgb3Bl cmF0b3IsCiAgKiBidXQgb25lIHdob3NlIHJocyBpcyBhIG11bHRpcmFuZ2UuCiAgKiBUaGF0 IHdheSBmb3JlaWduIGtleXMgY2FuIGNvbXBhcmUgZmthdHRyIDxAIHJhbmdlX2FnZyhwa2F0 dHIpLgorICogaW50ZXJzZWN0b3Blcm9pZCBpcyB1c2VkIGJ5IE5PIEFDVElPTiBjb25zdHJh aW50cyB0byB0cmltIHRoZSByYW5nZSBiZWluZyBjb25zaWRlcmVkCisgKiB0byBqdXN0IHdo YXQgd2FzIHVwZGF0ZWQvZGVsZXRlZC4KICAqLwogdm9pZAogRmluZEZLUGVyaW9kT3BlcnMo T2lkIG9wY2xhc3MsCiAJCQkJICBPaWQgKmNvbnRhaW5lZGJ5b3Blcm9pZCwKLQkJCQkgIE9p ZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQpCisJCQkJICBPaWQgKmFnZ2VkY29udGFpbmVk YnlvcGVyb2lkLAorCQkJCSAgT2lkICppbnRlcnNlY3RvcGVyb2lkKQogewogCU9pZAkJCW9w ZmFtaWx5ID0gSW52YWxpZE9pZDsKIAlPaWQJCQlvcGNpbnR5cGUgPSBJbnZhbGlkT2lkOwpA QCAtMTY1NCw2ICsxNjU3LDE3IEBAIEZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAog CQkJCQkJCQkJIEFOWU1VTFRJUkFOR0VPSUQsCiAJCQkJCQkJCQkgYWdnZWRjb250YWluZWRi eW9wZXJvaWQsCiAJCQkJCQkJCQkgJnN0cmF0KTsKKworCXN3aXRjaCAob3BjaW50eXBlKSB7 CisJCWNhc2UgQU5ZUkFOR0VPSUQ6CisJCQkqaW50ZXJzZWN0b3Blcm9pZCA9IE9JRF9SQU5H RV9JTlRFUlNFQ1RfUkFOR0VfT1A7CisJCQlicmVhazsKKwkJY2FzZSBBTllNVUxUSVJBTkdF T0lEOgorCQkJKmludGVyc2VjdG9wZXJvaWQgPSBPSURfTVVMVElSQU5HRV9JTlRFUlNFQ1Rf TVVMVElSQU5HRV9PUDsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJPUiwg IlVuZXhwZWN0ZWQgb3BjaW50eXBlOiAldSIsIG9wY2ludHlwZSk7CisJfQogfQogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAzM2VhNjE5MjI0Yi4uN2UyMjcwZDg3 ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMDIyOCw4ICsxMDIyOCwx MCBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRU YWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCXsKIAkJT2lkCQkJcGVyaW9kb3Blcm9p ZDsKIAkJT2lkCQkJYWdnZWRwZXJpb2RvcGVyb2lkOworCQlPaWQJCQlpbnRlcnNlY3RvcGVy b2lkOwogCi0JCUZpbmRGS1BlcmlvZE9wZXJzKG9wY2xhc3Nlc1tudW1wa3MgLSAxXSwgJnBl cmlvZG9wZXJvaWQsICZhZ2dlZHBlcmlvZG9wZXJvaWQpOworCQlGaW5kRktQZXJpb2RPcGVy cyhvcGNsYXNzZXNbbnVtcGtzIC0gMV0sICZwZXJpb2RvcGVyb2lkLCAmYWdnZWRwZXJpb2Rv cGVyb2lkLAorCQkJCQkJICAmaW50ZXJzZWN0b3Blcm9pZCk7CiAJfQogCiAJLyogRmlyc3Qs IGNyZWF0ZSB0aGUgY29uc3RyYWludCBjYXRhbG9nIGVudHJ5IGl0c2VsZi4gKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKaW5kZXggMGQ4YjUzZDFiNzUuLjg5ZmQ4NGI3 YjlmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwpAQCAtMTI5LDYgKzEy OSw3IEBAIHR5cGVkZWYgc3RydWN0IFJJX0NvbnN0cmFpbnRJbmZvCiAJT2lkCQkJZmZfZXFf b3Byc1tSSV9NQVhfTlVNS0VZU107IC8qIGVxdWFsaXR5IG9wZXJhdG9ycyAoRksgPSBGSykg Ki8KIAlPaWQJCQlwZXJpb2RfY29udGFpbmVkX2J5X29wZXI7CS8qIGFueXJhbmdlIDxAIGFu eXJhbmdlICovCiAJT2lkCQkJYWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOyAvKiBm a2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikgKi8KKwlPaWQJCQlwZXJpb2RfaW50ZXJzZWN0 X29wZXI7CS8qIGFueXJhbmdlICogYW55cmFuZ2UgKi8KIAlkbGlzdF9ub2RlCXZhbGlkX2xp bms7CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQgZW50cmllcyAqLwogfSBSSV9Db25zdHJh aW50SW5mbzsKIApAQCAtNzM0LDggKzczNSwxMSBAQCByaV9yZXN0cmljdChUcmlnZ2VyRGF0 YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCSAqIG5vdCBkbyBhbnl0aGluZy4g IEhvd2V2ZXIsIHRoaXMgY2hlY2sgc2hvdWxkIG9ubHkgYmUgbWFkZSBpbiB0aGUgTk8KIAkg KiBBQ1RJT04gY2FzZTsgaW4gUkVTVFJJQ1QgY2FzZXMgd2UgZG9uJ3Qgd2lzaCB0byBhbGxv dyBhbm90aGVyIHJvdyB0byBiZQogCSAqIHN1YnN0aXR1dGVkLgorCSAqCisJICogSWYgdGhl IGZvcmVpZ24ga2V5IGhhcyBQRVJJT0QsIHdlIGluY29ycG9yYXRlIGxvb2tpbmcgZm9yIHJl cGxhY2VtZW50CisJICogcm93cyBpbiB0aGUgbWFpbiBTUUwgcXVlcnkgYmVsb3csIHNvIHdl IG5lZWRuJ3QgZG8gaXQgaGVyZS4KIAkgKi8KLQlpZiAoaXNfbm9fYWN0aW9uICYmCisJaWYg KGlzX25vX2FjdGlvbiAmJiAhcmlpbmZvLT5oYXNwZXJpb2QgJiYKIAkJcmlfQ2hlY2tfUGtf TWF0Y2gocGtfcmVsLCBma19yZWwsIG9sZHNsb3QsIHJpaW5mbykpCiAJewogCQl0YWJsZV9j bG9zZShma19yZWwsIFJvd1NoYXJlTG9jayk7CkBAIC03NTMsOCArNzU3LDEwIEBAIHJpX3Jl c3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJaWYg KChxcGxhbiA9IHJpX0ZldGNoUHJlcGFyZWRQbGFuKCZxa2V5KSkgPT0gTlVMTCkKIAl7CiAJ CVN0cmluZ0luZm9EYXRhIHF1ZXJ5YnVmOworCQljaGFyCQlwa3JlbG5hbWVbTUFYX1FVT1RF RF9SRUxfTkFNRV9MRU5dOwogCQljaGFyCQlma3JlbG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFN RV9MRU5dOwogCQljaGFyCQlhdHRuYW1lW01BWF9RVU9URURfTkFNRV9MRU5dOworCQljaGFy CQlwZXJpb2RhdHRuYW1lW01BWF9RVU9URURfTkFNRV9MRU5dOwogCQljaGFyCQlwYXJhbW5h bWVbMTZdOwogCQljb25zdCBjaGFyICpxdWVyeXNlcDsKIAkJT2lkCQkJcXVlcnlvaWRzW1JJ X01BWF9OVU1LRVlTXTsKQEAgLTc2Niw2ICs3NzIsMjYgQEAgcmlfcmVzdHJpY3QoVHJpZ2dl ckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX25vX2FjdGlvbikKIAkJICoJCSAgIEZPUiBLRVkg U0hBUkUgT0YgeAogCQkgKiBUaGUgdHlwZSBpZCdzIGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFy ZSB0aG9zZSBvZiB0aGUKIAkJICogY29ycmVzcG9uZGluZyBQSyBhdHRyaWJ1dGVzLgorCQkg KgorCQkgKiBGb3IgdGVtcG9yYWwgZm9yZWlnbiBrZXlzIGEgcmVmZXJlbmNlIGNvdWxkIHN0 aWxsIGJlIHZhbGlkLAorCQkgKiBpZiB0aGUgcmVmZXJlbmNlZCByYW5nZSBkaWRuJ3QgY2hh bmdlIHRvbyBtdWNoLgorCQkgKiBBbHNvIGlmIHRoZSByZWZlcmVuY2luZyB0aW1lIHNwYW4g ZXh0ZW5kcyBwYXN0IHRoZSBjdXJyZW50IFBLIHJvdywKKwkJICogd2UgZG9uJ3Qgd2FudCB0 byBjaGVjayB0aGF0IHBhcnQ6IHNvbWUgb3RoZXIgUEsgcm93IHNob3VsZCBmdWxmaWxsIGl0 LgorCQkgKiBXZSBvbmx5IHdhbnQgdG8gdmFsaWRhdGUgdGhlIHBhcnQgbWF0Y2hpbmcgdGhl IFBLIHJlY29yZCB3ZSd2ZSBjaGFuZ2VkLgorCQkgKiBUaGVyZWZvcmUgdG8gZmluZCBpbnZh bGlkIHJlY29yZHMgd2UgZG8gdGhpczoKKwkJICogU0VMRUNUIDEKKwkJICogRlJPTSBbT05M WV0gPGZrdGFibGU+IHgKKwkJICogV0hFUkUgJDEgPSB4LmZrYXR0MSBbQU5EIC4uLl0gQU5E ICRuICYmIHguZmtwZXJpb2QKKwkJICogQU5EIE5PVCBjb2FsZXNjZSgoeC5ma3BlcmlvZCAq ICRuKSA8QAorCQkgKiAgKFNFTEVDVCByYW5nZV9hZ2cocikKKwkJICogICBGUk9NIChTRUxF Q1QgeS5wa3BlcmlvZCByCisJCSAqICAgICAgICAgRlJPTSBbT05MWV0gPHBrdGFibGU+IHkK KwkJICogICAgICAgICBXSEVSRSAkMSA9IHkucGthdHQxIFtBTkQgLi4uXSBBTkQgJG4gJiYg eS5wa3BlcmlvZAorCQkgKiAgICAgICAgIEZPUiBLRVkgU0hBUkUgT0YgeSkgeTIpLCBmYWxz ZSkKKwkJICogRk9SIEtFWSBTSEFSRSBPRiB4CisJCSAqIFdlIG5lZWQgdGhlIGNvYWxlc2Nl IGluIGNhc2UgdGhlIGZpcnN0IHN1YnF1ZXJ5IHJldHVybnMgbm8gcm93cy4KKwkJICogV2Ug bmVlZCB0aGUgc2Vjb25kIHN1YnF1ZXJ5IGJlY2F1c2UgRk9SIEtFWSBTSEFSRSBkb2Vzbid0 IHN1cHBvcnQKKwkJICogYWdncmVnYXRlIHF1ZXJpZXMuCiAJCSAqIC0tLS0tLS0tLS0KIAkJ ICovCiAJCWluaXRTdHJpbmdJbmZvKCZxdWVyeWJ1Zik7CkBAIC03OTAsNiArODE2LDczIEBA IHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24p CiAJCQlxdWVyeXNlcCA9ICJBTkQiOwogCQkJcXVlcnlvaWRzW2ldID0gcGtfdHlwZTsKIAkJ fQorCisJCS8qCisJCSAqIERvbid0IGZhaWwgaWYgdGhlIHJlbWFpbmluZyBoaXN0b3J5IHN0 aWxsIGZ1bGZpbGxzIHRoZSByZWZlcmVuY2VzLgorCQkgKiBPbmx5IGNoZWNrIHRoZSBwYXJ0 IG9mIHRoZSByZWZlcmVuY2VzIGludGVyc2VjdGluZyB3aXRoIG9sZHNsb3QsCisJCSAqIHNp bmNlIHRoZSByZXN0IHdvdWxkIGJlIGZ1bGZpbGxlZCBieSBzb21lIG90aGVyIHBrIHJlY29y ZC4KKwkJICoKKwkJICogRm9yIE5PQUNUSU9OIHdlIGNhbiBxdWVyeSB0aGUgcGsgdGFibGUg YW5kIHVzZSB3aGF0ZXZlciB3ZSBmaW5kCisJCSAqIChpbnN0ZWFkIG9mIGNhbGxpbmcgcmlf Q2hlY2tfUGtfTWF0Y2ggYWJvdmUpLgorCQkgKi8KKwkJaWYgKHJpaW5mby0+aGFzcGVyaW9k ICYmIGlzX25vX2FjdGlvbikKKwkJeworCQkJT2lkCQkJCXBrX3BlcmlvZF90eXBlID0gUklB dHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSk7 CisJCQlPaWQJCQkJZmtfcGVyaW9kX3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCByaWluZm8t PmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKTsKKwkJCVN0cmluZ0luZm9EYXRhCWlu dGVyc2VjdGJ1ZjsKKwkJCVN0cmluZ0luZm9EYXRhCXJlcGxhY2VtZW50c2J1ZjsKKwkJCWNo YXIgKnBrX29ubHkgPSBwa19yZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJ VElPTkVEX1RBQkxFID8KKwkJCQkiIiA6ICJPTkxZICI7CisKKwkJCXF1b3RlT25lTmFtZShh dHRuYW1lLCBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5u a2V5cyAtIDFdKSk7CisJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIsIHJpaW5mby0+bmtl eXMpOworCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZxdWVyeWJ1ZiwgIiBBTkQgTk9U IGNvYWxlc2NlKCIpOworCisJCQkvKiBJbnRlcnNlY3QgdGhlIGZrIHdpdGggdGhlIG9sZCBw ayByYW5nZSAqLworCQkJaW5pdFN0cmluZ0luZm8oJmludGVyc2VjdGJ1Zik7CisJCQlhcHBl bmRTdHJpbmdJbmZvU3RyaW5nKCZpbnRlcnNlY3RidWYsICIoIik7CisJCQlyaV9HZW5lcmF0 ZVF1YWwoJmludGVyc2VjdGJ1ZiwgIiIsCisJCQkJCQkJYXR0bmFtZSwgZmtfcGVyaW9kX3R5 cGUsCisJCQkJCQkJcmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0X29wZXIsCisJCQkJCQkJcGFy YW1uYW1lLCBwa19wZXJpb2RfdHlwZSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZp bnRlcnNlY3RidWYsICIpIik7CisKKwkJCS8qIEZpbmQgdGhlIHJlbWFpbmluZyBoaXN0b3J5 ICovCisJCQlpbml0U3RyaW5nSW5mbygmcmVwbGFjZW1lbnRzYnVmKTsKKwkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoJnJlcGxhY2VtZW50c2J1ZiwgIihTRUxFQ1QgcGdfY2F0YWxvZy5y YW5nZV9hZ2cocikgRlJPTSAiKTsKKworCQkJcXVvdGVPbmVOYW1lKHBlcmlvZGF0dG5hbWUs IFJJQXR0TmFtZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0g MV0pKTsKKwkJCXF1b3RlUmVsYXRpb25OYW1lKHBrcmVsbmFtZSwgcGtfcmVsKTsKKwkJCWFw cGVuZFN0cmluZ0luZm8oJnJlcGxhY2VtZW50c2J1ZiwgIihTRUxFQ1QgeS4lcyByIEZST00g JXMlcyB5IiwKKwkJCQkJCQkgcGVyaW9kYXR0bmFtZSwgcGtfb25seSwgcGtyZWxuYW1lKTsK KworCQkJLyogUmVzdHJpY3QgcGsgcm93cyB0byB3aGF0IG1hdGNoZXMgKi8KKwkJCXF1ZXJ5 c2VwID0gIldIRVJFIjsKKwkJCWZvciAoaW50IGkgPSAwOyBpIDwgcmlpbmZvLT5ua2V5czsg aSsrKQorCQkJeworCQkJCU9pZAkJcGtfdHlwZSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5m by0+cGtfYXR0bnVtc1tpXSk7CisKKwkJCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwKKwkJCQkJ CQkgUklBdHROYW1lKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW2ldKSk7CisJCQkJc3By aW50ZihwYXJhbW5hbWUsICIkJWQiLCBpICsgMSk7CisJCQkJcmlfR2VuZXJhdGVRdWFsKCZy ZXBsYWNlbWVudHNidWYsIHF1ZXJ5c2VwLAorCQkJCQkJCQlwYXJhbW5hbWUsIHBrX3R5cGUs CisJCQkJCQkJCXJpaW5mby0+cHBfZXFfb3Byc1tpXSwKKwkJCQkJCQkJYXR0bmFtZSwgcGtf dHlwZSk7CisJCQkJcXVlcnlzZXAgPSAiQU5EIjsKKwkJCQlxdWVyeW9pZHNbaV0gPSBwa190 eXBlOworCQkJfQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmcmVwbGFjZW1lbnRzYnVm LCAiIEZPUiBLRVkgU0hBUkUgT0YgeSkgeTIpIik7CisKKwkJCXJpX0dlbmVyYXRlUXVhbCgm cXVlcnlidWYsICIiLAorCQkJCQkJCWludGVyc2VjdGJ1Zi5kYXRhLCBma19wZXJpb2RfdHlw ZSwKKwkJCQkJCQlyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3BlciwKKwkJ CQkJCQlyZXBsYWNlbWVudHNidWYuZGF0YSwgQU5ZTVVMVElSQU5HRU9JRCk7CisJCQkvKiBl bmQgb2YgY29hbGVzY2U6ICovCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZxdWVyeWJ1 ZiwgIiwgZmFsc2UpIik7CisJCX0KKwogCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZxdWVy eWJ1ZiwgIiBGT1IgS0VZIFNIQVJFIE9GIHgiKTsKIAogCQkvKiBQcmVwYXJlIGFuZCBzYXZl IHRoZSBwbGFuICovCkBAIC0yMjUxLDcgKzIzNDQsOCBAQCByaV9Mb2FkQ29uc3RyYWludElu Zm8oT2lkIGNvbnN0cmFpbnRPaWQpCiAKIAkJRmluZEZLUGVyaW9kT3BlcnMob3BjbGFzcywK IAkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyLAotCQkJCQkJICAm cmlpbmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIpOworCQkJCQkJICAmcmlp bmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXIsCisJCQkJCQkgICZyaWluZm8t PnBlcmlvZF9pbnRlcnNlY3Rfb3Blcik7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4IGJhMzVkNDgxZGIzLi4x YzI4Njk5N2I4MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJh aW50LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmgKQEAgLTI4 OCw3ICsyODgsOCBAQCBleHRlcm4gdm9pZCBEZWNvbnN0cnVjdEZrQ29uc3RyYWludFJvdyhI ZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogCQkJCQkJCQkJICAgaW50ICpudW1fZmtf ZGVsX3NldF9jb2xzLCBBdHRyTnVtYmVyICpma19kZWxfc2V0X2NvbHMpOwogZXh0ZXJuIHZv aWQgRmluZEZLUGVyaW9kT3BlcnMoT2lkIG9wY2xhc3MsCiAJCQkJCQkJICBPaWQgKmNvbnRh aW5lZGJ5b3Blcm9pZCwKLQkJCQkJCQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQp OworCQkJCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCwKKwkJCQkJCQkgIE9p ZCAqaW50ZXJzZWN0b3Blcm9pZCk7CiAKIGV4dGVybiBib29sIGNoZWNrX2Z1bmN0aW9uYWxf Z3JvdXBpbmcoT2lkIHJlbGlkLAogCQkJCQkJCQkJICBJbmRleCB2YXJubywgSW5kZXggdmFy bGV2ZWxzdXAsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX29wZXJhdG9y LmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfb3BlcmF0b3IuZGF0CmluZGV4IDRjODZm OTNjYjBjLi42ZDlkYzE1MjhkNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19vcGVyYXRvci5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19vcGVyYXRvci5k YXQKQEAgLTMxNTAsNyArMzE1MCw4IEBACiB7IG9pZCA9PiAnMzg5OScsIGRlc2NyID0+ICdy YW5nZSBkaWZmZXJlbmNlJywKICAgb3BybmFtZSA9PiAnLScsIG9wcmxlZnQgPT4gJ2FueXJh bmdlJywgb3BycmlnaHQgPT4gJ2FueXJhbmdlJywKICAgb3BycmVzdWx0ID0+ICdhbnlyYW5n ZScsIG9wcmNvZGUgPT4gJ3JhbmdlX21pbnVzJyB9LAoteyBvaWQgPT4gJzM5MDAnLCBkZXNj ciA9PiAncmFuZ2UgaW50ZXJzZWN0aW9uJywKK3sgb2lkID0+ICczOTAwJywgb2lkX3N5bWJv bCA9PiAnT0lEX1JBTkdFX0lOVEVSU0VDVF9SQU5HRV9PUCcsCisgIGRlc2NyID0+ICdyYW5n ZSBpbnRlcnNlY3Rpb24nLAogICBvcHJuYW1lID0+ICcqJywgb3BybGVmdCA9PiAnYW55cmFu Z2UnLCBvcHJyaWdodCA9PiAnYW55cmFuZ2UnLAogICBvcHJyZXN1bHQgPT4gJ2FueXJhbmdl Jywgb3ByY29tID0+ICcqKGFueXJhbmdlLGFueXJhbmdlKScsCiAgIG9wcmNvZGUgPT4gJ3Jh bmdlX2ludGVyc2VjdCcgfSwKQEAgLTM0MTcsNyArMzQxOCw4IEBACiB7IG9pZCA9PiAnNDM5 MycsIGRlc2NyID0+ICdtdWx0aXJhbmdlIG1pbnVzJywKICAgb3BybmFtZSA9PiAnLScsIG9w cmxlZnQgPT4gJ2FueW11bHRpcmFuZ2UnLCBvcHJyaWdodCA9PiAnYW55bXVsdGlyYW5nZScs CiAgIG9wcnJlc3VsdCA9PiAnYW55bXVsdGlyYW5nZScsIG9wcmNvZGUgPT4gJ211bHRpcmFu Z2VfbWludXMnIH0sCi17IG9pZCA9PiAnNDM5NCcsIGRlc2NyID0+ICdtdWx0aXJhbmdlIGlu dGVyc2VjdCcsCit7IG9pZCA9PiAnNDM5NCcsIG9pZF9zeW1ib2wgPT4gJ09JRF9NVUxUSVJB TkdFX0lOVEVSU0VDVF9NVUxUSVJBTkdFX09QJywKKyAgZGVzY3IgPT4gJ211bHRpcmFuZ2Ug aW50ZXJzZWN0JywKICAgb3BybmFtZSA9PiAnKicsIG9wcmxlZnQgPT4gJ2FueW11bHRpcmFu Z2UnLCBvcHJyaWdodCA9PiAnYW55bXVsdGlyYW5nZScsCiAgIG9wcnJlc3VsdCA9PiAnYW55 bXVsdGlyYW5nZScsIG9wcmNvbSA9PiAnKihhbnltdWx0aXJhbmdlLGFueW11bHRpcmFuZ2Up JywKICAgb3ByY29kZSA9PiAnbXVsdGlyYW5nZV9pbnRlcnNlY3QnIH0sCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCA0NzVh NTZmY2ZkYi4uOTJiOWMyOTkxN2YgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC93aXRob3V0X292ZXJsYXBzLm91dApAQCAtMTY5MCw3ICsxNjkwLDggQEAgREVMRVRF IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKIElOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKICAgKCdbNSw2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAogICAoJ1s1LDYpJywgZGF0ZXJhbmdl KCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEw JyksICdbNSw2KScpOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpCiBXSEVSRSBpZCA9ICdbNSw2KScg QU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsK IC0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNl ZCByb3dzOgpAQCAtMTcwMyw2ICsxNzA0LDM3IEBAIFVQREFURSB0ZW1wb3JhbF9ybmcKIFNF VCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0wMS0wMScg VEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpCiAgICAgICAgICAg ICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0 ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSBFTkQKIFdIRVJFIGlkID0gJ1s2 LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBi dXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9uZSBmdWxm aWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxsZWQgYnkg Ym90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDMtMDEnKSksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAn MjAxOC0wNi0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAx OC0wMS0xNScsICcyMDE4LTAyLTAxJyksICdbMSwyKScpLAorICAoJ1syLDMpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUtMDEnKSwgJ1sxLDIpJyk7CitVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4 LTAzLTAxJykKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEt MTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgZ3Jvd2luZyB0aGUgcmVmZXJlbmNlZCByYW5n ZSBpcyBmaW5lOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5E IHZhbGlkX2F0IEA+ICcyMDE4LTAxLTI1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIHNocmlu a2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBhbmQgY2hhbmdpbmcgdGhlIGlkIGludmFsaWRh dGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1sy LDMpJywgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScp CitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0 ZTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2Zr IiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBzdGlsbCByZWZl cmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gYSBQSyB1cGRh dGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIHJhbmdlOgor VVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzIsMyknCitXSEVSRSBpZCA9ICdbMSwy KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBkYXRl IG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsy MDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUg InRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gYSBQSyB1cGRhdGUgdGhhdCBsb3NlcyB0aW1l IGZyb20gYm90aCBlbmRzLCBidXQgaXMgc3RpbGwgdmFsaWQ6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzIsMyknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNSw2KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJyksICdbMiwzKScpOworVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUn LCAnMjAxOC0wMi0xNScpCitXSEVSRSBpZCA9ICdbMiwzKSc7CiAtLSBhIFBLIHVwZGF0ZSB0 aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKIFVQREFURSB0ZW1wb3Jh bF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDIt MDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CkBAIC0yMTc4LDcgKzIyMTAsOCBAQCBERUxFVEUg RlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOwogSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUwogICAoJ1s1LDYpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkpLAog ICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIw MTgtMDMtMDEnKSkpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScpOwogVVBEQVRFIHRlbXBv cmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTYtMDItMDEnLCAnMjAxNi0wMy0wMScpKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAz LTAxJykpOwogLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byBy ZWZlcmVuY2VkIHJvd3M6CkBAIC0yMTkxLDYgKzIyMjQsMzcgQEAgVVBEQVRFIHRlbXBvcmFs X21sdHJuZwogU0VUIHZhbGlkX2F0ID0gQ0FTRSBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcy MDE4LTAxLTAxJyBUSEVOIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAxLTA1JykpCiAgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRf YXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTA1JywgJzIwMTgtMDMtMDEnKSkgRU5ECiBXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBh IFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgbXVsdGlyYW5nZSBidXQgc3Rp bGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQg YnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxsZWQgYnkgYm90aCBw ayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpLAorICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDYtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTE1JywgJzIwMTgtMDItMDEnKSksICdbMSwyKScpLAorICAoJ1syLDMpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUtMDEnKSksICdbMSwyKScp OworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQorV0hFUkUgaWQgPSAn WzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVw ZGF0ZSBncm93aW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgaXMgZmluZToKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkKK1dIRVJFIGlkID0gJ1sxLDIpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMjUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgc2hy aW5raW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBp bnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVsdGlyYW5nZToKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQorV0hFUkUgaWQgPSAnWzEsMiknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CitFUlJPUjogIHVwZGF0ZSBvciBk ZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFsxLDIpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMy0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2Vk IGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gYSBQSyB1cGRh dGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIG11bHRpcmFu Z2U6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbMiwzKScKK1dIRVJFIGlk ID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAxLDIwMTgtMDMtMDEpfSkgaXMgc3Rp bGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4K Ky0tIGEgUEsgdXBkYXRlIHRoYXQgbG9zZXMgdGltZSBmcm9tIGJvdGggZW5kcywgYnV0IGlz IHN0aWxsIHZhbGlkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUworICAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s1LDYp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEn KSksICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScpKQor V0hFUkUgaWQgPSAnWzIsMyknOwogLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNl IGJvdGggYXJlIHJlZmVyZW5jZWQ6CiBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAy LTAxJykpCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IGNlNTgxNzFiYzM1Li44 ZjQ3Mjg2N2UyOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9v dmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFw cy5zcWwKQEAgLTEyMzUsNyArMTIzNSw4IEBAIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBX SEVSRSBpZCA9ICdbNSw2KSc7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTCiAgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpKSwKICAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1 JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKIFVQREFU RSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywg JzIwMTYtMDMtMDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CiAtLSBBIFBLIHVwZGF0ZSBzbGlk aW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKQEAgLTEyNDgsNiAr MTI0OSwzMyBAQCBVUERBVEUgdGVtcG9yYWxfcm5nCiBTRVQgdmFsaWRfYXQgPSBDQVNFIFdI RU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDEtMDUnKQogICAgICAgICAgICAgICAgICAgICBXSEVOIGxvd2Vy KHZhbGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVOIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScs ICcyMDE4LTAzLTAxJykgRU5ECiBXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0 ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYnV0IHN0aWxsIHZhbGlkOgorLS0g VGhlcmUgYXJlIHR3byByZWZlcmVuY2VzOiBvbmUgZnVsZmlsbGVkIGJ5IHRoZSBmaXJzdCBw ayByb3csCistLSB0aGUgb3RoZXIgZnVsZmlsbGVkIGJ5IGJvdGggcGsgcm93cyBjb21iaW5l ZC4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJykpLAorICAo J1sxLDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDYtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0w MScpLCAnWzEsMiknKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcy MDE4LTA1LTAxJyksICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpCitXSEVSRSBpZCA9 ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsg dXBkYXRlIGdyb3dpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgaXMgZmluZToKK1VQREFURSB0 ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0w MS0yNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQg cmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgcmFuZ2U6 CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbMiwzKScsIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzEsMikn IEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBj aGFuZ2luZyBvbmx5IHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgcmFuZ2U6CitVUERB VEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbMiwzKScKK1dIRVJFIGlkID0gJ1sxLDIpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgdGhh dCBsb3NlcyB0aW1lIGZyb20gYm90aCBlbmRzLCBidXQgaXMgc3RpbGwgdmFsaWQ6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzIsMykn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMK KyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJyksICdb MiwzKScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScpCitXSEVSRSBpZCA9ICdbMiwzKSc7CiAtLSBh IFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKIFVQ REFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAx JywgJzIwMTYtMDItMDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CkBAIC0xNjkyLDcgKzE3MjAs OCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOwog SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUwogICAo J1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgt MDItMDEnKSkpLAogICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKSkpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSks ICdbNSw2KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSksICdbNSw2KScpOwog VVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpKQogV0hFUkUgaWQgPSAnWzUs NiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJykpOwogLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBi ZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CkBAIC0xNzA1LDYgKzE3MzQsMzMgQEAgVVBE QVRFIHRlbXBvcmFsX21sdHJuZwogU0VUIHZhbGlkX2F0ID0gQ0FTRSBXSEVOIGxvd2VyKHZh bGlkX2F0KSA9ICcyMDE4LTAxLTAxJyBUSEVOIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpCiAgICAgICAgICAgICAgICAgICAgIFdIRU4g bG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDItMDEnIFRIRU4gZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSkgRU5ECiBXSEVSRSBpZCA9ICdb Niw3KSc7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgbXVsdGly YW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9u ZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxs ZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpLAorICAoJ1sxLDIpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDYtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEnKSksICdbMSwyKScpLAorICAoJ1syLDMp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUtMDEn KSksICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQor V0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7 CistLSBhIFBLIHVwZGF0ZSBncm93aW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgaXMg ZmluZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkKK1dIRVJFIGlk ID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMjUnOjpkYXRlOworLS0gYSBQ SyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgYW5kIGNoYW5n aW5nIHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVsdGlyYW5nZToKK1VQREFURSB0 ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQorV0hFUkUgaWQg PSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBL IHVwZGF0ZSBjaGFuZ2luZyBvbmx5IHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVs dGlyYW5nZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1syLDMpJworV0hF UkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7Cist LSBhIFBLIHVwZGF0ZSB0aGF0IGxvc2VzIHRpbWUgZnJvbSBib3RoIGVuZHMsIGJ1dCBpcyBz dGlsbCB2YWxpZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMKKyAgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNSw2KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJykp LCAnWzIsMyknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnKSkKK1dI RVJFIGlkID0gJ1syLDMpJzsKIC0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBi b3RoIGFyZSByZWZlcmVuY2VkOgogVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0w MScpKQogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwotLSAKMi40Mi4wCgo= --------------QJ7G02LVkbGy9abPg7beeymq Content-Type: text/x-patch; charset=UTF-8; name="v46-0003-Fix-RESTRICT-temporal-foreign-keys-when-the-refe.patch" Content-Disposition: attachment; filename*0="v46-0003-Fix-RESTRICT-temporal-foreign-keys-when-the-refe.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2MTY0MTcxNGZiZjI3YWUxMzQxNWRlM2ZmOGM2NmNhMWVmODI5OWYyIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFR1ZSwgMTIgTm92IDIwMjQgMDk6MTk6NDQgLTA4 MDAKU3ViamVjdDogW1BBVENIIHY0NiAzLzhdIEZpeCBSRVNUUklDVCB0ZW1wb3JhbCBmb3Jl aWduIGtleXMgd2hlbiB0aGUKIHJlZmVyZW5jZWQgZW5kcG9pbnRzIGNoYW5nZQoKQSBSRVNU SUNUIGZvcmVpZ24ga2V5IG11c3QgZmFpbCBpZiB0aGUgcmVmZXJlbmNlZCBrZXkgY2hhbmdl cy4gQQp0ZW1wb3JhbCBSRVNUUklDVCBmb3JlaWduIGtleSBzaG91bGQgZmFpbCBpZiB0aGUg a2V5IGNoYW5nZXMgZm9yIGEgc3Bhbgp0aGF0IGlzIHJlZmVyZW5jZWQuIENoYW5naW5nIHRo ZSBrZXkgZm9yIGFuIHVucmVmZXJlbmNlZCBzcGFuIGlzIG9rYXksCmV2ZW4gaWYgdGhhdCBy b3cgaXMgcmVmZXJlbmNlZCBkdXJpbmcgc29tZSBwb3J0aW9uIG9mIGl0cyBzcGFuIHRoYXQK ZGlkbid0IGNoYW5nZS4gVGhlcmVmb3JlIHdlIGhhdmUgdG8gY29tcHV0ZSB3aGljaCBwYXJ0 KHMpIHdlcmUgbG9zdCwgYW5kCmZhaWwgaWYgd2UgZmluZCBhbnkgcmVmZXJlbmNlcyBvdmVy bGFwcGluZyB0aG9zZSBwYXJ0cy4gV2UgY2FuIHN0aWxsIHVzZQp0aGUgc2FtZSBTUUwgYXMg bm9ybWFsLCBiZWNhdXNlIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBQRVJJT0QgcGFyYW1ldGVy CndlIHNlYXJjaCBmb3IuIFdlIGNhbiBjYWxsIHdpdGhvdXRfcG9ydGlvbiB0byBnZXQgdGhl IGxvc3QgcGFydHM6IHRoZXkKYXJlIG9sZHNsb3QucGtwZXJpb2QgLSBuZXdzbG90LnBrcGVy aW9kLiBUaGlzIGNvbW1pdCBhZGRzIGNvZGUgZm9yIHRoYXQKdG8gcmlfcmVzdHJpY3QsIGFs b25nIHdpdGggdGVzdHMuCgpBdXRob3I6IFBhdWwgSnVuZ3dpcnRoCi0tLQogc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgIDI1ICsrLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyAgICAgICAgICAgfCAxNTggKysrKysr KysrKysrKysrLS0tCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCAgICAg ICAgICAgfCAgIDkgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMu b3V0ICAgICB8ICA2OCArKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9v dmVybGFwcy5zcWwgICAgIHwgIDYwICsrKysrKy0KIDYgZmlsZXMgY2hhbmdlZCwgMjkxIGlu c2VydGlvbnMoKyksIDM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfY29uc3RyYWludC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25z dHJhaW50LmMKaW5kZXggY2EwMDU2OWM0MGIuLmZiZGJkYjgwODc5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX2NvbnN0cmFpbnQuYwpAQCAtMTYwMCw5ICsxNjAwLDkgQEAgRGVjb25zdHJ1 Y3RGa0NvbnN0cmFpbnRSb3coSGVhcFR1cGxlIHR1cGxlLCBpbnQgKm51bWZrcywKIH0KIAog LyoKLSAqIEZpbmRGS1BlcmlvZE9wZXJzIC0KKyAqIEZpbmRGa1BlcmlvZE9wZXJzQW5kUHJv Y3MgLQogICoKLSAqIExvb2tzIHVwIHRoZSBvcGVyYXRvciBvaWRzIHVzZWQgZm9yIHRoZSBQ RVJJT0QgcGFydCBvZiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LgorICogTG9va3MgdXAgdGhl IG9wZXJhdG9yIGFuZCBwcm9jZWR1cmUgb2lkcyB1c2VkIGZvciB0aGUgUEVSSU9EIHBhcnQg b2YgYSB0ZW1wb3JhbCBmb3JlaWduIGtleS4KICAqIFRoZSBvcGNsYXNzIHNob3VsZCBiZSB0 aGUgb3BjbGFzcyBvZiB0aGF0IFBFUklPRCBlbGVtZW50LgogICogRXZlcnl0aGluZyBlbHNl IGlzIGFuIG91dHB1dDogY29udGFpbmVkYnlvcGVyb2lkIGlzIHRoZSBDb250YWluZWRCeSBv cGVyYXRvciBmb3IKICAqIHR5cGVzIG1hdGNoaW5nIHRoZSBQRVJJT0QgZWxlbWVudC4KQEAg LTE2MTEsMTIgKzE2MTEsMTYgQEAgRGVjb25zdHJ1Y3RGa0NvbnN0cmFpbnRSb3coSGVhcFR1 cGxlIHR1cGxlLCBpbnQgKm51bWZrcywKICAqIFRoYXQgd2F5IGZvcmVpZ24ga2V5cyBjYW4g Y29tcGFyZSBma2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikuCiAgKiBpbnRlcnNlY3RvcGVy b2lkIGlzIHVzZWQgYnkgTk8gQUNUSU9OIGNvbnN0cmFpbnRzIHRvIHRyaW0gdGhlIHJhbmdl IGJlaW5nIGNvbnNpZGVyZWQKICAqIHRvIGp1c3Qgd2hhdCB3YXMgdXBkYXRlZC9kZWxldGVk LgorICogd2l0aG91dHBvcnRpb25vaWQgaXMgYSBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9uIGNv bXB1dGluZworICogdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBvbmUgcmFuZ2UgYW5kIGFub3Ro ZXIsCisgKiByZXR1cm5pbmcgZWFjaCByZXN1bHQgcmFuZ2UgaW4gYSBzZXBhcmF0ZSByb3cu CiAgKi8KIHZvaWQKLUZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAotCQkJCSAgT2lk ICpjb250YWluZWRieW9wZXJvaWQsCi0JCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVy b2lkLAotCQkJCSAgT2lkICppbnRlcnNlY3RvcGVyb2lkKQorRmluZEZLUGVyaW9kT3BlcnNB bmRQcm9jcyhPaWQgb3BjbGFzcywKKwkJCQkJCSAgT2lkICpjb250YWluZWRieW9wZXJvaWQs CisJCQkJCQkgIE9pZCAqYWdnZWRjb250YWluZWRieW9wZXJvaWQsCisJCQkJCQkgIE9pZCAq aW50ZXJzZWN0b3Blcm9pZCwKKwkJCQkJCSAgT2lkICp3aXRob3V0cG9ydGlvbm9pZCkKIHsK IAlPaWQJCQlvcGZhbWlseSA9IEludmFsaWRPaWQ7CiAJT2lkCQkJb3BjaW50eXBlID0gSW52 YWxpZE9pZDsKQEAgLTE2NjgsNiArMTY3MiwxNSBAQCBGaW5kRktQZXJpb2RPcGVycyhPaWQg b3BjbGFzcywKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJVbmV4cGVjdGVkIG9wY2lu dHlwZTogJXUiLCBvcGNpbnR5cGUpOwogCX0KKworCSp3aXRob3V0cG9ydGlvbm9pZCA9IElu dmFsaWRPaWQ7CisJKndpdGhvdXRwb3J0aW9ub2lkID0gZ2V0X29wZmFtaWx5X3Byb2Mob3Bm YW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCBHSVNUX1dJVEhPVVRfUE9SVElPTl9QUk9D KTsKKwlpZiAoIU9pZElzVmFsaWQoKndpdGhvdXRwb3J0aW9ub2lkKSkKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJZXJy bXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYSB3aXRob3V0X292ZXJsYXBzIHN1cHBvcnQgZnVu Y3Rpb24gZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShvcGNpbnR5cGUpKSwKKwkJCQll cnJoaW50KCJEZWZpbmUgYSB3aXRob3V0X292ZXJsYXBzIHN1cHBvcnQgZnVuY3Rpb24gZm9y IG9wZXJhdG9yIGNsYXNzIFwiJWRcIiBmb3IgYWNjZXNzIG1ldGhvZCBcIiVzXCIuIiwKKwkJ CQkJCW9wY2xhc3MsICJnaXN0IikpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYwppbmRleCA3ZTIyNzBkODdmNi4uMzU2ZmI2ZDFlYTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jCkBAIC0xMDIyOSw5ICsxMDIyOSwxMSBAQCBBVEFkZEZvcmVpZ25LZXlD b25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRp b24gcmVsLAogCQlPaWQJCQlwZXJpb2RvcGVyb2lkOwogCQlPaWQJCQlhZ2dlZHBlcmlvZG9w ZXJvaWQ7CiAJCU9pZAkJCWludGVyc2VjdG9wZXJvaWQ7CisJCU9pZAkJCXdpdGhvdXRvdmVy bGFwc29pZDsKIAotCQlGaW5kRktQZXJpb2RPcGVycyhvcGNsYXNzZXNbbnVtcGtzIC0gMV0s ICZwZXJpb2RvcGVyb2lkLCAmYWdnZWRwZXJpb2RvcGVyb2lkLAotCQkJCQkJICAmaW50ZXJz ZWN0b3Blcm9pZCk7CisJCUZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3Mob3BjbGFzc2VzW251 bXBrcyAtIDFdLCAmcGVyaW9kb3Blcm9pZCwKKwkJCQkJCQkJICAmYWdnZWRwZXJpb2RvcGVy b2lkLCAmaW50ZXJzZWN0b3Blcm9pZCwKKwkJCQkJCQkJICAmd2l0aG91dG92ZXJsYXBzb2lk KTsKIAl9CiAKIAkvKiBGaXJzdCwgY3JlYXRlIHRoZSBjb25zdHJhaW50IGNhdGFsb2cgZW50 cnkgaXRzZWxmLiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3Ry aWdnZXJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwppbmRleCA4 OWZkODRiN2I5Zi4uMTdiNjcxNDUwZGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9yaV90cmlnZ2Vycy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmln Z2Vycy5jCkBAIC0xMzAsNiArMTMwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUklfQ29uc3RyYWlu dEluZm8KIAlPaWQJCQlwZXJpb2RfY29udGFpbmVkX2J5X29wZXI7CS8qIGFueXJhbmdlIDxA IGFueXJhbmdlICovCiAJT2lkCQkJYWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOyAv KiBma2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikgKi8KIAlPaWQJCQlwZXJpb2RfaW50ZXJz ZWN0X29wZXI7CS8qIGFueXJhbmdlICogYW55cmFuZ2UgKi8KKwlPaWQJCQl3aXRob3V0X3Bv cnRpb25fcHJvYzsJLyogYW55cmFuZ2UgLSBhbnlyYW5nZSBTUkYgKi8KIAlkbGlzdF9ub2Rl CXZhbGlkX2xpbms7CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQgZW50cmllcyAqLwogfSBS SV9Db25zdHJhaW50SW5mbzsKIApAQCAtMjA3LDcgKzIwOCw3IEBAIHN0YXRpYyB2b2lkIHJp X0J1aWxkUXVlcnlLZXkoUklfUXVlcnlLZXkgKmtleSwKIAkJCQkJCQkgY29uc3QgUklfQ29u c3RyYWludEluZm8gKnJpaW5mbywKIAkJCQkJCQkgaW50MzIgY29uc3RyX3F1ZXJ5bm8pOwog c3RhdGljIGJvb2wgcmlfS2V5c0VxdWFsKFJlbGF0aW9uIHJlbCwgVHVwbGVUYWJsZVNsb3Qg Km9sZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAotCQkJCQkJIGNvbnN0IFJJX0Nv bnN0cmFpbnRJbmZvICpyaWluZm8sIGJvb2wgcmVsX2lzX3BrKTsKKwkJCQkJCSBjb25zdCBS SV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLCBib29sIHJlbF9pc19waywgYm9vbCBza2lwX3Bl cmlvZCk7CiBzdGF0aWMgYm9vbCByaV9Db21wYXJlV2l0aENhc3QoT2lkIGVxX29wciwgT2lk IHR5cGVpZCwgT2lkIGNvbGxpZCwKIAkJCQkJCQkgICBEYXR1bSBsaHMsIERhdHVtIHJocyk7 CiAKQEAgLTIyOSw2ICsyMzAsNyBAQCBzdGF0aWMgYm9vbCByaV9QZXJmb3JtQ2hlY2soY29u c3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAkJCQkJCQlSSV9RdWVyeUtleSAqcWtl eSwgU1BJUGxhblB0ciBxcGxhbiwKIAkJCQkJCQlSZWxhdGlvbiBma19yZWwsIFJlbGF0aW9u IHBrX3JlbCwKIAkJCQkJCQlUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCwgVHVwbGVUYWJsZVNs b3QgKm5ld3Nsb3QsCisJCQkJCQkJaW50IHBlcmlvZFBhcmFtLCBEYXR1bSBwZXJpb2QsCiAJ CQkJCQkJYm9vbCBpc19yZXN0cmljdCwKIAkJCQkJCQlib29sIGRldGVjdE5ld1Jvd3MsIGlu dCBleHBlY3RfT0spOwogc3RhdGljIHZvaWQgcmlfRXh0cmFjdFZhbHVlcyhSZWxhdGlvbiBy ZWwsIFR1cGxlVGFibGVTbG90ICpzbG90LApAQCAtNDUxLDYgKzQ1Myw3IEBAIFJJX0ZLZXlf Y2hlY2soVHJpZ2dlckRhdGEgKnRyaWdkYXRhKQogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8s ICZxa2V5LCBxcGxhbiwKIAkJCQkJZmtfcmVsLCBwa19yZWwsCiAJCQkJCU5VTEwsIG5ld3Ns b3QsCisJCQkJCS0xLCAoRGF0dW0pIDAsCiAJCQkJCWZhbHNlLAogCQkJCQlwa19yZWwtPnJk X3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFLAogCQkJCQlTUElf T0tfU0VMRUNUKTsKQEAgLTYxNiw2ICs2MTksNyBAQCByaV9DaGVja19Qa19NYXRjaChSZWxh dGlvbiBwa19yZWwsIFJlbGF0aW9uIGZrX3JlbCwKIAlyZXN1bHQgPSByaV9QZXJmb3JtQ2hl Y2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCQkJIGZrX3JlbCwgcGtfcmVsLAogCQkJ CQkJCSBvbGRzbG90LCBOVUxMLAorCQkJCQkJCSAtMSwgKERhdHVtKSAwLAogCQkJCQkJCSBm YWxzZSwKIAkJCQkJCQkgdHJ1ZSwJLyogdHJlYXQgbGlrZSB1cGRhdGUgKi8KIAkJCQkJCQkg U1BJX09LX1NFTEVDVCk7CkBAIC03MTQsOCArNzE4LDE4IEBAIHJpX3Jlc3RyaWN0KFRyaWdn ZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJUmVsYXRpb24JZmtfcmVs OwogCVJlbGF0aW9uCXBrX3JlbDsKIAlUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdDsKKwlUdXBs ZVRhYmxlU2xvdCAqbmV3c2xvdDsKIAlSSV9RdWVyeUtleSBxa2V5OwogCVNQSVBsYW5QdHIJ cXBsYW47CisJQXR0ck51bWJlcglwa3BlcmlvZGF0dG5vID0gSW52YWxpZEF0dHJOdW1iZXI7 CisJQXR0ck51bWJlcglma3BlcmlvZGF0dG5vID0gSW52YWxpZEF0dHJOdW1iZXI7CisJaW50 CQkJdGFyZ2V0UmFuZ2VQYXJhbSA9IC0xOworCURhdHVtCQl0YXJnZXRSYW5nZSA9IChEYXR1 bSkgMDsKKwlGbWdySW5mbwlmbGluZm87CisJUmV0dXJuU2V0SW5mbwlyc2k7CisJTE9DQUxf RkNJTkZPKGZjaW5mbywgMik7CisJYm9vbAkJbXVsdGlwbGVsb3N0ID0gZmFsc2U7CisJYm9v bAkJZmluaXNoZWQgPSBmYWxzZTsKIAogCXJpaW5mbyA9IHJpX0ZldGNoQ29uc3RyYWludElu Zm8odHJpZ2RhdGEtPnRnX3RyaWdnZXIsCiAJCQkJCQkJCQl0cmlnZGF0YS0+dGdfcmVsYXRp b24sIHRydWUpOwpAQCAtNzI5LDYgKzc0Myw3IEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRh ICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJZmtfcmVsID0gdGFibGVfb3Blbihy aWluZm8tPmZrX3JlbGlkLCBSb3dTaGFyZUxvY2spOwogCXBrX3JlbCA9IHRyaWdkYXRhLT50 Z19yZWxhdGlvbjsKIAlvbGRzbG90ID0gdHJpZ2RhdGEtPnRnX3RyaWdzbG90OworCW5ld3Ns b3QgPSB0cmlnZGF0YS0+dGdfbmV3c2xvdDsKIAogCS8qCiAJICogSWYgYW5vdGhlciBQSyBy b3cgbm93IGV4aXN0cyBwcm92aWRpbmcgdGhlIG9sZCBrZXkgdmFsdWVzLCB3ZSBzaG91bGQK QEAgLTc0Niw2ICs3NjEsMTIgQEAgcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRyaWdkYXRh LCBib29sIGlzX25vX2FjdGlvbikKIAkJcmV0dXJuIFBvaW50ZXJHZXREYXR1bShOVUxMKTsK IAl9CiAKKwlpZiAocmlpbmZvLT5oYXNwZXJpb2QpCisJeworCQlwa3BlcmlvZGF0dG5vID0g cmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXTsKKwkJZmtwZXJpb2RhdHRu byA9IHJpaW5mby0+ZmtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV07CisJfQorCiAJU1BJ X2Nvbm5lY3QoKTsKIAogCS8qCkBAIC03OTIsNiArODEzLDE2IEBAIHJpX3Jlc3RyaWN0KFRy aWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rpb24pCiAJCSAqIFdlIG5lZWQg dGhlIGNvYWxlc2NlIGluIGNhc2UgdGhlIGZpcnN0IHN1YnF1ZXJ5IHJldHVybnMgbm8gcm93 cy4KIAkJICogV2UgbmVlZCB0aGUgc2Vjb25kIHN1YnF1ZXJ5IGJlY2F1c2UgRk9SIEtFWSBT SEFSRSBkb2Vzbid0IHN1cHBvcnQKIAkJICogYWdncmVnYXRlIHF1ZXJpZXMuCisJCSAqCisJ CSAqIEZvciBSRVNUUklDVCBrZXlzIHdlIGNhbid0IHF1ZXJ5IHBrdGFibGUsIHNvIGluc3Rl YWQgd2UgdXNlIHRoZSBvbGQKKwkJICogYW5kIG5ldyBwZXJpb2RzIHRvIHNlZSB3aGF0IHdh cyByZW1vdmVkLCBhbmQgbG9vayBmb3IgcmVmZXJlbmNlcworCQkgKiBtYXRjaGluZyB0aGF0 LiBJZiB0aGUgc2NhbGFyIGtleSBwYXJ0IGNoYW5nZWQsIHRoZW4gdGhpcyBpcworCQkgKiAo d2hlcmUgJG4gaXMgdGhlIG9sZCBwZXJpb2QgYW5kICQybiB0aGUgbmV3KToKKwkJICogICAk biAmJiB4LmZrcGVyaW9kCisJCSAqIEJ1dCBpZiB0aGUgc2NhbGFyIGtleSBwYXJ0IGRpZG4n dCBjaGFuZ2UsIHRoZW4gd2Ugb25seSBsb3N0IHBhcnQgb2YKKwkJICogdGhlIHRpbWUgc3Bh biwgc28gd2Ugc2hvdWxkIGxvb2sgZm9yOgorCQkgKiAgIChTRUxFQ1QgcmFuZ2VfYWdnKHIp IEZST00gd2l0aG91dF9wb3J0aW9uKCRuLCAkMm4pIHdvKHIpKQorCQkgKiAgICAgJiYgeC5m a3BlcmlvZAogCQkgKiAtLS0tLS0tLS0tCiAJCSAqLwogCQlpbml0U3RyaW5nSW5mbygmcXVl cnlidWYpOwpAQCAtODI3LDE0ICs4NTgsMTQgQEAgcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEg KnRyaWdkYXRhLCBib29sIGlzX25vX2FjdGlvbikKIAkJICovCiAJCWlmIChyaWluZm8tPmhh c3BlcmlvZCAmJiBpc19ub19hY3Rpb24pCiAJCXsKLQkJCU9pZAkJCQlwa19wZXJpb2RfdHlw ZSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlz IC0gMV0pOwotCQkJT2lkCQkJCWZrX3BlcmlvZF90eXBlID0gUklBdHRUeXBlKGZrX3JlbCwg cmlpbmZvLT5ma19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSk7CisJCQlPaWQJCQkJcGtf cGVyaW9kX3R5cGUgPSBSSUF0dFR5cGUocGtfcmVsLCBwa3BlcmlvZGF0dG5vKTsKKwkJCU9p ZAkJCQlma19wZXJpb2RfdHlwZSA9IFJJQXR0VHlwZShma19yZWwsIGZrcGVyaW9kYXR0bm8p OwogCQkJU3RyaW5nSW5mb0RhdGEJaW50ZXJzZWN0YnVmOwogCQkJU3RyaW5nSW5mb0RhdGEJ cmVwbGFjZW1lbnRzYnVmOwogCQkJY2hhciAqcGtfb25seSA9IHBrX3JlbC0+cmRfcmVsLT5y ZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgPwogCQkJCSIiIDogIk9OTFkg IjsKIAotCQkJcXVvdGVPbmVOYW1lKGF0dG5hbWUsIFJJQXR0TmFtZShma19yZWwsIHJpaW5m by0+ZmtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pKTsKKwkJCXF1b3RlT25lTmFtZShh dHRuYW1lLCBSSUF0dE5hbWUoZmtfcmVsLCBma3BlcmlvZGF0dG5vKSk7CiAJCQlzcHJpbnRm KHBhcmFtbmFtZSwgIiQlZCIsIHJpaW5mby0+bmtleXMpOwogCiAJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKCZxdWVyeWJ1ZiwgIiBBTkQgTk9UIGNvYWxlc2NlKCIpOwpAQCAtODUyLDcg Kzg4Myw3IEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19u b19hY3Rpb24pCiAJCQlpbml0U3RyaW5nSW5mbygmcmVwbGFjZW1lbnRzYnVmKTsKIAkJCWFw cGVuZFN0cmluZ0luZm9TdHJpbmcoJnJlcGxhY2VtZW50c2J1ZiwgIihTRUxFQ1QgcGdfY2F0 YWxvZy5yYW5nZV9hZ2cocikgRlJPTSAiKTsKIAotCQkJcXVvdGVPbmVOYW1lKHBlcmlvZGF0 dG5hbWUsIFJJQXR0TmFtZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5r ZXlzIC0gMV0pKTsKKwkJCXF1b3RlT25lTmFtZShwZXJpb2RhdHRuYW1lLCBSSUF0dE5hbWUo cGtfcmVsLCBwa3BlcmlvZGF0dG5vKSk7CiAJCQlxdW90ZVJlbGF0aW9uTmFtZShwa3JlbG5h bWUsIHBrX3JlbCk7CiAJCQlhcHBlbmRTdHJpbmdJbmZvKCZyZXBsYWNlbWVudHNidWYsICIo U0VMRUNUIHkuJXMgciBGUk9NICVzJXMgeSIsCiAJCQkJCQkJIHBlcmlvZGF0dG5hbWUsIHBr X29ubHksIHBrcmVsbmFtZSk7CkBAIC04OTIsMTMgKzkyMyw4NiBAQCByaV9yZXN0cmljdChU cmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCiAJLyoKIAkgKiBX ZSBoYXZlIGEgcGxhbiBub3cuIFJ1biBpdCB0byBjaGVjayBmb3IgZXhpc3RpbmcgcmVmZXJl bmNlcy4KKwkgKgorCSAqIE5vcm1hbGx5IHdlIG9ubHkgbG9vcCBvbmNlIGhlcmUuIEJ1dCBp ZgorCSAqIHdlIGhhdmUgYSBSRVNUUklDVCBjb25zdHJhaW50IHdpdGggYSBQRVJJT0QsCisJ ICogd2UgbXVzdCBvbmx5IGNvbnNpZGVyIHRoZSB0aW1lc3BhbiB0aGF0IHdhcyBsb3N0Lgor CSAqCisJICogSWYgdGhlIHNjYWxhciBrZXkgcGFydCB3YXMgVVBEQVRFZCwKKwkgKiB0aGVu IGFsbCBvZiBvbGRzbG90LnBrcGVyaW9kIHdhcyBsb3N0CisJICogKHdoZXRoZXIgdGhlIGVu ZHBvaW50cyBjaGFuZ2VkIG9yIG5vdCkuCisJICogVGhhdCdzIHdoYXQgd2UgYWxyZWFkeSBj aGVjayBieSBkZWZhdWx0LgorCSAqCisJICogT3RoZXJ3aXNlIG9ubHkgb2xkc2xvdC5wa3Bl cmlvZCAtIG5ld3Nsb3QucGtwZXJpb2Qgd2FzIGxvc3QuCisJICogVGhhdCBtYXkgYmUgbW9y ZSB0aGFuIG9uZSByYW5nZSwgc28gd2UgdXNlIHRoZQorCSAqIHdpdGhvdXRfcG9ydGlvbiBz ZXQtcmV0dXJuaW5nIGZ1bmN0aW9uIGFuZCBsb29wCisJICogb3ZlciBpdHMgcmVzdWx0cy4g SXQgYWxzbyBtYXkgYmUgZW1wdHksCisJICogbWVhbmluZyBub3RoaW5nIHdhcyBsb3N0LCBh bmQgbm8gY2hlY2sgaXMgcmVxdWlyZWQuCisJICogV2Ugc2hvdWxkbid0IGJlIGhlcmUgaWYg bmVpdGhlciB0aGUgc2NhbGFyIG5vciBQRVJJT0QgcGFydCBjaGFuZ2VkLAorCSAqIGJ1dCBp dCdzIGVhc3kgdG8gc3VwcG9ydCBhbnl3YXkuCisJICoKKwkgKiBGb3IgYSBERUxFVEUsIG9s ZHNsb3QucGtwZXJpb2Qgd2FzIGxvc3QsCisJICogd2hpY2ggaXMgd2hhdCB3ZSBjaGVjayBm b3IgYnkgZGVmYXVsdC4KIAkgKi8KLQlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAmcWtleSwg cXBsYW4sCi0JCQkJCWZrX3JlbCwgcGtfcmVsLAotCQkJCQlvbGRzbG90LCBOVUxMLAotCQkJ CQkhaXNfbm9fYWN0aW9uLAotCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3IHJvd3Mg Ki8KLQkJCQkJU1BJX09LX1NFTEVDVCk7CisJaWYgKHJpaW5mby0+aGFzcGVyaW9kICYmICFp c19ub19hY3Rpb24pCisJeworCQlpZiAoVFJJR0dFUl9GSVJFRF9CWV9VUERBVEUodHJpZ2Rh dGEtPnRnX2V2ZW50KQorCQkJJiYgcmlfS2V5c0VxdWFsKHBrX3JlbCwgb2xkc2xvdCwgbmV3 c2xvdCwgcmlpbmZvLCB0cnVlLCB0cnVlKSkKKwkJeworCQkJbXVsdGlwbGVsb3N0ID0gdHJ1 ZTsKKworCQkJZm1ncl9pbmZvKHJpaW5mby0+d2l0aG91dF9wb3J0aW9uX3Byb2MsICZmbGlu Zm8pOworCQkJcnNpLnR5cGUgPSBUX1JldHVyblNldEluZm87CisJCQlyc2kuZWNvbnRleHQg PSBDcmVhdGVTdGFuZGFsb25lRXhwckNvbnRleHQoKTsKKwkJCXJzaS5leHBlY3RlZERlc2Mg PSBOVUxMOworCQkJcnNpLmFsbG93ZWRNb2RlcyA9IChpbnQpIChTRlJNX1ZhbHVlUGVyQ2Fs bCk7CisJCQlyc2kucmV0dXJuTW9kZSA9IFNGUk1fVmFsdWVQZXJDYWxsOworCQkJcnNpLnNl dFJlc3VsdCA9IE5VTEw7CisJCQlyc2kuc2V0RGVzYyA9IE5VTEw7CisKKwkJCUluaXRGdW5j dGlvbkNhbGxJbmZvRGF0YSgqZmNpbmZvLCAmZmxpbmZvLCAyLCBJbnZhbGlkT2lkLCBOVUxM LCAoTm9kZSAqKSAmcnNpKTsKKwkJCWZjaW5mby0+YXJnc1swXS52YWx1ZSA9IHNsb3RfZ2V0 YXR0cihvbGRzbG90LCBwa3BlcmlvZGF0dG5vLAorCQkJCQkJCQkJCQkJICZmY2luZm8tPmFy Z3NbMF0uaXNudWxsKTsKKwkJCWZjaW5mby0+YXJnc1sxXS52YWx1ZSA9IHNsb3RfZ2V0YXR0 cihuZXdzbG90LCBwa3BlcmlvZGF0dG5vLAorCQkJCQkJCQkJCQkJICZmY2luZm8tPmFyZ3Nb MV0uaXNudWxsKTsKKworCQkJdGFyZ2V0UmFuZ2VQYXJhbSA9IHJpaW5mby0+bmtleXM7CisJ CX0KKwl9CisKKwl3aGlsZSAoIWZpbmlzaGVkKQorCXsKKwkJaWYgKG11bHRpcGxlbG9zdCkK KwkJeworCQkJLyogQ29tcHV0ZSBhIHNwYW4gdGhhdCB3YXMgYWN0dWFsbHkgbG9zdC4gKi8K KwkJCXRhcmdldFJhbmdlID0gRnVuY3Rpb25DYWxsSW52b2tlKGZjaW5mbyk7CisKKwkJCS8q CisJCQkgKiBJZiB3ZSBoYXZlIG5vIG1vcmUgbG9zdCBzcGFucyB0byBjaGVjaywgd2UncmUg ZG9uZS4KKwkJCSAqIElmIG5vIHNwYW4gd2FzIGxvc3QsIHdlIGRvbid0IGV2ZW4gbmVlZCB0 byBjaGVjayB0aGUgZm9yZWlnbiBrZXkuCisJCQkgKi8KKwkJCWlmIChyc2kuaXNEb25lID09 IEV4cHJFbmRSZXN1bHQpCisJCQkJYnJlYWs7CisKKwkJCWlmIChmY2luZm8tPmlzbnVsbCkK KwkJCQllbG9nKEVSUk9SLCAiR2V0IGEgbnVsbCBmcm9tIHdpdGhvdXRfcG9ydGlvbiBmdW5j dGlvbiIpOworCQl9CisJCWVsc2UKKwkJCWZpbmlzaGVkID0gdHJ1ZTsKKworCQlyaV9QZXJm b3JtQ2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCisJCQkJCQlma19yZWwsIHBrX3JlbCwK KwkJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCQl0YXJnZXRSYW5nZVBhcmFtLCB0YXJnZXRS YW5nZSwKKwkJCQkJCSFpc19ub19hY3Rpb24sCisJCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRl Y3QgbmV3IHJvd3MgKi8KKwkJCQkJCVNQSV9PS19TRUxFQ1QpOworCisJfQorCisJLyogRnJl ZSB0aGlzIGJlZm9yZSB3ZSBzaHV0IGRvd24gU1BJIHNpbmNlIG91ciBtZW1jdHggaXMgYSBj aGlsZCAqLworCWlmIChtdWx0aXBsZWxvc3QpCisJCUZyZWVFeHByQ29udGV4dChyc2kuZWNv bnRleHQsIGZhbHNlKTsKIAogCWlmIChTUElfZmluaXNoKCkgIT0gU1BJX09LX0ZJTklTSCkK IAkJZWxvZyhFUlJPUiwgIlNQSV9maW5pc2ggZmFpbGVkIik7CkBAIC05OTgsNiArMTEwMiw3 IEBAIFJJX0ZLZXlfY2FzY2FkZV9kZWwoUEdfRlVOQ1RJT05fQVJHUykKIAlyaV9QZXJmb3Jt Q2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCWZrX3JlbCwgcGtfcmVsLAogCQkJ CQlvbGRzbG90LCBOVUxMLAorCQkJCQktMSwgKERhdHVtKSAwLAogCQkJCQlmYWxzZSwKIAkJ CQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCiAJCQkJCVNQSV9PS19ERUxF VEUpOwpAQCAtMTExNSw2ICsxMjIwLDcgQEAgUklfRktleV9jYXNjYWRlX3VwZChQR19GVU5D VElPTl9BUkdTKQogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKIAkJ CQkJZmtfcmVsLCBwa19yZWwsCiAJCQkJCW9sZHNsb3QsIG5ld3Nsb3QsCisJCQkJCS0xLCAo RGF0dW0pIDAsCiAJCQkJCWZhbHNlLAogCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3 IHJvd3MgKi8KIAkJCQkJU1BJX09LX1VQREFURSk7CkBAIC0xMzQzLDYgKzE0NDksNyBAQCBy aV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX3NldF9udWxsLCBpbnQgdGdr aW5kKQogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKIAkJCQkJZmtf cmVsLCBwa19yZWwsCiAJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCS0xLCAoRGF0dW0pIDAs CiAJCQkJCWZhbHNlLAogCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3IHJvd3MgKi8K IAkJCQkJU1BJX09LX1VQREFURSk7CkBAIC0xNDAxLDcgKzE1MDgsNyBAQCBSSV9GS2V5X3Br X3VwZF9jaGVja19yZXF1aXJlZChUcmlnZ2VyICp0cmlnZ2VyLCBSZWxhdGlvbiBwa19yZWws CiAJCXJldHVybiBmYWxzZTsKIAogCS8qIElmIGFsbCBvbGQgYW5kIG5ldyBrZXkgdmFsdWVz IGFyZSBlcXVhbCwgbm8gY2hlY2sgaXMgbmVlZGVkICovCi0JaWYgKG5ld3Nsb3QgJiYgcmlf S2V5c0VxdWFsKHBrX3JlbCwgb2xkc2xvdCwgbmV3c2xvdCwgcmlpbmZvLCB0cnVlKSkKKwlp ZiAobmV3c2xvdCAmJiByaV9LZXlzRXF1YWwocGtfcmVsLCBvbGRzbG90LCBuZXdzbG90LCBy aWluZm8sIHRydWUsIGZhbHNlKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogRWxzZSB3ZSBu ZWVkIHRvIGZpcmUgdGhlIHRyaWdnZXIuICovCkBAIC0xNDk0LDcgKzE2MDEsNyBAQCBSSV9G S2V5X2ZrX3VwZF9jaGVja19yZXF1aXJlZChUcmlnZ2VyICp0cmlnZ2VyLCBSZWxhdGlvbiBm a19yZWwsCiAJCXJldHVybiB0cnVlOwogCiAJLyogSWYgYWxsIG9sZCBhbmQgbmV3IGtleSB2 YWx1ZXMgYXJlIGVxdWFsLCBubyBjaGVjayBpcyBuZWVkZWQgKi8KLQlpZiAocmlfS2V5c0Vx dWFsKGZrX3JlbCwgb2xkc2xvdCwgbmV3c2xvdCwgcmlpbmZvLCBmYWxzZSkpCisJaWYgKHJp X0tleXNFcXVhbChma19yZWwsIG9sZHNsb3QsIG5ld3Nsb3QsIHJpaW5mbywgZmFsc2UsIGZh bHNlKSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyogRWxzZSB3ZSBuZWVkIHRvIGZpcmUgdGhl IHRyaWdnZXIuICovCkBAIC0yMzQyLDEwICsyNDQ5LDExIEBAIHJpX0xvYWRDb25zdHJhaW50 SW5mbyhPaWQgY29uc3RyYWludE9pZCkKIAl7CiAJCU9pZAkJCW9wY2xhc3MgPSBnZXRfaW5k ZXhfY29sdW1uX29wY2xhc3MoY29uRm9ybS0+Y29uaW5kaWQsIHJpaW5mby0+bmtleXMpOwog Ci0JCUZpbmRGS1BlcmlvZE9wZXJzKG9wY2xhc3MsCi0JCQkJCQkgICZyaWluZm8tPnBlcmlv ZF9jb250YWluZWRfYnlfb3BlciwKLQkJCQkJCSAgJnJpaW5mby0+YWdnZWRfcGVyaW9kX2Nv bnRhaW5lZF9ieV9vcGVyLAotCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0X29w ZXIpOworCQlGaW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKG9wY2xhc3MsCisJCQkJCQkJCSAg JnJpaW5mby0+cGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyLAorCQkJCQkJCQkgICZyaWluZm8t PmFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3BlciwKKwkJCQkJCQkJICAmcmlpbmZvLT5w ZXJpb2RfaW50ZXJzZWN0X29wZXIsCisJCQkJCQkJCSAgJnJpaW5mby0+d2l0aG91dF9wb3J0 aW9uX3Byb2MpOwogCX0KIAogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwpAQCAtMjQ4OCw2ICsy NTk2LDcgQEAgcmlfUGVyZm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWlu Zm8sCiAJCQkJUklfUXVlcnlLZXkgKnFrZXksIFNQSVBsYW5QdHIgcXBsYW4sCiAJCQkJUmVs YXRpb24gZmtfcmVsLCBSZWxhdGlvbiBwa19yZWwsCiAJCQkJVHVwbGVUYWJsZVNsb3QgKm9s ZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAorCQkJCWludCBwZXJpb2RQYXJhbSwg RGF0dW0gcGVyaW9kLAogCQkJCWJvb2wgaXNfcmVzdHJpY3QsCiAJCQkJYm9vbCBkZXRlY3RO ZXdSb3dzLCBpbnQgZXhwZWN0X09LKQogewpAQCAtMjU0NCw2ICsyNjUzLDEyIEBAIHJpX1Bl cmZvcm1DaGVjayhjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAogCQlyaV9FeHRy YWN0VmFsdWVzKHNvdXJjZV9yZWwsIG9sZHNsb3QsIHJpaW5mbywgc291cmNlX2lzX3BrLAog CQkJCQkJIHZhbHMsIG51bGxzKTsKIAl9CisJLyogQWRkL3JlcGxhY2UgYSBxdWVyeSBwYXJh bSBmb3IgdGhlIFBFUklPRCBpZiBuZWVkZWQgKi8KKwlpZiAocGVyaW9kKQorCXsKKwkJdmFs c1twZXJpb2RQYXJhbSAtIDFdID0gcGVyaW9kOworCQludWxsc1twZXJpb2RQYXJhbSAtIDFd ID0gJyAnOworCX0KIAogCS8qCiAJICogSW4gUkVBRCBDT01NSVRURUQgbW9kZSwgd2UganVz dCBuZWVkIHRvIHVzZSBhbiB1cC10by1kYXRlIHJlZ3VsYXIKQEAgLTI5NzgsNiArMzA5Myw5 IEBAIHJpX0hhc2hQcmVwYXJlZFBsYW4oUklfUXVlcnlLZXkgKmtleSwgU1BJUGxhblB0ciBw bGFuKQogICogRm9yIG5vcm1hbCBGS3Mgd2UgY2hlY2sgZm9yIGVxdWFsaXR5LgogICogRm9y IHRlbXBvcmFsIEZLcyB3ZSBjaGVjayB0aGF0IHRoZSBQSyBzaWRlIGlzIGEgc3VwZXJzZXQg b2YgaXRzIG9sZCB2YWx1ZSwKICAqIG9yIHRoZSBGSyBzaWRlIGlzIGEgc3Vic2V0IG9mIGl0 cyBvbGQgdmFsdWUuCisgKiBJZiBza2lwX3BlcmlvZCBpcyBzZXQsIHdlIGlnbm9yZSB0aGUg bGFzdCBrZXkgZWxlbWVudC4KKyAqIFRoaXMgbGV0cyB1cyBhc2sgaWYgdGhlIHNjYWxhciBr ZXkgcGFydHMgY2hhbmdlZCwKKyAqIGlnbm9yaW5nIHRoZSBQRVJJT0QuCiAgKgogICogTm90 ZTogYXQgc29tZSBwb2ludCB3ZSBtaWdodCB3aXNoIHRvIHJlZGVmaW5lIHRoaXMgYXMgY2hl Y2tpbmcgZm9yCiAgKiAiSVMgTk9UIERJU1RJTkNUIiByYXRoZXIgdGhhbiAiPSIsIHRoYXQg aXMsIGFsbG93IHR3byBudWxscyB0byBiZQpAQCAtMjk4NiwxNyArMzEwNCwxOSBAQCByaV9I YXNoUHJlcGFyZWRQbGFuKFJJX1F1ZXJ5S2V5ICprZXksIFNQSVBsYW5QdHIgcGxhbikKICAq Lwogc3RhdGljIGJvb2wKIHJpX0tleXNFcXVhbChSZWxhdGlvbiByZWwsIFR1cGxlVGFibGVT bG90ICpvbGRzbG90LCBUdXBsZVRhYmxlU2xvdCAqbmV3c2xvdCwKLQkJCSBjb25zdCBSSV9D b25zdHJhaW50SW5mbyAqcmlpbmZvLCBib29sIHJlbF9pc19waykKKwkJCSBjb25zdCBSSV9D b25zdHJhaW50SW5mbyAqcmlpbmZvLCBib29sIHJlbF9pc19waywgYm9vbCBza2lwX3Blcmlv ZCkKIHsKIAljb25zdCBpbnQxNiAqYXR0bnVtczsKIAorCUFzc2VydChza2lwX3BlcmlvZCA/ IHJpaW5mby0+aGFzcGVyaW9kIDogdHJ1ZSk7CisKIAlpZiAocmVsX2lzX3BrKQogCQlhdHRu dW1zID0gcmlpbmZvLT5wa19hdHRudW1zOwogCWVsc2UKIAkJYXR0bnVtcyA9IHJpaW5mby0+ ZmtfYXR0bnVtczsKIAogCS8qIFhYWDogY291bGQgYmUgd29ydGh3aGlsZSB0byBmZXRjaCBh bGwgbmVjZXNzYXJ5IGF0dHJzIGF0IG9uY2UgKi8KLQlmb3IgKGludCBpID0gMDsgaSA8IHJp aW5mby0+bmtleXM7IGkrKykKKwlmb3IgKGludCBpID0gMDsgaSA8IHJpaW5mby0+bmtleXMg LSAoc2tpcF9wZXJpb2QgPyAxIDogMCk7IGkrKykKIAl7CiAJCURhdHVtCQlvbGR2YWx1ZTsK IAkJRGF0dW0JCW5ld3ZhbHVlOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jb25zdHJhaW50LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaApp bmRleCAxYzI4Njk5N2I4MC4uMGQ5MGRkMGMxNzkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfY29uc3RyYWludC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y29uc3RyYWludC5oCkBAIC0yODYsMTAgKzI4NiwxMSBAQCBleHRlcm4gdm9pZCBEZWNvbnN0 cnVjdEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogCQkJ CQkJCQkJICAgQXR0ck51bWJlciAqY29ua2V5LCBBdHRyTnVtYmVyICpjb25ma2V5LAogCQkJ CQkJCQkJICAgT2lkICpwZl9lcV9vcHJzLCBPaWQgKnBwX2VxX29wcnMsIE9pZCAqZmZfZXFf b3BycywKIAkJCQkJCQkJCSAgIGludCAqbnVtX2ZrX2RlbF9zZXRfY29scywgQXR0ck51bWJl ciAqZmtfZGVsX3NldF9jb2xzKTsKLWV4dGVybiB2b2lkIEZpbmRGS1BlcmlvZE9wZXJzKE9p ZCBvcGNsYXNzLAotCQkJCQkJCSAgT2lkICpjb250YWluZWRieW9wZXJvaWQsCi0JCQkJCQkJ ICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVyb2lkLAotCQkJCQkJCSAgT2lkICppbnRlcnNl Y3RvcGVyb2lkKTsKK2V4dGVybiB2b2lkIEZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3MoT2lk IG9wY2xhc3MsCisJCQkJCQkJCQkgIE9pZCAqY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJ CQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJCQkJICBPaWQgKmlu dGVyc2VjdG9wZXJvaWQsCisJCQkJCQkJCQkgIE9pZCAqd2l0aG91dHBvcnRpb25vaWQpOwog CiBleHRlcm4gYm9vbCBjaGVja19mdW5jdGlvbmFsX2dyb3VwaW5nKE9pZCByZWxpZCwKIAkJ CQkJCQkJCSAgSW5kZXggdmFybm8sIEluZGV4IHZhcmxldmVsc3VwLApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKaW5kZXggOTJiOWMy OTkxN2YuLjNiY2FlMDRhMjY5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKQEAgLTE3NzgsNyArMTc3OCw4IEBAIERFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CiBJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCiAgICgnWzUsNiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKICAgKCdbNSw2KScsIGRhdGVyYW5nZSgn MjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcp LCAnWzUsNiknKTsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKQogV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CiAt LSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQg cm93czoKQEAgLTE3OTMsNiArMTc5NCwzNyBAQCBTRVQgdmFsaWRfYXQgPSBDQVNFIFdIRU4g bG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAx LQogV0hFUkUgaWQgPSAnWzYsNyknOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIFJFU1RSSUNUIHNldHRpbmcgb2YgZm9yZWln biBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRl bXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs2LDcp LCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0 ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVm ZXJlbmNlZCByYW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVy ZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhl ciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSksCisgICgnWzEsMiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDMtMDEnLCAnMjAxOC0wNi0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJyksICdbMSwyKScpLAorICAo J1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUtMDEnKSwgJ1sxLDIp Jyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAx OC0wMS0xNScsICcyMDE4LTAzLTAxJykKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgZ3Jvd2luZyB0aGUg cmVmZXJlbmNlZCByYW5nZSBpcyBmaW5lOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpCitXSEVSRSBp ZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTI1Jzo6ZGF0ZTsKKy0tIGEg UEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBhbmQgY2hhbmdpbmcg dGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0ZW1wb3JhbF9y bmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMTUn LCAnMjAxOC0wMy0wMScpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcy MDE4LTAxLTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAi dGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5nIG9mIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19ybmcycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIw MTgtMDEtMDEsMjAxOC0wMy0wMSkpIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9y YWxfZmtfcm5nMnJuZyIuCistLSBhIFBLIHVwZGF0ZSBjaGFuZ2luZyBvbmx5IHRoZSBpZCBp bnZhbGlkYXRlcyB0aGUgd2hvbGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBp ZCA9ICdbMiwzKScKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgt MDEtMTUnOjpkYXRlOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9ybmciIHZpb2xhdGVzIFJFU1RSSUNUIHNldHRpbmcgb2YgZm9yZWlnbiBrZXkgY29u c3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2Zr X3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0w MS0wMSwyMDE4LTAzLTAxKSkgaXMgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9m a19ybmcycm5nIi4KKy0tIGEgUEsgdXBkYXRlIHRoYXQgbG9zZXMgdGltZSBmcm9tIGJvdGgg ZW5kcywgYnV0IGlzIHN0aWxsIHZhbGlkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0wMScpLCAnWzIsMyknKTsKK1VQREFURSB0ZW1wb3Jh bF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDIt MTUnKQorV0hFUkUgaWQgPSAnWzIsMyknOwogLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBi ZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CiBCRUdJ TjsKICAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwpAQCAtMjI5NCw3ICsyMzI2 LDggQEAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsK IElOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKICAg KCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJykpKSwKICAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykp LCAnWzUsNiknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsK IFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKSkKIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDIt MDEnLCAnMjAxOC0wMy0wMScpKTsKIC0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2Ug YmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgpAQCAtMjMwOSw2ICsyMzQyLDM3IEBAIFNF VCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0wMS0wMScg VEhFTiBkYXRlbXVsdGlyYW5nZShkYXRlCiBXSEVSRSBpZCA9ICdbNiw3KSc7CiBFUlJPUjog IHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMg UkVTVFJJQ1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzYsNyksIHtbMjAxOC0wMS0wMSwy MDE4LTAyLTAxKX0pIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyIuCistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQg bXVsdGlyYW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5j ZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhlciBm dWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpLAorICAoJ1sx LDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDYt MDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEnKSksICdbMSwyKScpLAorICAo J1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgt MDUtMDEnKSksICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0w MScpKQorV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6 OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBncm93aW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFu Z2UgaXMgZmluZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkKK1dI RVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMjUnOjpkYXRlOwor LS0gYSBQSyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZlcmVuY2VkIG11bHRpcmFuZ2UgYW5k IGNoYW5naW5nIHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVsdGlyYW5nZToKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMy0wMScpKQorV0hF UkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CitF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlv bGF0ZXMgUkVTVFJJQ1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0w MS0wMSwyMDE4LTAzLTAxKX0pIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyIuCistLSBhIFBLIHVwZGF0ZSBjaGFuZ2luZyBvbmx5IHRoZSBp ZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgbXVsdGlyYW5nZToKK1VQREFURSB0ZW1wb3JhbF9t bHRybmcgU0VUIGlkID0gJ1syLDMpJworV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9h dCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24g dGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgUkVTVFJJQ1Qgc2V0dGluZyBvZiBm b3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBv biB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQs IHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMSwyMDE4LTAzLTAxKX0pIGlzIHJlZmVy ZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSBhIFBL IHVwZGF0ZSB0aGF0IGxvc2VzIHRpbWUgZnJvbSBib3RoIGVuZHMsIGJ1dCBpcyBzdGlsbCB2 YWxpZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMKKyAgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJykpLCAnWzIs MyknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnKSkKK1dIRVJFIGlk ID0gJ1syLDMpJzsKIC0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFy ZSByZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21taXQpOgogQkVHSU47CiAgIEFMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2l0aG91dF9vdmVybGFwcy5zcWwKaW5kZXggOGY0NzI4NjdlMjguLmY3ZGUzODcxMDkzIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbApAQCAtMTMx Niw3ICsxMzE2LDggQEAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1 LDYpJzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMK ICAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAog ICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7Ci1J TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0x MCcpLCAnWzUsNiknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOwogVVBEQVRFIHRlbXBvcmFsX3Ju ZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScp CiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAy LTAxJywgJzIwMTgtMDMtMDEnKTsKIC0tIEEgUEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2Ug YmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgpAQCAtMTMyOSw2ICsxMzMwLDMzIEBAIFVQ REFURSB0ZW1wb3JhbF9ybmcKIFNFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxp ZF9hdCkgPSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMS0wNScpCiAgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRfYXQpID0g JzIwMTgtMDItMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEn KSBFTkQKIFdIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0 aGUgcmVmZXJlbmNlZCByYW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdv IHJlZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRo ZSBvdGhlciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSksCisgICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMTgtMDMtMDEnLCAnMjAxOC0wNi0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJyksICdbMSwyKScp LAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDUtMDEnKSwg J1sxLDIpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMS0xNScsICcyMDE4LTAzLTAxJykKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgZ3Jvd2lu ZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBpcyBmaW5lOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBT RVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpCitX SEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTI1Jzo6ZGF0ZTsK Ky0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBhbmQgY2hh bmdpbmcgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgt MDEtMTUnLCAnMjAxOC0wMy0wMScpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIGNoYW5naW5nIG9ubHkg dGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0ZW1wb3JhbF9y bmcgU0VUIGlkID0gJ1syLDMpJworV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBA PiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGxvc2VzIHRpbWUg ZnJvbSBib3RoIGVuZHMsIGJ1dCBpcyBzdGlsbCB2YWxpZDoKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEnKSwgJ1syLDMpJyk7CitVUERB VEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0xNScs ICcyMDE4LTAyLTE1JykKK1dIRVJFIGlkID0gJ1syLDMpJzsKIC0tIGEgUEsgdXBkYXRlIHRo YXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21t aXQpOgogQkVHSU47CiAgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKQEAgLTE3 OTcsNyArMTgyNSw4IEBAIERFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9 ICdbNSw2KSc7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTCiAgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKSksCiAgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7Ci1JTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcpKSwgJ1s1LDYpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwg J1s1LDYpJyk7CiBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykpCiBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CiAtLSBBIFBLIHVwZGF0ZSBzbGlkaW5n IHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKQEAgLTE4MTAsNiArMTgz OSwzMyBAQCBVUERBVEUgdGVtcG9yYWxfbWx0cm5nCiBTRVQgdmFsaWRfYXQgPSBDQVNFIFdI RU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEnIFRIRU4gZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkKICAgICAgICAgICAgICAg ICAgICAgV0hFTiBsb3dlcih2YWxpZF9hdCkgPSAnMjAxOC0wMi0wMScgVEhFTiBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMy0wMScpKSBFTkQKIFdI RVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJl bmNlZCBtdWx0aXJhbmdlIGJ1dCBzdGlsbCB2YWxpZDoKKy0tIFRoZXJlIGFyZSB0d28gcmVm ZXJlbmNlczogb25lIGZ1bGZpbGxlZCBieSB0aGUgZmlyc3QgcGsgcm93LAorLS0gdGhlIG90 aGVyIGZ1bGZpbGxlZCBieSBib3RoIHBrIHJvd3MgY29tYmluZWQuCitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpKSksCisg ICgnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDEnLCAnMjAx OC0wNi0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0wMScpKSwgJ1sxLDIpJyks CisgICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAn MjAxOC0wNS0wMScpKSwgJ1sxLDIpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4 LTAzLTAxJykpCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAx LTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIGdyb3dpbmcgdGhlIHJlZmVyZW5jZWQgbXVs dGlyYW5nZSBpcyBmaW5lOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQg PSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScp KQorV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0yNSc6OmRh dGU7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgbXVsdGlyYW5n ZSBhbmQgY2hhbmdpbmcgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSBtdWx0aXJhbmdl OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzIsMyknLCB2YWxpZF9hdCA9 IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAzLTAxJykp CitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0 ZTsKKy0tIGEgUEsgdXBkYXRlIGNoYW5naW5nIG9ubHkgdGhlIGlkIGludmFsaWRhdGVzIHRo ZSB3aG9sZSBtdWx0aXJhbmdlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAn WzIsMyknCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1 Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgbG9zZXMgdGltZSBmcm9tIGJvdGggZW5k cywgYnV0IGlzIHN0aWxsIHZhbGlkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUwor ICAoJ1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIw MTgtMDItMDEnKSksICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFs aWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTUnLCAnMjAxOC0w Mi0xNScpKQorV0hFUkUgaWQgPSAnWzIsMyknOwogLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWls cyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CiBC RUdJTjsKICAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZwotLSAKMi40 Mi4wCgo= --------------QJ7G02LVkbGy9abPg7beeymq Content-Type: text/x-patch; charset=UTF-8; name="v46-0004-Add-intersect-support-func-for-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename*0="v46-0004-Add-intersect-support-func-for-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSBlNDJmOGRjZTMzY2VjN2QwM2E2NGVlODAyY2ZmNGY3NWY1ZTJhMTY3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4 MDAKU3ViamVjdDogW1BBVENIIHY0NiA0LzhdIEFkZCBpbnRlcnNlY3Qgc3VwcG9ydCBmdW5j IGZvciBGT1IgUE9SVElPTiBPRgoKLSBBZGRzIGludGVyc2VjdCBzdXBwb3J0IHByb2NzLgoK ICBUaGVzZSBqdXN0IGNhbGwgdGhlIGV4aXN0aW5nIGludGVyc2VjdCBmdW5jdGlvbnMsCiAg YnV0IHRoZXkgbGV0IHVzIGNvbXB1dGUgdGhlIHBvcnRpb24gb2YgYSByb3cgdGhhdCBpcyB1 cGRhdGVkL2RlbGV0ZWQKICBpbiBhIEZPUiBQT1JUSU9OIGNvbW1hbmQuCi0tLQogZG9jL3Ny Yy9zZ21sL2dpc3Quc2dtbCAgICAgICAgICAgICAgICAgfCA1NyArKysrKysrKysrKysrKysr KysrKysrKystLQogZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sICAgICAgICAgICAgICAgfCAg OCArKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYyB8ICA4ICsr Ky0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmggICAgICAgICAgICAgIHwgIDMgKy0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdCAgICAgIHwgIDkgKysrKwogNSBmaWxl cyBjaGFuZ2VkLCA3OSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCmlu ZGV4IDFmYmRkZjFiZmIwLi5mMzMxNGVjY2I5ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L2dpc3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZ2lzdC5zZ21sCkBAIC0yNjYsNyArMjY2 LDcgQEAgQ1JFQVRFIElOREVYIE9OIG15X3RhYmxlIFVTSU5HIEdJU1QgKG15X2luZXRfY29s dW1uIGluZXRfb3BzKTsKIAogIDxwYXJhPgogICAgVGhlcmUgYXJlIGZpdmUgbWV0aG9kcyB0 aGF0IGFuIGluZGV4IG9wZXJhdG9yIGNsYXNzIGZvcgotICAgPGFjcm9ueW0+R2lTVDwvYWNy b255bT4gbXVzdCBwcm92aWRlLCBhbmQgZWlnaHQgdGhhdCBhcmUgb3B0aW9uYWwuCisgICA8 YWNyb255bT5HaVNUPC9hY3JvbnltPiBtdXN0IHByb3ZpZGUsIGFuZCBuaW5lIHRoYXQgYXJl IG9wdGlvbmFsLgogICAgQ29ycmVjdG5lc3Mgb2YgdGhlIGluZGV4IGlzIGVuc3VyZWQKICAg IGJ5IHByb3BlciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgPGZ1bmN0aW9uPnNhbWU8L2Z1bmN0 aW9uPiwgPGZ1bmN0aW9uPmNvbnNpc3RlbnQ8L2Z1bmN0aW9uPgogICAgYW5kIDxmdW5jdGlv bj51bmlvbjwvZnVuY3Rpb24+IG1ldGhvZHMsIHdoaWxlIGVmZmljaWVuY3kgKHNpemUgYW5k IHNwZWVkKSBvZiB0aGUKQEAgLTI5Niw3ICsyOTYsMTEgQEAgQ1JFQVRFIElOREVYIE9OIG15 X3RhYmxlIFVTSU5HIEdJU1QgKG15X2luZXRfY29sdW1uIGluZXRfb3BzKTsKICAgIHRlbXBv cmFsIGNvbnN0cmFpbnQgaW5kZXhlcy4KICAgIFRoZSBvcHRpb25hbCB0aGlydGVlbnRoIG1l dGhvZCA8ZnVuY3Rpb24+d2l0aG91dF9wb3J0aW9uPC9mdW5jdGlvbj4gaXMgdXNlZCBieQog ICAgPGxpdGVyYWw+UkVTVFJJQ1Q8L2xpdGVyYWw+IGZvcmVpZ24ga2V5cyB0byBjb21wdXRl IHRoZSBwb3J0aW9uIG9mIGhpc3RvcnkKLSAgIHRoYXQgd2FzIGxvc3QuCisgICB0aGF0IHdh cyBsb3N0IGFuZCBhbHNvIGJ5IDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiB0 byBjb21wdXRlIHRoZQorICAgbGVmdG92ZXIgcmVjb3JkcyBvdXRzaWRlIHRoZSB0YXJnZXRl ZCBib3VuZHMuCisgICBUaGUgb3B0aW9uYWwgZm91cnRlZW50aCBtZXRob2QgPGZ1bmN0aW9u PmludGVyc2VjdDwvZnVuY3Rpb24+IGlzIHVzZWQgYnkKKyAgIDxsaXRlcmFsPkZPUiBQT1JU SU9OIE9GPC9saXRlcmFsPiB0byBjb21wdXRlIHRoZSBuZXcgYm91bmRzIG9mIHRoZSB1cGRh dGVkLworICAgZGVsZXRlZCByZWNvcmQuCiAgPC9wYXJhPgogCiAgPHZhcmlhYmxlbGlzdD4K QEAgLTEyNDcsNyArMTI1MSw4IEBAIG15X3N0cmF0bnVtKFBHX0ZVTkNUSU9OX0FSR1MpCiAg ICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KICAgICAgICBUaGlzIGlzIHVzZWQgYnkgdGVt cG9yYWwgZm9yZWlnbiBrZXlzIHRvIGNvbXB1dGUgdGhlIHBhcnQKLSAgICAgICBvZiBoaXN0 b3J5IHRoYXQgd2FzIGxvc3QgYnkgYW4gdXBkYXRlLgorICAgICAgIG9mIGhpc3RvcnkgdGhh dCB3YXMgbG9zdCBieSBhbiB1cGRhdGUgYW5kIGFsc28gYnkgdGVtcG9yYWwgdXBkYXRlL2Rl bGV0ZQorICAgICAgIGNvbW1hbmRzIHRvIGNvbXB1dGUgdGhlIGJvdW5kcyBvZiB0aGUgdW50 b3VjaGVkIGR1cmF0aW9uLgogICAgICAgPC9wYXJhPgogCiAgICAgICA8cGFyYT4KQEAgLTEz MzYsNiArMTM0MSw1MiBAQCBteV9yYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05f QVJHUykKICAgICAgICAgLyogZG8gd2hlbiB0aGVyZSBpcyBubyBtb3JlIGxlZnQgKi8KICAg ICAgICAgU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOwogfQorPC9wcm9ncmFtbGlzdGluZz4K KyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4K KyAgICA8dmFybGlzdGVudHJ5PgorICAgICA8dGVybT48ZnVuY3Rpb24+aW50ZXJzZWN0PC9m dW5jdGlvbj48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAg IEdpdmVuIHR3byB2YWx1ZXMgb2YgdGhpcyBvcGNsYXNzLCBpdCByZXR1cm5zIHRoZWlyIGlu dGVyc2VjdGlvbi4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMg aXMgdXNlZCBmb3IgdGVtcG9yYWwgdXBkYXRlIGNvbW1hbmRzIHRvIGNvbXB1dGUgdGhlCisg ICAgICAgbmV3IGJvdW5kcyBvZiB0aGUgY2hhbmdlZCByb3cuCisgICAgICA8L3BhcmE+CisK KyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8YWNyb255bT5TUUw8L2Fjcm9ueW0+IGRlY2xh cmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxvb2sgbGlrZQorICAgICAgIHRoaXMgKHVz aW5nIDxsaXRlcmFsPm15X2ludGVyc2VjdDwvbGl0ZXJhbD4gYXMgYW4gZXhhbXBsZSk6CisK Kzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X3Jhbmdl X2ludGVyc2VjdChhbnlyYW5nZSwgYW55cmFuZ2UpCitSRVRVUk5TIGFueXJhbmdlCitBUyAn TU9EVUxFX1BBVEhOQU1FJworTEFOR1VBR0UgQyBTVFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5n PgorICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBtYXRjaGlu ZyBjb2RlIGluIHRoZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIGV4YW1wbGU6 CisKKzxwcm9ncmFtbGlzdGluZz4KK0RhdHVtCitteV9yYW5nZV9pbnRlcnNlY3QoUEdfRlVO Q1RJT05fQVJHUykKK3sKKyAgICBSYW5nZVR5cGUgICpyMSA9IFBHX0dFVEFSR19SQU5HRV9Q KDApOworICAgIFJhbmdlVHlwZSAgKnIyID0gUEdfR0VUQVJHX1JBTkdFX1AoMSk7CisgICAg VHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlOworCisgICAgLyogRGlmZmVyZW50IHR5cGVzIHNo b3VsZCBiZSBwcmV2ZW50ZWQgYnkgQU5ZUkFOR0UgbWF0Y2hpbmcgcnVsZXMgKi8KKyAgICBp ZiAoUmFuZ2VUeXBlR2V0T2lkKHIxKSAhPSBSYW5nZVR5cGVHZXRPaWQocjIpKQorICAgICAg ICBlbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8gbm90IG1hdGNoIik7CisKKyAgICB0eXBj YWNoZSA9IHJhbmdlX2dldF90eXBjYWNoZShmY2luZm8sIFJhbmdlVHlwZUdldE9pZChyMSkp OworCisgICAgUEdfUkVUVVJOX1JBTkdFX1AocmFuZ2VfaW50ZXJzZWN0X2ludGVybmFsKHR5 cGNhY2hlLCByMSwgcjIpKTsKK30KIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgICA8L3BhcmE+ CiAgICAgIDwvbGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNn bWwgYi9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKaW5kZXggODVlZjUzOWQwN2MuLmQyZmFj MDhkNzQyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3hpbmRleC5zZ21sCkBAIC01MDgsNyArNTA4LDcgQEAKICAgIDwvdGFibGU+ CiAKICAgPHBhcmE+Ci0gICBHaVNUIGluZGV4ZXMgaGF2ZSB0aGlydGVlbiBzdXBwb3J0IGZ1 bmN0aW9ucywgZWlnaHQgb2Ygd2hpY2ggYXJlIG9wdGlvbmFsLAorICAgR2lTVCBpbmRleGVz IGhhdmUgZm91cnRlZW4gc3VwcG9ydCBmdW5jdGlvbnMsIG5pbmUgb2Ygd2hpY2ggYXJlIG9w dGlvbmFsLAogICAgYXMgc2hvd24gaW4gPHhyZWYgbGlua2VuZD0ieGluZGV4LWdpc3Qtc3Vw cG9ydC10YWJsZSIvPi4KICAgIChGb3IgbW9yZSBpbmZvcm1hdGlvbiBzZWUgPHhyZWYgbGlu a2VuZD0iZ2lzdCIvPi4pCiAgIDwvcGFyYT4KQEAgLTYwMiw2ICs2MDIsMTIgQEAKICAgICAg ICBzZWNvbmQgcGFyYW1ldGVyIGZyb20gZmlyc3QgKG9wdGlvbmFsKTwvZW50cnk+CiAgICAg ICAgPGVudHJ5PjEzPC9lbnRyeT4KICAgICAgIDwvcm93PgorICAgICAgPHJvdz4KKyAgICAg ICA8ZW50cnk+PGZ1bmN0aW9uPmludGVyc2VjdDwvZnVuY3Rpb24+PC9lbnRyeT4KKyAgICAg ICA8ZW50cnk+Y29tcHV0ZXMgaW50ZXJzZWN0aW9uIHdpdGggPGxpdGVyYWw+Rk9SIFBPUlRJ T04gT0Y8L2xpdGVyYWw+CisgICAgICAgIGJvdW5kcyAob3B0aW9uYWwpPC9lbnRyeT4KKyAg ICAgICA8ZW50cnk+MTQ8L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJvZHk+CiAg ICAgPC90Z3JvdXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0 dmFsaWRhdGUuYwppbmRleCAwY2RiZWE3NDg0ZC4uOTJhYTU1OWQ0YjMgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCkBAIC0xNTQsNiArMTU0LDEwIEBAIGdp c3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWdu YXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgb3BjaW50eXBlLCB0cnVlLCB0cnVlLAogCQkJCQkJ CQkJCQkyLCAyLCBvcGNpbnR5cGUsIG9wY2ludHlwZSk7CiAJCQkJYnJlYWs7CisJCQljYXNl IEdJU1RfSU5URVJTRUNUX1BST0M6CisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIEludmFsaWRPaWQsIGZhbHNlLCB0cnVlLAorCQkJCQkJCQkJ CQkyLCAyLCBvcGNpbnR5cGUsIG9wY2ludHlwZSk7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0 OgogCQkJCWVyZXBvcnQoSU5GTywKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9P QkpFQ1RfREVGSU5JVElPTiksCkBAIC0yNzUsNyArMjc5LDggQEAgZ2lzdHZhbGlkYXRlKE9p ZCBvcGNsYXNzb2lkKQogCQlpZiAoaSA9PSBHSVNUX0RJU1RBTkNFX1BST0MgfHwgaSA9PSBH SVNUX0ZFVENIX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9DT01QUkVTU19QUk9DIHx8IGkgPT0g R0lTVF9ERUNPTVBSRVNTX1BST0MgfHwKIAkJCWkgPT0gR0lTVF9PUFRJT05TX1BST0MgfHwg aSA9PSBHSVNUX1NPUlRTVVBQT1JUX1BST0MgfHwKLQkJCWkgPT0gR0lTVF9TVFJBVE5VTV9Q Uk9DIHx8IGkgPT0gR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQykKKwkJCWkgPT0gR0lTVF9T VFJBVE5VTV9QUk9DIHx8IGkgPT0gR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQyB8fAorCQkJ aSA9PSBHSVNUX0lOVEVSU0VDVF9QUk9DKQogCQkJY29udGludWU7CQkJLyogb3B0aW9uYWwg bWV0aG9kcyAqLwogCQllcmVwb3J0KElORk8sCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX09CSkVDVF9ERUZJTklUSU9OKSwKQEAgLTM0OSw2ICszNTQsNyBAQCBnaXN0YWRqdXN0 bWVtYmVycyhPaWQgb3BmYW1pbHlvaWQsCiAJCQljYXNlIEdJU1RfU09SVFNVUFBPUlRfUFJP QzoKIAkJCWNhc2UgR0lTVF9TVFJBVE5VTV9QUk9DOgogCQkJY2FzZSBHSVNUX1dJVEhPVVRf UE9SVElPTl9QUk9DOgorCQkJY2FzZSBHSVNUX0lOVEVSU0VDVF9QUk9DOgogCQkJCS8qIE9w dGlvbmFsLCBzbyBmb3JjZSBpdCB0byBiZSBhIHNvZnQgZmFtaWx5IGRlcGVuZGVuY3kgKi8K IAkJCQlvcC0+cmVmX2lzX2hhcmQgPSBmYWxzZTsKIAkJCQlvcC0+cmVmX2lzX2ZhbWlseSA9 IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdC5oIGIvc3JjL2lu Y2x1ZGUvYWNjZXNzL2dpc3QuaAppbmRleCAzN2MyZjBhNTBlYy4uODRmYmJkZDU5ZGEgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL2dpc3QuaApAQCAtNDEsNyArNDEsOCBAQAogI2RlZmluZSBHSVNUX1NPUlRTVVBQ T1JUX1BST0MJCQkxMQogI2RlZmluZSBHSVNUX1NUUkFUTlVNX1BST0MJCQkJMTIKICNkZWZp bmUgR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQwkJMTMKLSNkZWZpbmUgR0lTVE5Qcm9jcwkJ CQkJMTMKKyNkZWZpbmUgR0lTVF9JTlRFUlNFQ1RfUFJPQwkJCQkxNAorI2RlZmluZSBHSVNU TlByb2NzCQkJCQkxNAogCiAvKgogICogUGFnZSBvcGFxdWUgZGF0YSBpbiBhIEdpU1QgaW5k ZXggcGFnZS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRh dCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1wcm9jLmRhdAppbmRleCBhZDU4YmI1NmM3 OS4uMzNmNGE1Y2I4ZDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfYW1w cm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2FtcHJvYy5kYXQKQEAgLTUw OSw2ICs1MDksOSBAQAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvYm94X29wcycsIGFtcHJv Y2xlZnR0eXBlID0+ICdib3gnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2JveCcsIGFtcHJv Y251bSA9PiAnMTInLAogICBhbXByb2MgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0s Cit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9ib3hfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4g J2JveCcsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYm94JywgYW1wcm9jbnVtID0+ICcxNCcs CisgIGFtcHJvYyA9PiAnYm94X2ludGVyc2VjdChib3gsYm94KScgfSwKIHsgYW1wcm9jZmFt aWx5ID0+ICdnaXN0L3BvbHlfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ3BvbHlnb24nLAog ICBhbXByb2NyaWdodHR5cGUgPT4gJ3BvbHlnb24nLCBhbXByb2NudW0gPT4gJzEnLAogICBh bXByb2MgPT4gJ2dpc3RfcG9seV9jb25zaXN0ZW50JyB9LApAQCAtNjEyLDYgKzYxNSw5IEBA CiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9yYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9 PiAnYW55cmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9j bnVtID0+ICcxMycsCiAgIGFtcHJvYyA9PiAncmFuZ2Vfd2l0aG91dF9wb3J0aW9uKGFueXJh bmdlLGFueXJhbmdlKScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L3JhbmdlX29wcycs IGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAn YW55cmFuZ2UnLCBhbXByb2NudW0gPT4gJzE0JywKKyAgYW1wcm9jID0+ICdyYW5nZV9pbnRl cnNlY3QoYW55cmFuZ2UsYW55cmFuZ2UpJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3Qv bmV0d29ya19vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnaW5ldCcsCiAgIGFtcHJvY3JpZ2h0 dHlwZSA9PiAnaW5ldCcsIGFtcHJvY251bSA9PiAnMScsCiAgIGFtcHJvYyA9PiAnaW5ldF9n aXN0X2NvbnNpc3RlbnQnIH0sCkBAIC02NTUsNiArNjYxLDkgQEAKIHsgYW1wcm9jZmFtaWx5 ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueW11bHRp cmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLCBhbXByb2Nu dW0gPT4gJzEzJywKICAgYW1wcm9jID0+ICdtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihh bnltdWx0aXJhbmdlLGFueW11bHRpcmFuZ2UpJyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2dp c3QvbXVsdGlyYW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScs CisgIGFtcHJvY3JpZ2h0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsIGFtcHJvY251bSA9PiAn MTQnLAorICBhbXByb2MgPT4gJ211bHRpcmFuZ2VfaW50ZXJzZWN0KGFueW11bHRpcmFuZ2Us YW55bXVsdGlyYW5nZSknIH0sCiAKICMgZ2luCiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2luL2Fy cmF5X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlhcnJheScsCi0tIAoyLjQyLjAKCg== --------------QJ7G02LVkbGy9abPg7beeymq Content-Type: text/x-patch; charset=UTF-8; name="v46-0005-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v46-0005-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSAyODc5NTY1NTVkZTY2ZjRjOGM5YzYyYmYzMmE4ZjQ5MTgxODYzMWIxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMjUgSnVuIDIwMjEgMTg6NTQ6MzUgLTA3 MDAKU3ViamVjdDogW1BBVENIIHY0NiA1LzhdIEFkZCBVUERBVEUvREVMRVRFIEZPUiBQT1JU SU9OIE9GCgotIEFkZGVkIGJpc29uIHN1cHBvcnQgZm9yIEZPUiBQT1JUSU9OIE9GIHN5bnRh eC4gVGhlIGJvdW5kcyBtdXN0IGJlCiAgY29uc3RhbnQsIHNvIHdlIGZvcmJpZCBjb2x1bW4g cmVmZXJlbmNlcywgc3VicXVlcmllcywgZXRjLiBCdXQgd2UKICBwZXJtaXQgdGhlIG1hZ2lj IFVOQk9VTkRFRCBrZXl3b3JkIGFzIHRoZSBGUk9NIG9yIHRoZSBUTyAob3IgYm90aCkKICB0 byBwZXJmb3JtIGFuIHVuYm91bmRlZCB1cGRhdGUvZGVsZXRlLiBXZSBhbHNvIGFjY2VwdCBm dW5jdGlvbnMgbGlrZQogIE5PVygpLgotIEFkZGVkIGxvZ2ljIHRvIGV4ZWN1dG9yIHRvIGlu c2VydCBuZXcgcm93cyBmb3IgdGhlICJsZWZ0b3ZlciIgcGFydCBvZgogIGEgcmVjb3JkIHRv dWNoZWQgYnkgYSBGT1IgUE9SVElPTiBPRiBxdWVyeS4KLSBBZGRlZCB0Z190ZW1wb3JhbCBk ZXNjcmlwdG9yIHRvIHRoZSBUcmlnZ2VyRGF0YSBzdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvCiAg dHJpZ2dlciBmdW5jdGlvbnMuIE91ciB0cmlnZ2VycyB1c2UgdGhpcyB0byBsZWFybiB3aGF0 IGJvdW5kcyB3ZXJlCiAgZ2l2ZW4gaW4gdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZS4KLSBE b2N1bWVudGVkIEZPUiBQT1JUSU9OIE9GLgotIERvY3VtZW50ZWQgdGdfdGVtcG9yYWwgc3Ry dWN0LgotIEFkZGVkIHRlc3RzLgotLS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dCAgICB8ICA0NSArLQogY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bv c3RncmVzX2Zkdy5zcWwgICAgIHwgIDM0ICsKIGNvbnRyaWIvc2VwZ3NxbC9wcm9jLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQogY29udHJpYi91bmFjY2VudC91bmFjY2Vu dC5jICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9wdWJsaWNhdGlvbi5zZ21sICAgICAgfCAgIDYgKwogZG9jL3NyYy9zZ21sL3JlZi9kZWxl dGUuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDcyICstCiBkb2Mvc3JjL3NnbWwvcmVmL3Vw ZGF0ZS5zZ21sICAgICAgICAgICAgICAgICAgfCAgOTAgKystCiBkb2Mvc3JjL3NnbWwvdHJp Z2dlci5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgNjQgKy0KIHNyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfY29uc3RyYWludC5jICAgICAgICAgICB8ICAxNCArCiBzcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDQgKy0KIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYyAgICAgICAgICAgICAgICB8ICA0NyArKwogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jICAgICAgICB8IDQ5OCArKysrKysrKysr Ky0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAg MiArLQogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwg IDI0ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL2NyZWF0ZXBsYW4uYyAgICAgICB8 ICAgNiArLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAgICAg IHwgICAxICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMgICAgICAg ICB8ICAgMyArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAg ICAgIHwgMjI4ICsrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAg ICAgICAgICAgIHwgMTAwICsrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAg ICAgICAgICAgICAgIHwgIDEwICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRl LmMgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j ICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMu YyAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJn ZS5jICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRl SGFuZGxlci5jICAgICAgICAgIHwgIDQwICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90 cmlnZ2Vycy5jICAgICAgICAgICB8ICA4MyArLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMgICAgICAgICAgIHwgIDI3ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y29uc3RyYWludC5oICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy90 cmlnZ2VyLmggICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhl Y25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDI0ICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAyMCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9w YXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVz L3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAyNiArCiBzcmMvaW5jbHVkZS9vcHRp bWl6ZXIvcGF0aG5vZGUuaCAgICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL3Bh cnNlci9hbmFseXplLmggICAgICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVk ZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQgIHwgNzY0ICsrKysrKysrKysr KysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dCAgICAg IHwgIDE4ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdXBkYXRhYmxlX3ZpZXdzLm91 dCB8ICAzMiArCiAuLi4vcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCAg ICAgfCAzMDMgKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAg ICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9v Zi5zcWwgICAgICAgfCA1OTcgKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3ByaXZpbGVnZXMuc3FsICAgICAgICAgICB8ICAxOCArCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC91cGRhdGFibGVfdmlld3Muc3FsICAgICAgfCAgMTQgKwogc3JjL3Rlc3QvcmVncmVzcy9z cWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgMTU2ICsrKy0KIHNyYy90ZXN0L3N1YnNj cmlwdGlvbi90LzAzNF90ZW1wb3JhbC5wbCAgICAgICB8IDExMCArKy0KIDUwIGZpbGVzIGNo YW5nZWQsIDM0MjEgaW5zZXJ0aW9ucygrKSwgOTIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9v Zi5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0 Z3Jlc19mZHcub3V0IGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dAppbmRleCBiZjMyMjE5OGEyMC4uOTUzNTEyOWM3ZTkgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKKysrIGIvY29u dHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNfZmR3Lm91dApAQCAtNTcsMTEg KzU3LDE5IEBAIENSRUFURSBUQUJMRSAiUyAxIi4iVCA0IiAoCiAJYzMgdGV4dCwKIAlDT05T VFJBSU5UIHQ0X3BrZXkgUFJJTUFSWSBLRVkgKGMxKQogKTsKK0NSRUFURSBUQUJMRSAiUyAx Ii4iVCA1IiAoCisJYzEgaW50NHJhbmdlIE5PVCBOVUxMLAorCWMyIGludCBOT1QgTlVMTCwK KwljMyB0ZXh0LAorCWM0IGRhdGVyYW5nZSBOT1QgTlVMTCwKKwlDT05TVFJBSU5UIHQ1X3Br ZXkgUFJJTUFSWSBLRVkgKGMxLCBjNCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKIC0tIERpc2Fi bGUgYXV0b3ZhY3V1bSBmb3IgdGhlc2UgdGFibGVzIHRvIGF2b2lkIHVuZXhwZWN0ZWQgZWZm ZWN0cyBvZiB0aGF0CiBBTFRFUiBUQUJMRSAiUyAxIi4iVCAxIiBTRVQgKGF1dG92YWN1dW1f ZW5hYmxlZCA9ICdmYWxzZScpOwogQUxURVIgVEFCTEUgIlMgMSIuIlQgMiIgU0VUIChhdXRv dmFjdXVtX2VuYWJsZWQgPSAnZmFsc2UnKTsKIEFMVEVSIFRBQkxFICJTIDEiLiJUIDMiIFNF VCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gJ2ZhbHNlJyk7CiBBTFRFUiBUQUJMRSAiUyAxIi4i VCA0IiBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9ICdmYWxzZScpOworQUxURVIgVEFCTEUg IlMgMSIuIlQgNSIgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSAnZmFsc2UnKTsKIElOU0VS VCBJTlRPICJTIDEiLiJUIDEiCiAJU0VMRUNUIGlkLAogCSAgICAgICBpZCAlIDEwLApAQCAt ODgsMTAgKzk2LDE3IEBAIElOU0VSVCBJTlRPICJTIDEiLiJUIDQiCiAJICAgICAgICdBQUEn IHx8IHRvX2NoYXIoaWQsICdGTTAwMCcpCiAJRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAw KSBpZDsKIERFTEVURSBGUk9NICJTIDEiLiJUIDQiIFdIRVJFIGMxICUgMyAhPSAwOwktLSBk ZWxldGUgZm9yIG91dGVyIGpvaW4gdGVzdHMKK0lOU0VSVCBJTlRPICJTIDEiLiJUIDUiCisJ U0VMRUNUIGludDRyYW5nZShpZCwgaWQgKyAxKSwKKwkgICAgICAgaWQgKyAxLAorCSAgICAg ICAnQUFBJyB8fCB0b19jaGFyKGlkLCAnRk0wMDAnKSwKKyAgICAgICAgJ1syMDAwLTAxLTAx LDIwMjAtMDEtMDEpJworCUZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEwMCkgaWQ7CiBBTkFM WVpFICJTIDEiLiJUIDEiOwogQU5BTFlaRSAiUyAxIi4iVCAyIjsKIEFOQUxZWkUgIlMgMSIu IlQgMyI7CiBBTkFMWVpFICJTIDEiLiJUIDQiOworQU5BTFlaRSAiUyAxIi4iVCA1IjsKIC0t ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KIC0tIGNyZWF0ZSBmb3JlaWduIHRhYmxlcwogLS0gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpAQCAtMTM5LDYgKzE1NCwxMiBAQCBDUkVBVEUgRk9SRUlHTiBUQUJMRSBmdDcgKAog CWMyIGludCBOT1QgTlVMTCwKIAljMyB0ZXh0CiApIFNFUlZFUiBsb29wYmFjazMgT1BUSU9O UyAoc2NoZW1hX25hbWUgJ1MgMScsIHRhYmxlX25hbWUgJ1QgNCcpOworQ1JFQVRFIEZPUkVJ R04gVEFCTEUgZnQ4ICgKKwljMSBpbnQ0cmFuZ2UgTk9UIE5VTEwsCisJYzIgaW50IE5PVCBO VUxMLAorCWMzIHRleHQsCisJYzQgZGF0ZXJhbmdlIE5PVCBOVUxMCispIFNFUlZFUiBsb29w YmFjayBPUFRJT05TIChzY2hlbWFfbmFtZSAnUyAxJywgdGFibGVfbmFtZSAnVCA1Jyk7CiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAtLSB0ZXN0cyBmb3IgdmFsaWRhdG9yCiAtLSA9PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CkBAIC0yMTAsNyArMjMxLDggQEAgQUxURVIgRk9SRUlHTiBUQUJMRSBmdDIgQUxURVIg Q09MVU1OIGMxIE9QVElPTlMgKGNvbHVtbl9uYW1lICdDIDEnKTsKICBwdWJsaWMgfCBmdDUg ICB8IGxvb3BiYWNrICB8IChzY2hlbWFfbmFtZSAnUyAxJywgdGFibGVfbmFtZSAnVCA0Jykg fCAKICBwdWJsaWMgfCBmdDYgICB8IGxvb3BiYWNrMiB8IChzY2hlbWFfbmFtZSAnUyAxJywg dGFibGVfbmFtZSAnVCA0JykgfCAKICBwdWJsaWMgfCBmdDcgICB8IGxvb3BiYWNrMyB8IChz Y2hlbWFfbmFtZSAnUyAxJywgdGFibGVfbmFtZSAnVCA0JykgfCAKLSg2IHJvd3MpCisgcHVi bGljIHwgZnQ4ICAgfCBsb29wYmFjayAgfCAoc2NoZW1hX25hbWUgJ1MgMScsIHRhYmxlX25h bWUgJ1QgNScpIHwgCisoNyByb3dzKQogCiAtLSBUZXN0IHRoYXQgYWx0ZXJhdGlvbiBvZiBz ZXJ2ZXIgb3B0aW9ucyBjYXVzZXMgcmVjb25uZWN0aW9uCiAtLSBSZW1vdGUncyBlcnJvcnMg bWlnaHQgYmUgbm9uLUVuZ2xpc2gsIHNvIGhpZGUgdGhlbSB0byBlbnN1cmUgc3RhYmxlIHJl c3VsdHMKQEAgLTYxMjUsNiArNjE0NywyNyBAQCBERUxFVEUgRlJPTSBmdDIgV0hFUkUgYzEg PSAxMjAwIFJFVFVSTklORyB0YWJsZW9pZDo6cmVnY2xhc3M7CiAgZnQyCiAoMSByb3cpCiAK Ky0tIFRlc3QgVVBEQVRFIEZPUiBQT1JUSU9OIE9GCitVUERBVEUgZnQ4IEZPUiBQT1JUSU9O IE9GIGM0IEZST00gJzIwMDUtMDEtMDEnIFRPICcyMDA2LTAxLTAxJworU0VUIGMyID0gYzIg KyAxCitXSEVSRSBjMSA9ICdbMSwyKSc7CitFUlJPUjogIGZvcmVpZ24gdGFibGVzIGRvbid0 IHN1cHBvcnQgRk9SIFBPUlRJT04gT0YKK1NFTEVDVCAqIEZST00gZnQ4IFdIRVJFIGMxID0g J1sxLDIpJyBPUkRFUiBCWSBjMSwgYzQ7CisgIGMxICAgfCBjMiB8ICAgYzMgICB8ICAgICAg ICAgICBjNCAgICAgICAgICAgIAorLS0tLS0tLSstLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBbMSwyKSB8ICAyIHwgQUFBMDAxIHwgWzAxLTAxLTIwMDAsMDEt MDEtMjAyMCkKKygxIHJvdykKKworLS0gVGVzdCBERUxFVEUgRk9SIFBPUlRJT04gT0YKK0RF TEVURSBGUk9NIGZ0OCBGT1IgUE9SVElPTiBPRiBjNCBGUk9NICcyMDA1LTAxLTAxJyBUTyAn MjAwNi0wMS0wMScKK1dIRVJFIGMxID0gJ1syLDMpJzsKK0VSUk9SOiAgZm9yZWlnbiB0YWJs ZXMgZG9uJ3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRgorU0VMRUNUICogRlJPTSBmdDggV0hF UkUgYzEgPSAnWzIsMyknIE9SREVSIEJZIGMxLCBjNDsKKyAgYzEgICB8IGMyIHwgICBjMyAg IHwgICAgICAgICAgIGM0ICAgICAgICAgICAgCistLS0tLS0tKy0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsyLDMpIHwgIDMgfCBBQUEwMDIgfCBbMDEtMDEt MjAwMCwwMS0wMS0yMDIwKQorKDEgcm93KQorCiAtLSBUZXN0IFVQREFURS9ERUxFVEUgd2l0 aCBSRVRVUk5JTkcgb24gYSB0aHJlZS10YWJsZSBqb2luCiBJTlNFUlQgSU5UTyBmdDIgKGMx LGMyLGMzKQogICBTRUxFQ1QgaWQsIGlkIC0gMTIwMCwgdG9fY2hhcihpZCwgJ0ZNMDAwMDAn KSBGUk9NIGdlbmVyYXRlX3NlcmllcygxMjAxLCAxMzAwKSBpZDsKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvcG9zdGdyZXNfZmR3L3NxbC9wb3N0Z3Jlc19mZHcuc3FsIGIvY29udHJpYi9wb3N0 Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKaW5kZXggMzkwMDUyMmNjYjUuLmQ4NjJk NWU3N2I1IDEwMDY0NAotLS0gYS9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNf ZmR3LnNxbAorKysgYi9jb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNx bApAQCAtNjEsMTIgKzYxLDIwIEBAIENSRUFURSBUQUJMRSAiUyAxIi4iVCA0IiAoCiAJYzMg dGV4dCwKIAlDT05TVFJBSU5UIHQ0X3BrZXkgUFJJTUFSWSBLRVkgKGMxKQogKTsKK0NSRUFU RSBUQUJMRSAiUyAxIi4iVCA1IiAoCisJYzEgaW50NHJhbmdlIE5PVCBOVUxMLAorCWMyIGlu dCBOT1QgTlVMTCwKKwljMyB0ZXh0LAorCWM0IGRhdGVyYW5nZSBOT1QgTlVMTCwKKwlDT05T VFJBSU5UIHQ1X3BrZXkgUFJJTUFSWSBLRVkgKGMxLCBjNCBXSVRIT1VUIE9WRVJMQVBTKQor KTsKIAogLS0gRGlzYWJsZSBhdXRvdmFjdXVtIGZvciB0aGVzZSB0YWJsZXMgdG8gYXZvaWQg dW5leHBlY3RlZCBlZmZlY3RzIG9mIHRoYXQKIEFMVEVSIFRBQkxFICJTIDEiLiJUIDEiIFNF VCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gJ2ZhbHNlJyk7CiBBTFRFUiBUQUJMRSAiUyAxIi4i VCAyIiBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9ICdmYWxzZScpOwogQUxURVIgVEFCTEUg IlMgMSIuIlQgMyIgU0VUIChhdXRvdmFjdXVtX2VuYWJsZWQgPSAnZmFsc2UnKTsKIEFMVEVS IFRBQkxFICJTIDEiLiJUIDQiIFNFVCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gJ2ZhbHNlJyk7 CitBTFRFUiBUQUJMRSAiUyAxIi4iVCA1IiBTRVQgKGF1dG92YWN1dW1fZW5hYmxlZCA9ICdm YWxzZScpOwogCiBJTlNFUlQgSU5UTyAiUyAxIi4iVCAxIgogCVNFTEVDVCBpZCwKQEAgLTk0 LDExICsxMDIsMTggQEAgSU5TRVJUIElOVE8gIlMgMSIuIlQgNCIKIAkgICAgICAgJ0FBQScg fHwgdG9fY2hhcihpZCwgJ0ZNMDAwJykKIAlGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxMDAp IGlkOwogREVMRVRFIEZST00gIlMgMSIuIlQgNCIgV0hFUkUgYzEgJSAzICE9IDA7CS0tIGRl bGV0ZSBmb3Igb3V0ZXIgam9pbiB0ZXN0cworSU5TRVJUIElOVE8gIlMgMSIuIlQgNSIKKwlT RUxFQ1QgaW50NHJhbmdlKGlkLCBpZCArIDEpLAorCSAgICAgICBpZCArIDEsCisJICAgICAg ICdBQUEnIHx8IHRvX2NoYXIoaWQsICdGTTAwMCcpLAorICAgICAgICAnWzIwMDAtMDEtMDEs MjAyMC0wMS0wMSknCisJRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMTAwKSBpZDsKIAogQU5B TFlaRSAiUyAxIi4iVCAxIjsKIEFOQUxZWkUgIlMgMSIuIlQgMiI7CiBBTkFMWVpFICJTIDEi LiJUIDMiOwogQU5BTFlaRSAiUyAxIi4iVCA0IjsKK0FOQUxZWkUgIlMgMSIuIlQgNSI7CiAK IC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KIC0tIGNyZWF0ZSBmb3JlaWduIHRhYmxlcwpAQCAtMTUzLDYg KzE2OCwxNCBAQCBDUkVBVEUgRk9SRUlHTiBUQUJMRSBmdDcgKAogCWMzIHRleHQKICkgU0VS VkVSIGxvb3BiYWNrMyBPUFRJT05TIChzY2hlbWFfbmFtZSAnUyAxJywgdGFibGVfbmFtZSAn VCA0Jyk7CiAKK0NSRUFURSBGT1JFSUdOIFRBQkxFIGZ0OCAoCisJYzEgaW50NHJhbmdlIE5P VCBOVUxMLAorCWMyIGludCBOT1QgTlVMTCwKKwljMyB0ZXh0LAorCWM0IGRhdGVyYW5nZSBO T1QgTlVMTAorKSBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoc2NoZW1hX25hbWUgJ1MgMScs IHRhYmxlX25hbWUgJ1QgNScpOworCisKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KIC0tIHRlc3RzIGZv ciB2YWxpZGF0b3IKIC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTE0OTksNiArMTUyMiwxNyBAQCBF WFBMQUlOICh2ZXJib3NlLCBjb3N0cyBvZmYpCiBERUxFVEUgRlJPTSBmdDIgV0hFUkUgYzEg PSAxMjAwIFJFVFVSTklORyB0YWJsZW9pZDo6cmVnY2xhc3M7ICAgICAgICAgICAgICAgICAg ICAgICAtLSBjYW4gYmUgcHVzaGVkIGRvd24KIERFTEVURSBGUk9NIGZ0MiBXSEVSRSBjMSA9 IDEyMDAgUkVUVVJOSU5HIHRhYmxlb2lkOjpyZWdjbGFzczsKIAorLS0gVGVzdCBVUERBVEUg Rk9SIFBPUlRJT04gT0YKK1VQREFURSBmdDggRk9SIFBPUlRJT04gT0YgYzQgRlJPTSAnMjAw NS0wMS0wMScgVE8gJzIwMDYtMDEtMDEnCitTRVQgYzIgPSBjMiArIDEKK1dIRVJFIGMxID0g J1sxLDIpJzsKK1NFTEVDVCAqIEZST00gZnQ4IFdIRVJFIGMxID0gJ1sxLDIpJyBPUkRFUiBC WSBjMSwgYzQ7CisKKy0tIFRlc3QgREVMRVRFIEZPUiBQT1JUSU9OIE9GCitERUxFVEUgRlJP TSBmdDggRk9SIFBPUlRJT04gT0YgYzQgRlJPTSAnMjAwNS0wMS0wMScgVE8gJzIwMDYtMDEt MDEnCitXSEVSRSBjMSA9ICdbMiwzKSc7CitTRUxFQ1QgKiBGUk9NIGZ0OCBXSEVSRSBjMSA9 ICdbMiwzKScgT1JERVIgQlkgYzEsIGM0OworCiAtLSBUZXN0IFVQREFURS9ERUxFVEUgd2l0 aCBSRVRVUk5JTkcgb24gYSB0aHJlZS10YWJsZSBqb2luCiBJTlNFUlQgSU5UTyBmdDIgKGMx LGMyLGMzKQogICBTRUxFQ1QgaWQsIGlkIC0gMTIwMCwgdG9fY2hhcihpZCwgJ0ZNMDAwMDAn KSBGUk9NIGdlbmVyYXRlX3NlcmllcygxMjAxLCAxMzAwKSBpZDsKZGlmZiAtLWdpdCBhL2Nv bnRyaWIvc2VwZ3NxbC9wcm9jLmMgYi9jb250cmliL3NlcGdzcWwvcHJvYy5jCmluZGV4IDBk MjcyM2Q0NDU5Li42OWRiMmZiNTk4OSAxMDA2NDQKLS0tIGEvY29udHJpYi9zZXBnc3FsL3By b2MuYworKysgYi9jb250cmliL3NlcGdzcWwvcHJvYy5jCkBAIC0xNjEsNyArMTYxLDcgQEAg c2VwZ3NxbF9wcm9jX2Ryb3AoT2lkIGZ1bmN0aW9uSWQpCiAJICogY2hlY2sgZGJfc2NoZW1h OntyZW1vdmVfbmFtZX0gcGVybWlzc2lvbgogCSAqLwogCW9iamVjdC5jbGFzc0lkID0gTmFt ZXNwYWNlUmVsYXRpb25JZDsKLQlvYmplY3Qub2JqZWN0SWQgPSBnZXRfZnVuY19uYW1lc3Bh Y2UoZnVuY3Rpb25JZCk7CisJb2JqZWN0Lm9iamVjdElkID0gZ2V0X2Z1bmNfbmFtZXNwYWNl KGZ1bmN0aW9uSWQsIHRydWUpOwogCW9iamVjdC5vYmplY3RTdWJJZCA9IDA7CiAJYXVkaXRf bmFtZSA9IGdldE9iamVjdElkZW50aXR5KCZvYmplY3QsIGZhbHNlKTsKIApkaWZmIC0tZ2l0 IGEvY29udHJpYi91bmFjY2VudC91bmFjY2VudC5jIGIvY29udHJpYi91bmFjY2VudC91bmFj Y2VudC5jCmluZGV4IDM1MjgwMmVmOGU4Li40MWQ1MzU4ZjAxNCAxMDA2NDQKLS0tIGEvY29u dHJpYi91bmFjY2VudC91bmFjY2VudC5jCisrKyBiL2NvbnRyaWIvdW5hY2NlbnQvdW5hY2Nl bnQuYwpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHVuYWNjZW50X2RpY3QoUEdfRlVOQ1RJT05fQVJH UykKIAkJICogVXNlIHRoZSAidW5hY2NlbnQiIGRpY3Rpb25hcnkgdGhhdCBpcyBpbiB0aGUg c2FtZSBzY2hlbWEgdGhhdCB0aGlzCiAJCSAqIGZ1bmN0aW9uIGlzIGluLgogCQkgKi8KLQkJ T2lkCQkJcHJvY25zcGlkID0gZ2V0X2Z1bmNfbmFtZXNwYWNlKGZjaW5mby0+ZmxpbmZvLT5m bl9vaWQpOworCQlPaWQJCQlwcm9jbnNwaWQgPSBnZXRfZnVuY19uYW1lc3BhY2UoZmNpbmZv LT5mbGluZm8tPmZuX29pZCwgdHJ1ZSk7CiAJCWNvbnN0IGNoYXIgKmRpY3RuYW1lID0gInVu YWNjZW50IjsKIAogCQlkaWN0T2lkID0gR2V0U3lzQ2FjaGVPaWQyKFRTRElDVE5BTUVOU1As IEFudW1fcGdfdHNfZGljdF9vaWQsCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGlj YXRpb24uc2dtbAppbmRleCA1ZTI1NTM2NTU0YS4uNGM2NzAxY2I5ZGQgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbApAQCAtMzUxLDYgKzM1MSwxMiBA QCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPgogICAgZm9yIGVhY2ggcm93IGluc2VydGVkLCB1cGRhdGVkLCBv ciBkZWxldGVkLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBGb3IgYSA8Y29tbWFuZD5G T1IgUE9SVElPTiBPRjwvY29tbWFuZD4gY29tbWFuZCwgdGhlIHB1YmxpY2F0aW9uIHdpbGwg cHVibGlzaCBhbgorICAgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiBvciA8Y29tbWFuZD5E RUxFVEU8L2NvbW1hbmQ+LCBmb2xsb3dlZCBieSBvbmUKKyAgIDxjb21tYW5kPklOU0VSVDwv Y29tbWFuZD4gZm9yIGVhY2ggbGVmdG92ZXIgcm93IGluc2VydGVkLgorICA8L3BhcmE+CisK ICAgPHBhcmE+CiAgICA8Y29tbWFuZD5BVFRBQ0g8L2NvbW1hbmQ+aW5nIGEgdGFibGUgaW50 byBhIHBhcnRpdGlvbiB0cmVlIHdob3NlIHJvb3QgaXMKICAgIHB1Ymxpc2hlZCB1c2luZyBh IHB1YmxpY2F0aW9uIHdpdGggPGxpdGVyYWw+cHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Q8 L2xpdGVyYWw+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sIGIv ZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbAppbmRleCA3NzE3ODU1YmM5ZS4uNjMzMGZk ZmY0YzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbApAQCAtMjIsNyArMjIsOSBAQCBQb3N0Z3Jl U1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBbIFdJ VEggWyBSRUNVUlNJVkUgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+d2l0aF9x dWVyeTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXQotREVMRVRFIEZST00gWyBPTkxZIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBb ICogXSBbIFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YWxpYXM8L3Jl cGxhY2VhYmxlPiBdCitERUxFVEUgRlJPTSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdCisgICAgWyBGT1Ig UE9SVElPTiBPRiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVy aW9kX25hbWU8L3JlcGxhY2VhYmxlPiBGUk9NIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5zdGFydF90aW1lPC9yZXBsYWNlYWJsZT4gVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgWyBBUyBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0KICAgICBb IFVTSU5HIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5mcm9tX2l0ZW08L3JlcGxh Y2VhYmxlPiBbLCAuLi5dIF0KICAgICBbIFdIRVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb25kaXRpb248L3JlcGxhY2VhYmxlPiB8IFdIRVJFIENVUlJFTlQgT0YgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmN1cnNvcl9uYW1lPC9yZXBsYWNlYWJsZT4g XQogICAgIFsgUkVUVVJOSU5HIHsgKiB8IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vdXRwdXRfZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IFsgWyBBUyBdIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5vdXRwdXRfbmFtZTwvcmVwbGFjZWFibGU+IF0gfSBbLCAu Li5dIF0KQEAgLTU0LDYgKzU2LDM5IEBAIERFTEVURSBGUk9NIFsgT05MWSBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqCiAg ICBjaXJjdW1zdGFuY2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBJZiB0aGUgdGFi bGUgaGFzIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sCisgICB5b3UgbWF5IHN1cHBs eSBhIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsIGFuZCB5b3Vy IGRlbGV0ZSB3aWxsCisgICBvbmx5IGFmZmVjdCByb3dzIHRoYXQgb3ZlcmxhcCB0aGUgZ2l2 ZW4gaW50ZXJ2YWwuIEZ1cnRoZXJtb3JlLCBpZiBhIHJvdydzIHNwYW4KKyAgIGV4dGVuZHMg b3V0c2lkZSB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcywg dGhlbiB5b3VyIGRlbGV0ZQorICAgd2lsbCBvbmx5IGNoYW5nZSB0aGUgc3BhbiB3aXRoaW4g dGhvc2UgYm91bmRzLiBJbiBlZmZlY3QgeW91IGFyZSBkZWxldGluZyBhbnkKKyAgIG1vbWVu dCB0YXJnZXRlZCBieSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYW5kIG5v IG1vbWVudHMgb3V0c2lkZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgU3BlY2lmaWNh bGx5LCBhZnRlciA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGRlbGV0 ZXMgdGhlIGV4aXN0aW5nIHJvdywKKyAgIGl0IHdpbGwgPGxpdGVyYWw+SU5TRVJUPC9saXRl cmFsPgorICAgbmV3IHJvd3Mgd2hvc2UgcmFuZ2Ugb3Igc3RhcnQvZW5kIGNvbHVtbihzKSBy ZWNlaXZlIHRoZSByZW1haW5pbmcgc3BhbiBvdXRzaWRlCisgICB0aGUgdGFyZ2V0ZWQgYm91 bmRzLCBjb250YWluaW5nIHRoZSBvcmlnaW5hbCB2YWx1ZXMgaW4gb3RoZXIgY29sdW1ucy4K KyAgIFRoZXJlIHdpbGwgYmUgemVybyB0byB0d28gaW5zZXJ0ZWQgcmVjb3JkcywKKyAgIGRl cGVuZGluZyBvbiB3aGV0aGVyIHRoZSBvcmlnaW5hbCBzcGFuIGV4dGVuZGVkIGJlZm9yZSB0 aGUgdGFyZ2V0ZWQKKyAgIDxsaXRlcmFsPkZST008L2xpdGVyYWw+LCBhZnRlciB0aGUgdGFy Z2V0ZWQgPGxpdGVyYWw+VE88L2xpdGVyYWw+LCBib3RoLCBvciBuZWl0aGVyLgorICA8L3Bh cmE+CisKKyAgPHBhcmE+CisgICBUaGVzZSBzZWNvbmRhcnkgaW5zZXJ0cyBmaXJlIDxsaXRl cmFsPklOU0VSVDwvbGl0ZXJhbD4gdHJpZ2dlcnMuIEZpcnN0CisgICA8bGl0ZXJhbD5CRUZP UkUgREVMRVRFPC9saXRlcmFsPiB0cmlnZ2VycyBmaXJzdCwgdGhlbgorICAgPGxpdGVyYWw+ QkVGT1JFIElOU0VSVDwvbGl0ZXJhbD4sIHRoZW4gPGxpdGVyYWw+QUZURVIgSU5TRVJUPC9s aXRlcmFsPiwKKyAgIHRoZW4gPGxpdGVyYWw+QUZURVIgREVMRVRFPC9saXRlcmFsPi4KKyAg PC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlc2Ugc2Vjb25kYXJ5IGluc2VydHMgZG8gbm90 IHJlcXVpcmUgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIHRh YmxlLgorICAgVGhpcyBpcyBiZWNhdXNlIGNvbmNlcHR1YWxseSBubyBuZXcgaW5mb3JtYXRp b24gaGFzIGJlZW4gYWRkZWQuIFRoZSBpbnNlcnRlZCByb3dzIG9ubHkgcHJlc2VydmUKKyAg IGV4aXN0aW5nIGRhdGEgYWJvdXQgdGhlIHVudGFyZ2V0ZWQgdGltZSBwZXJpb2QuIE5vdGUg dGhpcyBtYXkgcmVzdWx0IGluIHVzZXJzIGZpcmluZyA8bGl0ZXJhbD5JTlNFUlQ8L2xpdGVy YWw+CisgICB0cmlnZ2VycyB3aG8gZG9uJ3QgaGF2ZSBpbnNlcnQgcHJpdmlsZWdlcywgc28g YmUgY2FyZWZ1bCBhYm91dCA8bGl0ZXJhbD5TRUNVUklUWSBERUZJTkVSPC9saXRlcmFsPiB0 cmlnZ2VyIGZ1bmN0aW9ucyEKKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgVGhlIG9wdGlv bmFsIDxsaXRlcmFsPlJFVFVSTklORzwvbGl0ZXJhbD4gY2xhdXNlIGNhdXNlcyA8Y29tbWFu ZD5ERUxFVEU8L2NvbW1hbmQ+CiAgICB0byBjb21wdXRlIGFuZCByZXR1cm4gdmFsdWUocykg YmFzZWQgb24gZWFjaCByb3cgYWN0dWFsbHkgZGVsZXRlZC4KQEAgLTExNiw2ICsxNTEsNDEg QEAgREVMRVRFIEZST00gWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICoKICAgICA8L2xpc3RpdGVtPgogICAgPC92 YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSByYW5n ZSBjb2x1bW4gb3IgcGVyaW9kIHRvIHVzZSB3aGVuIHBlcmZvcm1pbmcgYSB0ZW1wb3JhbCBk ZWxldGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGVhcmxpZXN0IHRpbWUgKGluY2x1c2l2 ZSkgdG8gY2hhbmdlIGluIGEgdGVtcG9yYWwgZGVsZXRlLgorICAgICAgVGhpcyBtdXN0IGJl IGEgdmFsdWUgbWF0Y2hpbmcgdGhlIGJhc2UgdHlwZSBvZiB0aGUgcmFuZ2Ugb3IgcGVyaW9k IGZyb20KKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9w ZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+LiBBCisgICAgICA8bGl0ZXJhbD5OVUxMPC9saXRl cmFsPiBoZXJlIGluZGljYXRlcyBhIGRlbGV0ZSB3aG9zZSBiZWdpbm5pbmcgaXMKKyAgICAg IHVuYm91bmRlZCAoYXMgd2l0aCByYW5nZSB0eXBlcykuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+Cisg ICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBs YWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSBsYXRlc3QgdGltZSAoZXhjbHVzaXZlKSB0byBjaGFuZ2UgaW4gYSB0ZW1wb3JhbCBkZWxl dGUuCisgICAgICBUaGlzIG11c3QgYmUgYSB2YWx1ZSBtYXRjaGluZyB0aGUgYmFzZSB0eXBl IG9mIHRoZSByYW5nZSBvciBwZXJpb2QgZnJvbQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4uIEEKKyAg ICAgIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IGhlcmUgaW5kaWNhdGVzIGEgZGVsZXRlIHdo b3NlIGVuZCBpcyB1bmJvdW5kZWQKKyAgICAgIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg PHZhcmxpc3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZnJvbV9pdGVtPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvdXBkYXRlLnNnbWwKaW5kZXggMWM0MzNiZWMyYmIuLmM4OTNjYzc5NWYyIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvdXBkYXRlLnNnbWwKQEAgLTIyLDcgKzIyLDkgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0 aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogWyBXSVRIIFsgUkVDVVJTSVZF IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPndpdGhfcXVlcnk8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dIF0KLVVQREFURSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBBUyBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0KK1VQREFU RSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwv cmVwbGFjZWFibGU+IFsgKiBdCisgICAgWyBGT1IgUE9SVElPTiBPRiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Zm9yX3BvcnRpb25fb2ZfdGFyZ2V0PC9y ZXBsYWNlYWJsZT4gXQorICAgIFsgWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0KICAgICBTRVQgeyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiA9IHsgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiB8IERFRkFV TFQgfSB8CiAgICAgICAgICAgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29s dW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgPSBbIFJPVyBdICggeyA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IHwgREVG QVVMVCB9IFssIC4uLl0gKSB8CiAgICAgICAgICAgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgPSAoIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdWItU0VMRUNUPC9yZXBsYWNlYWJsZT4gKQpA QCAtNTEsNiArNTMsNDEgQEAgVVBEQVRFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWwogICAgY2lyY3Vt c3RhbmNlcy4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgSWYgdGhlIHRhYmxlIGhhcyBh IHJhbmdlIG9yIG11bHRpcmFuZ2UgY29sdW1uLAorICAgeW91IG1heSBzdXBwbHkgYSA8bGl0 ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLCBhbmQgeW91ciB1cGRhdGUg d2lsbAorICAgb25seSBhZmZlY3Qgcm93cyB0aGF0IG92ZXJsYXAgdGhlIGdpdmVuIGludGVy dmFsLiBGdXJ0aGVybW9yZSwgaWYgYSByb3cncyBzcGFuCisgICBleHRlbmRzIG91dHNpZGUg dGhlIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMsIHRoZW4geW91 ciB1cGRhdGUKKyAgIHdpbGwgb25seSBjaGFuZ2UgdGhlIHNwYW4gd2l0aGluIHRob3NlIGJv dW5kcy4gSW4gZWZmZWN0IHlvdSBhcmUgdXBkYXRpbmcgYW55CisgICBtb21lbnQgdGFyZ2V0 ZWQgYnkgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGFuZCBubyBtb21lbnRz IG91dHNpZGUuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFNwZWNpZmljYWxseSwgd2hl biA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHVwZGF0ZXMgdGhlIGV4 aXN0aW5nIHJvdywKKyAgIGl0IHdpbGwgYWxzbyBjaGFuZ2UgdGhlIHJhbmdlIG9yIHN0YXJ0 L2VuZCBjb2x1bW4ocykgc28gdGhhdCB0aGVpciBpbnRlcnZhbAorICAgbm8gbG9uZ2VyIGV4 dGVuZHMgYmV5b25kIHRoZSB0YXJnZXRlZCA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0 ZXJhbD4gYm91bmRzLgorICAgVGhlbiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVj dG5hbWU+IHdpbGwgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPgorICAgbmV3IHJvd3Mgd2hv c2UgcmFuZ2Ugb3Igc3RhcnQvZW5kIGNvbHVtbihzKSByZWNlaXZlIHRoZSByZW1haW5pbmcg c3BhbiBvdXRzaWRlCisgICB0aGUgdGFyZ2V0ZWQgYm91bmRzLCBjb250YWluaW5nIHRoZSB1 bi11cGRhdGVkIHZhbHVlcyBpbiBvdGhlciBjb2x1bW5zLgorICAgVGhlcmUgd2lsbCBiZSB6 ZXJvIHRvIHR3byBpbnNlcnRlZCByZWNvcmRzLAorICAgZGVwZW5kaW5nIG9uIHdoZXRoZXIg dGhlIG9yaWdpbmFsIHNwYW4gZXh0ZW5kZWQgYmVmb3JlIHRoZSB0YXJnZXRlZAorICAgPGxp dGVyYWw+RlJPTTwvbGl0ZXJhbD4sIGFmdGVyIHRoZSB0YXJnZXRlZCA8bGl0ZXJhbD5UTzwv bGl0ZXJhbD4sIGJvdGgsIG9yIG5laXRoZXIuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAg IFRoZXNlIHNlY29uZGFyeSBpbnNlcnRzIGZpcmUgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFs PiB0cmlnZ2Vycy4gRmlyc3QKKyAgIDxsaXRlcmFsPkJFRk9SRSBVUERBVEU8L2xpdGVyYWw+ IHRyaWdnZXJzIGZpcnN0LCB0aGVuCisgICA8bGl0ZXJhbD5CRUZPUkUgSU5TRVJUPC9saXRl cmFsPiwgdGhlbiA8bGl0ZXJhbD5BRlRFUiBJTlNFUlQ8L2xpdGVyYWw+LAorICAgdGhlbiA8 bGl0ZXJhbD5BRlRFUiBVUERBVEU8L2xpdGVyYWw+LgorICA8L3BhcmE+CisKKyAgPHBhcmE+ CisgICBUaGVzZSBzZWNvbmRhcnkgaW5zZXJ0cyBkbyBub3QgcmVxdWlyZSA8bGl0ZXJhbD5J TlNFUlQ8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgdGFibGUuCisgICBUaGlzIGlzIGJl Y2F1c2UgY29uY2VwdHVhbGx5IG5vIG5ldyBpbmZvcm1hdGlvbiBoYXMgYmVlbiBhZGRlZC4g VGhlIGluc2VydGVkIHJvd3Mgb25seSBwcmVzZXJ2ZQorICAgZXhpc3RpbmcgZGF0YSBhYm91 dCB0aGUgdW50YXJnZXRlZCB0aW1lIHBlcmlvZC4gTm90ZSB0aGlzIG1heSByZXN1bHQgaW4g dXNlcnMgZmlyaW5nIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4KKyAgIHRyaWdnZXJzIHdo byBkb24ndCBoYXZlIGluc2VydCBwcml2aWxlZ2VzLCBzbyBiZSBjYXJlZnVsIGFib3V0IDxs aXRlcmFsPlNFQ1VSSVRZIERFRklORVI8L2xpdGVyYWw+IHRyaWdnZXIgZnVuY3Rpb25zIQor ICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBUaGUgb3B0aW9uYWwgPGxpdGVyYWw+UkVUVVJO SU5HPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4K ICAgIHRvIGNvbXB1dGUgYW5kIHJldHVybiB2YWx1ZShzKSBiYXNlZCBvbiBlYWNoIHJvdyBh Y3R1YWxseSB1cGRhdGVkLgpAQCAtMTE0LDYgKzE1MSw1NyBAQCBVUERBVEUgWyBPTkxZIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxl PiBbICogXSBbCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgcmFuZ2UgY29sdW1uIG9yIHBlcmlvZCB0 byB1c2Ugd2hlbiBwZXJmb3JtaW5nIGEgdGVtcG9yYWwgdXBkYXRlLgorICAgICA8L3BhcmE+ CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5mb3JfcG9y dGlvbl9vZl90YXJnZXQ8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgVGhlIGludGVydmFsIHRvIHVwZGF0ZS4gSWYgeW91IGFyZSB0 YXJnZXRpbmcgYSByYW5nZSBjb2x1bW4gb3IgPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiwK KyAgICAgIHlvdSBtYXkgZ2l2ZSB0aGlzIGluIHRoZSBmb3JtIDxsaXRlcmFsPkZST008L2xp dGVyYWw+CisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RhcnRfdGlt ZTwvcmVwbGFjZWFibGU+IDxsaXRlcmFsPlRPPC9saXRlcmFsPgorICAgICAgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNlYWJsZT4uCisgICAgICBP dGhlcndpc2UgeW91IG11c3QgdXNlCisgICAgICA8bGl0ZXJhbD4oPC9saXRlcmFsPjxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT48bGl0 ZXJhbD4pPC9saXRlcmFsPgorICAgICAgd2hlcmUgdGhlIGV4cHJlc3Npb24geWllbGRzIGEg dmFsdWUgZm9yIHRoZSBzYW1lIHR5cGUgYXMKKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+LgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5z dGFydF90aW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIFRoZSBlYXJsaWVzdCB0aW1lIChpbmNsdXNpdmUpIHRvIGNoYW5nZSBp biBhIHRlbXBvcmFsIHVwZGF0ZS4KKyAgICAgIFRoaXMgbXVzdCBiZSBhIHZhbHVlIG1hdGNo aW5nIHRoZSBiYXNlIHR5cGUgb2YgdGhlIHJhbmdlIG9yIHBlcmlvZCBmcm9tCisgICAgICA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3Jl cGxhY2VhYmxlPi4gQQorICAgICAgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gaGVyZSBpbmRp Y2F0ZXMgYW4gdXBkYXRlIHdob3NlIGJlZ2lubmluZyBpcworICAgICAgdW5ib3VuZGVkIChh cyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8L3JlcGxhY2VhYmxlPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGxhdGVzdCB0aW1l IChleGNsdXNpdmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBvcmFsIHVwZGF0ZS4KKyAgICAgIFRo aXMgbXVzdCBiZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBiYXNlIHR5cGUgb2YgdGhlIHJhbmdl IG9yIHBlcmlvZCBmcm9tCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4gQQorICAgICAgPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYW4gdXBkYXRlIHdob3NlIGVuZCBpcyB1 bmJvdW5kZWQKKyAgICAgIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRy eT4KICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25h bWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvdHJpZ2dlci5zZ21sIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbApp bmRleCBhOWFiYWFiOTA1Ni4uNjI0NTE0ZmZiZmQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC90cmlnZ2VyLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbApAQCAtMzY2 LDYgKzM2NiwxNSBAQAogICAgIHJlc3BvbnNpYmlsaXR5IHRvIGF2b2lkIHRoYXQuCiAgICA8 L3BhcmE+CiAKKyAgIDxwYXJhPgorICAgIElmIGFuIDxjb21tYW5kPlVQREFURTwvY29tbWFu ZD4gb3IgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPiB1c2VzCisgICAgPGxpdGVyYWw+Rk9S IFBPUlRJT04gT0Y8L2xpdGVyYWw+LCBjYXVzaW5nIG5ldyByb3dzIHRvIGJlIGluc2VydGVk CisgICAgdG8gcHJlc2VydmUgdGhlIGxlZnRvdmVyIHVudGFyZ2V0ZWQgcGFydCBvZiBtb2Rp ZmllZCByZWNvcmRzLCB0aGVuCisgICAgPGNvbW1hbmQ+SU5TRVJUPC9jb21tYW5kPiB0cmln Z2VycyBhcmUgZmlyZWQgZm9yIGVhY2ggaW5zZXJ0ZWQKKyAgICByb3cuIEVhY2ggcm93IGlz IGluc2VydGVkIHNlcGFyYXRlbHksIHNvIHRoZXkgZmlyZSB0aGVpciBvd24KKyAgICBzdGF0 ZW1lbnQgdHJpZ2dlcnMsIGFuZCB0aGV5IGhhdmUgdGhlaXIgb3duIHRyYW5zaXRpb24gdGFi bGVzLgorICAgPC9wYXJhPgorCiAgICA8cGFyYT4KICAgICA8aW5kZXh0ZXJtPgogICAgICA8 cHJpbWFyeT50cmlnZ2VyPC9wcmltYXJ5PgpAQCAtNTQ3LDE3ICs1NTYsMTggQEAgQ0FMTEVE X0FTX1RSSUdHRVIoZmNpbmZvKQogPHByb2dyYW1saXN0aW5nPgogdHlwZWRlZiBzdHJ1Y3Qg VHJpZ2dlckRhdGEKIHsKLSAgICBOb2RlVGFnICAgICAgICAgIHR5cGU7Ci0gICAgVHJpZ2dl ckV2ZW50ICAgICB0Z19ldmVudDsKLSAgICBSZWxhdGlvbiAgICAgICAgIHRnX3JlbGF0aW9u OwotICAgIEhlYXBUdXBsZSAgICAgICAgdGdfdHJpZ3R1cGxlOwotICAgIEhlYXBUdXBsZSAg ICAgICAgdGdfbmV3dHVwbGU7Ci0gICAgVHJpZ2dlciAgICAgICAgICp0Z190cmlnZ2VyOwot ICAgIFR1cGxlVGFibGVTbG90ICAqdGdfdHJpZ3Nsb3Q7Ci0gICAgVHVwbGVUYWJsZVNsb3Qg ICp0Z19uZXdzbG90OwotICAgIFR1cGxlc3RvcmVzdGF0ZSAqdGdfb2xkdGFibGU7Ci0gICAg VHVwbGVzdG9yZXN0YXRlICp0Z19uZXd0YWJsZTsKLSAgICBjb25zdCBCaXRtYXBzZXQgKnRn X3VwZGF0ZWRjb2xzOworICAgIE5vZGVUYWcgICAgICAgICAgICB0eXBlOworICAgIFRyaWdn ZXJFdmVudCAgICAgICB0Z19ldmVudDsKKyAgICBSZWxhdGlvbiAgICAgICAgICAgdGdfcmVs YXRpb247CisgICAgSGVhcFR1cGxlICAgICAgICAgIHRnX3RyaWd0dXBsZTsKKyAgICBIZWFw VHVwbGUgICAgICAgICAgdGdfbmV3dHVwbGU7CisgICAgVHJpZ2dlciAgICAgICAgICAgKnRn X3RyaWdnZXI7CisgICAgVHVwbGVUYWJsZVNsb3QgICAgKnRnX3RyaWdzbG90OworICAgIFR1 cGxlVGFibGVTbG90ICAgICp0Z19uZXdzbG90OworICAgIFR1cGxlc3RvcmVzdGF0ZSAgICp0 Z19vbGR0YWJsZTsKKyAgICBUdXBsZXN0b3Jlc3RhdGUgICAqdGdfbmV3dGFibGU7CisgICAg Y29uc3QgQml0bWFwc2V0ICAgKnRnX3VwZGF0ZWRjb2xzOworICAgIEZvclBvcnRpb25PZlN0 YXRlICp0Z190ZW1wb3JhbDsKIH0gVHJpZ2dlckRhdGE7CiA8L3Byb2dyYW1saXN0aW5nPgog CkBAIC04MjUsNiArODM1LDM4IEBAIHR5cGVkZWYgc3RydWN0IFRyaWdnZXIKICAgICAgICA8 L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg ICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHN0cnVjdGZpZWxkPnRnX3RlbXBvcmFs PC9zdHJ1Y3RmaWVsZD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+ CisgICAgICAgIFNldCBmb3IgPGxpdGVyYWw+VVBEQVRFPC9saXRlcmFsPiBhbmQgPGxpdGVy YWw+REVMRVRFPC9saXRlcmFsPiBxdWVyaWVzCisgICAgICAgIHRoYXQgdXNlIDxsaXRlcmFs PkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiwgb3RoZXJ3aXNlIDxzeW1ib2w+TlVMTDwvc3lt Ym9sPi4KKyAgICAgICAgQ29udGFpbnMgYSBwb2ludGVyIHRvIGEgc3RydWN0dXJlIG9mIHR5 cGUKKyAgICAgICAgPHN0cnVjdG5hbWU+Rm9yUG9ydGlvbk9mU3RhdGU8L3N0cnVjdG5hbWU+ LCBkZWZpbmVkIGluCisgICAgICAgIDxmaWxlbmFtZT5ub2Rlcy9leGVjbm9kZXMuaDwvZmls ZW5hbWU+OgorCis8cHJvZ3JhbWxpc3Rpbmc+Cit0eXBlZGVmIHN0cnVjdCBGb3JQb3J0aW9u T2ZTdGF0ZQoreworICAgIE5vZGVUYWcgdHlwZTsKKworICAgIGNoYXIgICAqZnBfcmFuZ2VO YW1lOyAgICAgICAvKiB0aGUgY29sdW1uIG5hbWVkIGluIEZPUiBQT1JUSU9OIE9GICovCisg ICAgT2lkICAgICBmcF9yYW5nZVR5cGU7ICAgICAgIC8qIHRoZSB0eXBlIG9mIHRoZSBGT1Ig UE9SVElPTiBPRiBleHByZXNzaW9uICovCisgICAgaW50ICAgICBmcF9yYW5nZUF0dG5vOyAg ICAgIC8qIHRoZSBhdHRubyBvZiB0aGUgcmFuZ2UgY29sdW1uICovCisgICAgRGF0dW0gICBm cF90YXJnZXRSYW5nZTsgICAgIC8qIHRoZSByYW5nZS9tdWx0aXJhbmdlL2V0YyBmcm9tIEZP UiBQT1JUSU9OIE9GICovCit9IEZvclBvcnRpb25PZlN0YXRlOworPC9wcm9ncmFtbGlzdGlu Zz4KKworICAgICAgIHdoZXJlIDxzdHJ1Y3RmaWVsZD5mcF9yYW5nZU5hbWU8L3N0cnVjdGZp ZWxkPiBpcyB0aGUgcmFuZ2UKKyAgICAgICBjb2x1bW4gbmFtZWQgaW4gdGhlIDxsaXRlcmFs PkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsCisgICAgICAgPHN0cnVjdGZpZWxk PmZwX3JhbmdlVHlwZTwvc3RydWN0ZmllbGQ+IGlzIGl0cyByYW5nZSB0eXBlLAorICAgICAg IDxzdHJ1Y3RmaWVsZD5mcF9yYW5nZUF0dG5vPC9zdHJ1Y3RmaWVsZD4gaXMgaXRzIGF0dHJp YnV0ZSBudW1iZXIsCisgICAgICAgYW5kIDxzdHJ1Y3RmaWVsZD5mcF90YXJnZXRSYW5nZTwv c3RydWN0ZmllbGQ+IGlzIGEgcmFuZ2V0eXBlIHZhbHVlIGNyZWF0ZWQKKyAgICAgICBieSBl dmFsdWF0aW5nIHRoZSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91bmRz LgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVu dHJ5PgogICAgIDwvdmFyaWFibGVsaXN0PgogICAgPC9wYXJhPgogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfY29uc3RyYWludC5jCmluZGV4IGZiZGJkYjgwODc5Li42M2ZhOGZlYzQwMyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKQEAgLTE2MjAsNiArMTYyMCw3IEBA IEZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3MoT2lkIG9wY2xhc3MsCiAJCQkJCQkgIE9pZCAq Y29udGFpbmVkYnlvcGVyb2lkLAogCQkJCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlvcGVy b2lkLAogCQkJCQkJICBPaWQgKmludGVyc2VjdG9wZXJvaWQsCisJCQkJCQkgIE9pZCAqaW50 ZXJzZWN0cHJvY29pZCwKIAkJCQkJCSAgT2lkICp3aXRob3V0cG9ydGlvbm9pZCkKIHsKIAlP aWQJCQlvcGZhbWlseSA9IEludmFsaWRPaWQ7CkBAIC0xNjczLDYgKzE2NzQsMTkgQEAgRmlu ZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhPaWQgb3BjbGFzcywKIAkJCWVsb2coRVJST1IsICJV bmV4cGVjdGVkIG9wY2ludHlwZTogJXUiLCBvcGNpbnR5cGUpOwogCX0KIAorCS8qCisJICog TG9vayB1cCB0aGUgaW50ZXJzZWN0IHByb2MuIFdlIHVzZSB0aGlzIGZvciBGT1IgUE9SVElP TiBPRgorCSAqIChib3RoIHRoZSBvcGVyYXRpb24gaXRzZWxmIGFuZCB3aGVuIGNoZWNraW5n IGZvcmVpZ24ga2V5cykuCisJICogSWYgdGhpcyBpcyBtaXNzaW5nIHdlIGRvbid0IG5lZWQg dG8gY29tcGxhaW4gaGVyZSwKKwkgKiBiZWNhdXNlIEZPUiBQT1JUSU9OIE9GIHdpbGwgbm90 IGJlIGFsbG93ZWQuCisJICovCisJKmludGVyc2VjdHByb2NvaWQgPSBJbnZhbGlkT2lkOwor CSppbnRlcnNlY3Rwcm9jb2lkID0gZ2V0X29wZmFtaWx5X3Byb2Mob3BmYW1pbHksIG9wY2lu dHlwZSwgb3BjaW50eXBlLCBHSVNUX0lOVEVSU0VDVF9QUk9DKTsKKworCS8qCisJICogTG9v ayB1cCB0aGUgd2l0aG91dF9wb3J0aW9uIGZ1bmMuIFdlIG5lZWQgdGhpcyBmb3IgUkVTVFJJ Q1QKKwkgKiBmb3JlaWduIGtleXMgYW5kIGFsc28gRk9SIFBPUlRJT04gT0YuCisJICovCiAJ KndpdGhvdXRwb3J0aW9ub2lkID0gSW52YWxpZE9pZDsKIAkqd2l0aG91dHBvcnRpb25vaWQg PSBnZXRfb3BmYW1pbHlfcHJvYyhvcGZhbWlseSwgb3BjaW50eXBlLCBvcGNpbnR5cGUsIEdJ U1RfV0lUSE9VVF9QT1JUSU9OX1BST0MpOwogCWlmICghT2lkSXNWYWxpZCgqd2l0aG91dHBv cnRpb25vaWQpKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAzNTZmYjZkMWVh Ni4uMmU3OGU4OWNkOWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMDIy OSwxMSArMTAyMjksMTIgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1 ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJT2lkCQkJcGVy aW9kb3Blcm9pZDsKIAkJT2lkCQkJYWdnZWRwZXJpb2RvcGVyb2lkOwogCQlPaWQJCQlpbnRl cnNlY3RvcGVyb2lkOworCQlPaWQJCQlpbnRlcnNlY3Rwcm9jb2lkOwogCQlPaWQJCQl3aXRo b3V0b3ZlcmxhcHNvaWQ7CiAKIAkJRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhvcGNsYXNz ZXNbbnVtcGtzIC0gMV0sICZwZXJpb2RvcGVyb2lkLAogCQkJCQkJCQkgICZhZ2dlZHBlcmlv ZG9wZXJvaWQsICZpbnRlcnNlY3RvcGVyb2lkLAotCQkJCQkJCQkgICZ3aXRob3V0b3Zlcmxh cHNvaWQpOworCQkJCQkJCQkgICZpbnRlcnNlY3Rwcm9jb2lkLCAmd2l0aG91dG92ZXJsYXBz b2lkKTsKIAl9CiAKIAkvKiBGaXJzdCwgY3JlYXRlIHRoZSBjb25zdHJhaW50IGNhdGFsb2cg ZW50cnkgaXRzZWxmLiAqLwpAQCAtMTI2MDEsNiArMTI2MDIsNyBAQCB2YWxpZGF0ZUZvcmVp Z25LZXlDb25zdHJhaW50KGNoYXIgKmNvbm5hbWUsCiAJCXRyaWdkYXRhLnRnX3RyaWd0dXBs ZSA9IEV4ZWNGZXRjaFNsb3RIZWFwVHVwbGUoc2xvdCwgZmFsc2UsIE5VTEwpOwogCQl0cmln ZGF0YS50Z190cmlnc2xvdCA9IHNsb3Q7CiAJCXRyaWdkYXRhLnRnX3RyaWdnZXIgPSAmdHJp ZzsKKwkJdHJpZ2RhdGEudGdfdGVtcG9yYWwgPSBOVUxMOwogCiAJCWZjaW5mby0+Y29udGV4 dCA9IChOb2RlICopICZ0cmlnZGF0YTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHJpZ2dlci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCmluZGV4 IDMyZjI1ZjRkOTExLi5jMTdiMmNiYmI2YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHJpZ2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpA QCAtNDcsMTIgKzQ3LDE0IEBACiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVk ZSAidXRpbHMvYWNsLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRl ICJ1dGlscy9kYXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAjaW5jbHVk ZSAidXRpbHMvZ3VjX2hvb2tzLmgiCiAjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKICNpbmNs dWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgog I2luY2x1ZGUgInV0aWxzL3BsYW5jYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JhbmdldHlw ZXMuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdy LmgiCiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKQEAgLTI2MzIsNiArMjYzNCw3IEBA IEV4ZWNCU0RlbGV0ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJbmZvICpy ZWxpbmZvKQogCUxvY1RyaWdnZXJEYXRhLnRnX2V2ZW50ID0gVFJJR0dFUl9FVkVOVF9ERUxF VEUgfAogCQlUUklHR0VSX0VWRU5UX0JFRk9SRTsKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxh dGlvbiA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlMb2NUcmlnZ2VyRGF0YS50Z190 ZW1wb3JhbCA9IHJlbGluZm8tPnJpX2ZvclBvcnRpb25PZjsKIAlmb3IgKGkgPSAwOyBpIDwg dHJpZ2Rlc2MtPm51bXRyaWdnZXJzOyBpKyspCiAJewogCQlUcmlnZ2VyICAgICp0cmlnZ2Vy ID0gJnRyaWdkZXNjLT50cmlnZ2Vyc1tpXTsKQEAgLTI3MzEsNiArMjczNCw3IEBAIEV4ZWNC UkRlbGV0ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBFUFFTdGF0ZSAqZXBxc3RhdGUsCiAJ CVRSSUdHRVJfRVZFTlRfUk9XIHwKIAkJVFJJR0dFUl9FVkVOVF9CRUZPUkU7CiAJTG9jVHJp Z2dlckRhdGEudGdfcmVsYXRpb24gPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJTG9j VHJpZ2dlckRhdGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAJ Zm9yIChpID0gMDsgaSA8IHRyaWdkZXNjLT5udW10cmlnZ2VyczsgaSsrKQogCXsKIAkJSGVh cFR1cGxlCW5ld3R1cGxlOwpAQCAtMjgyMiw2ICsyODI2LDcgQEAgRXhlY0lSRGVsZXRlVHJp Z2dlcnMoRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCVRSSUdH RVJfRVZFTlRfUk9XIHwKIAkJVFJJR0dFUl9FVkVOVF9JTlNURUFEOwogCUxvY1RyaWdnZXJE YXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxvY1RyaWdn ZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCiAJRXhl Y0ZvcmNlU3RvcmVIZWFwVHVwbGUodHJpZ3R1cGxlLCBzbG90LCBmYWxzZSk7CiAKQEAgLTI4 ODUsNiArMjg5MCw3IEBAIEV4ZWNCU1VwZGF0ZVRyaWdnZXJzKEVTdGF0ZSAqZXN0YXRlLCBS ZXN1bHRSZWxJbmZvICpyZWxpbmZvKQogCQlUUklHR0VSX0VWRU5UX0JFRk9SRTsKIAlMb2NU cmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbGluZm8tPnJpX1JlbGF0aW9uRGVzYzsKIAlM b2NUcmlnZ2VyRGF0YS50Z191cGRhdGVkY29scyA9IHVwZGF0ZWRDb2xzOworCUxvY1RyaWdn ZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCWZvciAo aSA9IDA7IGkgPCB0cmlnZGVzYy0+bnVtdHJpZ2dlcnM7IGkrKykKIAl7CiAJCVRyaWdnZXIg ICAgKnRyaWdnZXIgPSAmdHJpZ2Rlc2MtPnRyaWdnZXJzW2ldOwpAQCAtMzAyMCw2ICszMDI2 LDcgQEAgRXhlY0JSVXBkYXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUsIEVQUVN0YXRlICpl cHFzdGF0ZSwKIAkJVFJJR0dFUl9FVkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5UX0JFRk9S RTsKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbGluZm8tPnJpX1JlbGF0aW9u RGVzYzsKKwlMb2NUcmlnZ2VyRGF0YS50Z190ZW1wb3JhbCA9IHJlbGluZm8tPnJpX2ZvclBv cnRpb25PZjsKIAl1cGRhdGVkQ29scyA9IEV4ZWNHZXRBbGxVcGRhdGVkQ29scyhyZWxpbmZv LCBlc3RhdGUpOwogCUxvY1RyaWdnZXJEYXRhLnRnX3VwZGF0ZWRjb2xzID0gdXBkYXRlZENv bHM7CiAJZm9yIChpID0gMDsgaSA8IHRyaWdkZXNjLT5udW10cmlnZ2VyczsgaSsrKQpAQCAt MzE2OSw2ICszMTc2LDcgQEAgRXhlY0lSVXBkYXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUs IFJlc3VsdFJlbEluZm8gKnJlbGluZm8sCiAJCVRSSUdHRVJfRVZFTlRfUk9XIHwKIAkJVFJJ R0dFUl9FVkVOVF9JTlNURUFEOwogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVs aW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0g cmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCiAJRXhlY0ZvcmNlU3RvcmVIZWFwVHVwbGUo dHJpZ3R1cGxlLCBvbGRzbG90LCBmYWxzZSk7CiAKQEAgLTM2MzUsNiArMzY0Myw3IEBAIHR5 cGVkZWYgc3RydWN0IEFmdGVyVHJpZ2dlclNoYXJlZERhdGEKIAlPaWQJCQlhdHNfdGdvaWQ7 CQkvKiB0aGUgdHJpZ2dlcidzIElEICovCiAJT2lkCQkJYXRzX3JlbGlkOwkJLyogdGhlIHJl bGF0aW9uIGl0J3Mgb24gKi8KIAlDb21tYW5kSWQJYXRzX2ZpcmluZ19pZDsJLyogSUQgZm9y IGZpcmluZyBjeWNsZSAqLworCUZvclBvcnRpb25PZlN0YXRlICpmb3JfcG9ydGlvbl9vZjsJ LyogdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSAqLwogCXN0cnVjdCBBZnRlclRyaWdnZXJz VGFibGVEYXRhICphdHNfdGFibGU7CS8qIHRyYW5zaXRpb24gdGFibGUgYWNjZXNzICovCiAJ Qml0bWFwc2V0ICAqYXRzX21vZGlmaWVkY29sczsJLyogbW9kaWZpZWQgY29sdW1ucyAqLwog fSBBZnRlclRyaWdnZXJTaGFyZWREYXRhOwpAQCAtMzkwOCw2ICszOTE3LDcgQEAgc3RhdGlj IFNldENvbnN0cmFpbnRTdGF0ZSBTZXRDb25zdHJhaW50U3RhdGVDcmVhdGUoaW50IG51bWFs bG9jKTsKIHN0YXRpYyBTZXRDb25zdHJhaW50U3RhdGUgU2V0Q29uc3RyYWludFN0YXRlQ29w eShTZXRDb25zdHJhaW50U3RhdGUgb3JpZ3N0YXRlKTsKIHN0YXRpYyBTZXRDb25zdHJhaW50 U3RhdGUgU2V0Q29uc3RyYWludFN0YXRlQWRkSXRlbShTZXRDb25zdHJhaW50U3RhdGUgc3Rh dGUsCiAJCQkJCQkJCQkJCQkJT2lkIHRnb2lkLCBib29sIHRnaXNkZWZlcnJlZCk7CitzdGF0 aWMgRm9yUG9ydGlvbk9mU3RhdGUgKkNvcHlGb3JQb3J0aW9uT2ZTdGF0ZShGb3JQb3J0aW9u T2ZTdGF0ZSAqc3JjKTsKIHN0YXRpYyB2b2lkIGNhbmNlbF9wcmlvcl9zdG10X3RyaWdnZXJz KE9pZCByZWxpZCwgQ21kVHlwZSBjbWRUeXBlLCBpbnQgdGdldmVudCk7CiAKIApAQCAtNDEy MCw2ICs0MTMwLDcgQEAgYWZ0ZXJUcmlnZ2VyQWRkRXZlbnQoQWZ0ZXJUcmlnZ2VyRXZlbnRM aXN0ICpldmVudHMsCiAJCQluZXdzaGFyZWQtPmF0c19yZWxpZCA9PSBldnRzaGFyZWQtPmF0 c19yZWxpZCAmJgogCQkJbmV3c2hhcmVkLT5hdHNfZXZlbnQgPT0gZXZ0c2hhcmVkLT5hdHNf ZXZlbnQgJiYKIAkJCW5ld3NoYXJlZC0+YXRzX3RhYmxlID09IGV2dHNoYXJlZC0+YXRzX3Rh YmxlICYmCisJCQluZXdzaGFyZWQtPmZvcl9wb3J0aW9uX29mID09IGV2dHNoYXJlZC0+Zm9y X3BvcnRpb25fb2YgJiYKIAkJCW5ld3NoYXJlZC0+YXRzX2ZpcmluZ19pZCA9PSAwKQogCQkJ YnJlYWs7CiAJfQpAQCAtNDQ4OCw2ICs0NDk5LDcgQEAgQWZ0ZXJUcmlnZ2VyRXhlY3V0ZShF U3RhdGUgKmVzdGF0ZSwKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbDsKIAlp ZiAoVFJJR0dFUl9GT1JfVVBEQVRFKExvY1RyaWdnZXJEYXRhLnRnX3RyaWdnZXItPnRndHlw ZSkpCiAJCUxvY1RyaWdnZXJEYXRhLnRnX3VwZGF0ZWRjb2xzID0gZXZ0c2hhcmVkLT5hdHNf bW9kaWZpZWRjb2xzOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0gZXZ0c2hhcmVk LT5mb3JfcG9ydGlvbl9vZjsKIAogCU1lbW9yeUNvbnRleHRSZXNldChwZXJfdHVwbGVfY29u dGV4dCk7CiAKQEAgLTYwMjIsNiArNjAzNCw0MCBAQCBBZnRlclRyaWdnZXJQZW5kaW5nT25S ZWwoT2lkIHJlbGlkKQogCXJldHVybiBmYWxzZTsKIH0KIAorLyogLS0tLS0tLS0tLQorICog Rm9yUG9ydGlvbk9mU3RhdGUoKQorICoKKyAqIENvcHlzIGEgRm9yUG9ydGlvbk9mU3RhdGUg aW50byB0aGUgY3VycmVudCBtZW1vcnkgY29udGV4dC4KKyAqLworc3RhdGljIEZvclBvcnRp b25PZlN0YXRlICoKK0NvcHlGb3JQb3J0aW9uT2ZTdGF0ZShGb3JQb3J0aW9uT2ZTdGF0ZSAq c3JjKQoreworCUZvclBvcnRpb25PZlN0YXRlICpkc3QgPSBOVUxMOworCWlmIChzcmMpIHsK KwkJTWVtb3J5Q29udGV4dCBvbGRjdHg7CisJCVJhbmdlVHlwZSAqcjsKKwkJVHlwZUNhY2hl RW50cnkgKnR5cGNhY2hlOworCisJCS8qCisJCSAqIE5lZWQgdG8gbGlmdCB0aGUgRk9SIFBP UlRJT04gT0YgZGV0YWlscyBpbnRvIGEgaGlnaGVyIG1lbW9yeSBjb250ZXh0CisJCSAqIGJl Y2F1c2UgY2FzY2FkaW5nIGZvcmVpZ24ga2V5IHVwZGF0ZS9kZWxldGVzIGNhbiBjYXVzZSB0 cmlnZ2VycyB0byBmaXJlCisJCSAqIHRyaWdnZXJzLCBhbmQgdGhlIEFmdGVyVHJpZ2dlckV2 ZW50cyB3aWxsIG91dGxpdmUgdGhlIEZQTworCQkgKiBkZXRhaWxzIG9mIHRoZSBvcmlnaW5h bCBxdWVyeS4KKwkJICovCisJCW9sZGN0eCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhUb3BU cmFuc2FjdGlvbkNvbnRleHQpOworCQlkc3QgPSBtYWtlTm9kZShGb3JQb3J0aW9uT2ZTdGF0 ZSk7CisJCWRzdC0+ZnBfcmFuZ2VOYW1lID0gcHN0cmR1cChzcmMtPmZwX3JhbmdlTmFtZSk7 CisJCWRzdC0+ZnBfcmFuZ2VUeXBlID0gc3JjLT5mcF9yYW5nZVR5cGU7CisJCWRzdC0+ZnBf cmFuZ2VBdHRubyA9IHNyYy0+ZnBfcmFuZ2VBdHRubzsKKworCQlyID0gRGF0dW1HZXRSYW5n ZVR5cGVQKHNyYy0+ZnBfdGFyZ2V0UmFuZ2UpOworCQl0eXBjYWNoZSA9IGxvb2t1cF90eXBl X2NhY2hlKFJhbmdlVHlwZUdldE9pZChyKSwgVFlQRUNBQ0hFX1JBTkdFX0lORk8pOworCQlk c3QtPmZwX3RhcmdldFJhbmdlID0gZGF0dW1Db3B5KHNyYy0+ZnBfdGFyZ2V0UmFuZ2UsIHR5 cGNhY2hlLT50eXBieXZhbCwgdHlwY2FjaGUtPnR5cGxlbik7CisJCU1lbW9yeUNvbnRleHRT d2l0Y2hUbyhvbGRjdHgpOworCX0KKwlyZXR1cm4gZHN0OworfQorCiAvKiAtLS0tLS0tLS0t CiAgKiBBZnRlclRyaWdnZXJTYXZlRXZlbnQoKQogICoKQEAgLTY0MzcsNiArNjQ4Myw3IEBA IEFmdGVyVHJpZ2dlclNhdmVFdmVudChFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAq cmVsaW5mbywKIAkJZWxzZQogCQkJbmV3X3NoYXJlZC5hdHNfdGFibGUgPSBOVUxMOwogCQlu ZXdfc2hhcmVkLmF0c19tb2RpZmllZGNvbHMgPSBhZnRlclRyaWdnZXJDb3B5Qml0bWFwKG1v ZGlmaWVkQ29scyk7CisJCW5ld19zaGFyZWQuZm9yX3BvcnRpb25fb2YgPSBDb3B5Rm9yUG9y dGlvbk9mU3RhdGUocmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mKTsKIAogCQlhZnRlclRyaWdn ZXJBZGRFdmVudCgmYWZ0ZXJUcmlnZ2Vycy5xdWVyeV9zdGFja1thZnRlclRyaWdnZXJzLnF1 ZXJ5X2RlcHRoXS5ldmVudHMsCiAJCQkJCQkJICZuZXdfZXZlbnQsICZuZXdfc2hhcmVkKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IGEwNjI5NWI2YmE3Li4xOGJhM2E5NGE0 NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0xMjU0LDYgKzEyNTQsNyBAQCBJ bml0UmVzdWx0UmVsSW5mbyhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCXJlc3Vs dFJlbEluZm8tPnJpX3Byb2plY3RSZXR1cm5pbmcgPSBOVUxMOwogCXJlc3VsdFJlbEluZm8t PnJpX29uQ29uZmxpY3RBcmJpdGVySW5kZXhlcyA9IE5JTDsKIAlyZXN1bHRSZWxJbmZvLT5y aV9vbkNvbmZsaWN0ID0gTlVMTDsKKwlyZXN1bHRSZWxJbmZvLT5yaV9mb3JQb3J0aW9uT2Yg PSBOVUxMOwogCXJlc3VsdFJlbEluZm8tPnJpX1JldHVybmluZ1Nsb3QgPSBOVUxMOwogCXJl c3VsdFJlbEluZm8tPnJpX1RyaWdPbGRTbG90ID0gTlVMTDsKIAlyZXN1bHRSZWxJbmZvLT5y aV9UcmlnTmV3U2xvdCA9IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlTW9kaWZ5VGFibGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlU YWJsZS5jCmluZGV4IDFhZjhjOWNhZjZjLi5iMWNjOWJhYzk1OCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKQEAgLTUyLDYgKzUyLDcgQEAKIAogI2luY2x1 ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCiAjaW5jbHVk ZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5oIgogI2luY2x1ZGUgImFjY2Vzcy90YWJsZWFtLmgi CiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKQEAgLTU5LDE0ICs2MCwxOSBAQAogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj dXRvci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5oIgorI2luY2x1 ZGUgImV4ZWN1dG9yL3NwaS5oIgogI2luY2x1ZGUgImZvcmVpZ24vZmR3YXBpLmgiCiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCiAjaW5j bHVkZSAib3B0aW1pemVyL29wdGltaXplci5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9y ZWxhdGlvbi5oIgogI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNpbmNs dWRlICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgogI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKKyNpbmNs dWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9yYW5nZXR5cGVzLmgi CiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgog CkBAIC0xMjMsNiArMTI5LDE5IEBAIHR5cGVkZWYgc3RydWN0IFVwZGF0ZUNvbnRleHQKIAlM b2NrVHVwbGVNb2RlIGxvY2ttb2RlOwogfSBVcGRhdGVDb250ZXh0OwogCisvKgorICogRlBP X1F1ZXJ5SGFzaEVudHJ5CisgKi8KK3R5cGVkZWYgc3RydWN0IEZQT19RdWVyeUhhc2hFbnRy eSB7CisJT2lkCQkJa2V5OworCVNQSVBsYW5QdHIJcGxhbjsKK30gRlBPX1F1ZXJ5SGFzaEVu dHJ5OworCisvKgorICogUGxhbiBjYWNoZSBmb3IgRk9SIFBPUlRJT04gT0YgaW5zZXJ0cwor ICovCisjZGVmaW5lIEZQT19JTklUX1FVRVJZSEFTSFNJWkUgMzIKK3N0YXRpYyBIVEFCICpm cG9fcXVlcnlfY2FjaGUgPSBOVUxMOwogCiBzdGF0aWMgdm9pZCBFeGVjQmF0Y2hJbnNlcnQo TW9kaWZ5VGFibGVTdGF0ZSAqbXRzdGF0ZSwKIAkJCQkJCQlSZXN1bHRSZWxJbmZvICpyZXN1 bHRSZWxJbmZvLApAQCAtMTQ0LDYgKzE2MywxMyBAQCBzdGF0aWMgYm9vbCBFeGVjT25Db25m bGljdFVwZGF0ZShNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCSBUdXBs ZVRhYmxlU2xvdCAqZXhjbHVkZWRTbG90LAogCQkJCQkJCQkgYm9vbCBjYW5TZXRUYWcsCiAJ CQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqKnJldHVybmluZyk7CitzdGF0aWMgdm9pZCBmcG9f SW5pdEhhc2hUYWJsZSh2b2lkKTsKK3N0YXRpYyBTUElQbGFuUHRyIGZwb19GZXRjaFByZXBh cmVkUGxhbihPaWQgcmVsaWQpOworc3RhdGljIHZvaWQgZnBvX0hhc2hQcmVwYXJlZFBsYW4o T2lkIHJlbGlkLCBTUElQbGFuUHRyIHBsYW4pOworc3RhdGljIHZvaWQgRXhlY0ZvclBvcnRp b25PZkxlZnRvdmVycyhNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCisJCQkJCQkJCQkg IEVTdGF0ZSAqZXN0YXRlLAorCQkJCQkJCQkJICBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJ bmZvLAorCQkJCQkJCQkJICBJdGVtUG9pbnRlciB0dXBsZWlkKTsKIHN0YXRpYyBUdXBsZVRh YmxlU2xvdCAqRXhlY1ByZXBhcmVUdXBsZVJvdXRpbmcoTW9kaWZ5VGFibGVTdGF0ZSAqbXRz dGF0ZSwKIAkJCQkJCQkJCQkJICAgRVN0YXRlICplc3RhdGUsCiAJCQkJCQkJCQkJCSAgIFBh cnRpdGlvblR1cGxlUm91dGluZyAqcHJvdXRlLApAQCAtMTY2LDYgKzE5Miw3IEBAIHN0YXRp YyBUdXBsZVRhYmxlU2xvdCAqRXhlY01lcmdlTWF0Y2hlZChNb2RpZnlUYWJsZUNvbnRleHQg KmNvbnRleHQsCiBzdGF0aWMgVHVwbGVUYWJsZVNsb3QgKkV4ZWNNZXJnZU5vdE1hdGNoZWQo TW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCQkJCQkJCQkJCSAgIFJlc3VsdFJlbElu Zm8gKnJlc3VsdFJlbEluZm8sCiAJCQkJCQkJCQkJICAgYm9vbCBjYW5TZXRUYWcpOworc3Rh dGljIHZvaWQgRXhlY1NldHVwVHJhbnNpdGlvbkNhcHR1cmVTdGF0ZShNb2RpZnlUYWJsZVN0 YXRlICptdHN0YXRlLCBFU3RhdGUgKmVzdGF0ZSk7CiAKIAogLyoKQEAgLTEyMTQsNiArMTI0 MSwzNjcgQEAgRXhlY0luc2VydChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJcmV0 dXJuIHJlc3VsdDsKIH0KIAorLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoJCWZwb19Jbml0SGFzaFRhYmxl CisgKgorICoJCUNyZWF0ZXMgYSBoYXNoIHRhYmxlIHRvIGhvbGQgU1BJIHBsYW5zIHRvIGlu c2VydCBsZWZ0b3ZlcnMKKyAqCQlmcm9tIGEgUE9SVElPTiBPRiBVUERBVEUvREVMRVRFCisg KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKi8KK3N0YXRpYyB2b2lkCitmcG9fSW5pdEhhc2hUYWJsZSh2b2lk KQoreworCUhBU0hDVEwJCWN0bDsKKworCWN0bC5rZXlzaXplID0gc2l6ZW9mKE9pZCk7CisJ Y3RsLmVudHJ5c2l6ZSA9IHNpemVvZihGUE9fUXVlcnlIYXNoRW50cnkpOworCWZwb19xdWVy eV9jYWNoZSA9IGhhc2hfY3JlYXRlKCJGUE9fcXVlcnlfY2FjaGUiLAorCQkJCQkJCQkgIEZQ T19JTklUX1FVRVJZSEFTSFNJWkUsCisJCQkJCQkJCSAgJmN0bCwgSEFTSF9FTEVNIHwgSEFT SF9CTE9CUyk7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlmcG9fRmV0Y2hQcmVwYXJlZFBs YW4KKyAqCisgKgkJTG9va3VwIGZvciBhIHF1ZXJ5IGtleSBpbiBvdXIgcHJpdmF0ZSBoYXNo IHRhYmxlIG9mCisgKgkJcHJlcGFyZWQgYW5kIHNhdmVkIFNQSSBleGVjdXRpb24gcGxhbnMu IFJldHVybnMgdGhlIHBsYW4KKyAqCQlpZiBmb3VuZCBvciBOVUxMLgorICogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICovCitzdGF0aWMgU1BJUGxhblB0cgorZnBvX0ZldGNoUHJlcGFyZWRQbGFuKE9pZCBy ZWxpZCkKK3sKKwlGUE9fUXVlcnlIYXNoRW50cnkgKmVudHJ5OworCVNQSVBsYW5QdHIJcGxh bjsKKworCWlmICghZnBvX3F1ZXJ5X2NhY2hlKQorCQlmcG9fSW5pdEhhc2hUYWJsZSgpOwor CisJLyoKKwkgKiBMb29rdXAgZm9yIHRoZSBrZXkKKwkgKi8KKwllbnRyeSA9IChGUE9fUXVl cnlIYXNoRW50cnkgKikgaGFzaF9zZWFyY2goZnBvX3F1ZXJ5X2NhY2hlLAorCQkJCQkJCQkJ CQkgICAmcmVsaWQsCisJCQkJCQkJCQkJCSAgIEhBU0hfRklORCwgTlVMTCk7CisKKwlpZiAo IWVudHJ5KQorCQlyZXR1cm4gTlVMTDsKKworCS8qCisJICogQ2hlY2sgd2hldGhlciB0aGUg cGxhbiBpcyBzdGlsbCB2YWxpZC4gIElmIGl0IGlzbid0LCB3ZSBkb24ndCB3YW50IHRvCisJ ICogc2ltcGx5IHJlbHkgb24gcGxhbmNhY2hlLmMgdG8gcmVnZW5lcmF0ZSBpdDsgcmF0aGVy IHdlIHNob3VsZCBzdGFydAorCSAqIGZyb20gc2NyYXRjaCBhbmQgcmVidWlsZCB0aGUgcXVl cnkgdGV4dCB0b28uICBUaGlzIGlzIHRvIGNvdmVyIGNhc2VzCisJICogc3VjaCBhcyB0YWJs ZS9jb2x1bW4gcmVuYW1lcy4gIFdlIGRlcGVuZCBvbiB0aGUgcGxhbmNhY2hlIG1hY2hpbmVy eSB0bworCSAqIGRldGVjdCBwb3NzaWJsZSBpbnZhbGlkYXRpb25zLCB0aG91Z2guCisJICoK KwkgKiBDQVVUSU9OOiB0aGlzIGNoZWNrIGlzIG9ubHkgdHJ1c3R3b3J0aHkgaWYgdGhlIGNh bGxlciBoYXMgYWxyZWFkeQorCSAqIGxvY2tlZCBib3RoIEZLIGFuZCBQSyByZWxzLgorCSAq LworCXBsYW4gPSBlbnRyeS0+cGxhbjsKKwlpZiAocGxhbiAmJiBTUElfcGxhbl9pc192YWxp ZChwbGFuKSkKKwkJcmV0dXJuIHBsYW47CisKKwkvKgorCSAqIE90aGVyd2lzZSB3ZSBtaWdo dCBhcyB3ZWxsIGZsdXNoIHRoZSBjYWNoZWQgcGxhbiBub3csIHRvIGZyZWUgYSBsaXR0bGUK KwkgKiBtZW1vcnkgc3BhY2UgYmVmb3JlIHdlIG1ha2UgYSBuZXcgb25lLgorCSAqLworCWVu dHJ5LT5wbGFuID0gTlVMTDsKKwlpZiAocGxhbikKKwkJU1BJX2ZyZWVwbGFuKHBsYW4pOwor CisJcmV0dXJuIE5VTEw7Cit9CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlmcG9fSGFzaFByZXBh cmVkUGxhbgorICoKKyAqCQlBZGQgYW5vdGhlciBwbGFuIHRvIG91ciBwcml2YXRlIFNQSSBx dWVyeSBwbGFuIGhhc2h0YWJsZS4KKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworc3RhdGljIHZvaWQK K2Zwb19IYXNoUHJlcGFyZWRQbGFuKE9pZCByZWxpZCwgU1BJUGxhblB0ciBwbGFuKQorewor CUZQT19RdWVyeUhhc2hFbnRyeSAqZW50cnk7CisJYm9vbAkJZm91bmQ7CisKKwkvKgorCSAq IE9uIHRoZSBmaXJzdCBjYWxsIGluaXRpYWxpemUgdGhlIGhhc2h0YWJsZQorCSAqLworCWlm ICghZnBvX3F1ZXJ5X2NhY2hlKQorCQlmcG9fSW5pdEhhc2hUYWJsZSgpOworCisJLyoKKwkg KiBBZGQgdGhlIG5ldyBwbGFuLiBXZSBtaWdodCBiZSBvdmVyd3JpdGluZyBhbiBlbnRyeSBw cmV2aW91c2x5IGZvdW5kCisJICogaW52YWxpZCBieSBmcG9fRmV0Y2hQcmVwYXJlZFBsYW4u CisJICovCisJZW50cnkgPSAoRlBPX1F1ZXJ5SGFzaEVudHJ5ICopIGhhc2hfc2VhcmNoKGZw b19xdWVyeV9jYWNoZSwKKwkJCQkJCQkJCQkJICAgJnJlbGlkLAorCQkJCQkJCQkJCQkgICBI QVNIX0VOVEVSLCAmZm91bmQpOworCUFzc2VydCghZm91bmQgfHwgZW50cnktPnBsYW4gPT0g TlVMTCk7CisJZW50cnktPnBsYW4gPSBwbGFuOworfQorCisvKiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJ RXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycworICoKKyAqCQlJbnNlcnQgdHVwbGVzIGZvciB0 aGUgdW50b3VjaGVkIHBvcnRpb24gb2YgYSByb3cgaW4gYSBGT1IKKyAqCQlQT1JUSU9OIE9G IFVQREFURS9ERUxFVEUKKyAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworc3RhdGljIHZvaWQKK0V4ZWNG b3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoTW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAorCQkJ CQkJICBFU3RhdGUgKmVzdGF0ZSwKKwkJCQkJCSAgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVs SW5mbywKKwkJCQkJCSAgSXRlbVBvaW50ZXIgdHVwbGVpZCkKK3sKKwlNb2RpZnlUYWJsZVN0 YXRlICptdHN0YXRlID0gY29udGV4dC0+bXRzdGF0ZTsKKwlNb2RpZnlUYWJsZSAqbm9kZSA9 IChNb2RpZnlUYWJsZSAqKSBtdHN0YXRlLT5wcy5wbGFuOworCUZvclBvcnRpb25PZkV4cHIg KmZvclBvcnRpb25PZiA9IChGb3JQb3J0aW9uT2ZFeHByICopIG5vZGUtPmZvclBvcnRpb25P ZjsKKwlBdHRyTnVtYmVyCXJhbmdlQXR0bm87CisJT2lkCXJlbGlkOworCVR1cGxlRGVzYyB0 dXBkZXNjOworCWludAluYXR0czsKKwlEYXR1bQlvbGRSYW5nZTsKKwlUeXBlQ2FjaGVFbnRy eSAqdHlwY2FjaGU7CisJRm9yUG9ydGlvbk9mU3RhdGUgKmZwb1N0YXRlID0gcmVzdWx0UmVs SW5mby0+cmlfZm9yUG9ydGlvbk9mOworCVR1cGxlVGFibGVTbG90ICpvbGR0dXBsZVNsb3Qg PSBmcG9TdGF0ZS0+ZnBfRXhpc3Rpbmc7CisJVHVwbGVUYWJsZVNsb3QgKmxlZnRvdmVyU2xv dDsKKwlUdXBsZUNvbnZlcnNpb25NYXAgKm1hcCA9IE5VTEw7CisJSGVhcFR1cGxlIG9sZHR1 cGxlID0gTlVMTDsKKwlGbWdySW5mbyBmbGluZm87CisJUmV0dXJuU2V0SW5mbyByc2k7CisJ UmVsYXRpb24gcmVsOworCWJvb2wgZGlkSW5pdCA9IGZhbHNlOworCWJvb2wgc2hvdWxkRnJl ZSA9IGZhbHNlOworCUxPQ0FMX0ZDSU5GTyhmY2luZm8sIDIpOworCisJLyoKKwkgKiBHZXQg dGhlIHJhbmdlIG9mIHRoZSBvbGQgcHJlLVVQREFURS9ERUxFVEUgdHVwbGUsCisJICogc28g d2UgY2FuIGludGVyc2VjdCBpdCB3aXRoIHRoZSBGT1IgUE9SVElPTiBPRiB0YXJnZXQKKwkg KiBhbmQgc2VlIGlmIHRoZXJlIGFyZSBhbnkgImxlZnRvdmVycyIgdG8gaW5zZXJ0LgorCSAq CisJICogV2UgaGF2ZSBhbHJlYWR5IGxvY2tlZCB0aGUgdHVwbGUgaW4gRXhlY1VwZGF0ZS9F eGVjRGVsZXRlCisJICogYW5kIGl0IGhhcyBwYXNzZWQgRXZhbFBsYW5RdWFsLgorCSAqIE1h a2Ugc3VyZSB3ZSdyZSBsb29raW5nIGF0IHRoZSBtb3N0IHJlY2VudCB2ZXJzaW9uLgorCSAq IE90aGVyd2lzZSBjb25jdXJyZW50IHVwZGF0ZXMgb2YgdGhlIHNhbWUgdHVwbGUgaW4gUkVB RCBDT01NSVRURUQKKwkgKiBjb3VsZCBpbnNlcnQgY29uZmxpY3RpbmcgImxlZnRvdmVycyIu CisJICovCisJaWYgKCF0YWJsZV90dXBsZV9mZXRjaF9yb3dfdmVyc2lvbihyZXN1bHRSZWxJ bmZvLT5yaV9SZWxhdGlvbkRlc2MsIHR1cGxlaWQsIFNuYXBzaG90QW55LCBvbGR0dXBsZVNs b3QpKQorCQllbG9nKEVSUk9SLCAiZmFpbGVkIHRvIGZldGNoIHR1cGxlIGZvciBGT1IgUE9S VElPTiBPRiIpOworCisJLyoKKwkgKiBHZXQgdGhlIG9sZCByYW5nZSBvZiB0aGUgcmVjb3Jk IGJlaW5nIHVwZGF0ZWQvZGVsZXRlZC4KKwkgKiBNdXN0IHJlYWQgd2l0aCB0aGUgYXR0bm8g b2YgdGhlIGxlYWYgcGFydGl0aW9uLgorCSAqLworCisJcmFuZ2VBdHRubyA9IGZvclBvcnRp b25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vOworCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9Sb290 UmVzdWx0UmVsSW5mbykKKwkJbWFwID0gRXhlY0dldENoaWxkVG9Sb290TWFwKHJlc3VsdFJl bEluZm8pOworCWlmIChtYXAgIT0gTlVMTCkKKwkJcmFuZ2VBdHRubyA9IG1hcC0+YXR0ck1h cC0+YXR0bnVtc1tyYW5nZUF0dG5vIC0gMV07CisJc2xvdF9nZXRhbGxhdHRycyhvbGR0dXBs ZVNsb3QpOworCisJaWYgKG9sZHR1cGxlU2xvdC0+dHRzX2lzbnVsbFtyYW5nZUF0dG5vIC0g MV0pCisJCWVsb2coRVJST1IsICJmb3VuZCBhIE5VTEwgcmFuZ2UgaW4gYSB0ZW1wb3JhbCB0 YWJsZSIpOworCW9sZFJhbmdlID0gb2xkdHVwbGVTbG90LT50dHNfdmFsdWVzW3JhbmdlQXR0 bm8gLSAxXTsKKworCS8qCisJICogR2V0IHRoZSByYW5nZSdzIHR5cGUgY2FjaGUgZW50cnku IFRoaXMgaXMgd29ydGggY2FjaGluZyBmb3IgdGhlIHdob2xlCisJICogVVBEQVRFL0RFTEVU RSBhcyByYW5nZSBmdW5jdGlvbnMgZG8uCisJICovCisKKwl0eXBjYWNoZSA9IGZwb1N0YXRl LT5mcF9sZWZ0b3ZlcnN0eXBjYWNoZTsKKwlpZiAodHlwY2FjaGUgPT0gTlVMTCkKKwl7CisJ CXR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUoZm9yUG9ydGlvbk9mLT5yYW5nZVR5cGUs IDApOworCQlmcG9TdGF0ZS0+ZnBfbGVmdG92ZXJzdHlwY2FjaGUgPSB0eXBjYWNoZTsKKwl9 CisKKwkvKgorCSAqIEdldCB0aGUgcmFuZ2VzIHRvIHRoZSBsZWZ0L3JpZ2h0IG9mIHRoZSB0 YXJnZXRlZCByYW5nZS4KKwkgKiBXZSBjYWxsIGEgU0VUT0Ygc3VwcG9ydCBmdW5jdGlvbiBh bmQgaW5zZXJ0IGFzIG1hbnkgbGVmdG92ZXJzCisJICogYXMgaXQgZ2l2ZXMgdXMuIEFsdGhv dWdoIHJhbmdldHlwZXMgaGF2ZSAwLzEvMiBsZWZ0b3ZlcnMsCisJICogbXVsdGlyYW5nZXMg aGF2ZSAwLzEsIGFuZCBvdGhlciB0eXBlcyBtYXkgaGF2ZSBtb3JlLgorCSAqLworCisJZm1n cl9pbmZvKGZvclBvcnRpb25PZi0+d2l0aG91dFBvcnRpb25Qcm9jLCAmZmxpbmZvKTsKKwly c2kudHlwZSA9IFRfUmV0dXJuU2V0SW5mbzsKKwlyc2kuZWNvbnRleHQgPSBtdHN0YXRlLT5w cy5wc19FeHByQ29udGV4dDsKKwlyc2kuZXhwZWN0ZWREZXNjID0gTlVMTDsKKwlyc2kuYWxs b3dlZE1vZGVzID0gKGludCkgKFNGUk1fVmFsdWVQZXJDYWxsKTsKKwlyc2kucmV0dXJuTW9k ZSA9IFNGUk1fVmFsdWVQZXJDYWxsOworCXJzaS5zZXRSZXN1bHQgPSBOVUxMOworCXJzaS5z ZXREZXNjID0gTlVMTDsKKworCUluaXRGdW5jdGlvbkNhbGxJbmZvRGF0YSgqZmNpbmZvLCAm ZmxpbmZvLCAyLCBJbnZhbGlkT2lkLCBOVUxMLCAoTm9kZSAqKSAmcnNpKTsKKwlmY2luZm8t PmFyZ3NbMF0udmFsdWUgPSBvbGRSYW5nZTsKKwlmY2luZm8tPmFyZ3NbMF0uaXNudWxsID0g ZmFsc2U7CisJZmNpbmZvLT5hcmdzWzFdLnZhbHVlID0gZnBvU3RhdGUtPmZwX3RhcmdldFJh bmdlOworCWZjaW5mby0+YXJnc1sxXS5pc251bGwgPSBmYWxzZTsKKworCS8qCisJICogSWYg dGhlcmUgYXJlIHBhcnRpdGlvbnMsIHdlIG11c3QgaW5zZXJ0IGludG8gdGhlIHJvb3QgdGFi bGUsCisJICogc28gd2UgZ2V0IHR1cGxlIHJvdXRpbmcuIFdlIGFscmVhZHkgc2V0IHVwIGxl ZnRvdmVyU2xvdAorCSAqIHdpdGggdGhlIHJvb3QgdHVwbGUgZGVzY3JpcHRvci4KKwkgKi8K KwlpZiAocmVzdWx0UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm8pCisJCXJlc3VsdFJl bEluZm8gPSByZXN1bHRSZWxJbmZvLT5yaV9Sb290UmVzdWx0UmVsSW5mbzsKKworCXJlbCA9 IHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlyZWxpZCA9IFJlbGF0aW9uR2V0 UmVsaWQocmVsKTsKKworCS8qIEluc2VydCBhIGxlZnRvdmVyIGZvciBlYWNoIHZhbHVlIHJl dHVybmVkIGJ5IHRoZSB3aXRob3V0X3BvcnRpb24gaGVscGVyIGZ1bmN0aW9uICovCisJd2hp bGUgKHRydWUpCisJeworCQlEYXR1bSBsZWZ0b3ZlciA9IEZ1bmN0aW9uQ2FsbEludm9rZShm Y2luZm8pOworCQlTUElQbGFuUHRyCXFwbGFuID0gTlVMTDsKKwkJaW50IHNwaV9yZXN1bHQ7 CisKKwkJLyogQXJlIHdlIGRvbmU/ICovCisJCWlmIChyc2kuaXNEb25lID09IEV4cHJFbmRS ZXN1bHQpCisJCQlicmVhazsKKworCQlpZiAoZmNpbmZvLT5pc251bGwpCisJCQllbG9nKEVS Uk9SLCAiR290IGEgbnVsbCBmcm9tIHdpdGhvdXRfcG9ydGlvbiBmdW5jdGlvbiIpOworCisJ CWlmICghZGlkSW5pdCkKKwkJeworCQkJLyoKKwkJCSAqIENvbnZlcnQgb2xkdHVwbGUgdG8g dGhlIGJhc2UgdGFibGUncyBmb3JtYXQgaWYgbmVjZXNzYXJ5LgorCQkJICogV2UgbmVlZCB0 byBpbnNlcnQgbGVmdG92ZXJzIHRocm91Z2ggdGhlIHJvb3QgcGFydGl0aW9uCisJCQkgKiBz byB0aGV5IGdldCByb3V0ZWQgY29ycmVjdGx5LgorCQkJICovCisJCQlpZiAobWFwICE9IE5V TEwpCisJCQl7CisJCQkJbGVmdG92ZXJTbG90ID0gZXhlY3V0ZV9hdHRyX21hcF9zbG90KG1h cC0+YXR0ck1hcCwKKwkJCQkJCQkJCQkJCQkgb2xkdHVwbGVTbG90LAorCQkJCQkJCQkJCQkJ CSBmcG9TdGF0ZS0+ZnBfTGVmdG92ZXIpOworCQkJfQorCQkJZWxzZQorCQkJCWxlZnRvdmVy U2xvdCA9IG9sZHR1cGxlU2xvdDsKKworCQkJdHVwZGVzYyA9IGxlZnRvdmVyU2xvdC0+dHRz X3R1cGxlRGVzY3JpcHRvcjsKKwkJCW5hdHRzID0gdHVwZGVzYy0+bmF0dHM7CisKKwkJCS8q CisJCQkgKiBJZiB0YXJnZXRpbmcgYSBsZWFmIHBhcnRpdGlvbiwKKwkJCSAqIGl0IG1heSBu b3QgaGF2ZSBmcF92YWx1ZXMvZnBfbnVsbHMgeWV0LgorCQkJICovCisJCQlpZiAoIWZwb1N0 YXRlLT5mcF92YWx1ZXMpCisJCQl7CisJCQkJZnBvU3RhdGUtPmZwX3ZhbHVlcyA9IHBhbGxv YyhuYXR0cyAqIHNpemVvZihEYXR1bSkpOworCQkJCWZwb1N0YXRlLT5mcF9udWxscyA9IHBh bGxvYyhuYXR0cyAqIHNpemVvZihjaGFyKSk7CisJCQl9CisKKwkJCS8qCisJCQkgKiBDb3B5 IChwb3RlbnRpYWxseSBtYXBwZWQpIG9sZHR1cGxlIHZhbHVlcyBpbnRvIFNQSSBpbnB1dCBh cnJheXMuCisJCQkgKiBXZSdsbCBvdmVyd3JpdGUgdGhlIHJhbmdlL3N0YXJ0L2VuZCBhdHRy aWJ1dGVzIGJlbG93LgorCQkJICovCisJCQltZW1jcHkoZnBvU3RhdGUtPmZwX3ZhbHVlcywg bGVmdG92ZXJTbG90LT50dHNfdmFsdWVzLCBuYXR0cyAqIHNpemVvZihEYXR1bSkpOworCisJ CQlTUElfY29ubmVjdCgpOworCisJCQlkaWRJbml0ID0gdHJ1ZTsKKwkJfQorCisJCS8qCisJ CSAqIEJ1aWxkIGFuIFNQSSBwbGFuIGlmIHdlIGRvbid0IGhhdmUgb25lIHlldC4KKwkJICog V2UgYWx3YXlzIGluc2VydCBpbnRvIHRoZSByb290IHBhcnRpdGlvbiwKKwkJICogc28gdGhh dCB3ZSBnZXQgdHVwbGUgcm91dGluZy4KKwkJICogVGhlcmVmb3JlIHRoZSBwbGFuIGlzIHRo ZSBzYW1lIG5vIG1hdHRlciB3aGljaCBsZWFmCisJCSAqIHdlIGFyZSB1cGRhdGluZy9kZWxl dGluZy4KKwkJICovCisJCWlmICghcXBsYW4gJiYgIShxcGxhbiA9IGZwb19GZXRjaFByZXBh cmVkUGxhbihyZWxpZCkpKQorCQl7CisJCQlPaWQJKnR5cGVzID0gcGFsbG9jMChuYXR0cyAq IHNpemVvZihPaWQpKTsKKwkJCWludCBpOworCQkJYm9vbCBzdGFydGVkID0gZmFsc2U7CisJ CQlTdHJpbmdJbmZvRGF0YSBxdWVyeWJ1ZjsKKwkJCVN0cmluZ0luZm9EYXRhIHBhcmFtYnVm OworCQkJY29uc3QgY2hhciAqdGFibGVuYW1lOworCQkJY29uc3QgY2hhciAqc2NoZW1hbmFt ZTsKKwkJCWNvbnN0IGNoYXIgKmNvbG5hbWU7CisKKwkJCWluaXRTdHJpbmdJbmZvKCZxdWVy eWJ1Zik7CisJCQlpbml0U3RyaW5nSW5mbygmcGFyYW1idWYpOworCisJCQlzY2hlbWFuYW1l ID0gZ2V0X25hbWVzcGFjZV9uYW1lKFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCkpOworCQkJ dGFibGVuYW1lID0gUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKTsKKwkJCWFwcGVuZFN0 cmluZ0luZm8oJnF1ZXJ5YnVmLCAiSU5TRVJUIElOVE8gJXMgKCIsCisJCQkJCQkJIHF1b3Rl X3F1YWxpZmllZF9pZGVudGlmaWVyKHNjaGVtYW5hbWUsIHRhYmxlbmFtZSkpOworCisJCQlm b3IgKGkgPSAwOyBpIDwgbmF0dHM7IGkrKykgeworCQkJCS8qIERvbid0IHRyeSB0byBpbnNl cnQgaW50byBkcm9wcGVkIG9yIGdlbmVyYXRlZCBjb2x1bW5zICovCisJCQkJaWYgKHR1cGRl c2MtPmNvbXBhY3RfYXR0cnNbaV0uYXR0aXNkcm9wcGVkIHx8IHR1cGRlc2MtPmNvbXBhY3Rf YXR0cnNbaV0uYXR0Z2VuZXJhdGVkKQorCQkJCQljb250aW51ZTsKKworCQkJCXR5cGVzW2ld ID0gVHVwbGVEZXNjQXR0cih0dXBkZXNjLCBpKS0+YXR0dHlwaWQ7CisKKwkJCQljb2xuYW1l ID0gcXVvdGVfaWRlbnRpZmllcihOYW1lU3RyKCphdHRudW1BdHROYW1lKHJlbCwgaSArIDEp KSk7CisJCQkJaWYgKHN0YXJ0ZWQpCisJCQkJeworCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZx dWVyeWJ1ZiwgIiwgJXMiLCBjb2xuYW1lKTsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmcGFy YW1idWYsICIsICQlZCIsIGkgKyAxKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJ YXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIlcyIsIGNvbG5hbWUpOworCQkJCQlhcHBl bmRTdHJpbmdJbmZvKCZwYXJhbWJ1ZiwgIiQlZCIsIGkgKyAxKTsKKwkJCQl9CisJCQkJc3Rh cnRlZCA9IHRydWU7CisJCQl9CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIikg VkFMVUVTICglcykiLCBwYXJhbWJ1Zi5kYXRhKTsKKworCQkJcXBsYW4gPSBTUElfcHJlcGFy ZShxdWVyeWJ1Zi5kYXRhLCBuYXR0cywgdHlwZXMpOworCQkJaWYgKCFxcGxhbikKKwkJCQll bG9nKEVSUk9SLCAiU1BJX3ByZXBhcmUgcmV0dXJuZWQgJXMgZm9yICVzIiwKKwkJCQkJCVNQ SV9yZXN1bHRfY29kZV9zdHJpbmcoU1BJX3Jlc3VsdCksIHF1ZXJ5YnVmLmRhdGEpOworCisJ CQlTUElfa2VlcHBsYW4ocXBsYW4pOworCQkJZnBvX0hhc2hQcmVwYXJlZFBsYW4ocmVsaWQs IHFwbGFuKTsKKwkJfQorCisJCS8qCisJCSAqIFNldCB1cCB0aGUgU1BJIHBhcmFtcy4KKwkJ ICogQ29weSBtb3N0IGF0dHJpYnV0ZXMnIG9sZCB2YWx1ZXMsCisJCSAqIGJ1dCBmb3IgdGhl IHJhbmdlL3N0YXJ0L2VuZCB1c2UgdGhlIGxlZnRvdmVyLgorCQkgKi8KKworCQkvKiBDb252 ZXJ0IGJvb2wgbnVsbCBhcnJheSB0byBTUEkgY2hhciBhcnJheSAqLworCQlmb3IgKGludCBp ID0gMDsgaSA8IG5hdHRzOyBpKyspCisJCXsKKwkJCS8qCisJCQkgKiBEb24ndCB0cnkgdG8g aW5zZXJ0IGludG8gZHJvcHBlZCBvciBnZW5lcmF0ZWQgY29sdW1ucy4KKwkJCSAqIFRlbGwg U1BJIHRoZXNlIHBhcmFtcyBhcmUgbnVsbCBqdXN0IHRvIGJlIHNhZmUuCisJCQkgKi8KKwkJ CWlmICh0dXBkZXNjLT5jb21wYWN0X2F0dHJzW2ldLmF0dGlzZHJvcHBlZCB8fCB0dXBkZXNj LT5jb21wYWN0X2F0dHJzW2ldLmF0dGdlbmVyYXRlZCkKKwkJCQlmcG9TdGF0ZS0+ZnBfbnVs bHNbaV0gPSAnbic7CisJCQllbHNlCisJCQkJZnBvU3RhdGUtPmZwX251bGxzW2ldID0gbGVm dG92ZXJTbG90LT50dHNfaXNudWxsW2ldID8gJ24nIDogJyAnOworCQl9CisKKwkJZnBvU3Rh dGUtPmZwX251bGxzW2ZvclBvcnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vIC0gMV0gPSAn ICc7CisJCWZwb1N0YXRlLT5mcF92YWx1ZXNbZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFy YXR0bm8gLSAxXSA9IGxlZnRvdmVyOworCisJCXNwaV9yZXN1bHQgPSBTUElfZXhlY3V0ZV9z bmFwc2hvdChxcGxhbiwKKwkJCQkJCQkJCQkgIGZwb1N0YXRlLT5mcF92YWx1ZXMsCisJCQkJ CQkJCQkJICBmcG9TdGF0ZS0+ZnBfbnVsbHMsCisJCQkJCQkJCQkJICBHZXRMYXRlc3RTbmFw c2hvdCgpLAorCQkJCQkJCQkJCSAgSW52YWxpZFNuYXBzaG90LCBmYWxzZSwgdHJ1ZSwgMCk7 CisJCWlmIChzcGlfcmVzdWx0ICE9IFNQSV9PS19JTlNFUlQpCisJCQllbG9nKEVSUk9SLCAi U1BJX2V4ZWN1dGVfc25hcHNob3QgcmV0dXJuZWQgJXMiLCBTUElfcmVzdWx0X2NvZGVfc3Ry aW5nKHNwaV9yZXN1bHQpKTsKKwl9CisKKwlpZiAoZGlkSW5pdCkKKwl7CisJCWlmIChTUElf ZmluaXNoKCkgIT0gU1BJX09LX0ZJTklTSCkKKwkJCWVsb2coRVJST1IsICJTUElfZmluaXNo IGZhaWxlZCIpOworCisJCWlmIChzaG91bGRGcmVlKQorCQkJaGVhcF9mcmVldHVwbGUob2xk dHVwbGUpOworCX0KK30KKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCUV4ZWNCYXRjaEluc2VydAog ICoKQEAgLTEzNjYsNyArMTc1NCw4IEBAIEV4ZWNEZWxldGVBY3QoTW9kaWZ5VGFibGVDb250 ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogICoKICAqIENs b3Npbmcgc3RlcHMgb2YgdHVwbGUgZGVsZXRpb247IHRoaXMgaW52b2tlcyBBRlRFUiBGT1Ig RUFDSCBST1cgdHJpZ2dlcnMsCiAgKiBpbmNsdWRpbmcgdGhlIFVQREFURSB0cmlnZ2VycyBp ZiB0aGUgZGVsZXRpb24gaXMgYmVpbmcgZG9uZSBhcyBwYXJ0IG9mIGEKLSAqIGNyb3NzLXBh cnRpdGlvbiB0dXBsZSBtb3ZlLgorICogY3Jvc3MtcGFydGl0aW9uIHR1cGxlIG1vdmUuIEl0 IGFsc28gaW5zZXJ0cyBsZWZ0b3ZlcnMgZnJvbSBhIEZPUiBQT1JUSU9OIE9GCisgKiBkZWxl dGUuCiAgKi8KIHN0YXRpYyB2b2lkCiBFeGVjRGVsZXRlRXBpbG9ndWUoTW9kaWZ5VGFibGVD b250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLApAQCAtMTM5 OSw2ICsxNzg4LDEwIEBAIEV4ZWNEZWxldGVFcGlsb2d1ZShNb2RpZnlUYWJsZUNvbnRleHQg KmNvbnRleHQsIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCWFyX2RlbGV0ZV90 cmlnX3RjcyA9IE5VTEw7CiAJfQogCisJLyogQ29tcHV0ZSBsZWZ0b3ZlcnMgaW4gRk9SIFBP UlRJT04gT0YgKi8KKwlpZiAoKChNb2RpZnlUYWJsZSAqKSBjb250ZXh0LT5tdHN0YXRlLT5w cy5wbGFuKS0+Zm9yUG9ydGlvbk9mKQorCQlFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKGNv bnRleHQsIGVzdGF0ZSwgcmVzdWx0UmVsSW5mbywgdHVwbGVpZCk7CisKIAkvKiBBRlRFUiBS T1cgREVMRVRFIFRyaWdnZXJzICovCiAJRXhlY0FSRGVsZXRlVHJpZ2dlcnMoZXN0YXRlLCBy ZXN1bHRSZWxJbmZvLCB0dXBsZWlkLCBvbGR0dXBsZSwKIAkJCQkJCSBhcl9kZWxldGVfdHJp Z190Y3MsIGNoYW5naW5nUGFydCk7CkBAIC0xNzc5LDcgKzIxNzIsMTEgQEAgRXhlY0Nyb3Nz UGFydGl0aW9uVXBkYXRlKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAlpZiAocmVz dWx0UmVsSW5mbyA9PSBtdHN0YXRlLT5yb290UmVzdWx0UmVsSW5mbykKIAkJRXhlY1BhcnRp dGlvbkNoZWNrRW1pdEVycm9yKHJlc3VsdFJlbEluZm8sIHNsb3QsIGVzdGF0ZSk7CiAKLQkv KiBJbml0aWFsaXplIHR1cGxlIHJvdXRpbmcgaW5mbyBpZiBub3QgYWxyZWFkeSBkb25lLiAq LworCS8qCisJICogSW5pdGlhbGl6ZSB0dXBsZSByb3V0aW5nIGluZm8gaWYgbm90IGFscmVh ZHkgZG9uZS4KKwkgKiBOb3RlIHdoYXRldmVyIHdlIGRvIGhlcmUgbXVzdCBiZSBkb25lIGlu IEV4ZWNJbml0TW9kaWZ5VGFibGUKKwkgKiBmb3IgRk9SIFBPUlRJT04gT0YgYXMgd2VsbC4K KwkgKi8KIAlpZiAobXRzdGF0ZS0+bXRfcGFydGl0aW9uX3R1cGxlX3JvdXRpbmcgPT0gTlVM TCkKIAl7CiAJCVJlbGF0aW9uCXJvb3RSZWwgPSBtdHN0YXRlLT5yb290UmVzdWx0UmVsSW5m by0+cmlfUmVsYXRpb25EZXNjOwpAQCAtMjE0NSw2ICsyNTQyLDEwIEBAIEV4ZWNVcGRhdGVF cGlsb2d1ZShNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsIFVwZGF0ZUNvbnRleHQgKnVw ZGF0ZUN4dCwKIAkJCQkJCQkJCQkJICAgTlVMTCwgTklMLAogCQkJCQkJCQkJCQkgICAodXBk YXRlQ3h0LT51cGRhdGVJbmRleGVzID09IFRVX1N1bW1hcml6aW5nKSk7CiAKKwkvKiBDb21w dXRlIGxlZnRvdmVycyBpbiBGT1IgUE9SVElPTiBPRiAqLworCWlmICgoKE1vZGlmeVRhYmxl ICopIGNvbnRleHQtPm10c3RhdGUtPnBzLnBsYW4pLT5mb3JQb3J0aW9uT2YpCisJCUV4ZWNG b3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoY29udGV4dCwgY29udGV4dC0+ZXN0YXRlLCByZXN1bHRS ZWxJbmZvLCB0dXBsZWlkKTsKKwogCS8qIEFGVEVSIFJPVyBVUERBVEUgVHJpZ2dlcnMgKi8K IAlFeGVjQVJVcGRhdGVUcmlnZ2Vycyhjb250ZXh0LT5lc3RhdGUsIHJlc3VsdFJlbEluZm8s CiAJCQkJCQkgTlVMTCwgTlVMTCwKQEAgLTQ2NDAsNiArNTA0MSw5OSBAQCBFeGVjSW5pdE1v ZGlmeVRhYmxlKE1vZGlmeVRhYmxlICpub2RlLCBFU3RhdGUgKmVzdGF0ZSwgaW50IGVmbGFn cykKIAkJfQogCX0KIAorCS8qCisJICogSWYgbmVlZGVkLCBpbml0aWFsaXplIHRoZSB0YXJn ZXQgcmFuZ2UgZm9yIEZPUiBQT1JUSU9OIE9GLgorCSAqLworCWlmIChub2RlLT5mb3JQb3J0 aW9uT2YpCisJeworCQlSZXN1bHRSZWxJbmZvICpyb290UmVzdWx0UmVsSW5mbzsKKwkJVHVw bGVEZXNjIHR1cERlc2M7CisJCUZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZjsKKwkJ RGF0dW0JdGFyZ2V0UmFuZ2U7CisJCWJvb2wJaXNOdWxsOworCQlFeHByQ29udGV4dCAqZWNv bnRleHQ7CisJCUV4cHJTdGF0ZSAqZXhwclN0YXRlOworCQlGb3JQb3J0aW9uT2ZTdGF0ZSAq ZnBvU3RhdGU7CisKKwkJcm9vdFJlc3VsdFJlbEluZm8gPSBtdHN0YXRlLT5yZXN1bHRSZWxJ bmZvOworCQlpZiAocm9vdFJlc3VsdFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQor CQkJcm9vdFJlc3VsdFJlbEluZm8gPSByb290UmVzdWx0UmVsSW5mby0+cmlfUm9vdFJlc3Vs dFJlbEluZm87CisKKwkJdHVwRGVzYyA9IHJvb3RSZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlv bkRlc2MtPnJkX2F0dDsKKwkJZm9yUG9ydGlvbk9mID0gKEZvclBvcnRpb25PZkV4cHIgKikg bm9kZS0+Zm9yUG9ydGlvbk9mOworCisJCS8qIEV2YWwgdGhlIEZPUiBQT1JUSU9OIE9GIHRh cmdldCAqLworCQlpZiAobXRzdGF0ZS0+cHMucHNfRXhwckNvbnRleHQgPT0gTlVMTCkKKwkJ CUV4ZWNBc3NpZ25FeHByQ29udGV4dChlc3RhdGUsICZtdHN0YXRlLT5wcyk7CisJCWVjb250 ZXh0ID0gbXRzdGF0ZS0+cHMucHNfRXhwckNvbnRleHQ7CisKKwkJZXhwclN0YXRlID0gRXhl Y1ByZXBhcmVFeHByKChFeHByICopIGZvclBvcnRpb25PZi0+dGFyZ2V0UmFuZ2UsIGVzdGF0 ZSk7CisJCXRhcmdldFJhbmdlID0gRXhlY0V2YWxFeHByKGV4cHJTdGF0ZSwgZWNvbnRleHQs ICZpc051bGwpOworCQlpZiAoaXNOdWxsKQorCQkJZWxvZyhFUlJPUiwgIkdvdCBhIE5VTEwg Rk9SIFBPUlRJT04gT0YgdGFyZ2V0IHJhbmdlIik7CisKKwkJLyogQ3JlYXRlIHN0YXRlIGZv ciBGT1IgUE9SVElPTiBPRiBvcGVyYXRpb24gKi8KKworCQlmcG9TdGF0ZSA9IG1ha2VOb2Rl KEZvclBvcnRpb25PZlN0YXRlKTsKKwkJZnBvU3RhdGUtPmZwX3JhbmdlTmFtZSA9IGZvclBv cnRpb25PZi0+cmFuZ2VfbmFtZTsKKwkJZnBvU3RhdGUtPmZwX3JhbmdlVHlwZSA9IGZvclBv cnRpb25PZi0+cmFuZ2VUeXBlOworCQlmcG9TdGF0ZS0+ZnBfcmFuZ2VBdHRubyA9IGZvclBv cnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vOworCQlmcG9TdGF0ZS0+ZnBfdGFyZ2V0UmFu Z2UgPSB0YXJnZXRSYW5nZTsKKworCQkvKiBJbml0aWFsaXplIHNsb3QgZm9yIHRoZSBleGlz dGluZyB0dXBsZSAqLworCisJCWZwb1N0YXRlLT5mcF9FeGlzdGluZyA9CisJCQl0YWJsZV9z bG90X2NyZWF0ZShyb290UmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjLAorCQkJCQkJ CSAgJm10c3RhdGUtPnBzLnN0YXRlLT5lc190dXBsZVRhYmxlKTsKKworCQkvKiBDcmVhdGUg dGhlIHR1cGxlIHNsb3QgZm9yIElOU0VSVGluZyB0aGUgbGVmdG92ZXJzICovCisKKwkJZnBv U3RhdGUtPmZwX0xlZnRvdmVyID0KKwkJCUV4ZWNJbml0RXh0cmFUdXBsZVNsb3QobXRzdGF0 ZS0+cHMuc3RhdGUsIHR1cERlc2MsICZUVFNPcHNWaXJ0dWFsKTsKKworCQkvKiBBbGxvY2F0 ZSBvdXIgU1BJIHBhcmFtIGFycmF5cyBoZXJlIHNvIHdlIGNhbiByZXVzZSB0aGVtICovCisJ CWZwb1N0YXRlLT5mcF92YWx1ZXMgPSBwYWxsb2ModHVwRGVzYy0+bmF0dHMgKiBzaXplb2Yo RGF0dW0pKTsKKwkJZnBvU3RhdGUtPmZwX251bGxzID0gcGFsbG9jKHR1cERlc2MtPm5hdHRz ICogc2l6ZW9mKGNoYXIpKTsKKworCQkvKgorCQkgKiBXZSBtdXN0IGF0dGFjaCB0aGUgRm9y UG9ydGlvbk9mU3RhdGUgdG8gYWxsIHJlc3VsdCByZWxzLAorCQkgKiBpbiBjYXNlIG9mIGEg Y3Jvc3MtcGFydGl0aW9uIHVwZGF0ZSBvciB0cmlnZ2VycyBmaXJpbmcKKwkJICogb24gcGFy dGl0aW9ucy4KKwkJICogWFhYOiBDYW4gd2UgZGVmZXIgdGhpcyB0byBvbmx5IHRoZSBsZWFm cyB3ZSB0b3VjaD8KKwkJICovCisJCWZvciAoaSA9IDA7IGkgPCBucmVsczsgaSsrKQorCQl7 CisJCQlGb3JQb3J0aW9uT2ZTdGF0ZQkqbGVhZlN0YXRlOworCQkJcmVzdWx0UmVsSW5mbyA9 ICZtdHN0YXRlLT5yZXN1bHRSZWxJbmZvW2ldOworCisJCQlsZWFmU3RhdGUgPSBtYWtlTm9k ZShGb3JQb3J0aW9uT2ZTdGF0ZSk7CisJCQlsZWFmU3RhdGUtPmZwX3JhbmdlTmFtZSA9IGZw b1N0YXRlLT5mcF9yYW5nZU5hbWU7CisJCQlsZWFmU3RhdGUtPmZwX3JhbmdlVHlwZSA9IGZw b1N0YXRlLT5mcF9yYW5nZVR5cGU7CisJCQlsZWFmU3RhdGUtPmZwX3JhbmdlQXR0bm8gPSBm cG9TdGF0ZS0+ZnBfcmFuZ2VBdHRubzsKKwkJCWxlYWZTdGF0ZS0+ZnBfdGFyZ2V0UmFuZ2Ug PSBmcG9TdGF0ZS0+ZnBfdGFyZ2V0UmFuZ2U7CisJCQlsZWFmU3RhdGUtPmZwX0xlZnRvdmVy ID0gZnBvU3RhdGUtPmZwX0xlZnRvdmVyOworCQkJLyogRWFjaCBwYXJ0aXRpb24gbmVlZHMg YSBzbG90IG1hdGNoaW5nIGl0cyB0dXBsZSBkZXNjcmlwdG9yICovCisJCQlsZWFmU3RhdGUt PmZwX0V4aXN0aW5nID0KKwkJCQl0YWJsZV9zbG90X2NyZWF0ZShyZXN1bHRSZWxJbmZvLT5y aV9SZWxhdGlvbkRlc2MsCisJCQkJCQkJCSAgJm10c3RhdGUtPnBzLnN0YXRlLT5lc190dXBs ZVRhYmxlKTsKKwkJCS8qCisJCQkgKiBMZWFmcyBuZWVkIHRoZW0gb3duIFNQSSBpbnB1dCBh cnJheXMKKwkJCSAqIHNpbmNlIHRoZXkgbWlnaHQgaGF2ZSBleHRyYSBhdHRyaWJ1dGVzLAor CQkJICogYnV0IHdlJ2xsIGFsbG9jYXRlIHRob3NlIGFzIG5lZWRlZC4KKwkJCSAqLworCQkJ bGVhZlN0YXRlLT5mcF92YWx1ZXMgPSBOVUxMOworCQkJbGVhZlN0YXRlLT5mcF9udWxscyA9 IE5VTEw7CisKKwkJCXJlc3VsdFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZiA9IGxlYWZTdGF0 ZTsKKwkJfQorCisJCS8qIE1ha2Ugc3VyZSB0aGUgcm9vdCByZWxhdGlvbiBoYXMgdGhlIEZP UiBQT1JUSU9OIE9GIGNsYXVzZSB0b28uICovCisJCWlmIChub2RlLT5yb290UmVsYXRpb24g PiAwKQorCQkJbXRzdGF0ZS0+cm9vdFJlc3VsdFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZiA9 IGZwb1N0YXRlOworCisJCS8qIERvbid0IGZyZWUgdGhlIEV4cHJDb250ZXh0IGhlcmUgYmVj YXVzZSB0aGUgcmVzdWx0IG11c3QgbGFzdCBmb3IgdGhlIHdob2xlIHF1ZXJ5ICovCisJfQor CiAJLyoKIAkgKiBJZiB3ZSBoYXZlIGFueSBzZWNvbmRhcnkgcmVsYXRpb25zIGluIGFuIFVQ REFURSBvciBERUxFVEUsIHRoZXkgbmVlZCB0bwogCSAqIGJlIHRyZWF0ZWQgbGlrZSBub24t bG9ja2VkIHJlbGF0aW9ucyBpbiBTRUxFQ1QgRk9SIFVQREFURSwgaS5lLiwgdGhlCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL3NwaS5jCmluZGV4IGVjYjJlNGNjYWExLi42ZDUwNGY2ZTVkMiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3BpLmMKQEAgLTc2NCw3ICs3NjQsNyBAQCBTUElfZXhlY3V0ZV9wbGFuX3dpdGhfcGFyYW1s aXN0KFNQSVBsYW5QdHIgcGxhbiwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAgKiBlbmQgb2Yg dGhlIGNvbW1hbmQuCiAgKgogICogVGhpcyBpcyBjdXJyZW50bHkgbm90IGRvY3VtZW50ZWQg aW4gc3BpLnNnbWwgYmVjYXVzZSBpdCBpcyBvbmx5IGludGVuZGVkCi0gKiBmb3IgdXNlIGJ5 IFJJIHRyaWdnZXJzLgorICogZm9yIHVzZSBieSBSSSB0cmlnZ2VycyBhbmQgRk9SIFBPUlRJ T04gT0YuCiAgKgogICogUGFzc2luZyBzbmFwc2hvdCA9PSBJbnZhbGlkU25hcHNob3Qgd2ls bCBzZWxlY3QgdGhlIG5vcm1hbCBiZWhhdmlvciBvZgogICogZmV0Y2hpbmcgYSBuZXcgc25h cHNob3QgZm9yIGVhY2ggcXVlcnkuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9u b2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGRmNzc5 MTM3YzlkLi5hZDY5Yzk1ZmIzNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9k ZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTI1NjAs NiArMjU2MCwxNCBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwK IAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX0ZvclBvcnRp b25PZkV4cHI6CisJCQl7CisJCQkJRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mID0g KEZvclBvcnRpb25PZkV4cHIgKikgbm9kZTsKKworCQkJCWlmIChXQUxLKGZvclBvcnRpb25P Zi0+dGFyZ2V0UmFuZ2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwog CQljYXNlIFRfUGFydGl0aW9uUHJ1bmVTdGVwT3A6CiAJCQl7CiAJCQkJUGFydGl0aW9uUHJ1 bmVTdGVwT3AgKm9wc3RlcCA9IChQYXJ0aXRpb25QcnVuZVN0ZXBPcCAqKSBub2RlOwpAQCAt MjcwNiw2ICsyNzE0LDggQEAgcXVlcnlfdHJlZV93YWxrZXJfaW1wbChRdWVyeSAqcXVlcnks CiAJCXJldHVybiB0cnVlOwogCWlmIChXQUxLKHF1ZXJ5LT5tZXJnZUpvaW5Db25kaXRpb24p KQogCQlyZXR1cm4gdHJ1ZTsKKwlpZiAoV0FMSyhxdWVyeS0+Zm9yUG9ydGlvbk9mKSkKKwkJ cmV0dXJuIHRydWU7CiAJaWYgKFdBTEsocXVlcnktPnJldHVybmluZ0xpc3QpKQogCQlyZXR1 cm4gdHJ1ZTsKIAlpZiAoV0FMSyhxdWVyeS0+am9pbnRyZWUpKQpAQCAtMzU5MCw2ICszNjAw LDE5IEBAIGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQly ZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfRm9y UG9ydGlvbk9mRXhwcjoKKwkJCXsKKwkJCQlGb3JQb3J0aW9uT2ZFeHByICpmcG8gPSAoRm9y UG9ydGlvbk9mRXhwciAqKSBub2RlOworCQkJCUZvclBvcnRpb25PZkV4cHIgKm5ld25vZGU7 CisKKwkJCQlGTEFUQ09QWShuZXdub2RlLCBmcG8sIEZvclBvcnRpb25PZkV4cHIpOworCQkJ CU1VVEFURShuZXdub2RlLT5yYW5nZVZhciwgZnBvLT5yYW5nZVZhciwgVmFyICopOworCQkJ CU1VVEFURShuZXdub2RlLT50YXJnZXRSYW5nZSwgZnBvLT50YXJnZXRSYW5nZSwgTm9kZSAq KTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+cmFuZ2VUYXJnZXRMaXN0LCBmcG8tPnJhbmdlVGFy Z2V0TGlzdCwgTGlzdCAqKTsKKworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOworCQkJ fQorCQkJYnJlYWs7CiAJCWNhc2UgVF9QYXJ0aXRpb25QcnVuZVN0ZXBPcDoKIAkJCXsKIAkJ CQlQYXJ0aXRpb25QcnVuZVN0ZXBPcCAqb3BzdGVwID0gKFBhcnRpdGlvblBydW5lU3RlcE9w ICopIG5vZGU7CkBAIC0zNzcxLDYgKzM3OTQsNyBAQCBxdWVyeV90cmVlX211dGF0b3JfaW1w bChRdWVyeSAqcXVlcnksCiAJTVVUQVRFKHF1ZXJ5LT5vbkNvbmZsaWN0LCBxdWVyeS0+b25D b25mbGljdCwgT25Db25mbGljdEV4cHIgKik7CiAJTVVUQVRFKHF1ZXJ5LT5tZXJnZUFjdGlv bkxpc3QsIHF1ZXJ5LT5tZXJnZUFjdGlvbkxpc3QsIExpc3QgKik7CiAJTVVUQVRFKHF1ZXJ5 LT5tZXJnZUpvaW5Db25kaXRpb24sIHF1ZXJ5LT5tZXJnZUpvaW5Db25kaXRpb24sIE5vZGUg Kik7CisJTVVUQVRFKHF1ZXJ5LT5mb3JQb3J0aW9uT2YsIHF1ZXJ5LT5mb3JQb3J0aW9uT2Ys IEZvclBvcnRpb25PZkV4cHIgKik7CiAJTVVUQVRFKHF1ZXJ5LT5yZXR1cm5pbmdMaXN0LCBx dWVyeS0+cmV0dXJuaW5nTGlzdCwgTGlzdCAqKTsKIAlNVVRBVEUocXVlcnktPmpvaW50cmVl LCBxdWVyeS0+am9pbnRyZWUsIEZyb21FeHByICopOwogCU1VVEFURShxdWVyeS0+c2V0T3Bl cmF0aW9ucywgcXVlcnktPnNldE9wZXJhdGlvbnMsIE5vZGUgKik7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKaW5kZXggMWNhYWQ1ZjNhNjEuLjQ1OTMzOWFl NTI0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFu LmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jCkBAIC0z MTYsNyArMzE2LDcgQEAgc3RhdGljIE1vZGlmeVRhYmxlICptYWtlX21vZGlmeXRhYmxlKFBs YW5uZXJJbmZvICpyb290LCBQbGFuICpzdWJwbGFuLAogCQkJCQkJCQkJIExpc3QgKndpdGhD aGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdMaXN0cywKIAkJCQkJCQkJCSBMaXN0 ICpyb3dNYXJrcywgT25Db25mbGljdEV4cHIgKm9uY29uZmxpY3QsCiAJCQkJCQkJCQkgTGlz dCAqbWVyZ2VBY3Rpb25MaXN0cywgTGlzdCAqbWVyZ2VKb2luQ29uZGl0aW9ucywKLQkJCQkJ CQkJCSBpbnQgZXBxUGFyYW0pOworCQkJCQkJCQkJIEZvclBvcnRpb25PZkV4cHIgKmZvclBv cnRpb25PZiwgaW50IGVwcVBhcmFtKTsKIHN0YXRpYyBHYXRoZXJNZXJnZSAqY3JlYXRlX2dh dGhlcl9tZXJnZV9wbGFuKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkgR2F0aGVy TWVyZ2VQYXRoICpiZXN0X3BhdGgpOwogCkBAIC0yODQyLDYgKzI4NDIsNyBAQCBjcmVhdGVf bW9kaWZ5dGFibGVfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgTW9kaWZ5VGFibGVQYXRoICpi ZXN0X3BhdGgpCiAJCQkJCQkJYmVzdF9wYXRoLT5vbmNvbmZsaWN0LAogCQkJCQkJCWJlc3Rf cGF0aC0+bWVyZ2VBY3Rpb25MaXN0cywKIAkJCQkJCQliZXN0X3BhdGgtPm1lcmdlSm9pbkNv bmRpdGlvbnMsCisJCQkJCQkJYmVzdF9wYXRoLT5mb3JQb3J0aW9uT2YsCiAJCQkJCQkJYmVz dF9wYXRoLT5lcHFQYXJhbSk7CiAKIAljb3B5X2dlbmVyaWNfcGF0aF9pbmZvKCZwbGFuLT5w bGFuLCAmYmVzdF9wYXRoLT5wYXRoKTsKQEAgLTcxMTgsNyArNzExOSw3IEBAIG1ha2VfbW9k aWZ5dGFibGUoUGxhbm5lckluZm8gKnJvb3QsIFBsYW4gKnN1YnBsYW4sCiAJCQkJIExpc3Qg KndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdMaXN0cywKIAkJCQkgTGlz dCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNvbmZsaWN0LAogCQkJCSBMaXN0ICpt ZXJnZUFjdGlvbkxpc3RzLCBMaXN0ICptZXJnZUpvaW5Db25kaXRpb25zLAotCQkJCSBpbnQg ZXBxUGFyYW0pCisJCQkJIEZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiwgaW50IGVw cVBhcmFtKQogewogCU1vZGlmeVRhYmxlICpub2RlID0gbWFrZU5vZGUoTW9kaWZ5VGFibGUp OwogCUxpc3QJICAgKmZkd19wcml2YXRlX2xpc3Q7CkBAIC03MTg0LDYgKzcxODUsNyBAQCBt YWtlX21vZGlmeXRhYmxlKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpzdWJwbGFuLAogCQlu b2RlLT5leGNsUmVsVGxpc3QgPSBvbmNvbmZsaWN0LT5leGNsUmVsVGxpc3Q7CiAJfQogCW5v ZGUtPnVwZGF0ZUNvbG5vc0xpc3RzID0gdXBkYXRlQ29sbm9zTGlzdHM7CisJbm9kZS0+Zm9y UG9ydGlvbk9mID0gKE5vZGUgKikgZm9yUG9ydGlvbk9mOwogCW5vZGUtPndpdGhDaGVja09w dGlvbkxpc3RzID0gd2l0aENoZWNrT3B0aW9uTGlzdHM7CiAJbm9kZS0+cmV0dXJuaW5nTGlz dHMgPSByZXR1cm5pbmdMaXN0czsKIAlub2RlLT5yb3dNYXJrcyA9IHJvd01hcmtzOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCmluZGV4IGU5MmUxMDhiNmI2Li45OTNk MTQzOTc3ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5l ci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtMjA0 OCw2ICsyMDQ4LDcgQEAgZ3JvdXBpbmdfcGxhbm5lcihQbGFubmVySW5mbyAqcm9vdCwgZG91 YmxlIHR1cGxlX2ZyYWN0aW9uLAogCQkJCQkJCQkJCXBhcnNlLT5vbkNvbmZsaWN0LAogCQkJ CQkJCQkJCW1lcmdlQWN0aW9uTGlzdHMsCiAJCQkJCQkJCQkJbWVyZ2VKb2luQ29uZGl0aW9u cywKKwkJCQkJCQkJCQlwYXJzZS0+Zm9yUG9ydGlvbk9mLAogCQkJCQkJCQkJCWFzc2lnbl9z cGVjaWFsX2V4ZWNfcGFyYW0ocm9vdCkpOwogCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC9wYXRobm9kZS5jCmluZGV4IDkzZTczY2I0NGRiLi5iODMyMmRiYzg0YSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYworKysgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCkBAIC0zODg0LDcgKzM4ODQsNyBA QCBjcmVhdGVfbW9kaWZ5dGFibGVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0SW5m byAqcmVsLAogCQkJCQkJTGlzdCAqd2l0aENoZWNrT3B0aW9uTGlzdHMsIExpc3QgKnJldHVy bmluZ0xpc3RzLAogCQkJCQkJTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNv bmZsaWN0LAogCQkJCQkJTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgTGlzdCAqbWVyZ2VKb2lu Q29uZGl0aW9ucywKLQkJCQkJCWludCBlcHFQYXJhbSkKKwkJCQkJCUZvclBvcnRpb25PZkV4 cHIgKmZvclBvcnRpb25PZiwgaW50IGVwcVBhcmFtKQogewogCU1vZGlmeVRhYmxlUGF0aCAq cGF0aG5vZGUgPSBtYWtlTm9kZShNb2RpZnlUYWJsZVBhdGgpOwogCkBAIC0zOTUxLDYgKzM5 NTEsNyBAQCBjcmVhdGVfbW9kaWZ5dGFibGVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVs T3B0SW5mbyAqcmVsLAogCXBhdGhub2RlLT5yZXR1cm5pbmdMaXN0cyA9IHJldHVybmluZ0xp c3RzOwogCXBhdGhub2RlLT5yb3dNYXJrcyA9IHJvd01hcmtzOwogCXBhdGhub2RlLT5vbmNv bmZsaWN0ID0gb25jb25mbGljdDsKKwlwYXRobm9kZS0+Zm9yUG9ydGlvbk9mID0gZm9yUG9y dGlvbk9mOwogCXBhdGhub2RlLT5lcHFQYXJhbSA9IGVwcVBhcmFtOwogCXBhdGhub2RlLT5t ZXJnZUFjdGlvbkxpc3RzID0gbWVyZ2VBY3Rpb25MaXN0czsKIAlwYXRobm9kZS0+bWVyZ2VK b2luQ29uZGl0aW9ucyA9IG1lcmdlSm9pbkNvbmRpdGlvbnM7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUu YwppbmRleCA1NjFjZjRkNmE3Ny4uMGM4NWNlYWM4ODUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUu YwpAQCAtMjQsNyArMjQsMTAgQEAKIAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNs dWRlICJhY2Nlc3MvZ2lzdC5oIgorI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgogI2lu Y2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgpAQCAtNDcsMTAgKzUwLDEyIEBA CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5j bHVkZSAicGFyc2VyL3BhcnNlci5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIK ICNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL2J1 aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZ3VjLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5 c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAjaW5jbHVkZSAidXRpbHMvc3lz Y2FjaGUuaCIKIApAQCAtNTksMTAgKzY0LDE2IEBACiBwb3N0X3BhcnNlX2FuYWx5emVfaG9v a190eXBlIHBvc3RfcGFyc2VfYW5hbHl6ZV9ob29rID0gTlVMTDsKIAogc3RhdGljIFF1ZXJ5 ICp0cmFuc2Zvcm1PcHRpb25hbFNlbGVjdEludG8oUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2Rl ICpwYXJzZVRyZWUpOworc3RhdGljIE5vZGUgKmFkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0 aW9ucyhRdWVyeSAqcXJ5LCBGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZiwKKwkJ CQkJCQkJCQkJTm9kZSAqd2hlcmVDbGF1c2UpOwogc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1E ZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCk7CiBzdGF0 aWMgUXVlcnkgKnRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBJbnNl cnRTdG10ICpzdG10KTsKIHN0YXRpYyBPbkNvbmZsaWN0RXhwciAqdHJhbnNmb3JtT25Db25m bGljdENsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCQkgT25Db25mbGlj dENsYXVzZSAqb25Db25mbGljdENsYXVzZSk7CitzdGF0aWMgRm9yUG9ydGlvbk9mRXhwciAq dHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJ CQkJCQkJCQkgaW50IHJ0aW5kZXgsCisJCQkJCQkJCQkJCQkJIEZvclBvcnRpb25PZkNsYXVz ZSAqZm9yUG9ydGlvbk9mQ2xhdXNlLAorCQkJCQkJCQkJCQkJCSBib29sIGlzVXBkYXRlKTsK IHN0YXRpYyBpbnQJY291bnRfcm93ZXhwcl9jb2x1bW5zKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Tm9kZSAqZXhwcik7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNm b3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCk7 CkBAIC01NjcsNiArNTc4LDIwIEBAIHN0bXRfcmVxdWlyZXNfcGFyc2VfYW5hbHlzaXMoUmF3 U3RtdCAqcGFyc2VUcmVlKQogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBOb2RlICoK K2FkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhRdWVyeSAqcXJ5LCBGb3JQb3J0aW9u T2ZDbGF1c2UgKmZvclBvcnRpb25PZiwgTm9kZSAqd2hlcmVDbGF1c2UpCit7CisJaWYgKGZv clBvcnRpb25PZikKKwl7CisJCWlmICh3aGVyZUNsYXVzZSkKKwkJCXJldHVybiAoTm9kZSAq KSBtYWtlQm9vbEV4cHIoQU5EX0VYUFIsIGxpc3RfbWFrZTIocXJ5LT5mb3JQb3J0aW9uT2Yt Pm92ZXJsYXBzRXhwciwgd2hlcmVDbGF1c2UpLCAtMSk7CisJCWVsc2UKKwkJCXJldHVybiBx cnktPmZvclBvcnRpb25PZi0+b3ZlcmxhcHNFeHByOworCX0KKwllbHNlCisJCXJldHVybiB3 aGVyZUNsYXVzZTsKK30KKwogLyoKICAqIGFuYWx5emVfcmVxdWlyZXNfc25hcHNob3QKICAq CQlSZXR1cm5zIHRydWUgaWYgYSBzbmFwc2hvdCBtdXN0IGJlIHNldCBiZWZvcmUgZG9pbmcg cGFyc2UgYW5hbHlzaXMKQEAgLTYwMCw2ICs2MjUsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIHsKIAlRdWVyeQkgICAq cXJ5ID0gbWFrZU5vZGUoUXVlcnkpOwogCVBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtOwor CU5vZGUJICAgKndoZXJlQ2xhdXNlOwogCU5vZGUJICAgKnF1YWw7CiAKIAlxcnktPmNvbW1h bmRUeXBlID0gQ01EX0RFTEVURTsKQEAgLTYzOCw3ICs2NjQsMTEgQEAgdHJhbnNmb3JtRGVs ZXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIERlbGV0ZVN0bXQgKnN0bXQpCiAJbnNpdGVt LT5wX2xhdGVyYWxfb25seSA9IGZhbHNlOwogCW5zaXRlbS0+cF9sYXRlcmFsX29rID0gdHJ1 ZTsKIAotCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShwc3RhdGUsIHN0bXQtPndoZXJl Q2xhdXNlLAorCWlmIChzdG10LT5mb3JQb3J0aW9uT2YpCisJCXFyeS0+Zm9yUG9ydGlvbk9m ID0gdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKHBzdGF0ZSwgcXJ5LT5yZXN1bHRSZWxh dGlvbiwgc3RtdC0+Zm9yUG9ydGlvbk9mLCBmYWxzZSk7CisKKwl3aGVyZUNsYXVzZSA9IGFk ZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhxcnksIHN0bXQtPmZvclBvcnRpb25PZiwg c3RtdC0+d2hlcmVDbGF1c2UpOworCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShwc3Rh dGUsIHdoZXJlQ2xhdXNlLAogCQkJCQkJCQlFWFBSX0tJTkRfV0hFUkUsICJXSEVSRSIpOwog CiAJcXJ5LT5yZXR1cm5pbmdMaXN0ID0gdHJhbnNmb3JtUmV0dXJuaW5nTGlzdChwc3RhdGUs IHN0bXQtPnJldHVybmluZ0xpc3QsCkBAIC0xMjc0LDcgKzEzMDQsNyBAQCB0cmFuc2Zvcm1P bkNvbmZsaWN0Q2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJICogTm93IHRyYW5zZm9y bSB0aGUgVVBEQVRFIHN1YmV4cHJlc3Npb25zLgogCQkgKi8KIAkJb25Db25mbGljdFNldCA9 Ci0JCQl0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KHBzdGF0ZSwgb25Db25mbGljdENsYXVz ZS0+dGFyZ2V0TGlzdCk7CisJCQl0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KHBzdGF0ZSwg b25Db25mbGljdENsYXVzZS0+dGFyZ2V0TGlzdCwgTlVMTCk7CiAKIAkJb25Db25mbGljdFdo ZXJlID0gdHJhbnNmb3JtV2hlcmVDbGF1c2UocHN0YXRlLAogCQkJCQkJCQkJCQkgICBvbkNv bmZsaWN0Q2xhdXNlLT53aGVyZUNsYXVzZSwKQEAgLTEzMDQsNiArMTMzNCwxNzMgQEAgdHJh bnNmb3JtT25Db25mbGljdENsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJcmV0dXJuIHJl c3VsdDsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUZvclBvcnRpb25PZkNsYXVzZQorICoKKyAq CSAgVHJhbnNmb3JtcyBhIEZvclBvcnRpb25PZkNsYXVzZSBpbiBhbiBVUERBVEUvREVMRVRF IHN0YXRlbWVudC4KKyAqCisgKgkgIC0gTG9vayB1cCB0aGUgcmFuZ2UvcGVyaW9kIHJlcXVl c3RlZC4KKyAqCSAgLSBCdWlsZCBhIGNvbXBhdGlibGUgcmFuZ2UgdmFsdWUgZnJvbSB0aGUg RlJPTSBhbmQgVE8gZXhwcmVzc2lvbnMuCisgKgkgIC0gQnVpbGQgYW4gIm92ZXJsYXBzIiBl eHByZXNzaW9uIGZvciBmaWx0ZXJpbmcuCisgKgkgIC0gRm9yIFVQREFURXMsIGJ1aWxkIGFu ICJpbnRlcnNlY3RzIiBleHByZXNzaW9uIHRoZSByZXdyaXRlciBjYW4gYWRkCisgKgkJdG8g dGhlIHRhcmdldExpc3QgdG8gY2hhbmdlIHRoZSB0ZW1wb3JhbCBib3VuZHMuCisgKi8KK3N0 YXRpYyBGb3JQb3J0aW9uT2ZFeHByICoKK3RyYW5zZm9ybUZvclBvcnRpb25PZkNsYXVzZShQ YXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJaW50IHJ0aW5kZXgsCisJCQkJCQkJRm9yUG9y dGlvbk9mQ2xhdXNlICpmb3JQb3J0aW9uT2YsCisJCQkJCQkJYm9vbCBpc1VwZGF0ZSkKK3sK KwlSZWxhdGlvbiB0YXJnZXRyZWwgPSBwc3RhdGUtPnBfdGFyZ2V0X3JlbGF0aW9uOworCVJU RVBlcm1pc3Npb25JbmZvICp0YXJnZXRfcGVybWluZm8gPSBwc3RhdGUtPnBfdGFyZ2V0X25z aXRlbS0+cF9wZXJtaW5mbzsKKwljaGFyICpyYW5nZV9uYW1lID0gZm9yUG9ydGlvbk9mLT5y YW5nZV9uYW1lOworCWNoYXIgKnJhbmdlX3R5cGVfbmFtZXNwYWNlID0gTlVMTDsKKwljaGFy ICpyYW5nZV90eXBlX25hbWUgPSBOVUxMOworCWludCByYW5nZV9hdHRubyA9IEludmFsaWRB dHRyTnVtYmVyOworCUZvcm1fcGdfYXR0cmlidXRlIGF0dHI7CisJT2lkCW9wY2xhc3M7CisJ T2lkIG9wZmFtaWx5OworCU9pZCBvcGNpbnR5cGU7CisJT2lkIGZ1bmNpZCA9IEludmFsaWRP aWQ7CisJU3RyYXRlZ3lOdW1iZXIgc3RyYXQ7CisJT2lkCW9waWQ7CisJRm9yUG9ydGlvbk9m RXhwciAqcmVzdWx0OworCVZhciAqcmFuZ2VWYXI7CisJTm9kZSAqdGFyZ2V0RXhwcjsKKwor CS8qIFdlIGRvbid0IHN1cHBvcnQgRk9SIFBPUlRJT04gT0YgRkRXIHF1ZXJpZXMuICovCisJ aWYgKHRhcmdldHJlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJM RSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiZm9yZWlnbiB0YWJsZXMgZG9uJ3Qgc3VwcG9y dCBGT1IgUE9SVElPTiBPRiIpKSk7CisKKwlyZXN1bHQgPSBtYWtlTm9kZShGb3JQb3J0aW9u T2ZFeHByKTsKKworCS8qIExvb2sgdXAgdGhlIEZPUiBQT1JUSU9OIE9GIG5hbWUgcmVxdWVz dGVkLiAqLworCXJhbmdlX2F0dG5vID0gYXR0bmFtZUF0dE51bSh0YXJnZXRyZWwsIHJhbmdl X25hbWUsIGZhbHNlKTsKKwlpZiAocmFuZ2VfYXR0bm8gPT0gSW52YWxpZEF0dHJOdW1iZXIp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09M VU1OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gb3IgcGVyaW9kIFwiJXNcIiBvZiByZWxhdGlv biBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJcmFuZ2VfbmFtZSwKKwkJCQkJCVJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAorCQkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCBmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKSkpOworCWF0dHIgPSBUdXBs ZURlc2NBdHRyKHRhcmdldHJlbC0+cmRfYXR0LCByYW5nZV9hdHRubyAtIDEpOworCisJcmFu Z2VWYXIgPSBtYWtlVmFyKAorCQkJcnRpbmRleCwKKwkJCXJhbmdlX2F0dG5vLAorCQkJYXR0 ci0+YXR0dHlwaWQsCisJCQlhdHRyLT5hdHR0eXBtb2QsCisJCQlhdHRyLT5hdHRjb2xsYXRp b24sCisJCQkwKTsKKwlyYW5nZVZhci0+bG9jYXRpb24gPSBmb3JQb3J0aW9uT2YtPmxvY2F0 aW9uOworCXJlc3VsdC0+cmFuZ2VWYXIgPSByYW5nZVZhcjsKKwlyZXN1bHQtPnJhbmdlVHlw ZSA9IGF0dHItPmF0dHR5cGlkOworCWlmICghZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZShh dHRyLT5hdHR0eXBpZCwgJnJhbmdlX3R5cGVfbmFtZSwgJnJhbmdlX3R5cGVfbmFtZXNwYWNl KSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHR5cGUgJXUiLCBh dHRyLT5hdHR0eXBpZCk7CisKKworCWlmIChmb3JQb3J0aW9uT2YtPnRhcmdldCkKKwkJLyoK KwkJICogV2Ugd2VyZSBhbHJlYWR5IGdpdmVuIGFuIGV4cHJlc3Npb24gZm9yIHRoZSB0YXJn ZXQsCisJCSAqIHNvIHdlIGRvbid0IGhhdmUgdG8gYnVpbGQgYW55dGhpbmcuCisJCSAqLwor CQl0YXJnZXRFeHByID0gZm9yUG9ydGlvbk9mLT50YXJnZXQ7CisJZWxzZQorCXsKKwkJLyog TWFrZSBzdXJlIGl0J3MgYSByYW5nZSBjb2x1bW4gKi8KKwkJaWYgKCF0eXBlX2lzX3Jhbmdl KGF0dHItPmF0dHR5cGlkKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJCQkJIGVycm1zZygiY29sdW1u IFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgaXMgbm90IGEgcmFuZ2UgdHlwZSIsCisJCQkJ CQkJcmFuZ2VfbmFtZSwKKwkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRy ZWwpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGZvclBvcnRpb25PZi0+ bG9jYXRpb24pKSk7CisKKwkJLyoKKwkJICogQnVpbGQgYSByYW5nZSBmcm9tIHRoZSBGUk9N IC4uLiBUTyAuLi4uIGJvdW5kcy4KKwkJICogVGhpcyBzaG91bGQgZ2l2ZSBhIGNvbnN0YW50 IHJlc3VsdCwgc28gd2UgYWNjZXB0IGZ1bmN0aW9ucyBsaWtlIE5PVygpCisJCSAqIGJ1dCBu b3QgY29sdW1uIHJlZmVyZW5jZXMsIHN1YnF1ZXJpZXMsIGV0Yy4KKwkJICovCisJCXRhcmdl dEV4cHIgPSAoTm9kZSAqKSBtYWtlRnVuY0NhbGwoCisJCQkJbGlzdF9tYWtlMihtYWtlU3Ry aW5nKHJhbmdlX3R5cGVfbmFtZXNwYWNlKSwgbWFrZVN0cmluZyhyYW5nZV90eXBlX25hbWUp KSwKKwkJCQlsaXN0X21ha2UyKGZvclBvcnRpb25PZi0+dGFyZ2V0X3N0YXJ0LCBmb3JQb3J0 aW9uT2YtPnRhcmdldF9lbmQpLAorCQkJCUNPRVJDRV9FWFBMSUNJVF9DQUxMLAorCQkJCWZv clBvcnRpb25PZi0+bG9jYXRpb24pOworCX0KKwlyZXN1bHQtPnRhcmdldFJhbmdlID0gdHJh bnNmb3JtRXhwcihwc3RhdGUsIHRhcmdldEV4cHIsIEVYUFJfS0lORF9VUERBVEVfUE9SVElP Tik7CisKKwkvKgorCSAqIEJ1aWxkIG92ZXJsYXBzRXhwciB0byB1c2UgaW4gdGhlIHdoZXJl Q2xhdXNlLgorCSAqIFRoaXMgbWVhbnMgd2Ugb25seSBoaXQgcm93cyBtYXRjaGluZyB0aGUg RlJPTSAmIFRPIGJvdW5kcy4KKwkgKiBXZSBtdXN0IGxvb2sgdXAgdGhlIG92ZXJsYXBzIG9w ZXJhdG9yICh1c3VhbGx5ICImJiIpLgorCSAqLworCW9wY2xhc3MgPSBHZXREZWZhdWx0T3BD bGFzcyhhdHRyLT5hdHR0eXBpZCwgR0lTVF9BTV9PSUQpOworCXN0cmF0ID0gUlRPdmVybGFw U3RyYXRlZ3lOdW1iZXI7CisJR2V0T3BlcmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3kob3Bj bGFzcywgSW52YWxpZE9pZCwgJm9waWQsICZzdHJhdCk7CisJcmVzdWx0LT5vdmVybGFwc0V4 cHIgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLCBnZXRfb3BuYW1lKG9w aWQpLAorCQkJKE5vZGUgKikgY29weU9iamVjdChyYW5nZVZhciksIHRhcmdldEV4cHIsCisJ CQlmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKTsKKworCS8qCisJICogTG9vayB1cCB0aGUgd2l0 aG91dFBvcnRpb25PcGVyIHNvIHdlIGNhbiBjb21wdXRlIHRoZSBsZWZ0b3ZlcnMuCisJICog TGVmdG92ZXJzIHdpbGwgYmUgb2xkX3JhbmdlIEAtIHRhcmdldF9yYW5nZQorCSAqIChvbmUg cGVyIGVsZW1lbnQgb2YgdGhlIHJlc3VsdCkuCisJICovCisJZnVuY2lkID0gSW52YWxpZE9p ZDsKKwlpZiAoZ2V0X29wY2xhc3Nfb3BmYW1pbHlfYW5kX2lucHV0X3R5cGUob3BjbGFzcywg Jm9wZmFtaWx5LCAmb3BjaW50eXBlKSkKKwkJZnVuY2lkID0gZ2V0X29wZmFtaWx5X3Byb2Mo b3BmYW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCBHSVNUX1dJVEhPVVRfUE9SVElPTl9Q Uk9DKTsKKworCWlmICghT2lkSXNWYWxpZChmdW5jaWQpKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQllcnJtc2coImNv dWxkIG5vdCBpZGVudGlmeSBhIHdpdGhvdXRfb3ZlcmxhcHMgc3VwcG9ydCBmdW5jdGlvbiBm b3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKG9wY2ludHlwZSkpLAorCQkJCWVycmhpbnQo IkRlZmluZSBhIHdpdGhvdXRfb3ZlcmxhcHMgc3VwcG9ydCBmdW5jdGlvbiBmb3Igb3BlcmF0 b3IgY2xhc3MgXCIlZFwiIGZvciBhY2Nlc3MgbWV0aG9kIFwiJXNcIi4iLAorCQkJCQkgb3Bj bGFzcywgImdpc3QiKSk7CisKKwlyZXN1bHQtPndpdGhvdXRQb3J0aW9uUHJvYyA9IGZ1bmNp ZDsKKworCWlmIChpc1VwZGF0ZSkKKwl7CisJCS8qCisJCSAqIE5vdyBtYWtlIHN1cmUgd2Ug dXBkYXRlIHRoZSBzdGFydC9lbmQgdGltZSBvZiB0aGUgcmVjb3JkLgorCQkgKiBGb3IgYSBy YW5nZSBjb2wgKHIpIHRoaXMgaXMgYHIgPSByICogdGFyZ2V0UmFuZ2VgLgorCQkgKi8KKwkJ TGlzdAkJICAgKmZ1bmNBcmdzID0gTklMOworCQlGdW5jRXhwcgkgICAqcmFuZ2VUTEVFeHBy OworCQlUYXJnZXRFbnRyeQkgICAqdGxlOworCisJCWZ1bmNpZCA9IGdldF9vcGZhbWlseV9w cm9jKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwgR0lTVF9JTlRFUlNFQ1RfUFJP Qyk7CisJCWlmICghT2lkSXNWYWxpZChmdW5jaWQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQllcnJtc2coImNv dWxkIG5vdCBpZGVudGlmeSBhbiBpbnRlcnNlY3Qgc3VwcG9ydCBmdW5jdGlvbiBmb3IgdHlw ZSAlcyIsIGZvcm1hdF90eXBlX2JlKG9wY2ludHlwZSkpLAorCQkJCQllcnJoaW50KCJEZWZp bmUgYW4gaW50ZXJzZWN0IHN1cHBvcnQgZnVuY3Rpb24gZm9yIG9wZXJhdG9yIGNsYXNzIFwi JWRcIiBmb3IgYWNjZXNzIG1ldGhvZCBcIiVzXCIuIiwKKwkJCQkJCSBvcGNsYXNzLCAiZ2lz dCIpKTsKKworCQl0YXJnZXRFeHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHRhcmdldEV4 cHIsIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTik7CisJCWZ1bmNBcmdzID0gbGFwcGVuZChm dW5jQXJncywgY29weU9iamVjdChyYW5nZVZhcikpOworCQlmdW5jQXJncyA9IGxhcHBlbmQo ZnVuY0FyZ3MsIHRhcmdldEV4cHIpOworCQlyYW5nZVRMRUV4cHIgPSBtYWtlRnVuY0V4cHIo ZnVuY2lkLCBhdHRyLT5hdHR0eXBpZCwgZnVuY0FyZ3MsCisJCQkJCQkJCQlJbnZhbGlkT2lk LCBJbnZhbGlkT2lkLCBDT0VSQ0VfRVhQTElDSVRfQ0FMTCk7CisKKwkJLyogTWFrZSBhIFRM RSB0byBzZXQgdGhlIHJhbmdlIGNvbHVtbiAqLworCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlz dCA9IE5JTDsKKwkJdGxlID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIHJhbmdlVExFRXhw ciwgcmFuZ2VfYXR0bm8sIHJhbmdlX25hbWUsIGZhbHNlKTsKKwkJcmVzdWx0LT5yYW5nZVRh cmdldExpc3QgPSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0LCB0bGUpOworCisJ CS8qIE1hcmsgdGhlIHJhbmdlIGNvbHVtbiBhcyByZXF1aXJpbmcgdXBkYXRlIHBlcm1pc3Np b25zICovCisJCXRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMgPSBibXNfYWRkX21lbWJl cih0YXJnZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzLAorCQkJCQkJCQkJCQkJCSAgcmFuZ2Vf YXR0bm8gLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyKTsKKwl9CisJZWxz ZQorCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IE5JTDsKKworCXJlc3VsdC0+cmFuZ2Vf bmFtZSA9IHJhbmdlX25hbWU7CisKKwlyZXR1cm4gcmVzdWx0OworfQogCiAvKgogICogQnVp bGRPbkNvbmZsaWN0RXhjbHVkZWRUYXJnZXRsaXN0CkBAIC0yNTEyLDYgKzI3MDksNyBAQCB0 cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3Rt dCkKIHsKIAlRdWVyeQkgICAqcXJ5ID0gbWFrZU5vZGUoUXVlcnkpOwogCVBhcnNlTmFtZXNw YWNlSXRlbSAqbnNpdGVtOworCU5vZGUJICAgKndoZXJlQ2xhdXNlOwogCU5vZGUJICAgKnF1 YWw7CiAKIAlxcnktPmNvbW1hbmRUeXBlID0gQ01EX1VQREFURTsKQEAgLTI1MjksNiArMjcy NywxMCBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRl U3RtdCAqc3RtdCkKIAkJCQkJCQkJCQkgc3RtdC0+cmVsYXRpb24tPmluaCwKIAkJCQkJCQkJ CQkgdHJ1ZSwKIAkJCQkJCQkJCQkgQUNMX1VQREFURSk7CisKKwlpZiAoc3RtdC0+Zm9yUG9y dGlvbk9mKQorCQlxcnktPmZvclBvcnRpb25PZiA9IHRyYW5zZm9ybUZvclBvcnRpb25PZkNs YXVzZShwc3RhdGUsIHFyeS0+cmVzdWx0UmVsYXRpb24sIHN0bXQtPmZvclBvcnRpb25PZiwg dHJ1ZSk7CisKIAluc2l0ZW0gPSBwc3RhdGUtPnBfdGFyZ2V0X25zaXRlbTsKIAogCS8qIHN1 YnF1ZXJpZXMgaW4gRlJPTSBjYW5ub3QgYWNjZXNzIHRoZSByZXN1bHQgcmVsYXRpb24gKi8K QEAgLTI1NDUsNyArMjc0Nyw4IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCW5zaXRlbS0+cF9sYXRlcmFsX29ubHkgPSBm YWxzZTsKIAluc2l0ZW0tPnBfbGF0ZXJhbF9vayA9IHRydWU7CiAKLQlxdWFsID0gdHJhbnNm b3JtV2hlcmVDbGF1c2UocHN0YXRlLCBzdG10LT53aGVyZUNsYXVzZSwKKwl3aGVyZUNsYXVz ZSA9IGFkZEZvclBvcnRpb25PZldoZXJlQ29uZGl0aW9ucyhxcnksIHN0bXQtPmZvclBvcnRp b25PZiwgc3RtdC0+d2hlcmVDbGF1c2UpOworCXF1YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVz ZShwc3RhdGUsIHdoZXJlQ2xhdXNlLAogCQkJCQkJCQlFWFBSX0tJTkRfV0hFUkUsICJXSEVS RSIpOwogCiAJcXJ5LT5yZXR1cm5pbmdMaXN0ID0gdHJhbnNmb3JtUmV0dXJuaW5nTGlzdChw c3RhdGUsIHN0bXQtPnJldHVybmluZ0xpc3QsCkBAIC0yNTU1LDcgKzI3NTgsNyBAQCB0cmFu c2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3RtdCkK IAkgKiBOb3cgd2UgYXJlIGRvbmUgd2l0aCBTRUxFQ1QtbGlrZSBwcm9jZXNzaW5nLCBhbmQg Y2FuIGdldCBvbiB3aXRoCiAJICogdHJhbnNmb3JtaW5nIHRoZSB0YXJnZXQgbGlzdCB0byBt YXRjaCB0aGUgVVBEQVRFIHRhcmdldCBjb2x1bW5zLgogCSAqLwotCXFyeS0+dGFyZ2V0TGlz dCA9IHRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QocHN0YXRlLCBzdG10LT50YXJnZXRMaXN0 KTsKKwlxcnktPnRhcmdldExpc3QgPSB0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KHBzdGF0 ZSwgc3RtdC0+dGFyZ2V0TGlzdCwgcXJ5LT5mb3JQb3J0aW9uT2YpOwogCiAJcXJ5LT5ydGFi bGUgPSBwc3RhdGUtPnBfcnRhYmxlOwogCXFyeS0+cnRlcGVybWluZm9zID0gcHN0YXRlLT5w X3J0ZXBlcm1pbmZvczsKQEAgLTI1NzQsNyArMjc3Nyw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0 bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogICoJaGFuZGxlIFNF VCBjbGF1c2UgaW4gVVBEQVRFL01FUkdFL0lOU0VSVCAuLi4gT04gQ09ORkxJQ1QgVVBEQVRF CiAgKi8KIExpc3QgKgotdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpw c3RhdGUsIExpc3QgKm9yaWdUbGlzdCkKK3RyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QoUGFy c2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcmlnVGxpc3QsIEZvclBvcnRpb25PZkV4cHIgKmZv clBvcnRpb25PZikKIHsKIAlMaXN0CSAgICp0bGlzdCA9IE5JTDsKIAlSVEVQZXJtaXNzaW9u SW5mbyAqdGFyZ2V0X3Blcm1pbmZvOwpAQCAtMjYyNyw2ICsyODMwLDIxIEBAIHRyYW5zZm9y bVVwZGF0ZVRhcmdldExpc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcmlnVGxpc3Qp CiAJCQkJCSBlcnJoaW50KCJTRVQgdGFyZ2V0IGNvbHVtbnMgY2Fubm90IGJlIHF1YWxpZmll ZCB3aXRoIHRoZSByZWxhdGlvbiBuYW1lLiIpIDogMCwKIAkJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIG9yaWdUYXJnZXQtPmxvY2F0aW9uKSkpOwogCisJCS8qCisJCSAqIElm IHRoaXMgaXMgYSBGT1IgUE9SVElPTiBPRiB1cGRhdGUsCisJCSAqIGZvcmJpZCBkaXJlY3Rs eSBzZXR0aW5nIHRoZSByYW5nZSBjb2x1bW4sCisJCSAqIHNpbmNlIHRoYXQgd291bGQgY29u ZmxpY3Qgd2l0aCB0aGUgaW1wbGljaXQgdXBkYXRlcy4KKwkJICovCisJCWlmIChmb3JQb3J0 aW9uT2YgIT0gTlVMTCkKKwkJeworCQkJaWYgKGF0dHJubyA9PSBmb3JQb3J0aW9uT2YtPnJh bmdlVmFyLT52YXJhdHRubykKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJIGVycm1zZygiY2FuJ3QgZGlyZWN0bHkg YXNzaWduIHRvIFwiJXNcIiBpbiBhIEZPUiBQT1JUSU9OIE9GIHVwZGF0ZSIsCisJCQkJCQkJ CW9yaWdUYXJnZXQtPm5hbWUpLAorCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IG9yaWdUYXJnZXQtPmxvY2F0aW9uKSkpOworCQl9CisKIAkJdXBkYXRlVGFyZ2V0TGlzdEVu dHJ5KHBzdGF0ZSwgdGxlLCBvcmlnVGFyZ2V0LT5uYW1lLAogCQkJCQkJCSAgYXR0cm5vLAog CQkJCQkJCSAgb3JpZ1RhcmdldC0+aW5kaXJlY3Rpb24sCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBi NGMxZTJjNjlkZC4uMjYxNDc0Y2VmOTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjQ0LDYgKzI0 NCw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxu YW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJUmFuZ2VWYXIgICAqcmFuZ2U7 CiAJSW50b0NsYXVzZSAqaW50bzsKIAlXaXRoQ2xhdXNlICp3aXRoOworCUZvclBvcnRpb25P ZkNsYXVzZSAqZm9ycG9ydGlvbm9mOwogCUluZmVyQ2xhdXNlCSppbmZlcjsKIAlPbkNvbmZs aWN0Q2xhdXNlICpvbmNvbmZsaWN0OwogCUFfSW5kaWNlcyAgKmFpbmQ7CkBAIC01NDAsNiAr NTQxLDggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJl bG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxyYW5nZT4JcmVs YXRpb25fZXhwcgogJXR5cGUgPHJhbmdlPglleHRlbmRlZF9yZWxhdGlvbl9leHByCiAldHlw ZSA8cmFuZ2U+CXJlbGF0aW9uX2V4cHJfb3B0X2FsaWFzCisldHlwZSA8YWxpYXM+CW9wdF9h bGlhcworJXR5cGUgPGZvcnBvcnRpb25vZj4gZm9yX3BvcnRpb25fb2ZfY2xhdXNlCiAldHlw ZSA8bm9kZT4JdGFibGVzYW1wbGVfY2xhdXNlIG9wdF9yZXBlYXRhYmxlX2NsYXVzZQogJXR5 cGUgPHRhcmdldD4JdGFyZ2V0X2VsIHNldF90YXJnZXQgaW5zZXJ0X2NvbHVtbl9pdGVtCiAK QEAgLTc0OSw3ICs3NTIsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCU9WRVIg T1ZFUkxBUFMgT1ZFUkxBWSBPVkVSUklESU5HIE9XTkVEIE9XTkVSCiAKIAlQQVJBTExFTCBQ QVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFSVElUSU9OIFBBU1NJTkcgUEFTU1dPUkQgUEFU SAotCVBFUklPRCBQTEFDSU5HIFBMQU4gUExBTlMgUE9MSUNZCisJUEVSSU9EIFBMQUNJTkcg UExBTiBQTEFOUyBQT0xJQ1kgUE9SVElPTgogCVBPU0lUSU9OIFBSRUNFRElORyBQUkVDSVNJ T04gUFJFU0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklNQVJZCiAJUFJJT1IgUFJJVklMRUdF UyBQUk9DRURVUkFMIFBST0NFRFVSRSBQUk9DRURVUkVTIFBST0dSQU0gUFVCTElDQVRJT04K IApAQCAtODY4LDEyICs4NzEsMTUgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3 U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICAq IGpzb25fcHJlZGljYXRlX3R5cGVfY29uc3RyYWludCBhbmQganNvbl9rZXlfdW5pcXVlbmVz c19jb25zdHJhaW50X29wdAogICogcHJvZHVjdGlvbnMgKHNlZSBjb21tZW50cyB0aGVyZSku CiAgKgorICogVE8gaXMgYXNzaWduZWQgdGhlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCwg dG8gc3VwcG9ydCB0aGUgb3B0X2ludGVydmFsCisgKiBwcm9kdWN0aW9uIChzZWUgY29tbWVu dCB0aGVyZSkuCisgKgogICogTGlrZSB0aGUgVU5CT1VOREVEIFBSRUNFRElORy9GT0xMT1dJ TkcgY2FzZSwgTkVTVEVEIGlzIGFzc2lnbmVkIGEgbG93ZXIKICAqIHByZWNlZGVuY2UgdGhh biBQQVRIIHRvIGZpeCBhbWJpZ3VpdHkgaW4gdGhlIGpzb25fdGFibGUgcHJvZHVjdGlvbi4K ICAqLwogJW5vbmFzc29jCVVOQk9VTkRFRCBORVNURUQgLyogaWRlYWxseSB3b3VsZCBoYXZl IHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFzc29jCUlERU5UIFBBUlRJVElP TiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9XSU5HIENVQkUgUk9MTFVQCi0J CQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhPVVQgUEFUSAor CQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFRPIFVTSU5HIFZBTFVFX1AgV0lUSCBXSVRI T1VUIFBBVEgKICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGktY2hhcmFjdGVyIG9wcyBh bmQgdXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQkn KicgJy8nICclJwpAQCAtMTIzMzYsNiArMTIzNDIsMjAgQEAgRGVsZXRlU3RtdDogb3B0X3dp dGhfY2xhdXNlIERFTEVURV9QIEZST00gcmVsYXRpb25fZXhwcl9vcHRfYWxpYXMKIAkJCQkJ bi0+c3RtdF9sb2NhdGlvbiA9IEAkOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQor CQkJfCBvcHRfd2l0aF9jbGF1c2UgREVMRVRFX1AgRlJPTSByZWxhdGlvbl9leHByIGZvcl9w b3J0aW9uX29mX2NsYXVzZSBvcHRfYWxpYXMKKwkJCXVzaW5nX2NsYXVzZSB3aGVyZV9vcl9j dXJyZW50X2NsYXVzZSByZXR1cm5pbmdfY2xhdXNlCisJCQkJeworCQkJCQlEZWxldGVTdG10 ICpuID0gbWFrZU5vZGUoRGVsZXRlU3RtdCk7CisKKwkJCQkJbi0+cmVsYXRpb24gPSAkNDsK KwkJCQkJbi0+Zm9yUG9ydGlvbk9mID0gJDU7CisJCQkJCW4tPnJlbGF0aW9uLT5hbGlhcyA9 ICQ2OworCQkJCQluLT51c2luZ0NsYXVzZSA9ICQ3OworCQkJCQluLT53aGVyZUNsYXVzZSA9 ICQ4OworCQkJCQluLT5yZXR1cm5pbmdMaXN0ID0gJDk7CisJCQkJCW4tPndpdGhDbGF1c2Ug PSAkMTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KIAkJOwogCiB1c2luZ19jbGF1 c2U6CkBAIC0xMjQxMSw2ICsxMjQzMSwyNSBAQCBVcGRhdGVTdG10OiBvcHRfd2l0aF9jbGF1 c2UgVVBEQVRFIHJlbGF0aW9uX2V4cHJfb3B0X2FsaWFzCiAJCQkJCW4tPnN0bXRfbG9jYXRp b24gPSBAJDsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgb3B0X3dpdGhf Y2xhdXNlIFVQREFURSByZWxhdGlvbl9leHByCisJCQlmb3JfcG9ydGlvbl9vZl9jbGF1c2Ug b3B0X2FsaWFzCisJCQlTRVQgc2V0X2NsYXVzZV9saXN0CisJCQlmcm9tX2NsYXVzZQorCQkJ d2hlcmVfb3JfY3VycmVudF9jbGF1c2UKKwkJCXJldHVybmluZ19jbGF1c2UKKwkJCQl7CisJ CQkJCVVwZGF0ZVN0bXQgKm4gPSBtYWtlTm9kZShVcGRhdGVTdG10KTsKKworCQkJCQluLT5y ZWxhdGlvbiA9ICQzOworCQkJCQluLT5mb3JQb3J0aW9uT2YgPSAkNDsKKwkJCQkJbi0+cmVs YXRpb24tPmFsaWFzID0gJDU7CisJCQkJCW4tPnRhcmdldExpc3QgPSAkNzsKKwkJCQkJbi0+ ZnJvbUNsYXVzZSA9ICQ4OworCQkJCQluLT53aGVyZUNsYXVzZSA9ICQ5OworCQkJCQluLT5y ZXR1cm5pbmdMaXN0ID0gJDEwOworCQkJCQluLT53aXRoQ2xhdXNlID0gJDE7CisJCQkJCSQk ID0gKE5vZGUgKikgbjsKKwkJCQl9CiAJCTsKIAogc2V0X2NsYXVzZV9saXN0OgpAQCAtMTM5 MTQsNiArMTM5NTMsNDQgQEAgcmVsYXRpb25fZXhwcl9vcHRfYWxpYXM6IHJlbGF0aW9uX2V4 cHIJCQkJCSVwcmVjIFVNSU5VUwogCQkJCX0KIAkJOwogCitvcHRfYWxpYXM6CisJCQlBUyBD b2xJZAorCQkJCXsKKwkJCQkJQWxpYXMJICAgKmFsaWFzID0gbWFrZU5vZGUoQWxpYXMpOwor CisJCQkJCWFsaWFzLT5hbGlhc25hbWUgPSAkMjsKKwkJCQkJJCQgPSBhbGlhczsKKwkJCQl9 CisJCQl8IEJhcmVDb2xMYWJlbAorCQkJCXsKKwkJCQkJQWxpYXMJICAgKmFsaWFzID0gbWFr ZU5vZGUoQWxpYXMpOworCisJCQkJCWFsaWFzLT5hbGlhc25hbWUgPSAkMTsKKwkJCQkJJCQg PSBhbGlhczsKKwkJCQl9CisJCQl8IC8qIGVtcHR5ICovICVwcmVjIFVNSU5VUyB7ICQkID0g TlVMTDsgfQorCQk7CisKK2Zvcl9wb3J0aW9uX29mX2NsYXVzZToKKwkJCUZPUiBQT1JUSU9O IE9GIENvbElkICcoJyBhX2V4cHIgJyknCisJCQkJeworCQkJCQlGb3JQb3J0aW9uT2ZDbGF1 c2UgKm4gPSBtYWtlTm9kZShGb3JQb3J0aW9uT2ZDbGF1c2UpOworCQkJCQluLT5yYW5nZV9u YW1lID0gJDQ7CisJCQkJCW4tPmxvY2F0aW9uID0gQDQ7CisJCQkJCW4tPnRhcmdldCA9ICQ2 OworCQkJCQkkJCA9IG47CisJCQkJfQorCQkJfCBGT1IgUE9SVElPTiBPRiBDb2xJZCBGUk9N IGFfZXhwciBUTyBhX2V4cHIKKwkJCQl7CisJCQkJCUZvclBvcnRpb25PZkNsYXVzZSAqbiA9 IG1ha2VOb2RlKEZvclBvcnRpb25PZkNsYXVzZSk7CisJCQkJCW4tPnJhbmdlX25hbWUgPSAk NDsKKwkJCQkJbi0+bG9jYXRpb24gPSBANDsKKwkJCQkJbi0+dGFyZ2V0X3N0YXJ0ID0gJDY7 CisJCQkJCW4tPnRhcmdldF9lbmQgPSAkODsKKwkJCQkJJCQgPSBuOworCQkJCX0KKwkJOwor CiAvKgogICogVEFCTEVTQU1QTEUgZGVjb3JhdGlvbiBpbiBhIEZST00gaXRlbQogICovCkBA IC0xNDc0NywxNiArMTQ4MjQsMjUgQEAgb3B0X3RpbWV6b25lOgogCQkJfCAvKkVNUFRZKi8J CQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKKy8qCisgKiBXZSBuZWVkIHRvIGhhbmRs ZSB0aGlzIHNoaWZ0L3JlZHVjZSBjb25mbGljdDoKKyAqIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gdCArIElOVEVSVkFMICcxJyBZRUFSIFRPIE1PTlRILgorICogV2UgZG9uJ3Qg c2VlIGZhciBlbm91Z2ggYWhlYWQgdG8ga25vdyBpZiB0aGVyZSBpcyBhbm90aGVyIFRPIGNv bWluZy4KKyAqIFdlIHByZWZlciB0byBpbnRlcnByZXQgdGhpcyBhcyBGUk9NICh0ICsgSU5U RVJWQUwgJzEnIFlFQVIgVE8gTU9OVEgpLAorICogaS5lLiB0byBzaGlmdC4KKyAqIFRoYXQg Z2l2ZXMgdGhlIHVzZXIgdGhlIG9wdGlvbiBvZiBhZGRpbmcgcGFyZW50aGVzZXMgdG8gZ2V0 IHRoZSBvdGhlciBtZWFuaW5nLgorICogSWYgd2UgcmVkdWNlZCwgaW50ZXJ2YWxzIGNvdWxk IG5ldmVyIGhhdmUgYSBUTy4KKyAqLwogb3B0X2ludGVydmFsOgotCQkJWUVBUl9QCisJCQlZ RUFSX1AJCQkJCQkJCQkJCQkJCQkJJXByZWMgSVMKIAkJCQl7ICQkID0gbGlzdF9tYWtlMSht YWtlSW50Q29uc3QoSU5URVJWQUxfTUFTSyhZRUFSKSwgQDEpKTsgfQogCQkJfCBNT05USF9Q CiAJCQkJeyAkJCA9IGxpc3RfbWFrZTEobWFrZUludENvbnN0KElOVEVSVkFMX01BU0soTU9O VEgpLCBAMSkpOyB9Ci0JCQl8IERBWV9QCisJCQl8IERBWV9QCQkJCQkJCQkJCQkJCQkJCSVw cmVjIElTCiAJCQkJeyAkJCA9IGxpc3RfbWFrZTEobWFrZUludENvbnN0KElOVEVSVkFMX01B U0soREFZKSwgQDEpKTsgfQotCQkJfCBIT1VSX1AKKwkJCXwgSE9VUl9QCQkJCQkJCQkJCQkJ CQkJJXByZWMgSVMKIAkJCQl7ICQkID0gbGlzdF9tYWtlMShtYWtlSW50Q29uc3QoSU5URVJW QUxfTUFTSyhIT1VSKSwgQDEpKTsgfQotCQkJfCBNSU5VVEVfUAorCQkJfCBNSU5VVEVfUAkJ CQkJCQkJCQkJCQkJJXByZWMgSVMKIAkJCQl7ICQkID0gbGlzdF9tYWtlMShtYWtlSW50Q29u c3QoSU5URVJWQUxfTUFTSyhNSU5VVEUpLCBAMSkpOyB9CiAJCQl8IGludGVydmFsX3NlY29u ZAogCQkJCXsgJCQgPSAkMTsgfQpAQCAtMTc4MDksNiArMTc4OTUsNyBAQCB1bnJlc2VydmVk X2tleXdvcmQ6CiAJCQl8IFBMQU4KIAkJCXwgUExBTlMKIAkJCXwgUE9MSUNZCisJCQl8IFBP UlRJT04KIAkJCXwgUFJFQ0VESU5HCiAJCQl8IFBSRVBBUkUKIAkJCXwgUFJFUEFSRUQKQEAg LTE4NDM0LDYgKzE4NTIxLDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBQTEFOCiAJ CQl8IFBMQU5TCiAJCQl8IFBPTElDWQorCQkJfCBQT1JUSU9OCiAJCQl8IFBPU0lUSU9OCiAJ CQl8IFBSRUNFRElORwogCQkJfCBQUkVQQVJFCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5k ZXggOWU1NjdmM2NjNDUuLjAzMjRlMjU0MGQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5j CkBAIC01NzksNiArNTc5LDEzIEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQljYXNlIEVYUFJfS0lORF9DWUNM RV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJ TkRfVVBEQVRFX1BPUlRJT046CisJCQlpZiAoaXNBZ2cpCisJCQkJZXJyID0gXygiYWdncmVn YXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gRk9SIFBPUlRJT04gT0YgZXhwcmVz c2lvbnMiKTsKKwkJCWVsc2UKKwkJCQllcnIgPSBfKCJncm91cGluZyBvcGVyYXRpb25zIGFy ZSBub3QgYWxsb3dlZCBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9ucyIpOworCisJCQli cmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVs dDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAtOTcwLDYgKzk3Nyw5IEBAIHRyYW5zZm9y bVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMs CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJ CWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTjoKKwkJCWVyciA9IF8o IndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIEZPUiBQT1JUSU9OIE9GIGV4 cHJlc3Npb25zIik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVu dGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9jb2xsYXRlLmMKaW5kZXggZDJlMjE4MzUzZjMuLjUyMjM0NWIxNjY4IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMKQEAgLTQ4NCw2ICs0ODQsNyBAQCBh c3NpZ25fY29sbGF0aW9uc193YWxrZXIoTm9kZSAqbm9kZSwgYXNzaWduX2NvbGxhdGlvbnNf Y29udGV4dCAqY29udGV4dCkKIAkJY2FzZSBUX0pvaW5FeHByOgogCQljYXNlIFRfRnJvbUV4 cHI6CiAJCWNhc2UgVF9PbkNvbmZsaWN0RXhwcjoKKwkJY2FzZSBUX0ZvclBvcnRpb25PZkV4 cHI6CiAJCWNhc2UgVF9Tb3J0R3JvdXBDbGF1c2U6CiAJCWNhc2UgVF9NZXJnZUFjdGlvbjoK IAkJCSh2b2lkKSBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYwppbmRleCA4NGQyMTRmNWM3NC4uMmVhYjE5Y2FjYmEgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2V4cHIuYwpAQCAtNTg0LDYgKzU4NCw5IEBAIHRyYW5zZm9ybUNvbHVtblJl ZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJ TkRfUEFSVElUSU9OX0JPVU5EOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBjb2x1bW4gcmVm ZXJlbmNlIGluIHBhcnRpdGlvbiBib3VuZCBleHByZXNzaW9uIik7CiAJCQlicmVhazsKKwkJ Y2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJCQllcnIgPSBfKCJjYW5ub3QgdXNl IGNvbHVtbiByZWZlcmVuY2UgaW4gRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiIpOworCQkJ YnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1 bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKQEAgLTE4NTgsNiArMTg2MSw5IEBAIHRyYW5z Zm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQlj YXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgogCQkJZXJyID0gXygiY2Fubm90IHVz ZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uIik7CiAJCQlicmVh azsKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJCQllcnIgPSBfKCJjYW5u b3QgdXNlIHN1YnF1ZXJ5IGluIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb24iKTsKKwkJCWJy ZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0 OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0zMTUxLDYgKzMxNTcsOCBAQCBQYXJzZUV4 cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0dXJuICJVUERBVEUi OwogCQljYXNlIEVYUFJfS0lORF9NRVJHRV9XSEVOOgogCQkJcmV0dXJuICJNRVJHRSBXSEVO IjsKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJCQlyZXR1cm4gIkZPUiBQ T1JUSU9OIE9GIjsKIAkJY2FzZSBFWFBSX0tJTkRfR1JPVVBfQlk6CiAJCQlyZXR1cm4gIkdS T1VQIEJZIjsKIAkJY2FzZSBFWFBSX0tJTkRfT1JERVJfQlk6CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2Z1bmMuYwppbmRleCA1ODNiYmJmMjMyZi4uOWQ0ZTczZmUxOTIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2Z1bmMuYwpAQCAtMjY1OCw2ICsyNjU4LDkgQEAgY2hlY2tfc3JmX2NhbGxfcGxh Y2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGludCBsb2NhdGlv bikKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVycmtpbmQgPSB0cnVlOwog CQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OOgorCQkJZXJyID0g Xygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIEZPUiBQT1JU SU9OIE9GIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJl IGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwppbmRleCBmOTJiZWY5OWQ1OS4uMjllNjM2MDdh ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCkBAIC0zODUsNyArMzg1LDcgQEAg dHJhbnNmb3JtTWVyZ2VTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTWVyZ2VTdG10ICpzdG10 KQogCQkJCQlwc3RhdGUtPnBfaXNfaW5zZXJ0ID0gZmFsc2U7CiAJCQkJCWFjdGlvbi0+dGFy Z2V0TGlzdCA9CiAJCQkJCQl0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KHBzdGF0ZSwKLQkJ CQkJCQkJCQkJCSAgbWVyZ2VXaGVuQ2xhdXNlLT50YXJnZXRMaXN0KTsKKwkJCQkJCQkJCQkJ CSAgbWVyZ2VXaGVuQ2xhdXNlLT50YXJnZXRMaXN0LCBOVUxMKTsKIAkJCQl9CiAJCQkJYnJl YWs7CiAJCQljYXNlIENNRF9ERUxFVEU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVIYW5kbGVyLmMgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5k bGVyLmMKaW5kZXggMWE1ZGZkMGFhNDcuLmYwN2U2OThjMGE4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmV3 cml0ZS9yZXdyaXRlSGFuZGxlci5jCkBAIC0zNzM4LDYgKzM3MzgsMzAgQEAgcmV3cml0ZVRh cmdldFZpZXcoUXVlcnkgKnBhcnNldHJlZSwgUmVsYXRpb24gdmlldykKIAkJCQkJCQkJCSAg JnBhcnNldHJlZS0+aGFzU3ViTGlua3MpOwogCX0KIAorCWlmIChwYXJzZXRyZWUtPmZvclBv cnRpb25PZiAmJiBwYXJzZXRyZWUtPmNvbW1hbmRUeXBlID09IENNRF9VUERBVEUpCisJewor CQkvKgorCQkgKiBMaWtlIHRoZSBJTlNFUlQvVVBEQVRFIGNvZGUgYWJvdmUsIHVwZGF0ZSB0 aGUgcmVzbm9zIGluIHRoZQorCQkgKiBhdXhpbGlhcnkgVVBEQVRFIHRhcmdldGxpc3QgdG8g cmVmZXIgdG8gY29sdW1ucyBvZiB0aGUgYmFzZQorCQkgKiByZWxhdGlvbi4KKwkJICovCisJ CWZvcmVhY2gobGMsIHBhcnNldHJlZS0+Zm9yUG9ydGlvbk9mLT5yYW5nZVRhcmdldExpc3Qp CisJCXsKKwkJCVRhcmdldEVudHJ5ICp0bGUgPSAoVGFyZ2V0RW50cnkgKikgbGZpcnN0KGxj KTsKKwkJCVRhcmdldEVudHJ5ICp2aWV3X3RsZTsKKworCQkJaWYgKHRsZS0+cmVzanVuaykK KwkJCQljb250aW51ZTsKKworCQkJdmlld190bGUgPSBnZXRfdGxlX2J5X3Jlc25vKHZpZXdf dGFyZ2V0bGlzdCwgdGxlLT5yZXNubyk7CisJCQlpZiAodmlld190bGUgIT0gTlVMTCAmJiAh dmlld190bGUtPnJlc2p1bmsgJiYgSXNBKHZpZXdfdGxlLT5leHByLCBWYXIpKQorCQkJCXRs ZS0+cmVzbm8gPSAoKFZhciAqKSB2aWV3X3RsZS0+ZXhwciktPnZhcmF0dG5vOworCQkJZWxz ZQorCQkJCWVsb2coRVJST1IsICJhdHRyaWJ1dGUgbnVtYmVyICVkIG5vdCBmb3VuZCBpbiB2 aWV3IHRhcmdldGxpc3QiLAorCQkJCQkgdGxlLT5yZXNubyk7CisJCX0KKwl9CisKIAkvKgog CSAqIEZvciBVUERBVEUvREVMRVRFL01FUkdFLCBwdWxsIHVwIGFueSBXSEVSRSBxdWFscyBm cm9tIHRoZSB2aWV3LiAgV2UKIAkgKiBrbm93IHRoYXQgYW55IFZhcnMgaW4gdGhlIHF1YWxz IG11c3QgcmVmZXJlbmNlIHRoZSBvbmUgYmFzZSByZWxhdGlvbiwKQEAgLTQwNzcsNiArNDEw MSwyMiBAQCBSZXdyaXRlUXVlcnkoUXVlcnkgKnBhcnNldHJlZSwgTGlzdCAqcmV3cml0ZV9l dmVudHMsIGludCBvcmlnX3J0X2xlbmd0aCkKIAkJZWxzZSBpZiAoZXZlbnQgPT0gQ01EX1VQ REFURSkKIAkJewogCQkJQXNzZXJ0KHBhcnNldHJlZS0+b3ZlcnJpZGUgPT0gT1ZFUlJJRElO R19OT1RfU0VUKTsKKwkJCS8qCisJCQkgKiBVcGRhdGUgRk9SIFBPUlRJT04gT0YgY29sdW1u KHMpIGF1dG9tYXRpY2FsbHkuIERvbid0CisJCQkgKiBkbyB0aGlzIHVudGlsIHdlJ3JlIGRv bmUgcmV3cml0aW5nIGEgdmlldyB1cGRhdGUsIHNvCisJCQkgKiB0aGF0IHdlIGRvbid0IGFk ZCB0aGUgc2FtZSB1cGRhdGUgb24gdGhlIHJlY3Vyc2lvbi4KKwkJCSAqLworCQkJaWYgKHBh cnNldHJlZS0+Zm9yUG9ydGlvbk9mICYmCisJCQkJcnRfZW50cnlfcmVsYXRpb24tPnJkX3Jl bC0+cmVsa2luZCAhPSBSRUxLSU5EX1ZJRVcpCisJCQl7CisJCQkJTGlzdENlbGwgKnRsOwor CQkJCWZvcmVhY2godGwsIHBhcnNldHJlZS0+Zm9yUG9ydGlvbk9mLT5yYW5nZVRhcmdldExp c3QpCisJCQkJeworCQkJCQlUYXJnZXRFbnRyeSAqdGxlID0gKFRhcmdldEVudHJ5ICopIGxm aXJzdCh0bCk7CisJCQkJCXBhcnNldHJlZS0+dGFyZ2V0TGlzdCA9IGxhcHBlbmQocGFyc2V0 cmVlLT50YXJnZXRMaXN0LCB0bGUpOworCQkJCX0KKwkJCX0KKwogCQkJcGFyc2V0cmVlLT50 YXJnZXRMaXN0ID0KIAkJCQlyZXdyaXRlVGFyZ2V0TGlzdElVKHBhcnNldHJlZS0+dGFyZ2V0 TGlzdCwKIAkJCQkJCQkJCXBhcnNldHJlZS0+Y29tbWFuZFR5cGUsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9yaV90cmlnZ2Vycy5jCmluZGV4IDE3YjY3MTQ1MGRmLi40OTFjZjNhNTIxNiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKQEAgLTEyOSw3ICsxMjksOCBAQCB0 eXBlZGVmIHN0cnVjdCBSSV9Db25zdHJhaW50SW5mbwogCU9pZAkJCWZmX2VxX29wcnNbUklf TUFYX05VTUtFWVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRvcnMgKEZLID0gRkspICovCiAJT2lk CQkJcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOwkvKiBhbnlyYW5nZSA8QCBhbnlyYW5nZSAq LwogCU9pZAkJCWFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3BlcjsgLyogZmthdHRyIDxA IHJhbmdlX2FnZyhwa2F0dHIpICovCi0JT2lkCQkJcGVyaW9kX2ludGVyc2VjdF9vcGVyOwkv KiBhbnlyYW5nZSAqIGFueXJhbmdlICovCisJT2lkCQkJcGVyaW9kX2ludGVyc2VjdF9vcGVy OwkvKiBhbnlyYW5nZSAqIGFueXJhbmdlIChvciBtdWx0aXJhbmdlKSAqLworCU9pZAkJCXBl cmlvZF9pbnRlcnNlY3RfcHJvYzsJLyogYW55cmFuZ2UgKiBhbnlyYW5nZSAob3IgbXVsdGly YW5nZSkgKi8KIAlPaWQJCQl3aXRob3V0X3BvcnRpb25fcHJvYzsJLyogYW55cmFuZ2UgLSBh bnlyYW5nZSBTUkYgKi8KIAlkbGlzdF9ub2RlCXZhbGlkX2xpbms7CQkvKiBMaW5rIGluIGxp c3Qgb2YgdmFsaWQgZW50cmllcyAqLwogfSBSSV9Db25zdHJhaW50SW5mbzsKQEAgLTI0MCw2 ICsyNDEsMTEgQEAgc3RhdGljIHZvaWQgcmlfUmVwb3J0VmlvbGF0aW9uKGNvbnN0IFJJX0Nv bnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJCQkJICAgUmVsYXRpb24gcGtfcmVsLCBSZWxh dGlvbiBma19yZWwsCiAJCQkJCQkJICAgVHVwbGVUYWJsZVNsb3QgKnZpb2xhdG9yc2xvdCwg VHVwbGVEZXNjIHR1cGRlc2MsCiAJCQkJCQkJICAgaW50IHF1ZXJ5bm8sIGJvb2wgaXNfcmVz dHJpY3QsIGJvb2wgcGFydGdvbmUpIHBnX2F0dHJpYnV0ZV9ub3JldHVybigpOworc3RhdGlj IGJvb2wgZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRn X3RlbXBvcmFsLAorCQkJCQkJCQkgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbyk7 CitzdGF0aWMgRGF0dW0gcmVzdHJpY3RfZW5mb3JjZWRfcmFuZ2UoY29uc3QgRm9yUG9ydGlv bk9mU3RhdGUgKnRnX3RlbXBvcmFsLAorCQkJCQkJCQkJIGNvbnN0IFJJX0NvbnN0cmFpbnRJ bmZvICpyaWluZm8sCisJCQkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QpOwogCiAK IC8qCkBAIC05NDMsMTEgKzk0OSwzNCBAQCByaV9yZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJp Z2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKQogCSAqCiAJICogRm9yIGEgREVMRVRFLCBvbGRz bG90LnBrcGVyaW9kIHdhcyBsb3N0LAogCSAqIHdoaWNoIGlzIHdoYXQgd2UgY2hlY2sgZm9y IGJ5IGRlZmF1bHQuCisJICoKKwkgKiBJbiBhbiBVUERBVEUgdCBGT1IgUE9SVElPTiBPRiwg aWYgdGhlIHNjYWxhciBrZXkgcGFydCBjaGFuZ2VkLAorCSAqIHRoZW4gb25seSBuZXdzbG90 LnBrcGVyaW9kIHdhcyBsb3N0LiBPdGhlcndpc2Ugbm90aGluZyB3YXMgbG9zdC4KKwkgKgor CSAqIEluIGEgREVMRVRFIEZST00gdCBGT1IgUE9SVElPTiBPRiwgb25seSBuZXdzbG90LnBr cGVyaW9kIHdhcyBsb3N0LgorCSAqIEJ1dCB0aGVyZSBpcyBubyBuZXdzbG90LCBzbyB3ZSBo YXZlIHRvIGNhbGN1bGF0ZSB0aGUgaW50ZXJzZWN0aW9uCisJICogb2Ygb2xkc2xvdC5wa3Bl cmlvZCBhbmQgdGhlIHJhbmdlIHRhcmdldGVkIGJ5IEZPUiBQT1JUSU9OIE9GLgogCSAqLwog CWlmIChyaWluZm8tPmhhc3BlcmlvZCAmJiAhaXNfbm9fYWN0aW9uKQogCXsKLQkJaWYgKFRS SUdHRVJfRklSRURfQllfVVBEQVRFKHRyaWdkYXRhLT50Z19ldmVudCkKLQkJCSYmIHJpX0tl eXNFcXVhbChwa19yZWwsIG9sZHNsb3QsIG5ld3Nsb3QsIHJpaW5mbywgdHJ1ZSwgdHJ1ZSkp CisJCS8qIERvbid0IHRyZWF0IGxlZnRvdmVycyBvZiBGT1IgUE9SVElPTiBPRiBhcyBsb3N0 ICovCisJCWlmICh0cmlnZGF0YS0+dGdfdGVtcG9yYWwpCisJCXsKKwkJCWJvb2wJaXNudWxs OworCQkJdGFyZ2V0UmFuZ2VQYXJhbSA9IHJpaW5mby0+bmtleXM7CisJCQlpZiAoVFJJR0dF Ul9GSVJFRF9CWV9VUERBVEUodHJpZ2RhdGEtPnRnX2V2ZW50KSkKKwkJCXsKKwkJCQlpZiAo IXJpX0tleXNFcXVhbChwa19yZWwsIG9sZHNsb3QsIG5ld3Nsb3QsIHJpaW5mbywgdHJ1ZSwg dHJ1ZSkpCisJCQkJCXRhcmdldFJhbmdlID0gc2xvdF9nZXRhdHRyKG5ld3Nsb3QsIHBrcGVy aW9kYXR0bm8sICZpc251bGwpOworCQkJCWVsc2UKKwkJCQkJLyogbm90aGluZyB0byBkbyAq LworCQkJCQlmaW5pc2hlZCA9IHRydWU7CisJCQl9CisJCQllbHNlCisJCQkJdGFyZ2V0UmFu Z2UgPSByZXN0cmljdF9lbmZvcmNlZF9yYW5nZSh0cmlnZGF0YS0+dGdfdGVtcG9yYWwsIHJp aW5mbywgb2xkc2xvdCk7CisJCX0KKwkJZWxzZSBpZiAoVFJJR0dFUl9GSVJFRF9CWV9VUERB VEUodHJpZ2RhdGEtPnRnX2V2ZW50KQorCQkJCSAmJiByaV9LZXlzRXF1YWwocGtfcmVsLCBv bGRzbG90LCBuZXdzbG90LCByaWluZm8sIHRydWUsIHRydWUpKQogCQl7CiAJCQltdWx0aXBs ZWxvc3QgPSB0cnVlOwogCkBAIC0yNDUzLDYgKzI0ODIsNyBAQCByaV9Mb2FkQ29uc3RyYWlu dEluZm8oT2lkIGNvbnN0cmFpbnRPaWQpCiAJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2Nv bnRhaW5lZF9ieV9vcGVyLAogCQkJCQkJCQkgICZyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250 YWluZWRfYnlfb3BlciwKIAkJCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfaW50ZXJzZWN0X29w ZXIsCisJCQkJCQkJCSAgJnJpaW5mby0+cGVyaW9kX2ludGVyc2VjdF9wcm9jLAogCQkJCQkJ CQkgICZyaWluZm8tPndpdGhvdXRfcG9ydGlvbl9wcm9jKTsKIAl9CiAKQEAgLTMzNTMsMyAr MzM4Myw1MCBAQCBSSV9GS2V5X3RyaWdnZXJfdHlwZShPaWQgdGdmb2lkKQogCiAJcmV0dXJu IFJJX1RSSUdHRVJfTk9ORTsKIH0KKworLyoKKyAqIGZwb190YXJnZXRzX3BrX3JhbmdlCisg KgorICogUmV0dXJucyB0cnVlIGlmZiB0aGUgcHJpbWFyeSBrZXkgcmVmZXJlbmNlZCBieSBy aWluZm8gaW5jbHVkZXMgdGhlIHJhbmdlCisgKiBjb2x1bW4gdGFyZ2V0ZWQgYnkgdGhlIEZP UiBQT1JUSU9OIE9GIGNsYXVzZSAoYWNjb3JkaW5nIHRvIHRnX3RlbXBvcmFsKS4KKyAqLwor c3RhdGljIGJvb2wKK2Zwb190YXJnZXRzX3BrX3JhbmdlKGNvbnN0IEZvclBvcnRpb25PZlN0 YXRlICp0Z190ZW1wb3JhbCwgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbykKK3sK KwlpZiAodGdfdGVtcG9yYWwgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJu IHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0gPT0gdGdfdGVtcG9yYWwt PmZwX3JhbmdlQXR0bm87Cit9CisKKy8qCisgKiByZXN0cmljdF9lbmZvcmNlZF9yYW5nZSAt CisgKgorICogUmV0dXJucyBhIERhdHVtIG9mIFJhbmdlVHlwZVAgaG9sZGluZyB0aGUgYXBw cm9wcmlhdGUgdGltZXNwYW4KKyAqIHRvIHRhcmdldCBjaGlsZCByZWNvcmRzIHdoZW4gd2Ug UkVTVFJJQ1QvQ0FTQ0FERS9TRVQgTlVMTC9TRVQgREVGQVVMVC4KKyAqCisgKiBJbiBhIG5v cm1hbCBVUERBVEUvREVMRVRFIHRoaXMgc2hvdWxkIGJlIHRoZSBwYXJlbnQncyBvd24gdmFs aWQgdGltZSwKKyAqIGJ1dCBpZiB0aGVyZSB3YXMgYSBGT1IgUE9SVElPTiBPRiBjbGF1c2Us IHRoZW4gd2Ugc2hvdWxkIHVzZSB0aGF0IHRvCisgKiB0cmltIGRvd24gdGhlIHBhcmVudCdz IHNwYW4gZnVydGhlci4KKyAqLworc3RhdGljIERhdHVtCityZXN0cmljdF9lbmZvcmNlZF9y YW5nZShjb25zdCBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsIGNvbnN0IFJJX0Nv bnN0cmFpbnRJbmZvICpyaWluZm8sIFR1cGxlVGFibGVTbG90ICpvbGRzbG90KQoreworCURh dHVtCQlwa1JlY29yZFJhbmdlOworCWJvb2wJCWlzbnVsbDsKKwlBdHRyTnVtYmVyCWF0dG5v ID0gcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXTsKKworCXBrUmVjb3Jk UmFuZ2UgPSBzbG90X2dldGF0dHIob2xkc2xvdCwgYXR0bm8sICZpc251bGwpOworCWlmIChp c251bGwpCisJCWVsb2coRVJST1IsICJhcHBsaWNhdGlvbiB0aW1lIHNob3VsZCBub3QgYmUg bnVsbCIpOworCisJaWYgKGZwb190YXJnZXRzX3BrX3JhbmdlKHRnX3RlbXBvcmFsLCByaWlu Zm8pKQorCXsKKwkJaWYgKCFPaWRJc1ZhbGlkKHJpaW5mby0+cGVyaW9kX2ludGVyc2VjdF9w cm9jKSkKKwkJCWVsb2coRVJST1IsICJpbnZhbGlkIGludGVyc2VjdCBzdXBwb3J0IGZ1bmN0 aW9uIik7CisKKwkJcmV0dXJuIE9pZEZ1bmN0aW9uQ2FsbDIocmlpbmZvLT5wZXJpb2RfaW50 ZXJzZWN0X3Byb2MsIHBrUmVjb3JkUmFuZ2UsIHRnX3RlbXBvcmFsLT5mcF90YXJnZXRSYW5n ZSk7CisJfQorCWVsc2UKKwkJcmV0dXJuIHBrUmVjb3JkUmFuZ2U7Cit9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IDhjZGI1NTgyNTM2Li5iNjE5YTgyYjVjZCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTIxODgsNiArMjE4OCwz MyBAQCBnZXRfdHlwaXNkZWZpbmVkKE9pZCB0eXBpZCkKIAkJcmV0dXJuIGZhbHNlOwogfQog CisvKgorICogZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZQorICoKKyAqCSAgUmV0dXJucyB0 aGUgbmFtZSBhbmQgbmFtZXNwYWNlIG9mIGEgZ2l2ZW4gdHlwZQorICoKKyAqIFJldHVybnMg dHJ1ZSBpZiBvbmUgZm91bmQsIG9yIGZhbHNlIGlmIG5vdC4KKyAqLworYm9vbAorZ2V0X3R5 cG5hbWVfYW5kX25hbWVzcGFjZShPaWQgdHlwaWQsIGNoYXIgKip0eXBuYW1lLCBjaGFyICoq dHlwbmFtZXNwYWNlKQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2VhcmNoU3lzQ2Fj aGUxKFRZUEVPSUQsIE9iamVjdElkR2V0RGF0dW0odHlwaWQpKTsKKwlpZiAoSGVhcFR1cGxl SXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3R5cGUgdHlwdHVwID0gKEZvcm1fcGdfdHlw ZSkgR0VUU1RSVUNUKHRwKTsKKworCQkqdHlwbmFtZSA9IHBzdHJkdXAoTmFtZVN0cih0eXB0 dXAtPnR5cG5hbWUpKTsKKwkJKnR5cG5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFtZSh0 eXB0dXAtPnR5cG5hbWVzcGFjZSk7CisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJCS8qICp0 eXBuYW1lc3BhY2UgaXMgTlVMTCBpZiBpdCB3YXNuJ3QgZm91bmQ6ICovCisJCXJldHVybiAq dHlwbmFtZXNwYWNlOworCX0KKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30KKwogLyoKICAq IGdldF90eXBsZW4KICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nv bnN0cmFpbnQuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4 IDBkOTBkZDBjMTc5Li40MDhlMDM5YjBlNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jb25zdHJhaW50LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25z dHJhaW50LmgKQEAgLTI5MCw2ICsyOTAsNyBAQCBleHRlcm4gdm9pZCBGaW5kRktQZXJpb2RP cGVyc0FuZFByb2NzKE9pZCBvcGNsYXNzLAogCQkJCQkJCQkJICBPaWQgKmNvbnRhaW5lZGJ5 b3Blcm9pZCwKIAkJCQkJCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCwKIAkJ CQkJCQkJCSAgT2lkICppbnRlcnNlY3RvcGVyb2lkLAorCQkJCQkJCQkJICBPaWQgKmludGVy c2VjdHByb2NvaWQsCiAJCQkJCQkJCQkgIE9pZCAqd2l0aG91dHBvcnRpb25vaWQpOwogCiBl eHRlcm4gYm9vbCBjaGVja19mdW5jdGlvbmFsX2dyb3VwaW5nKE9pZCByZWxpZCwKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaCBiL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3RyaWdnZXIuaAppbmRleCAyZWQyYzRiYjM3OC4uODc3MDk2ZWVkMDQgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RyaWdnZXIuaAorKysgYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy90cmlnZ2VyLmgKQEAgLTQxLDYgKzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg VHJpZ2dlckRhdGEKIAlUdXBsZXN0b3Jlc3RhdGUgKnRnX29sZHRhYmxlOwogCVR1cGxlc3Rv cmVzdGF0ZSAqdGdfbmV3dGFibGU7CiAJY29uc3QgQml0bWFwc2V0ICp0Z191cGRhdGVkY29s czsKKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWw7CiB9IFRyaWdnZXJEYXRhOwog CiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCAyOTEyNzQxNjA3Ni4uZjE0ODkzYTE2 ZTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVk ZSAidXRpbHMvc29ydHN1cHBvcnQuaCIKICNpbmNsdWRlICJ1dGlscy90dXBsZXNvcnQuaCIK ICNpbmNsdWRlICJ1dGlscy90dXBsZXN0b3JlLmgiCisjaW5jbHVkZSAidXRpbHMvdHlwY2Fj aGUuaCIKIAogc3RydWN0IFBsYW5TdGF0ZTsJCQkJLyogZm9yd2FyZCByZWZlcmVuY2VzIGlu IHRoaXMgZmlsZSAqLwogc3RydWN0IFBhcmFsbGVsSGFzaEpvaW5TdGF0ZTsKQEAgLTQzMSw2 ICs0MzIsMjYgQEAgdHlwZWRlZiBzdHJ1Y3QgTWVyZ2VBY3Rpb25TdGF0ZQogCUV4cHJTdGF0 ZSAgKm1hc193aGVucXVhbDsJLyogV0hFTiBbTk9UXSBNQVRDSEVEIEFORCBjb25kaXRpb25z ICovCiB9IE1lcmdlQWN0aW9uU3RhdGU7CiAKKy8qCisgKiBGb3JQb3J0aW9uT2ZTdGF0ZQor ICoKKyAqIEV4ZWN1dG9yIHN0YXRlIG9mIGEgRk9SIFBPUlRJT04gT0Ygb3BlcmF0aW9uLgor ICovCit0eXBlZGVmIHN0cnVjdCBGb3JQb3J0aW9uT2ZTdGF0ZQoreworCU5vZGVUYWcJCXR5 cGU7CisKKwljaGFyICAgKmZwX3JhbmdlTmFtZTsJCS8qIHRoZSBjb2x1bW4gbmFtZWQgaW4g Rk9SIFBPUlRJT04gT0YgKi8KKwlPaWQJCWZwX3JhbmdlVHlwZTsJCS8qIHRoZSB0eXBlIG9m IHRoZSBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9uICovCisJaW50CQlmcF9yYW5nZUF0dG5v OwkJLyogdGhlIGF0dG5vIG9mIHRoZSByYW5nZSBjb2x1bW4gKi8KKwlEYXR1bQlmcF90YXJn ZXRSYW5nZTsJCS8qIHRoZSByYW5nZS9tdWx0aXJhbmdlL2V0YyBmcm9tIEZPUiBQT1JUSU9O IE9GICovCisJVHlwZUNhY2hlRW50cnkgKmZwX2xlZnRvdmVyc3R5cGNhY2hlOwkvKiB0eXBl IGNhY2hlIGVudHJ5IG9mIHRoZSByYW5nZSAqLworCVR1cGxlVGFibGVTbG90ICpmcF9FeGlz dGluZzsJCS8qIHNsb3QgdG8gc3RvcmUgb2xkIHR1cGxlICovCisJVHVwbGVUYWJsZVNsb3Qg KmZwX0xlZnRvdmVyOwkJLyogc2xvdCB0byBzdG9yZSBsZWZ0b3ZlciAqLworCURhdHVtICAq ZnBfdmFsdWVzOwkvKiBTUEkgaW5wdXQgZm9yIGxlZnRvdmVyIHZhbHVlcyAqLworCWNoYXIg ICAqZnBfbnVsbHM7CS8qIFNQSSBpbnB1dCBmb3IgbnVsbHMgKi8KK30gRm9yUG9ydGlvbk9m U3RhdGU7CisKIC8qCiAgKiBSZXN1bHRSZWxJbmZvCiAgKgpAQCAtNTU4LDYgKzU3OSw5IEBA IHR5cGVkZWYgc3RydWN0IFJlc3VsdFJlbEluZm8KIAkvKiBmb3IgTUVSR0UsIGV4cHIgc3Rh dGUgZm9yIGNoZWNraW5nIHRoZSBqb2luIGNvbmRpdGlvbiAqLwogCUV4cHJTdGF0ZSAgKnJp X01lcmdlSm9pbkNvbmRpdGlvbjsKIAorCS8qIEZPUiBQT1JUSU9OIE9GIGV2YWx1YXRpb24g c3RhdGUgKi8KKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqcmlfZm9yUG9ydGlvbk9mOworCiAJLyog cGFydGl0aW9uIGNoZWNrIGV4cHJlc3Npb24gc3RhdGUgKE5VTEwgaWYgbm90IHNldCB1cCB5 ZXQpICovCiAJRXhwclN0YXRlICAqcmlfUGFydGl0aW9uQ2hlY2tFeHByOwogCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKaW5kZXggMzhkNmFkN2RjYmQuLjk0OTJjNDA1NDZlIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0xNDIsNiArMTQyLDkgQEAgdHlwZWRlZiBzdHJ1Y3Qg UXVlcnkKIAkgKi8KIAlpbnQJCQlyZXN1bHRSZWxhdGlvbiBwZ19ub2RlX2F0dHIocXVlcnlf anVtYmxlX2lnbm9yZSk7CiAKKwkvKiBGT1IgUE9SVElPTiBPRiBjbGF1c2UgZm9yIFVQREFU RS9ERUxFVEUgKi8KKwlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2Y7CisKIAkvKiBo YXMgYWdncmVnYXRlcyBpbiB0bGlzdCBvciBoYXZpbmdRdWFsICovCiAJYm9vbAkJaGFzQWdn cyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaGFzIHdpbmRvdyBm dW5jdGlvbnMgaW4gdGxpc3QgKi8KQEAgLTE1ODIsNiArMTU4NSwyMSBAQCB0eXBlZGVmIHN0 cnVjdCBSb3dNYXJrQ2xhdXNlCiAJYm9vbAkJcHVzaGVkRG93bjsJCS8qIHB1c2hlZCBkb3du IGZyb20gaGlnaGVyIHF1ZXJ5IGxldmVsPyAqLwogfSBSb3dNYXJrQ2xhdXNlOwogCisvKgor ICogRm9yUG9ydGlvbk9mQ2xhdXNlCisgKgkJcmVwcmVzZW50YXRpb24gb2YgRk9SIFBPUlRJ T04gT0YgPHBlcmlvZC1uYW1lPiBGUk9NIDx0cz4gVE8gPHRlPgorICoJCW9yIEZPUiBQT1JU SU9OIE9GIDxwZXJpb2QtbmFtZT4gKDx0YXJnZXQ+KQorICovCit0eXBlZGVmIHN0cnVjdCBG b3JQb3J0aW9uT2ZDbGF1c2UKK3sKKwlOb2RlVGFnCQl0eXBlOworCWNoYXIJICAgKnJhbmdl X25hbWU7CisJaW50CQkJbG9jYXRpb247CisJTm9kZQkgICAqdGFyZ2V0OworCU5vZGUJICAg KnRhcmdldF9zdGFydDsKKwlOb2RlCSAgICp0YXJnZXRfZW5kOworfSBGb3JQb3J0aW9uT2ZD bGF1c2U7CisKIC8qCiAgKiBXaXRoQ2xhdXNlIC0KICAqCSAgIHJlcHJlc2VudGF0aW9uIG9m IFdJVEggY2xhdXNlCkBAIC0yMDY0LDYgKzIwODIsNyBAQCB0eXBlZGVmIHN0cnVjdCBEZWxl dGVTdG10CiAJV2l0aENsYXVzZSAqd2l0aENsYXVzZTsJCS8qIFdJVEggY2xhdXNlICovCiAJ UGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsJLyogc3RhcnQgbG9jYXRpb24sIG9yIC0xIGlmIHVu a25vd24gKi8KIAlQYXJzZUxvYwlzdG10X2xlbjsJCS8qIGxlbmd0aCBpbiBieXRlczsgMCBt ZWFucyAicmVzdCBvZiBzdHJpbmciICovCisJRm9yUG9ydGlvbk9mQ2xhdXNlICpmb3JQb3J0 aW9uT2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSAqLwogfSBEZWxldGVTdG10OwogCiAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0yMDgxLDYgKzIxMDAsNyBAQCB0eXBlZGVm IHN0cnVjdCBVcGRhdGVTdG10CiAJV2l0aENsYXVzZSAqd2l0aENsYXVzZTsJCS8qIFdJVEgg Y2xhdXNlICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsJLyogc3RhcnQgbG9jYXRpb24s IG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlzdG10X2xlbjsJCS8qIGxlbmd0aCBp biBieXRlczsgMCBtZWFucyAicmVzdCBvZiBzdHJpbmciICovCisJRm9yUG9ydGlvbk9mQ2xh dXNlICpmb3JQb3J0aW9uT2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSAqLwogfSBVcGRh dGVTdG10OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rl cy5oCmluZGV4IDU0ZWUxNzY5N2U1Li44MzE4NDkzMWM1NSAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5v ZGVzLmgKQEAgLTIzOTYsNiArMjM5Niw3IEBAIHR5cGVkZWYgc3RydWN0IE1vZGlmeVRhYmxl UGF0aAogCUxpc3QJICAgKnJldHVybmluZ0xpc3RzOyAvKiBwZXItdGFyZ2V0LXRhYmxlIFJF VFVSTklORyB0bGlzdHMgKi8KIAlMaXN0CSAgICpyb3dNYXJrczsJCS8qIFBsYW5Sb3dNYXJr cyAobm9uLWxvY2tpbmcgb25seSkgKi8KIAlPbkNvbmZsaWN0RXhwciAqb25jb25mbGljdDsg LyogT04gQ09ORkxJQ1QgY2xhdXNlLCBvciBOVUxMICovCisJRm9yUG9ydGlvbk9mRXhwciAq Zm9yUG9ydGlvbk9mOwkvKiBGT1IgUE9SVElPTiBPRiBjbGF1c2UgZm9yIFVQREFURS9ERUxF VEUgKi8KIAlpbnQJCQllcHFQYXJhbTsJCS8qIElEIG9mIFBhcmFtIGZvciBFdmFsUGxhblF1 YWwgcmUtZXZhbCAqLwogCUxpc3QJICAgKm1lcmdlQWN0aW9uTGlzdHM7CS8qIHBlci10YXJn ZXQtdGFibGUgbGlzdHMgb2YgYWN0aW9ucyBmb3IKIAkJCQkJCQkJCSAqIE1FUkdFICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BsYW5ub2Rlcy5oCmluZGV4IGVmOWVhN2VlOTgyLi44NWVmYzUyYWVlZCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGxhbm5vZGVzLmgKQEAgLTI0NCw2ICsyNDQsNyBAQCB0eXBlZGVmIHN0cnVj dCBNb2RpZnlUYWJsZQogCUxpc3QJICAgKnJvd01hcmtzOwkJLyogUGxhblJvd01hcmtzIChu b24tbG9ja2luZyBvbmx5KSAqLwogCWludAkJCWVwcVBhcmFtOwkJLyogSUQgb2YgUGFyYW0g Zm9yIEV2YWxQbGFuUXVhbCByZS1ldmFsICovCiAJT25Db25mbGljdEFjdGlvbiBvbkNvbmZs aWN0QWN0aW9uOwkvKiBPTiBDT05GTElDVCBhY3Rpb24gKi8KKwlOb2RlCSAgICpmb3JQb3J0 aW9uT2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSBmb3IgVVBEQVRFL0RFTEVURSAqLwog CUxpc3QJICAgKmFyYml0ZXJJbmRleGVzOyAvKiBMaXN0IG9mIE9OIENPTkZMSUNUIGFyYml0 ZXIgaW5kZXggT0lEcyAgKi8KIAlMaXN0CSAgICpvbkNvbmZsaWN0U2V0OwkvKiBJTlNFUlQg T04gQ09ORkxJQ1QgRE8gVVBEQVRFIHRhcmdldGxpc3QgKi8KIAlMaXN0CSAgICpvbkNvbmZs aWN0Q29sczsgLyogdGFyZ2V0IGNvbHVtbiBudW1iZXJzIGZvciBvbkNvbmZsaWN0U2V0ICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDljMjk1N2ViNTQ2Li41NTQyMDFmZGNiNyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTIzMzYsNCArMjMzNiwzMCBAQCB0eXBlZGVm IHN0cnVjdCBPbkNvbmZsaWN0RXhwcgogCUxpc3QJICAgKmV4Y2xSZWxUbGlzdDsJLyogdGxp c3Qgb2YgdGhlIEVYQ0xVREVEIHBzZXVkbyByZWxhdGlvbiAqLwogfSBPbkNvbmZsaWN0RXhw cjsKIAorLyotLS0tLS0tLS0tCisgKiBGb3JQb3J0aW9uT2ZFeHByIC0gcmVwcmVzZW50cyBh IEZPUiBQT1JUSU9OIE9GIC4uLiBleHByZXNzaW9uCisgKgorICogV2Ugc2V0IHVwIGFuIGV4 cHJlc3Npb24gdG8gbWFrZSBhIHJhbmdlIGZyb20gdGhlIEZST00vVE8gYm91bmRzLAorICog c28gdGhhdCB3ZSBjYW4gdXNlIHJhbmdlIG9wZXJhdG9ycyB3aXRoIGl0LgorICoKKyAqIFRo ZW4gd2Ugc2V0IHVwIGFuIG92ZXJsYXBzIGV4cHJlc3Npb24gYmV0d2VlbiB0aGF0IGFuZCB0 aGUgcmFuZ2UgY29sdW1uLAorICogc28gdGhhdCB3ZSBjYW4gZmluZCB0aGUgcm93cyB3ZSBu ZWVkIHRvIHVwZGF0ZS9kZWxldGUuCisgKgorICogSW4gdGhlIGV4ZWN1dG9yIHdlJ2xsIGFs c28gYnVpbGQgYW4gaW50ZXJzZWN0IGV4cHJlc3Npb24gYmV0d2VlbiB0aGUKKyAqIHRhcmdl dGVkIHJhbmdlIGFuZCB0aGUgcmFuZ2UgY29sdW1uLCBzbyB0aGF0IHdlIGNhbiB1cGRhdGUg dGhlIHN0YXJ0L2VuZAorICogYm91bmRzIG9mIHRoZSBVUERBVEUnZCByZWNvcmQuCisgKi0t LS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mRXhwcgoreworCU5v ZGVUYWcJCXR5cGU7CisJVmFyCQkgICAqcmFuZ2VWYXI7CQkJLyogUmFuZ2UgY29sdW1uICov CisJY2hhcgkgICAqcmFuZ2VfbmFtZTsJCQkvKiBSYW5nZSBuYW1lICovCisJTm9kZQkgICAq dGFyZ2V0UmFuZ2U7CQkvKiBGT1IgUE9SVElPTiBPRiBib3VuZHMgYXMgYSByYW5nZSAqLwor CU9pZAkJCXJhbmdlVHlwZTsJCQkvKiB0eXBlIG9mIHRhcmdldFJhbmdlICovCisJTm9kZQkg ICAqb3ZlcmxhcHNFeHByOwkJLyogcmFuZ2UgJiYgdGFyZ2V0UmFuZ2UgKi8KKwlMaXN0CSAg ICpyYW5nZVRhcmdldExpc3Q7CS8qIExpc3Qgb2YgVGFyZ2V0RW50cnlzIHRvIHNldCB0aGUg dGltZSBjb2x1bW4ocykgKi8KKwlPaWQJCQl3aXRob3V0UG9ydGlvblByb2M7CS8qIHByb2Mg Zm9yIG9sZF9yYW5nZSBALSB0YXJnZXRfcmFuZ2UgKi8KK30gRm9yUG9ydGlvbk9mRXhwcjsK KwogI2VuZGlmCQkJCQkJCS8qIFBSSU1OT0RFU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9wYXRo bm9kZS5oCmluZGV4IDcxOWJlMzg5N2Y2Li4wNWMwZjliNWNkYiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1p emVyL3BhdGhub2RlLmgKQEAgLTI4OCw3ICsyODgsNyBAQCBleHRlcm4gTW9kaWZ5VGFibGVQ YXRoICpjcmVhdGVfbW9kaWZ5dGFibGVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwKIAkJCQkJ CQkJCQkJCUxpc3QgKndpdGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdMaXN0 cywKIAkJCQkJCQkJCQkJCUxpc3QgKnJvd01hcmtzLCBPbkNvbmZsaWN0RXhwciAqb25jb25m bGljdCwKIAkJCQkJCQkJCQkJCUxpc3QgKm1lcmdlQWN0aW9uTGlzdHMsIExpc3QgKm1lcmdl Sm9pbkNvbmRpdGlvbnMsCi0JCQkJCQkJCQkJCQlpbnQgZXBxUGFyYW0pOworCQkJCQkJCQkJ CQkJRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mLCBpbnQgZXBxUGFyYW0pOwogZXh0 ZXJuIExpbWl0UGF0aCAqY3JlYXRlX2xpbWl0X3BhdGgoUGxhbm5lckluZm8gKnJvb3QsIFJl bE9wdEluZm8gKnJlbCwKIAkJCQkJCQkJCVBhdGggKnN1YnBhdGgsCiAJCQkJCQkJCQlOb2Rl ICpsaW1pdE9mZnNldCwgTm9kZSAqbGltaXRDb3VudCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3BhcnNlci9hbmFseXplLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCmlu ZGV4IGFjNDkwOTEyNjQ4Li4xMmEyNjJkMWI0NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv cGFyc2VyL2FuYWx5emUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvYW5hbHl6ZS5oCkBA IC00Myw3ICs0Myw4IEBAIGV4dGVybiBMaXN0ICp0cmFuc2Zvcm1JbnNlcnRSb3coUGFyc2VT dGF0ZSAqcHN0YXRlLCBMaXN0ICpleHBybGlzdCwKIAkJCQkJCQkJTGlzdCAqc3RtdGNvbHMs IExpc3QgKmljb2x1bW5zLCBMaXN0ICphdHRybm9zLAogCQkJCQkJCQlib29sIHN0cmlwX2lu ZGlyZWN0aW9uKTsKIGV4dGVybiBMaXN0ICp0cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KFBh cnNlU3RhdGUgKnBzdGF0ZSwKLQkJCQkJCQkJCSAgIExpc3QgKm9yaWdUbGlzdCk7CisJCQkJ CQkJCQkgICBMaXN0ICpvcmlnVGxpc3QsCisJCQkJCQkJCQkgICBGb3JQb3J0aW9uT2ZFeHBy ICpmb3JQb3J0aW9uT2YpOwogZXh0ZXJuIExpc3QgKnRyYW5zZm9ybVJldHVybmluZ0xpc3Qo UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpyZXR1cm5pbmdMaXN0LAogCQkJCQkJCQkJUGFy c2VFeHByS2luZCBleHByS2luZCk7CiBleHRlcm4gUXVlcnkgKnRyYW5zZm9ybVRvcExldmVs U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFJhd1N0bXQgKnBhcnNlVHJlZSk7CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKaW5kZXggMjRjMjJhODY5NGIuLmUyOGY4ODBmZWZiIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCkBAIC0zNDMsNiArMzQzLDcgQEAgUEdfS0VZV09SRCgicGxhY2luZyIsIFBMQUNJ TkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJwbGFuIiwg UExBTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxh bnMiLCBQTEFOUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgicG9saWN5IiwgUE9MSUNZLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQ R19LRVlXT1JEKCJwb3J0aW9uIiwgUE9SVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgicG9zaXRpb24iLCBQT1NJVElPTiwgQ09MX05BTUVfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInByZWNlZGluZyIsIFBSRUNFRElORywg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicHJlY2lzaW9u IiwgUFJFQ0lTSU9OLCBDT0xfTkFNRV9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oCmluZGV4IDBkZTQ0ZDE2NmY0Li4xZmFjZjU2NmQ4YSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC01Niw2ICs1Niw3IEBAIHR5cGVkZWYgZW51bSBQYXJz ZUV4cHJLaW5kCiAJRVhQUl9LSU5EX1VQREFURV9TT1VSQ0UsCS8qIFVQREFURSBhc3NpZ25t ZW50IHNvdXJjZSBpdGVtICovCiAJRVhQUl9LSU5EX1VQREFURV9UQVJHRVQsCS8qIFVQREFU RSBhc3NpZ25tZW50IHRhcmdldCBpdGVtICovCiAJRVhQUl9LSU5EX01FUkdFX1dIRU4sCQkv KiBNRVJHRSBXSEVOIFtOT1RdIE1BVENIRUQgY29uZGl0aW9uICovCisJRVhQUl9LSU5EX1VQ REFURV9QT1JUSU9OLAkvKiBVUERBVEUgRk9SIFBPUlRJT04gT0YgaXRlbSAqLwogCUVYUFJf S0lORF9HUk9VUF9CWSwJCQkvKiBHUk9VUCBCWSAqLwogCUVYUFJfS0lORF9PUkRFUl9CWSwJ CQkvKiBPUkRFUiBCWSAqLwogCUVYUFJfS0lORF9ESVNUSU5DVF9PTiwJCS8qIERJU1RJTkNU IE9OICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3Ny Yy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IGIyM2RlYjk2NjJmLi43Yjc0MDM1 MWJjYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIv c3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTE0NSw2ICsxNDUsNyBAQCBleHRl cm4gT2lkCWdldF9yZWxfcmVsYW0oT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3RyYW5z Zm9ybV9mcm9tc3FsKE9pZCB0eXBpZCwgT2lkIGxhbmdpZCwgTGlzdCAqdHJmdHlwZXMpOwog ZXh0ZXJuIE9pZAlnZXRfdHJhbnNmb3JtX3Rvc3FsKE9pZCB0eXBpZCwgT2lkIGxhbmdpZCwg TGlzdCAqdHJmdHlwZXMpOwogZXh0ZXJuIGJvb2wgZ2V0X3R5cGlzZGVmaW5lZChPaWQgdHlw aWQpOworZXh0ZXJuIGJvb2wgZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZShPaWQgdHlwaWQs IGNoYXIgKip0eXBuYW1lLCBjaGFyICoqdHlwbmFtZXNwYWNlKTsKIGV4dGVybiBpbnQxNiBn ZXRfdHlwbGVuKE9pZCB0eXBpZCk7CiBleHRlcm4gYm9vbCBnZXRfdHlwYnl2YWwoT2lkIHR5 cGlkKTsKIGV4dGVybiB2b2lkIGdldF90eXBsZW5ieXZhbChPaWQgdHlwaWQsIGludDE2ICp0 eXBsZW4sIGJvb2wgKnR5cGJ5dmFsKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9mb3JfcG9ydGlvbl9vZi5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjE5YTRlOWFjNTIzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQKQEAgLTAsMCArMSw3NjQgQEAKKy0tIFRl c3RzIGZvciBVUERBVEUvREVMRVRFIEZPUiBQT1JUSU9OIE9GCitTRVQgZGF0ZXN0eWxlIFRP IElTTywgWU1EOworLS0gV29ya3Mgb24gbm9uLVBLIGNvbHVtbnMKK0NSRUFURSBUQUJMRSBm b3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRl cmFuZ2UsCisgIG5hbWUgdGV4dCBOT1QgTlVMTAorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0 aW9uX29mX3Rlc3QgVkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMjAtMDEtMDEp JywgJ29uZScpOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUg PSAnb25lXjEnOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0xNScgVE8gJzIwMTktMDEtMjAnOworLS0g V2l0aCBhIHRhYmxlIGFsaWFzIHdpdGggQVMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAyLTAxJyBUTyAnMjAxOS0w Mi0wMycgQVMgdAorU0VUIG5hbWUgPSAnb25lXjInOworREVMRVRFIEZST00gZm9yX3BvcnRp b25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMi0wMycg VE8gJzIwMTktMDItMDQnIEFTIHQ7CistLSBXaXRoIGEgdGFibGUgYWxpYXMgd2l0aG91dCBB UworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDItMDQnIFRPICcyMDE5LTAyLTA1JyB0CitTRVQgbmFtZSA9ICdvbmVe Myc7CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAyLTA1JyBUTyAnMjAxOS0wMi0wNicgdDsKKy0tIFVQREFU RSB3aXRoIEZST00KK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAzLTAxJyB0byAnMjAxOS0wMy0wMicKK1NFVCBuYW1l ID0gJ29uZV40JworRlJPTSAoU0VMRUNUICdbMSwyKSc6OmludDRyYW5nZSkgQVMgdDIoaWQp CitXSEVSRSBmb3JfcG9ydGlvbl9vZl90ZXN0LmlkID0gdDIuaWQ7CistLSBERUxFVEUgd2l0 aCBVU0lORworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMy0wMicgVE8gJzIwMTktMDMtMDMnCitVU0lORyAo U0VMRUNUICdbMSwyKSc6OmludDRyYW5nZSkgQVMgdDIoaWQpCitXSEVSRSBmb3JfcG9ydGlv bl9vZl90ZXN0LmlkID0gdDIuaWQ7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rl c3QgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tCisgWzEsMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAxLTE1KSB8IG9uZQorIFsxLDIpIHwg WzIwMTgtMDEtMTUsMjAxOS0wMS0wMSkgfCBvbmVeMQorIFsxLDIpIHwgWzIwMTktMDEtMDEs MjAxOS0wMS0xNSkgfCBvbmUKKyBbMSwyKSB8IFsyMDE5LTAxLTIwLDIwMTktMDItMDEpIHwg b25lCisgWzEsMikgfCBbMjAxOS0wMi0wMSwyMDE5LTAyLTAzKSB8IG9uZV4yCisgWzEsMikg fCBbMjAxOS0wMi0wNCwyMDE5LTAyLTA1KSB8IG9uZV4zCisgWzEsMikgfCBbMjAxOS0wMi0w NiwyMDE5LTAzLTAxKSB8IG9uZQorIFsxLDIpIHwgWzIwMTktMDMtMDEsMjAxOS0wMy0wMikg fCBvbmVeNAorIFsxLDIpIHwgWzIwMTktMDMtMDMsMjAyMC0wMS0wMSkgfCBvbmUKKyg5IHJv d3MpCisKKy0tIFdvcmtzIG9uIG1vcmUgdGhhbiBvbmUgcmFuZ2UKK0RST1AgVEFCTEUgZm9y X3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZDFfYXQgZGF0ZXJhbmdlLAorICB2YWxpZDJfYXQg ZGF0ZXJhbmdlLAorICBuYW1lIHRleHQgTk9UIE5VTEwKKyk7CitJTlNFUlQgSU5UTyBmb3Jf cG9ydGlvbl9vZl90ZXN0IFZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAy LTAzKScsICdbMjAxNS0wMS0wMSwyMDI1LTAxLTAxKScsICdvbmUnKTsKK1VQREFURSBmb3Jf cG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDFfYXQgRlJPTSAnMjAxOC0w MS0xNScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJzsKK1NFTEVDVCAqIEZST00gZm9yX3Bv cnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWQxX2F0LCB2YWxpZDJfYXQ7CisgIGlk ICAgfCAgICAgICAgdmFsaWQxX2F0ICAgICAgICB8ICAgICAgICB2YWxpZDJfYXQgICAgICAg IHwgbmFtZSAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLQorIFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0x NSkgfCBbMjAxNS0wMS0wMSwyMDI1LTAxLTAxKSB8IG9uZQorIFsxLDIpIHwgWzIwMTgtMDEt MTUsMjAxOC0wMi0wMykgfCBbMjAxNS0wMS0wMSwyMDI1LTAxLTAxKSB8IGZvbworKDIgcm93 cykKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk Ml9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyBOVUxMCitTRVQgbmFtZSA9ICdiYXInOworU0VM RUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZDFfYXQs IHZhbGlkMl9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZDFfYXQgICAgICAgIHwgICAgICAg IHZhbGlkMl9hdCAgICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tCisgWzEsMikgfCBbMjAx OC0wMS0wMiwyMDE4LTAxLTE1KSB8IFsyMDE1LTAxLTAxLDIwMTgtMDEtMTUpIHwgb25lCisg WzEsMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAxLTE1KSB8IFsyMDE4LTAxLTE1LDIwMjUtMDEt MDEpIHwgYmFyCisgWzEsMikgfCBbMjAxOC0wMS0xNSwyMDE4LTAyLTAzKSB8IFsyMDE1LTAx LTAxLDIwMTgtMDEtMTUpIHwgZm9vCisgWzEsMikgfCBbMjAxOC0wMS0xNSwyMDE4LTAyLTAz KSB8IFsyMDE4LTAxLTE1LDIwMjUtMDEtMDEpIHwgYmFyCisoNCByb3dzKQorCitERUxFVEUg RlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDFfYXQgRlJP TSAnMjAxOC0wMS0yMCcgVE8gTlVMTDsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdCBPUkRFUiBCWSBpZCwgdmFsaWQxX2F0LCB2YWxpZDJfYXQ7CisgIGlkICAgfCAgICAg ICAgdmFsaWQxX2F0ICAgICAgICB8ICAgICAgICB2YWxpZDJfYXQgICAgICAgIHwgbmFtZSAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLQorIFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0xNSkgfCBbMjAx NS0wMS0wMSwyMDE4LTAxLTE1KSB8IG9uZQorIFsxLDIpIHwgWzIwMTgtMDEtMDIsMjAxOC0w MS0xNSkgfCBbMjAxOC0wMS0xNSwyMDI1LTAxLTAxKSB8IGJhcgorIFsxLDIpIHwgWzIwMTgt MDEtMTUsMjAxOC0wMS0yMCkgfCBbMjAxNS0wMS0wMSwyMDE4LTAxLTE1KSB8IGZvbworIFsx LDIpIHwgWzIwMTgtMDEtMTUsMjAxOC0wMS0yMCkgfCBbMjAxOC0wMS0xNSwyMDI1LTAxLTAx KSB8IGJhcgorKDQgcm93cykKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgdmFsaWQyX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7CitT RUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkMV9h dCwgdmFsaWQyX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkMV9hdCAgICAgICAgfCAgICAg ICAgdmFsaWQyX2F0ICAgICAgICB8IG5hbWUgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0KKyBbMSwyKSB8IFsy MDE4LTAxLTAyLDIwMTgtMDEtMTUpIHwgWzIwMTUtMDEtMDEsMjAxOC0wMS0xNSkgfCBvbmUK KyBbMSwyKSB8IFsyMDE4LTAxLTAyLDIwMTgtMDEtMTUpIHwgWzIwMTgtMDEtMTUsMjAxOC0w MS0yMCkgfCBiYXIKKyBbMSwyKSB8IFsyMDE4LTAxLTE1LDIwMTgtMDEtMjApIHwgWzIwMTUt MDEtMDEsMjAxOC0wMS0xNSkgfCBmb28KKyBbMSwyKSB8IFsyMDE4LTAxLTE1LDIwMTgtMDEt MjApIHwgWzIwMTgtMDEtMTUsMjAxOC0wMS0yMCkgfCBiYXIKKyg0IHJvd3MpCisKKy0tIFRl c3Qgd2l0aCBOVUxMcyBpbiB0aGUgc2NhbGFyL3JhbmdlIGtleSBjb2x1bW5zLgorLS0gVGhp cyB3b24ndCBoYXBwZW4gaWYgdGhlcmUgaXMgYSBQUklNQVJZIEtFWSBvciBVTklRVUUgY29u c3RyYWludAorLS0gYnV0IEZPUiBQT1JUSU9OIE9GIHNob3VsZG4ndCByZXF1aXJlIHRoYXQu CitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVU5MT0dHRUQgVEFC TEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQg ZGF0ZXJhbmdlLAorICBuYW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9v Zl90ZXN0IFZBTFVFUworICAoJ1sxLDIpJywgTlVMTCwgJzEgbnVsbCcpLAorICAoJ1sxLDIp JywgJygsKScsICcxIHVuYm91bmRlZCcpLAorICAoJ1sxLDIpJywgJ2VtcHR5JywgJzEgZW1w dHknKSwKKyAgKE5VTEwsIE5VTEwsIE5VTEwpLAorICAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTktMDEtMDEnKSwgJ251bGwga2V5Jyk7CitVUERBVEUgZm9yX3BvcnRp b25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVM TAorICBTRVQgbmFtZSA9ICdOVUxMIHRvIE5VTEwnOworU0VMRUNUICogRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgICAgIG5hbWUgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tCisgWzEsMikgfCBlbXB0eSAgICAgICAgICAg ICAgICAgICB8IDEgZW1wdHkKKyBbMSwyKSB8ICgsKSAgICAgICAgICAgICAgICAgICAgIHwg TlVMTCB0byBOVUxMCisgWzEsMikgfCAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgbnVs bAorICAgICAgIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBOVUxMIHRvIE5VTEwKKyAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoNSByb3dzKQorCitEUk9QIFRB QkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2Zf dGVzdCAoCisgIGlkIGludDRyYW5nZSBOT1QgTlVMTCwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdl IE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIENPTlNUUkFJTlQgZm9yX3Bv cnRpb25fb2ZfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1ZBTFVFUworKCdbMSwy KScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIw MTgtMDItMDMsMjAxOC0wMy0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAz LDIwMTgtMDQtMDQpJywgJ29uZScpLAorKCdbMiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTAx LTA1KScsICd0d28nKSwKKygnWzMsNCknLCAnWzIwMTgtMDEtMDEsKScsICd0aHJlZScpLAor KCdbNCw1KScsICcoLDIwMTgtMDQtMDEpJywgJ2ZvdXInKSwKKygnWzUsNiknLCAnKCwpJywg J2ZpdmUnKQorOworLS0KKy0tIFVQREFURSB0ZXN0cworLS0KKy0tIFNldHRpbmcgd2l0aCBh IG1pc3NpbmcgY29sdW1uIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9S IFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQg bmFtZSA9ICdmb28nCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNvbHVtbiBvciBw ZXJpb2QgImludmFsaWRfYXQiIG9mIHJlbGF0aW9uICJmb3JfcG9ydGlvbl9vZl90ZXN0IiBk b2VzIG5vdCBleGlzdAorTElORSAyOiBGT1IgUE9SVElPTiBPRiBpbnZhbGlkX2F0IEZST00g JzIwMTgtMDYtMDEnIFRPIE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gU2V0 dGluZyB0aGUgcmFuZ2UgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgdmFs aWRfYXQgPSAnWzE5OTAtMDEtMDEsMTk5OS0wMS0wMSknCitXSEVSRSBpZCA9ICdbNSw2KSc7 CitFUlJPUjogIGNhbid0IGRpcmVjdGx5IGFzc2lnbiB0byAidmFsaWRfYXQiIGluIGEgRk9S IFBPUlRJT04gT0YgdXBkYXRlCitMSU5FIDM6IFNFVCB2YWxpZF9hdCA9ICdbMTk5MC0wMS0w MSwxOTk5LTAxLTAxKScKKyAgICAgICAgICAgIF4KKy0tIFRoZSB3cm9uZyB0eXBlIGZhaWxz CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAxIFRPIDQKK1NFVCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CitF UlJPUjogIGZ1bmN0aW9uIHBnX2NhdGFsb2cuZGF0ZXJhbmdlKGludGVnZXIsIGludGVnZXIp IGRvZXMgbm90IGV4aXN0CitMSU5FIDI6IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g MSBUTyA0CisgICAgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBObyBmdW5jdGlvbiBt YXRjaGVzIHRoZSBnaXZlbiBuYW1lIGFuZCBhcmd1bWVudCB0eXBlcy4gWW91IG1pZ2h0IG5l ZWQgdG8gYWRkIGV4cGxpY2l0IHR5cGUgY2FzdHMuCistLSBTZXR0aW5nIHdpdGggdGltZXN0 YW1wcyByZXZlcnNlZCBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDE4LTAxLTAxJwor U0VUIG5hbWUgPSAndGhyZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgcmFu Z2UgbG93ZXIgYm91bmQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmFuZ2UgdXBw ZXIgYm91bmQKKy0tIFNldHRpbmcgd2l0aCBhIHN1YnF1ZXJ5IGZhaWxzCitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAoU0VMRUNU ICcyMDE4LTAxLTAxJykgVE8gJzIwMTgtMDYtMDEnCitTRVQgbmFtZSA9ICdub3BlJworV0hF UkUgaWQgPSAnWzMsNCknOworRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIEZPUiBQ T1JUSU9OIE9GIGV4cHJlc3Npb24KK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAoU0VMRUNUICcyMDE4LTAxLTAxJykgVE8gJzIwMTgtLi4uCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gU2V0dGluZyB3aXRoIGEgY29sdW1uIGZh aWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSBsb3dlcih2YWxpZF9hdCkgVE8gTlVMTAorU0VUIG5hbWUgPSAnbm9wZScKK1dI RVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgY2Fubm90IHVzZSBjb2x1bW4gcmVmZXJlbmNl IGluIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb24KK0xJTkUgMjogRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSBsb3dlcih2YWxpZF9hdCkgVE8gTlVMTAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIFNldHRpbmcgd2l0aCB0aW1lc3Rh bXBzIGVxdWFsIGRvZXMgbm90aGluZworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAx JworU0VUIG5hbWUgPSAndGhyZWVeMCcKK1dIRVJFIGlkID0gJ1szLDQpJzsKKy0tIFVwZGF0 aW5nIGEgZmluaXRlL29wZW4gcG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0CitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOC0wNi0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAndGhyZWVeMScKK1dIRVJFIGlk ID0gJ1szLDQpJzsKKy0tIFVwZGF0aW5nIGEgZmluaXRlL29wZW4gcG9ydGlvbiB3aXRoIGFu IG9wZW4vZmluaXRlIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMy0wMScKK1NFVCBuYW1l ID0gJ3RocmVlXjInCitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBVcGRhdGluZyBhbiBvcGVu L2Zpbml0ZSBwb3J0aW9uIHdpdGggYW4gb3Blbi9maW5pdGUgdGFyZ2V0CitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRP ICcyMDE4LTAyLTAxJworU0VUIG5hbWUgPSAnZm91cl4xJworV0hFUkUgaWQgPSAnWzQsNSkn OworLS0gVXBkYXRpbmcgYW4gb3Blbi9maW5pdGUgcG9ydGlvbiB3aXRoIGEgZmluaXRlL29w ZW4gdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxNy0wMS0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm91cl4y JworV0hFUkUgaWQgPSAnWzQsNSknOworLS0gVXBkYXRpbmcgYSBmaW5pdGUvZmluaXRlIHBv cnRpb24gd2l0aCBhbiBleGFjdCBmaXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE3LTAxLTAxJyBUTyAnMjAxOC0wMi0w MScKK1NFVCBuYW1lID0gJ2ZvdXJeMycKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIFVwZGF0 aW5nIGFuIGVuY2xvc2VkIHNwYW4KK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorU0VUIG5hbWUgPSAndHdv XjInCitXSEVSRSBpZCA9ICdbMiwzKSc7CistLSBVcGRhdGluZyBhbiBvcGVuL29wZW4gcG9y dGlvbiB3aXRoIGEgZmluaXRlL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9v Zl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAxJyBUTyAn MjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ2ZpdmVeMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsK Ky0tIFVwZGF0aW5nIGFuIGVuY2xvc2VkIHNwYW4gd2l0aCBzZXBhcmF0ZSBwcm90cnVkaW5n IHNwYW5zCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxNy0wMS0wMScgVE8gJzIwMjAtMDEtMDEnCitTRVQgbmFtZSA9ICdm aXZlXjInCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBVcGRhdGluZyBtdWx0aXBsZSBlbmNs b3NlZCBzcGFucworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCitTRVQgbmFtZSA9ICdvbmVeMicKK1dIRVJF IGlkID0gJ1sxLDIpJzsKKy0tIFdpdGggYSBkaXJlY3QgdGFyZ2V0CitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVyYW5nZSgnMjAx OC0wMy0xMCcsICcyMDE4LTAzLTE3JykpCitTRVQgbmFtZSA9ICdvbmVeMycKK1dIRVJFIGlk ID0gJ1sxLDIpJzsKKy0tIFVwZGF0aW5nIHRoZSBub24tcmFuZ2UgcGFydCBvZiB0aGUgUEs6 CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMi0xNScgVE8gTlVMTAorU0VUIGlkID0gJ1s2LDcpJworV0hFUkUgaWQg PSAnWzEsMiknOworLS0gVVBEQVRFIHdpdGggbm8gV0hFUkUgY2xhdXNlCitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAzMC0w MS0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSBuYW1lIHx8ICcqJzsKK1NFTEVDVCAqIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8ICAgbmFtZSAgIAorLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBbMSwyKSB8IFsyMDE4LTAxLTAyLDIwMTgt MDItMDMpIHwgb25lXjIKKyBbMSwyKSB8IFsyMDE4LTAyLTAzLDIwMTgtMDItMTUpIHwgb25l XjIKKyBbMiwzKSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpIHwgdHdvXjIKKyBbMyw0KSB8 IFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpIHwgdGhyZWVeMgorIFszLDQpIHwgWzIwMTgtMDMt MDEsMjAxOC0wNi0wMSkgfCB0aHJlZQorIFszLDQpIHwgWzIwMTgtMDYtMDEsMjAzMC0wMS0w MSkgfCB0aHJlZV4xCisgWzMsNCkgfCBbMjAzMC0wMS0wMSwpICAgICAgICAgICB8IHRocmVl XjEqCisgWzQsNSkgfCAoLDIwMTctMDEtMDEpICAgICAgICAgICB8IGZvdXJeMQorIFs0LDUp IHwgWzIwMTctMDEtMDEsMjAxOC0wMi0wMSkgfCBmb3VyXjMKKyBbNCw1KSB8IFsyMDE4LTAy LTAxLDIwMTgtMDQtMDEpIHwgZm91cl4yCisgWzUsNikgfCAoLDIwMTctMDEtMDEpICAgICAg ICAgICB8IGZpdmUKKyBbNSw2KSB8IFsyMDE3LTAxLTAxLDIwMTgtMDEtMDEpIHwgZml2ZV4y CisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IGZpdmVeMgorIFs1LDYpIHwg WzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBmaXZlXjIKKyBbNSw2KSB8IFsyMDIwLTAxLTAx LDIwMzAtMDEtMDEpIHwgZml2ZQorIFs1LDYpIHwgWzIwMzAtMDEtMDEsKSAgICAgICAgICAg fCBmaXZlKgorIFs2LDcpIHwgWzIwMTgtMDItMTUsMjAxOC0wMy0wMykgfCBvbmVeMgorIFs2 LDcpIHwgWzIwMTgtMDMtMDMsMjAxOC0wMy0xMCkgfCBvbmVeMgorIFs2LDcpIHwgWzIwMTgt MDMtMTAsMjAxOC0wMy0xNykgfCBvbmVeMworIFs2LDcpIHwgWzIwMTgtMDMtMTcsMjAxOC0w NC0wNCkgfCBvbmVeMgorKDIwIHJvd3MpCisKKy0tIFVwZGF0aW5nIHdpdGggYSBzaGlmdC9y ZWR1Y2UgY29uZmxpY3QKKy0tIChyZXF1aXJlcyBhIHRzcmFuZ2UgY29sdW1uKQorQ1JFQVRF IFVOTE9HR0VEIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9hdCB0c3JhbmdlLAorICBuYW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBm b3JfcG9ydGlvbl9vZl90ZXN0MiAoaWQsIHZhbGlkX2F0LCBuYW1lKQorICBWQUxVRVMgKCdb MSwyKScsICdbMjAwMC0wMS0wMSwyMDIwLTAxLTAxKScsICdvbmUnKTsKKy0tIHVwZGF0ZXMg WzIwMTEtMDMtMDEgMDE6MDI6MDAsIDIwMTItMDEtMDEpIChub3RlIDIgbWludXRlcykKK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQKKyAg RlJPTSAnMjAxMS0wMy0wMSc6OnRpbWVzdGFtcCArIElOVEVSVkFMICcxOjAyOjAzJyBIT1VS IFRPIE1JTlVURQorICBUTyAnMjAxMi0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV4xJworV0hF UkUgaWQgPSAnWzEsMiknOworLS0gVE8gaXMgdXNlZCBmb3IgdGhlIGJvdW5kIGJ1dCBub3Qg dGhlIElOVEVSVkFMOgorLS0gc3ludGF4IGVycm9yCitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gJzIwMTMtMDMtMDEnOjp0 aW1lc3RhbXAgKyBJTlRFUlZBTCAnMTowMjowMycgSE9VUgorICBUTyAnMjAxNC0wMS0wMScK K1NFVCBuYW1lID0gJ29uZV4yJworV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBzeW50 YXggZXJyb3IgYXQgb3IgbmVhciAiJzIwMTQtMDEtMDEnIgorTElORSA0OiAgIFRPICcyMDE0 LTAxLTAxJworICAgICAgICAgICAgIF4KKy0tIGFkZGluZyBwYXJlbnMgZml4ZXMgaXQKKy0t IHVwZGF0ZXMgWzIwMTUtMDMtMDEgMDE6MDA6MDAsIDIwMTYtMDEtMDEpIChubyBtaW51dGVz KQorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dAorICBGUk9NICgnMjAxNS0wMy0wMSc6OnRpbWVzdGFtcCArIElOVEVSVkFMICcxOjAyOjAz JyBIT1VSKQorICBUTyAnMjAxNi0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV4zJworV0hFUkUg aWQgPSAnWzEsMiknOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICB2YWxpZF9h dCAgICAgICAgICAgICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWyIy MDAwLTAxLTAxIDAwOjAwOjAwIiwiMjAxMS0wMy0wMSAwMTowMjowMCIpIHwgb25lCisgWzEs MikgfCBbIjIwMTEtMDMtMDEgMDE6MDI6MDAiLCIyMDEyLTAxLTAxIDAwOjAwOjAwIikgfCBv bmVeMQorIFsxLDIpIHwgWyIyMDEyLTAxLTAxIDAwOjAwOjAwIiwiMjAxNS0wMy0wMSAwMTow MDowMCIpIHwgb25lCisgWzEsMikgfCBbIjIwMTUtMDMtMDEgMDE6MDA6MDAiLCIyMDE2LTAx LTAxIDAwOjAwOjAwIikgfCBvbmVeMworIFsxLDIpIHwgWyIyMDE2LTAxLTAxIDAwOjAwOjAw IiwiMjAyMC0wMS0wMSAwMDowMDowMCIpIHwgb25lCisoNSByb3dzKQorCitEUk9QIFRBQkxF IGZvcl9wb3J0aW9uX29mX3Rlc3QyOworLS0KKy0tIERFTEVURSB0ZXN0cworLS0KKy0tIERl bGV0aW5nIHdpdGggYSBtaXNzaW5nIGNvbHVtbiBmYWlscworREVMRVRFIEZST00gZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2 LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIGNvbHVtbiBvciBw ZXJpb2QgImludmFsaWRfYXQiIG9mIHJlbGF0aW9uICJmb3JfcG9ydGlvbl9vZl90ZXN0IiBk b2VzIG5vdCBleGlzdAorTElORSAyOiBGT1IgUE9SVElPTiBPRiBpbnZhbGlkX2F0IEZST00g JzIwMTgtMDYtMDEnIFRPIE5VTEwKKyAgICAgICAgICAgICAgICAgICAgICAgXgorLS0gRGVs ZXRpbmcgd2l0aCB0aW1lc3RhbXBzIHJldmVyc2VkIGZhaWxzCitERUxFVEUgRlJPTSBmb3Jf cG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2 LTAxJyBUTyAnMjAxOC0wMS0wMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgcmFu Z2UgbG93ZXIgYm91bmQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmFuZ2UgdXBw ZXIgYm91bmQKKy0tIERlbGV0aW5nIHdpdGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhp bmcKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJworV0hFUkUgaWQgPSAn WzMsNCknOworLS0gRGVsZXRpbmcgd2l0aCBhIGNsb3NlZC9jbG9zZWQgdGFyZ2V0CitERUxF VEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTA2LTAxJyBUTyAnMjAyMC0wNi0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsK Ky0tIERlbGV0aW5nIHdpdGggYSBjbG9zZWQvb3BlbiB0YXJnZXQKK0RFTEVURSBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDQtMDEnIFRPIE5VTEwKK1dIRVJFIGlkID0gJ1szLDQpJzsKKy0tIERlbGV0aW5nIHdpdGgg YW4gb3Blbi9jbG9zZWQgdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDItMDgnCitX SEVSRSBpZCA9ICdbMSwyKSc7CistLSBEZWxldGluZyB3aXRoIGFuIG9wZW4vb3BlbiB0YXJn ZXQKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBERUxF VEUgd2l0aCBubyBXSEVSRSBjbGF1c2UKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMjUtMDEtMDEnIFRPIE5VTEw7 CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgbmFtZSAgIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsxLDIpIHwgWzIw MTgtMDItMDgsMjAxOC0wMi0xNSkgfCBvbmVeMgorIFsyLDMpIHwgWzIwMTgtMDEtMDEsMjAx OC0wMS0wNSkgfCB0d29eMgorIFszLDQpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMy0wMSkgfCB0 aHJlZV4yCisgWzMsNCkgfCBbMjAxOC0wMy0wMSwyMDE4LTA0LTAxKSB8IHRocmVlCisgWzQs NSkgfCAoLDIwMTctMDEtMDEpICAgICAgICAgICB8IGZvdXJeMQorIFs0LDUpIHwgWzIwMTct MDEtMDEsMjAxOC0wMi0wMSkgfCBmb3VyXjMKKyBbNCw1KSB8IFsyMDE4LTAyLTAxLDIwMTgt MDQtMDEpIHwgZm91cl4yCisgWzUsNikgfCAoLDIwMTctMDEtMDEpICAgICAgICAgICB8IGZp dmUKKyBbNSw2KSB8IFsyMDE3LTAxLTAxLDIwMTgtMDEtMDEpIHwgZml2ZV4yCisgWzUsNikg fCBbMjAxOC0wMS0wMSwyMDE4LTA2LTAxKSB8IGZpdmVeMgorIFs1LDYpIHwgWzIwMjAtMDYt MDEsMjAyNS0wMS0wMSkgfCBmaXZlCisoMTEgcm93cykKKworLS0gVVBEQVRFIC4uLiBSRVRV Uk5JTkcgcmV0dXJucyBvbmx5IHRoZSB1cGRhdGVkIHZhbHVlcyAobm90IHRoZSBpbnNlcnRl ZCBzaWRlIHZhbHVlcykKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAyLTAxJyBUTyAnMjAxOC0wMi0xNScKK1NFVCBu YW1lID0gJ3RocmVlXjMnCitXSEVSRSBpZCA9ICdbMyw0KScKK1JFVFVSTklORyAqOworICBp ZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgbmFtZSAgIAorLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFszLDQpIHwgWzIwMTgtMDItMDEs MjAxOC0wMi0xNSkgfCB0aHJlZV4zCisoMSByb3cpCisKKy0tIERFTEVURSAuLi4gUkVUVVJO SU5HIHJldHVybnMgdGhlIGRlbGV0ZWQgdmFsdWVzIChyZWdhcmRsZXNzIG9mIGJvdW5kcykK K0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDItMDInIFRPICcyMDE4LTAyLTAzJworV0hFUkUgaWQgPSAnWzMs NCknCitSRVRVUk5JTkcgKjsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg IG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K KyBbMyw0KSB8IFsyMDE4LTAyLTAxLDIwMTgtMDItMTUpIHwgdGhyZWVeMworKDEgcm93KQor CistLSB0ZXN0IHRoYXQgd2UgcnVuIHRyaWdnZXJzIG9uIHRoZSBVUERBVEUvREVMRVRFZCBy b3cgYW5kIHRoZSBJTlNFUlRlZCByb3dzCitDUkVBVEUgRlVOQ1RJT04gZm9yX3BvcnRpb25f b2ZfdHJpZ2dlcigpCitSRVRVUk5TIHRyaWdnZXIKK0FTCiskJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICclICUgJSAlIG9mICUnLCBUR19XSEVOLCBUR19PUCwgVEdfTEVWRUwsIE5FVy52 YWxpZF9hdCwgT0xELnZhbGlkX2F0OworICBJRiBUR19PUCA9ICdERUxFVEUnIFRIRU4KKyAg ICBSRVRVUk4gT0xEOworICBFTFNFCisgICAgUkVUVVJOIE5FVzsKKyAgRU5EIElGOworRU5E OworJCQKK0xBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRp b25fb2ZfYmVmb3JlCisgIEJFRk9SRSBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBm b3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9O IGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9y dGlvbl9vZl9hZnRlcgorICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBm b3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVworICBFWEVDVVRFIEZVTkNUSU9O IGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFURSBUUklHR0VSIHRyZ19mb3JfcG9y dGlvbl9vZl9iZWZvcmVfc3RtdAorICBCRUZPUkUgSU5TRVJUIE9SIFVQREFURSBPUiBERUxF VEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgRUFDSCBTVEFURU1FTlQKKyAgRVhF Q1VURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCk7CitDUkVBVEUgVFJJR0dF UiB0cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXJfc3RtdAorICBBRlRFUiBJTlNFUlQgT1IgVVBE QVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFNUQVRF TUVOVAorICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDIxLTAxLTAxJyBUTyAnMjAyMi0wMS0wMScKK1NFVCBuYW1lID0gJ2ZpdmVeMycKK1dI RVJFIGlkID0gJ1s1LDYpJzsKK05PVElDRTogIEJFRk9SRSBVUERBVEUgU1RBVEVNRU5UIDxO VUxMPiBvZiA8TlVMTD4KK05PVElDRTogIEJFRk9SRSBVUERBVEUgUk9XIFsyMDIxLTAxLTAx LDIwMjItMDEtMDEpIG9mIFsyMDIwLTA2LTAxLDIwMjUtMDEtMDEpCitOT1RJQ0U6ICBCRUZP UkUgSU5TRVJUIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJQ0U6ICBCRUZPUkUg SU5TRVJUIFJPVyBbMjAyMC0wNi0wMSwyMDIxLTAxLTAxKSBvZiA8TlVMTD4KK05PVElDRTog IEFGVEVSIElOU0VSVCBST1cgWzIwMjAtMDYtMDEsMjAyMS0wMS0wMSkgb2YgPE5VTEw+CitO T1RJQ0U6ICBBRlRFUiBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElD RTogIEJFRk9SRSBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElDRTog IEJFRk9SRSBJTlNFUlQgUk9XIFsyMDIyLTAxLTAxLDIwMjUtMDEtMDEpIG9mIDxOVUxMPgor Tk9USUNFOiAgQUZURVIgSU5TRVJUIFJPVyBbMjAyMi0wMS0wMSwyMDI1LTAxLTAxKSBvZiA8 TlVMTD4KK05PVElDRTogIEFGVEVSIElOU0VSVCBTVEFURU1FTlQgPE5VTEw+IG9mIDxOVUxM PgorTk9USUNFOiAgQUZURVIgVVBEQVRFIFJPVyBbMjAyMS0wMS0wMSwyMDIyLTAxLTAxKSBv ZiBbMjAyMC0wNi0wMSwyMDI1LTAxLTAxKQorTk9USUNFOiAgQUZURVIgVVBEQVRFIFNUQVRF TUVOVCA8TlVMTD4gb2YgPE5VTEw+CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDIzLTAxLTAxJyBUTyAnMjAyNC0w MS0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK05PVElDRTogIEJFRk9SRSBERUxFVEUgU1RB VEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElDRTogIEJFRk9SRSBERUxFVEUgUk9XIDxO VUxMPiBvZiBbMjAyMi0wMS0wMSwyMDI1LTAxLTAxKQorTk9USUNFOiAgQkVGT1JFIElOU0VS VCBTVEFURU1FTlQgPE5VTEw+IG9mIDxOVUxMPgorTk9USUNFOiAgQkVGT1JFIElOU0VSVCBS T1cgWzIwMjItMDEtMDEsMjAyMy0wMS0wMSkgb2YgPE5VTEw+CitOT1RJQ0U6ICBBRlRFUiBJ TlNFUlQgUk9XIFsyMDIyLTAxLTAxLDIwMjMtMDEtMDEpIG9mIDxOVUxMPgorTk9USUNFOiAg QUZURVIgSU5TRVJUIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJQ0U6ICBCRUZP UkUgSU5TRVJUIFNUQVRFTUVOVCA8TlVMTD4gb2YgPE5VTEw+CitOT1RJQ0U6ICBCRUZPUkUg SU5TRVJUIFJPVyBbMjAyNC0wMS0wMSwyMDI1LTAxLTAxKSBvZiA8TlVMTD4KK05PVElDRTog IEFGVEVSIElOU0VSVCBST1cgWzIwMjQtMDEtMDEsMjAyNS0wMS0wMSkgb2YgPE5VTEw+CitO T1RJQ0U6ICBBRlRFUiBJTlNFUlQgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK05PVElD RTogIEFGVEVSIERFTEVURSBST1cgPE5VTEw+IG9mIFsyMDIyLTAxLTAxLDIwMjUtMDEtMDEp CitOT1RJQ0U6ICBBRlRFUiBERUxFVEUgU1RBVEVNRU5UIDxOVUxMPiBvZiA8TlVMTD4KK1NF TEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBuYW1lICAgCistLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgWzEsMikgfCBbMjAxOC0w Mi0wOCwyMDE4LTAyLTE1KSB8IG9uZV4yCisgWzIsMykgfCBbMjAxOC0wMS0wMSwyMDE4LTAx LTA1KSB8IHR3b14yCisgWzMsNCkgfCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSB8IHRocmVl XjIKKyBbMyw0KSB8IFsyMDE4LTAyLTAxLDIwMTgtMDItMDIpIHwgdGhyZWVeMworIFszLDQp IHwgWzIwMTgtMDItMDMsMjAxOC0wMi0xNSkgfCB0aHJlZV4zCisgWzMsNCkgfCBbMjAxOC0w Mi0xNSwyMDE4LTAzLTAxKSB8IHRocmVlXjIKKyBbMyw0KSB8IFsyMDE4LTAzLTAxLDIwMTgt MDQtMDEpIHwgdGhyZWUKKyBbNCw1KSB8ICgsMjAxNy0wMS0wMSkgICAgICAgICAgIHwgZm91 cl4xCisgWzQsNSkgfCBbMjAxNy0wMS0wMSwyMDE4LTAyLTAxKSB8IGZvdXJeMworIFs0LDUp IHwgWzIwMTgtMDItMDEsMjAxOC0wNC0wMSkgfCBmb3VyXjIKKyBbNSw2KSB8ICgsMjAxNy0w MS0wMSkgICAgICAgICAgIHwgZml2ZQorIFs1LDYpIHwgWzIwMTctMDEtMDEsMjAxOC0wMS0w MSkgfCBmaXZlXjIKKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTgtMDYtMDEpIHwgZml2ZV4y CisgWzUsNikgfCBbMjAyMC0wNi0wMSwyMDIxLTAxLTAxKSB8IGZpdmUKKyBbNSw2KSB8IFsy MDIxLTAxLTAxLDIwMjItMDEtMDEpIHwgZml2ZV4zCisgWzUsNikgfCBbMjAyMi0wMS0wMSwy MDIzLTAxLTAxKSB8IGZpdmUKKyBbNSw2KSB8IFsyMDI0LTAxLTAxLDIwMjUtMDEtMDEpIHwg Zml2ZQorKDE3IHJvd3MpCisKK0RST1AgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dl ciBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byA0IG90aGVyIG9iamVjdHMK K0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdHJpZ2dlciB0cmdfZm9yX3BvcnRpb25fb2Zf YmVmb3JlIG9uIHRhYmxlIGZvcl9wb3J0aW9uX29mX3Rlc3QKK2Ryb3AgY2FzY2FkZXMgdG8g dHJpZ2dlciB0cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXIgb24gdGFibGUgZm9yX3BvcnRpb25f b2ZfdGVzdAorZHJvcCBjYXNjYWRlcyB0byB0cmlnZ2VyIHRyZ19mb3JfcG9ydGlvbl9vZl9i ZWZvcmVfc3RtdCBvbiB0YWJsZSBmb3JfcG9ydGlvbl9vZl90ZXN0Citkcm9wIGNhc2NhZGVz IHRvIHRyaWdnZXIgdHJnX2Zvcl9wb3J0aW9uX29mX2FmdGVyX3N0bXQgb24gdGFibGUgZm9y X3BvcnRpb25fb2ZfdGVzdAorLS0gVHJpZ2dlcnMgd2l0aCBhIGN1c3RvbSB0cmFuc2l0aW9u IHRhYmxlIG5hbWU6CitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUg VEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRf YXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlv bl9vZl90ZXN0IFZBTFVFUyAoJ1sxLDIpJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJywg J29uZScpOworQ1JFQVRFIEZVTkNUSU9OIGR1bXBfdHJpZ2dlcigpCitSRVRVUk5TIFRSSUdH RVIgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQKK0JFR0lOCisgIElGIFRHX09QID0gJ0lOU0VS VCcgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnJTogJSAlLCBORVcgdGFibGUgPSAlJywKKyAg ICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190 YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJ RiBUR19PUCA9ICdVUERBVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJyU6ICUgJSwgT0xE IHRhYmxlID0gJSwgTkVXIHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19PUCwgVEdf TEVWRUwsCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAn IE9SREVSIEJZIGlkKSBGUk9NIG9sZF90YWJsZSksCisgICAgICAoU0VMRUNUIHN0cmluZ19h Z2cobmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7 CisgIEVMU0lGIFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnJTog JSAlLCBPTEQgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwg KFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkg RlJPTSBvbGRfdGFibGUpOworICBFTkQgSUY7CisgIFJFVFVSTiBOVUxMOworRU5EOworJCQ7 CitDUkVBVEUgVFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnCitBRlRF UiBJTlNFUlQgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgTkVXIFRBQkxF IEFTIG5ld190YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJp Z2dlcigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJp Z19zdG10CitBRlRFUiBJTlNFUlQgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJ TkcgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUg UFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25f b2ZfdGVzdF91cGRhdGVfdHJpZworQUZURVIgVVBEQVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rl c3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUgTkVXIFRBQkxFIEFTIG5l d190YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigp OworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZ19zdG10 CitBRlRFUiBVUERBVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xE IFRBQkxFIEFTIG9sZF90YWJsZSBORVcgVEFCTEUgQVMgbmV3X3RhYmxlCitGT1IgRUFDSCBT VEFURU1FTlQgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7CitDUkVBVEUgVFJJ R0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X2RlbGV0ZV90cmlnCitBRlRFUiBERUxFVEUgT04g Zm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFTIG9sZF90YWJs ZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQ1JF QVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZ19zdG10CitBRlRF UiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxF IEFTIG9sZF90YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1 bXBfdHJpZ2dlcigpOworQkVHSU47CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorICBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0w MScKKyAgU0VUIG5hbWUgPSAnMjAxOC0wMS0xNV90b18yMDE5LTAxLTAxJzsKK05PVElDRTog IGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJs ZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDE4LTAxLTE1KSIsb25lKQorTk9USUNFOiAg Zm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5U LCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAxOC0wMS0xNSkiLG9uZSkK K05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1cs IE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKQor Tk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQg U1RBVEVNRU5ULCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTktMDEtMDEsMjAyMC0wMS0w MSkiLG9uZSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWc6IFVQ REFURSBST1csIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTE1LDIwMTktMDEtMDEp IiwyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90 ZXN0X3VwZGF0ZV90cmlnX3N0bXQ6IFVQREFURSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgi WzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxlID0gKCJb MSwyKSIsIlsyMDE4LTAxLTE1LDIwMTktMDEtMDEpIiwyMDE4LTAxLTE1X3RvXzIwMTktMDEt MDEpCitST0xMQkFDSzsKK0JFR0lOOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVz dAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEtMjEn OworTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZzogSU5TRVJUIFJP VywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTIxLDIwMjAtMDEtMDEpIixvbmUp CitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnX3N0bXQ6IElOU0VS VCBTVEFURU1FTlQsIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0yMSwyMDIwLTAx LTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZzog REVMRVRFIFJPVywgT0xEIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMjAtMDEt MDEpIixvbmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2RlbGV0ZV90cmlnX3N0 bXQ6IERFTEVURSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKSIsb25lKQorUk9MTEJBQ0s7CitCRUdJTjsKK1VQREFURSBmb3JfcG9y dGlvbl9vZl90ZXN0CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAn MjAxOC0wMS0wMicKKyAgU0VUIG5hbWUgPSAnTlVMTF90b18yMDE4LTAxLTAxJzsKK05PVElD RTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0 YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMiwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNF OiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVN RU5ULCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDIsMjAyMC0wMS0wMSkiLG9u ZSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWc6IFVQREFURSBS T1csIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25l KSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMTgtMDEtMDIpIixOVUxM X3RvXzIwMTgtMDEtMDEpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90 cmlnX3N0bXQ6IFVQREFURSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAx OC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4 LTAxLTAxLDIwMTgtMDEtMDIpIixOVUxMX3RvXzIwMTgtMDEtMDEpCitST0xMQkFDSzsKKy0t IFRlc3Qgd2l0aCBtdWx0aXJhbmdlcworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rl c3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCBkYXRlbXVsdGly YW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICBDT05TVFJBSU5UIGZv cl9wb3J0aW9uX29mX3Rlc3QyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0MgorVkFM VUVTCisoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywg JzIwMTgtMDItMDMpJyksIGRhdGVyYW5nZSgnMjAxOC0wMi0wNCcsICcyMDE4LTAzLTAzJykp LCAnb25lJyksCisoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAz LTAzJywgJzIwMTgtMDQtMDQpJykpLCAnb25lJyksCisoJ1syLDMpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDUtMDEpJykpLCAndHdvJyksCiso J1szLDQpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgbnVsbCkp LCAndGhyZWUnKTsKKzsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xMCcs ICcyMDE4LTAyLTEwJyksIGRhdGVyYW5nZSgnMjAxOC0wMy0wNScsICcyMDE4LTA1LTAxJykp KQorU0VUIG5hbWUgPSAnb25lXjEnCitXSEVSRSBpZCA9ICdbMSwyKSc7CitERUxFVEUgRlJP TSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JyksIGRhdGVy YW5nZSgnMjAxOC0wMy0wMScsICcyMDE4LTAzLTE1JykpKQorV0hFUkUgaWQgPSAnWzIsMykn OworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlk X2F0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgbmFtZSAgCistLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCB7WzIwMTgtMDEtMDIs MjAxOC0wMS0xMCksWzIwMTgtMDItMTAsMjAxOC0wMy0wMyl9ICAgICAgICAgICAgICAgICAg ICAgICAgIHwgb25lCisgWzEsMikgfCB7WzIwMTgtMDEtMTAsMjAxOC0wMi0wMyksWzIwMTgt MDItMDQsMjAxOC0wMi0xMCl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgb25lXjEKKyBb MSwyKSB8IHtbMjAxOC0wMy0wMywyMDE4LTAzLTA1KX0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBvbmUKKyBbMSwyKSB8IHtbMjAxOC0wMy0w NSwyMDE4LTA0LTA0KX0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBvbmVeMQorIFsyLDMpIHwge1syMDE4LTAxLTAxLDIwMTgtMDEtMTUpLFsy MDE4LTAyLTE1LDIwMTgtMDMtMDEpLFsyMDE4LTAzLTE1LDIwMTgtMDUtMDEpfSB8IHR3bwor IFszLDQpIHwge1syMDE4LTAxLTAxLCl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVlCisoNiByb3dzKQorCitEUk9Q IFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworLS0gVGVzdCB3aXRoIGEgY3VzdG9tIHJh bmdlIHR5cGUKK0NSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0 ZSk7CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFu Z2UgTk9UIE5VTEwsCisgIHZhbGlkX2F0IG15ZGF0ZXJhbmdlIE5PVCBOVUxMLAorICBuYW1l IHRleHQgTk9UIE5VTEwsCisgIENPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfdGVzdDJfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VS VCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgt MDEtMDIsMjAxOC0wMi0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAyLTAzLDIw MTgtMDMtMDMpJywgJ29uZScpLAorKCdbMSwyKScsICdbMjAxOC0wMy0wMywyMDE4LTA0LTA0 KScsICdvbmUnKSwKKygnWzIsMyknLCAnWzIwMTgtMDEtMDEsMjAxOC0wNS0wMSknLCAndHdv JyksCisoJ1szLDQpJywgJ1syMDE4LTAxLTAxLCknLCAndGhyZWUnKTsKKzsKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0xMCcgVE8gJzIwMTgtMDItMTAnCitTRVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlk ID0gJ1sxLDIpJzsKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOC0wMi0xNScKK1dI RVJFIGlkID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t CisgWzEsMikgfCBbMjAxOC0wMS0wMiwyMDE4LTAxLTEwKSB8IG9uZQorIFsxLDIpIHwgWzIw MTgtMDEtMTAsMjAxOC0wMi0wMykgfCBvbmVeMQorIFsxLDIpIHwgWzIwMTgtMDItMDMsMjAx OC0wMi0xMCkgfCBvbmVeMQorIFsxLDIpIHwgWzIwMTgtMDItMTAsMjAxOC0wMy0wMykgfCBv bmUKKyBbMSwyKSB8IFsyMDE4LTAzLTAzLDIwMTgtMDQtMDQpIHwgb25lCisgWzIsMykgfCBb MjAxOC0wMS0wMSwyMDE4LTAxLTE1KSB8IHR3bworIFsyLDMpIHwgWzIwMTgtMDItMTUsMjAx OC0wNS0wMSkgfCB0d28KKyBbMyw0KSB8IFsyMDE4LTAxLTAxLCkgICAgICAgICAgIHwgdGhy ZWUKKyg4IHJvd3MpCisKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CitEUk9Q IFRZUEUgbXlkYXRlcmFuZ2U7CistLSBUZXN0IEZPUiBQT1JUSU9OIE9GIGFnYWluc3QgYSBw YXJ0aXRpb25lZCB0YWJsZS4KKy0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgaGFzIHRoZSBz YW1lIGF0dG51bXMgYXMgdGhlIHJvb3QKKy0tIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgaGFz IHRoZSBkaWZmZXJlbnQgYXR0bnVtcyBmcm9tIHRoZSByb290CistLSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF81IGhhcyB0aGUgZGlmZmVyZW50IGF0dG51bXMgdG9vLCBidXQgcmV2ZXJzZWQK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQsCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfcGFyaXRpb25lZF91cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkXzEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBW QUxVRVMgSU4gKCdbMSwyKScsICdbMiwzKScpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkXzMgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxV RVMgSU4gKCdbMyw0KScsICdbNCw1KScpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRp dGlvbmVkXzUgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMg SU4gKCdbNSw2KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWQgREVUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zOworQUxURVIgVEFC TEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBEUk9QIENPTFVNTiBpZCwgRFJPUCBDT0xVTU4g dmFsaWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIEFERCBDT0xV TU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMLCBBREQgQ09MVU1OIHZhbGlkX2F0IGRhdGVyYW5n ZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEFUVEFDSCBQ QVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBGT1IgVkFMVUVTIElOICgnWzMsNCkn LCAnWzQsNSknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIERFVEFDSCBQ QVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfNTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkXzUgRFJPUCBDT0xVTU4gaWQsIERST1AgQ09MVU1OIHZhbGlkX2F0Owor QUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBBREQgQ09MVU1OIHZhbGlkX2F0 IGRhdGVyYW5nZSBOT1QgTlVMTCwgQUREIENPTFVNTiBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEw7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBBVFRBQ0ggUEFSVElUSU9OIHRl bXBvcmFsX3BhcnRpdGlvbmVkXzUgRk9SIFZBTFVFUyBJTiAoJ1s1LDYpJywgJ1s2LDcpJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBWQUxVRVMKKyAgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdvbmUnKSwKKyAgKCdb Myw0KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0aHJlZScp LAorICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwg J2ZpdmUnKTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQ7CisgIGlkICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAorLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEt MDEpIHwgb25lCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisg WzUsNikgfCBbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKSB8IGZpdmUKKygzIHJvd3MpCisKKy0t IFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRoaW4gcGFydGl0aW9uIDEKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAz LTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VUIG5hbWUgPSAnb25lXjEnCisgIFdIRVJFIGlk ID0gJ1sxLDIpJzsKKy0tIFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRoaW4gcGFydGl0aW9u IDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDAwLTAzLTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VUIG5hbWUgPSAndGhy ZWVeMScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworLS0gVXBkYXRlIHdpdGhvdXQgbW92aW5n IHdpdGhpbiBwYXJ0aXRpb24gNQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcyMDAwLTA0LTAxJwor ICBTRVQgbmFtZSA9ICdmaXZlXjEnCisgIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIE1vdmUg ZnJvbSBwYXJ0aXRpb24gMSB0byBwYXJ0aXRpb24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcy MDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICdvbmVeMicsCisgICAgICBpZCA9ICdbNCw1KScK KyAgV0hFUkUgaWQgPSAnWzEsMiknOworLS0gTW92ZSBmcm9tIHBhcnRpdGlvbiAzIHRvIHBh cnRpdGlvbiAxCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAwMC0wNi0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1l ID0gJ3RocmVlXjInLAorICAgICAgaWQgPSAnWzIsMyknCisgIFdIRVJFIGlkID0gJ1szLDQp JzsKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gNSB0byBwYXJ0aXRpb24gMworVVBEQVRFIHRl bXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAt MDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICdmaXZlXjInLAorICAgICAg aWQgPSAnWzMsNCknCisgIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIFVwZGF0ZSBhbGwgcGFy dGl0aW9ucyBhdCBvbmNlIChlYWNoIHdpdGggbGVmdG92ZXJzKQorU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8ICBuYW1lICAgCistLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAz LTAxKSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDMtMDEsMjAwMC0wNC0wMSkgfCBvbmVeMQor IFsxLDIpIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkgfCBvbmUKKyBbMSwyKSB8IFsyMDAw LTA3LTAxLDIwMTAtMDEtMDEpIHwgb25lCisgWzIsMykgfCBbMjAwMC0wNi0wMSwyMDAwLTA3 LTAxKSB8IHRocmVlXjIKKyBbMyw0KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgdGhy ZWUKKyBbMyw0KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpIHwgdGhyZWVeMQorIFszLDQp IHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0wMSkgfCB0aHJlZQorIFszLDQpIHwgWzIwMDAtMDYt MDEsMjAwMC0wNy0wMSkgfCBmaXZlXjIKKyBbMyw0KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEt MDEpIHwgdGhyZWUKKyBbNCw1KSB8IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEpIHwgb25lXjIK KyBbNSw2KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgZml2ZQorIFs1LDYpIHwgWzIw MDAtMDMtMDEsMjAwMC0wNC0wMSkgfCBmaXZlXjEKKyBbNSw2KSB8IFsyMDAwLTA0LTAxLDIw MDAtMDYtMDEpIHwgZml2ZQorIFs1LDYpIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBm aXZlCisoMTUgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8x IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgIG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0KKyBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgb25lCisgWzEsMikg fCBbMjAwMC0wMy0wMSwyMDAwLTA0LTAxKSB8IG9uZV4xCisgWzEsMikgfCBbMjAwMC0wNC0w MSwyMDAwLTA2LTAxKSB8IG9uZQorIFsxLDIpIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkg fCBvbmUKKyBbMiwzKSB8IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEpIHwgdGhyZWVeMgorKDUg cm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgbmFtZSAgIHwgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICAKKy0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0 aHJlZSAgIHwgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDAwLTAzLTAxKQorIHRocmVlXjEgfCBb Myw0KSB8IFsyMDAwLTAzLTAxLDIwMDAtMDQtMDEpCisgdGhyZWUgICB8IFszLDQpIHwgWzIw MDAtMDQtMDEsMjAwMC0wNi0wMSkKKyBmaXZlXjIgIHwgWzMsNCkgfCBbMjAwMC0wNi0wMSwy MDAwLTA3LTAxKQorIHRocmVlICAgfCBbMyw0KSB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEp Cisgb25lXjIgICB8IFs0LDUpIHwgWzIwMDAtMDYtMDEsMjAwMC0wNy0wMSkKKyg2IHJvd3Mp CisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgIG5hbWUgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAgaWQgICAK Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIGZpdmUgICB8 IFsyMDAwLTAxLTAxLDIwMDAtMDMtMDEpIHwgWzUsNikKKyBmaXZlXjEgfCBbMjAwMC0wMy0w MSwyMDAwLTA0LTAxKSB8IFs1LDYpCisgZml2ZSAgIHwgWzIwMDAtMDQtMDEsMjAwMC0wNi0w MSkgfCBbNSw2KQorIGZpdmUgICB8IFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEpIHwgWzUsNikK Kyg0IHJvd3MpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CitSRVNFVCBk YXRlc3R5bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZp bGVnZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dApp bmRleCA3NTkxMmY2OTBjMi4uMzk5ODA5OTQwZTkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wcml2aWxlZ2VzLm91dApAQCAtMTEwNSw2ICsxMTA1LDI0IEBAIEVSUk9SOiAg bnVsbCB2YWx1ZSBpbiBjb2x1bW4gImIiIG9mIHJlbGF0aW9uICJlcnJ0c3RfcGFydF8yIiB2 aW9sYXRlcyBub3QtbnVsbCBjCiBERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoYSwg YiwgYykgPSAoYWFhYSwgbnVsbCwgY2NjKS4KIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04g cmVncmVzc19wcml2X3VzZXIxOwogRFJPUCBUQUJMRSBlcnJ0c3Q7CistLSB0ZXN0IGNvbHVt bi1sZXZlbCBwcml2aWxlZ2VzIG9uIHRoZSByYW5nZSB1c2VkIGluIEZPUiBQT1JUSU9OIE9G CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKK0NSRUFU RSBUQUJMRSB0MSAoCisgIGMxIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwKKwlD T05TVFJBSU5UIHQxcGsgUFJJTUFSWSBLRVkgKGMxLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKK0dSQU5UIFNFTEVDVCBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjI7CitH UkFOVCBTRUxFQ1QgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIzOworR1JBTlQgVVBEQVRF IChjMSkgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIyOworR1JBTlQgVVBEQVRFIChjMSwg dmFsaWRfYXQpIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK1NFVCBTRVNTSU9OIEFV VEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIyOworVVBEQVRFIHQxIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAxLTAxJyBTRVQgYzEg PSAnWzIsMyknOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFibGUgdDEKK1NF VCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIzOworVVBEQVRFIHQx IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAx LTAxJyBTRVQgYzEgPSAnWzIsMyknOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3ByaXZfdXNlcjE7CitEUk9QIFRBQkxFIHQxOwogLS0gdGVzdCBjb2x1bW4tbGV2ZWwg cHJpdmlsZWdlcyB3aGVuIGludm9sdmVkIHdpdGggREVMRVRFCiBTRVQgU0VTU0lPTiBBVVRI T1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIEFMVEVSIFRBQkxFIGF0ZXN0NiBBREQg Q09MVU1OIHRocmVlIGludGVnZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3VwZGF0YWJsZV92aWV3cy5vdXQKaW5kZXggODc4NjA1OGVkMGMuLjUzOTAzNzA1NDkzIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0 CkBAIC0zNjY2LDYgKzM2NjYsMzggQEAgc2VsZWN0ICogZnJvbSB1dl9pb2N1X3RhYjsKIAog ZHJvcCB2aWV3IHV2X2lvY3VfdmlldzsKIGRyb3AgdGFibGUgdXZfaW9jdV90YWI7CistLSBD aGVjayBVUERBVEUgRk9SIFBPUlRJT04gT0Ygd29ya3MgY29ycmVjdGx5CitjcmVhdGUgdGFi bGUgdXZfZnBvX3RhYiAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCB0c3JhbmdlLCBiIGZsb2F0 LAorICAgIGNvbnN0cmFpbnQgcGtfdXZfZnBvX3RhYiBwcmltYXJ5IGtleSAoaWQsIHZhbGlk X2F0IHdpdGhvdXQgb3ZlcmxhcHMpKTsKK2luc2VydCBpbnRvIHV2X2Zwb190YWIgdmFsdWVz ICgnWzEsMV0nLCAnWzIwMjAtMDEtMDEsIDIwMzAtMDEtMDEpJywgMCk7CitjcmVhdGUgdmll dyB1dl9mcG9fdmlldyBhcworICAgIHNlbGVjdCBiLCBiKzEgYXMgYywgdmFsaWRfYXQsIGlk LCAnMi4wJzo6dGV4dCBhcyB0d28gZnJvbSB1dl9mcG9fdGFiOworaW5zZXJ0IGludG8gdXZf ZnBvX3ZpZXcgKGlkLCB2YWxpZF9hdCwgYikgdmFsdWVzICgnWzEsMV0nLCAnWzIwMTAtMDEt MDEsIDIwMjAtMDEtMDEpJywgMSk7CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3OworIGIg fCBjIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAg ICAgICAgICB8ICBpZCAgIHwgdHdvIAorLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLQorIDAg fCAxIHwgWyJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiLCJUdWUgSmFuIDAxIDAwOjAwOjAw IDIwMzAiKSB8IFsxLDIpIHwgMi4wCisgMSB8IDIgfCBbIkZyaSBKYW4gMDEgMDA6MDA6MDAg MjAxMCIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyMCIpIHwgWzEsMikgfCAyLjAKKygyIHJv d3MpCisKK3VwZGF0ZSB1dl9mcG9fdmlldyBmb3IgcG9ydGlvbiBvZiB2YWxpZF9hdCBmcm9t ICcyMDE1LTAxLTAxJyB0byAnMjAyMC0wMS0wMScgc2V0IGIgPSAyIHdoZXJlIGlkID0gJ1sx LDFdJzsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7CisgYiB8IGMgfCAgICAgICAgICAg ICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIGlkICAg fCB0d28gCistLS0rLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tCisgMCB8IDEgfCBbIldlZCBKYW4g MDEgMDA6MDA6MDAgMjAyMCIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAzMCIpIHwgWzEsMikg fCAyLjAKKyAyIHwgMyB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiV2VkIEphbiAw MSAwMDowMDowMCAyMDIwIikgfCBbMSwyKSB8IDIuMAorIDEgfCAyIHwgWyJGcmkgSmFuIDAx IDAwOjAwOjAwIDIwMTAiLCJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUiKSB8IFsxLDIpIHwg Mi4wCisoMyByb3dzKQorCitkZWxldGUgZnJvbSB1dl9mcG9fdmlldyBmb3IgcG9ydGlvbiBv ZiB2YWxpZF9hdCBmcm9tICcyMDE3LTAxLTAxJyB0byAnMjAyMi0wMS0wMScgd2hlcmUgaWQg PSAnWzEsMV0nOworc2VsZWN0ICogZnJvbSB1dl9mcG9fdmlldzsKKyBiIHwgYyB8ICAgICAg ICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgfCAg aWQgICB8IHR3byAKKy0tLSstLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0KKyAxIHwgMiB8IFsiRnJp IEphbiAwMSAwMDowMDowMCAyMDEwIiwiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IikgfCBb MSwyKSB8IDIuMAorIDAgfCAxIHwgWyJTYXQgSmFuIDAxIDAwOjAwOjAwIDIwMjIiLCJUdWUg SmFuIDAxIDAwOjAwOjAwIDIwMzAiKSB8IFsxLDIpIHwgMi4wCisgMiB8IDMgfCBbIlRodSBK YW4gMDEgMDA6MDA6MDAgMjAxNSIsIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAxNyIpIHwgWzEs MikgfCAyLjAKKygzIHJvd3MpCisKIC0tIFRlc3Qgd2hvbGUtcm93IHJlZmVyZW5jZXMgdG8g dGhlIHZpZXcKIGNyZWF0ZSB0YWJsZSB1dl9pb2N1X3RhYiAoYSBpbnQgdW5pcXVlLCBiIHRl eHQpOwogY3JlYXRlIHZpZXcgdXZfaW9jdV92aWV3IGFzCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAppbmRleCAzYmNhZTA0YTI2OS4u NWFkYmNmNWNiNjQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0 aG91dF9vdmVybGFwcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRo b3V0X292ZXJsYXBzLm91dApAQCAtODg5LDYgKzg4OSwzNiBAQCBJTlNFUlQgSU5UTyB0ZW1w b3JhbDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQogICAoJ1sxLDIpJywgZGF0ZXJhbmdl KCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s3LDgpJywgJ2ZvbycpLAogICAoJ1sy LDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s5LDEwKScs ICdiYXInKQogOworVVBEQVRFIHRlbXBvcmFsMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDAwLTA1LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAgU0VUIG5hbWUgPSBuYW1lIHx8 ICcxJzsKK1VQREFURSB0ZW1wb3JhbDMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMC0wNC0wMScgVE8gJzIwMDAtMDYtMDEnCisgIFNFVCBuYW1lID0gbmFtZSB8fCAnMicK KyAgV0hFUkUgaWQgPSAnWzIsMyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbDMgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCAg aWQyICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tCisgWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTA1LTAxKSB8IFs3LDgp ICB8IGZvbworIFsxLDIpIHwgWzIwMDAtMDUtMDEsMjAwMC0wNy0wMSkgfCBbNyw4KSAgfCBm b28xCisgWzEsMikgfCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSB8IFs3LDgpICB8IGZvbwor IFsyLDMpIHwgWzIwMDAtMDEtMDEsMjAwMC0wNC0wMSkgfCBbOSwxMCkgfCBiYXIKKyBbMiwz KSB8IFsyMDAwLTA0LTAxLDIwMDAtMDUtMDEpIHwgWzksMTApIHwgYmFyMgorIFsyLDMpIHwg WzIwMDAtMDUtMDEsMjAwMC0wNi0wMSkgfCBbOSwxMCkgfCBiYXIxMgorIFsyLDMpIHwgWzIw MDAtMDYtMDEsMjAwMC0wNy0wMSkgfCBbOSwxMCkgfCBiYXIxCisgWzIsMykgfCBbMjAwMC0w Ny0wMSwyMDEwLTAxLTAxKSB8IFs5LDEwKSB8IGJhcgorKDggcm93cykKKworLS0gY29uZmxp Y3RpbmcgaWQgb25seToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZhbGlkX2F0LCBp ZDIsIG5hbWUpCisgIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDA1LTAxLTAx JywgJzIwMDYtMDEtMDEnKSwgJ1s4LDkpJywgJ2ZvbzMnKTsKK0VSUk9SOiAgY29uZmxpY3Rp bmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbDNf cGsiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAwNS0wMS0wMSwy MDA2LTAxLTAxKSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkpLgorLS0gY29uZmxpY3RpbmcgaWQy IG9ubHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1l KQorICBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDEw LTAxLTAxJyksICdbOSwxMCknLCAnYmFyMycpOworRVJST1I6ICBjb25mbGljdGluZyBrZXkg dmFsdWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsM191bmlxIgor REVUQUlMOiAgS2V5IChpZDIsIHZhbGlkX2F0KT0oWzksMTApLCBbMjAwNS0wMS0wMSwyMDEw LTAxLTAxKSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZDIsIHZhbGlkX2F0KT0o WzksMTApLCBbMjAwMC0wNy0wMSwyMDEwLTAxLTAxKSkuCiBEUk9QIFRBQkxFIHRlbXBvcmFs MzsKIC0tCiAtLSB0ZXN0IGNoYW5naW5nIHRoZSBQSydzIGRlcGVuZGVuY2llcwpAQCAtOTIw LDI2ICs5NTAsNDMgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2 YWxpZF9hdCwgbmFtZSkgVkFMVUVTCiAgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAwMC0wMi0wMScpLCAnb25lJyksCiAgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIw MDAtMDItMDEnLCAnMjAwMC0wMy0wMScpLCAnb25lJyksCiAgICgnWzMsNCknLCBkYXRlcmFu Z2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKTsKLVNFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwotICBpZCAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCi0gWzEsMikgfCBbMjAwMC0wMS0wMSwyMDAwLTAy LTAxKSB8IG9uZQotIFsxLDIpIHwgWzIwMDAtMDItMDEsMjAwMC0wMy0wMSkgfCBvbmUKLSBb Myw0KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKK1NFTEVDVCB0YWJsZW9p ZDo6cmVnY2xhc3MsICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgdGFibGVvaWQgfCAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgbmFtZSAgCistLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tCisgdHAxICAgICAgfCBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEp IHwgb25lCisgdHAxICAgICAgfCBbMSwyKSB8IFsyMDAwLTAyLTAxLDIwMDAtMDMtMDEpIHwg b25lCisgdHAyICAgICAgfCBbMyw0KSB8IFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhy ZWUKICgzIHJvd3MpCiAKLVNFTEVDVCAqIEZST00gdHAxIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKLSAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAKLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0KLSBbMSwyKSB8IFsyMDAwLTAxLTAx LDIwMDAtMDItMDEpIHwgb25lCi0gWzEsMikgfCBbMjAwMC0wMi0wMSwyMDAwLTAzLTAxKSB8 IG9uZQotKDIgcm93cykKLQotU0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlk X2F0OwotICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tCi0gWzMsNCkgfCBbMjAwMC0w MS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCi0oMSByb3cpCitVUERBVEUgIHRlbXBvcmFsX3Bh cnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUn IFRPICcyMDAwLTAyLTE1JworICBTRVQgbmFtZSA9ICdvbmUyJworICBXSEVSRSBpZCA9ICdb MSwyKSc7CitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMDAtMDItMjAnIFRPICcyMDAwLTAyLTI1JworICBTRVQgaWQg PSAnWzQsNSknCisgIFdIRVJFIG5hbWUgPSAnb25lJzsKK1VQREFURSAgdGVtcG9yYWxfcGFy dGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0wMScg VE8gJzIwMDMtMDEtMDEnCisgIFNFVCBpZCA9ICdbMiwzKScKKyAgV0hFUkUgbmFtZSA9ICd0 aHJlZSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgV0hF UkUgaWQgPSAnWzMsNCknOworU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyB0YWJsZW9pZCB8 ICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0tLS0r LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyB0cDEgICAgICB8 IFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMS0xNSkgfCBvbmUKKyB0cDEgICAgICB8IFsx LDIpIHwgWzIwMDAtMDEtMTUsMjAwMC0wMi0wMSkgfCBvbmUyCisgdHAxICAgICAgfCBbMSwy KSB8IFsyMDAwLTAyLTAxLDIwMDAtMDItMTUpIHwgb25lMgorIHRwMSAgICAgIHwgWzEsMikg fCBbMjAwMC0wMi0xNSwyMDAwLTAyLTIwKSB8IG9uZQorIHRwMSAgICAgIHwgWzEsMikgfCBb MjAwMC0wMi0yNSwyMDAwLTAzLTAxKSB8IG9uZQorIHRwMSAgICAgIHwgWzIsMykgfCBbMjAw Mi0wMS0wMSwyMDAzLTAxLTAxKSB8IHRocmVlCisgdHAyICAgICAgfCBbMyw0KSB8IFsyMDAw LTAxLTAxLDIwMDAtMDEtMTUpIHwgdGhyZWUKKyB0cDIgICAgICB8IFszLDQpIHwgWzIwMDAt MDItMTUsMjAwMi0wMS0wMSkgfCB0aHJlZQorIHRwMiAgICAgIHwgWzMsNCkgfCBbMjAwMy0w MS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisgdHAyICAgICAgfCBbNCw1KSB8IFsyMDAwLTAy LTIwLDIwMDAtMDItMjUpIHwgb25lCisoMTAgcm93cykKIAogRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZDsKIC0tIHRlbXBvcmFsIFVOSVFVRToKQEAgLTk1NSwyNiArMTAwMiw0 MyBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoaWQsIHZhbGlkX2F0LCBu YW1lKSBWQUxVRVMKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAw LTAyLTAxJyksICdvbmUnKSwKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScs ICcyMDAwLTAzLTAxJyksICdvbmUnKSwKICAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAwMC0w MS0wMScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpOwotU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Ci0gIGlkICAgfCAgICAgICAg dmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAotLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0KLSBbMSwyKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDItMDEpIHwgb25l Ci0gWzEsMikgfCBbMjAwMC0wMi0wMSwyMDAwLTAzLTAxKSB8IG9uZQotIFszLDQpIHwgWzIw MDAtMDEtMDEsMjAxMC0wMS0wMSkgfCB0aHJlZQorU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFz cywgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyB0YWJsZW9pZCB8ICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAK Ky0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0K KyB0cDEgICAgICB8IFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMi0wMSkgfCBvbmUKKyB0 cDEgICAgICB8IFsxLDIpIHwgWzIwMDAtMDItMDEsMjAwMC0wMy0wMSkgfCBvbmUKKyB0cDIg ICAgICB8IFszLDQpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0wMSkgfCB0aHJlZQogKDMgcm93 cykKIAotU0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwotICBpZCAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lIAotLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLQotIFsxLDIpIHwgWzIwMDAtMDEtMDEsMjAwMC0wMi0w MSkgfCBvbmUKLSBbMSwyKSB8IFsyMDAwLTAyLTAxLDIwMDAtMDMtMDEpIHwgb25lCi0oMiBy b3dzKQotCi1TRUxFQ1QgKiBGUk9NIHRwMiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Ci0gIGlk ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAotLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KLSBbMyw0KSB8IFsyMDAwLTAxLTAxLDIwMTAt MDEtMDEpIHwgdGhyZWUKLSgxIHJvdykKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQK KyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAt MDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKK1VQ REFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNFVCBpZCA9ICdbNCw1KScK KyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAor ICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAnMjAwMy0w MS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1lID0gJ3RocmVlJzsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVSRSBpZCA9ICdb Myw0KSc7CitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworIHRhYmxlb2lkIHwgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAorLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIHRwMSAgICAgIHwgWzEsMikgfCBb MjAwMC0wMS0wMSwyMDAwLTAxLTE1KSB8IG9uZQorIHRwMSAgICAgIHwgWzEsMikgfCBbMjAw MC0wMS0xNSwyMDAwLTAyLTAxKSB8IG9uZTIKKyB0cDEgICAgICB8IFsxLDIpIHwgWzIwMDAt MDItMDEsMjAwMC0wMi0xNSkgfCBvbmUyCisgdHAxICAgICAgfCBbMSwyKSB8IFsyMDAwLTAy LTE1LDIwMDAtMDItMjApIHwgb25lCisgdHAxICAgICAgfCBbMSwyKSB8IFsyMDAwLTAyLTI1 LDIwMDAtMDMtMDEpIHwgb25lCisgdHAxICAgICAgfCBbMiwzKSB8IFsyMDAyLTAxLTAxLDIw MDMtMDEtMDEpIHwgdGhyZWUKKyB0cDIgICAgICB8IFszLDQpIHwgWzIwMDAtMDEtMDEsMjAw MC0wMS0xNSkgfCB0aHJlZQorIHRwMiAgICAgIHwgWzMsNCkgfCBbMjAwMC0wMi0xNSwyMDAy LTAxLTAxKSB8IHRocmVlCisgdHAyICAgICAgfCBbMyw0KSB8IFsyMDAzLTAxLTAxLDIwMTAt MDEtMDEpIHwgdGhyZWUKKyB0cDIgICAgICB8IFs0LDUpIHwgWzIwMDAtMDItMjAsMjAwMC0w Mi0yNSkgfCBvbmUKKygxMCByb3dzKQogCiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkOwogLS0gQUxURVIgVEFCTEUgUkVQTElDQSBJREVOVElUWQpAQCAtMTc1NSw2ICsxODE5 LDMzIEBAIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFs X3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5n MnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3Rp bGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0tIGNo YW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxf cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAx OC0wMS0wMycKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNo YW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitT RVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBv ciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFs X2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAx OC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0 ZW1wb3JhbF9ma19ybmcycm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJF IGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlk ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTYtMDItMDEsMjAxNi0wMy0wMSkKKyBbNSw2KSB8 IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDIpCisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAy LTAxKQorIFs3LDgpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0wMykKKyg0IHJvd3MpCisKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4LTAxLTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygx IHJvdykKKwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRo ZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0xODQw LDYgKzE5MzEsMzQgQEAgVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknCiBX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKTsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAi dGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5nIG9mIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIw MTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9y YWxfZmtfcm5nMnJuZyIuCistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBv a2F5OgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFU RSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUs NiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmci IHZpb2xhdGVzIFJFU1RSSUNUIHNldHRpbmcgb2YgZm9yZWlnbiBrZXkgY29uc3RyYWludCAi dGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmci CitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4 LTAyLTAxKSkgaXMgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5n Ii4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAn WzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYp IHwgWzIwMTYtMDItMDEsMjAxNi0wMy0wMSkKKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTgt MDEtMDIpCisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQorIFs3LDgpIHwgWzIw MTgtMDEtMDIsMjAxOC0wMS0wMykKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8 IFsyMDE4LTAxLTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKyBbMyw0KSB8IFsyMDE4LTAxLTE1 LDIwMTgtMDItMDEpIHwgWzIsMykKKygyIHJvd3MpCisKIC0tIHRoZW4gZGVsZXRlIHRoZSBv YmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CiBE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIFVQ REFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAx JywgJzIwMTYtMDItMDEnKQpAQCAtMTg3Niw5ICsxOTk1LDM1IEBAIEJFR0lOOwogQ09NTUlU OwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVy ZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCistLSBkZWxldGluZyBh biB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0w MS0wMycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5n IFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wMikKKyBb NSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisoMiByb3dzKQorCitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisK Ky0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxf cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAx OC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5n MnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAz LDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X2ZrX3JuZzJybmciLgogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQg YW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxf cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gY2xlYW4gdXA6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9ICdbNSw2KSc7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2KScpOwogLS0KIC0tIHRlc3QgRksg cmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCiAtLQpAQCAtMTkwNywxMSArMjA1MiwzNyBA QCBCRUdJTjsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxf cm5nIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5nIG9mIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcy cm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSkpIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5n MnJuZyIuCiBST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlz IG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUs NiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScs ICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzUs NikgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgtMDEtMDMsMjAx OC0wMi0wMSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4LTAxLTA1 LDIwMTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKworLS0gZGVsZXRpbmcganVzdCBhIHBh cnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAn WzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9y bmciIHZpb2xhdGVzIFJFU1RSSUNUIHNldHRpbmcgb2YgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJy bmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywy MDE4LTAyLTAxKSkgaXMgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcy cm5nIi4KIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUg c2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKTsKKy0tIGNsZWFuIHVwOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIC0tCi0tLSB0ZXN0IE9OIFVQREFURS9E RUxFVEUgb3B0aW9ucworLS0gcm5nMnJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9u cwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIElOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwpAQCAtMjMwNyw2ICsyNDc4LDIy IEBAIFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9u IHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg e1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRh YmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGNoYW5naW5nIGFuIHVucmVm ZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAy JywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2 KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9t bHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dI RVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAi dGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0w MS0wMSwyMDE4LTAxLTAyKSxbMjAxOC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJl ZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSB0 aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBk YXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdb Nyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIC0tCiAtLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAogLS0KQEAgLTIzODgsNiArMjU3NSwy MiBAQCBVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5nIG9m IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgogREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgcmVm ZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGNo YW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxf bWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitX SEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBp ZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRl bGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0 aW5nIG9mIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDIpLFsy MDE4LTAxLTAzLDIwMTgtMDItMDEpfSkgaXMgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rpbmcg RksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJykpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5P IEFDVElPTgogLS0KQEAgLTI0MjAsNiArMjYyMywxOSBAQCBCRUdJTjsKIENPTU1JVDsKIEVS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9s YXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKIERFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyIuCistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMnKSkpCitXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpKQorV0hF UkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAx LTAxLDIwMTgtMDEtMDIpLFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVm ZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIHRo ZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxl dGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgUkVTVFJJQ1QKIC0tCkBAIC0yNDQ4LDYgKzI2NjQsMTkgQEAgQkVHSU47CiBF UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlv bGF0ZXMgUkVTVFJJQ1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKX0pIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyIuCiBST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJl bmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDInLCAnMjAxOC0wMS0wMycpKSkKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5n IGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTA1JywgJzIwMTgtMDEtMTAnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVw ZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgUkVT VFJJQ1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4 LTAxLTAyKSxbMjAxOC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHJlZmVyZW5jZWQgZnJvbSB0 YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSB0aGVuIGRlbGV0ZSB0aGUg b2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgor REVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0 KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJykpOwogLS0KIC0tIEZLIGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVzOiBy YW5nZXMKIC0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCAxZWRkOWU0 NWViYi4uMTFmMjg0M2ZkMDUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpA QCAtNDgsNyArNDgsNyBAQCB0ZXN0OiBjcmVhdGVfaW5kZXggY3JlYXRlX2luZGV4X3NwZ2lz dCBjcmVhdGVfdmlldyBpbmRleF9pbmNsdWRpbmcgaW5kZXhfaW5jbHVkaQogIyAtLS0tLS0t LS0tCiAjIEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMKICMgLS0tLS0tLS0tLQot dGVzdDogY3JlYXRlX2FnZ3JlZ2F0ZSBjcmVhdGVfZnVuY3Rpb25fc3FsIGNyZWF0ZV9jYXN0 IGNvbnN0cmFpbnRzIHRyaWdnZXJzIHNlbGVjdCBpbmhlcml0IHR5cGVkX3RhYmxlIHZhY3V1 bSBkcm9wX2lmX2V4aXN0cyB1cGRhdGFibGVfdmlld3Mgcm9sZWF0dHJpYnV0ZXMgY3JlYXRl X2FtIGhhc2hfZnVuYyBlcnJvcnMgaW5maW5pdGVfcmVjdXJzZQordGVzdDogY3JlYXRlX2Fn Z3JlZ2F0ZSBjcmVhdGVfZnVuY3Rpb25fc3FsIGNyZWF0ZV9jYXN0IGNvbnN0cmFpbnRzIHRy aWdnZXJzIHNlbGVjdCBpbmhlcml0IHR5cGVkX3RhYmxlIHZhY3V1bSBkcm9wX2lmX2V4aXN0 cyB1cGRhdGFibGVfdmlld3Mgcm9sZWF0dHJpYnV0ZXMgY3JlYXRlX2FtIGhhc2hfZnVuYyBl cnJvcnMgaW5maW5pdGVfcmVjdXJzZSBmb3JfcG9ydGlvbl9vZgogCiAjIC0tLS0tLS0tLS0K ICMgc2FuaXR5X2NoZWNrIGRvZXMgYSB2YWN1dW0sIGFmZmVjdGluZyB0aGUgc29ydCBvcmRl ciBvZiBTRUxFQ1QgKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3Bv cnRpb25fb2Yuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lNjZhNTVmZTAxNAot LS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29m LnNxbApAQCAtMCwwICsxLDU5NyBAQAorLS0gVGVzdHMgZm9yIFVQREFURS9ERUxFVEUgRk9S IFBPUlRJT04gT0YKKworU0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKKworLS0gV29ya3Mg b24gbm9uLVBLIGNvbHVtbnMKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCBO T1QgTlVMTAorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QgVkFMVUVTCiso J1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMjAtMDEtMDEpJywgJ29uZScpOworCitVUERBVEUg Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0xNScgVE8gJzIwMTktMDEtMDEnCitTRVQgbmFtZSA9ICdvbmVeMSc7CisKK0RFTEVU RSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMTUnIFRPICcyMDE5LTAxLTIwJzsKKworLS0gV2l0aCBhIHRhYmxlIGFs aWFzIHdpdGggQVMKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDItMDEnIFRPICcyMDE5LTAyLTAzJyBBUyB0CitT RVQgbmFtZSA9ICdvbmVeMic7CisKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDItMDMnIFRPICcyMDE5LTAy LTA0JyBBUyB0OworCistLSBXaXRoIGEgdGFibGUgYWxpYXMgd2l0aG91dCBBUworCitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOS0wMi0wNCcgVE8gJzIwMTktMDItMDUnIHQKK1NFVCBuYW1lID0gJ29uZV4zJzsKKwor REVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMi0wNScgVE8gJzIwMTktMDItMDYnIHQ7CisKKy0tIFVQREFURSB3 aXRoIEZST00KKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDMtMDEnIHRvICcyMDE5LTAzLTAyJworU0VUIG5hbWUg PSAnb25lXjQnCitGUk9NIChTRUxFQ1QgJ1sxLDIpJzo6aW50NHJhbmdlKSBBUyB0MihpZCkK K1dIRVJFIGZvcl9wb3J0aW9uX29mX3Rlc3QuaWQgPSB0Mi5pZDsKKworLS0gREVMRVRFIHdp dGggVVNJTkcKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMy0wMicgVE8gJzIwMTktMDMtMDMnCitVU0lO RyAoU0VMRUNUICdbMSwyKSc6OmludDRyYW5nZSkgQVMgdDIoaWQpCitXSEVSRSBmb3JfcG9y dGlvbl9vZl90ZXN0LmlkID0gdDIuaWQ7CisKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tIFdvcmtzIG9uIG1vcmUgdGhh biBvbmUgcmFuZ2UKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBU QUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZDFf YXQgZGF0ZXJhbmdlLAorICB2YWxpZDJfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRleHQgTk9U IE5VTEwKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVFUworKCdb MSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKScsICdbMjAxNS0wMS0wMSwyMDI1LTAx LTAxKScsICdvbmUnKTsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkMV9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyBOVUxMCitTRVQgbmFtZSA9 ICdmb28nOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlk LCB2YWxpZDFfYXQsIHZhbGlkMl9hdDsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyBOVUxMCitT RVQgbmFtZSA9ICdiYXInOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9S REVSIEJZIGlkLCB2YWxpZDFfYXQsIHZhbGlkMl9hdDsKKworREVMRVRFIEZST00gZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWQxX2F0IEZST00gJzIwMTgtMDEt MjAnIFRPIE5VTEw7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIg QlkgaWQsIHZhbGlkMV9hdCwgdmFsaWQyX2F0OworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlv bl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDJfYXQgRlJPTSAnMjAxOC0wMS0yMCcg VE8gTlVMTDsKK1NFTEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBp ZCwgdmFsaWQxX2F0LCB2YWxpZDJfYXQ7CisKKy0tIFRlc3Qgd2l0aCBOVUxMcyBpbiB0aGUg c2NhbGFyL3JhbmdlIGtleSBjb2x1bW5zLgorLS0gVGhpcyB3b24ndCBoYXBwZW4gaWYgdGhl cmUgaXMgYSBQUklNQVJZIEtFWSBvciBVTklRVUUgY29uc3RyYWludAorLS0gYnV0IEZPUiBQ T1JUSU9OIE9GIHNob3VsZG4ndCByZXF1aXJlIHRoYXQuCitEUk9QIFRBQkxFIGZvcl9wb3J0 aW9uX29mX3Rlc3Q7CitDUkVBVEUgVU5MT0dHRUQgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVz dCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBuYW1lIHRl eHQKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVFUworICAoJ1sx LDIpJywgTlVMTCwgJzEgbnVsbCcpLAorICAoJ1sxLDIpJywgJygsKScsICcxIHVuYm91bmRl ZCcpLAorICAoJ1sxLDIpJywgJ2VtcHR5JywgJzEgZW1wdHknKSwKKyAgKE5VTEwsIE5VTEws IE5VTEwpLAorICAoTlVMTCwgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTktMDEtMDEn KSwgJ251bGwga2V5Jyk7CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorICBTRVQgbmFtZSA9ICdOVUxM IHRvIE5VTEwnOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JF QVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5V TEwsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBO VUxMLAorICBDT05TVFJBSU5UIGZvcl9wb3J0aW9uX29mX3BrIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlv bl9vZl90ZXN0CitWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgtMDEtMDIsMjAxOC0wMi0wMykn LCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAyLTAzLDIwMTgtMDMtMDMpJywgJ29uZScp LAorKCdbMSwyKScsICdbMjAxOC0wMy0wMywyMDE4LTA0LTA0KScsICdvbmUnKSwKKygnWzIs MyknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSknLCAndHdvJyksCisoJ1szLDQpJywgJ1sy MDE4LTAxLTAxLCknLCAndGhyZWUnKSwKKygnWzQsNSknLCAnKCwyMDE4LTA0LTAxKScsICdm b3VyJyksCisoJ1s1LDYpJywgJygsKScsICdmaXZlJykKKzsKKworLS0KKy0tIFVQREFURSB0 ZXN0cworLS0KKworLS0gU2V0dGluZyB3aXRoIGEgbWlzc2luZyBjb2x1bW4gZmFpbHMKK1VQ REFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiBpbnZhbGlkX2F0IEZS T00gJzIwMTgtMDYtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ2ZvbycKK1dIRVJFIGlkID0g J1s1LDYpJzsKKworLS0gU2V0dGluZyB0aGUgcmFuZ2UgZmFpbHMKK1VQREFURSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAx JyBUTyBOVUxMCitTRVQgdmFsaWRfYXQgPSAnWzE5OTAtMDEtMDEsMTk5OS0wMS0wMSknCitX SEVSRSBpZCA9ICdbNSw2KSc7CisKKy0tIFRoZSB3cm9uZyB0eXBlIGZhaWxzCitVUERBVEUg Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAxIFRP IDQKK1NFVCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFNldHRp bmcgd2l0aCB0aW1lc3RhbXBzIHJldmVyc2VkIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8g JzIwMTgtMDEtMDEnCitTRVQgbmFtZSA9ICd0aHJlZV4xJworV0hFUkUgaWQgPSAnWzMsNCkn OworCistLSBTZXR0aW5nIHdpdGggYSBzdWJxdWVyeSBmYWlscworVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gKFNFTEVDVCAnMjAx OC0wMS0wMScpIFRPICcyMDE4LTA2LTAxJworU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJFIGlk ID0gJ1szLDQpJzsKKworLS0gU2V0dGluZyB3aXRoIGEgY29sdW1uIGZhaWxzCitVUERBVEUg Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBsb3dl cih2YWxpZF9hdCkgVE8gTlVMTAorU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJFIGlkID0gJ1sz LDQpJzsKKworLS0gU2V0dGluZyB3aXRoIHRpbWVzdGFtcHMgZXF1YWwgZG9lcyBub3RoaW5n CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wNC0wMScgVE8gJzIwMTgtMDQtMDEnCitTRVQgbmFtZSA9ICd0aHJlZV4w JworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBVcGRhdGluZyBhIGZpbml0ZS9vcGVuIHBv cnRpb24gd2l0aCBhIGZpbml0ZS9vcGVuIHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5V TEwKK1NFVCBuYW1lID0gJ3RocmVlXjEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFVw ZGF0aW5nIGEgZmluaXRlL29wZW4gcG9ydGlvbiB3aXRoIGFuIG9wZW4vZmluaXRlIHRhcmdl dAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gTlVMTCBUTyAnMjAxOC0wMy0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjInCitXSEVS RSBpZCA9ICdbMyw0KSc7CisKKy0tIFVwZGF0aW5nIGFuIG9wZW4vZmluaXRlIHBvcnRpb24g d2l0aCBhbiBvcGVuL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0 CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDItMDEnCitT RVQgbmFtZSA9ICdmb3VyXjEnCitXSEVSRSBpZCA9ICdbNCw1KSc7CisKKy0tIFVwZGF0aW5n IGFuIG9wZW4vZmluaXRlIHBvcnRpb24gd2l0aCBhIGZpbml0ZS9vcGVuIHRhcmdldAorVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTctMDEtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ2ZvdXJeMicKK1dIRVJFIGlkID0g J1s0LDUpJzsKKworLS0gVXBkYXRpbmcgYSBmaW5pdGUvZmluaXRlIHBvcnRpb24gd2l0aCBh biBleGFjdCBmaXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE3LTAxLTAxJyBUTyAnMjAxOC0wMi0wMScKK1NFVCBuYW1l ID0gJ2ZvdXJeMycKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKworLS0gVXBkYXRpbmcgYW4gZW5j bG9zZWQgc3BhbgorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCitTRVQgbmFtZSA9ICd0d29eMicKK1dIRVJF IGlkID0gJ1syLDMpJzsKKworLS0gVXBkYXRpbmcgYW4gb3Blbi9vcGVuIHBvcnRpb24gd2l0 aCBhIGZpbml0ZS9maW5pdGUgdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMScgVE8gJzIwMTktMDEt MDEnCitTRVQgbmFtZSA9ICdmaXZlXjEnCitXSEVSRSBpZCA9ICdbNSw2KSc7CisKKy0tIFVw ZGF0aW5nIGFuIGVuY2xvc2VkIHNwYW4gd2l0aCBzZXBhcmF0ZSBwcm90cnVkaW5nIHNwYW5z CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxNy0wMS0wMScgVE8gJzIwMjAtMDEtMDEnCitTRVQgbmFtZSA9ICdmaXZlXjIn CitXSEVSRSBpZCA9ICdbNSw2KSc7CisKKy0tIFVwZGF0aW5nIG11bHRpcGxlIGVuY2xvc2Vk IHNwYW5zCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwKK1NFVCBuYW1lID0gJ29uZV4yJworV0hFUkUgaWQg PSAnWzEsMiknOworCistLSBXaXRoIGEgZGlyZWN0IHRhcmdldAorVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlcmFuZ2UoJzIwMTgt MDMtMTAnLCAnMjAxOC0wMy0xNycpKQorU0VUIG5hbWUgPSAnb25lXjMnCitXSEVSRSBpZCA9 ICdbMSwyKSc7CisKKy0tIFVwZGF0aW5nIHRoZSBub24tcmFuZ2UgcGFydCBvZiB0aGUgUEs6 CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMi0xNScgVE8gTlVMTAorU0VUIGlkID0gJ1s2LDcpJworV0hFUkUgaWQg PSAnWzEsMiknOworCistLSBVUERBVEUgd2l0aCBubyBXSEVSRSBjbGF1c2UKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDMw LTAxLTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9IG5hbWUgfHwgJyonOworCitTRUxFQ1QgKiBG Uk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLSBV cGRhdGluZyB3aXRoIGEgc2hpZnQvcmVkdWNlIGNvbmZsaWN0CistLSAocmVxdWlyZXMgYSB0 c3JhbmdlIGNvbHVtbikKK0NSRUFURSBVTkxPR0dFRCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90 ZXN0MiAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwKKyAgbmFtZSB0 ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdDIgKGlkLCB2YWxpZF9h dCwgbmFtZSkKKyAgVkFMVUVTICgnWzEsMiknLCAnWzIwMDAtMDEtMDEsMjAyMC0wMS0wMSkn LCAnb25lJyk7CistLSB1cGRhdGVzIFsyMDExLTAzLTAxIDAxOjAyOjAwLCAyMDEyLTAxLTAx KSAobm90ZSAyIG1pbnV0ZXMpCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gJzIwMTEtMDMtMDEnOjp0aW1lc3RhbXAgKyBJ TlRFUlZBTCAnMTowMjowMycgSE9VUiBUTyBNSU5VVEUKKyAgVE8gJzIwMTItMDEtMDEnCitT RVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworLS0gVE8gaXMgdXNl ZCBmb3IgdGhlIGJvdW5kIGJ1dCBub3QgdGhlIElOVEVSVkFMOgorLS0gc3ludGF4IGVycm9y CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 CisgIEZST00gJzIwMTMtMDMtMDEnOjp0aW1lc3RhbXAgKyBJTlRFUlZBTCAnMTowMjowMycg SE9VUgorICBUTyAnMjAxNC0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV4yJworV0hFUkUgaWQg PSAnWzEsMiknOworCistLSBhZGRpbmcgcGFyZW5zIGZpeGVzIGl0CistLSB1cGRhdGVzIFsy MDE1LTAzLTAxIDAxOjAwOjAwLCAyMDE2LTAxLTAxKSAobm8gbWludXRlcykKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQKKyAgRlJPTSAo JzIwMTUtMDMtMDEnOjp0aW1lc3RhbXAgKyBJTlRFUlZBTCAnMTowMjowMycgSE9VUikKKyAg VE8gJzIwMTYtMDEtMDEnCitTRVQgbmFtZSA9ICdvbmVeMycKK1dIRVJFIGlkID0gJ1sxLDIp JzsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworCistLQorLS0g REVMRVRFIHRlc3RzCistLQorCistLSBEZWxldGluZyB3aXRoIGEgbWlzc2luZyBjb2x1bW4g ZmFpbHMKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IGludmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzUs NiknOworCistLSBEZWxldGluZyB3aXRoIHRpbWVzdGFtcHMgcmV2ZXJzZWQgZmFpbHMKK0RF TEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDE4LTAxLTAxJworV0hFUkUgaWQgPSAnWzMsNCkn OworCistLSBEZWxldGluZyB3aXRoIHRpbWVzdGFtcHMgZXF1YWwgZG9lcyBub3RoaW5nCitE RUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTA0LTAxJyBUTyAnMjAxOC0wNC0wMScKK1dIRVJFIGlkID0gJ1szLDQp JzsKKworLS0gRGVsZXRpbmcgd2l0aCBhIGNsb3NlZC9jbG9zZWQgdGFyZ2V0CitERUxFVEUg RlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTA2LTAxJyBUTyAnMjAyMC0wNi0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKwor LS0gRGVsZXRpbmcgd2l0aCBhIGNsb3NlZC9vcGVuIHRhcmdldAorREVMRVRFIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w NC0wMScgVE8gTlVMTAorV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBEZWxldGluZyB3aXRo IGFuIG9wZW4vY2xvc2VkIHRhcmdldAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVz dAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAyLTA4Jwor V0hFUkUgaWQgPSAnWzEsMiknOworCistLSBEZWxldGluZyB3aXRoIGFuIG9wZW4vb3BlbiB0 YXJnZXQKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNiw3KSc7CisKKy0t IERFTEVURSB3aXRoIG5vIFdIRVJFIGNsYXVzZQorREVMRVRFIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAyNS0wMS0wMScgVE8g TlVMTDsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0gVVBEQVRFIC4uLiBSRVRVUk5JTkcgcmV0dXJucyBvbmx5IHRo ZSB1cGRhdGVkIHZhbHVlcyAobm90IHRoZSBpbnNlcnRlZCBzaWRlIHZhbHVlcykKK1VQREFU RSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE4LTAyLTAxJyBUTyAnMjAxOC0wMi0xNScKK1NFVCBuYW1lID0gJ3RocmVlXjMnCitXSEVS RSBpZCA9ICdbMyw0KScKK1JFVFVSTklORyAqOworCistLSBERUxFVEUgLi4uIFJFVFVSTklO RyByZXR1cm5zIHRoZSBkZWxldGVkIHZhbHVlcyAocmVnYXJkbGVzcyBvZiBib3VuZHMpCitE RUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAyLTAyJyBUTyAnMjAxOC0wMi0wMycKK1dIRVJFIGlkID0gJ1szLDQp JworUkVUVVJOSU5HICo7CisKKy0tIHRlc3QgdGhhdCB3ZSBydW4gdHJpZ2dlcnMgb24gdGhl IFVQREFURS9ERUxFVEVkIHJvdyBhbmQgdGhlIElOU0VSVGVkIHJvd3MKKworQ1JFQVRFIEZV TkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKQorUkVUVVJOUyB0cmlnZ2VyCitBUwor JCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJSAlICUgJSBvZiAlJywgVEdfV0hFTiwgVEdf T1AsIFRHX0xFVkVMLCBORVcudmFsaWRfYXQsIE9MRC52YWxpZF9hdDsKKyAgSUYgVEdfT1Ag PSAnREVMRVRFJyBUSEVOCisgICAgUkVUVVJOIE9MRDsKKyAgRUxTRQorICAgIFJFVFVSTiBO RVc7CisgIEVORCBJRjsKK0VORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUg VFJJR0dFUiB0cmdfZm9yX3BvcnRpb25fb2ZfYmVmb3JlCisgIEJFRk9SRSBJTlNFUlQgT1Ig VVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJP VworICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFU RSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9hZnRlcgorICBBRlRFUiBJTlNFUlQgT1Ig VVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJP VworICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFU RSBUUklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9iZWZvcmVfc3RtdAorICBCRUZPUkUgSU5T RVJUIE9SIFVQREFURSBPUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1Ig RUFDSCBTVEFURU1FTlQKKyAgRVhFQ1VURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmln Z2VyKCk7CitDUkVBVEUgVFJJR0dFUiB0cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXJfc3RtdAor ICBBRlRFUiBJTlNFUlQgT1IgVVBEQVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90 ZXN0CisgIEZPUiBFQUNIIFNUQVRFTUVOVAorICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0 aW9uX29mX3RyaWdnZXIoKTsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMjEtMDEtMDEnIFRPICcyMDIyLTAxLTAxJwor U0VUIG5hbWUgPSAnZml2ZV4zJworV0hFUkUgaWQgPSAnWzUsNiknOworCitERUxFVEUgRlJP TSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDIzLTAxLTAxJyBUTyAnMjAyNC0wMS0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKworU0VM RUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK K0RST1AgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlciBDQVNDQURFOworCistLSBU cmlnZ2VycyB3aXRoIGEgY3VzdG9tIHRyYW5zaXRpb24gdGFibGUgbmFtZToKKworRFJPUCBU QUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29m X3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFt ZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMgKCdb MSwyKScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScsICdvbmUnKTsKKworQ1JFQVRFIEZV TkNUSU9OIGR1bXBfdHJpZ2dlcigpCitSRVRVUk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxwZ3Nx bCBBUworJCQKK0JFR0lOCisgIElGIFRHX09QID0gJ0lOU0VSVCcgVEhFTgorICAgIFJBSVNF IE5PVElDRSAnJTogJSAlLCBORVcgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09Q LCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBP UkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJRiBUR19PUCA9ICdVUERBVEUn IFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJyU6ICUgJSwgT0xEIHRhYmxlID0gJSwgTkVXIHRh YmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19PUCwgVEdfTEVWRUwsCisgICAgICAoU0VM RUNUIHN0cmluZ19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9N IG9sZF90YWJsZSksCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cobmV3X3RhYmxlOjp0ZXh0 LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7CisgIEVMU0lGIFRHX09QID0g J0RFTEVURScgVEhFTgorICAgIFJBSVNFIE5PVElDRSAnJTogJSAlLCBPTEQgdGFibGUgPSAl JywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdn KG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFibGUpOwor ICBFTkQgSUY7CisgIFJFVFVSTiBOVUxMOworRU5EOworJCQ7CisKK0NSRUFURSBUUklHR0VS IGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWcKK0FGVEVSIElOU0VSVCBPTiBmb3Jf cG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBORVcgVEFCTEUgQVMgbmV3X3RhYmxlCitG T1IgRUFDSCBST1cgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7CisKK0NSRUFU RSBUUklHR0VSIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdAorQUZURVIg SU5TRVJUIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE5FVyBUQUJMRSBB UyBuZXdfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1w X3RyaWdnZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRh dGVfdHJpZworQUZURVIgVVBEQVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5D SU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9S IEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworCitDUkVBVEUg VFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnX3N0bXQKK0FGVEVSIFVQ REFURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMg b2xkX3RhYmxlIE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBF WEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9y X3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZworQUZURVIgREVMRVRFIE9OIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUKK0ZPUiBF QUNIIFJPVyBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRS SUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZ19zdG10CitBRlRFUiBERUxF VEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFTIG9s ZF90YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJp Z2dlcigpOworCitCRUdJTjsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE5LTAxLTAxJwor ICBTRVQgbmFtZSA9ICcyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEnOworUk9MTEJBQ0s7CisK K0JFR0lOOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEtMjEnOworUk9MTEJBQ0s7CisK K0JFR0lOOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAxLTAyJworICBTRVQgbmFtZSA9ICdOVUxM X3RvXzIwMTgtMDEtMDEnOworUk9MTEJBQ0s7CisKKy0tIFRlc3Qgd2l0aCBtdWx0aXJhbmdl cworCitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFu Z2UgTk9UIE5VTEwsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlIE5PVCBOVUxMLAorICBu YW1lIHRleHQgTk9UIE5VTEwsCisgIENPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfdGVzdDJf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lO U0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitWQUxVRVMKKygnWzEsMiknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMyknKSwgZGF0 ZXJhbmdlKCcyMDE4LTAyLTA0JywgJzIwMTgtMDMtMDMnKSksICdvbmUnKSwKKygnWzEsMikn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCkn KSksICdvbmUnKSwKKygnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wNS0wMSknKSksICd0d28nKSwKKygnWzMsNCknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBudWxsKSksICd0aHJlZScpOworOworCitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMTAnLCAnMjAxOC0wMi0xMCcpLCBk YXRlcmFuZ2UoJzIwMTgtMDMtMDUnLCAnMjAxOC0wNS0wMScpKSkKK1NFVCBuYW1lID0gJ29u ZV4xJworV0hFUkUgaWQgPSAnWzEsMiknOworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JyksIGRhdGVyYW5nZSgnMjAxOC0wMy0w MScsICcyMDE4LTAzLTE1JykpKQorV0hFUkUgaWQgPSAnWzIsMyknOworCitTRUxFQ1QgKiBG Uk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworRFJP UCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKKworLS0gVGVzdCB3aXRoIGEgY3VzdG9t IHJhbmdlIHR5cGUKKworQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlw ZT1kYXRlKTsKKworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQg aW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCBteWRhdGVyYW5nZSBOT1QgTlVMTCwK KyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICBDT05TVFJBSU5UIGZvcl9wb3J0aW9uX29mX3Rl c3QyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7 CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0MgorVkFMVUVTCisoJ1sxLDIpJywg J1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJywgJ29uZScpLAorKCdbMSwyKScsICdbMjAxOC0w Mi0wMywyMDE4LTAzLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDMtMDMsMjAx OC0wNC0wNCknLCAnb25lJyksCisoJ1syLDMpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDUtMDEp JywgJ3R3bycpLAorKCdbMyw0KScsICdbMjAxOC0wMS0wMSwpJywgJ3RocmVlJyk7Cis7CisK K1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgtMDItMTAnCitTRVQgbmFtZSA9ICdvbmVeMScK K1dIRVJFIGlkID0gJ1sxLDIpJzsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVz dDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE4 LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMyknOworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0 aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworRFJPUCBUQUJMRSBmb3Jf cG9ydGlvbl9vZl90ZXN0MjsKK0RST1AgVFlQRSBteWRhdGVyYW5nZTsKKworLS0gVGVzdCBG T1IgUE9SVElPTiBPRiBhZ2FpbnN0IGEgcGFydGl0aW9uZWQgdGFibGUuCistLSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF8xIGhhcyB0aGUgc2FtZSBhdHRudW1zIGFzIHRoZSByb290CistLSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIGhhcyB0aGUgZGlmZmVyZW50IGF0dG51bXMgZnJvbSB0 aGUgcm9vdAorLS0gdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBoYXMgdGhlIGRpZmZlcmVudCBh dHRudW1zIHRvbywgYnV0IHJldmVyc2VkCisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBu YW1lIHRleHQsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25lZF91cSBVTklRVUUg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKSBQQVJUSVRJT04gQlkgTElTVCAo aWQpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzEgUEFSVElUSU9OIE9G IHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMiwzKScp OworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgUEFSVElUSU9OIE9GIHRl bXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOwor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgUEFSVElUSU9OIE9GIHRlbXBv cmFsX3BhcnRpdGlvbmVkIEZPUiBWQUxVRVMgSU4gKCdbNSw2KScsICdbNiw3KScpOworCitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBERVRBQ0ggUEFSVElUSU9OIHRlbXBv cmFsX3BhcnRpdGlvbmVkXzM7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8z IERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkXzMgQUREIENPTFVNTiBpZCBpbnQ0cmFuZ2UgTk9UIE5VTEws IEFERCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxMOworQUxURVIgVEFCTEUg dGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRp b25lZF8zIEZPUiBWQUxVRVMgSU4gKCdbMyw0KScsICdbNCw1KScpOworCitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBERVRBQ0ggUEFSVElUSU9OIHRlbXBvcmFsX3BhcnRp dGlvbmVkXzU7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IERST1AgQ09M VU1OIGlkLCBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkXzUgQUREIENPTFVNTiB2YWxpZF9hdCBkYXRlcmFuZ2UgTk9UIE5VTEwsIEFE RCBDT0xVTU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMOworQUxURVIgVEFCTEUgdGVtcG9yYWxf cGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IEZP UiBWQUxVRVMgSU4gKCdbNSw2KScsICdbNiw3KScpOworCitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZCBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0w MScsICcyMDEwLTAxLTAxJyksICdvbmUnKSwKKyAgKCdbMyw0KScsIGRhdGVyYW5nZSgnMjAw MC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpLAorICAoJ1s1LDYpJywgZGF0ZXJh bmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ2ZpdmUnKTsKKworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKworLS0gVXBkYXRlIHdpdGhvdXQgbW92aW5n IHdpdGhpbiBwYXJ0aXRpb24gMQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcyMDAwLTA0LTAxJwor ICBTRVQgbmFtZSA9ICdvbmVeMScKKyAgV0hFUkUgaWQgPSAnWzEsMiknOworCistLSBVcGRh dGUgd2l0aG91dCBtb3Zpbmcgd2l0aGluIHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0wMScg VE8gJzIwMDAtMDQtMDEnCisgIFNFVCBuYW1lID0gJ3RocmVlXjEnCisgIFdIRVJFIGlkID0g J1szLDQpJzsKKworLS0gVXBkYXRlIHdpdGhvdXQgbW92aW5nIHdpdGhpbiBwYXJ0aXRpb24g NQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMDAtMDMtMDEnIFRPICcyMDAwLTA0LTAxJworICBTRVQgbmFtZSA9ICdmaXZl XjEnCisgIFdIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gTW92ZSBmcm9tIHBhcnRpdGlvbiAx IHRvIHBhcnRpdGlvbiAzCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNi0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNF VCBuYW1lID0gJ29uZV4yJywKKyAgICAgIGlkID0gJ1s0LDUpJworICBXSEVSRSBpZCA9ICdb MSwyKSc7CisKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gMyB0byBwYXJ0aXRpb24gMQorVVBE QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICd0aHJlZV4yJywK KyAgICAgIGlkID0gJ1syLDMpJworICBXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIE1vdmUg ZnJvbSBwYXJ0aXRpb24gNSB0byBwYXJ0aXRpb24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcy MDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICdmaXZlXjInLAorICAgICAgaWQgPSAnWzMsNCkn CisgIFdIRVJFIGlkID0gJ1s1LDYpJzsKKworLS0gVXBkYXRlIGFsbCBwYXJ0aXRpb25zIGF0 IG9uY2UgKGVhY2ggd2l0aCBsZWZ0b3ZlcnMpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF8xIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOworCitSRVNFVCBkYXRlc3R5 bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMuc3FsCmluZGV4IGQ4ODZjYzA4OGM5 Li5lNzI1ZTljY2I2ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJpdmls ZWdlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwKQEAg LTc1Niw2ICs3NTYsMjQgQEAgVVBEQVRFIGVycnRzdCBTRVQgYSA9ICdhYWFhJywgYiA9IE5V TEwgV0hFUkUgYSA9ICdhYWEnOwogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3ByaXZfdXNlcjE7CiBEUk9QIFRBQkxFIGVycnRzdDsKIAorLS0gdGVzdCBjb2x1bW4tbGV2 ZWwgcHJpdmlsZWdlcyBvbiB0aGUgcmFuZ2UgdXNlZCBpbiBGT1IgUE9SVElPTiBPRgorU0VU IFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CitDUkVBVEUgVEFC TEUgdDEgKAorICBjMSBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IHRzcmFuZ2UsCisJQ09OU1RS QUlOVCB0MXBrIFBSSU1BUlkgS0VZIChjMSwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykK Kyk7CitHUkFOVCBTRUxFQ1QgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIyOworR1JBTlQg U0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK0dSQU5UIFVQREFURSAoYzEp IE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK0dSQU5UIFVQREFURSAoYzEsIHZhbGlk X2F0KSBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjM7CitTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1sy LDMpJzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIzOwor VVBEQVRFIHQxIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRP ICcyMDAxLTAxLTAxJyBTRVQgYzEgPSAnWzIsMyknOworU0VUIFNFU1NJT04gQVVUSE9SSVpB VElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CitEUk9QIFRBQkxFIHQxOworCiAtLSB0ZXN0IGNv bHVtbi1sZXZlbCBwcml2aWxlZ2VzIHdoZW4gaW52b2x2ZWQgd2l0aCBERUxFVEUKIFNFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwogQUxURVIgVEFCTEUg YXRlc3Q2IEFERCBDT0xVTU4gdGhyZWUgaW50ZWdlcjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3VwZGF0YWJsZV92aWV3cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC91cGRhdGFibGVfdmlld3Muc3FsCmluZGV4IDkzYjY5M2FlODM3Li45YmYyMzdjNzFkNCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3FsCkBAIC0xODY1 LDYgKzE4NjUsMjAgQEAgc2VsZWN0ICogZnJvbSB1dl9pb2N1X3RhYjsKIGRyb3AgdmlldyB1 dl9pb2N1X3ZpZXc7CiBkcm9wIHRhYmxlIHV2X2lvY3VfdGFiOwogCistLSBDaGVjayBVUERB VEUgRk9SIFBPUlRJT04gT0Ygd29ya3MgY29ycmVjdGx5CitjcmVhdGUgdGFibGUgdXZfZnBv X3RhYiAoaWQgaW50NHJhbmdlLCB2YWxpZF9hdCB0c3JhbmdlLCBiIGZsb2F0LAorICAgIGNv bnN0cmFpbnQgcGtfdXZfZnBvX3RhYiBwcmltYXJ5IGtleSAoaWQsIHZhbGlkX2F0IHdpdGhv dXQgb3ZlcmxhcHMpKTsKK2luc2VydCBpbnRvIHV2X2Zwb190YWIgdmFsdWVzICgnWzEsMV0n LCAnWzIwMjAtMDEtMDEsIDIwMzAtMDEtMDEpJywgMCk7CitjcmVhdGUgdmlldyB1dl9mcG9f dmlldyBhcworICAgIHNlbGVjdCBiLCBiKzEgYXMgYywgdmFsaWRfYXQsIGlkLCAnMi4wJzo6 dGV4dCBhcyB0d28gZnJvbSB1dl9mcG9fdGFiOworCitpbnNlcnQgaW50byB1dl9mcG9fdmll dyAoaWQsIHZhbGlkX2F0LCBiKSB2YWx1ZXMgKCdbMSwxXScsICdbMjAxMC0wMS0wMSwgMjAy MC0wMS0wMSknLCAxKTsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7Cit1cGRhdGUgdXZf ZnBvX3ZpZXcgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8g JzIwMjAtMDEtMDEnIHNldCBiID0gMiB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBm cm9tIHV2X2Zwb192aWV3OworZGVsZXRlIGZyb20gdXZfZnBvX3ZpZXcgZm9yIHBvcnRpb24g b2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIwMjItMDEtMDEnIHdoZXJlIGlk ID0gJ1sxLDFdJzsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7CisKIC0tIFRlc3Qgd2hv bGUtcm93IHJlZmVyZW5jZXMgdG8gdGhlIHZpZXcKIGNyZWF0ZSB0YWJsZSB1dl9pb2N1X3Rh YiAoYSBpbnQgdW5pcXVlLCBiIHRleHQpOwogY3JlYXRlIHZpZXcgdXZfaW9jdV92aWV3IGFz CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IGY3 ZGUzODcxMDkzLi4zZjI2YWYyYmNmYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0 aG91dF9vdmVybGFwcy5zcWwKQEAgLTYzMiw2ICs2MzIsMjAgQEAgSU5TRVJUIElOVE8gdGVt cG9yYWwzIChpZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKICAgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbNyw4KScsICdmb28nKSwKICAgKCdb MiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCkn LCAnYmFyJykKIDsKK1VQREFURSB0ZW1wb3JhbDMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wNS0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gbmFtZSB8 fCAnMSc7CitVUERBVEUgdGVtcG9yYWwzIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMDAtMDQtMDEnIFRPICcyMDAwLTA2LTAxJworICBTRVQgbmFtZSA9IG5hbWUgfHwgJzIn CisgIFdIRVJFIGlkID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIGNvbmZsaWN0aW5nIGlkIG9ubHk6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJyksICdbOCw5KScs ICdmb28zJyk7CistLSBjb25mbGljdGluZyBpZDIgb25seToKK0lOU0VSVCBJTlRPIHRlbXBv cmFsMyAoaWQsIHZhbGlkX2F0LCBpZDIsIG5hbWUpCisgIFZBTFVFUworICAoJ1szLDQpJywg ZGF0ZXJhbmdlKCcyMDA1LTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s5LDEwKScsICdiYXIz Jyk7CiBEUk9QIFRBQkxFIHRlbXBvcmFsMzsKIAogLS0KQEAgLTY2Nyw5ICs2ODEsMjMgQEAg SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkg VkFMVUVTCiAgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0w MScpLCAnb25lJyksCiAgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAw MC0wMy0wMScpLCAnb25lJyksCiAgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEn LCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKTsKLVNFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwotU0VMRUNUICogRlJPTSB0cDEgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OwotU0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworU0VMRUNUIHRhYmxlb2lkOjpyZWdjbGFzcywgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1VQREFURSAgdGVtcG9yYWxfcGFy dGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScg VE8gJzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlkID0gJ1sx LDIpJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNFVCBpZCA9 ICdbNCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0 aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBU TyAnMjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1lID0gJ3Ro cmVlJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVS RSBpZCA9ICdbMyw0KSc7CitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogRFJPUCBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZDsKIAogLS0gdGVtcG9yYWwgVU5JUVVFOgpAQCAtNjg1LDkg KzcxMywyMyBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZCAoaWQsIHZhbGlk X2F0LCBuYW1lKSBWQUxVRVMKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScs ICcyMDAwLTAyLTAxJyksICdvbmUnKSwKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0w Mi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKICAgKCdbMyw0KScsIGRhdGVyYW5nZSgn MjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0aHJlZScpOwotU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Ci1TRUxFQ1QgKiBG Uk9NIHRwMSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Ci1TRUxFQ1QgKiBGUk9NIHRwMiBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgdGFibGVvaWQ6OnJlZ2NsYXNzLCAqIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworVVBEQVRFICB0 ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDAwLTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgU0VUIG5hbWUgPSAnb25lMicKKyAgV0hF UkUgaWQgPSAnWzEsMiknOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAyLTIwJyBUTyAnMjAwMC0wMi0yNScK KyAgU0VUIGlkID0gJ1s0LDUpJworICBXSEVSRSBuYW1lID0gJ29uZSc7CitVUERBVEUgIHRl bXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJworICBTRVQgaWQgPSAnWzIsMyknCisgIFdIRVJF IG5hbWUgPSAndGhyZWUnOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAtMDIt MTUnCisgIFdIRVJFIGlkID0gJ1szLDQpJzsKK1NFTEVDVCB0YWJsZW9pZDo6cmVnY2xhc3Ms ICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiBE Uk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOwogCiAtLSBBTFRFUiBUQUJMRSBSRVBM SUNBIElERU5USVRZCkBAIC0xMjkxLDYgKzEzMzMsMTggQEAgQ09NTUlUOwogLS0gY2hhbmdp bmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQg PSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJl bmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9 ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0 IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsOCknCitX SEVSRSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJl Y29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAx JykKQEAgLTEzNjgsNiArMTQyMiwxOCBAQCBST0xMQkFDSzsKIC0tIGNoYW5naW5nIHRoZSBz Y2FsYXIgcGFydCBmYWlsczoKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgp JwogV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFy dCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCkn CitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoK K1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQg PSAnWzUsNiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdb NSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQs IHZhbGlkX2F0OwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5k IHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC0x NDAzLDkgKzE0NjksMjIgQEAgQkVHSU47CiAKICAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5n IFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpOwogQ09NTUlUOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVu Y2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVS RSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBp biAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw2KSc7CiAtLSB0aGVu IGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRl IHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 CistLSBjbGVhbiB1cDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg cGFyZW50X2lkID0gJ1s1LDYpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCBJTiAoJ1s1LDYpJyk7CiAKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBS RVNUUklDVApAQCAtMTQzNCwxMiArMTUxMywyNSBAQCBCRUdJTjsKICAgICBERUZFUlJBQkxF IElOSVRJQUxMWSBERUZFUlJFRDsKICAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpOwogUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQg cGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlk ID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgn WzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAx LTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKIC0tIHRoZW4gZGVs ZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3Vj Y2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sz LDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0t IGNsZWFuIHVwOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJl bnRfaWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElO ICgnWzUsNiknKTsKIAogLS0KLS0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCist LSBybmcycm5nIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAtLQogCiAtLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCkBAIC0xODA0LDYgKzE4OTYsMjAgQEAg Q09NTUlUOwogLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgogVVBEQVRFIHRl bXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSk7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5 OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAxLTAzJykpKQor U0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVz dCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7Cist LSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsg dXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9 ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNUCkBAIC0xODc4LDYgKzE5ODQs MjAgQEAgUk9MTEJBQ0s7CiAtLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CiBV UERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0 IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEt MDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFu Z2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1 LDYpJzsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUg c2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcg U0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwog CiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCkBAIC0xOTA5 LDYgKzIwMjksMTcgQEAgQkVHSU47CiAKICAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n IFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIENPTU1JVDsKKy0tIGRlbGV0 aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkKK1dIRVJFIGlkID0gJ1s1LDYp JzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9y YWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitXSEVSRSBpZCA9ICdbNSw2 KSc7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNh bWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRy bmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogCiAtLQogLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKQEAgLTE5MzgsNiArMjA2OSwxNyBAQCBC RUdJTjsKIAogICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUs NiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJykpOwogUk9MTEJBQ0s7CistLSBkZWxldGluZyBhbiB1bnJlZmVy ZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAyJywgJzIwMTgtMDEtMDMnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGlu ZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wNScsICcyMDE4LTAxLTEwJykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworLS0gdGhlbiBk ZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBz dWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0KIC0tIEZLIGJldHdlZW4gcGFydGl0aW9u ZWQgdGFibGVzOiByYW5nZXMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90 LzAzNF90ZW1wb3JhbC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzNF90ZW1wb3Jh bC5wbAppbmRleCA2YmJmNjU2NzI3OS4uYjc0NjkzY2I4OWMgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAzNF90ZW1wb3JhbC5wbAorKysgYi9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzRfdGVtcG9yYWwucGwKQEAgLTEzNyw2ICsxMzcsMTIgQEAgaXMoICRz dGRlcnIsCiAJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IHVwZGF0ZSB0YWJs ZSAidGVtcG9yYWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNh IGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcwogSElOVDogIFRvIGVuYWJsZSB1cGRh dGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxF LiksCiAJImNhbid0IFVQREFURSB0ZW1wb3JhbF9ub19rZXkgREVGQVVMVCIpOworKCRyZXN1 bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdwb3N0Z3Jl cycsCisJIlVQREFURSB0ZW1wb3JhbF9ub19rZXkgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMS0wMS0wMScgVE8gJzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJFIGlk ID0gJ1syLDMpJyIpOworaXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9S OiAgY2Fubm90IHVwZGF0ZSB0YWJsZSAidGVtcG9yYWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRv ZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcwor SElOVDogIFRvIGVuYWJsZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5U SVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0IFVQREFURSBGT1IgUE9SVElPTiBP RiB0ZW1wb3JhbF9ub19rZXkgREVGQVVMVCIpOwogCiAoJHJlc3VsdCwgJHN0ZG91dCwgJHN0 ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKIAkiREVMRVRFIEZS T00gdGVtcG9yYWxfbm9fa2V5IFdIRVJFIGlkID0gJ1szLDQpJyIpOwpAQCAtMTQ0LDYgKzE1 MCwxMiBAQCBpcyggJHN0ZGVyciwKIAlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5u b3QgZGVsZXRlIGZyb20gdGFibGUgInRlbXBvcmFsX25vX2tleSIgYmVjYXVzZSBpdCBkb2Vz IG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIGRlbGV0ZXMKIEhJ TlQ6ICBUbyBlbmFibGUgZGVsZXRpbmcgZnJvbSB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElE RU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCiAJImNhbid0IERFTEVURSB0ZW1wb3JhbF9u b19rZXkgREVGQVVMVCIpOworKCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVf cHVibGlzaGVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFsX25v X2tleSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAnMjAw My0wMS0wMScgV0hFUkUgaWQgPSAnWzIsMyknIik7CitpcyggJHN0ZGVyciwKKwlxcShwc3Fs OjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgZGVsZXRlIGZyb20gdGFibGUgInRlbXBvcmFs X25vX2tleSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBh bmQgcHVibGlzaGVzIGRlbGV0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgZGVsZXRpbmcgZnJvbSB0 aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCisJ ImNhbid0IERFTEVURSBGT1IgUE9SVElPTiBPRiB0ZW1wb3JhbF9ub19rZXkgREVGQVVMVCIp OwogCiAkbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIApAQCAt MTY1LDE2ICsxNzcsMjIgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAKICRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlVQREFURSB0ZW1wb3JhbF9w ayBTRVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKKyRub2RlX3B1Ymxpc2hlci0+ c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF9wayBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDAxLTAxLTAxJyBUTyAnMjAwMi0wMS0wMScgU0VUIGEg PSAnYycgV0hFUkUgaWQgPSAnWzIsMyknIik7CiAKICRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCiAJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIFdIRVJFIGlkID0g J1szLDQpJyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwki REVMRVRFIEZST00gdGVtcG9yYWxfcGsgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwogCiAk bm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIAogJHJlc3VsdCA9 ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BrIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOwogaXMoICRyZXN1bHQs IHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKLVsyLDMpfFsyMDAwLTAxLTAx LDIwMTAtMDEtMDEpfGIKK1syLDMpfFsyMDAwLTAxLTAxLDIwMDEtMDEtMDEpfGIKK1syLDMp fFsyMDAxLTAxLTAxLDIwMDItMDEtMDEpfGMKK1syLDMpfFsyMDAzLTAxLTAxLDIwMTAtMDEt MDEpfGIKIFs0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRlZCB0 ZW1wb3JhbF9wayBERUZBVUxUJyk7CiAKICMgcmVwbGljYXRlIHdpdGggYSB1bmlxdWUga2V5 OgpAQCAtMTkyLDYgKzIxMCwxMiBAQCBpcyggJHN0ZGVyciwKIAlxcShwc3FsOjxzdGRpbj46 MTogRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1wb3JhbF91bmlxdWUiIGJlY2F1 c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyB1 cGRhdGVzCiBISU5UOiAgVG8gZW5hYmxlIHVwZGF0aW5nIHRoZSB0YWJsZSwgc2V0IFJFUExJ Q0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKIAkiY2FuJ3QgVVBEQVRFIHRlbXBv cmFsX3VuaXF1ZSBERUZBVUxUIik7CisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAk bm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX3Vu aXF1ZSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAxLTAxLTAxJyBUTyAnMjAw Mi0wMS0wMScgU0VUIGEgPSAnYycgV0hFUkUgaWQgPSAnWzIsMyknIik7CitpcyggJHN0ZGVy ciwKKwlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0 ZW1wb3JhbF91bmlxdWUiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRl bnRpdHkgYW5kIHB1Ymxpc2hlcyB1cGRhdGVzCitISU5UOiAgVG8gZW5hYmxlIHVwZGF0aW5n IHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwK KwkiY2FuJ3QgVVBEQVRFIEZPUiBQT1JUSU9OIE9GIHRlbXBvcmFsX3VuaXF1ZSBERUZBVUxU Iik7CiAKICgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+ cHNxbCgncG9zdGdyZXMnLAogCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF91bmlxdWUgV0hFUkUg aWQgPSAnWzMsNCknIik7CkBAIC0xOTksNiArMjIzLDEyIEBAIGlzKCAkc3RkZXJyLAogCXFx KHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVt cG9yYWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50 aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcwogSElOVDogIFRvIGVuYWJsZSBkZWxldGluZyBm cm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUu KSwKIAkiY2FuJ3QgREVMRVRFIHRlbXBvcmFsX3VuaXF1ZSBERUZBVUxUIik7CisoJHJlc3Vs dCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVz JywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfdW5pcXVlIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBXSEVSRSBpZCA9ICdbMiwz KSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5v dCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfdW5pcXVlIiBiZWNhdXNlIGl0IGRvZXMg bm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcworSElO VDogIFRvIGVuYWJsZSBkZWxldGluZyBmcm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURF TlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKKwkiY2FuJ3QgREVMRVRFIEZPUiBQT1JUSU9O IE9GIHRlbXBvcmFsX3VuaXF1ZSBERUZBVUxUIik7CiAKICRub2RlX3B1Ymxpc2hlci0+d2Fp dF9mb3JfY2F0Y2h1cCgnc3ViMScpOwogCkBAIC0yODcsMTYgKzMxNywyMiBAQCAkbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgKIAogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKIAkiVVBEQVRFIHRlbXBvcmFsX25vX2tleSBTRVQgYSA9ICdiJyBXSEVSRSBp ZCA9ICdbMiwzKSciKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIlVQREFURSB0ZW1wb3JhbF9ub19rZXkgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAwMS0wMS0wMScgVE8gJzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJFIGlkID0g J1syLDMpJyIpOwogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAog CSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9ub19rZXkgV0hFUkUgaWQgPSAnWzMsNCknIik7Cisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ub19rZXkgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0w MScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwogCiAkbm9kZV9wdWJs aXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIAogJHJlc3VsdCA9ICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX25vX2tleSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKIGlzKCAkcmVzdWx0LCBxcXtb MSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhCi1bMiwzKXxbMjAwMC0wMS0wMSwyMDEw LTAxLTAxKXxiCitbMiwzKXxbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKXxiCitbMiwzKXxbMjAw MS0wMS0wMSwyMDAyLTAxLTAxKXxjCitbMiwzKXxbMjAwMy0wMS0wMSwyMDEwLTAxLTAxKXxi CiBbNCw1KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9y YWxfbm9fa2V5IEZVTEwnKTsKIAogIyByZXBsaWNhdGUgd2l0aCBhIHByaW1hcnkga2V5OgpA QCAtMzEwLDE2ICszNDYsMjIgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAKICRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlVQREFURSB0ZW1wb3Jh bF9wayBTRVQgYSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKKyRub2RlX3B1Ymxpc2hl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF9wayBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAxLTAxLTAxJyBUTyAnMjAwMi0wMS0wMScgU0VU IGEgPSAnYycgV0hFUkUgaWQgPSAnWzIsMyknIik7CiAKICRub2RlX3B1Ymxpc2hlci0+c2Fm ZV9wc3FsKCdwb3N0Z3JlcycsCiAJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3BrIFdIRVJFIGlk ID0gJ1szLDQpJyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiREVMRVRFIEZST00gdGVtcG9yYWxfcGsgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwog CiAkbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIAogJHJlc3Vs dCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX3BrIE9SREVSIEJZIGlkLCB2YWxpZF9hdCIpOwogaXMoICRyZXN1 bHQsIHFxe1sxLDIpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGEKLVsyLDMpfFsyMDAwLTAx LTAxLDIwMTAtMDEtMDEpfGIKK1syLDMpfFsyMDAwLTAxLTAxLDIwMDEtMDEtMDEpfGIKK1sy LDMpfFsyMDAxLTAxLTAxLDIwMDItMDEtMDEpfGMKK1syLDMpfFsyMDAzLTAxLTAxLDIwMTAt MDEtMDEpfGIKIFs0LDUpfFsyMDAwLTAxLTAxLDIwMTAtMDEtMDEpfGF9LCAncmVwbGljYXRl ZCB0ZW1wb3JhbF9wayBGVUxMJyk7CiAKICMgcmVwbGljYXRlIHdpdGggYSB1bmlxdWUga2V5 OgpAQCAtMzMzLDE3ICszNzUsMjMgQEAgJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCiAK ICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIlVQREFURSB0ZW1w b3JhbF91bmlxdWUgU0VUIGEgPSAnYicgV0hFUkUgaWQgPSAnWzIsMyknIik7Ciskbm9kZV9w dWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfdW5p cXVlIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDEtMDEtMDEnIFRPICcyMDAy LTAxLTAxJyBTRVQgYSA9ICdjJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKIAogJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiREVMRVRFIEZST00gdGVtcG9yYWxf dW5pcXVlIFdIRVJFIGlkID0gJ1szLDQpJyIpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00gdGVtcG9yYWxfdW5pcXVlIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAzLTAxLTAxJyBXSEVS RSBpZCA9ICdbMiwzKSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVw KCdzdWIxJyk7CiAKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bv c3RncmVzJywKIAkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF91bmlxdWUgT1JERVIgQlkgaWQs IHZhbGlkX2F0Iik7CiBpcyggJHJlc3VsdCwgcXF7WzEsMil8WzIwMDAtMDEtMDEsMjAxMC0w MS0wMSl8YQotWzIsMyl8WzIwMDAtMDEtMDEsMjAxMC0wMS0wMSl8YgotWzQsNSl8WzIwMDAt MDEtMDEsMjAxMC0wMS0wMSl8YX0sICdyZXBsaWNhdGVkIHRlbXBvcmFsX3VuaXF1ZSBGVUxM Jyk7CitbMiwzKXxbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKXxiCitbMiwzKXxbMjAwMS0wMS0w MSwyMDAyLTAxLTAxKXxjCitbMiwzKXxbMjAwMy0wMS0wMSwyMDEwLTAxLTAxKXxiCitbNCw1 KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9yYWxfdW5p cXVlIERFRkFVTFQnKTsKIAogIyBjbGVhbnVwCiAKQEAgLTQyNSwxNiArNDczLDIyIEBAICRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAogCSJVUERBVEUgdGVtcG9yYWxfcGsgU0VUIGEgPSAnYicgV0hFUkUg aWQgPSAnWzIsMyknIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LAorCSJVUERBVEUgdGVtcG9yYWxfcGsgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMS0wMS0wMScgVE8gJzIwMDItMDEtMDEnIFNFVCBhID0gJ2MnIFdIRVJFIGlkID0gJ1sy LDMpJyIpOwogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wayBXSEVSRSBpZCA9ICdbMyw0KSciKTsKKyRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkRFTEVURSBGUk9NIHRlbXBvcmFs X3BrIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEtMDEnIFRPICcyMDAz LTAxLTAxJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0 X2Zvcl9jYXRjaHVwKCdzdWIxJyk7CiAKICRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wayBPUkRF UiBCWSBpZCwgdmFsaWRfYXQiKTsKIGlzKCAkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0w MSwyMDEwLTAxLTAxKXxhCi1bMiwzKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxiCitbMiwz KXxbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKXxiCitbMiwzKXxbMjAwMS0wMS0wMSwyMDAyLTAx LTAxKXxjCitbMiwzKXxbMjAwMy0wMS0wMSwyMDEwLTAxLTAxKXxiCiBbNCw1KXxbMjAwMC0w MS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3JlcGxpY2F0ZWQgdGVtcG9yYWxfcGsgVVNJTkcgSU5E RVgnKTsKIAogIyByZXBsaWNhdGUgd2l0aCBhIHVuaXF1ZSBrZXk6CkBAIC00NDgsMTYgKzUw MiwyMiBAQCAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKIAogJG5vZGVfcHVibGlzaGVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAkiVVBEQVRFIHRlbXBvcmFsX3VuaXF1ZSBTRVQg YSA9ICdiJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsCisJIlVQREFURSB0ZW1wb3JhbF91bmlxdWUgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAwMS0wMS0wMScgVE8gJzIwMDItMDEtMDEnIFNFVCBhID0g J2MnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwogCiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAogCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF91bmlxdWUgV0hFUkUgaWQg PSAnWzMsNCknIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAor CSJERUxFVEUgRlJPTSB0ZW1wb3JhbF91bmlxdWUgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIp OwogCiAkbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjEnKTsKIAogJHJl c3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAogCSJTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQiKTsKIGlz KCAkcmVzdWx0LCBxcXtbMSwyKXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhCi1bMiwzKXxb MjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxiCitbMiwzKXxbMjAwMC0wMS0wMSwyMDAxLTAxLTAx KXxiCitbMiwzKXxbMjAwMS0wMS0wMSwyMDAyLTAxLTAxKXxjCitbMiwzKXxbMjAwMy0wMS0w MSwyMDEwLTAxLTAxKXxiCiBbNCw1KXxbMjAwMC0wMS0wMSwyMDEwLTAxLTAxKXxhfSwgJ3Jl cGxpY2F0ZWQgdGVtcG9yYWxfdW5pcXVlIFVTSU5HIElOREVYJyk7CiAKICMgY2xlYW51cApA QCAtNTQzLDYgKzYwMywxMiBAQCBpcyggJHN0ZGVyciwKIAlxcShwc3FsOjxzdGRpbj46MTog RVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1wb3JhbF9ub19rZXkiIGJlY2F1c2Ug aXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyB1cGRh dGVzCiBISU5UOiAgVG8gZW5hYmxlIHVwZGF0aW5nIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0Eg SURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKIAkiY2FuJ3QgVVBEQVRFIHRlbXBvcmFs X25vX2tleSBOT1RISU5HIik7CisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9k ZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX25vX2tl eSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAxLTAxLTAxJyBUTyAnMjAwMi0w MS0wMScgU0VUIGEgPSAnYycgV0hFUkUgaWQgPSAnWzIsMyknIik7CitpcyggJHN0ZGVyciwK KwlxcShwc3FsOjxzdGRpbj46MTogRVJST1I6ICBjYW5ub3QgdXBkYXRlIHRhYmxlICJ0ZW1w b3JhbF9ub19rZXkiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRp dHkgYW5kIHB1Ymxpc2hlcyB1cGRhdGVzCitISU5UOiAgVG8gZW5hYmxlIHVwZGF0aW5nIHRo ZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKKwki Y2FuJ3QgVVBEQVRFIHRlbXBvcmFsX25vX2tleSBOT1RISU5HIik7CiAKICgkcmVzdWx0LCAk c3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAog CSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9ub19rZXkgV0hFUkUgaWQgPSAnWzMsNCknIik7CkBA IC01NTAsNiArNjE2LDEyIEBAIGlzKCAkc3RkZXJyLAogCXFxKHBzcWw6PHN0ZGluPjoxOiBF UlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJsZSAidGVtcG9yYWxfbm9fa2V5IiBiZWNh dXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMg ZGVsZXRlcwogSElOVDogIFRvIGVuYWJsZSBkZWxldGluZyBmcm9tIHRoZSB0YWJsZSwgc2V0 IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIgVEFCTEUuKSwKIAkiY2FuJ3QgREVMRVRF IHRlbXBvcmFsX25vX2tleSBOT1RISU5HIik7CisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVy cikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywKKwkiREVMRVRFIEZST00g dGVtcG9yYWxfbm9fa2V5IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDItMDEt MDEnIFRPICcyMDAzLTAxLTAxJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJy LAorCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCBkZWxldGUgZnJvbSB0YWJs ZSAidGVtcG9yYWxfbm9fa2V5IiBiZWNhdXNlIGl0IGRvZXMgbm90IGhhdmUgYSByZXBsaWNh IGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgZGVsZXRlcworSElOVDogIFRvIGVuYWJsZSBkZWxl dGluZyBmcm9tIHRoZSB0YWJsZSwgc2V0IFJFUExJQ0EgSURFTlRJVFkgdXNpbmcgQUxURVIg VEFCTEUuKSwKKwkiY2FuJ3QgREVMRVRFIHRlbXBvcmFsX25vX2tleSBOT1RISU5HIik7CiAK ICRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOwogCkBAIC01NzUs NiArNjQ3LDEyIEBAIGlzKCAkc3RkZXJyLAogCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJPUjog IGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX3BrIiBiZWNhdXNlIGl0IGRvZXMgbm90 IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRlcwogSElOVDog IFRvIGVuYWJsZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVz aW5nIEFMVEVSIFRBQkxFLiksCiAJImNhbid0IFVQREFURSB0ZW1wb3JhbF9wayBOT1RISU5H Iik7CisoJHJlc3VsdCwgJHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBz cWwoJ3Bvc3RncmVzJywKKwkiVVBEQVRFIHRlbXBvcmFsX3BrIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMDEtMDEtMDEnIFRPICcyMDAyLTAxLTAxJyBTRVQgYSA9ICdjJyBX SEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFxKHBzcWw6PHN0ZGluPjox OiBFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX3BrIiBiZWNhdXNlIGl0 IGRvZXMgbm90IGhhdmUgYSByZXBsaWNhIGlkZW50aXR5IGFuZCBwdWJsaXNoZXMgdXBkYXRl cworSElOVDogIFRvIGVuYWJsZSB1cGRhdGluZyB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElE RU5USVRZIHVzaW5nIEFMVEVSIFRBQkxFLiksCisJImNhbid0IFVQREFURSB0ZW1wb3JhbF9w ayBOT1RISU5HIik7CiAKICgkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1 Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAogCSJERUxFVEUgRlJPTSB0ZW1wb3JhbF9wayBX SEVSRSBpZCA9ICdbMyw0KSciKTsKQEAgLTU4Miw2ICs2NjAsMTIgQEAgaXMoICRzdGRlcnIs CiAJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9tIHRhYmxl ICJ0ZW1wb3JhbF9wayIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVu dGl0eSBhbmQgcHVibGlzaGVzIGRlbGV0ZXMKIEhJTlQ6ICBUbyBlbmFibGUgZGVsZXRpbmcg ZnJvbSB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5nIEFMVEVSIFRBQkxF LiksCiAJImNhbid0IERFTEVURSB0ZW1wb3JhbF9wayBOT1RISU5HIik7CisoJHJlc3VsdCwg JHN0ZG91dCwgJHN0ZGVycikgPSAkbm9kZV9wdWJsaXNoZXItPnBzcWwoJ3Bvc3RncmVzJywK KwkiREVMRVRFIEZST00gdGVtcG9yYWxfcGsgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwor aXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0 ZSBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9wayIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEg cmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIGRlbGV0ZXMKK0hJTlQ6ICBUbyBlbmFi bGUgZGVsZXRpbmcgZnJvbSB0aGUgdGFibGUsIHNldCBSRVBMSUNBIElERU5USVRZIHVzaW5n IEFMVEVSIFRBQkxFLiksCisJImNhbid0IERFTEVURSB0ZW1wb3JhbF9wayBOT1RISU5HIik7 CiAKICRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgnc3ViMScpOwogCkBAIC02 MDcsNiArNjkxLDEyIEBAIGlzKCAkc3RkZXJyLAogCXFxKHBzcWw6PHN0ZGluPjoxOiBFUlJP UjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFsX3VuaXF1ZSIgYmVjYXVzZSBpdCBk b2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBhbmQgcHVibGlzaGVzIHVwZGF0ZXMK IEhJTlQ6ICBUbyBlbmFibGUgdXBkYXRpbmcgdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVO VElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAogCSJjYW4ndCBVUERBVEUgdGVtcG9yYWxfdW5p cXVlIE5PVEhJTkciKTsKKygkcmVzdWx0LCAkc3Rkb3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1 Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAorCSJVUERBVEUgdGVtcG9yYWxfdW5pcXVlIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDEtMDEtMDEnIFRPICcyMDAyLTAxLTAx JyBTRVQgYSA9ICdjJyBXSEVSRSBpZCA9ICdbMiwzKSciKTsKK2lzKCAkc3RkZXJyLAorCXFx KHBzcWw6PHN0ZGluPjoxOiBFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInRlbXBvcmFs X3VuaXF1ZSIgYmVjYXVzZSBpdCBkb2VzIG5vdCBoYXZlIGEgcmVwbGljYSBpZGVudGl0eSBh bmQgcHVibGlzaGVzIHVwZGF0ZXMKK0hJTlQ6ICBUbyBlbmFibGUgdXBkYXRpbmcgdGhlIHRh YmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4n dCBVUERBVEUgRk9SIFBPUlRJT04gT0YgdGVtcG9yYWxfdW5pcXVlIE5PVEhJTkciKTsKIAog KCRyZXN1bHQsICRzdGRvdXQsICRzdGRlcnIpID0gJG5vZGVfcHVibGlzaGVyLT5wc3FsKCdw b3N0Z3JlcycsCiAJIkRFTEVURSBGUk9NIHRlbXBvcmFsX3VuaXF1ZSBXSEVSRSBpZCA9ICdb Myw0KSciKTsKQEAgLTYxNCw2ICs3MDQsMTIgQEAgaXMoICRzdGRlcnIsCiAJcXEocHNxbDo8 c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0ZSBmcm9tIHRhYmxlICJ0ZW1wb3JhbF91 bmlxdWUiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5k IHB1Ymxpc2hlcyBkZWxldGVzCiBISU5UOiAgVG8gZW5hYmxlIGRlbGV0aW5nIGZyb20gdGhl IHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1c2luZyBBTFRFUiBUQUJMRS4pLAogCSJj YW4ndCBERUxFVEUgdGVtcG9yYWxfdW5pcXVlIE5PVEhJTkciKTsKKygkcmVzdWx0LCAkc3Rk b3V0LCAkc3RkZXJyKSA9ICRub2RlX3B1Ymxpc2hlci0+cHNxbCgncG9zdGdyZXMnLAorCSJE RUxFVEUgRlJPTSB0ZW1wb3JhbF91bmlxdWUgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEtMDEnIFdIRVJFIGlkID0gJ1syLDMpJyIpOwor aXMoICRzdGRlcnIsCisJcXEocHNxbDo8c3RkaW4+OjE6IEVSUk9SOiAgY2Fubm90IGRlbGV0 ZSBmcm9tIHRhYmxlICJ0ZW1wb3JhbF91bmlxdWUiIGJlY2F1c2UgaXQgZG9lcyBub3QgaGF2 ZSBhIHJlcGxpY2EgaWRlbnRpdHkgYW5kIHB1Ymxpc2hlcyBkZWxldGVzCitISU5UOiAgVG8g ZW5hYmxlIGRlbGV0aW5nIGZyb20gdGhlIHRhYmxlLCBzZXQgUkVQTElDQSBJREVOVElUWSB1 c2luZyBBTFRFUiBUQUJMRS4pLAorCSJjYW4ndCBERUxFVEUgRk9SIFBPUlRJT04gT0YgdGVt cG9yYWxfdW5pcXVlIE5PVEhJTkciKTsKIAogJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9j YXRjaHVwKCdzdWIxJyk7CiAKLS0gCjIuNDIuMAoK --------------QJ7G02LVkbGy9abPg7beeymq Content-Type: text/x-patch; charset=UTF-8; name="v46-0006-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch" Content-Disposition: attachment; filename*0="v46-0006-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAyNDljNmE1MzQ0YzczMmY0YTA1YTJkODdmNWNlNWIyZTFmMjA5ZTczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMyBKdW4gMjAyMyAyMTo0MToxMSAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggdjQ2IDYvOF0gQWRkIENBU0NBREUvU0VUIE5VTEwvU0VUIERF RkFVTFQgZm9yIHRlbXBvcmFsIGZvcmVpZ24KIGtleXMKCi0tLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICAxNCArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDc3ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyAgICAgICAgICAgfCAgNTYxICsrKysrLQog c3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgICAyMiAr CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2J0cmVlX2luZGV4Lm91dCAgICAgfCAgIDE4 ICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCAgICAgfCAx NjQyICsrKysrKysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292 ZXJsYXBzLnNxbCAgICAgfCAgOTIxICsrKysrKysrLQogOCBmaWxlcyBjaGFuZ2VkLCAzMTcw IGluc2VydGlvbnMoKyksIDk1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90 YWJsZS5zZ21sCmluZGV4IDcwZmE5MjljYWE0Li5lY2M5MTJhZTk1NSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC0xMjkxLDcgKzEyOTEsOSBAQCBXSVRIICggTU9E VUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9y ZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4K LSAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBu b3Qgc3VwcG9ydGVkLgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRo ZSBkZWxldGUvdXBkYXRlIHdpbGwgdXNlCisgICAgICAgICAgPGxpdGVyYWw+Rk9SIFBPUlRJ T04gT0Y8L2xpdGVyYWw+IHNlbWFudGljcyB0byBjb25zdHJhaW4gdGhlCisgICAgICAgICAg ZWZmZWN0IHRvIHRoZSBib3VuZHMgYmVpbmcgZGVsZXRlZC91cGRhdGVkIGluIHRoZSByZWZl cmVuY2VkIHJvdy4KICAgICAgICAgIDwvcGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAg ICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTEzMDYsNyArMTMwOCwxMCBAQCBXSVRIICggTU9E VUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9y ZXBsYWNlYWJsZT4sIFJFTQogICAgICAgICAgPC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4K LSAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBu b3Qgc3VwcG9ydGVkLgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRo ZSBjaGFuZ2Ugd2lsbCB1c2UgPGxpdGVyYWw+Rk9SIFBPUlRJT04KKyAgICAgICAgICBPRjwv bGl0ZXJhbD4gc2VtYW50aWNzIHRvIGNvbnN0cmFpbiB0aGUgZWZmZWN0IHRvIHRoZSBib3Vu ZHMgYmVpbmcKKyAgICAgICAgICBkZWxldGVkL3VwZGF0ZWQgaW4gdGhlIHJlZmVyZW5jZWQg cm93LiBUaGUgY29sdW1uIG1ha2VkIHdpdGgKKyAgICAgICAgICA8bGl0ZXJhbD5QRVJJT0Q8 L2xpdGVyYWw+IHdpbGwgbm90IGJlIHNldCB0byBudWxsLgogICAgICAgICAgPC9wYXJhPgog ICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMTMyMyw3 ICsxMzI4LDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgICAgICA8L3Bh cmE+CiAKICAgICAgICAgIDxwYXJhPgotICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9yZWln biBrZXksIHRoaXMgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICAgSW4gYSB0 ZW1wb3JhbCBmb3JlaWduIGtleSwgdGhlIGNoYW5nZSB3aWxsIHVzZSA8bGl0ZXJhbD5GT1Ig UE9SVElPTgorICAgICAgICAgIE9GPC9saXRlcmFsPiBzZW1hbnRpY3MgdG8gY29uc3RyYWlu IHRoZSBlZmZlY3QgdG8gdGhlIGJvdW5kcyBiZWluZworICAgICAgICAgIGRlbGV0ZWQvdXBk YXRlZCBpbiB0aGUgcmVmZXJlbmNlZCByb3cuIFRoZSBjb2x1bW4gbWFya2VkIHdpdGgKKyAg ICAgICAgICA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IHdpdGggbm90IGJlIHNldCB0byBh IGRlZmF1bHQgdmFsdWUuCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWlu dC5jCmluZGV4IDYzZmE4ZmVjNDAzLi5hZDAxN2Y3MjZjZCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19jb25zdHJhaW50LmMKQEAgLTE2MTEsNiArMTYxMSw4IEBAIERlY29uc3RydWN0RmtD b25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1ma3MsCiAgKiBUaGF0IHdh eSBmb3JlaWduIGtleXMgY2FuIGNvbXBhcmUgZmthdHRyIDxAIHJhbmdlX2FnZyhwa2F0dHIp LgogICogaW50ZXJzZWN0b3Blcm9pZCBpcyB1c2VkIGJ5IE5PIEFDVElPTiBjb25zdHJhaW50 cyB0byB0cmltIHRoZSByYW5nZSBiZWluZyBjb25zaWRlcmVkCiAgKiB0byBqdXN0IHdoYXQg d2FzIHVwZGF0ZWQvZGVsZXRlZC4KKyAqIGludGVyc2VjdHByb2NvaWQgaXMgdXNlZCB0byBs aW1pdCB0aGUgZWZmZWN0IG9mIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQKKyAqIHdo ZW4gdGhlIFBLIHJlY29yZCBpcyBjaGFuZ2VkIHdpdGggRk9SIFBPUlRJT04gT0YuCiAgKiB3 aXRob3V0cG9ydGlvbm9pZCBpcyBhIHNldC1yZXR1cm5pbmcgZnVuY3Rpb24gY29tcHV0aW5n CiAgKiB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIG9uZSByYW5nZSBhbmQgYW5vdGhlciwKICAq IHJldHVybmluZyBlYWNoIHJlc3VsdCByYW5nZSBpbiBhIHNlcGFyYXRlIHJvdy4KQEAgLTE2 OTUsNiArMTY5NywxNCBAQCBGaW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKE9pZCBvcGNsYXNz LAogCQkJCWVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGEgd2l0aG91dF9vdmVybGFwcyBz dXBwb3J0IGZ1bmN0aW9uIGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUob3BjaW50eXBl KSksCiAJCQkJZXJyaGludCgiRGVmaW5lIGEgd2l0aG91dF9vdmVybGFwcyBzdXBwb3J0IGZ1 bmN0aW9uIGZvciBvcGVyYXRvciBjbGFzcyBcIiVkXCIgZm9yIGFjY2VzcyBtZXRob2QgXCIl c1wiLiIsCiAJCQkJCQlvcGNsYXNzLCAiZ2lzdCIpKTsKKwkvKgorCSAqIElmIHRoZSBjb21t YW5kIHVzZXMgRk9SIFBPUlRJT04gT0YsCisJICogd2Ugd2lsbCBhbHNvIG5lZWQgYW4gaW50 ZXJzZWN0IHN1cHBvcnQgcHJvYy4KKwkgKiBJZiB0aGlzIGlzIG1pc3Npbmcgd2UgZG9uJ3Qg bmVlZCB0byBjb21wbGFpbiBoZXJlLAorCSAqIGJlY2F1c2UgRk9SIFBPUlRJT04gT0Ygd2ls bCBub3QgYmUgYWxsb3dlZC4KKwkgKi8KKwlpZiAob3BmYW1pbHkgIT0gSW52YWxpZE9pZCAm JiBvcGNpbnR5cGUgIT0gSW52YWxpZE9pZCkKKwkJKmludGVyc2VjdHByb2NvaWQgPSBnZXRf b3BmYW1pbHlfcHJvYyhvcGZhbWlseSwgb3BjaW50eXBlLCBvcGNpbnR5cGUsIEdJU1RfSU5U RVJTRUNUX1BST0MpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRl eCAyZTc4ZTg5Y2Q5ZC4uNDkzMDM2YjJkOTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCkBAIC01MTksNyArNTE5LDcgQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgQVRBZGRGb3Jl aWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICoKIAkJ CQkJCQkJCQkJICAgUmVsYXRpb24gcmVsLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsCiAJ CQkJCQkJCQkJCSAgIGJvb2wgcmVjdXJzZSwgYm9vbCByZWN1cnNpbmcsCiAJCQkJCQkJCQkJ CSAgIExPQ0tNT0RFIGxvY2ttb2RlKTsKLXN0YXRpYyB2b2lkIHZhbGlkYXRlRmtPbkRlbGV0 ZVNldENvbHVtbnMoaW50IG51bWZrcywgY29uc3QgaW50MTYgKmZrYXR0bnVtcywKK3N0YXRp YyB2b2lkIHZhbGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMoaW50IG51bWZrcywgY29uc3Qg aW50MTYgKmZrYXR0bnVtcywgY29uc3QgaW50MTYgZmtwZXJpb2RhdHRudW0sCiAJCQkJCQkJ CQkJIGludCBudW1ma3NldGNvbHMsIGNvbnN0IGludDE2ICpma3NldGNvbHNhdHRudW1zLAog CQkJCQkJCQkJCSBMaXN0ICpma3NldGNvbHMpOwogc3RhdGljIE9iamVjdEFkZHJlc3MgYWRk RmtDb25zdHJhaW50KGFkZEZrQ29uc3RyYWludFNpZGVzIGZrc2lkZSwKQEAgLTk3MTgsNiAr OTcxOCw3IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwgQWx0 ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJaW50MTYJCWZrZGVsc2V0Y29s c1tJTkRFWF9NQVhfS0VZU10gPSB7MH07CiAJYm9vbAkJd2l0aF9wZXJpb2Q7CiAJYm9vbAkJ cGtfaGFzX3dpdGhvdXRfb3ZlcmxhcHM7CisJaW50MTYJCWZrcGVyaW9kYXR0bnVtID0gSW52 YWxpZEF0dHJOdW1iZXI7CiAJaW50CQkJaTsKIAlpbnQJCQludW1ma3MsCiAJCQkJbnVtcGtz LApAQCAtOTgxMywxNSArOTgxNCwxOSBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExp c3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJ CQkJCQkJIGZrY29uc3RyYWludC0+ZmtfYXR0cnMsCiAJCQkJCQkJCQkgZmthdHRudW0sIGZr dHlwb2lkLCBma2NvbGxvaWQpOwogCXdpdGhfcGVyaW9kID0gZmtjb25zdHJhaW50LT5ma193 aXRoX3BlcmlvZCB8fCBma2NvbnN0cmFpbnQtPnBrX3dpdGhfcGVyaW9kOwotCWlmICh3aXRo X3BlcmlvZCAmJiAhZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCkKLQkJZXJlcG9ydChF UlJPUiwKLQkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9GT1JFSUdOX0tFWSksCi0JCQkJ ZXJybXNnKCJmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJs ZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZSIpKTsKKwlpZiAod2l0aF9wZXJpb2Qp CisJeworCQlpZiAoIWZrY29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAor CQkJCQllcnJtc2coImZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2Vk IHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlIikpKTsKKwkJZmtwZXJpb2Rh dHRudW0gPSBma2F0dG51bVtudW1ma3MgLSAxXTsKKwl9CiAKIAludW1ma2RlbHNldGNvbHMg PSB0cmFuc2Zvcm1Db2x1bW5OYW1lTGlzdChSZWxhdGlvbkdldFJlbGlkKHJlbCksCiAJCQkJ CQkJCQkJCSAgZmtjb25zdHJhaW50LT5ma19kZWxfc2V0X2NvbHMsCiAJCQkJCQkJCQkJCSAg ZmtkZWxzZXRjb2xzLCBOVUxMLCBOVUxMKTsKLQl2YWxpZGF0ZUZrT25EZWxldGVTZXRDb2x1 bW5zKG51bWZrcywgZmthdHRudW0sCisJdmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhu dW1ma3MsIGZrYXR0bnVtLCBma3BlcmlvZGF0dG51bSwKIAkJCQkJCQkJIG51bWZrZGVsc2V0 Y29scywgZmtkZWxzZXRjb2xzLAogCQkJCQkJCQkgZmtjb25zdHJhaW50LT5ma19kZWxfc2V0 X2NvbHMpOwogCkBAIC05OTA0LDI4ICs5OTA5LDYgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3Ry YWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJl bCwKIAkJfQogCX0KIAotCS8qCi0JICogU29tZSBhY3Rpb25zIGFyZSBjdXJyZW50bHkgdW5z dXBwb3J0ZWQgZm9yIGZvcmVpZ24ga2V5cyB1c2luZyBQRVJJT0QuCi0JICovCi0JaWYgKGZr Y29uc3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCi0JewotCQlpZiAoZmtjb25zdHJhaW50LT5m a191cGRfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9DQVNDQURFIHx8Ci0JCQlma2NvbnN0 cmFpbnQtPmZrX3VwZF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX1NFVE5VTEwgfHwKLQkJ CWZrY29uc3RyYWludC0+ZmtfdXBkX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fU0VUREVG QVVMVCkKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAotCQkJCQllcnJtc2coInVuc3VwcG9ydGVkICVzIGFjdGlvbiBm b3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QiLAotCQkJCQkJICAgIk9O IFVQREFURSIpKTsKLQotCQlpZiAoZmtjb25zdHJhaW50LT5ma19kZWxfYWN0aW9uID09IEZL Q09OU1RSX0FDVElPTl9DQVNDQURFIHx8Ci0JCQlma2NvbnN0cmFpbnQtPmZrX2RlbF9hY3Rp b24gPT0gRktDT05TVFJfQUNUSU9OX1NFVE5VTEwgfHwKLQkJCWZrY29uc3RyYWludC0+Zmtf ZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fU0VUREVGQVVMVCkKLQkJCWVyZXBvcnQo RVJST1IsCi0JCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAot CQkJCQllcnJtc2coInVuc3VwcG9ydGVkICVzIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29u c3RyYWludCB1c2luZyBQRVJJT0QiLAotCQkJCQkJICAgIk9OIERFTEVURSIpKTsKLQl9Ci0K IAkvKgogCSAqIExvb2sgdXAgdGhlIGVxdWFsaXR5IG9wZXJhdG9ycyB0byB1c2UgaW4gdGhl IGNvbnN0cmFpbnQuCiAJICoKQEAgLTEwMzAxLDYgKzEwMjg0LDcgQEAgQVRBZGRGb3JlaWdu S2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJl bGF0aW9uIHJlbCwKICAqLwogdm9pZAogdmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhp bnQgbnVtZmtzLCBjb25zdCBpbnQxNiAqZmthdHRudW1zLAorCQkJCQkJCSBjb25zdCBpbnQx NiBma3BlcmlvZGF0dG51bSwKIAkJCQkJCQkgaW50IG51bWZrc2V0Y29scywgY29uc3QgaW50 MTYgKmZrc2V0Y29sc2F0dG51bXMsCiAJCQkJCQkJIExpc3QgKmZrc2V0Y29scykKIHsKQEAg LTEwMzExLDYgKzEwMjk1LDEzIEBAIHZhbGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMoaW50 IG51bWZrcywgY29uc3QgaW50MTYgKmZrYXR0bnVtcywKIAogCQlmb3IgKGludCBqID0gMDsg aiA8IG51bWZrczsgaisrKQogCQl7CisJCQlpZiAoZmtwZXJpb2RhdHRudW0gPT0gc2V0Y29s X2F0dG51bSkKKwkJCXsKKwkJCQljaGFyCSAgICpjb2wgPSBzdHJWYWwobGlzdF9udGgoZmtz ZXRjb2xzLCBpKSk7CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNP REVfSU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJCQkJCSBlcnJtc2coImNvbHVtbiBc IiVzXCIgcmVmZXJlbmNlZCBpbiBPTiBERUxFVEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUgUEVS SU9EIiwgY29sKSkpOworCQkJfQogCQkJaWYgKGZrYXR0bnVtc1tqXSA9PSBzZXRjb2xfYXR0 bnVtKQogCQkJewogCQkJCXNlZW4gPSB0cnVlOwpAQCAtMTI3MzAsMTcgKzEyNzIxLDI2IEBA IGNyZWF0ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2VycyhSZWxhdGlvbiByZWwsIE9pZCByZWZS ZWxPaWQsIENvbnN0cmFpbnQgKmZrY29uc3RyCiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX0NB U0NBREU6CiAJCQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQlma190cmln Z2VyLT5pbml0ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0g U3lzdGVtRnVuY05hbWUoIlJJX0ZLZXlfY2FzY2FkZV9kZWwiKTsKKwkJCWlmIChma2NvbnN0 cmFpbnQtPmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lz dGVtRnVuY05hbWUoIlJJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfZGVsIik7CisJCQllbHNlCisJ CQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9jYXNj YWRlX2RlbCIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX1NFVE5VTEw6 CiAJCQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQlma190cmlnZ2VyLT5p bml0ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVt RnVuY05hbWUoIlJJX0ZLZXlfc2V0bnVsbF9kZWwiKTsKKwkJCWlmIChma2NvbnN0cmFpbnQt PmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVu Y05hbWUoIlJJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsIik7CisJCQllbHNlCisJCQkJZmtf dHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRudWxsX2Rl bCIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX1NFVERFRkFVTFQ6CiAJ CQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQlma190cmlnZ2VyLT5pbml0 ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVu Y05hbWUoIlJJX0ZLZXlfc2V0ZGVmYXVsdF9kZWwiKTsKKwkJCWlmIChma2NvbnN0cmFpbnQt PmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVu Y05hbWUoIlJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsIik7CisJCQllbHNlCisJCQkJ ZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRkZWZh dWx0X2RlbCIpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5y ZWNvZ25pemVkIEZLIGFjdGlvbiB0eXBlOiAlZCIsCkBAIC0xMjc5MSwxNyArMTI3OTEsMjYg QEAgY3JlYXRlRm9yZWlnbktleUFjdGlvblRyaWdnZXJzKFJlbGF0aW9uIHJlbCwgT2lkIHJl ZlJlbE9pZCwgQ29uc3RyYWludCAqZmtjb25zdHIKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05f Q0FTQ0FERToKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3Ry aWdnZXItPmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUg PSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9jYXNjYWRlX3VwZCIpOworCQkJaWYgKGZrY29u c3RyYWludC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBT eXN0ZW1GdW5jTmFtZSgiUklfRktleV9wZXJpb2RfY2FzY2FkZV91cGQiKTsKKwkJCWVsc2UK KwkJCQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X2Nh c2NhZGVfdXBkIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fU0VUTlVM TDoKIAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3RyaWdnZXIt PmluaXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0 ZW1GdW5jTmFtZSgiUklfRktleV9zZXRudWxsX3VwZCIpOworCQkJaWYgKGZrY29uc3RyYWlu dC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1G dW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0bnVsbF91cGQiKTsKKwkJCWVsc2UKKwkJCQlm a190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldG51bGxf dXBkIik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fU0VUREVGQVVMVDoK IAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3RyaWdnZXItPmlu aXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1G dW5jTmFtZSgiUklfRktleV9zZXRkZWZhdWx0X3VwZCIpOworCQkJaWYgKGZrY29uc3RyYWlu dC0+Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1G dW5jTmFtZSgiUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQiKTsKKwkJCWVsc2UKKwkJ CQlma190cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldGRl ZmF1bHRfdXBkIik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1 bnJlY29nbml6ZWQgRksgYWN0aW9uIHR5cGU6ICVkIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Jp X3RyaWdnZXJzLmMKaW5kZXggNDkxY2YzYTUyMTYuLjM3ZTlkM2Y5NTZkIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYwpAQCAtODAsNiArODAsMTIgQEAKICNkZWZpbmUg UklfUExBTl9TRVROVUxMX09OVVBEQVRFCQk3CiAjZGVmaW5lIFJJX1BMQU5fU0VUREVGQVVM VF9PTkRFTEVURQkJOAogI2RlZmluZSBSSV9QTEFOX1NFVERFRkFVTFRfT05VUERBVEUJCTkK KyNkZWZpbmUgUklfUExBTl9QRVJJT0RfQ0FTQ0FERV9PTkRFTEVURQkJMTAKKyNkZWZpbmUg UklfUExBTl9QRVJJT0RfQ0FTQ0FERV9PTlVQREFURQkJMTEKKyNkZWZpbmUgUklfUExBTl9Q RVJJT0RfU0VUTlVMTF9PTlVQREFURQkJMTIKKyNkZWZpbmUgUklfUExBTl9QRVJJT0RfU0VU TlVMTF9PTkRFTEVURQkJMTMKKyNkZWZpbmUgUklfUExBTl9QRVJJT0RfU0VUREVGQVVMVF9P TlVQREFURQkxNAorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9TRVRERUZBVUxUX09OREVMRVRF CTE1CiAKICNkZWZpbmUgTUFYX1FVT1RFRF9OQU1FX0xFTiAgKE5BTUVEQVRBTEVOKjIrMykK ICNkZWZpbmUgTUFYX1FVT1RFRF9SRUxfTkFNRV9MRU4gIChNQVhfUVVPVEVEX05BTUVfTEVO KjIpCkBAIC0xOTUsNiArMjAxLDcgQEAgc3RhdGljIGJvb2wgcmlfQ2hlY2tfUGtfTWF0Y2go UmVsYXRpb24gcGtfcmVsLCBSZWxhdGlvbiBma19yZWwsCiAJCQkJCQkJICBjb25zdCBSSV9D b25zdHJhaW50SW5mbyAqcmlpbmZvKTsKIHN0YXRpYyBEYXR1bSByaV9yZXN0cmljdChUcmln Z2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9uKTsKIHN0YXRpYyBEYXR1bSBy aV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX3NldF9udWxsLCBpbnQgdGdr aW5kKTsKK3N0YXRpYyBEYXR1bSB0cmlfc2V0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9v bCBpc19zZXRfbnVsbCwgaW50IHRna2luZCk7CiBzdGF0aWMgdm9pZCBxdW90ZU9uZU5hbWUo Y2hhciAqYnVmZmVyLCBjb25zdCBjaGFyICpuYW1lKTsKIHN0YXRpYyB2b2lkIHF1b3RlUmVs YXRpb25OYW1lKGNoYXIgKmJ1ZmZlciwgUmVsYXRpb24gcmVsKTsKIHN0YXRpYyB2b2lkIHJp X0dlbmVyYXRlUXVhbChTdHJpbmdJbmZvIGJ1ZiwKQEAgLTE1MTAsNiArMTUxNyw1MzggQEAg cmlfc2V0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19zZXRfbnVsbCwgaW50IHRn a2luZCkKIH0KIAogCisvKgorICogUklfRktleV9wZXJpb2RfY2FzY2FkZV9kZWwgLQorICoK KyAqIENhc2NhZGVkIGRlbGV0ZSBmb3JlaWduIGtleSByZWZlcmVuY2VzIGF0IGRlbGV0ZSBl dmVudCBvbiB0ZW1wb3JhbCBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9k X2Nhc2NhZGVfZGVsKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJVHJpZ2dlckRhdGEgKnRyaWdk YXRhID0gKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4dDsKKwljb25zdCBSSV9Db25z dHJhaW50SW5mbyAqcmlpbmZvOworCVJlbGF0aW9uCWZrX3JlbDsKKwlSZWxhdGlvbglwa19y ZWw7CisJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3Q7CisJUklfUXVlcnlLZXkgcWtleTsKKwlT UElQbGFuUHRyICBxcGxhbjsKKwlEYXR1bSB0YXJnZXRSYW5nZTsKKworCS8qIENoZWNrIHRo YXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQg ZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX2Nh c2NhZGVfZGVsIiwgUklfVFJJR1RZUEVfREVMRVRFKTsKKworCXJpaW5mbyA9IHJpX0ZldGNo Q29uc3RyYWludEluZm8odHJpZ2RhdGEtPnRnX3RyaWdnZXIsCisJCQkJCQkJCQl0cmlnZGF0 YS0+dGdfcmVsYXRpb24sIHRydWUpOworCisJLyoKKwkgKiBHZXQgdGhlIHJlbGF0aW9uIGRl c2NyaXB0b3JzIG9mIHRoZSBGSyBhbmQgUEsgdGFibGVzIGFuZCB0aGUgb2xkIHR1cGxlLgor CSAqCisJICogZmtfcmVsIGlzIG9wZW5lZCBpbiBSb3dFeGNsdXNpdmVMb2NrIG1vZGUgc2lu Y2UgdGhhdCdzIHdoYXQgb3VyCisJICogZXZlbnR1YWwgREVMRVRFIHdpbGwgZ2V0IG9uIGl0 LgorCSAqLworCWZrX3JlbCA9IHRhYmxlX29wZW4ocmlpbmZvLT5ma19yZWxpZCwgUm93RXhj bHVzaXZlTG9jayk7CisJcGtfcmVsID0gdHJpZ2RhdGEtPnRnX3JlbGF0aW9uOworCW9sZHNs b3QgPSB0cmlnZGF0YS0+dGdfdHJpZ3Nsb3Q7CisKKwkvKgorCSAqIERvbid0IGRlbGV0ZSB0 aGFuIG1vcmUgdGhhbiB0aGUgUEsncyBkdXJhdGlvbiwKKwkgKiB0cmltbWVkIGJ5IGFuIG9y aWdpbmFsIEZPUiBQT1JUSU9OIE9GIGlmIG5lY2Vzc2FyeS4KKwkgKi8KKwl0YXJnZXRSYW5n ZSA9IHJlc3RyaWN0X2VuZm9yY2VkX3JhbmdlKHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlp bmZvLCBvbGRzbG90KTsKKworCWlmIChTUElfY29ubmVjdCgpICE9IFNQSV9PS19DT05ORUNU KQorCQllbG9nKEVSUk9SLCAiU1BJX2Nvbm5lY3QgZmFpbGVkIik7CisKKwkvKiBGZXRjaCBv ciBwcmVwYXJlIGEgc2F2ZWQgcGxhbiBmb3IgdGhlIGNhc2NhZGVkIGRlbGV0ZSAqLworCXJp X0J1aWxkUXVlcnlLZXkoJnFrZXksIHJpaW5mbywgUklfUExBTl9QRVJJT0RfQ0FTQ0FERV9P TkRFTEVURSk7CisKKwlpZiAoKHFwbGFuID0gcmlfRmV0Y2hQcmVwYXJlZFBsYW4oJnFrZXkp KSA9PSBOVUxMKQorCXsKKwkJU3RyaW5nSW5mb0RhdGEgcXVlcnlidWY7CisJCWNoYXIJCWZr cmVsbmFtZVtNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTl07CisJCWNoYXIJCWF0dG5hbWVbTUFY X1FVT1RFRF9OQU1FX0xFTl07CisJCWNoYXIJCXBhcmFtbmFtZVsxNl07CisJCWNvbnN0IGNo YXIgKnF1ZXJ5c2VwOworCQlPaWQJCQlxdWVyeW9pZHNbUklfTUFYX05VTUtFWVMgKyAxXTsK KwkJY29uc3QgY2hhciAqZmtfb25seTsKKworCQkvKiAtLS0tLS0tLS0tCisJCSAqIFRoZSBx dWVyeSBzdHJpbmcgYnVpbHQgaXMKKwkJICogIERFTEVURSBGUk9NIFtPTkxZXSA8Zmt0YWJs ZT4KKwkJICogIEZPUiBQT1JUSU9OIE9GICRma2F0dCAoJHtuKzF9KQorCQkgKiAgV0hFUkUg JDEgPSBma2F0dDEgW0FORCAuLi5dCisJCSAqIFRoZSB0eXBlIGlkJ3MgZm9yIHRoZSAkIHBh cmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQorCQkgKiBjb3JyZXNwb25kaW5nIFBLIGF0dHJp YnV0ZXMuCisJCSAqIC0tLS0tLS0tLS0KKwkJICovCisJCWluaXRTdHJpbmdJbmZvKCZxdWVy eWJ1Zik7CisJCWZrX29ubHkgPSBma19yZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5E X1BBUlRJVElPTkVEX1RBQkxFID8KKwkJCSIiIDogIk9OTFkgIjsKKwkJcXVvdGVSZWxhdGlv bk5hbWUoZmtyZWxuYW1lLCBma19yZWwpOworCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwgUklB dHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSkp OworCisJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiREVMRVRFIEZST00gJXMlcyBG T1IgUE9SVElPTiBPRiAlcyAoJCVkKSIsCisJCQkJCQkgZmtfb25seSwgZmtyZWxuYW1lLCBh dHRuYW1lLCByaWluZm8tPm5rZXlzICsgMSk7CisJCXF1ZXJ5c2VwID0gIldIRVJFIjsKKwkJ Zm9yIChpbnQgaSA9IDA7IGkgPCByaWluZm8tPm5rZXlzOyBpKyspCisJCXsKKwkJCU9pZCBw a190eXBlID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJ CU9pZCBwa19jb2xsID0gUklBdHRDb2xsYXRpb24ocGtfcmVsLCByaWluZm8tPnBrX2F0dG51 bXNbaV0pOworCQkJT2lkIGZrX3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCByaWluZm8tPmZr X2F0dG51bXNbaV0pOworCQkJT2lkIGZrX2NvbGwgPSBSSUF0dENvbGxhdGlvbihma19yZWws IHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisKKwkJCXF1b3RlT25lTmFtZShhdHRuYW1lLAor CQkJCQkJIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSkpOworCQkJ c3ByaW50ZihwYXJhbW5hbWUsICIkJWQiLCBpICsgMSk7CisJCQlyaV9HZW5lcmF0ZVF1YWwo JnF1ZXJ5YnVmLCBxdWVyeXNlcCwKKwkJCQkJCQlwYXJhbW5hbWUsIHBrX3R5cGUsCisJCQkJ CQkJcmlpbmZvLT5wZl9lcV9vcHJzW2ldLAorCQkJCQkJCWF0dG5hbWUsIGZrX3R5cGUpOwor CQkJaWYgKHBrX2NvbGwgIT0gZmtfY29sbCAmJiAhZ2V0X2NvbGxhdGlvbl9pc2RldGVybWlu aXN0aWMocGtfY29sbCkpCisJCQkJcmlfR2VuZXJhdGVRdWFsQ29sbGF0aW9uKCZxdWVyeWJ1 ZiwgcGtfY29sbCk7CisJCQlxdWVyeXNlcCA9ICJBTkQiOworCQkJcXVlcnlvaWRzW2ldID0g cGtfdHlwZTsKKwkJfQorCisJCS8qIFNldCBhIHBhcmFtIGZvciBGT1IgUE9SVElPTiBPRiBU Ty9GUk9NICovCisJCXF1ZXJ5b2lkc1tyaWluZm8tPm5rZXlzXSA9IFJJQXR0VHlwZShwa19y ZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pOworCisJCS8qIFBy ZXBhcmUgYW5kIHNhdmUgdGhlIHBsYW4gKi8KKwkJcXBsYW4gPSByaV9QbGFuQ2hlY2socXVl cnlidWYuZGF0YSwgcmlpbmZvLT5ua2V5cyArIDEsIHF1ZXJ5b2lkcywKKwkJCQkJCQkgJnFr ZXksIGZrX3JlbCwgcGtfcmVsKTsKKwl9CisKKwkvKgorCSAqIFdlIGhhdmUgYSBwbGFuIG5v dy4gQnVpbGQgdXAgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBrZXkgdmFsdWVzIGluIHRoZQor CSAqIGRlbGV0ZWQgUEsgdHVwbGUgYW5kIGRlbGV0ZSB0aGUgcmVmZXJlbmNpbmcgcm93cwor CSAqLworCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKKwkJCQkJZmtf cmVsLCBwa19yZWwsCisJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCXJpaW5mby0+bmtleXMg KyAxLCB0YXJnZXRSYW5nZSwKKwkJCQkJZmFsc2UsCisJCQkJCXRydWUsCSAgIC8qIG11c3Qg ZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQSV9PS19ERUxFVEUpOworCisJaWYgKFNQSV9m aW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQorCQllbG9nKEVSUk9SLCAiU1BJX2ZpbmlzaCBm YWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZrX3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisK KwlyZXR1cm4gUG9pbnRlckdldERhdHVtKE5VTEwpOworfQorCisvKgorICogUklfRktleV9w ZXJpb2RfY2FzY2FkZV91cGQgLQorICoKKyAqIENhc2NhZGVkIHVwZGF0ZSBmb3JlaWduIGtl eSByZWZlcmVuY2VzIGF0IHVwZGF0ZSBldmVudCBvbiB0ZW1wb3JhbCBQSyB0YWJsZS4KKyAq LworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfdXBkKFBHX0ZVTkNUSU9OX0FSR1Mp Cit7CisJVHJpZ2dlckRhdGEgKnRyaWdkYXRhID0gKFRyaWdnZXJEYXRhICopIGZjaW5mby0+ Y29udGV4dDsKKwljb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvOworCVJlbGF0aW9u CWZrX3JlbDsKKwlSZWxhdGlvbglwa19yZWw7CisJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3Q7 CisJVHVwbGVUYWJsZVNsb3QgKm5ld3Nsb3Q7CisJUklfUXVlcnlLZXkgcWtleTsKKwlTUElQ bGFuUHRyICBxcGxhbjsKKwlEYXR1bSB0YXJnZXRSYW5nZTsKKworCS8qIENoZWNrIHRoYXQg dGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQgZXZl bnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX2Nhc2Nh ZGVfdXBkIiwgUklfVFJJR1RZUEVfVVBEQVRFKTsKKworCXJpaW5mbyA9IHJpX0ZldGNoQ29u c3RyYWludEluZm8odHJpZ2RhdGEtPnRnX3RyaWdnZXIsCisJCQkJCQkJCQl0cmlnZGF0YS0+ dGdfcmVsYXRpb24sIHRydWUpOworCisJLyoKKwkgKiBHZXQgdGhlIHJlbGF0aW9uIGRlc2Ny aXB0b3JzIG9mIHRoZSBGSyBhbmQgUEsgdGFibGVzIGFuZCB0aGUgbmV3IGFuZAorCSAqIG9s ZCB0dXBsZS4KKwkgKgorCSAqIGZrX3JlbCBpcyBvcGVuZWQgaW4gUm93RXhjbHVzaXZlTG9j ayBtb2RlIHNpbmNlIHRoYXQncyB3aGF0IG91cgorCSAqIGV2ZW50dWFsIFVQREFURSB3aWxs IGdldCBvbiBpdC4KKwkgKi8KKwlma19yZWwgPSB0YWJsZV9vcGVuKHJpaW5mby0+ZmtfcmVs aWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXBrX3JlbCA9IHRyaWdkYXRhLT50Z19yZWxhdGlv bjsKKwluZXdzbG90ID0gdHJpZ2RhdGEtPnRnX25ld3Nsb3Q7CisJb2xkc2xvdCA9IHRyaWdk YXRhLT50Z190cmlnc2xvdDsKKworCS8qCisJICogRG9uJ3QgZGVsZXRlIHRoYW4gbW9yZSB0 aGFuIHRoZSBQSydzIGR1cmF0aW9uLAorCSAqIHRyaW1tZWQgYnkgYW4gb3JpZ2luYWwgRk9S IFBPUlRJT04gT0YgaWYgbmVjZXNzYXJ5LgorCSAqLworCXRhcmdldFJhbmdlID0gcmVzdHJp Y3RfZW5mb3JjZWRfcmFuZ2UodHJpZ2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8sIG9sZHNs b3QpOworCisJaWYgKFNQSV9jb25uZWN0KCkgIT0gU1BJX09LX0NPTk5FQ1QpCisJCWVsb2co RVJST1IsICJTUElfY29ubmVjdCBmYWlsZWQiKTsKKworCS8qIEZldGNoIG9yIHByZXBhcmUg YSBzYXZlZCBwbGFuIGZvciB0aGUgY2FzY2FkZWQgdXBkYXRlICovCisJcmlfQnVpbGRRdWVy eUtleSgmcWtleSwgcmlpbmZvLCBSSV9QTEFOX1BFUklPRF9DQVNDQURFX09OVVBEQVRFKTsK KworCWlmICgocXBsYW4gPSByaV9GZXRjaFByZXBhcmVkUGxhbigmcWtleSkpID09IE5VTEwp CisJeworCQlTdHJpbmdJbmZvRGF0YSBxdWVyeWJ1ZjsKKwkJU3RyaW5nSW5mb0RhdGEgcXVh bGJ1ZjsKKwkJY2hhcgkJZmtyZWxuYW1lW01BWF9RVU9URURfUkVMX05BTUVfTEVOXTsKKwkJ Y2hhcgkJYXR0bmFtZVtNQVhfUVVPVEVEX05BTUVfTEVOXTsKKwkJY2hhcgkJcGFyYW1uYW1l WzE2XTsKKwkJY29uc3QgY2hhciAqcXVlcnlzZXA7CisJCWNvbnN0IGNoYXIgKnF1YWxzZXA7 CisJCU9pZAkJIHF1ZXJ5b2lkc1syICogUklfTUFYX05VTUtFWVMgKyAxXTsKKwkJY29uc3Qg Y2hhciAqZmtfb25seTsKKworCQkvKiAtLS0tLS0tLS0tCisJCSAqIFRoZSBxdWVyeSBzdHJp bmcgYnVpbHQgaXMKKwkJICogIFVQREFURSBbT05MWV0gPGZrdGFibGU+CisJCSAqCQkgIEZP UiBQT1JUSU9OIE9GICRma2F0dCAoJHsybisxfSkKKwkJICoJCSAgU0VUIGZrYXR0MSA9ICQx LCBbLCAuLi5dCisJCSAqCQkgIFdIRVJFICRuID0gZmthdHQxIFtBTkQgLi4uXQorCQkgKiBU aGUgdHlwZSBpZCdzIGZvciB0aGUgJCBwYXJhbWV0ZXJzIGFyZSB0aG9zZSBvZiB0aGUKKwkJ ICogY29ycmVzcG9uZGluZyBQSyBhdHRyaWJ1dGVzLiAgTm90ZSB0aGF0IHdlIGFyZSBhc3N1 bWluZworCQkgKiB0aGVyZSBpcyBhbiBhc3NpZ25tZW50IGNhc3QgZnJvbSB0aGUgUEsgdG8g dGhlIEZLIHR5cGU7CisJCSAqIGVsc2UgdGhlIHBhcnNlciB3aWxsIGZhaWwuCisJCSAqIC0t LS0tLS0tLS0KKwkJICovCisJCWluaXRTdHJpbmdJbmZvKCZxdWVyeWJ1Zik7CisJCWluaXRT dHJpbmdJbmZvKCZxdWFsYnVmKTsKKwkJZmtfb25seSA9IGZrX3JlbC0+cmRfcmVsLT5yZWxr aW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUgPworCQkJIiIgOiAiT05MWSAiOwor CQlxdW90ZVJlbGF0aW9uTmFtZShma3JlbG5hbWUsIGZrX3JlbCk7CisJCXF1b3RlT25lTmFt ZShhdHRuYW1lLCBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZv LT5ua2V5cyAtIDFdKSk7CisKKwkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICJVUERB VEUgJXMlcyBGT1IgUE9SVElPTiBPRiAlcyAoJCVkKSBTRVQiLAorCQkJCQkJIGZrX29ubHks IGZrcmVsbmFtZSwgYXR0bmFtZSwgMiAqIHJpaW5mby0+bmtleXMgKyAxKTsKKworCQlxdWVy eXNlcCA9ICIiOworCQlxdWFsc2VwID0gIldIRVJFIjsKKwkJZm9yIChpbnQgaSA9IDAsIGog PSByaWluZm8tPm5rZXlzOyBpIDwgcmlpbmZvLT5ua2V5czsgaSsrLCBqKyspCisJCXsKKwkJ CU9pZCBwa190eXBlID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW2ld KTsKKwkJCU9pZCBwa19jb2xsID0gUklBdHRDb2xsYXRpb24ocGtfcmVsLCByaWluZm8tPnBr X2F0dG51bXNbaV0pOworCQkJT2lkIGZrX3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCByaWlu Zm8tPmZrX2F0dG51bXNbaV0pOworCQkJT2lkIGZrX2NvbGwgPSBSSUF0dENvbGxhdGlvbihm a19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisKKwkJCXF1b3RlT25lTmFtZShhdHRu YW1lLAorCQkJCQkJIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSkp OworCQkJLyoKKwkJCSAqIERvbid0IHNldCB0aGUgdGVtcG9yYWwgY29sdW1uKHMpLgorCQkJ ICogRk9SIFBPUlRJT04gT0Ygd2lsbCB0YWtlIGNhcmUgb2YgdGhhdC4KKwkJCSAqLworCQkJ aWYgKGkgPCByaWluZm8tPm5rZXlzIC0gMSkKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVy eWJ1ZiwKKwkJCQkJCQkJICIlcyAlcyA9ICQlZCIsCisJCQkJCQkJCSBxdWVyeXNlcCwgYXR0 bmFtZSwgaSArIDEpOworCisJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIsIGogKyAxKTsK KwkJCXJpX0dlbmVyYXRlUXVhbCgmcXVhbGJ1ZiwgcXVhbHNlcCwKKwkJCQkJCQlwYXJhbW5h bWUsIHBrX3R5cGUsCisJCQkJCQkJcmlpbmZvLT5wZl9lcV9vcHJzW2ldLAorCQkJCQkJCWF0 dG5hbWUsIGZrX3R5cGUpOworCQkJaWYgKHBrX2NvbGwgIT0gZmtfY29sbCAmJiAhZ2V0X2Nv bGxhdGlvbl9pc2RldGVybWluaXN0aWMocGtfY29sbCkpCisJCQkJcmlfR2VuZXJhdGVRdWFs Q29sbGF0aW9uKCZxdWVyeWJ1ZiwgcGtfY29sbCk7CisJCQlxdWVyeXNlcCA9ICIsIjsKKwkJ CXF1YWxzZXAgPSAiQU5EIjsKKwkJCXF1ZXJ5b2lkc1tpXSA9IHBrX3R5cGU7CisJCQlxdWVy eW9pZHNbal0gPSBwa190eXBlOworCQl9CisJCWFwcGVuZEJpbmFyeVN0cmluZ0luZm8oJnF1 ZXJ5YnVmLCBxdWFsYnVmLmRhdGEsIHF1YWxidWYubGVuKTsKKworCQkvKiBTZXQgYSBwYXJh bSBmb3IgRk9SIFBPUlRJT04gT0YgVE8vRlJPTSAqLworCQlxdWVyeW9pZHNbMiAqIHJpaW5m by0+bmtleXNdID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5m by0+bmtleXMgLSAxXSk7CisKKwkJLyogUHJlcGFyZSBhbmQgc2F2ZSB0aGUgcGxhbiAqLwor CQlxcGxhbiA9IHJpX1BsYW5DaGVjayhxdWVyeWJ1Zi5kYXRhLCAyICogcmlpbmZvLT5ua2V5 cyArIDEsIHF1ZXJ5b2lkcywKKwkJCQkJCQkgJnFrZXksIGZrX3JlbCwgcGtfcmVsKTsKKwl9 CisKKwkvKgorCSAqIFdlIGhhdmUgYSBwbGFuIG5vdy4gUnVuIGl0IHRvIHVwZGF0ZSB0aGUg ZXhpc3RpbmcgcmVmZXJlbmNlcy4KKwkgKi8KKwlyaV9QZXJmb3JtQ2hlY2socmlpbmZvLCAm cWtleSwgcXBsYW4sCisJCQkJCWZrX3JlbCwgcGtfcmVsLAorCQkJCQlvbGRzbG90LCBuZXdz bG90LAorCQkJCQlyaWluZm8tPm5rZXlzICogMiArIDEsIHRhcmdldFJhbmdlLAorCQkJCQlm YWxzZSwKKwkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQ SV9PS19VUERBVEUpOworCisJaWYgKFNQSV9maW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQor CQllbG9nKEVSUk9SLCAiU1BJX2ZpbmlzaCBmYWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZr X3JlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gUG9pbnRlckdldERhdHVtKE5V TEwpOworfQorCisvKgorICogUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwgLQorICoKKyAq IFNldCBmb3JlaWduIGtleSByZWZlcmVuY2VzIHRvIE5VTEwgdmFsdWVzIGF0IGRlbGV0ZSBl dmVudCBvbiBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3NldG51bGxf ZGVsKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlzIGEgdmFs aWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8KKwlyaV9D aGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwiLCBSSV9U UklHVFlQRV9ERUxFVEUpOworCisJLyogU2hhcmUgY29kZSB3aXRoIFVQREFURSBjYXNlICov CisJcmV0dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4dCwgdHJ1 ZSwgUklfVFJJR1RZUEVfREVMRVRFKTsKK30KKworLyoKKyAqIFJJX0ZLZXlfcGVyaW9kX3Nl dG51bGxfdXBkIC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkgcmVmZXJlbmNlcyB0byBOVUxM IGF0IHVwZGF0ZSBldmVudCBvbiBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVy aW9kX3NldG51bGxfdXBkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sgdGhhdCB0 aGlzIGlzIGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVu dC4gKi8KKwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2Rfc2V0bnVs bF91cGQiLCBSSV9UUklHVFlQRV9VUERBVEUpOworCisJLyogU2hhcmUgY29kZSB3aXRoIERF TEVURSBjYXNlICovCisJcmV0dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICopIGZjaW5mby0+ Y29udGV4dCwgdHJ1ZSwgUklfVFJJR1RZUEVfVVBEQVRFKTsKK30KKworLyoKKyAqIFJJX0ZL ZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsIC0KKyAqCisgKiBTZXQgZm9yZWlnbiBrZXkgcmVm ZXJlbmNlcyB0byBkZWZhdWx0cyBhdCBkZWxldGUgZXZlbnQgb24gUEsgdGFibGUuCisgKi8K K0RhdHVtCitSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbChQR19GVU5DVElPTl9BUkdT KQoreworCS8qIENoZWNrIHRoYXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0 aGUgcmlnaHQgdGltZSBhbmQgZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywg IlJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsIiwgUklfVFJJR1RZUEVfREVMRVRFKTsK KworCS8qIFNoYXJlIGNvZGUgd2l0aCBVUERBVEUgY2FzZSAqLworCXJldHVybiB0cmlfc2V0 KChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQsIGZhbHNlLCBSSV9UUklHVFlQRV9E RUxFVEUpOworfQorCisvKgorICogUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQgLQor ICoKKyAqIFNldCBmb3JlaWduIGtleSByZWZlcmVuY2VzIHRvIGRlZmF1bHRzIGF0IHVwZGF0 ZSBldmVudCBvbiBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9kX3NldGRl ZmF1bHRfdXBkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sgdGhhdCB0aGlzIGlz IGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFuZCBldmVudC4gKi8K KwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91 cGQiLCBSSV9UUklHVFlQRV9VUERBVEUpOworCisJLyogU2hhcmUgY29kZSB3aXRoIERFTEVU RSBjYXNlICovCisJcmV0dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29u dGV4dCwgZmFsc2UsIFJJX1RSSUdUWVBFX1VQREFURSk7Cit9CisKKy8qCisgKiB0cmlfc2V0 IC0KKyAqCisgKiBDb21tb24gY29kZSBmb3IgdGVtcG9yYWwgT04gREVMRVRFIFNFVCBOVUxM LCBPTiBERUxFVEUgU0VUIERFRkFVTFQsIE9OCisgKiBVUERBVEUgU0VUIE5VTEwsIGFuZCBP TiBVUERBVEUgU0VUIERFRkFVTFQuCisgKi8KK3N0YXRpYyBEYXR1bQordHJpX3NldChUcmln Z2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tpbmQpCit7CisJ Y29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbzsKKwlSZWxhdGlvbglma19yZWw7CisJ UmVsYXRpb24JcGtfcmVsOworCVR1cGxlVGFibGVTbG90ICpvbGRzbG90OworCVJJX1F1ZXJ5 S2V5IHFrZXk7CisJU1BJUGxhblB0cglxcGxhbjsKKwlEYXR1bQkJdGFyZ2V0UmFuZ2U7CisJ aW50MzIJCXF1ZXJ5bm87CisKKwlyaWluZm8gPSByaV9GZXRjaENvbnN0cmFpbnRJbmZvKHRy aWdkYXRhLT50Z190cmlnZ2VyLAorCQkJCQkJCQkJdHJpZ2RhdGEtPnRnX3JlbGF0aW9uLCB0 cnVlKTsKKworCS8qCisJICogR2V0IHRoZSByZWxhdGlvbiBkZXNjcmlwdG9ycyBvZiB0aGUg RksgYW5kIFBLIHRhYmxlcyBhbmQgdGhlIG9sZCB0dXBsZS4KKwkgKgorCSAqIGZrX3JlbCBp cyBvcGVuZWQgaW4gUm93RXhjbHVzaXZlTG9jayBtb2RlIHNpbmNlIHRoYXQncyB3aGF0IG91 cgorCSAqIGV2ZW50dWFsIFVQREFURSB3aWxsIGdldCBvbiBpdC4KKwkgKi8KKwlma19yZWwg PSB0YWJsZV9vcGVuKHJpaW5mby0+ZmtfcmVsaWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCXBr X3JlbCA9IHRyaWdkYXRhLT50Z19yZWxhdGlvbjsKKwlvbGRzbG90ID0gdHJpZ2RhdGEtPnRn X3RyaWdzbG90OworCisJLyoKKwkgKiBEb24ndCBTRVQgTlVMTC9ERUZBVUxUIG1vcmUgdGhh biB0aGUgUEsncyBkdXJhdGlvbiwKKwkgKiB0cmltbWVkIGJ5IGFuIG9yaWdpbmFsIEZPUiBQ T1JUSU9OIE9GIGlmIG5lY2Vzc2FyeS4KKwkgKi8KKwl0YXJnZXRSYW5nZSA9IHJlc3RyaWN0 X2VuZm9yY2VkX3JhbmdlKHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlpbmZvLCBvbGRzbG90 KTsKKworCWlmIChTUElfY29ubmVjdCgpICE9IFNQSV9PS19DT05ORUNUKQorCQllbG9nKEVS Uk9SLCAiU1BJX2Nvbm5lY3QgZmFpbGVkIik7CisKKwkvKgorCSAqIEZldGNoIG9yIHByZXBh cmUgYSBzYXZlZCBwbGFuIGZvciB0aGUgdHJpZ2dlci4KKwkgKi8KKwlzd2l0Y2ggKHRna2lu ZCkKKwl7CisJCWNhc2UgUklfVFJJR1RZUEVfVVBEQVRFOgorCQkJcXVlcnlubyA9IGlzX3Nl dF9udWxsCisJCQkJPyBSSV9QTEFOX1BFUklPRF9TRVROVUxMX09OVVBEQVRFCisJCQkJOiBS SV9QTEFOX1BFUklPRF9TRVRERUZBVUxUX09OVVBEQVRFOworCQkJYnJlYWs7CisJCWNhc2Ug UklfVFJJR1RZUEVfREVMRVRFOgorCQkJcXVlcnlubyA9IGlzX3NldF9udWxsCisJCQkJPyBS SV9QTEFOX1BFUklPRF9TRVROVUxMX09OREVMRVRFCisJCQkJOiBSSV9QTEFOX1BFUklPRF9T RVRERUZBVUxUX09OREVMRVRFOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQllbG9nKEVS Uk9SLCAiaW52YWxpZCB0Z2tpbmQgcGFzc2VkIHRvIHJpX3NldCIpOworCX0KKworCXJpX0J1 aWxkUXVlcnlLZXkoJnFrZXksIHJpaW5mbywgcXVlcnlubyk7CisKKwlpZiAoKHFwbGFuID0g cmlfRmV0Y2hQcmVwYXJlZFBsYW4oJnFrZXkpKSA9PSBOVUxMKQorCXsKKwkJU3RyaW5nSW5m b0RhdGEgcXVlcnlidWY7CisJCVN0cmluZ0luZm9EYXRhIHF1YWxidWY7CisJCWNoYXIJCWZr cmVsbmFtZVtNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTl07CisJCWNoYXIJCWF0dG5hbWVbTUFY X1FVT1RFRF9OQU1FX0xFTl07CisJCWNoYXIJCXBhcmFtbmFtZVsxNl07CisJCWNvbnN0IGNo YXIgKnF1ZXJ5c2VwOworCQljb25zdCBjaGFyICpxdWFsc2VwOworCQlPaWQJCQlxdWVyeW9p ZHNbUklfTUFYX05VTUtFWVMgKyAxXTsgLyogKzEgZm9yIEZPUiBQT1JUSU9OIE9GICovCisJ CWNvbnN0IGNoYXIgKmZrX29ubHk7CisJCWludAkJCW51bV9jb2xzX3RvX3NldDsKKwkJY29u c3QgaW50MTYgKnNldF9jb2xzOworCisJCXN3aXRjaCAodGdraW5kKQorCQl7CisJCQljYXNl IFJJX1RSSUdUWVBFX1VQREFURToKKwkJCQkvKiAtMSBzbyB3ZSBsZXQgRk9SIFBPUlRJT04g T0Ygc2V0IHRoZSByYW5nZS4gKi8KKwkJCQludW1fY29sc190b19zZXQgPSByaWluZm8tPm5r ZXlzIC0gMTsKKwkJCQlzZXRfY29scyA9IHJpaW5mby0+ZmtfYXR0bnVtczsKKwkJCQlicmVh azsKKwkJCWNhc2UgUklfVFJJR1RZUEVfREVMRVRFOgorCQkJCS8qCisJCQkJICogSWYgY29u ZmRlbHNldGNvbHMgYXJlIHByZXNlbnQsIHRoZW4gd2Ugb25seSB1cGRhdGUgdGhlCisJCQkJ ICogY29sdW1ucyBzcGVjaWZpZWQgaW4gdGhhdCBhcnJheSwgb3RoZXJ3aXNlIHdlIHVwZGF0 ZSBhbGwKKwkJCQkgKiB0aGUgcmVmZXJlbmNpbmcgY29sdW1ucy4KKwkJCQkgKi8KKwkJCQlp ZiAocmlpbmZvLT5uZGVsc2V0Y29scyAhPSAwKQorCQkJCXsKKwkJCQkJbnVtX2NvbHNfdG9f c2V0ID0gcmlpbmZvLT5uZGVsc2V0Y29sczsKKwkJCQkJc2V0X2NvbHMgPSByaWluZm8tPmNv bmZkZWxzZXRjb2xzOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkvKiAtMSBzbyB3 ZSBsZXQgRk9SIFBPUlRJT04gT0Ygc2V0IHRoZSByYW5nZS4gKi8KKwkJCQkJbnVtX2NvbHNf dG9fc2V0ID0gcmlpbmZvLT5ua2V5cyAtIDE7CisJCQkJCXNldF9jb2xzID0gcmlpbmZvLT5m a19hdHRudW1zOworCQkJCX0KKwkJCQlicmVhazsKKwkJCWRlZmF1bHQ6CisJCQkJZWxvZyhF UlJPUiwgImludmFsaWQgdGdraW5kIHBhc3NlZCB0byByaV9zZXQiKTsKKwkJfQorCisJCS8q IC0tLS0tLS0tLS0KKwkJICogVGhlIHF1ZXJ5IHN0cmluZyBidWlsdCBpcworCQkgKglVUERB VEUgW09OTFldIDxma3RhYmxlPgorCQkgKgkJCUZPUiBQT1JUSU9OIE9GICRma2F0dCAoJHtu KzF9KQorCQkgKgkJCVNFVCBma2F0dDEgPSB7TlVMTHxERUZBVUxUfSBbLCAuLi5dCisJCSAq CQkJV0hFUkUgJDEgPSBma2F0dDEgW0FORCAuLi5dCisJCSAqIFRoZSB0eXBlIGlkJ3MgZm9y IHRoZSAkIHBhcmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQorCQkgKiBjb3JyZXNwb25kaW5n IFBLIGF0dHJpYnV0ZXMuCisJCSAqIC0tLS0tLS0tLS0KKwkJICovCisJCWluaXRTdHJpbmdJ bmZvKCZxdWVyeWJ1Zik7CisJCWluaXRTdHJpbmdJbmZvKCZxdWFsYnVmKTsKKwkJZmtfb25s eSA9IGZrX3JlbC0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFC TEUgPworCQkJIiIgOiAiT05MWSAiOworCQlxdW90ZVJlbGF0aW9uTmFtZShma3JlbG5hbWUs IGZrX3JlbCk7CisJCXF1b3RlT25lTmFtZShhdHRuYW1lLCBSSUF0dE5hbWUoZmtfcmVsLCBy aWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKSk7CisKKwkJYXBwZW5kU3Ry aW5nSW5mbygmcXVlcnlidWYsICJVUERBVEUgJXMlcyBGT1IgUE9SVElPTiBPRiAlcyAoJCVk KSBTRVQiLAorCQkJCQkJIGZrX29ubHksIGZrcmVsbmFtZSwgYXR0bmFtZSwgcmlpbmZvLT5u a2V5cyArIDEpOworCisJCS8qCisJCSAqIEFkZCBhc3NpZ25tZW50IGNsYXVzZXMKKwkJICov CisJCXF1ZXJ5c2VwID0gIiI7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtX2NvbHNfdG9f c2V0OyBpKyspCisJCXsKKwkJCXF1b3RlT25lTmFtZShhdHRuYW1lLCBSSUF0dE5hbWUoZmtf cmVsLCBzZXRfY29sc1tpXSkpOworCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsCisJ CQkJCQkJICIlcyAlcyA9ICVzIiwKKwkJCQkJCQkgcXVlcnlzZXAsIGF0dG5hbWUsCisJCQkJ CQkJIGlzX3NldF9udWxsID8gIk5VTEwiIDogIkRFRkFVTFQiKTsKKwkJCXF1ZXJ5c2VwID0g IiwiOworCQl9CisKKwkJLyoKKwkJICogQWRkIFdIRVJFIGNsYXVzZQorCQkgKi8KKwkJcXVh bHNlcCA9ICJXSEVSRSI7CisJCWZvciAoaW50IGkgPSAwOyBpIDwgcmlpbmZvLT5ua2V5czsg aSsrKQorCQl7CisJCQlPaWQJcGtfdHlwZSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+ cGtfYXR0bnVtc1tpXSk7CisJCQlPaWQJZmtfdHlwZSA9IFJJQXR0VHlwZShma19yZWwsIHJp aW5mby0+ZmtfYXR0bnVtc1tpXSk7CisJCQlPaWQJcGtfY29sbCA9IFJJQXR0Q29sbGF0aW9u KHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW2ldKTsKKwkJCU9pZAlma19jb2xsID0gUklB dHRDb2xsYXRpb24oZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pOworCisJCQlxdW90 ZU9uZU5hbWUoYXR0bmFtZSwKKwkJCQkJCSBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZr X2F0dG51bXNbaV0pKTsKKworCQkJc3ByaW50ZihwYXJhbW5hbWUsICIkJWQiLCBpICsgMSk7 CisJCQlyaV9HZW5lcmF0ZVF1YWwoJnF1ZXJ5YnVmLCBxdWFsc2VwLAorCQkJCQkJCXBhcmFt bmFtZSwgcGtfdHlwZSwKKwkJCQkJCQlyaWluZm8tPnBmX2VxX29wcnNbaV0sCisJCQkJCQkJ YXR0bmFtZSwgZmtfdHlwZSk7CisJCQlpZiAocGtfY29sbCAhPSBma19jb2xsICYmICFnZXRf Y29sbGF0aW9uX2lzZGV0ZXJtaW5pc3RpYyhwa19jb2xsKSkKKwkJCQlyaV9HZW5lcmF0ZVF1 YWxDb2xsYXRpb24oJnF1ZXJ5YnVmLCBwa19jb2xsKTsKKwkJCXF1YWxzZXAgPSAiQU5EIjsK KwkJCXF1ZXJ5b2lkc1tpXSA9IHBrX3R5cGU7CisJCX0KKworCQkvKiBTZXQgYSBwYXJhbSBm b3IgRk9SIFBPUlRJT04gT0YgVE8vRlJPTSAqLworCQlxdWVyeW9pZHNbcmlpbmZvLT5ua2V5 c10gPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5 cyAtIDFdKTsKKworCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICovCisJCXFwbGFu ID0gcmlfUGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIHJpaW5mby0+bmtleXMgKyAxLCBxdWVy eW9pZHMsCisJCQkJCQkJICZxa2V5LCBma19yZWwsIHBrX3JlbCk7CisJfQorCisJLyoKKwkg KiBXZSBoYXZlIGEgcGxhbiBub3cuIFJ1biBpdCB0byB1cGRhdGUgdGhlIGV4aXN0aW5nIHJl ZmVyZW5jZXMuCisJICovCisJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFu LAorCQkJCQlma19yZWwsIHBrX3JlbCwKKwkJCQkJb2xkc2xvdCwgTlVMTCwKKwkJCQkJcmlp bmZvLT5ua2V5cyArIDEsIHRhcmdldFJhbmdlLAorCQkJCQlmYWxzZSwKKwkJCQkJdHJ1ZSwJ CS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCisJCQkJCVNQSV9PS19VUERBVEUpOworCisJ aWYgKFNQSV9maW5pc2goKSAhPSBTUElfT0tfRklOSVNIKQorCQllbG9nKEVSUk9SLCAiU1BJ X2ZpbmlzaCBmYWlsZWQiKTsKKworCXRhYmxlX2Nsb3NlKGZrX3JlbCwgUm93RXhjbHVzaXZl TG9jayk7CisKKwlpZiAoaXNfc2V0X251bGwpCisJCXJldHVybiBQb2ludGVyR2V0RGF0dW0o TlVMTCk7CisJZWxzZQorCXsKKwkJLyoKKwkJICogSWYgd2UganVzdCBkZWxldGVkIG9yIHVw ZGF0ZWQgdGhlIFBLIHJvdyB3aG9zZSBrZXkgd2FzIGVxdWFsIHRvIHRoZQorCQkgKiBGSyBj b2x1bW5zJyBkZWZhdWx0IHZhbHVlcywgYW5kIGEgcmVmZXJlbmNpbmcgcm93IGV4aXN0cyBp biB0aGUgRksKKwkJICogdGFibGUsIHdlIHdvdWxkIGhhdmUgdXBkYXRlZCB0aGF0IHJvdyB0 byB0aGUgc2FtZSB2YWx1ZXMgaXQgYWxyZWFkeQorCQkgKiBoYWQgLS0tIGFuZCBSSV9GS2V5 X2ZrX3VwZF9jaGVja19yZXF1aXJlZCB3b3VsZCBoZW5jZSBiZWxpZXZlIG5vCisJCSAqIGNo ZWNrIGlzIG5lY2Vzc2FyeS4gIFNvIHdlIG5lZWQgdG8gZG8gYW5vdGhlciBsb29rdXAgbm93 IGFuZCBpbgorCQkgKiBjYXNlIGEgcmVmZXJlbmNlIHN0aWxsIGV4aXN0cywgYWJvcnQgdGhl IG9wZXJhdGlvbi4gIFRoYXQgaXMKKwkJICogYWxyZWFkeSBpbXBsZW1lbnRlZCBpbiB0aGUg Tk8gQUNUSU9OIHRyaWdnZXIsIHNvIGp1c3QgcnVuIGl0LiAoVGhpcworCQkgKiByZWNoZWNr IGlzIG9ubHkgbmVlZGVkIGluIHRoZSBTRVQgREVGQVVMVCBjYXNlLCBzaW5jZSBDQVNDQURF IHdvdWxkCisJCSAqIHJlbW92ZSBzdWNoIHJvd3MgaW4gY2FzZSBvZiBhIERFTEVURSBvcGVy YXRpb24gb3Igd291bGQgY2hhbmdlIHRoZQorCQkgKiBGSyBrZXkgdmFsdWVzIGluIGNhc2Ug b2YgYW4gVVBEQVRFLCB3aGlsZSBTRVQgTlVMTCBpcyBjZXJ0YWluIHRvCisJCSAqIHJlc3Vs dCBpbiByb3dzIHRoYXQgc2F0aXNmeSB0aGUgRksgY29uc3RyYWludC4pCisJCSAqLworCQly ZXR1cm4gcmlfcmVzdHJpY3QodHJpZ2RhdGEsIHRydWUpOworCX0KK30KKwogLyoKICAqIFJJ X0ZLZXlfcGtfdXBkX2NoZWNrX3JlcXVpcmVkIC0KICAqCkBAIC0yNjM5LDggKzMxNzgsOCBA QCByaV9QZXJmb3JtQ2hlY2soY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAlp bnQJCQlzcGlfcmVzdWx0OwogCU9pZAkJCXNhdmVfdXNlcmlkOwogCWludAkJCXNhdmVfc2Vj X2NvbnRleHQ7Ci0JRGF0dW0JCXZhbHNbUklfTUFYX05VTUtFWVMgKiAyXTsKLQljaGFyCQlu dWxsc1tSSV9NQVhfTlVNS0VZUyAqIDJdOworCURhdHVtCQl2YWxzW1JJX01BWF9OVU1LRVlT ICogMiArIDFdOworCWNoYXIJCW51bGxzW1JJX01BWF9OVU1LRVlTICogMiArIDFdOwogCiAJ LyoKIAkgKiBVc2UgdGhlIHF1ZXJ5IHR5cGUgY29kZSB0byBkZXRlcm1pbmUgd2hldGhlciB0 aGUgcXVlcnkgaXMgcnVuIGFnYWluc3QKQEAgLTI2NzUsOCArMzIxNCwxMCBAQCByaV9QZXJm b3JtQ2hlY2soY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAkJcmlfRXh0cmFj dFZhbHVlcyhzb3VyY2VfcmVsLCBuZXdzbG90LCByaWluZm8sIHNvdXJjZV9pc19waywKIAkJ CQkJCSB2YWxzLCBudWxscyk7CiAJCWlmIChvbGRzbG90KQorCQl7CiAJCQlyaV9FeHRyYWN0 VmFsdWVzKHNvdXJjZV9yZWwsIG9sZHNsb3QsIHJpaW5mbywgc291cmNlX2lzX3BrLAogCQkJ CQkJCSB2YWxzICsgcmlpbmZvLT5ua2V5cywgbnVsbHMgKyByaWluZm8tPm5rZXlzKTsKKwkJ fQogCX0KIAllbHNlCiAJewpAQCAtMzM3NCw2ICszOTE1LDEyIEBAIFJJX0ZLZXlfdHJpZ2dl cl90eXBlKE9pZCB0Z2ZvaWQpCiAJCWNhc2UgRl9SSV9GS0VZX1NFVERFRkFVTFRfVVBEOgog CQljYXNlIEZfUklfRktFWV9OT0FDVElPTl9ERUw6CiAJCWNhc2UgRl9SSV9GS0VZX05PQUNU SU9OX1VQRDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVSSU9EX0NBU0NBREVfREVMOgorCQljYXNl IEZfUklfRktFWV9QRVJJT0RfQ0FTQ0FERV9VUEQ6CisJCWNhc2UgRl9SSV9GS0VZX1BFUklP RF9TRVROVUxMX0RFTDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVSSU9EX1NFVE5VTExfVVBEOgor CQljYXNlIEZfUklfRktFWV9QRVJJT0RfU0VUREVGQVVMVF9ERUw6CisJCWNhc2UgRl9SSV9G S0VZX1BFUklPRF9TRVRERUZBVUxUX1VQRDoKIAkJCXJldHVybiBSSV9UUklHR0VSX1BLOwog CiAJCWNhc2UgRl9SSV9GS0VZX0NIRUNLX0lOUzoKQEAgLTM0MDUsMTYgKzM5NTIsMTYgQEAg ZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBv cmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW4KICAqIFJldHVybnMgYSBEYXR1bSBvZiBSYW5n ZVR5cGVQIGhvbGRpbmcgdGhlIGFwcHJvcHJpYXRlIHRpbWVzcGFuCiAgKiB0byB0YXJnZXQg Y2hpbGQgcmVjb3JkcyB3aGVuIHdlIFJFU1RSSUNUL0NBU0NBREUvU0VUIE5VTEwvU0VUIERF RkFVTFQuCiAgKgotICogSW4gYSBub3JtYWwgVVBEQVRFL0RFTEVURSB0aGlzIHNob3VsZCBi ZSB0aGUgcGFyZW50J3Mgb3duIHZhbGlkIHRpbWUsCisgKiBJbiBhIG5vcm1hbCBVUERBVEUv REVMRVRFIHRoaXMgc2hvdWxkIGJlIHRoZSByZWZlcmVuY2VkIHJvdydzIG93biB2YWxpZCB0 aW1lLAogICogYnV0IGlmIHRoZXJlIHdhcyBhIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSwgdGhl biB3ZSBzaG91bGQgdXNlIHRoYXQgdG8KLSAqIHRyaW0gZG93biB0aGUgcGFyZW50J3Mgc3Bh biBmdXJ0aGVyLgorICogdHJpbSBkb3duIHRoZSBzcGFuIGZ1cnRoZXIuCiAgKi8KIHN0YXRp YyBEYXR1bQogcmVzdHJpY3RfZW5mb3JjZWRfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3Rh dGUgKnRnX3RlbXBvcmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLCBUdXBs ZVRhYmxlU2xvdCAqb2xkc2xvdCkKIHsKLQlEYXR1bQkJcGtSZWNvcmRSYW5nZTsKLQlib29s CQlpc251bGw7Ci0JQXR0ck51bWJlcglhdHRubyA9IHJpaW5mby0+cGtfYXR0bnVtc1tyaWlu Zm8tPm5rZXlzIC0gMV07CisJRGF0dW0JcGtSZWNvcmRSYW5nZTsKKwlib29sCWlzbnVsbDsK KwlpbnQJCWF0dG5vID0gcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXTsK IAogCXBrUmVjb3JkUmFuZ2UgPSBzbG90X2dldGF0dHIob2xkc2xvdCwgYXR0bm8sICZpc251 bGwpOwogCWlmIChpc251bGwpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAppbmRleCA0OWM0 ZWQ1Y2UzOS4uZWZhZDg4YjhmMWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAt NDAzOSw2ICs0MDM5LDI4IEBACiAgIHByb3JldHR5cGUgPT4gJ3RyaWdnZXInLCBwcm9hcmd0 eXBlcyA9PiAnJywKICAgcHJvc3JjID0+ICdSSV9GS2V5X25vYWN0aW9uX3VwZCcgfSwKIAor IyBUZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgY29uc3RyYWludCB0cmlnZ2Vycwor eyBvaWQgPT4gJzYxMjQnLCBkZXNjciA9PiAndGVtcG9yYWwgcmVmZXJlbnRpYWwgaW50ZWdy aXR5IE9OIERFTEVURSBDQVNDQURFJywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJpb2Rf Y2FzY2FkZV9kZWwnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3JldHR5cGUgPT4gJ3RyaWdn ZXInLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9j YXNjYWRlX2RlbCcgfSwKK3sgb2lkID0+ICc2MTI1JywgZGVzY3IgPT4gJ3RlbXBvcmFsIHJl ZmVyZW50aWFsIGludGVncml0eSBPTiBVUERBVEUgQ0FTQ0FERScsCisgIHByb25hbWUgPT4g J1JJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfdXBkJywgcHJvdm9sYXRpbGUgPT4gJ3YnLCBwcm9y ZXR0eXBlID0+ICd0cmlnZ2VyJywKKyAgcHJvYXJndHlwZXMgPT4gJycsIHByb3NyYyA9PiAn UklfRktleV9wZXJpb2RfY2FzY2FkZV91cGQnIH0sCit7IG9pZCA9PiAnNjEyOCcsIGRlc2Ny ID0+ICd0ZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgT04gREVMRVRFIFNFVCBOVUxM JywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwnLCBwcm92b2xh dGlsZSA9PiAndicsIHByb3JldHR5cGUgPT4gJ3RyaWdnZXInLAorICBwcm9hcmd0eXBlcyA9 PiAnJywgcHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRudWxsX2RlbCcgfSwKK3sgb2lk ID0+ICc2MTI5JywgZGVzY3IgPT4gJ3RlbXBvcmFsIHJlZmVyZW50aWFsIGludGVncml0eSBP TiBVUERBVEUgU0VUIE5VTEwnLAorICBwcm9uYW1lID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRu dWxsX3VwZCcsIHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcmV0dHlwZSA9PiAndHJpZ2dlcics CisgIHByb2FyZ3R5cGVzID0+ICcnLCBwcm9zcmMgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldG51 bGxfdXBkJyB9LAoreyBvaWQgPT4gJzYxMzAnLCBkZXNjciA9PiAndGVtcG9yYWwgcmVmZXJl bnRpYWwgaW50ZWdyaXR5IE9OIERFTEVURSBTRVQgREVGQVVMVCcsCisgIHByb25hbWUgPT4g J1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsJywgcHJvdm9sYXRpbGUgPT4gJ3YnLAor ICBwcm9yZXR0eXBlID0+ICd0cmlnZ2VyJywgcHJvYXJndHlwZXMgPT4gJycsCisgIHByb3Ny YyA9PiAnUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwnIH0sCit7IG9pZCA9PiAnNjEz MScsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgT04gVVBEQVRF IFNFVCBERUZBVUxUJywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVs dF91cGQnLCBwcm92b2xhdGlsZSA9PiAndicsCisgIHByb3JldHR5cGUgPT4gJ3RyaWdnZXIn LCBwcm9hcmd0eXBlcyA9PiAnJywKKyAgcHJvc3JjID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRk ZWZhdWx0X3VwZCcgfSwKKwogeyBvaWQgPT4gJzE2NjYnLAogICBwcm9uYW1lID0+ICd2YXJi aXRlcScsIHByb2xlYWtwcm9vZiA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAogICBw cm9hcmd0eXBlcyA9PiAndmFyYml0IHZhcmJpdCcsIHByb3NyYyA9PiAnYml0ZXEnIH0sCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2J0cmVlX2luZGV4Lm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVfaW5kZXgub3V0CmluZGV4IGRlZjc4 ZWY4NTgzLi5kNjY5YTNhODliYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9idHJlZV9pbmRleC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9i dHJlZV9pbmRleC5vdXQKQEAgLTI1OCwxNCArMjU4LDE3IEBAIHNlbGVjdCBwcm9uYW1lIGZy b20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIGxpa2UgRSdSSVxcX0ZLZXklZGVsJyBvcmRlciBi eSAxOwogKDMgcm93cykKIAogc2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHBy b25hbWUgbGlrZSBFJ1JJXFxfRktleSVkZWwnIG9yZGVyIGJ5IDE7Ci0gICAgICAgIHByb25h bWUgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgcHJv bmFtZSAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIFJJ X0ZLZXlfY2FzY2FkZV9kZWwKICBSSV9GS2V5X25vYWN0aW9uX2RlbAorIFJJX0ZLZXlfcGVy aW9kX2Nhc2NhZGVfZGVsCisgUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF9kZWwKKyBSSV9G S2V5X3BlcmlvZF9zZXRudWxsX2RlbAogIFJJX0ZLZXlfcmVzdHJpY3RfZGVsCiAgUklfRktl eV9zZXRkZWZhdWx0X2RlbAogIFJJX0ZLZXlfc2V0bnVsbF9kZWwKLSg1IHJvd3MpCisoOCBy b3dzKQogCiBleHBsYWluIChjb3N0cyBvZmYpCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3By b2Mgd2hlcmUgcHJvbmFtZSBpbGlrZSAnMDAlZm9vJyBvcmRlciBieSAxOwpAQCAtMzA0LDE0 ICszMDcsMTcgQEAgc2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUg bGlrZSBFJ1JJXFxfRktleSVkZWwnIG9yZGVyIGJ5IDE7CiAoNiByb3dzKQogCiBzZWxlY3Qg cHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJvbmFtZSBsaWtlIEUnUklcXF9GS2V5JWRl bCcgb3JkZXIgYnkgMTsKLSAgICAgICAgcHJvbmFtZSAgICAgICAgIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICBwcm9uYW1lICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgUklfRktleV9jYXNjYWRlX2RlbAogIFJJX0ZL ZXlfbm9hY3Rpb25fZGVsCisgUklfRktleV9wZXJpb2RfY2FzY2FkZV9kZWwKKyBSSV9GS2V5 X3BlcmlvZF9zZXRkZWZhdWx0X2RlbAorIFJJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsCiAg UklfRktleV9yZXN0cmljdF9kZWwKICBSSV9GS2V5X3NldGRlZmF1bHRfZGVsCiAgUklfRktl eV9zZXRudWxsX2RlbAotKDUgcm93cykKKyg4IHJvd3MpCiAKIGV4cGxhaW4gKGNvc3RzIG9m ZikKIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9uYW1lIGlsaWtlICcw MCVmb28nIG9yZGVyIGJ5IDE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93 aXRob3V0X292ZXJsYXBzLm91dAppbmRleCA1YWRiY2Y1Y2I2NC4uNTRmNTQyM2ZlNjggMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91 dApAQCAtMiw3ICsyLDcgQEAKIC0tCiAtLSBXZSBsZWF2ZSBiZWhpbmQgc2V2ZXJhbCB0YWJs ZXMgdG8gdGVzdCBwZ19kdW1wIGV0YzoKIC0tIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfcm5n MiwKLS0tIHRlbXBvcmFsX2ZrX3JuZzJybmcuCistLSB0ZW1wb3JhbF9ma19ybmcycm5nLCB0 ZW1wb3JhbF9mazJfcm5nMnJuZy4KIFNFVCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CiAtLQog LS0gdGVzdCBpbnB1dCBwYXJzZXIKQEAgLTIwMTgsMTIgKzIwMTgsMjIgQEAgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBXSEVS RSBpZCA9ICdbNSw2KSc7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRl bXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf Zmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6 ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkg aXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4K K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcs OCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwg WzIwMTgtMDEtMDEsMjAxOC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDIt MDEpCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4 LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rp bmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUg RlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVM RVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNikn OwotREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIC0t CiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAogLS0KQEAgLTIwNzUs MzkgKzIwODUsMjA2IEBAIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MDUnIFRPICcyMDE4LTAxLTEwJwogV0hFUkUgaWQgPSAnWzUsNiknOwogRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIFJFU1RSSUNU IHNldHRpbmcgb2YgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJu Z19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlk LCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgcmVmZXJl bmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAx OC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisoMiByb3dzKQor CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0 KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYp CisoMSByb3cpCisKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFu ZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9y YWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00g dGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIC0tCiAtLSBybmcycm5nIHRl c3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAtLQorLS0gVE9DOgorLS0gcmVmZXJlbmNl ZCB1cGRhdGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLSBy ZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg TlVMTAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0 d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNj YWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFy IGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29s cykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBT RVQgTlVMTCBzdWJzZXQpCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3 byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdv IHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28g c2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCiAtLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1w b3JhbF9ma19ybmcycm5nOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzYsNyknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKICAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJybmdfZmssCiAgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsK ICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcKICAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUg Q0FTQ0FERTsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9y ZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIw MTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAx LDIwMjAtMDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0 ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkg fCBbNyw4KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkK KyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs3LDgpCisoMyByb3dz KQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9y YWxfcm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzksMTApCisgWzIwMCwyMDEpIHwg WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBv biBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEt MDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkIAorLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDEg cm93KQorCistLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKLUlO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOSwxMCkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOSwx MCknKTsKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYs NyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKICAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCiAgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3JuZzJybmdfZmsKICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKICAgICBPTiBERUxF VEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOwotRVJST1I6ICB1bnN1cHBvcnRlZCBP TiBVUERBVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklP RAorLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisg WzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBP IHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAx LTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgCisoMyBy b3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzIwMCwyMDEpIHwgWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorVFJVTkNBVEUgdGVtcG9yYWxf cm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAx LDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAx LTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxf cm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDE5LTAx LTAxLDIwMjAtMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIw MSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAw LDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsyMDAsMjAxKSB8IFsyMDIw LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCiAtLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFs X3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwp KTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MTIsMTMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzEyLDEzKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nCiAgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAog ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKQEAgLTIxMTUsNyAr MjI5Miw0MzIgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogICAgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZwogICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERF RkFVTFQ7Ci1FUlJPUjogIHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUg aWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4 LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEt MDEpIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRl bXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8 IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDAp CisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbLTEsMCkKKygzIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIw MCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMjAwLDIwMSkg fCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FURSB0 ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVyYW5nZShudWxs LCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBb Niw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisg WzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykK KworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUg aWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4 LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEs MjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs IGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzIw MCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93cykKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIg Y29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04g REVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkg fCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAx LTAxKSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBP IHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs3 LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEp IHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbNyw4KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0 d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5n ZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0g J1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbOSwxMCkg ICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4 LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1w b3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYs NykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAg fCBbNiw3KQorKDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworIGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgs OSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlk ID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAg ICAgfCBbOCw5KQorKDEgcm93KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0 ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9y bmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJy bmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQg TlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3Ju ZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAs MTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsxMDAs MTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCiso MyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNF VCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0w MS0wMSwyMDE5LTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0w MS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQg aWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQy IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAg ICAgICAgICAgIHwgCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb OCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRl bXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBb Niw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAg ICB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAg ICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IFsyMDE5LTAx LTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgICAgICAgICAgICB8IAorKDMgcm93cykKKworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0 ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIg V0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisg WzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgs OSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg TlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorVFJVTkNBVEUg dGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91 IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr Ml9ybmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAodmFsaWRf YXQpIE9OIFVQREFURSBTRVQgTlVMTDsKK0VSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgcmVm ZXJlbmNlZCBpbiBPTiBERUxFVEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUgUEVSSU9ECistLSBv azoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAg IE9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBw YXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0w MS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBu b24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgICAgICAgICAg ICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAg ICAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 ICAgICAgICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgs OSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0g J1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwg WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgWzgsOSkKKyBbMjAwLDIw MSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIg cm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxU ICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9y YWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVyYW5nZShudWxs LCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYs NyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVN TiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBh cmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9y bmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBE RUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdb Nyw4KScsIGlkMiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsy MDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEw MCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIg U0VUIGlkMSA9ICdbNyw4KScsIGlkMiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSww KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8 IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDAp ICAgICB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAn WzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzksMTApJywgaWQy ID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTkt MDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEs MCkgICAgIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkg fCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5D QVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywg J1stMSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBb Niw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAg ICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYs NykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsy MDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAx KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsx MDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSww KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBw YXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0w MS0wMSkgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz LCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVt cG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzYsNyknLCBkYXRlcmFuZ2UobnVs bCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2 LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1 bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4g cGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9O IERFTEVURSBTRVQgREVGQVVMVCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgREVGQVVMVDsK K0VSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgcmVmZXJlbmNlZCBpbiBPTiBERUxFVEUgU0VU IGFjdGlvbiBjYW5ub3QgYmUgUEVSSU9ECistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdb LTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAor ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworICAgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIChwYXJl bnRfaWQxKSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBb Niw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAg ICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3 KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIw MTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkg fCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAs MTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDApICAgICB8IFs2LDcpCiso MyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWy0xLC0xXScsICdbOCw5KScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTkt MDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEs MCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKwogLS0KIC0tIHRlc3QgRk9SRUlHTiBL RVksIG11bHRpcmFuZ2UgcmVmZXJlbmNlcyBtdWx0aXJhbmdlCiAtLQpAQCAtMjY3OCw2ICsz MjgwLDYyNSBAQCBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgt MDEtMDEsMjAxOC0wMS0wMiksWzIwMTgtMDEtMDMsMjAxOC0wMgogREVMRVRFIEZST00gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwog LS0KKy0tIG1sdHJuZzJtbHRybmcgdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKKy0t CistLSBUT0M6CistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNl ZCBkZWxldGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0g cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VU IERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQg ZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIHVwZGF0 ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBT RVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tIHJlZmVyZW5jZWQg dXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBk ZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0 KQorLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworICAgIE9OIERF TEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScp KSkgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2 YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbNyw4KQorKDIgcm93 cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBp ZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQg ICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgWzcsOCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0w MS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzcsOCkKKygyIHJvd3MpCisKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3Jh bF9tbHRybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbOSwxMCkK KyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQor VFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAg ICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0w MSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKygxIHJvdykKKworLS0gbm9u LUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworIGlkIHwgdmFsaWRf YXQgfCBwYXJlbnRfaWQgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKygwIHJvd3Mp CisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAor LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMSByb3cp CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04g REVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEt MDEnKSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAg ICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTkt MDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMiByb3dz KQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlk ID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKX0gfCAKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3Mg dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNF VCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAw LDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgCisgWzIwMCwyMDEpIHwge1sy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIw LTAxLTAxJykpKSBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKX0gfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAx LTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIG5vbi1G UE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAx LTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IAorIFsxMDAsMTAx KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAg fCAKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSkn KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IAor IFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KQorKDIgcm93 cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCist LQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1stMSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJl bnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworICAgIE9OIERFTEVU RSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAx LTAxJykpKSBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEp LFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5 LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFstMSwwKQor KDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5n IFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFs aWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSl9IHwgWy0xLDApCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAx LDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFstMSwwKQorKDIgcm93 cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworVVBEQVRF IHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8 IFstMSwwKQorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5 KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBE RUZBVUxUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVs bCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcp Jyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg ICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lk IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIw MTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpCisgWzEwMCwxMDEp IHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8 IFstMSwwKQorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRf YXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSl9IHwgWy0xLDApCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIw MjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFstMSwwKQorKDIgcm93cykK KworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBb MjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApCisgWzIwMCwy MDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMiByb3dzKQorCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBj b2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf bWx0cm5nMgorICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbNyw4 KSAgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRF IHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5 LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFs3LDgpICAg ICAgfCBbNiw3KQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSkn LCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzksMTAp JyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFs5 LDEwKSAgICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNB VEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJt bHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0w MS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEt MDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8 IFs2LDcpCisoMSByb3cpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorKDAgcm93 cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg J1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygxIHJvdykKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNv bHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBw YXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9t bHRybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0w MS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7 WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgICB8IAorKDIgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVt cG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg ICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lk MSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKX0gfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIw MjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKygy IHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0g J1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0 ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAgICAgICAgICAgIHwgCisg WzIwMCwyMDEpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAgfCBb OCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5n MiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3 KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQx ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAg ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0g fCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEp fSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCAKKygyIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEs MjAyMC0wMS0wMSl9IHwgICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xz LCBTRVQgTlVMTCBzdWJzZXQpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdb Niw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29s dW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxMICh2YWxpZF9hdCkg T04gVVBEQVRFIFNFVCBOVUxMOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVu Y2VkIGluIE9OIERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBV UERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgICAgICAgICB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAg ICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSl9IHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAx LDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCBb Niw3KQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgs OSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAx KSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAgICAgICAgICAgIHwgWzgsOSkKKyBb MjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4 LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VU IERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRy bmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEs LTFdJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEw MCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQg J1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMiBTRVQgREVGQVVMVCAnWy0x LC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19m aywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAg ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQg REVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScp KSkgU0VUIGlkMSA9ICdbNyw4KScsIGlkMiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5 LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFstMSwwKSAg ICAgfCBbLTEsMCkKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRl bXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbNyw4KScsIGlkMiA9ICdbNyw4KScgV0hFUkUg aWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSks WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAs MTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAg ICAgfCBbLTEsMCkgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwg aWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwy MDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VU IGlkMSA9ICdbOSwxMCknLCBpZDIgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwg e1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAw LDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkp CisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERF RkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcy LCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFd JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScp KSkgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAx OS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAg ICAgICAgICAgICB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygyIHJvd3MpCisKKy0tIG5vbi1G UE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwg e1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFst MSwwKSAgICAgfCBbLTEsMCkKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgs OSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJF IGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIw MCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2 YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApICAg ICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBb OCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBz dWJzZXQpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2 LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1 bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBD T0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfbWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAodmFsaWRfYXQpIE9O IFVQREFURSBTRVQgREVGQVVMVDsKK0VSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgcmVmZXJl bmNlZCBpbiBPTiBERUxFVEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUgUEVSSU9ECistLSBvazoK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVN TiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQx LCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIChwYXJlbnRfaWQxKSBPTiBV UERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAg ICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAx KSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAw LDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAg ICAgIHwgWy0xLDApICAgICB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0 ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAg ICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9p ZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAy MS0wMS0wMSl9IHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAx LTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFstMSwwKSAgICAg fCBbNiw3KQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWy0xLC0xXScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBu dWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSks ICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVS RSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sy MDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAg dmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFstMSwwKSAg ICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBb OCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tIEZLIHdpdGggYSBjdXN0b20gcmFu Z2UgdHlwZQorQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRl KTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKyAgaWQgaW50NHJhbmdlLAorICB2 YWxpZF9hdCBteWRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2F0IG15ZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrM19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nMyAoaWQsIFBFUklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NB REUKKyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrM19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzUsNiknLCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMyBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazNfcm5nMnJuZyBX SEVSRSBpZCA9ICdbNSw2KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbOCw5KQorIFs1LDYp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworRFJPUCBU QUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJuZzsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMzsK K0RST1AgVFlQRSBteWRhdGVyYW5nZTsKKy0tCiAtLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVk IHRhYmxlczogcmFuZ2VzCiAtLQogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyAoCkBAIC0yNjg2LDggKzM5MDcsOCBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nICgKICAgbmFtZSB0ZXh0LAogICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bh cml0aW9uZWRfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKICkgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0cDEgcGFy dGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgnWzEs MiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsK LUNSRUFURSBUQUJMRSB0cDIgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAn WzEwLDExKScsICdbMTIsMTMpJyk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBPRiB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQp JywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAn WzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7 CitDUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywg J1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAn WzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQsIG5hbWUpIFZBTFVF UwogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMDEnKSwg J29uZScpLAogICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAxJywgJzIwMDAtMDMt MDEnKSwgJ29uZScpLApAQCAtMjcwMCw4ICszOTIxLDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKAogICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgUEVSSU9EIHZhbGlkX2F0KQogKSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOwotQ1JFQVRF IFRBQkxFIHRma3AxIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScs ICdbOSwxMCknLCAnWzExLDEyKScpOwotQ1JFQVRFIFRBQkxFIHRma3AyIHBhcnRpdGlvbiBP RiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMiwz KScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknKTsK K0NSRUFURSBUQUJMRSB0ZmtwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAn WzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywgJ1sx NywxOCknLCAnWzE5LDIwKScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0NSRUFURSBUQUJM RSB0ZmtwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBG T1IgVkFMVUVTIElOICgnWzAsMSknLCAnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgs OSknLCAnWzEwLDExKScsICdbMTIsMTMpJywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdbMTgs MTkpJywgJ1syMCwyMSknLCAnWzIyLDIzKScsICdbMjQsMjUpJyk7CiAtLQogLS0gcGFydGl0 aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cwogLS0KQEAgLTI3NDMsNyArMzk2NCw3IEBA IFVQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtCiAtLSBzaG91bGQgZmFpbDoKIFVQREFURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2 LTAxLTAxJywgJzIwMTYtMDItMDEnKQogICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLUVSUk9SOiAg dXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVudF9pZF92 YWxpZF9hdF9ma2V5IiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyIKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBm b3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n X3BhcmVudF9pZF92YWxpZF9hdF9ma2V5MSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBb MjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxl ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIi4KIC0tCiAtLSBwYXJ0aXRpb25l ZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCkBAIC0yNzU1LDcgKzM5NzYsNyBA QCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWwogREVMRVRFIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwogLS0gc2hvdWxkIGZhaWw6CiBERUxF VEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7Ci1F UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWln biBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJl bnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShb NSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJv bSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0gcGFy dGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNUCkBAIC0yNzc3LDcgKzM5 OTgsNyBAQCBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9 IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLQogLS0gc2hvdWxkIGZhaWw6CiBV UERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKICAgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7Ci1F UlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWln biBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJl bnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEiIG9uIHRhYmxlICJ0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShb NSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJv bSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIuCiAtLQogLS0gcGFy dGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBAIC0yNzg5LDM3ICs0 MDEwLDE2MiBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWwogREVMRVRFIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwogLS0gc2hvdWxkIGZh aWw6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7Ci1FUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0 ZXMgUkVTVFJJQ1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVudF9pZF92YWxpZF9hdF9ma2V5IiBvbiB0 YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKK0VSUk9SOiAgdXBkYXRl IG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5nIG9m IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiks IFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgogLS0KIC0tIHBhcnRpdGlvbmVkIEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcKICAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmdfZmssCiAgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmdfZmsKICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKICAgICBP TiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKLUVSUk9SOiAgdW5zdXBwb3J0 ZWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQ RVJJT0QKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdb Nyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKKyAgaWQgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzQsNSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAx LTAxKSB8IFs3LDgpCisgWzQsNSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcp CisgWzQsNSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQor CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzQsNSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3 LDgpCisgWzQsNSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs3LDgpCisgWzQsNSkg fCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs3LDgpCisoMyByb3dzKQorCitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzE1LDE2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxNSwxNiknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAsMTEpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxNSwxNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgU0VUIGlkID0gJ1sxNiwxNyknIFdIRVJFIGlkID0gJ1sxNSwxNiknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwLDExKSc7CisgICBp ZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAsMTEpIHwgWzIw MTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbMTYsMTcpCisgWzEwLDExKSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWzE1LDE2KQorKDIgcm93cykKKwogLS0KIC0tIHBhcnRpdGlvbmVk IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKyAgaWQg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAxOC0wMS0w MSwyMDE5LTAxLTAxKSB8IFs4LDkpCisgWzUsNikgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KSB8IFs4LDkpCisoMiByb3dzKQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKyBpZCB8IHZhbGlkX2F0 IHwgcGFyZW50X2lkIAorLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQor CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzE3LDE4KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1sxNywxOCknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxNywxOCknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMTcsMTgpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworICAgaWQgICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzExLDEyKSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgWzE3LDE4KQorKDEgcm93KQorCiAtLQogLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCiAtLQorVFJVTkNBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s5LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s5LDEwKScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZwogICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZ19maywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZwogICAgIE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7Ci1FUlJPUjog IHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgdXNpbmcgUEVSSU9ECitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBT RVQgaWQgPSAnWzEwLDExKScgV0hFUkUgaWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7Cisg IGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs2LDcpIHwgWzIwMTkt MDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbNiw3KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEp IHwgWzksMTApCisgWzYsNykgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs5LDEwKQor KDMgcm93cykKKworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAn WzEwLDExKScgV0hFUkUgaWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs2LDcpIHwgWzIwMTktMDEtMDEsMjAy MC0wMS0wMSkgfCAKKyBbNiw3KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgCisgWzYs NykgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IAorKDMgcm93cykKKworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx OCwxOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMTgsMTkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyksICdbMTgsMTkpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTksMjApJyBXSEVSRSBpZCA9ICdbMTgsMTkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMiwxMyknOworICAgaWQg ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEyLDEzKSB8IFsyMDE4 LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzEyLDEzKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEt MDEpIHwgWzE4LDE5KQorKDIgcm93cykKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAogLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTEs MTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzcsOCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzExLDEyKScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7CisgIGlkICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs3LDgpIHwgWzIwMTktMDEtMDEs MjAyMC0wMS0wMSkgfCAKKyBbNyw4KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzEx LDEyKQorIFs3LDgpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTEsMTIpCisoMyBy b3dzKQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQg PSAnWzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzcsOCknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbNyw4KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzcs OCkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IAorIFs3LDgpIHwgWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSkgfCAKKygzIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjAsMjEpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMywxNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzIwLDIxKScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdI RVJFIGlkID0gJ1syMCwyMSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEzLDE0KSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTMsMTQpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMTMsMTQp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMjAsMjEpCisoMiByb3dzKQorCiAtLQog LS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCiAtLQor VFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1swLDEpJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzEyLDEzKScpOwogQUxURVIgVEFCTEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZwogICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNF VCBERUZBVUxUICdbLTEsLTFdJywKICAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmdfZmssCkBAIC0yODI3LDEwICs0MTczLDczIEBAIEFMVEVSIFRB QkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKICAgICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcKICAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNF VCBERUZBVUxUOwotRVJST1I6ICB1bnN1cHBvcnRlZCBPTiBVUERBVEUgYWN0aW9uIGZvciBm b3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAx JyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1sxMywxNCknIFdIRVJFIGlkID0gJ1sxMiwx MyknOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZmtwMiIgdmlvbGF0 ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZ19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFstMSwwKSwg WzIwMTktMDEtMDEsMjAyMC0wMS0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s4LDkpJzsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzgsOSkgfCBbMjAxOC0wMS0wMSwyMDIxLTAxLTAx KSB8IFsxMiwxMykKKygxIHJvdykKKworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitFUlJPUjogIGlu c2VydCBvciB1cGRhdGUgb24gdGFibGUgInRma3AyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIgorREVUQUlM OiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWy0xLDApLCBbMjAxOC0wMS0wMSwyMDIx LTAxLTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzgsOSknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAg fCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbOCw5KSB8IFsyMDE4LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzEyLDEzKQorKDEg cm93KQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1syMiwyMyknKTsKK1VQREFU RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1syMywyNCknIFdIRVJFIGlk ID0gJ1syMiwyMyknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitFUlJP UjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRma3AyIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIgor REVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWy0xLDApLCBbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMTQsMTUpIHwgWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSkg fCBbMjIsMjMpCisoMSByb3cpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIERFRkFVTFQKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSkn LCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNCwxNSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE0 LDE1KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVS RSBpZCA9ICdbMTQsMTUpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAi dGZrcDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRf YXQpPShbLTEsMCksIFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpKSBpcyBub3QgcHJlc2VudCBp biB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworICAg aWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs5LDEwKSB8IFsyMDE4 LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzE0LDE1KQorKDEgcm93KQorCitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitFUlJPUjog IGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRma3AxIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIgorREVU QUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWy0xLDApLCBbMjAxOC0wMS0wMSwy MDIxLTAxLTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzksMTApJzsKKyAgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbOSwxMCkgfCBbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsxNCwx NSkKKygxIHJvdykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjQsMjUpJywgZGF0ZXJhbmdlKCcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzE1LDE2 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMjQsMjUpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzI0 LDI1KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK0VSUk9SOiAgaW5z ZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6 ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbLTEsMCksIFsyMDE4LTAxLTAxLDIwMjAt MDEtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBX SEVSRSBpZCA9ICdbMTUsMTYpJzsKKyAgIGlkICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsxNSwxNikgfCBbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsyNCwy NSkKKygxIHJvdykKKwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmc7CiAtLQpAQCAtMjk1 MCwzMiArNDM1OSwxNTAgQEAgREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg e1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgcmVmZXJlbmNlZCBmcm8KIC0tCiAtLSBw YXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQogLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbNCw1KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcKICAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdfZmssCiAgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmdfZmsKICAgICBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmcKICAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERB VEUgQ0FTQ0FERTsKLUVSUk9SOiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBmb3Ig Zm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKK1VQREFURSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQgPSAn WzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNCw1KSc7CisgIGlkICAg fCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwg cGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNCw1KSB8IHtbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbNyw4KQorIFs0LDUpIHwg e1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2 LDcpCisoMiByb3dzKQorCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFNF VCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsK KyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs0LDUpIHwge1syMDE5 LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IFs3LDgpCisg WzQsNSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9IHwgWzcsOCkKKygyIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxNSwxNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19t bHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwLDEx KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpLCAnWzE1LDE2KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBT RVQgaWQgPSAnWzE2LDE3KScgV0hFUkUgaWQgPSAnWzE1LDE2KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAsMTEpJzsKKyAgIGlkICAgIHwg ICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAsMTEpIHwge1syMDE4 LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFsxNiwxNykKKyBbMTAsMTEpIHwge1syMDIwLTAxLTAx LDIwMjEtMDEtMDEpfSB8IFsxNSwxNikKKygyIHJvd3MpCisKIC0tCiAtLSBwYXJ0aXRpb25l ZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQogLS0KK1RSVU5DQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1s dHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0gJ1s4LDkp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbNSw2KSc7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbNSw2KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKX0gfCBbOCw5KQorKDEgcm93KQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYp JzsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkIAorLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisoMCByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9t bHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3LDE4KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MTcsMTgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5n Mm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMSwxMiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwg J1sxNywxOCknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBX SEVSRSBpZCA9ICdbMTcsMTgpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1sxMSwxMiknOworICAgaWQgICAgfCAgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIFsxMSwxMikgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9 IHwgWzE3LDE4KQorKDEgcm93KQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBOVUxMCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf bWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s5LDEwKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzksMTApJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19t bHRybmcybWx0cm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19tbHRybmcybWx0cm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0 cm5nCiAgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKLUVSUk9S OiAgdW5zdXBwb3J0ZWQgT04gVVBEQVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3Ry YWludCB1c2luZyBQRVJJT0QKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUgaWQg PSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CisgIGlkICAgfCAgICAgICAgICAgICAg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbNiw3KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAg ICAgICAgICAgICAgICAgICAgICAgfCAKKyBbNiw3KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAx LTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOSwxMCkKKygyIHJvd3MpCisKK1VQ REFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1sxMCwxMSknIFdI RVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOworICBpZCAgIHwgICAgICAg ICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzYsNykgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0w MSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgWzYsNykgfCB7WzIwMTgtMDEtMDEs MjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgCisoMiByb3dzKQorCitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzE4LDE5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1sxOCwxOSknKTsKK1VQREFURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1sxOSwyMCknIFdIRVJFIGlk ID0gJ1sxOCwxOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzEyLDEzKSc7CisgICBpZCAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg fCBwYXJlbnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgWzEyLDEzKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAKKyBb MTIsMTMpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFsxOCwxOSkKKygyIHJvd3Mp CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwK IC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcsIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNyw4KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzExLDEyKScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0w MS0wMScpKSkgV0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzcsOCknOworICBp ZCAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAg ICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzcsOCkgfCB7WzIwMTktMDEt MDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgWzcsOCkgfCB7 WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzEx LDEyKQorKDIgcm93cykKKworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0 cm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s3LDgpJzsKKyAgaWQgICB8 ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBw YXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs3LDgpIHwge1syMDE5LTAxLTAxLDIw MjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorIFs3LDgpIHwge1syMDE4 LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IAorKDIgcm93 cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1syMCwyMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIwLDIxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTMsMTQpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMjAsMjEpJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzIw LDIxKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MTMsMTQpJzsKKyAgIGlkICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTMsMTQpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IAorIFsxMywxNCkg fCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzIwLDIxKQorKDIgcm93cykKKwogLS0K IC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAogLS0K K1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1sxMiwxMyknKTsKIEFM VEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcKICAgQUxU RVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWzAsMSknLAogICBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19maywKQEAgLTI5 ODMsMTAgKzQ1MTAsNjcgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZwogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwogICAg IE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7Ci1FUlJPUjog IHVuc3VwcG9ydGVkIE9OIFVQREFURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgdXNpbmcgUEVSSU9ECitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTkt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkID0gJ1sxMywxNCknIFdIRVJFIGlkID0g J1sxMiwxMyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJzsKKyAgaWQgICB8ICAgICAgICAgICAgICAg ICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFs4LDkpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAg ICAgICAgICAgICAgICAgICAgICB8IFswLDEpCisgWzgsOSkgfCB7WzIwMTgtMDEtMDEsMjAx OS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzEyLDEzKQorKDIgcm93cykK KworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzEzLDE0 KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworICBpZCAgIHwg ICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBh cmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzgsOSkgfCB7WzIwMTktMDEtMDEsMjAy MC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzAsMSkKKyBbOCw5KSB8IHtb MjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbMCwx KQorKDIgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIyLDIz KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMjIs MjMpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFNFVCBpZCA9ICdb MjMsMjQpJyBXSEVSRSBpZCA9ICdbMjIsMjMpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOworICAgaWQgICAgfCAgICAgICAgIHZh bGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxNCwxNSkgfCB7WzIwMTgtMDEtMDEsMjAy MC0wMS0wMSl9IHwgWzAsMSkKKyBbMTQsMTUpIHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEp fSB8IFsyMiwyMykKKygyIHJvd3MpCisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKIC0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9tbHRybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzAsMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1s5LDEwKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzE0LDE1KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0 aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzE0 LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzksMTApJzsKKyAgIGlkICAgfCAgICAgICAgICAgICAgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgWzksMTApIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAg ICAgICAgICAgICAgICAgICAgICB8IFswLDEpCisgWzksMTApIHwge1syMDE4LTAxLTAxLDIw MTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFsxNCwxNSkKKygyIHJvd3Mp CisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9 ICdbMTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworICAgaWQgICB8ICAgICAgICAgICAg ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbOSwxMCkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9 ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWzAsMSkKKyBbOSwxMCkgfCB7WzIwMTgtMDEt MDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzAsMSkKKygyIHJv d3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMjQsMjUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzI0LDI1KScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sy NCwyNSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzE1LDE2KSc7CisgICBpZCAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzE1LDE2KSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbMCwxKQorIFsx NSwxNikgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzI0LDI1KQorKDIgcm93cykK KwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOwog RFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmc7CiBSRVNFVCBkYXRlc3R5 bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4 IDNmMjZhZjJiY2ZiLi5jODNiNzU1Njc5ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv d2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTIsNyArMiw3IEBACiAtLQogLS0gV2UgbGVhdmUg YmVoaW5kIHNldmVyYWwgdGFibGVzIHRvIHRlc3QgcGdfZHVtcCBldGM6CiAtLSB0ZW1wb3Jh bF9ybmcsIHRlbXBvcmFsX3JuZzIsCi0tLSB0ZW1wb3JhbF9ma19ybmcycm5nLgorLS0gdGVt cG9yYWxfZmtfcm5nMnJuZywgdGVtcG9yYWxfZmsyX3JuZzJybmcuCiAKIFNFVCBkYXRlc3R5 bGUgVE8gSVNPLCBZTUQ7CiAKQEAgLTE0NzksMTIgKzE0NzksMTEgQEAgU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJwogV0hFUkUgaWQg PSAnWzUsNiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdb NSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQs IHZhbGlkX2F0OwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5k IHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5n IFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpOwotLS0gY2xlYW4gdXA6Ci1ERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ma19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9ICdbNSw2KSc7Ci1ERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2KScpOwogCiAtLQogLS0gdGVzdCBGSyBy ZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKQEAgLTE1MjMsNDEgKzE1MjIsMTMxIEBAIFNF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykg T1JERVIgQlkgaWQsIHZhbGlkX2F0OwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcK IFdIRVJFIGlkID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJF IGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksg cmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRl bXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVMRVRFIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOwotREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIAogLS0KIC0t IHJuZzJybmcgdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKIC0tCistLSBUT0M6Cist LSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENB U0NBREUKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCBk ZWxldGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0t IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCB1cGRhdGVz IENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVND QURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwg KHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdv IHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2Nh bGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQg REVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBE RUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERF RkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQogCistLQogLS0g dGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVt cG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOwogSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzQsNSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYs NyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKICAgRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCiAgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfZmsKICAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCiAgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKICAgICBPTiBERUxFVEUgQ0FT Q0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor VVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5 LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToK K1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCknIFdI RVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3Jh bF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJu ZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZS T00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQogLS0g dGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKLUlOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNiw3KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOSwxMCknKTsKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAx KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwog QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwogICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19maywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK ICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZwogICAgIE9OIERFTEVURSBTRVQgTlVMTCBP TiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFU RSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERB VEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs IGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBp ZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKIAorLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBOVUxMCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2Zr X3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCiAtLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVt cG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOwogSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwg bnVsbCkpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK LUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbMTIsMTMpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJybmcKICAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0x XScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLApAQCAtMTU2 NSw2ICsxNjU0LDI1MiBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nCiAgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBT RVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBv cmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJh bmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwy MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7 CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4 LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IERFRkFVTFQKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5n MnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdI RVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NB REUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRl bXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2 LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZzIKKyAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNF VCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBT RVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERB VEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NB REUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRl bXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2 LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0w MS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMp CistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJy bmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9E IHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVU RSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hF UkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VU IGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xz KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cist LSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQx ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3Mg dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwg aWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVS RSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQor LS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZh aWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdf ZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZh bGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBT RVQgTlVMTCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIG9rOgorQUxURVIg VEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9ybmcycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJu Z19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRF IFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgs OSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0g J1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVz IFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3Jh bF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywg ZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcK KyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBB TFRFUiBDT0xVTU4gcGFyZW50X2lkMiBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7 CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBE QVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw4KScsIGlkMiA9ICdbNyw4KScgV0hF UkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VU IGlkMSA9ICdbOSwxMCknLCBpZDIgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFV TFQgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRl bXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBkYXRlcmFuZ2Uo bnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywg J1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9y bmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNF VCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBv cmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDcpJywgZGF0ZXJhbmdlKG51bGws IG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3 KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1u OgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKyAgQUxURVIgQ09MVU1OIHBh cmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX3JuZzJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9y bmcycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBF UklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBE RUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7Cist LSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVN TiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcm5nMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAg T04gREVMRVRFIFNFVCBERUZBVUxUIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIERFRkFV TFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdI RVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAn WzgsOSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJF IGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAKIC0tCiAtLSB0ZXN0IEZPUkVJR04gS0VZLCBt dWx0aXJhbmdlIHJlZmVyZW5jZXMgbXVsdGlyYW5nZQpAQCAtMjA4MSw2ICsyNDE2LDQwNiBA QCBXSEVSRSBpZCA9ICdbNSw2KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiAKKy0tCistLSBtbHRybmcy bWx0cm5nIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLQorLS0gVE9DOgorLS0g cmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVND QURFCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSBy ZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBD QVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FE RSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0 d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxh ciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERF RkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVG QVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZB VUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tCisKK1RSVU5DQVRFIHRlbXBv cmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVMRVRFIENBU0NB REUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQg PSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBT RVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSkn KTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg ZGVsZXRlcyBDQVNDQURFCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEw MCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBu b24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9t bHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcKKyAgICBPTiBERUxFVEUgU0VUIE5V TEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlk ID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcg U0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkp Jyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlk ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIE5VTEwKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdI RVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlk ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAx Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVS RSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLQorCitUUlVOQ0FURSB0 ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVG QVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxU IE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor VVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBp ZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5n IFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5 KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBp ZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBERUZBVUxUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcs IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sx MDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0g bm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxf bWx0cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcy CisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAn MjAyMC0wMS0wMScpKSkgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdv IHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3 KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0 ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg J1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBX SEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorICAg IE9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAy MC0wMS0wMScpKSkgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChp ZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sy MDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcy IFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNykn KTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf bWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hF UkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1 YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0t IGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf bWx0cm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAodmFsaWRfYXQpIE9OIFVQREFURSBT RVQgTlVMTDsKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAor ICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworICAgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxM IChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIw LTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxf bWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVG QVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5n MiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0x XScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3 KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAs MTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdb LTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwt MV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmss CisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIERF RkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAo ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp IFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3 LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERB VEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScsIGlkMiA9ICdbOSwxMCkn IFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0 cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAn WzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUg aWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxU IHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScs ICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0Qg Y29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxU RVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX21sdHJuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0 KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZB VUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu Z19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisgICAgT04gREVM RVRFIFNFVCBERUZBVUxUIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7Cist LSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSkn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo bnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0gRksgd2l0aCBh IGN1c3RvbSByYW5nZSB0eXBlCisKK0NSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdl KHN1YnR5cGU9ZGF0ZSk7CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9hdCBteWRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmcgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2F0IG15ZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdl LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrM19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmszX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMyAoaWQsIFBFUklPRCB2YWxpZF9hdCkg T04gREVMRVRFIENBU0NBREUKKyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrM19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzUsNiknLCBteWRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcm5nMyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazNfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CisKK0RST1AgVEFCTEUgdGVtcG9y YWxfZmszX3JuZzJybmc7CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CitEUk9QIFRZUEUg bXlkYXRlcmFuZ2U7CisKIC0tCiAtLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlczog cmFuZ2VzCiAtLQpAQCAtMjA5MSw4ICsyODI2LDggQEAgQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyAoCiAgIG5hbWUgdGV4dCwKICAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCiApIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdHAx IHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAo J1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIp Jyk7Ci1DUkVBVEUgVEFCTEUgdHAyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkp JywgJ1sxMCwxMSknLCAnWzEyLDEzKScpOworQ1JFQVRFIFRBQkxFIHRwMSBQQVJUSVRJT04g T0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdb Myw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQp JywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0 KScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScsICdbNiw3 KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcp JywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKIElOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBuYW1lKSBW QUxVRVMKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAx JyksICdvbmUnKSwKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAw LTAzLTAxJyksICdvbmUnKSwKQEAgLTIxMDYsOCArMjg0MSw4IEBAIENSRUFURSBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nICgKICAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICkgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKLUNS RUFURSBUQUJMRSB0ZmtwMSBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcs OCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsKLUNSRUFURSBUQUJMRSB0ZmtwMiBwYXJ0aXRp b24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgn WzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMp Jyk7CitDUkVBVEUgVEFCTEUgdGZrcDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYp JywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScs ICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUg VEFCTEUgdGZrcDIgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywg J1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAn WzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOwogCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cwpAQCAtMjIwMCwzNiArMjkzNSw5 MCBAQCBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZQogLS0gcGFydGl0aW9uZWQgRksgcmVm ZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Niw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nX2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nX2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAgICAgT04g REVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEn IFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbNCw1KSc7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9 ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTUs MTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzE1LDE2KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMCwxMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzE1LDE2KScpOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBTRVQgaWQgPSAnWzE2LDE3KScgV0hFUkUgaWQgPSAnWzE1LDE2KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAsMTEpJzsKIAogLS0KIC0t IHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCiAtLQogCitUUlVO Q0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbOCw5KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlk ID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3LDE4KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywxOCknLCBkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1sxNywxOCknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVS RSBpZCA9ICdbMTcsMTgpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1sxMSwxMiknOworCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBOVUxMCiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcs IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzksMTApJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n X2ZrLAogICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n X2ZrCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAgICAgT04gREVMRVRFIFNF VCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1s2LDcpJzsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1sx MCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzYsNyknOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxOCwx OSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MTgsMTkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbMTgsMTkpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIFNFVCBpZCA9ICdbMTksMjApJyBXSEVSRSBpZCA9ICdbMTgsMTkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMiwxMyknOwogCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCiAtLQogCitUUlVO Q0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3LDgpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMSwxMiknKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzExLDEyKSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzcsOCknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdI RVJFIGlkID0gJ1sxMSwxMiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s3LDgpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjAsMjEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzIwLDIxKScs IGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMywxNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzIwLDIxKScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIFdIRVJFIGlkID0gJ1syMCwyMSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzEzLDE0KSc7CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVu Y2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MCwxKScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1sxMiwxMyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcKICAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCiAg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLApA QCAtMjIzNywxMSArMzAyNiwzNCBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nCiAgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQogICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAgICAgT04g REVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9 ICdbMTIsMTMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyBXSEVSRSBpZCA9ICdbOCw5KSc7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOCw5 KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzIyLDIzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1syMiwyMyknKTsKK1VQREFURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlkID0gJ1syMywyNCknIFdIRVJFIGlkID0g J1syMiwyMyknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzE0 LDE1KSc7CiAKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IERFRkFVTFQKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMCwxKScsIGRhdGVyYW5n ZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE0LDE1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5LDEwKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTQsMTUpJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1sx NCwxNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1s5LDEwKSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzksMTApJzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjQs MjUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzI0LDI1KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzI0LDI1KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syNCwyNSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzE1LDE2KSc7CisKIERST1AgVEFCTEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nOwogCkBAIC0yMzY0LDM2ICszMTc2LDkwIEBAIERFTEVURSBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0g ZGF0ZW11CiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQog LS0KIAorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOwogQUxURVIg VEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19maywKICAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19m awogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwogICAgIE9OIERFTEVURSBD QVNDQURFIE9OIFVQREFURSBDQVNDQURFOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4KScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s0LDUpJzsKK1VQREFURSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzQsNSknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzE1LDE2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAsMTEpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSks ICdbMTUsMTYpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFNFVCBp ZCA9ICdbMTYsMTcpJyBXSEVSRSBpZCA9ICdbMTUsMTYpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMCwxMSknOwogCiAtLQogLS0gcGFydGl0 aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKIC0tCiAKK1RSVU5DQVRFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkID0g J1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbMTcsMTgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywxOCknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzExLDEyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE3LDE4KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIFdIRVJFIGlkID0gJ1sxNywxOCkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzExLDEy KSc7CisKIC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5V TEwKIC0tCiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOSwxMCknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s5LDEwKScpOwog QUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZ19m aywKICAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1s dHJuZ19mawogICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK ICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZwogICAgIE9OIERF TEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkID0gJ1sx MCwxMSknIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOworVVBEQVRF IHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUg aWQgPSAnWzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE4LDE5KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMiwxMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSwgJ1sxOCwxOSknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcgU0VUIGlkID0gJ1sxOSwyMCknIFdIRVJFIGlkID0gJ1sxOCwxOSknIEFORCB2 YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CiAK IC0tCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKIC0t CiAKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZywgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s3LDgpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbMTEsMTIpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAx LTAxJykpKSBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgV0hFUkUgaWQgPSAnWzExLDEy KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzcsOCknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMCwyMSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzIwLDIxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTMsMTQp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbMjAsMjEpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRy bmcgV0hFUkUgaWQgPSAnWzIwLDIxKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMTMsMTQpJzsKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAogLS0KIAorVFJVTkNBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfbWx0cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0 cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1swLDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGws IG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpLCAnWzEyLDEzKScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZwogICBBTFRFUiBDT0xVTU4gcGFyZW50X2lk IFNFVCBERUZBVUxUICdbMCwxKScsCiAgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19tbHRybmcybWx0cm5nX2ZrLApAQCAtMjQwMSwxMSArMzI2NywzNCBAQCBB TFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nCiAgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nCiAgICAgT04gREVMRVRFIFNFVCBERUZB VUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQgPSAnWzEzLDE0KScg V0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworVVBEQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX21sdHJuZyBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUgaWQgPSAn WzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzIyLDIzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTQsMTUpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbMjIsMjMpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0 cm5nIFNFVCBpZCA9ICdbMjMsMjQpJyBXSEVSRSBpZCA9ICdbMjIsMjMpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOwogCiAtLQog LS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCiAtLQog CitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcsIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzE0LDE1KScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfbWx0cm5nIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAy MC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzksMTApJzsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX21sdHJuZyBXSEVSRSBpZCA9ICdb MTQsMTUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbOSwxMCknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9tbHRybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzI0LDI1KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTUsMTYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSksICdbMjQsMjUpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmcgV0hFUkUgaWQgPSAnWzI0LDI1KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTUsMTYpJzsKKwogRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0cm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9tbHRybmc7CiAKLS0gCjIuNDIuMAoK --------------QJ7G02LVkbGy9abPg7beeymq Content-Type: text/x-patch; charset=UTF-8; name="v46-0007-Expose-FOR-PORTION-OF-to-plpgsql-triggers.patch" Content-Disposition: attachment; filename="v46-0007-Expose-FOR-PORTION-OF-to-plpgsql-triggers.patch" Content-Transfer-Encoding: base64 RnJvbSAzZGNjYTZmZGJhZjFiMDdkZDFiZDQwYmM2MTQ5MDU1ZTVkYTU4NTI4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFR1ZSwgMjkgT2N0IDIwMjQgMTg6NTQ6MzcgLTA3 MDAKU3ViamVjdDogW1BBVENIIHY0NiA3LzhdIEV4cG9zZSBGT1IgUE9SVElPTiBPRiB0byBw bHBnc3FsIHRyaWdnZXJzCgpJdCBpcyBoZWxwZnVsIGZvciB0cmlnZ2VycyB0byBzZWUgd2hh dCB0aGUgRk9SIFBPUlRJT04gT0YgY2xhdXNlCnNwZWNpZmllZDogYm90aCB0aGUgY29sdW1u L3BlcmlvZCBuYW1lIGFuZCB0aGUgdGFyZ2V0ZWQgYm91bmRzLiBPdXIgUkkKdHJpZ2dlcnMg cmVxdWlyZSB0aGlzIGluZm9ybWF0aW9uLCBhbmQgd2UgYXJlIHBhc3NpbmcgaXQgYXMgcGFy dCBvZiB0aGUKVHJpZ2dlckRhdGEgc3RydWN0LiBUaGlzIGNvbW1pdCBhbGxvd3MgcGxwZ3Nx bCB0cmlnZ2VycyBmdW5jdGlvbnMgdG8KYWNjZXNzIHRoZSBzYW1lIGluZm9ybWF0aW9uLCB1 c2luZyB0aGUgbmV3IFRHX1BPUlRJT05fQ09MVU1OIGFuZApUR19QT1JUSU9OX1RBUkdFVCB2 YXJpYWJsZXMuCi0tLQogZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbCAgICAgICAgICAgICAg ICAgICAgfCAyNCArKysrKysrKysrKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2NvbXAuYyAg ICAgICAgICAgICAgICAgfCAyNyArKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jICAgICAgICAgICAgICAgICB8IDMyICsrKysrKysrKysrKysrKwogc3JjL3Bs L3BscGdzcWwvc3JjL3BscGdzcWwuaCAgICAgICAgICAgICAgICAgfCAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dCB8IDQyICsrKysrKysrKyst LS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwgICAg ICB8IDE0ICsrKystLS0KIDYgZmlsZXMgY2hhbmdlZCwgMTE1IGluc2VydGlvbnMoKyksIDI2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IDc4ZTQ5ODMxMzliLi4zMWJkODI0 ZWQzZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC00MjQ1LDYgKzQyNDUsMzAgQEAgQVNTRVJUIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25kaXRpb248L3JlcGxhY2VhYmxlPiA8 b3B0aW9uYWw+ICwgPHJlcGwKICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgIDx2YXJsaXN0ZW50cnkgaWQ9InBscGdzcWwtZG1s LXRyaWdnZXItdGctdGVtcG9yYWwtY29sdW1uIj4KKyAgICAgPHRlcm0+PHZhcm5hbWU+VEdf UEVSSU9EX05BTUU8L3Zhcm5hbWU+IDx0eXBlPnRleHQ8L3R5cGU+PC90ZXJtPgorICAgICA8 bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICB0aGUgY29sdW1uIG5hbWUgdXNlZCBp biBhIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsCisgICAgICAg b3IgZWxzZSA8c3ltYm9sPk5VTEw8L3N5bWJvbD4uCisgICAgICA8L3BhcmE+CisgICAgIDwv bGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICA8dmFybGlzdGVudHJ5IGlk PSJwbHBnc3FsLWRtbC10cmlnZ2VyLXRnLXRlbXBvcmFsLXRhcmdldCI+CisgICAgIDx0ZXJt Pjx2YXJuYW1lPlRHX1BFUklPRF9CT1VORFM8L3Zhcm5hbWU+IDx0eXBlPnRleHQ8L3R5cGU+ PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICB0aGUgcmFu Z2UvbXVsdGlyYW5nZS9ldGMuIGdpdmVuIGFzIHRoZSBib3VuZHMgb2YgYQorICAgICAgIDxs aXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsIGVpdGhlciBkaXJlY3Rs eSAod2l0aCBwYXJlbnMgc3ludGF4KQorICAgICAgIG9yIGNvbXB1dGVkIGZyb20gdGhlIDxs aXRlcmFsPkZST008L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5UTzwvbGl0ZXJhbD4gYm91bmRz LgorICAgICAgIDxzeW1ib2w+TlVMTDwvc3ltYm9sPiBpZiA8bGl0ZXJhbD5GT1IgUE9SVElP TiBPRjwvbGl0ZXJhbD4gd2FzIG5vdCB1c2VkLgorICAgICAgIFRoaXMgaXMgYSB0ZXh0IHZh bHVlIGJhc2VkIG9uIHRoZSB0eXBlJ3Mgb3V0cHV0IGZ1bmN0aW9uLAorICAgICAgIHNpbmNl IHRoZSB0eXBlIGNhbid0IGJlIGtub3duIGF0IGZ1bmN0aW9uIGNyZWF0aW9uIHRpbWUuCisg ICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CiAg ICA8L3ZhcmlhYmxlbGlzdD4KICAgPC9wYXJhPgogCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfY29tcC5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2NvbXAuYwppbmRl eCBhYjIxNTg4NTIyMi4uMGVlZmE0ZTc3ZjkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3Fs L3NyYy9wbF9jb21wLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2NvbXAuYwpAQCAt NzE3LDYgKzcxNywzMyBAQCBkb19jb21waWxlKEZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvLAog CQkJdmFyLT5kdHlwZSA9IFBMUEdTUUxfRFRZUEVfUFJPTUlTRTsKIAkJCSgoUExwZ1NRTF92 YXIgKikgdmFyKS0+cHJvbWlzZSA9IFBMUEdTUUxfUFJPTUlTRV9UR19BUkdWOwogCisJCQkv KiBBZGQgdGhlIHZhcmlhYmxlIHRnX3BlcmlvZF9uYW1lICovCisJCQl2YXIgPSBwbHBnc3Fs X2J1aWxkX3ZhcmlhYmxlKCJ0Z19wZXJpb2RfbmFtZSIsIDAsCisJCQkJCQkJCQkJIHBscGdz cWxfYnVpbGRfZGF0YXR5cGUoVEVYVE9JRCwKKwkJCQkJCQkJCQkJCQkJCQktMSwKKwkJCQkJ CQkJCQkJCQkJCQlmdW5jdGlvbi0+Zm5faW5wdXRfY29sbGF0aW9uLAorCQkJCQkJCQkJCQkJ CQkJCU5VTEwpLAorCQkJCQkJCQkJCSB0cnVlKTsKKwkJCUFzc2VydCh2YXItPmR0eXBlID09 IFBMUEdTUUxfRFRZUEVfVkFSKTsKKwkJCXZhci0+ZHR5cGUgPSBQTFBHU1FMX0RUWVBFX1BS T01JU0U7CisJCQkoKFBMcGdTUUxfdmFyICopIHZhciktPnByb21pc2UgPSBQTFBHU1FMX1BS T01JU0VfVEdfUEVSSU9EX05BTUU7CisKKwkJCS8qCisJCQkgKiBBZGQgdGhlIHZhcmlhYmxl IHRvIHRnX3BlcmlvZF9ib3VuZHMuCisJCQkgKiBUaGlzIGNvdWxkIGJlIGFueSByYW5nZXR5 cGUgb3IgbXVsdGlyYW5nZXR5cGUKKwkJCSAqIG9yIHVzZXItc3VwcGxpZWQgdHlwZSwKKwkJ CSAqIHNvIHRoZSBiZXN0IHdlIGNhbiBvZmZlciBpcyBhIFRFWFQgdmFyaWFibGUuCisJCQkg Ki8KKwkJCXZhciA9IHBscGdzcWxfYnVpbGRfdmFyaWFibGUoInRnX3BlcmlvZF9ib3VuZHMi LCAwLAorCQkJCQkJCQkJCSBwbHBnc3FsX2J1aWxkX2RhdGF0eXBlKFRFWFRPSUQsCisJCQkJ CQkJCQkJCQkJCQkJLTEsCisJCQkJCQkJCQkJCQkJCQkJZnVuY3Rpb24tPmZuX2lucHV0X2Nv bGxhdGlvbiwKKwkJCQkJCQkJCQkJCQkJCQlOVUxMKSwKKwkJCQkJCQkJCQkgdHJ1ZSk7CisJ CQlBc3NlcnQodmFyLT5kdHlwZSA9PSBQTFBHU1FMX0RUWVBFX1ZBUik7CisJCQl2YXItPmR0 eXBlID0gUExQR1NRTF9EVFlQRV9QUk9NSVNFOworCQkJKChQTHBnU1FMX3ZhciAqKSB2YXIp LT5wcm9taXNlID0gUExQR1NRTF9QUk9NSVNFX1RHX1BFUklPRF9CT1VORFM7CisKIAkJCWJy ZWFrOwogCiAJCWNhc2UgUExQR1NRTF9FVkVOVF9UUklHR0VSOgpkaWZmIC0tZ2l0IGEvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMKaW5kZXggZTViMGRhMDRlM2MuLjM3MTg0MjI0NTAzIDEwMDY0NAotLS0gYS9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZXhlYy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMKQEAgLTEzNjksNiArMTM2OSw3IEBAIHBscGdzcWxfZnVsZmlsbF9wcm9taXNlKFBMcGdT UUxfZXhlY3N0YXRlICplc3RhdGUsCiAJCQkJCQlQTHBnU1FMX3ZhciAqdmFyKQogewogCU1l bW9yeUNvbnRleHQgb2xkY29udGV4dDsKKwlGb3JQb3J0aW9uT2ZTdGF0ZSAqZnBvOwogCiAJ aWYgKHZhci0+cHJvbWlzZSA9PSBQTFBHU1FMX1BST01JU0VfTk9ORSkKIAkJcmV0dXJuOwkJ CQkJLyogbm90aGluZyB0byBkbyAqLwpAQCAtMTUwMCw2ICsxNTAxLDM3IEBAIHBscGdzcWxf ZnVsZmlsbF9wcm9taXNlKFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiAJCQl9CiAJCQli cmVhazsKIAorCQljYXNlIFBMUEdTUUxfUFJPTUlTRV9UR19QRVJJT0RfTkFNRToKKwkJCWlm IChlc3RhdGUtPnRyaWdkYXRhID09IE5VTEwpCisJCQkJZWxvZyhFUlJPUiwgInRyaWdnZXIg cHJvbWlzZSBpcyBub3QgaW4gYSB0cmlnZ2VyIGZ1bmN0aW9uIik7CisJCQlpZiAoZXN0YXRl LT50cmlnZGF0YS0+dGdfdGVtcG9yYWwpCisJCQkJYXNzaWduX3RleHRfdmFyKGVzdGF0ZSwg dmFyLCBlc3RhdGUtPnRyaWdkYXRhLT50Z190ZW1wb3JhbC0+ZnBfcmFuZ2VOYW1lKTsKKwkJ CWVsc2UKKwkJCQlhc3NpZ25fc2ltcGxlX3Zhcihlc3RhdGUsIHZhciwgKERhdHVtKSAwLCB0 cnVlLCBmYWxzZSk7CisJCQlicmVhazsKKworCQljYXNlIFBMUEdTUUxfUFJPTUlTRV9UR19Q RVJJT0RfQk9VTkRTOgorCQkJZnBvID0gZXN0YXRlLT50cmlnZGF0YS0+dGdfdGVtcG9yYWw7 CisKKwkJCWlmIChlc3RhdGUtPnRyaWdkYXRhID09IE5VTEwpCisJCQkJZWxvZyhFUlJPUiwg InRyaWdnZXIgcHJvbWlzZSBpcyBub3QgaW4gYSB0cmlnZ2VyIGZ1bmN0aW9uIik7CisJCQlp ZiAoZnBvKQorCQkJeworCisJCQkJT2lkCQlmdW5jaWQ7CisJCQkJYm9vbAl2YXJsZW5hOwor CisJCQkJZ2V0VHlwZU91dHB1dEluZm8oZnBvLT5mcF9yYW5nZVR5cGUsICZmdW5jaWQsICZ2 YXJsZW5hKTsKKwkJCQlBc3NlcnQoT2lkSXNWYWxpZChmdW5jaWQpKTsKKworCQkJCWFzc2ln bl90ZXh0X3Zhcihlc3RhdGUsIHZhciwKKwkJCQkJCQkJT2lkT3V0cHV0RnVuY3Rpb25DYWxs KGZ1bmNpZCwKKwkJCQkJCQkJCQkJCQkgIGZwby0+ZnBfdGFyZ2V0UmFuZ2UpKTsKKwkJCX0K KwkJCWVsc2UKKwkJCQlhc3NpZ25fc2ltcGxlX3Zhcihlc3RhdGUsIHZhciwgKERhdHVtKSAw LCB0cnVlLCBmYWxzZSk7CisJCQlicmVhazsKKwogCQljYXNlIFBMUEdTUUxfUFJPTUlTRV9U R19FVkVOVDoKIAkJCWlmIChlc3RhdGUtPmV2dHJpZ2RhdGEgPT0gTlVMTCkKIAkJCQllbG9n KEVSUk9SLCAiZXZlbnQgdHJpZ2dlciBwcm9taXNlIGlzIG5vdCBpbiBhbiBldmVudCB0cmln Z2VyIGZ1bmN0aW9uIik7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3Nx bC5oIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaAppbmRleCBkMDBiOWNlMGRhMi4u YTgzYzVmMjRjZTAgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgK KysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaApAQCAtODQsNiArODQsOCBAQCB0 eXBlZGVmIGVudW0gUExwZ1NRTF9wcm9taXNlX3R5cGUKIAlQTFBHU1FMX1BST01JU0VfVEdf QVJHViwKIAlQTFBHU1FMX1BST01JU0VfVEdfRVZFTlQsCiAJUExQR1NRTF9QUk9NSVNFX1RH X1RBRywKKwlQTFBHU1FMX1BST01JU0VfVEdfUEVSSU9EX05BTUUsCisJUExQR1NRTF9QUk9N SVNFX1RHX1BFUklPRF9CT1VORFMsCiB9IFBMcGdTUUxfcHJvbWlzZV90eXBlOwogCiAvKgpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dAppbmRl eCAxOWE0ZTlhYzUyMy4uNGY5ZWUyOGYwNzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CkBAIC01MTIsMTYgKzUxMiwxOCBAQCBSRVRV Uk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxwZ3NxbCBBUwogJCQKIEJFR0lOCiAgIElGIFRHX09Q ID0gJ0lOU0VSVCcgVEhFTgotICAgIFJBSVNFIE5PVElDRSAnJTogJSAlLCBORVcgdGFibGUg PSAlJywKLSAgICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdf YWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUp OworICAgIFJBSVNFIE5PVElDRSAnJTogJSBGT1IgUE9SVElPTiBPRiAlICglKSAlLCBORVcg dGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBUR19QRVJJT0RfTkFNRSwgVEdf UEVSSU9EX0JPVU5EUywgVEdfTEVWRUwsCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cobmV3 X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7CiAgIEVM U0lGIFRHX09QID0gJ1VQREFURScgVEhFTgotICAgIFJBSVNFIE5PVElDRSAnJTogJSAlLCBP TEQgdGFibGUgPSAlLCBORVcgdGFibGUgPSAlJywKLSAgICAgIFRHX05BTUUsIFRHX09QLCBU R19MRVZFTCwKKyAgICBSQUlTRSBOT1RJQ0UgJyU6ICUgRk9SIFBPUlRJT04gT0YgJSAoJSkg JSwgT0xEIHRhYmxlID0gJSwgTkVXIHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19P UCwgVEdfUEVSSU9EX05BTUUsIFRHX1BFUklPRF9CT1VORFMsIFRHX0xFVkVMLAogICAgICAg KFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkg RlJPTSBvbGRfdGFibGUpLAogICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6 dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOwogICBFTFNJRiBUR19P UCA9ICdERUxFVEUnIFRIRU4KLSAgICBSQUlTRSBOT1RJQ0UgJyU6ICUgJSwgT0xEIHRhYmxl ID0gJScsCi0gICAgICBUR19OQU1FLCBUR19PUCwgVEdfTEVWRUwsIChTRUxFQ1Qgc3RyaW5n X2FnZyhvbGRfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gb2xkX3RhYmxl KTsKKyAgICBSQUlTRSBOT1RJQ0UgJyU6ICUgRk9SIFBPUlRJT04gT0YgJSAoJSkgJSwgT0xE IHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19PUCwgVEdfUEVSSU9EX05BTUUsIFRH X1BFUklPRF9CT1VORFMsIFRHX0xFVkVMLAorICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKG9s ZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFibGUpOwogICBF TkQgSUY7CiAgIFJFVFVSTiBOVUxMOwogRU5EOwpAQCAtNTU0LDI5ICs1NTYsMjkgQEAgQkVH SU47CiBVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAogICBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0wMScKICAgU0VUIG5hbWUgPSAn MjAxOC0wMS0xNV90b18yMDE5LTAxLTAxJzsKLU5PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rl c3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAx OC0wMS0wMSwyMDE4LTAxLTE1KSIsb25lKQotTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVz dF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5ULCBORVcgdGFibGUgPSAoIlsx LDIpIiwiWzIwMTgtMDEtMDEsMjAxOC0wMS0xNSkiLG9uZSkKLU5PVElDRTogIGZvcl9wb3J0 aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBST1csIE5FVyB0YWJsZSA9ICgiWzEs MikiLCJbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKQotTk9USUNFOiAgZm9yX3BvcnRp b25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQgU1RBVEVNRU5ULCBORVcgdGFi bGUgPSAoIlsxLDIpIiwiWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkiLG9uZSkKLU5PVElDRTog IGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWc6IFVQREFURSBST1csIE9MRCB0YWJs ZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxl ID0gKCJbMSwyKSIsIlsyMDE4LTAxLTE1LDIwMTktMDEtMDEpIiwyMDE4LTAxLTE1X3RvXzIw MTktMDEtMDEpCi1OT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnX3N0 bXQ6IFVQREFURSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTE1 LDIwMTktMDEtMDEpIiwyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEpCitOT1RJQ0U6ICBmb3Jf cG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnOiBJTlNFUlQgRk9SIFBPUlRJT04gT0YgPE5V TEw+ICg8TlVMTD4pIFJPVywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIw MTgtMDEtMTUpIixvbmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90 cmlnX3N0bXQ6IElOU0VSVCBGT1IgUE9SVElPTiBPRiA8TlVMTD4gKDxOVUxMPikgU1RBVEVN RU5ULCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAxOC0wMS0xNSkiLG9u ZSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWc6IElOU0VSVCBG T1IgUE9SVElPTiBPRiA8TlVMTD4gKDxOVUxMPikgUk9XLCBORVcgdGFibGUgPSAoIlsxLDIp IiwiWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkiLG9uZSkKK05PVElDRTogIGZvcl9wb3J0aW9u X29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdDogSU5TRVJUIEZPUiBQT1JUSU9OIE9GIDxOVUxM PiAoPE5VTEw+KSBTVEFURU1FTlQsIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRh dGVfdHJpZzogVVBEQVRFIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChbMjAxOC0wMS0xNSwy MDE5LTAxLTAxKSkgUk9XLCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAy MC0wMS0wMSkiLG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0xNSwyMDE5 LTAxLTAxKSIsMjAxOC0wMS0xNV90b18yMDE5LTAxLTAxKQorTk9USUNFOiAgZm9yX3BvcnRp b25fb2ZfdGVzdF91cGRhdGVfdHJpZ19zdG10OiBVUERBVEUgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKFsyMDE4LTAxLTE1LDIwMTktMDEtMDEpKSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9 ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwgTkVXIHRhYmxlID0g KCJbMSwyKSIsIlsyMDE4LTAxLTE1LDIwMTktMDEtMDEpIiwyMDE4LTAxLTE1X3RvXzIwMTkt MDEtMDEpCiBST0xMQkFDSzsKIEJFR0lOOwogREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2Zf dGVzdAogICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEt MjEnOwotTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZzogSU5TRVJU IFJPVywgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTIxLDIwMjAtMDEtMDEpIixv bmUpCi1OT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnX3N0bXQ6IElO U0VSVCBTVEFURU1FTlQsIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0yMSwyMDIw LTAxLTAxKSIsb25lKQotTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJp ZzogREVMRVRFIFJPVywgT0xEIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMjAt MDEtMDEpIixvbmUpCi1OT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2RlbGV0ZV90cmln X3N0bXQ6IERFTEVURSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0w MS0wMSwyMDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9p bnNlcnRfdHJpZzogSU5TRVJUIEZPUiBQT1JUSU9OIE9GIDxOVUxMPiAoPE5VTEw+KSBST1cs IE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0yMSwyMDIwLTAxLTAxKSIsb25lKQor Tk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZ19zdG10OiBJTlNFUlQg Rk9SIFBPUlRJT04gT0YgPE5VTEw+ICg8TlVMTD4pIFNUQVRFTUVOVCwgTkVXIHRhYmxlID0g KCJbMSwyKSIsIlsyMDE4LTAxLTIxLDIwMjAtMDEtMDEpIixvbmUpCitOT1RJQ0U6ICBmb3Jf cG9ydGlvbl9vZl90ZXN0X2RlbGV0ZV90cmlnOiBERUxFVEUgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgKCgsMjAxOC0wMS0yMSkpIFJPVywgT0xEIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4 LTAxLTAxLDIwMjAtMDEtMDEpIixvbmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0 X2RlbGV0ZV90cmlnX3N0bXQ6IERFTEVURSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoKCwy MDE4LTAxLTIxKSkgU1RBVEVNRU5ULCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEt MDEsMjAyMC0wMS0wMSkiLG9uZSkKIFJPTExCQUNLOwogQkVHSU47CiBVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAogICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8g JzIwMTgtMDEtMDInCiAgIFNFVCBuYW1lID0gJ05VTExfdG9fMjAxOC0wMS0wMSc7Ci1OT1RJ Q0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnOiBJTlNFUlQgUk9XLCBORVcg dGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDIsMjAyMC0wMS0wMSkiLG9uZSkKLU5PVElD RTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdDogSU5TRVJUIFNUQVRF TUVOVCwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAyLDIwMjAtMDEtMDEpIixv bmUpCi1OT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnOiBVUERBVEUg Uk9XLCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkiLG9u ZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKSIsTlVM TF90b18yMDE4LTAxLTAxKQotTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVf dHJpZ19zdG10OiBVUERBVEUgU1RBVEVNRU5ULCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzIw MTgtMDEtMDEsMjAyMC0wMS0wMSkiLG9uZSksIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAx OC0wMS0wMSwyMDE4LTAxLTAyKSIsTlVMTF90b18yMDE4LTAxLTAxKQorTk9USUNFOiAgZm9y X3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRfdHJpZzogSU5TRVJUIEZPUiBQT1JUSU9OIE9GIDxO VUxMPiAoPE5VTEw+KSBST1csIE5FVyB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMiwy MDIwLTAxLTAxKSIsb25lKQorTk9USUNFOiAgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRf dHJpZ19zdG10OiBJTlNFUlQgRk9SIFBPUlRJT04gT0YgPE5VTEw+ICg8TlVMTD4pIFNUQVRF TUVOVCwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAyLDIwMjAtMDEtMDEpIixv bmUpCitOT1RJQ0U6ICBmb3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnOiBVUERBVEUg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKCgsMjAxOC0wMS0wMikpIFJPVywgT0xEIHRhYmxl ID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIixvbmUpLCBORVcgdGFibGUg PSAoIlsxLDIpIiwiWzIwMTgtMDEtMDEsMjAxOC0wMS0wMikiLE5VTExfdG9fMjAxOC0wMS0w MSkKK05PVElDRTogIGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3RyaWdfc3RtdDogVVBE QVRFIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0ICgoLDIwMTgtMDEtMDIpKSBTVEFURU1FTlQs IE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSIsb25lKSwg TkVXIHRhYmxlID0gKCJbMSwyKSIsIlsyMDE4LTAxLTAxLDIwMTgtMDEtMDIpIixOVUxMX3Rv XzIwMTgtMDEtMDEpCiBST0xMQkFDSzsKIC0tIFRlc3Qgd2l0aCBtdWx0aXJhbmdlcwogQ1JF QVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2Zvcl9wb3J0aW9uX29mLnNxbAppbmRleCBlNjZhNTVmZTAxNC4uY2QxNjQ1YTQzNmYgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwKQEAgLTM5NiwxNiAr Mzk2LDE4IEBAIFJFVFVSTlMgVFJJR0dFUiBMQU5HVUFHRSBwbHBnc3FsIEFTCiAkJAogQkVH SU4KICAgSUYgVEdfT1AgPSAnSU5TRVJUJyBUSEVOCi0gICAgUkFJU0UgTk9USUNFICclOiAl ICUsIE5FVyB0YWJsZSA9ICUnLAotICAgICAgVEdfTkFNRSwgVEdfT1AsIFRHX0xFVkVMLCAo U0VMRUNUIHN0cmluZ19hZ2cobmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBG Uk9NIG5ld190YWJsZSk7CisgICAgUkFJU0UgTk9USUNFICclOiAlIEZPUiBQT1JUSU9OIE9G ICUgKCUpICUsIE5FVyB0YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwgVEdfT1AsIFRHX1BF UklPRF9OQU1FLCBUR19QRVJJT0RfQk9VTkRTLCBUR19MRVZFTCwKKyAgICAgIChTRUxFQ1Qg c3RyaW5nX2FnZyhuZXdfdGFibGU6OnRleHQsICcsICcgT1JERVIgQlkgaWQpIEZST00gbmV3 X3RhYmxlKTsKICAgRUxTSUYgVEdfT1AgPSAnVVBEQVRFJyBUSEVOCi0gICAgUkFJU0UgTk9U SUNFICclOiAlICUsIE9MRCB0YWJsZSA9ICUsIE5FVyB0YWJsZSA9ICUnLAotICAgICAgVEdf TkFNRSwgVEdfT1AsIFRHX0xFVkVMLAorICAgIFJBSVNFIE5PVElDRSAnJTogJSBGT1IgUE9S VElPTiBPRiAlICglKSAlLCBPTEQgdGFibGUgPSAlLCBORVcgdGFibGUgPSAlJywKKyAgICAg IFRHX05BTUUsIFRHX09QLCBUR19QRVJJT0RfTkFNRSwgVEdfUEVSSU9EX0JPVU5EUywgVEdf TEVWRUwsCiAgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAn IE9SREVSIEJZIGlkKSBGUk9NIG9sZF90YWJsZSksCiAgICAgICAoU0VMRUNUIHN0cmluZ19h Z2cobmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7 CiAgIEVMU0lGIFRHX09QID0gJ0RFTEVURScgVEhFTgotICAgIFJBSVNFIE5PVElDRSAnJTog JSAlLCBPTEQgdGFibGUgPSAlJywKLSAgICAgIFRHX05BTUUsIFRHX09QLCBUR19MRVZFTCwg KFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkg RlJPTSBvbGRfdGFibGUpOworICAgIFJBSVNFIE5PVElDRSAnJTogJSBGT1IgUE9SVElPTiBP RiAlICglKSAlLCBPTEQgdGFibGUgPSAlJywKKyAgICAgIFRHX05BTUUsIFRHX09QLCBUR19Q RVJJT0RfTkFNRSwgVEdfUEVSSU9EX0JPVU5EUywgVEdfTEVWRUwsCisgICAgICAoU0VMRUNU IHN0cmluZ19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG9s ZF90YWJsZSk7CiAgIEVORCBJRjsKICAgUkVUVVJOIE5VTEw7CiBFTkQ7Ci0tIAoyLjQyLjAK Cg== --------------QJ7G02LVkbGy9abPg7beeymq Content-Type: text/x-patch; charset=UTF-8; name="v46-0008-Add-PERIODs.patch" Content-Disposition: attachment; filename="v46-0008-Add-PERIODs.patch" Content-Transfer-Encoding: base64 RnJvbSA0MTBhMmYxMTM1NTJhNDQyOGQzNGM5OTRkNzIxNDhhYzUyMGU0NzNkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgOSBKYW4gMjAyMSAyMTo1OTo0MyAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggdjQ2IDgvOF0gQWRkIFBFUklPRHMKCi0gQWRkZWQgcGFyc2lu ZyBmb3IgU1FMOjIwMTEgc3ludGF4IHRvIGRlZmluZSBhbiBhcHBsaWNhdGlvbi10aW1lIFBF UklPRCBvbiBhCiAgdGFibGUgKGluIGJvdGggQ1JFQVRFIFRBQkxFIGFuZCBBTFRFUiBUQUJM RSkuIE1ha2Ugc3VyZSB3ZSBjcmVhdGUgdGhlIFBFUklPRAogIGFmdGVyIGNvbHVtbnMgYXJl IGtub3duIChzaW5jZSBQRVJJT0RzIGNhbiByZWZlciB0byB0aGVtKSBidXQgYmVmb3JlCiAg Y29uc3RyYWludHMgYXJlIGhhbmRsZWQgKHNpbmNlIFBFUklPRHMgY2FuIGFwcGVhciBpbiB0 aGVtKS4KLSBBZGRlZCBBTFRFUiBUQUJMRSBEUk9QIHN1cHBvcnQgZm9yIFBFUklPRHMuCi0g Q3JlYXRlZCBwb3N0Z3Jlcy5wZ19wZXJpb2QgdGFibGUuCi0gQ3JlYXRlZCBpbmZvcm1hdGlv bl9zY2hlbWEucGVyaW9kcyB2aWV3LgotIEFkZGVkIHBnX2R1bXAgc3VwcG9ydC4KLSBBZGRl ZCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbi4KLSBBdXRvbWF0aWNhbGx5IGRlZmluZSBhIGNv bnN0cmFpbnQgZm9yIGVhY2ggUEVSSU9EIHJlcXVpcmluZyB0aGUgc3RhcnQgY29sdW1uCiAg dG8gYmUgbGVzcyB0aGFuIHRoZSBlbmQgY29sdW1uLgotIFdoZW4gY3JlYXRpbmcgYSBQRVJJ T0QsIGNob29zZSBhbiBhcHByb3ByaWF0ZSByYW5nZSB0eXBlIHdlIGNhbiB1c2UgdG8KICBp bXBsZW1lbnQgUEVSSU9ELXJlbGF0ZWQgb3BlcmF0aW9ucy4gWW91IGNhbiBjaG9vc2Ugb25l IGV4cGxpY2l0bHkgaWYgdGhlcmUKICBpcyBhbWJpZ3VpdHkgKGR1ZSB0byBtdWx0aXBsZSBy YW5nZSB0eXBlcyBjcmVhdGVkIG92ZXIgdGhlIHNhbWUgYmFzZSB0eXBlKS4KLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTEyICsKIGRv Yy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNTggKwog ZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sICAgICAgICAgIHwgICA2MyAr CiBkb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgICAy ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwgICAgICAgICAgICAgfCAg IDMxICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAg fCAgICAyICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgICAgICAgICAg ICB8ICAgNjUgKy0KIGRvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwgICAgICAgICAgICAg ICAgICB8ICAgIDMgKy0KIGRvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwgICAgICAgICAg ICAgICAgICB8ICAgIDMgKy0KIGRvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwgICAgICAgICAg ICAgICAgICAgICB8ICAgMTEgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAg ICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAg ICAgICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVu Y3kuYyAgICAgICAgICAgICAgfCAgIDE0ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5j ICAgICAgICAgICAgICAgICAgICB8ICAgNzUgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZv cm1hdGlvbl9zY2hlbWEuc3FsICAgIHwgICAyMyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9t ZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9n L29iamVjdGFkZHJlc3MuYyAgICAgICAgICAgfCAgIDcyICsKIHNyYy9iYWNrZW5kL2NhdGFs b2cvcGdfcGVyaW9kLmMgICAgICAgICAgICAgICB8ICAxMzIgKwogc3JjL2JhY2tlbmQvY2F0 YWxvZy9zcWxfZmVhdHVyZXMudHh0ICAgICAgICAgIHwgICAgMiArLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvY29tbWVudC5jICAgICAgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNr ZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8ICAgIDIgKwogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMv YmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgODczICsrLQog c3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jICAgICAgICAgICAgICAgIHwgICAgMiAr CiBzcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAgfCAgICA0 ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYyAgICAgICAgfCAg IDQwICstCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAg fCAgICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAg ICB8ICAxMjggKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAg ICAgICB8ICAgNDUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jICAg ICAgICAgICB8ICAgMTAgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAg ICAgICAgICAgIHwgIDE3MiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L01ha2VmaWxlICAg ICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMg ICAgICAgICAgICAgICAgfCAgIDU2ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNj YWNoZS5jICAgICAgICAgICB8ICAgODcgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9h cmNoaXZlci5jICAgICAgICAgIHwgICAgMSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j ICAgICAgICAgICAgICAgICAgICAgfCAgMTc1ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8ICAgIDcgKwogc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAzNiArCiBzcmMvaW5jbHVkZS9jYXRh bG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvaGVhcC5oICAgICAgICAgICAgICAgICAgICB8ICAgIDQgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2luZGV4LmggICAgICAgICAgICAgICAgfCAgICAxIC0KIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcGVyaW9kLmggICAgICAgICAgICAgICB8ICAgNTggKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19yYW5nZS5oICAgICAgICAgICAgICAgIHwgICAgMiArCiBzcmMv aW5jbHVkZS9jb21tYW5kcy90YWJsZWNtZHMuaCAgICAgICAgICAgICAgfCAgICA0ICstCiBz cmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgICA2ICst CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDM5 ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAg ICAyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8 ICAgIDIgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmggICAgICAgICAg ICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggICAgICAgICAgICAg ICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS91dGlscy9wZXJpb2QuaCAgICAgICAgICAgICAg ICAgICAgfCAgIDIxICsKIC4uLi90ZXN0X2RkbF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2Uu YyAgICAgICB8ICAgIDYgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlv bl9vZi5vdXQgIHwgICA1OCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BlcmlvZHMu b3V0ICAgICAgICAgfCAgMjc1ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmls ZWdlcy5vdXQgICAgICB8ICAgMjkgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9v dmVybGFwcy5vdXQgICAgIHwgNDk0MiArKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAgMiArLQogc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsICAgICAgIHwgICA1MCArCiBzcmMvdGVz dC9yZWdyZXNzL3NxbC9wZXJpb2RzLnNxbCAgICAgICAgICAgICAgfCAgMTg2ICsKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMuc3FsICAgICAgICAgICB8ICAgMjggKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgMzM5NyArKysr KysrKysrLQogNjQgZmlsZXMgY2hhbmdlZCwgMTEyNTcgaW5zZXJ0aW9ucygrKSwgMjAyIGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdf cGVyaW9kLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC91dGlscy9hZHQvcGVy aW9kLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Blcmlv ZC5oCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvdXRpbHMvcGVyaW9kLmgKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BlcmlvZHMub3V0 CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGVyaW9kcy5zcWwK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCmluZGV4IGNjNmNmOWJlZjA5Li5mZWExYjhhMzAzZSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKQEAgLTIzMCw2ICsyMzAsMTEgQEAKICAgICAgIDxlbnRyeT5pbmZvcm1h dGlvbiBhYm91dCBwYXJ0aXRpb24ga2V5IG9mIHRhYmxlczwvZW50cnk+CiAgICAgIDwvcm93 PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1w Zy1wZXJpb2QiPjxzdHJ1Y3RuYW1lPnBnX3BlcmlvZDwvc3RydWN0bmFtZT48L2xpbms+PC9l bnRyeT4KKyAgICAgIDxlbnRyeT5wZXJpb2RzPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAg ICAgPHJvdz4KICAgICAgIDxlbnRyeT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXBvbGlj eSI+PHN0cnVjdG5hbWU+cGdfcG9saWN5PC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5Pgog ICAgICAgPGVudHJ5PnJvdy1zZWN1cml0eSBwb2xpY2llczwvZW50cnk+CkBAIC01NzQzLDYg KzU3NDgsMTEzIEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g Y291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICAgYXJlIHNp bXBsZSByZWZlcmVuY2VzLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93Pgor CisgICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CisK KworIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy1wZXJpb2QiPgorICA8dGl0bGU+PHN0cnVjdG5h bWU+cGdfcGVyaW9kPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGluZGV4dGVybSB6b25l PSJjYXRhbG9nLXBnLXBlcmlvZCI+CisgICA8cHJpbWFyeT5wZ19wZXJpb2Q8L3ByaW1hcnk+ CisgIDwvaW5kZXh0ZXJtPgorCisgIDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5h bWU+cGdfcGVyaW9kPC9zdHJ1Y3RuYW1lPiBzdG9yZXMKKyAgIGluZm9ybWF0aW9uIGFib3V0 IHN5c3RlbSBhbmQgYXBwbGljYXRpb24gdGltZSBwZXJpb2RzLgorICA8L3BhcmE+CisKKyAg PHBhcmE+CisgICBQZXJpb2RzIGFyZSBkZXNjcmliZWQgaW4gPHhyZWYgbGlua2VuZD0iZGRs LXBlcmlvZHMiLz4uCisgIDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVj dG5hbWU+cGdfcGVyaW9kPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KKworICAgPHRn cm91cCBjb2xzPSIxIj4KKyAgICA8dGhlYWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5v aWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBSb3cgaWRl bnRpZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxy b3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZXJuYW1lPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+dGV4dDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIFBlcmlvZCBuYW1lCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnBlcnJlbGlkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAg IChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2xhc3MiPjxzdHJ1Y3Ru YW1lPnBnX2NsYXNzPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3Ry dWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIHRh YmxlIHRoaXMgcGVyaW9kIGJlbG9uZ3MgdG8KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+cGVyc3RhcnQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQyPC90eXBlPgorICAg ICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctYXR0cmlidXRlIj48 c3RydWN0bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0Zmll bGQ+YXR0bnVtPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4K KyAgICAgICBUaGUgbnVtYmVyIG9mIHRoZSBzdGFydCBjb2x1bW4KKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+cGVyZW5kPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50Mjwv dHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF0 dHJpYnV0ZSI+PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAg ICAgPHBhcmE+CisgICAgICAgVGhlIG51bWJlciBvZiB0aGUgZW5kIGNvbHVtbgorICAgICAg PC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5wZXJyYW5nZTwvc3RydWN0ZmllbGQ+IDx0 eXBlPmludDI8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0 YWxvZy1wZy1hdHRyaWJ1dGUiPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFt ZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5hdHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwv cGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBudW1iZXIgb2YgdGhlIDxsaXRlcmFs PkdFTkVSQVRFRDwvbGl0ZXJhbD4gY29sdW1uIHRoYXQgaW1wbGVtZW50cyB0aGUgPGxpdGVy YWw+UEVSSU9EPC9saXRlcmFsPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50 cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+cGVyY29uc3RyYWludDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAg ICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbnN0cmFpbnQiPjxz dHJ1Y3RuYW1lPnBnX2NvbnN0cmFpbnQ8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0Zmll bGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBUaGUgT0lEIG9mIHRoZSBwZXJpb2QncyA8bGl0ZXJhbD5DSEVDSzwvbGl0ZXJhbD4g Y29uc3RyYWludAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAg PC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IGRlYTA0ZDY0 ZGI2Li5lMjYxMmY2MWFmNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMTQwOSw2ICsxNDA5LDY0IEBAIENSRUFU RSBUQUJMRSBjaXJjbGVzICgKICAgPC9zZWN0Mj4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlk PSJkZGwtcGVyaW9kcyI+CisgIDx0aXRsZT5QZXJpb2RzPC90aXRsZT4KKworICA8cGFyYT4K KyAgIFBlcmlvZHMgYXJlIGRlZmluaXRpb25zIG9uIGEgdGFibGUgdGhhdCBhc3NvY2lhdGUg YSBwZXJpb2QgbmFtZSB3aXRoIGEgc3RhcnQKKyAgIGNvbHVtbiBhbmQgYW4gZW5kIGNvbHVt bi4gIEJvdGggY29sdW1ucyBtdXN0IGJlIG9mIGV4YWN0bHkgdGhlIHNhbWUgdHlwZQorICAg KGluY2x1ZGluZyBjb2xsYXRpb24pLCBoYXZlIGEgYnRyZWUgb3BlcmF0b3IgY2xhc3MsIGFu ZCB0aGUgc3RhcnQgY29sdW1uCisgICB2YWx1ZSBtdXN0IGJlIHN0cmljdGx5IGxlc3MgdGhh biB0aGUgZW5kIGNvbHVtbiB2YWx1ZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhl cmUgYXJlIHR3byB0eXBlcyBvZiBwZXJpb2RzOiBhcHBsaWNhdGlvbiBhbmQgc3lzdGVtLiAg U3lzdGVtIHBlcmlvZHMgYXJlCisgICBkaXN0aW5ndWlzaGVkIGJ5IHRoZWlyIG5hbWUgd2hp Y2ggbXVzdCBiZSA8bGl0ZXJhbD5TWVNURU1fVElNRTwvbGl0ZXJhbD4uICBBbnkKKyAgIG90 aGVyIG5hbWUgaXMgYW4gYXBwbGljYXRpb24gcGVyaW9kLgorICA8L3BhcmE+CisKKyAgPHNl Y3QyIGlkPSJkZGwtcGVyaW9kcy1hcHBsaWNhdGlvbi1wZXJpb2RzIj4KKyAgPHRpdGxlPkFw cGxpY2F0aW9uIFBlcmlvZHM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmlt YXJ5PnBlcmlvZDwvcHJpbWFyeT4KKyAgICA8c2Vjb25kYXJ5PmFwcGxpY2F0aW9uPC9zZWNv bmRhcnk+CisgICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgQXBwbGljYXRpb24g cGVyaW9kcyBhcmUgZGVmaW5lZCBvbiBhIHRhYmxlIHVzaW5nIHRoZSBmb2xsb3dpbmcgc3lu dGF4OgorICAgPC9wYXJhPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgYmls bGluZ19hZGRyZXNzZXMgKAorICBjdXN0b21lcl9pZCBpbnRlZ2VyLAorICBhZGRyZXNzX2lk IGludGVnZXIsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdG8gZGF0ZSwKKyAgPGVt cGhhc2lzPlBFUklPRCBGT1IgdmFsaWRpdHkgKHZhbGlkX2Zyb20sIHZhbGlkX3RvKTwvZW1w aGFzaXM+CispOworPC9wcm9ncmFtbGlzdGluZz4KKworICAgPHBhcmE+CisgICAgQXBwbGlj YXRpb24gcGVyaW9kcyBjYW4gYmUgdXNlZCB0byBkZWZpbmUgdGVtcG9yYWwgcHJpbWFyeSBh bmQgZm9yZWlnbiBrZXlzLgorICAgIEFueSB0YWJsZSB3aXRoIGEgdGVtcG9yYWwgcHJpbWFy eSBrZXkgaXMgYSB0ZW1wb3JhbCB0YWJsZSBhbmQgc3VwcG9ydHMgdGVtcG9yYWwgdXBkYXRl IGFuZCBkZWxldGUgY29tbWFuZHMuCisgICA8L3BhcmE+CisgIDwvc2VjdDI+CisKKyAgPHNl Y3QyIGlkPSJkZGwtcGVyaW9kcy1zeXN0ZW0tcGVyaW9kcyI+CisgICA8dGl0bGU+U3lzdGVt IFBlcmlvZHM8L3RpdGxlPgorCisgICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnBlcmlv ZDwvcHJpbWFyeT4KKyAgICA8c2Vjb25kYXJ5PnN5c3RlbTwvc2Vjb25kYXJ5PgorICAgPC9p bmRleHRlcm0+CisKKyAgIDxwYXJhPgorICAgIFBlcmlvZHMgZm9yIDxsaXRlcmFsPlNZU1RF TV9USU1FPC9saXRlcmFsPiBhcmUgY3VycmVudGx5IG5vdCBpbXBsZW1lbnRlZC4KKyAgIDwv cGFyYT4KKyAgPC9zZWN0Mj4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJkZGwtc3lzdGVt LWNvbHVtbnMiPgogICA8dGl0bGU+U3lzdGVtIENvbHVtbnM8L3RpdGxlPgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwKaW5kZXggOTQ0MmIwNzE4YzAuLmIxZjhhMTQx M2MwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvaW5mb3JtYXRpb25fc2NoZW1hLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sCkBAIC00MTcxLDYg KzQxNzEsNjkgQEAgT1JERVIgQlkgYy5vcmRpbmFsX3Bvc2l0aW9uOwogICA8L3RhYmxlPgog IDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImluZm9zY2hlbWEtcGVyaW9kcyI+CisgIDx0aXRs ZT48bGl0ZXJhbD5wZXJpb2RzPC9saXRlcmFsPjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBU aGUgdmlldyA8bGl0ZXJhbD5wYXJhbWV0ZXJzPC9saXRlcmFsPiBjb250YWlucyBpbmZvcm1h dGlvbiBhYm91dCB0aGUKKyAgIHBlcmlvZHMgb2YgYWxsIHRhYmxlcyBpbiB0aGUgY3VycmVu dCBkYXRhYmFzZS4gIFRoZSBzdGFydCBhbmQgZW5kIGNvbHVtbgorICAgbmFtZXMgYXJlIG9u bHkgc2hvd24gaWYgdGhlIGN1cnJlbnQgdXNlciBoYXMgYWNjZXNzIHRvIHRoZW0gKGJ5IHdh eSBvZiBiZWluZworICAgdGhlIG93bmVyIG9yIGhhdmluZyBzb21lIHByaXZpbGVnZSkuCisg IDwvcGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PGxpdGVyYWw+cGVyaW9kczwvbGl0 ZXJhbD4gQ29sdW1uczwvdGl0bGU+CisKKyAgIDx0Z3JvdXAgY29scz0iMyI+CisgICAgPHRo ZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5Pk5hbWU8L2VudHJ5PgorICAgICAgPGVu dHJ5PkRhdGEgVHlwZTwvZW50cnk+CisgICAgICA8ZW50cnk+RGVzY3JpcHRpb248L2VudHJ5 PgorICAgICA8L3Jvdz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93 PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnRhYmxlX2NhdGFsb2c8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgIDxlbnRyeT48dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlwZT48L2VudHJ5Pgor ICAgICAgPGVudHJ5Pk5hbWUgb2YgdGhlIGRhdGFiYXNlIGNvbnRhaW5pbmcgdGhlIHBlcmlv ZCAoYWx3YXlzIHRoZSBjdXJyZW50IGRhdGFiYXNlKTwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+dGFibGVfc2NoZW1hPC9saXRl cmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+ PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBzY2hlbWEgY29udGFpbmluZyB0 aGUgcGVyaW9kPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeT48bGl0ZXJhbD50YWJsZV9uYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50 cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5O YW1lIG9mIHRoZSB0YWJsZSBjb250YWluaW5nIHRoZSBwZXJpb2Q8L2VudHJ5PgorICAgICA8 L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnBlcmlvZF9uYW1l PC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8 L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBwZXJpb2Q8L2VudHJ5 PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnN0 YXJ0X2NvbHVtbl9uYW1lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PHR5cGU+ c3FsX2lkZW50aWZpZXI8L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5OYW1lIG9mIHRo ZSBzdGFydCBjb2x1bW4gZm9yIHRoZSBwZXJpb2Q8L2VudHJ5PgorICAgICA8L3Jvdz4KKwor ICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPmVuZF9jb2x1bW5fbmFtZTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBl PjwvZW50cnk+CisgICAgICA8ZW50cnk+TmFtZSBvZiB0aGUgZW5kIGNvbHVtbiBmb3IgdGhl IHBlcmlvZDwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGJvZHk+CisgICA8L3Rncm91 cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgorCiAgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXJl ZmVyZW50aWFsLWNvbnN0cmFpbnRzIj4KICAgPHRpdGxlPjxsaXRlcmFsPnJlZmVyZW50aWFs X2NvbnN0cmFpbnRzPC9saXRlcmFsPjwvdGl0bGU+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9wbHBnc3FsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IDMx YmQ4MjRlZDNkLi5lMmM4ZmQxYzBmMiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdz cWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC00MjUwLDcgKzQy NTAsNyBAQCBBU1NFUlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbmRpdGlv bjwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD4gLCA8cmVwbAogICAgICA8dGVybT48dmFybmFt ZT5UR19QRVJJT0RfTkFNRTwvdmFybmFtZT4gPHR5cGU+dGV4dDwvdHlwZT48L3Rlcm0+CiAg ICAgIDxsaXN0aXRlbT4KICAgICAgIDxwYXJhPgotICAgICAgIHRoZSBjb2x1bW4gbmFtZSB1 c2VkIGluIGEgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGNsYXVzZSwKKyAg ICAgICB0aGUgY29sdW1uL3BlcmlvZCBuYW1lIHVzZWQgaW4gYSA8bGl0ZXJhbD5GT1IgUE9S VElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLAogICAgICAgIG9yIGVsc2UgPHN5bWJvbD5OVUxM PC9zeW1ib2w+LgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl90YWJsZS5zZ21sCmluZGV4IGM4ZjdhYjdkOTU2Li4zZjI5NmEwZTg5NyAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfdGFibGUuc2dtbApAQCAtNjEsNiArNjEsOCBAQCBBTFRFUiBU QUJMRSBbIElGIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4KICAgICBBTFRFUiBDT05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxlPiBbIERFRkVSUkFC TEUgfCBOT1QgREVGRVJSQUJMRSBdIFsgSU5JVElBTExZIERFRkVSUkVEIHwgSU5JVElBTExZ IElNTUVESUFURSBdCiAgICAgVkFMSURBVEUgQ09OU1RSQUlOVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29uc3RyYWludF9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBEUk9Q IENPTlNUUkFJTlQgWyBJRiBFWElTVFMgXSAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbnN0cmFpbnRfbmFtZTwvcmVwbGFjZWFibGU+IFsgUkVTVFJJQ1QgfCBDQVNDQURF IF0KKyAgICBBREQgUEVSSU9EIEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5zdGFydF9jb2x1bW48L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmVuZF9jb2x1bW48L3JlcGxhY2VhYmxlPiApIFsgV0lUSCAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4gPSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPiBbLCAu Li4gXSApIF0KKyAgICBEUk9QIFBFUklPRCBGT1IgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gWyBSRVNUUklDVCB8IENBU0NBREUg XQogICAgIERJU0FCTEUgVFJJR0dFUiBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxlPiB8IEFMTCB8IFVTRVIgXQogICAgIEVOQUJM RSBUUklHR0VSIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFt ZTwvcmVwbGFjZWFibGU+IHwgQUxMIHwgVVNFUiBdCiAgICAgRU5BQkxFIFJFUExJQ0EgVFJJ R0dFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBs YWNlYWJsZT4KQEAgLTExNSwxMCArMTE3LDEwIEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwg UkVNCiBbIENPTlNUUkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0 cmFpbnRfbmFtZTwvcmVwbGFjZWFibGU+IF0KIHsgQ0hFQ0sgKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgWyBOTyBJTkhFUklU IF0gfAogICBOT1QgTlVMTCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1u X25hbWU8L3JlcGxhY2VhYmxlPiBbIE5PIElOSEVSSVQgXSB8Ci0gIFVOSVFVRSBbIE5VTExT IFsgTk9UIF0gRElTVElOQ1QgXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhPVVQgT1ZFUkxB UFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJz PC9yZXBsYWNlYWJsZT4gfAotICBQUklNQVJZIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJ VEhPVVQgT1ZFUkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRl eF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAorICBVTklRVUUgWyBOVUxMUyBbIE5PVCBd IERJU1RJTkNUIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25h bWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IHwgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gfSBXSVRIT1VUIE9WRVJM QVBTIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVy czwvcmVwbGFjZWFibGU+IHwKKyAgUFJJTUFSWSBLRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCB7IDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNl YWJsZT4gfSBXSVRIT1VUIE9WRVJMQVBTIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+IHwKICAgRVhDTFVERSBbIFVT SU5HIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9tZXRob2Q8L3JlcGxh Y2VhYmxlPiBdICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4Y2x1ZGVfZWxl bWVudDwvcmVwbGFjZWFibGU+IFdJVEggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm9wZXJhdG9yPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+IFsgV0hFUkUgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHJlZGljYXRlPC9yZXBsYWNlYWJsZT4g KSBdIHwKLSAgRk9SRUlHTiBLRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gXSApIFJF RkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBs YWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48 L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSAgWywgUEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBdICkgXQorICBGT1JFSUdOIEtF WSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFj ZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gfSBdICkgUkVGRVJFTkNFUyA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBb ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFi bGU+IFssIC4uLiBdICBbLCBQRVJJT0QgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9IF0gKSBdCiAgICAgWyBNQVRDSCBG VUxMIHwgTUFUQ0ggUEFSVElBTCB8IE1BVENIIFNJTVBMRSBdIFsgT04gREVMRVRFIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2Vh YmxlPiBdIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZl cmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdIH0KIFsgREVGRVJSQUJMRSB8IE5PVCBE RUZFUlJBQkxFIF0gWyBJTklUSUFMTFkgREVGRVJSRUQgfCBJTklUSUFMTFkgSU1NRURJQVRF IF0KIApAQCAtNTg3LDYgKzU4OSwyOSBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQog ICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRy eSBpZD0ic3FsLWFsdGVydGFibGUtZGVzYy1hZGQtcGVyaW9kIj4KKyAgICA8dGVybT48bGl0 ZXJhbD5BREQgUEVSSU9EIEZPUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBhZGRzIGEgbmV3IHBlcmlvZCB0byBhIHRh YmxlIHVzaW5nIHRoZSBzYW1lIHN5bnRheCBhcworICAgICAgPHhyZWYgbGlua2VuZD0ic3Fs LWNyZWF0ZXRhYmxlIi8+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtYWx0ZXJ0YWJsZS1k ZXNjLWRyb3AtcGVyaW9kIj4KKyAgICA8dGVybT48bGl0ZXJhbD5EUk9QIFBFUklPRCBGT1I8 L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBU aGlzIGZvcm0gZHJvcHMgdGhlIHNwZWNpZmllZCBwZXJpb2Qgb24gYSB0YWJsZS4gIFRoZSBz dGFydCBhbmQgZW5kCisgICAgICBjb2x1bW5zIHdpbGwgbm90IGJlIGRyb3BwZWQgYnkgdGhp cyBjb21tYW5kIGJ1dCB0aGUKKyAgICAgIDxsaXRlcmFsPkNIRUNLPC9saXRlcmFsPiBjb25z dHJhaW50IHdpbGwgYmUuICBZb3Ugd2lsbCBuZWVkIHRvIHNheQorICAgICAgPGxpdGVyYWw+ Q0FTQ0FERTwvbGl0ZXJhbD4gaWYgYW55dGhpbmcgb3V0c2lkZSB0aGUgdGFibGUgZGVwZW5k cyBvbiB0aGUKKyAgICAgIGNvbHVtbi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+ CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWFsdGVy dGFibGUtZGVzYy1kaXNhYmxlLWVuYWJsZS10cmlnZ2VyIj4KICAgICA8dGVybT48bGl0ZXJh bD5ESVNBQkxFPC9saXRlcmFsPi88bGl0ZXJhbD5FTkFCTEUgWyBSRVBMSUNBIHwgQUxXQVlT IF0gVFJJR0dFUjwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Nv bW1lbnQuc2dtbAppbmRleCA1YjQzYzU2YjEzMy4uNDljMmRmOTk0NDkgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y29tbWVudC5zZ21sCkBAIC00NCw2ICs0NCw3IEBAIENPTU1FTlQgT04KICAgT1BFUkFUT1Ig PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wZXJhdG9yX25hbWU8L3JlcGxhY2Vh YmxlPiAoPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmxlZnRfdHlwZTwvcmVwbGFj ZWFibGU+LCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmlnaHRfdHlwZTwvcmVw bGFjZWFibGU+KSB8CiAgIE9QRVJBVE9SIENMQVNTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IFVTSU5HIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5pbmRleF9tZXRob2Q8L3JlcGxhY2VhYmxlPiB8CiAgIE9QRVJB VE9SIEZBTUlMWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8 L3JlcGxhY2VhYmxlPiBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5k ZXhfbWV0aG9kPC9yZXBsYWNlYWJsZT4gfAorICBQRVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJlbGF0aW9uX25hbWU8L3JlcGxhY2VhYmxlPi48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFBPTElD WSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cG9saWN5X25hbWU8L3JlcGxhY2Vh YmxlPiBPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVw bGFjZWFibGU+IHwKICAgWyBQUk9DRURVUkFMIF0gTEFOR1VBR0UgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBQUk9DRURV UkUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb2NlZHVyZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAoIFsgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJnbW9k ZTwvcmVwbGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJn bmFtZTwvcmVwbGFjZWFibGU+IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFy Z3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBdIHwKQEAgLTM0MSw2ICszNDIsNyBA QCBDT01NRU5UIE9OIE9QRVJBVE9SIF4gKHRleHQsIHRleHQpIElTICdQZXJmb3JtcyBpbnRl cnNlY3Rpb24gb2YgdHdvIHRleHRzJzsKIENPTU1FTlQgT04gT1BFUkFUT1IgLSAoTk9ORSwg aW50ZWdlcikgSVMgJ1VuYXJ5IG1pbnVzJzsKIENPTU1FTlQgT04gT1BFUkFUT1IgQ0xBU1Mg aW50NG9wcyBVU0lORyBidHJlZSBJUyAnNCBieXRlIGludGVnZXIgb3BlcmF0b3JzIGZvciBi dHJlZXMnOwogQ09NTUVOVCBPTiBPUEVSQVRPUiBGQU1JTFkgaW50ZWdlcl9vcHMgVVNJTkcg YnRyZWUgSVMgJ2FsbCBpbnRlZ2VyIG9wZXJhdG9ycyBmb3IgYnRyZWVzJzsKK0NPTU1FTlQg T04gUEVSSU9EIG15X3RhYmxlLm15X2NvbHVtbiBJUyAnU2FsZXMgcHJvbW90aW9uIHZhbGlk aXR5JzsKIENPTU1FTlQgT04gUE9MSUNZIG15X3BvbGljeSBPTiBteXRhYmxlIElTICdGaWx0 ZXIgcm93cyBieSB1c2Vycyc7CiBDT01NRU5UIE9OIFBST0NFRFVSRSBteV9wcm9jIChpbnRl Z2VyLCBpbnRlZ2VyKSBJUyAnUnVucyBhIHJlcG9ydCc7CiBDT01NRU5UIE9OIFBVQkxJQ0FU SU9OIGFsbHRhYmxlcyBJUyAnUHVibGlzaGVzIGFsbCBvcGVyYXRpb25zIG9uIGFsbCB0YWJs ZXMnOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggZWNjOTEyYWU5NTUu LjU0MzlhNWY1ZDgzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJs ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKQEAgLTIz LDYgKzIzLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiA8c3lub3BzaXM+CiBDUkVB VEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBVTkxPR0dF RCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gKCBbCiAgIHsgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgU1RPUkFHRSB7 IFBMQUlOIHwgRVhURVJOQUwgfCBFWFRFTkRFRCB8IE1BSU4gfCBERUZBVUxUIH0gXSBbIENP TVBSRVNTSU9OIDxyZXBsYWNlYWJsZT5jb21wcmVzc2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxl PiBdIFsgQ09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBb IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVw bGFjZWFibGU+IFsgLi4uIF0gXQorICAgIHwgPHJlcGxhY2VhYmxlPnBlcmlvZF9kZWZpbml0 aW9uPC9yZXBsYWNlYWJsZT4KICAgICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50 PC9yZXBsYWNlYWJsZT4KICAgICB8IExJS0UgPHJlcGxhY2VhYmxlPnNvdXJjZV90YWJsZTwv cmVwbGFjZWFibGU+IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9uPC9yZXBsYWNlYWJsZT4g Li4uIF0gfQogICAgIFssIC4uLiBdCkBAIC0zNyw2ICszOCw3IEBAIENSRUFURSBbIFsgR0xP QkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUg WyBJRiBOT1QgRVhJCiBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkg fCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBP RiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHlwZV9uYW1lPC9yZXBsYWNlYWJs ZT4gWyAoCiAgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gWyBXSVRIIE9QVElPTlMgXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsgLi4uIF0gXQor ICAgIHwgPHJlcGxhY2VhYmxlPnBlcmlvZF9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4KICAg ICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gfQogICAg IFssIC4uLiBdCiApIF0KQEAgLTQ5LDYgKzUxLDcgQEAgQ1JFQVRFIFsgWyBHTE9CQUwgfCBM T0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5P VCBFWEkKIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAg fSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPgogICAgIFBBUlRJVElP TiBPRiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFyZW50X3RhYmxlPC9yZXBs YWNlYWJsZT4gWyAoCiAgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVt bl9uYW1lPC9yZXBsYWNlYWJsZT4gWyBXSVRIIE9QVElPTlMgXSBbIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsgLi4u IF0gXQorICAgIHwgPHJlcGxhY2VhYmxlPnBlcmlvZF9kZWZpbml0aW9uPC9yZXBsYWNlYWJs ZT4KICAgICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4g fQogICAgIFssIC4uLiBdCiApIF0geyBGT1IgVkFMVUVTIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5wYXJ0aXRpb25fYm91bmRfc3BlYzwvcmVwbGFjZWFibGU+IHwgREVGQVVM VCB9CkBAIC03MywxNSArNzYsMjAgQEAgQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBdIHsg VEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWEkKICAg ICBbIE9OIERFTEVURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRp YWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIE9OIFVQREFURSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSB9CiBb IERFRkVSUkFCTEUgfCBOT1QgREVGRVJSQUJMRSBdIFsgSU5JVElBTExZIERFRkVSUkVEIHwg SU5JVElBTExZIElNTUVESUFURSBdCiAKKzxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5wZXJpb2RfZGVmaW5pdGlvbjwvcmVwbGFjZWFibGU+IGlzOjwvcGhy YXNlPgorCitQRVJJT0QgRk9SIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBl cmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4gfCBTWVNURU1fVElNRSB9ICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ICkKK1sg V0lUSCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9y ZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXSApIF0KKwogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2NvbnN0cmFpbnQ8L3JlcGxhY2VhYmxlPiBpczo8L3Bo cmFzZT4KIAogWyBDT05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5j b25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxlPiBdCiB7IENIRUNLICggPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIFsgTk8gSU5I RVJJVCBdIHwKICAgTk9UIE5VTEwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWyBOTyBJTkhFUklUIF0gfAotICBVTklRVUUgWyBO VUxMUyBbIE5PVCBdIERJU1RJTkNUIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBXSVRIT1VUIE9W RVJMQVBTIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfcGFyYW1l dGVyczwvcmVwbGFjZWFibGU+IHwKLSAgUFJJTUFSWSBLRVkgKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxl PiBXSVRIT1VUIE9WRVJMQVBTIF0gKSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ aW5kZXhfcGFyYW1ldGVyczwvcmVwbGFjZWFibGU+IHwKKyAgVU5JUVVFIFsgTlVMTFMgWyBO T1QgXSBESVNUSU5DVCBdICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVt bl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgeyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiB8IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IH0gV0lUSE9VVCBP VkVSTEFQUyBdICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFt ZXRlcnM8L3JlcGxhY2VhYmxlPiB8CisgIFBSSU1BUlkgS0VZICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywg eyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2Vh YmxlPiB8IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVw bGFjZWFibGU+IH0gIFdJVEhPVVQgT1ZFUkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAogICBFWENMVURF IFsgVVNJTkcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X21ldGhvZDwv cmVwbGFjZWFibGU+IF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjbHVk ZV9lbGVtZW50PC9yZXBsYWNlYWJsZT4gV0lUSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+b3BlcmF0b3I8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gWyBXSEVS RSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wcmVkaWNhdGU8L3JlcGxhY2Vh YmxlPiApIF0gfAotICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBd ICkgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8 L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNv bHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gXSApIF0KKyAgRk9SRUlH TiBLRVkgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiB8IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IH0gXSApIFJFRkVSRU5D RVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJs ZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxh Y2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9IF0gKSBdCiAgICAgWyBNQVRD SCBGVUxMIHwgTUFUQ0ggUEFSVElBTCB8IE1BVENIIFNJTVBMRSBdIFsgT04gREVMRVRFIDxy ZXBsYWNlYWJsZQogY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBs YWNlYWJsZT4gXSBbIE9OIFVQREFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSB9CiBbIERFRkVSUkFCTEUgfCBO T1QgREVGRVJSQUJMRSBdIFsgSU5JVElBTExZIERFRkVSUkVEIHwgSU5JVElBTExZIElNTUVE SUFURSBdCkBAIC0xNDAsNiArMTQ4LDE0IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVN CiAgICBuYW1lIGFzIGFueSBleGlzdGluZyBkYXRhIHR5cGUgaW4gdGhlIHNhbWUgc2NoZW1h LgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBQZXJpb2RzIG15IGJlIGRlZmluZWQgb24g dGFibGVzLCBzcGVjaWZ5aW5nIHRoYXQgdHdvIGV4aXN0aW5nIGNvbHVtbnMKKyAgIHJlcHJl c2VudCBzdGFydCBhbmQgZW5kIHZhbHVlcyBmb3IgdGhlIHBlcmlvZC4gIFBlcmlvZHMgbWF5 IGhhdmUgYW55IG5hbWUKKyAgIHRoYXQgZG9lc24ndCBjb25mbGljdCB3aXRoIGEgY29sdW1u IG5hbWUsIGJ1dCB0aGUgbmFtZQorICAgPGxpdGVyYWw+U1lTVEVNX1RJTUU8L2xpdGVyYWw+ IGlzIHNwZWNpYWwsIHVzZWQgZm9yIHZlcnNpb25pbmcgdGFibGVzLgorICAgU3lzdGVtIHBl cmlvZHMgYXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuICBTZWUgPHhyZWYgbGlua2VuZD0iZGRs LXBlcmlvZHMiLz4gZm9yIG1vcmUgZGV0YWlscy4KKyAgPC9wYXJhPgorCiAgIDxwYXJhPgog ICAgVGhlIG9wdGlvbmFsIGNvbnN0cmFpbnQgY2xhdXNlcyBzcGVjaWZ5IGNvbnN0cmFpbnRz ICh0ZXN0cykgdGhhdAogICAgbmV3IG9yIHVwZGF0ZWQgcm93cyBtdXN0IHNhdGlzZnkgZm9y IGFuIGluc2VydCBvciB1cGRhdGUgb3BlcmF0aW9uCkBAIC04MDQsNiArODIwLDM3IEBAIFdJ VEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xp dGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldGFibGUtcGFybXMt cGVyaW9kIj4KKyAgICA8dGVybT48bGl0ZXJhbD5QRVJJT0QgRk9SIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+ICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4sIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ICkg WyBXSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9vcHRpb248 L3JlcGxhY2VhYmxlPiA9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwv cmVwbGFjZWFibGU+IFssIC4uLiBdICkgXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIEEgcGVyaW9kIGRlZmluaXRpb24gZ2l2ZXMgc2Vt YW50aWMgbWVhbmluZyB0byB0d28gZXhpc3RpbmcgY29sdW1ucyBvZgorICAgICAgdGhlIHRh YmxlLiAgSXQgZGVmaW5lcyBhICJzdGFydCBjb2x1bW4iIGFuZCBhbiAiZW5kIGNvbHVtbiIg d2hlcmUgdGhlCisgICAgICBzdGFydCB2YWx1ZSBpcyBzdHJpY3RseSBsZXNzIHRoYW4gdGhl IGVuZCB2YWx1ZS4gIEEKKyAgICAgIDxsaXRlcmFsPkNIRUNLPC9saXRlcmFsPiBjb25zdHJh aW50IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB0byBlbmZvcmNlCisgICAgICB0aGlzLiBZ b3UgY2FuIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhhdCBjb25zdHJhaW50IHdpdGggdGhlCisg ICAgICA8bGl0ZXJhbD5jaGVja19jb25zdHJhaW50X25hbWU8L2xpdGVyYWw+IDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4uCisg ICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAgIEJvdGggY29sdW1ucyBtdXN0IGhh dmUgZXhhY3RseSB0aGUgc2FtZSB0eXBlIGFuZCBtdXN0IGhhdmUgYSByYW5nZSB0eXBlCisg ICAgICBkZWZpbmVkIGZyb20gdGhlaXIgYmFzZSB0eXBlLiAgSWYgdGhlcmUgYXJlIHNldmVy YWwgcmFuZ2UgdHlwZXMgZm9yIHRoYXQKKyAgICAgIGJhc2UgdHlwZSwgeW91IG11c3Qgc3Bl Y2lmeSB3aGljaCBvbmUgeW91IHdhbnQgYnkgdXNpbmcgdGhlCisgICAgICA8bGl0ZXJhbD5y YW5nZXR5cGU8L2xpdGVyYWw+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJp b2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4uCisgICAgICBBbnkgYmFzZSB0eXBlIGlzIGFsbG93 ZWQsIGFzIGxvbmcgYXMgaXQgaGFzIGEgcmFuZ2UgdHlwZSwgYWx0aG91Z2ggaXQgaXMKKyAg ICAgIGV4cGVjdGVkIHRoYXQgbW9zdCBwZXJpb2RzIHdpbGwgdXNlIHRlbXBvcmFsIHR5cGVz IGxpa2UgPGxpdGVyYWw+dGltZXN0YW1wdHo8L2xpdGVyYWw+CisgICAgICBvciA8bGl0ZXJh bD5kYXRlPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorCisgICAgIDxwYXJhPgorICAgICAg QSBoaWRkZW4gPGxpdGVyYWw+R0VORVJBVEVEPC9saXRlcmFsPiBjb2x1bW4gaXMgdXNlZCB0 byBpbXBsZW1lbnQgdGhlIHBlcmlvZCwKKyAgICAgIHdpdGggdGhlIHNhbWUgbmFtZSBhcyB0 aGUgcGVyaW9kLiAgSWYgc3VjaCBhIGNvbHVtbiBhbHJlYWR5IGV4aXN0cywgeW91CisgICAg ICBjYW4gdXNlIHRoZSA8bGl0ZXJhbD5jb2xleGlzdHM8L2xpdGVyYWw+IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4KKyAgICAg IHdpdGggdmFsdWUgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4gdG8gYXZvaWQgY3JlYXRpbmcg aXQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1jb25zdHJh aW50Ij4KICAgICA8dGVybT48bGl0ZXJhbD5DT05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48 L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtMTE2NCw4ICsxMjExLDggQEAgV0lUSCAoIE1P RFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwv cmVwbGFjZWFibGU+LCBSRU0KICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJs ZS1wYXJtcy1yZWZlcmVuY2VzIj4KICAgICA8dGVybT48bGl0ZXJhbD5SRUZFUkVOQ0VTIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsg KCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJs ZT4gKSBdIFsgTUFUQ0ggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm1hdGNodHlw ZTwvcmVwbGFjZWFibGU+IF0gWyBPTiBERUxFVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gWyBPTiBVUERBVEUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVw bGFjZWFibGU+IF08L2xpdGVyYWw+IChjb2x1bW4gY29uc3RyYWludCk8L3Rlcm0+CiAKLSAg IDx0ZXJtPjxsaXRlcmFsPkZPUkVJR04gS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IF0gKQotICAgIFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJl ZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IF0gKSBdCisg ICA8dGVybT48bGl0ZXJhbD5GT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCB7 IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFi bGU+IHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBs YWNlYWJsZT4gfSBdICkKKyAgICBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9E IHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFi bGU+IHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9uYW1lPC9yZXBs YWNlYWJsZT4gfSBdICkgXQogICAgIFsgTUFUQ0ggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm1hdGNodHlwZTwvcmVwbGFjZWFibGU+IF0KICAgICBbIE9OIERFTEVURSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNl YWJsZT4gXQogICAgIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdPC9saXRlcmFsPgpAQCAtMTE4 NSw3ICsxMjMyLDcgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgPC9wYXJh PgogCiAgICAgIDxwYXJhPgotICAgICAgSWYgdGhlIGxhc3QgY29sdW1uIGlzIG1hcmtlZCB3 aXRoIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4sIGl0IGlzCisgICAgICBJZiB0aGUgbGFz dCBrZXkgcGFydCBpcyBtYXJrZWQgd2l0aCA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+LCBp dCBpcwogICAgICAgdHJlYXRlZCBpbiBhIHNwZWNpYWwgd2F5LiAgV2hpbGUgdGhlIG5vbi08 bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+CiAgICAgICBjb2x1bW5zIGFyZSBjb21wYXJlZCBm b3IgZXF1YWxpdHkgKGFuZCB0aGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9uZSBvZgogICAgICAg dGhlbSksIHRoZSA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IGNvbHVtbiBpcyBub3QuICBJ bnN0ZWFkLCB0aGUKQEAgLTExOTMsOCArMTI0MCwxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJs ZT4sIFJFTQogICAgICAgcmVjb3JkcyAoYmFzZWQgb24gdGhlIG5vbi08bGl0ZXJhbD5QRVJJ T0Q8L2xpdGVyYWw+IHBhcnRzIG9mIHRoZSBrZXkpCiAgICAgICB3aG9zZSBjb21iaW5lZCA8 bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IHZhbHVlcyBjb21wbGV0ZWx5IGNvdmVyIHRoZQog ICAgICAgcmVmZXJlbmNpbmcgcmVjb3JkJ3MuICBJbiBvdGhlciB3b3JkcywgdGhlIHJlZmVy ZW5jZSBtdXN0IGhhdmUgYQotICAgICAgcmVmZXJlbnQgZm9yIGl0cyBlbnRpcmUgZHVyYXRp b24uICBUaGlzIGNvbHVtbiBtdXN0IGJlIGEgcmFuZ2Ugb3IKLSAgICAgIG11bHRpcmFuZ2Ug dHlwZS4gIEluIGFkZGl0aW9uLCB0aGUgcmVmZXJlbmNlZCB0YWJsZSBtdXN0IGhhdmUgYSBw cmltYXJ5CisgICAgICByZWZlcmVudCBmb3IgaXRzIGVudGlyZSBkdXJhdGlvbi4gIFRoaXMg cGFydCBtdXN0IGJlIGVpdGhlciBhIAorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0 ZXRhYmxlLXBhcm1zLXBlcmlvZCI+PGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPjwvbGluaz4K KyAgICAgIG9yIGEgY29sdW1uIHdpdGggYSByYW5nZSBvciBtdWx0aXJhbmdlIHR5cGUuCisg ICAgICBJbiBhZGRpdGlvbiwgdGhlIHJlZmVyZW5jZWQgdGFibGUgbXVzdCBoYXZlIGEgcHJp bWFyeQogICAgICAga2V5IG9yIHVuaXF1ZSBjb25zdHJhaW50IGRlY2xhcmVkIHdpdGggPGxp dGVyYWw+V0lUSE9VVAogICAgICAgT1ZFUkxBUFM8L2xpdGVyYWw+LiBGaW5hbGx5LCBpZiB0 aGUgZm9yZWlnbiBrZXkgaGFzIGEgUEVSSU9ECiAgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBzcGVjaWZpY2F0aW9uCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9kZWxldGUuc2dtbAppbmRleCA2MzMwZmRmZjRjMC4uODczM2MxN2ViMmIgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9kZWxldGUuc2dtbApAQCAtNTcsNyArNTcsOCBAQCBERUxFVEUgRlJPTSBbIE9OTFkg XSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IFsgKgogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBJZiB0aGUgdGFibGUgaGFzIGEg cmFuZ2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sCisgICBJZiB0aGUgdGFibGUgaGFzIGEgcmFu Z2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sIG9yIGEKKyAgIDxsaW5rIGxpbmtlbmQ9ImRkbC1w ZXJpb2RzLWFwcGxpY2F0aW9uLXBlcmlvZHMiPjxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD48 L2xpbms+LAogICAgeW91IG1heSBzdXBwbHkgYSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwv bGl0ZXJhbD4gY2xhdXNlLCBhbmQgeW91ciBkZWxldGUgd2lsbAogICAgb25seSBhZmZlY3Qg cm93cyB0aGF0IG92ZXJsYXAgdGhlIGdpdmVuIGludGVydmFsLiBGdXJ0aGVybW9yZSwgaWYg YSByb3cncyBzcGFuCiAgICBleHRlbmRzIG91dHNpZGUgdGhlIDxsaXRlcmFsPkZPUiBQT1JU SU9OIE9GPC9saXRlcmFsPiBib3VuZHMsIHRoZW4geW91ciBkZWxldGUKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0 ZS5zZ21sCmluZGV4IGM4OTNjYzc5NWYyLi5kNGNlMjU3NjFiOCAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0 ZS5zZ21sCkBAIC01NCw3ICs1NCw4IEBAIFVQREFURSBbIE9OTFkgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdCiAgIDwv cGFyYT4KIAogICA8cGFyYT4KLSAgIElmIHRoZSB0YWJsZSBoYXMgYSByYW5nZSBvciBtdWx0 aXJhbmdlIGNvbHVtbiwKKyAgIElmIHRoZSB0YWJsZSBoYXMgYSByYW5nZSBvciBtdWx0aXJh bmdlIGNvbHVtbiwgb3IgYQorICAgPGxpbmsgbGlua2VuZD0iZGRsLXBlcmlvZHMtYXBwbGlj YXRpb24tcGVyaW9kcyI+PGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPjwvbGluaz4sCiAgICB5 b3UgbWF5IHN1cHBseSBhIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1 c2UsIGFuZCB5b3VyIHVwZGF0ZSB3aWxsCiAgICBvbmx5IGFmZmVjdCByb3dzIHRoYXQgb3Zl cmxhcCB0aGUgZ2l2ZW4gaW50ZXJ2YWwuIEZ1cnRoZXJtb3JlLCBpZiBhIHJvdydzIHNwYW4K ICAgIGV4dGVuZHMgb3V0c2lkZSB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVy YWw+IGJvdW5kcywgdGhlbiB5b3VyIHVwZGF0ZQpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3RyaWdnZXIuc2dtbCBiL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKaW5kZXggNjI0NTE0 ZmZiZmQuLjI5NGU0YTk0NWQxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvdHJpZ2dlci5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC90cmlnZ2VyLnNnbWwKQEAgLTg1MSwxNyArODUxLDIy IEBAIHR5cGVkZWYgc3RydWN0IEZvclBvcnRpb25PZlN0YXRlCiB7CiAgICAgTm9kZVRhZyB0 eXBlOwogCi0gICAgY2hhciAgICpmcF9yYW5nZU5hbWU7ICAgICAgIC8qIHRoZSBjb2x1bW4g bmFtZWQgaW4gRk9SIFBPUlRJT04gT0YgKi8KKyAgICBjaGFyICAgKmZwX3JhbmdlTmFtZTsg ICAgICAgLyogdGhlIGNvbHVtbi9QRVJJT0QgbmFtZWQgaW4gRk9SIFBPUlRJT04gT0YgKi8K ICAgICBPaWQgICAgIGZwX3JhbmdlVHlwZTsgICAgICAgLyogdGhlIHR5cGUgb2YgdGhlIEZP UiBQT1JUSU9OIE9GIGV4cHJlc3Npb24gKi8KLSAgICBpbnQgICAgIGZwX3JhbmdlQXR0bm87 ICAgICAgLyogdGhlIGF0dG5vIG9mIHRoZSByYW5nZSBjb2x1bW4gKi8KKyAgICBpbnQgICAg IGZwX3JhbmdlQXR0bm87ICAgICAgLyogdGhlIGF0dG5vIG9mIHRoZSByYW5nZSBjb2x1bW4g KG9yIDAgZm9yIGEgUEVSSU9EKSAqLworICAgIGludCAgICAgZnBfcGVyaW9kU3RhcnRBdHRu bzsgICAgLyogdGhlIGF0dG5vIG9mIHRoZSBQRVJJT0Qgc3RhcnQgY29sdW1uIChvciAwIGZv ciBhIHJhbmdlKSAqLworICAgIGludCAgICAgZnBfcGVyaW9kRW5kQXR0bm87ICAgICAgLyog dGhlIGF0dG5vIG9mIHRoZSBQRVJJT0QgZW5kIGNvbHVtbiAob3IgMCBmb3IgYSByYW5nZSkg Ki8KICAgICBEYXR1bSAgIGZwX3RhcmdldFJhbmdlOyAgICAgLyogdGhlIHJhbmdlL211bHRp cmFuZ2UvZXRjIGZyb20gRk9SIFBPUlRJT04gT0YgKi8KIH0gRm9yUG9ydGlvbk9mU3RhdGU7 CiA8L3Byb2dyYW1saXN0aW5nPgogCi0gICAgICAgd2hlcmUgPHN0cnVjdGZpZWxkPmZwX3Jh bmdlTmFtZTwvc3RydWN0ZmllbGQ+IGlzIHRoZSByYW5nZQorICAgICAgIHdoZXJlIDxzdHJ1 Y3RmaWVsZD5mcF9yYW5nZU5hbWU8L3N0cnVjdGZpZWxkPiBpcyB0aGUgcGVyaW9kIG9yIHJh bmdlCiAgICAgICAgY29sdW1uIG5hbWVkIGluIHRoZSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBP RjwvbGl0ZXJhbD4gY2xhdXNlLAogICAgICAgIDxzdHJ1Y3RmaWVsZD5mcF9yYW5nZVR5cGU8 L3N0cnVjdGZpZWxkPiBpcyBpdHMgcmFuZ2UgdHlwZSwKICAgICAgICA8c3RydWN0ZmllbGQ+ ZnBfcmFuZ2VBdHRubzwvc3RydWN0ZmllbGQ+IGlzIGl0cyBhdHRyaWJ1dGUgbnVtYmVyLAor ICAgICAgIDxzdHJ1Y3RmaWVsZD5mcF9wZXJpb2RTdGFydEF0dG5vPC9zdHJ1Y3RmaWVsZD4g YW5kCisgICAgICAgPHN0cnVjdGZpZWxkPmZwX3BlcmlvZEVuZEF0dG5vPC9zdHJ1Y3RmaWVs ZD4gYXJlIHRoZSBhdHRub3Mgb2YgdGhlIHBlcmlvZCdzCisgICAgICAgc3RhcnQgYW5kIGVu ZCBjb2x1bW5zIChvciA8c3ltYm9sPjA8L3N5bWJvbD4gaWYgYSByYW5nZSBjb2x1bW4gd2Fz IHVzZWQpLAogICAgICAgIGFuZCA8c3RydWN0ZmllbGQ+ZnBfdGFyZ2V0UmFuZ2U8L3N0cnVj dGZpZWxkPiBpcyBhIHJhbmdldHlwZSB2YWx1ZSBjcmVhdGVkCiAgICAgICAgYnkgZXZhbHVh dGluZyB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcy4KICAg ICAgICA8L3BhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxl IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQppbmRleCBjMDkwMDk0ZWQwOC4uNTNl YjY3MDM0ZjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtMzksNiArMzksNyBAQCBPQkpT ID0gXAogCXBnX25hbWVzcGFjZS5vIFwKIAlwZ19vcGVyYXRvci5vIFwKIAlwZ19wYXJhbWV0 ZXJfYWNsLm8gXAorCXBnX3BlcmlvZC5vIFwKIAlwZ19wcm9jLm8gXAogCXBnX3B1YmxpY2F0 aW9uLm8gXAogCXBnX3JhbmdlLm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9hY2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKaW5kZXggYjE5NjI5 NGZiMjkuLmQ3Zjg5ZjEwZjg4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2Fj bGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTI3NDQsNiAr Mjc0NCw3IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUg b2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfREVGQVVMVDoKIAkJCQkJY2FzZSBPQkpFQ1Rf REVGQUNMOgogCQkJCQljYXNlIE9CSkVDVF9ET01DT05TVFJBSU5UOgorCQkJCQljYXNlIE9C SkVDVF9QRVJJT0Q6CiAJCQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX05BTUVTUEFDRToK IAkJCQkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fUkVMOgogCQkJCQljYXNlIE9CSkVDVF9S T0xFOgpAQCAtMjg4NSw2ICsyODg2LDcgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFj bGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJ CQkJCWNhc2UgT0JKRUNUX0RPTUNPTlNUUkFJTlQ6CiAJCQkJCWNhc2UgT0JKRUNUX1BBUkFN RVRFUl9BQ0w6CisJCQkJCWNhc2UgT0JKRUNUX1BFUklPRDoKIAkJCQkJY2FzZSBPQkpFQ1Rf UFVCTElDQVRJT05fTkFNRVNQQUNFOgogCQkJCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9S RUw6CiAJCQkJCWNhc2UgT0JKRUNUX1JPTEU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5j CmluZGV4IDA5NmI2OGM3ZjM5Li42N2E1M2IwZmRhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBl bmRlbmN5LmMKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJh dG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGZhbWlseS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcGFyYW1ldGVyX2FjbC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9k LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wb2xpY3kuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgiCkBAIC02 MjIsNiArNjIzLDE1IEBAIGZpbmREZXBlbmRlbnRPYmplY3RzKGNvbnN0IE9iamVjdEFkZHJl c3MgKm9iamVjdCwKIAkJCQkJCXJldHVybjsKIAkJCQkJfQogCisJCQkJCS8qCisJCQkJCSAq IElmIGEgdGFibGUgYXR0cmlidXRlIGlzIGFuIGludGVybmFsIHBhcnQgb2Ygc29tZXRoaW5n IGVsc2UKKwkJCQkJICogKGUuZy4gdGhlIEdFTkVSQVRFRCBjb2x1bW4gdXNlZCBieSBhIFBF UklPRCksCisJCQkJCSAqIGFuZCB3ZSBhcmUgZGVsZXRpbmcgdGhlIHdob2xlIHRhYmxlLAor CQkJCQkgKiB0aGVuIGl0J3Mgb2theS4KKwkJCQkJICovCisJCQkJCWlmIChmb3VuZERlcC0+ b2Jqc3ViaWQgJiYgIW9iamVjdC0+b2JqZWN0U3ViSWQpCisJCQkJCQlicmVhazsKKwogCQkJ CQkvKgogCQkJCQkgKiBXZSBwb3N0cG9uZSBhY3R1YWxseSBpc3N1aW5nIHRoZSBlcnJvciBt ZXNzYWdlIHVudGlsCiAJCQkJCSAqIGFmdGVyIHRoaXMgbG9vcCwgc28gdGhhdCB3ZSBjYW4g bWFrZSB0aGUgYmVoYXZpb3IKQEAgLTE0MDAsNiArMTQxMCwxMCBAQCBkb0RlbGV0aW9uKGNv bnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZsYWdzKQogCQkJUmVtb3ZlQXR0ckRl ZmF1bHRCeUlkKG9iamVjdC0+b2JqZWN0SWQpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBQZXJp b2RSZWxhdGlvbklkOgorCQkJUmVtb3ZlUGVyaW9kQnlJZChvYmplY3QtPm9iamVjdElkKTsK KwkJCWJyZWFrOworCiAJCWNhc2UgTGFyZ2VPYmplY3RSZWxhdGlvbklkOgogCQkJTGFyZ2VP YmplY3REcm9wKG9iamVjdC0+b2JqZWN0SWQpOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5j CmluZGV4IDRkNzYwYzk4ZDFmLi42YWI4NGQ2YzdiOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9oZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMKQEAg LTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfb3BjbGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcGFy dGl0aW9uZWRfdGFibGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19z dWJzY3JpcHRpb25fcmVsLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgi CkBAIC0yMDU2LDYgKzIwNTcsODAgQEAgU2V0QXR0ck1pc3NpbmcoT2lkIHJlbGlkLCBjaGFy ICphdHRuYW1lLCBjaGFyICp2YWx1ZSkKIAl0YWJsZV9jbG9zZSh0YWJsZXJlbCwgQWNjZXNz RXhjbHVzaXZlTG9jayk7CiB9CiAKKy8qCisgKiBTdG9yZSBhIHBlcmlvZCBvZiByZWxhdGlv biByZWwuCisgKgorICogUmV0dXJucyB0aGUgT0lEIG9mIHRoZSBuZXcgcGdfcGVyaW9kIHR1 cGxlLgorICovCitPaWQKK1N0b3JlUGVyaW9kKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAq cGVyaW9kbmFtZSwgQXR0ck51bWJlciBzdGFydG51bSwKKwkJCUF0dHJOdW1iZXIgZW5kbnVt LCBBdHRyTnVtYmVyIHJhbmdlbnVtLCBPaWQgY29ub2lkKQoreworCURhdHVtCQl2YWx1ZXNb TmF0dHNfcGdfcGVyaW9kXTsKKwlib29sCQludWxsc1tOYXR0c19wZ19wZXJpb2RdOworCVJl bGF0aW9uCXBnX3BlcmlvZDsKKwlIZWFwVHVwbGUJdHVwbGU7CisJT2lkCQkJb2lkOworCU5h bWVEYXRhCXBlcm5hbWU7CisJT2JqZWN0QWRkcmVzcwlteXNlbGYsIHJlZmVyZW5jZWQ7CisK KwlBc3NlcnQocmFuZ2VudW0gIT0gSW52YWxpZEF0dHJOdW1iZXIpOworCisJbmFtZXN0cmNw eSgmcGVybmFtZSwgcGVyaW9kbmFtZSk7CisKKwlNZW1TZXQodmFsdWVzLCAwLCBzaXplb2Yo dmFsdWVzKSk7CisJTWVtU2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisKKwlw Z19wZXJpb2QgPSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxv Y2spOworCisJb2lkID0gR2V0TmV3T2lkV2l0aEluZGV4KHBnX3BlcmlvZCwgQXR0ckRlZmF1 bHRPaWRJbmRleElkLCBBbnVtX3BnX3BlcmlvZF9vaWQpOworCXZhbHVlc1tBbnVtX3BnX3Bl cmlvZF9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0ob2lkKTsKKwl2YWx1ZXNbQW51bV9w Z19wZXJpb2RfcGVybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZwZXJuYW1lKTsKKwl2YWx1 ZXNbQW51bV9wZ19wZXJpb2RfcGVycmVsaWQgLSAxXSA9IFJlbGF0aW9uR2V0UmVsaWQocmVs KTsKKwl2YWx1ZXNbQW51bV9wZ19wZXJpb2RfcGVyc3RhcnQgLSAxXSA9IHN0YXJ0bnVtOwor CXZhbHVlc1tBbnVtX3BnX3BlcmlvZF9wZXJlbmQgLSAxXSA9IGVuZG51bTsKKwl2YWx1ZXNb QW51bV9wZ19wZXJpb2RfcGVycmFuZ2UgLSAxXSA9IHJhbmdlbnVtOworCXZhbHVlc1tBbnVt X3BnX3BlcmlvZF9wZXJjb25zdHJhaW50IC0gMV0gPSBjb25vaWQ7CisKKwl0dXBsZSA9IGhl YXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHBnX3BlcmlvZCksIHZhbHVlcywgbnVs bHMpOworCUNhdGFsb2dUdXBsZUluc2VydChwZ19wZXJpb2QsIHR1cGxlKTsKKworCU9iamVj dEFkZHJlc3NTZXQobXlzZWxmLCBQZXJpb2RSZWxhdGlvbklkLCBvaWQpOworCisJLyogRHJv cCB0aGUgcGVyaW9kIHdoZW4gdGhlIHRhYmxlIGlzIGRyb3BwZWQuICovCisJT2JqZWN0QWRk cmVzc1NldChyZWZlcmVuY2VkLCBSZWxhdGlvblJlbGF0aW9uSWQsIFJlbGF0aW9uR2V0UmVs aWQocmVsKSk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBE RVBFTkRFTkNZX0FVVE8pOworCisJLyogRm9yYmlkIGRyb3BwaW5nIHRoZSBjb2x1bW5zIG9m IHRoZSBwZXJpb2QuICovCisJT2JqZWN0QWRkcmVzc1N1YlNldChyZWZlcmVuY2VkLCBSZWxh dGlvblJlbGF0aW9uSWQsIFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgc3RhcnRudW0pOworCXJl Y29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JN QUwpOworCU9iamVjdEFkZHJlc3NTdWJTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlv bklkLCBSZWxhdGlvbkdldFJlbGlkKHJlbCksIGVuZG51bSk7CisJcmVjb3JkRGVwZW5kZW5j eU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBFTkRFTkNZX05PUk1BTCk7CisKKwkvKgor CSAqIFRoZSByYW5nZSBjb2x1bW4gaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLAorCSAq IGJ1dCB3ZSBjYW4ndCB1c2UgREVQRU5ERU5DWV9JTlRFUk5BTAorCSAqIGJlY2F1c2UgZHJv cHBpbmcgdGhlIHRhYmxlIHdpbGwgY2hlY2sgZm9yIGRlcGVuZGVuY2llcyBvbiBhbGwgc3Vi b2JqZWN0cyB0b28KKwkgKiAoaW4gZmluZERlcGVuZGVudE9iamVjdHMpLgorCSAqIEJ1dCBp ZiB3ZSBtYWtlIGFuIEFVVE8gZGVwZW5kZW5jeSBvbmUgd2F5IHdlIHdpbGwgYXV0by1kcm9w IHRoZSBjb2x1bW4KKwkgKiB3aGVuIHdlIGRyb3AgdGhlIFBFUklPRCwKKwkgKiBhbmQgYSBO T1JNQUwgZGVwZW5kZW5jeSB0aGUgb3RoZXIgd2F5IHdlIHdpbGwgZm9yYmlkIGRyb3BwaW5n IHRoZSBjb2x1bW4gZGlyZWN0bHkuCisJICovCisJT2JqZWN0QWRkcmVzc1N1YlNldChyZWZl cmVuY2VkLCBSZWxhdGlvblJlbGF0aW9uSWQsIFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcmFu Z2VudW0pOworCXJlY29yZERlcGVuZGVuY3lPbigmcmVmZXJlbmNlZCwgJm15c2VsZiwgREVQ RU5ERU5DWV9JTlRFUk5BTCk7CisKKwkvKgorCSAqIFRoZSBjb25zdHJhaW50IGlzIGFuIGlt cGxlbWVudGF0aW9uIGRldGFpbCwgc28gd2UgbWFyayBpdCBhcyBzdWNoLgorCSAqIChOb3Rl IHRoYXQgbXlzZWxmIGFuZCByZWZlcmVuY2VkIGFyZSByZXZlcnNlZCBmb3IgdGhpcyBvbmUu KQorCSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJlbmNlZCwgQ29uc3RyYWludFJlbGF0 aW9uSWQsIGNvbm9pZCk7CisJcmVjb3JkRGVwZW5kZW5jeU9uKCZyZWZlcmVuY2VkLCAmbXlz ZWxmLCBERVBFTkRFTkNZX0lOVEVSTkFMKTsKKworCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwg Um93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gb2lkOworfQorCiAvKgogICogU3RvcmUg YSBjaGVjay1jb25zdHJhaW50IGV4cHJlc3Npb24gZm9yIHRoZSBnaXZlbiByZWxhdGlvbi4K ICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVt YS5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwKaW5k ZXggMTYwMzZmZGVjOTEuLmU4ZDlkOWE4MTEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCkBAIC0xMjA3LDcgKzEyMDcsMjggQEAgR1JBTlQg U0VMRUNUIE9OIHBhcmFtZXRlcnMgVE8gUFVCTElDOwogICogUEVSSU9EUyB2aWV3CiAgKi8K IAotLS0gZmVhdHVyZSBub3Qgc3VwcG9ydGVkCitDUkVBVEUgVklFVyBwZXJpb2RzIEFTCisg ICAgU0VMRUNUIGN1cnJlbnRfZGF0YWJhc2UoKTo6aW5mb3JtYXRpb25fc2NoZW1hLnNxbF9p ZGVudGlmaWVyIEFTIHRhYmxlX2NhdGFsb2csCisgICAgICAgICAgIG5jLm5zcG5hbWU6Omlu Zm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllciBBUyB0YWJsZV9zY2hlbWEsCisgICAg ICAgICAgIGMucmVsbmFtZTo6aW5mb3JtYXRpb25fc2NoZW1hLnNxbF9pZGVudGlmaWVyIEFT IHRhYmxlX25hbWUsCisgICAgICAgICAgIHAucGVybmFtZTo6aW5mb3JtYXRpb25fc2NoZW1h LnNxbF9pZGVudGlmaWVyIEFTIHBlcmlvZF9uYW1lLAorICAgICAgICAgICBDQVNFIFdIRU4g cGdfaGFzX3JvbGUoYy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgICAgIE9S IGhhc19jb2x1bW5fcHJpdmlsZWdlKHNhLmF0dHJlbGlkLCBzYS5hdHRudW0sICdTRUxFQ1Qs IElOU0VSVCwgVVBEQVRFLCBSRUZFUkVOQ0VTJykKKyAgICAgICAgICAgICAgICBUSEVOIHNh LmF0dG5hbWU6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllcgorICAgICAgICAg ICBFTkQgQVMgc3RhcnRfY29sdW1uX25hbWUsCisgICAgICAgICAgIENBU0UgV0hFTiBwZ19o YXNfcm9sZShjLnJlbG93bmVyLCAnVVNBR0UnKQorICAgICAgICAgICAgICAgICAgT1IgaGFz X2NvbHVtbl9wcml2aWxlZ2UoZWEuYXR0cmVsaWQsIGVhLmF0dG51bSwgJ1NFTEVDVCwgSU5T RVJULCBVUERBVEUsIFJFRkVSRU5DRVMnKQorICAgICAgICAgICAgICAgIFRIRU4gZWEuYXR0 bmFtZTo6aW5mb3JtYXRpb25fc2NoZW1hLnNxbF9pZGVudGlmaWVyCisgICAgICAgICAgIEVO RCBBUyBlbmRfY29sdW1uX25hbWUKKyAgICBGUk9NIHBnX3BlcmlvZCBBUyBwCisgICAgSk9J TiBwZ19jbGFzcyBBUyBjIE9OIGMub2lkID0gcC5wZXJyZWxpZAorICAgIEpPSU4gcGdfbmFt ZXNwYWNlIEFTIG5jIE9OIG5jLm9pZCA9IGMucmVsbmFtZXNwYWNlCisgICAgSk9JTiBwZ19h dHRyaWJ1dGUgQVMgc2EgT04gKHNhLmF0dHJlbGlkLCBzYS5hdHRudW0pID0gKHAucGVycmVs aWQsIHAucGVyc3RhcnQpCisgICAgSk9JTiBwZ19hdHRyaWJ1dGUgQVMgZWEgT04gKGVhLmF0 dHJlbGlkLCBlYS5hdHRudW0pID0gKHAucGVycmVsaWQsIHAucGVyZW5kKQorICAgIFdIRVJF IE5PVCBwZ19pc19vdGhlcl90ZW1wX3NjaGVtYShuYy5vaWQpCisgICAgICBBTkQgYy5yZWxr aW5kIElOICgncicsICd2Jyk7CisKK0dSQU5UIFNFTEVDVCBPTiBwZXJpb2RzIFRPIFBVQkxJ QzsKIAogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWls ZCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMTk1OGVhOTIzOGEu LjZjZGY4OWQwZTkzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1 aWxkCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKQEAgLTI2LDYgKzI2 LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAncGdfbmFtZXNwYWNlLmMnLAog ICAncGdfb3BlcmF0b3IuYycsCiAgICdwZ19wYXJhbWV0ZXJfYWNsLmMnLAorICAncGdfcGVy aW9kLmMnLAogICAncGdfcHJvYy5jJywKICAgJ3BnX3B1YmxpY2F0aW9uLmMnLAogICAncGdf cmFuZ2UuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJl c3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IGQ4ZWI4 ZDNkZWFhLi40YWQ2OTAyYzdlZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9v YmplY3RhZGRyZXNzLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMKQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGZhbWlseS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfcGFyYW1ldGVyX2FjbC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9kLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19wb2xpY3kuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3By b2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmgiCkBAIC03MjcsNiAr NzI4LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvYmplY3RfdHlwZV9tYXAKIAl7CiAJCSJk b21haW4gY29uc3RyYWludCIsIE9CSkVDVF9ET01DT05TVFJBSU5UCiAJfSwKKwl7CisJCSJw ZXJpb2QiLCBPQkpFQ1RfUEVSSU9ECisJfSwKIAl7CiAJCSJjb252ZXJzaW9uIiwgT0JKRUNU X0NPTlZFUlNJT04KIAl9LApAQCAtOTcxLDYgKzk3NSw3IEBAIGdldF9vYmplY3RfYWRkcmVz cyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCWNhc2UgT0JKRUNUX1RS SUdHRVI6CiAJCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgogCQkJY2FzZSBPQkpFQ1Rf UE9MSUNZOgorCQkJY2FzZSBPQkpFQ1RfUEVSSU9EOgogCQkJCWFkZHJlc3MgPSBnZXRfb2Jq ZWN0X2FkZHJlc3NfcmVsb2JqZWN0KG9ianR5cGUsIGNhc3ROb2RlKExpc3QsIG9iamVjdCks CiAJCQkJCQkJCQkJCQkJICAgJnJlbGF0aW9uLCBtaXNzaW5nX29rKTsKIAkJCQlicmVhazsK QEAgLTE0NzMsNiArMTQ3OCwxMyBAQCBnZXRfb2JqZWN0X2FkZHJlc3NfcmVsb2JqZWN0KE9i amVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqZWN0LAogCQkJCUludmFsaWRPaWQ7CiAJCQlh ZGRyZXNzLm9iamVjdFN1YklkID0gMDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9QRVJJ T0Q6CisJCQlhZGRyZXNzLmNsYXNzSWQgPSBQZXJpb2RSZWxhdGlvbklkOworCQkJYWRkcmVz cy5vYmplY3RJZCA9IHJlbGF0aW9uID8KKwkJCQlnZXRfcmVsYXRpb25fcGVyaW9kX29pZChy ZWxvaWQsIGRlcG5hbWUsIG1pc3Npbmdfb2spIDoKKwkJCQlJbnZhbGlkT2lkOworCQkJYWRk cmVzcy5vYmplY3RTdWJJZCA9IDA7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwgKGludCkgb2JqdHlwZSk7 CiAJfQpAQCAtMjI5MCw2ICsyMzAyLDcgQEAgcGdfZ2V0X29iamVjdF9hZGRyZXNzKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCWNhc2UgT0JKRUNUX1JVTEU6CiAJCWNhc2UgT0JKRUNUX1RSSUdH RVI6CiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CisJCWNhc2UgT0JKRUNUX1BFUklP RDoKIAkJY2FzZSBPQkpFQ1RfT1BDTEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CiAJ CQlvYmpub2RlID0gKE5vZGUgKikgbmFtZTsKQEAgLTI0MDAsNiArMjQxMyw3IEBAIGNoZWNr X29iamVjdF9vd25lcnNoaXAoT2lkIHJvbGVpZCwgT2JqZWN0VHlwZSBvYmp0eXBlLCBPYmpl Y3RBZGRyZXNzIGFkZHJlc3MsCiAJCWNhc2UgT0JKRUNUX1RSSUdHRVI6CiAJCWNhc2UgT0JK RUNUX1BPTElDWToKIAkJY2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKKwkJY2FzZSBPQkpF Q1RfUEVSSU9EOgogCQkJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhSZWxhdGlvblJlbGF0aW9u SWQsIFJlbGF0aW9uR2V0UmVsaWQocmVsYXRpb24pLCByb2xlaWQpKQogCQkJCWFjbGNoZWNr X2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwgb2JqdHlwZSwKIAkJCQkJCQkgICBSZWxhdGlv bkdldFJlbGF0aW9uTmFtZShyZWxhdGlvbikpOwpAQCAtMzA3Myw2ICszMDg3LDM4IEBAIGdl dE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBt aXNzaW5nX29rKQogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgUGVyaW9kUmVsYXRpb25J ZDoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJcGVyVHVwOworCQkJCUZvcm1fcGdfcGVyaW9kIHBl cjsKKworCQkJCXBlclR1cCA9IFNlYXJjaFN5c0NhY2hlMShQRVJJT0RPSUQsCisJCQkJCQkJ CQkJIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVh cFR1cGxlSXNWYWxpZChwZXJUdXApKQorCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3Vw IGZhaWxlZCBmb3IgcGVyaW9kICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKwkJ CQlwZXIgPSAoRm9ybV9wZ19wZXJpb2QpIEdFVFNUUlVDVChwZXJUdXApOworCisJCQkJaWYg KE9pZElzVmFsaWQocGVyLT5wZXJyZWxpZCkpCisJCQkJeworCQkJCQlTdHJpbmdJbmZvRGF0 YSByZWw7CisKKwkJCQkJaW5pdFN0cmluZ0luZm8oJnJlbCk7CisJCQkJCWdldFJlbGF0aW9u RGVzY3JpcHRpb24oJnJlbCwgcGVyLT5wZXJyZWxpZCwgZmFsc2UpOworCQkJCQlhcHBlbmRT dHJpbmdJbmZvKCZidWZmZXIsIF8oInBlcmlvZCAlcyBvbiAlcyIpLAorCQkJCQkJCQkJIE5h bWVTdHIocGVyLT5wZXJuYW1lKSwgcmVsLmRhdGEpOworCQkJCQlwZnJlZShyZWwuZGF0YSk7 CisJCQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZl ciwgXygicGVyaW9kICVzIiksCisJCQkJCQkJCQkgTmFtZVN0cihwZXItPnBlcm5hbWUpKTsK KwkJCQl9CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUocGVyVHVwKTsKKwkJCQlicmVhazsKKwkJ CX0KKwogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgogCQkJewogCQkJCUhlYXBUdXBs ZQljb25UdXA7CkBAIC00NTIwLDYgKzQ1NjYsMTAgQEAgZ2V0T2JqZWN0VHlwZURlc2NyaXB0 aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJ CQkJCQkJCSBtaXNzaW5nX29rKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgUGVyaW9kUmVsYXRp b25JZDoKKwkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInBlcmlvZCIpOwor CQkJYnJlYWs7CisKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoKIAkJCWFwcGVuZFN0 cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgImNvbnZlcnNpb24iKTsKIAkJCWJyZWFrOwpAQCAt NTAyNSw2ICs1MDc1LDI4IEBAIGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgUGVyaW9kUmVs YXRpb25JZDoKKwkJCXsKKwkJCQlIZWFwVHVwbGUJcGVyVHVwOworCQkJCUZvcm1fcGdfcGVy aW9kIHBlcjsKKworCQkJCXBlclR1cCA9IFNlYXJjaFN5c0NhY2hlMShQRVJJT0RPSUQsCisJ CQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlm ICghSGVhcFR1cGxlSXNWYWxpZChwZXJUdXApKQorCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUg bG9va3VwIGZhaWxlZCBmb3IgcGVyaW9kICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElk KTsKKwkJCQlwZXIgPSAoRm9ybV9wZ19wZXJpb2QpIEdFVFNUUlVDVChwZXJUdXApOworCisJ CQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAiJXMgb24gIiwKKwkJCQkJCQkJIHF1b3Rl X2lkZW50aWZpZXIoTmFtZVN0cihwZXItPnBlcm5hbWUpKSk7CisJCQkJZ2V0UmVsYXRpb25J ZGVudGl0eSgmYnVmZmVyLCBwZXItPnBlcnJlbGlkLCBvYmpuYW1lLCBmYWxzZSk7CisJCQkJ aWYgKG9iam5hbWUpCisJCQkJCSpvYmpuYW1lID0gbGFwcGVuZCgqb2JqbmFtZSwgcHN0cmR1 cChOYW1lU3RyKHBlci0+cGVybmFtZSkpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZShwZXJU dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgQ29udmVyc2lvblJlbGF0aW9uSWQ6 CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfcGVyaW9kLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3BlcmlvZC5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40NjViNWI2NzVlMwot LS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcGVyaW9kLmMKQEAg LTAsMCArMSwxMzIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX3Blcmlv ZC5jCisgKgkgIHJvdXRpbmVzIHRvIHN1cHBvcnQgbWFuaXB1bGF0aW9uIG9mIHRoZSBwZ19w ZXJpb2QgcmVsYXRpb24KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAy MSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKgorICogSURF TlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wZXJpb2QuYworICoK KyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKwor I2luY2x1ZGUgImFjY2Vzcy9nZW5hbS5oIgorI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIK KyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9p bmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9kLmgiCisjaW5jbHVkZSAi dXRpbHMvZm1ncm9pZHMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNs dWRlICJ1dGlscy9yZWwuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisKKy8q CisgKiBEZWxldGUgYSBzaW5nbGUgcGVyaW9kIHJlY29yZC4KKyAqLwordm9pZAorUmVtb3Zl UGVyaW9kQnlJZChPaWQgcGVyaW9kSWQpCit7CisJUmVsYXRpb24JcGdfcGVyaW9kOworCUhl YXBUdXBsZQl0dXA7CisKKwlwZ19wZXJpb2QgPSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9u SWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFBFUklP RE9JRCwgT2JqZWN0SWRHZXREYXR1bShwZXJpb2RJZCkpOworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKSAvKiBzaG91bGQgbm90IGhhcHBlbiAqLworCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3IgcGVyaW9kICV1IiwgcGVyaW9kSWQpOworCisJLyogRnJ5 IHRoZSBwZXJpb2QgaXRzZWxmICovCisJQ2F0YWxvZ1R1cGxlRGVsZXRlKHBnX3BlcmlvZCwg JnR1cC0+dF9zZWxmKTsKKworCS8qIENsZWFuIHVwICovCisJUmVsZWFzZVN5c0NhY2hlKHR1 cCk7CisJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBSb3dFeGNsdXNpdmVMb2NrKTsKK30KKwor LyoKKyAqIGdldF9yZWxhdGlvbl9wZXJpb2Rfb2lkCisgKgkJRmluZCBhIHBlcmlvZCBvbiB0 aGUgc3BlY2lmaWVkIHJlbGF0aW9uIHdpdGggdGhlIHNwZWNpZmllZCBuYW1lLgorICoJCVJl dHVybnMgcGVyaW9kJ3MgT0lELgorICovCitPaWQKK2dldF9yZWxhdGlvbl9wZXJpb2Rfb2lk KE9pZCByZWxpZCwgY29uc3QgY2hhciAqcGVybmFtZSwgYm9vbCBtaXNzaW5nX29rKQorewor CVJlbGF0aW9uCXBnX3BlcmlvZDsKKwlIZWFwVHVwbGUJdHVwbGU7CisJU3lzU2NhbkRlc2Mg c2NhbjsKKwlTY2FuS2V5RGF0YSBza2V5WzJdOworCU9pZAkJCXBlck9pZCA9IEludmFsaWRP aWQ7CisKKwkvKiBGZXRjaCB0aGUgcGVyaW9kIHR1cGxlIGZyb20gcGdfcGVyaW9kLiAqLwor CXBnX3BlcmlvZCA9IHRhYmxlX29wZW4oUGVyaW9kUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVM b2NrKTsKKworCVNjYW5LZXlJbml0KCZza2V5WzBdLAorCQkJCUFudW1fcGdfcGVyaW9kX3Bl cnJlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQlPYmpl Y3RJZEdldERhdHVtKHJlbGlkKSk7CisJU2NhbktleUluaXQoJnNrZXlbMV0sCisJCQkJQW51 bV9wZ19wZXJpb2RfcGVybmFtZSwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfTkFN RUVRLAorCQkJCUNTdHJpbmdHZXREYXR1bShwZXJuYW1lKSk7CisKKwlzY2FuID0gc3lzdGFi bGVfYmVnaW5zY2FuKHBnX3BlcmlvZCwgUGVyaW9kUmVsaWROYW1lSW5kZXhJZCwgdHJ1ZSwK KwkJCQkJCQkgIE5VTEwsIDIsIHNrZXkpOworCisJLyogVGhlcmUgY2FuIGJlIGF0IG1vc3Qg b25lIG1hdGNoaW5nIHJvdyAqLworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lz dGFibGVfZ2V0bmV4dChzY2FuKSkpCisJCXBlck9pZCA9ICgoRm9ybV9wZ19wZXJpb2QpIEdF VFNUUlVDVCh0dXBsZSkpLT5vaWQ7CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCisJ LyogSWYgbm8gc3VjaCBwZXJpb2QgZXhpc3RzLCBjb21wbGFpbiAqLworCWlmICghT2lkSXNW YWxpZChwZXJPaWQpICYmICFtaXNzaW5nX29rKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygicGVyaW9k IFwiJXNcIiBmb3IgdGFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCXBlcm5h bWUsIGdldF9yZWxfbmFtZShyZWxpZCkpKSk7CisKKwl0YWJsZV9jbG9zZShwZ19wZXJpb2Qs IEFjY2Vzc1NoYXJlTG9jayk7CisKKwlyZXR1cm4gcGVyT2lkOworfQorCisvKgorICogZ2V0 X3BlcmlvZF9hdHRub3MKKyAqCQlHZXQgdGhlIGF0dG5vIG9mIHRoZSBHRU5FUkFURUQgcmFu Z2V0eXBlIGNvbHVtbgorICoJCWZvciBhbGwgUEVSSU9EcyBpbiB0aGlzIHRhYmxlLgorICov CitleHRlcm4gQml0bWFwc2V0CisqZ2V0X3BlcmlvZF9hdHRub3MoT2lkIHJlbGlkKQorewor CUJpdG1hcHNldCAqYXR0bm9zID0gTlVMTDsKKwlSZWxhdGlvbglwZ19wZXJpb2Q7CisJSGVh cFR1cGxlCXR1cGxlOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURhdGEgc2tleVsx XTsKKworCXBnX3BlcmlvZCA9IHRhYmxlX29wZW4oUGVyaW9kUmVsYXRpb25JZCwgQWNjZXNz U2hhcmVMb2NrKTsKKworCVNjYW5LZXlJbml0KCZza2V5WzBdLAorCQkJCUFudW1fcGdfcGVy aW9kX3BlcnJlbGlkLAorCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJ CQlPYmplY3RJZEdldERhdHVtKHJlbGlkKSk7CisKKwlzY2FuID0gc3lzdGFibGVfYmVnaW5z Y2FuKHBnX3BlcmlvZCwgUGVyaW9kUmVsaWROYW1lSW5kZXhJZCwgdHJ1ZSwKKwkJCQkJCQkg IE5VTEwsIDEsIHNrZXkpOworCisJd2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUgPSBz eXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCUZvcm1fcGdfcGVyaW9kIHBlcmlvZCA9 IChGb3JtX3BnX3BlcmlvZCkgR0VUU1RSVUNUKHR1cGxlKTsKKworCQlhdHRub3MgPSBibXNf YWRkX21lbWJlcihhdHRub3MsIHBlcmlvZC0+cGVycmFuZ2UpOworCX0KKworCXN5c3RhYmxl X2VuZHNjYW4oc2Nhbik7CisJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBBY2Nlc3NTaGFyZUxv Y2spOworCisJcmV0dXJuIGF0dG5vczsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvc3FsX2ZlYXR1cmVzLnR4dCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1 cmVzLnR4dAppbmRleCBjMDAyZjM3MjAyZi4uOWE3NGIwZmEyNDAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dAorKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKQEAgLTQ0OCw3ICs0NDgsNyBAQCBUMTc2CVNlcXVl bmNlIGdlbmVyYXRvciBzdXBwb3J0CQkJTk8Jc3VwcG9ydGVkIGV4Y2VwdCBmb3IgTkVYVCBW QUxVRSBGT1IKIFQxNzcJU2VxdWVuY2UgZ2VuZXJhdG9yIHN1cHBvcnQ6IHNpbXBsZSByZXN0 YXJ0IG9wdGlvbgkJCVlFUwkKIFQxNzgJSWRlbnRpdHkgY29sdW1uczogc2ltcGxlIHJlc3Rh cnQgb3B0aW9uCQkJWUVTCQogVDE4MAlTeXN0ZW0tdmVyc2lvbmVkIHRhYmxlcwkJCU5PCQot VDE4MQlBcHBsaWNhdGlvbi10aW1lIHBlcmlvZCB0YWJsZXMJCQlOTwkKK1QxODEJQXBwbGlj YXRpb24tdGltZSBwZXJpb2QgdGFibGVzCQkJWUVTCQogVDE5MQlSZWZlcmVudGlhbCBhY3Rp b24gUkVTVFJJQ1QJCQlZRVMJCiBUMjAwCVRyaWdnZXIgRERMCQkJTk8Jc2ltaWxhciBidXQg bm90IGZ1bGx5IGNvbXBhdGlibGUKIFQyMDEJQ29tcGFyYWJsZSBkYXRhIHR5cGVzIGZvciBy ZWZlcmVudGlhbCBjb25zdHJhaW50cwkJCVlFUwkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2NvbW1lbnQuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbW1lbnQuYwpp bmRleCBmNjdhOGI5NWQyOS4uNzExMGFmYjM1MmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2NvbW1lbnQuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb21tZW50 LmMKQEAgLTEwMiw2ICsxMDIsMTYgQEAgQ29tbWVudE9iamVjdChDb21tZW50U3RtdCAqc3Rt dCkKIAkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSwKIAkJCQkJ CSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJlbGF0aW9uLT5yZF9yZWwtPnJl bGtpbmQpKSk7CiAJCQlicmVhazsKKworCQljYXNlIE9CSkVDVF9QRVJJT0Q6CisJCQkvKiBQ ZXJpb2RzIGNhbiBvbmx5IGdvIG9uIHRhYmxlcyAqLworCQkJaWYgKHJlbGF0aW9uLT5yZF9y ZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTikKKwkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCQkgZXJy bXNnKCJcIiVzXCIgaXMgbm90IGEgdGFibGUiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZWxhdGlvbikpKSk7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJYnJl YWs7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKaW5kZXggY2ViOWEyMjliNjMuLjUy NmMzZmY1MTQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKQEAgLTUwNCw2ICs1MDQs NyBAQCBkb2VzX25vdF9leGlzdF9za2lwcGluZyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUg Km9iamVjdCkKIAkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKIAkJY2FzZSBPQkpFQ1Rf TEFSR0VPQkpFQ1Q6CiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CisJCWNhc2UgT0JK RUNUX1BFUklPRDoKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgogCQlj YXNlIE9CSkVDVF9QVUJMSUNBVElPTl9SRUw6CiAJCWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJ TlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXggZWRjMmM5ODhl MjkuLjM2NzA2ZTlhMTAwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVu dF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5j CkBAIC0yMTY5LDYgKzIxNjksNyBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RU eXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNhc2UgT0JKRUNUX09Q RVJBVE9SOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBPQkpFQ1RfUEVSSU9E OgogCQljYXNlIE9CSkVDVF9QT0xJQ1k6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OOgog CQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CkBAIC0yMjUzLDYgKzIyNTQs NyBAQCBzdHJpbmdpZnlfYWRlZnByaXZzX29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQog CQljYXNlIE9CSkVDVF9PUEVSQVRPUjoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CiAJCWNh c2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CisJCWNhc2UgT0JKRUNUX1BFUklPRDoKIAkJY2Fz ZSBPQkpFQ1RfUE9MSUNZOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTjoKIAkJY2FzZSBP QkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMK aW5kZXggY2VlNWQ3YmJiOWMuLmY4NjUwZWI0ZmU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xh YmVsLmMKQEAgLTc5LDYgKzc5LDcgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUoT2Jq ZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9PUEVSQVRPUjoKIAkJY2FzZSBPQkpF Q1RfT1BGQU1JTFk6CiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CisJCWNhc2UgT0JK RUNUX1BFUklPRDoKIAkJY2FzZSBPQkpFQ1RfUE9MSUNZOgogCQljYXNlIE9CSkVDVF9QVUJM SUNBVElPTl9OQU1FU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNDkzMDM2YjJkOTMuLjYwODI0MWIwYzEy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNDQsNiArNDQsNyBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfbGFyZ2VvYmplY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BjbGFzcy5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfcGVyaW9kLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wb2xpY3ku aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3B1YmxpY2F0aW9uX3JlbC5oIgpAQCAtMTU1LDYgKzE1NiwxMSBAQCB0eXBlZGVmIGVudW0g QWx0ZXJUYWJsZVBhc3MKIAlBVF9QQVNTX09MRF9JTkRFWCwJCQkvKiByZS1hZGQgZXhpc3Rp bmcgaW5kZXhlcyAqLwogCUFUX1BBU1NfT0xEX0NPTlNUUiwJCQkvKiByZS1hZGQgZXhpc3Rp bmcgY29uc3RyYWludHMgKi8KIAkvKiBXZSBjb3VsZCBzdXBwb3J0IGEgUkVOQU1FIENPTFVN TiBwYXNzIGhlcmUsIGJ1dCBub3QgY3VycmVudGx5IHVzZWQgKi8KKwkvKgorCSAqIFdlIG11 c3QgYWRkIFBFUklPRHMgYWZ0ZXIgY29sdW1ucywgaW4gY2FzZSB0aGV5IHJlZmVyZW5jZSBh IG5ld2x5LWFkZGVkIGNvbHVtbiwKKwkgKiBhbmQgYmVmb3JlIGNvbnN0cmFpbnRzLCBpbiBj YXNlIGEgbmV3bHktYWRkZWQgUEsvRksgcmVmZXJlbmNlcyB0aGVtLgorCSAqLworCUFUX1BB U1NfQUREX1BFUklPRCwJCQkvKiBBREQgUEVSSU9EICovCiAJQVRfUEFTU19BRERfQ09OU1RS LAkJCS8qIEFERCBjb25zdHJhaW50cyAoaW5pdGlhbCBleGFtaW5hdGlvbikgKi8KIAlBVF9Q QVNTX0NPTF9BVFRSUywJCQkvKiBzZXQgY29sdW1uIGF0dHJpYnV0ZXMsIGVnIE5PVCBOVUxM ICovCiAJQVRfUEFTU19BRERfSU5ERVhDT05TVFIsCS8qIEFERCBpbmRleC1iYXNlZCBjb25z dHJhaW50cyAqLwpAQCAtMzczLDYgKzM3OSw3IEBAIHN0YXRpYyB2b2lkIFJhbmdlVmFyQ2Fs bGJhY2tGb3JUcnVuY2F0ZShjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sCiBzdGF0aWMgTGlz dCAqTWVyZ2VBdHRyaWJ1dGVzKExpc3QgKmNvbHVtbnMsIGNvbnN0IExpc3QgKnN1cGVycywg Y2hhciByZWxwZXJzaXN0ZW5jZSwKIAkJCQkJCQkgYm9vbCBpc19wYXJ0aXRpb24sIExpc3Qg KipzdXBjb25zdHIsCiAJCQkJCQkJIExpc3QgKipzdXBub3RudWxscyk7CitzdGF0aWMgTGlz dCAqTWVyZ2VQZXJpb2RzKGNoYXIgKnJlbG5hbWUsIExpc3QgKnBlcmlvZHMsIExpc3QgKnRh YmxlRWx0cywgTGlzdCAqc3VwZXJzKTsKIHN0YXRpYyBMaXN0ICpNZXJnZUNoZWNrQ29uc3Ry YWludChMaXN0ICpjb25zdHJhaW50cywgY29uc3QgY2hhciAqbmFtZSwgTm9kZSAqZXhwcik7 CiBzdGF0aWMgdm9pZCBNZXJnZUNoaWxkQXR0cmlidXRlKExpc3QgKmluaF9jb2x1bW5zLCBp bnQgZXhpc3RfYXR0bm8sIGludCBuZXdjb2xfYXR0bm8sIGNvbnN0IENvbHVtbkRlZiAqbmV3 ZGVmKTsKIHN0YXRpYyBDb2x1bW5EZWYgKk1lcmdlSW5oZXJpdGVkQXR0cmlidXRlKExpc3Qg KmluaF9jb2x1bW5zLCBpbnQgZXhpc3RfYXR0bm8sIGNvbnN0IENvbHVtbkRlZiAqbmV3ZGVm KTsKQEAgLTQ1NSw2ICs0NjIsOCBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBBVEV4ZWNBZGRD b2x1bW4oTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLAogCQkJCQkJCQkJ IEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCk7CiBzdGF0aWMgYm9vbCBjaGVj a19mb3JfY29sdW1uX25hbWVfY29sbGlzaW9uKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAq Y29sbmFtZSwKIAkJCQkJCQkJCQkJYm9vbCBpZl9ub3RfZXhpc3RzKTsKK3N0YXRpYyBib29s IGNoZWNrX2Zvcl9wZXJpb2RfbmFtZV9jb2xsaXNpb24oUmVsYXRpb24gcmVsLCBjb25zdCBj aGFyICpwZXJuYW1lLAorCQkJCQkJCQkJCQlib29sIGNvbGV4aXN0cywgYm9vbCBpZl9ub3Rf ZXhpc3RzKTsKIHN0YXRpYyB2b2lkIGFkZF9jb2x1bW5fZGF0YXR5cGVfZGVwZW5kZW5jeShP aWQgcmVsaWQsIGludDMyIGF0dG51bSwgT2lkIHR5cGlkKTsKIHN0YXRpYyB2b2lkIGFkZF9j b2x1bW5fY29sbGF0aW9uX2RlcGVuZGVuY3koT2lkIHJlbGlkLCBpbnQzMiBhdHRudW0sIE9p ZCBjb2xsaWQpOwogc3RhdGljIE9iamVjdEFkZHJlc3MgQVRFeGVjRHJvcE5vdE51bGwoUmVs YXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLCBib29sIHJlY3Vyc2UsCkBAIC00NzIs NiArNDgxLDEyIEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0NvbHVtbkRlZmF1bHQo UmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLAogCQkJCQkJCQkJCSBOb2RlICpu ZXdEZWZhdWx0LCBMT0NLTU9ERSBsb2NrbW9kZSk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBB VEV4ZWNDb29rZWRDb2x1bW5EZWZhdWx0KFJlbGF0aW9uIHJlbCwgQXR0ck51bWJlciBhdHRu dW0sCiAJCQkJCQkJCQkJCSAgIE5vZGUgKm5ld0RlZmF1bHQpOworc3RhdGljIE9iamVjdEFk ZHJlc3MgQVRFeGVjQWRkUGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJpb2Qs CisJCQkJCQkJCQkgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KTsKK3N0YXRp YyB2b2lkIEFURXhlY0Ryb3BQZXJpb2QoUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpwZXJp b2ROYW1lLAorCQkJCQkJCSBEcm9wQmVoYXZpb3IgYmVoYXZpb3IsCisJCQkJCQkJIGJvb2wg cmVjdXJzZSwgYm9vbCByZWN1cnNpbmcsCisJCQkJCQkJIGJvb2wgbWlzc2luZ19vayk7CiBz dGF0aWMgT2JqZWN0QWRkcmVzcyBBVEV4ZWNBZGRJZGVudGl0eShSZWxhdGlvbiByZWwsIGNv bnN0IGNoYXIgKmNvbE5hbWUsCiAJCQkJCQkJCQkgICBOb2RlICpkZWYsIExPQ0tNT0RFIGxv Y2ttb2RlLCBib29sIHJlY3Vyc2UsIGJvb2wgcmVjdXJzaW5nKTsKIHN0YXRpYyBPYmplY3RB ZGRyZXNzIEFURXhlY1NldElkZW50aXR5KFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29s TmFtZSwKQEAgLTY4OCw2ICs3MDMsMTAgQEAgc3RhdGljIExpc3QgKkdldFBhcmVudGVkRm9y ZWlnbktleVJlZnMoUmVsYXRpb24gcGFydGl0aW9uKTsKIHN0YXRpYyB2b2lkIEFURGV0YWNo Q2hlY2tOb0ZvcmVpZ25LZXlSZWZzKFJlbGF0aW9uIHBhcnRpdGlvbik7CiBzdGF0aWMgY2hh ciBHZXRBdHRyaWJ1dGVDb21wcmVzc2lvbihPaWQgYXR0dHlwaWQsIGNvbnN0IGNoYXIgKmNv bXByZXNzaW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJpYnV0ZVN0b3JhZ2UoT2lkIGF0dHR5 cGlkLCBjb25zdCBjaGFyICpzdG9yYWdlbW9kZSk7CitzdGF0aWMgdm9pZCBBZGRSZWxhdGlv bk5ld1BlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlvZERlZiAqcGVyaW9kKTsKK3N0YXRpYyB2 b2lkIFZhbGlkYXRlUGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVmICpwZXJpb2QpOwor c3RhdGljIENvbnN0cmFpbnQgKm1ha2VfY29uc3RyYWludF9mb3JfcGVyaW9kKFJlbGF0aW9u IHJlbCwgUGVyaW9kRGVmICpwZXJpb2QpOworc3RhdGljIENvbHVtbkRlZiAqbWFrZV9yYW5n ZV9jb2x1bW5fZm9yX3BlcmlvZChQZXJpb2REZWYgKnBlcmlvZCk7CiAKIAogLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpAQCAtOTE3LDYgKzkzNiw3OSBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpz dG10LCBjaGFyIHJlbGtpbmQsIE9pZCBvd25lcklkLAogCQkJCQkJc3RtdC0+cGFydGJvdW5k ICE9IE5VTEwsCiAJCQkJCQkmb2xkX2NvbnN0cmFpbnRzLCAmb2xkX25vdG51bGxzKTsKIAor CS8qCisJICogVXNpbmcgdGhlIGNvbHVtbiBsaXN0IChpbmNsdWRpbmcgaW5oZXJpdGVkIGNv bHVtbnMpLAorCSAqIGZpbmQgdGhlIHN0YXJ0L2VuZCBjb2x1bW5zIGZvciBlYWNoIHBlcmlv ZC4KKwkgKiBQRVJJT0RzIHNob3VsZCBiZSBpbmhlcml0ZWQgdG9vIChidXQgYXJlbid0IHll dCkuCisJICovCisJc3RtdC0+cGVyaW9kcyA9IE1lcmdlUGVyaW9kcyhyZWxuYW1lLCBzdG10 LT5wZXJpb2RzLCBzdG10LT50YWJsZUVsdHMsIGluaGVyaXRPaWRzKTsKKworCS8qCisJICog Rm9yIGVhY2ggUEVSSU9EIHdlIG5lZWQgYSBHRU5FUkFURUQgY29sdW1uLgorCSAqIFVzdWFs bHkgd2UgbXVzdCBjcmVhdGUgdGhpcywgc28gd2UgYWRkIGl0IHRvIHRhYmxlRWx0cy4KKwkg KiBJZiB0aGUgdXNlciBzYXlzIHRoZSBjb2x1bW4gYWxyZWFkeSBleGlzdHMsCisJICogbWFr ZSBzdXJlIGl0IGlzIHNlbnNpYmxlLgorCSAqIFRoZXNlIGNvbHVtbnMgYXJlIG5vdCBpbmhl cml0ZWQsCisJICogc28gd2UgZG9uJ3Qgd29ycnkgYWJvdXQgY29uZmxpY3RzIGluIHRhYmxl RWx0cy4KKwkgKgorCSAqIFdlIGFsbG93IHRoaXMgY29sZXhpc3RzIG9wdGlvbiB0byBzdXBw b3J0IHBnX3VwZ3JhZGUsCisJICogc28gd2UgaGF2ZSBtb3JlIGNvbnRyb2wgb3ZlciB0aGUg R0VORVJBVEVEIGNvbHVtbgorCSAqICh3aG9zZSBhdHRudW0gbXVzdCBtYXRjaCB0aGUgb2xk IHZhbHVlKS4KKwkgKi8KKwlmb3JlYWNoKGxpc3RwdHIsIHN0bXQtPnBlcmlvZHMpCisJewor CQlQZXJpb2REZWYgKnBlcmlvZCA9IChQZXJpb2REZWYgKikgbGZpcnN0KGxpc3RwdHIpOwor CisJCWlmIChwZXJpb2QtPmNvbGV4aXN0cykKKwkJeworCQkJTGlzdENlbGwgKmNlbGw7CisJ CQlib29sIGZvdW5kID0gZmFsc2U7CisKKwkJCWZvcmVhY2goY2VsbCwgc3RtdC0+dGFibGVF bHRzKQorCQkJeworCQkJCUNvbHVtbkRlZiAgKmNvbERlZiA9IGxmaXJzdChjZWxsKTsKKwor CQkJCWlmIChzdHJjbXAocGVyaW9kLT5wZXJpb2RuYW1lLCBjb2xEZWYtPmNvbG5hbWUpID09 IDApCisJCQkJeworCQkJCQkvKgorCQkJCQkgKiBMb3RzIHRvIGNoZWNrIGhlcmU6CisJCQkJ CSAqIEl0IG11c3QgYmUgR0VORVJBVEVEIEFMV0FZUywKKwkJCQkJICogaXQgbXVzdCBoYXZl IHRoZSByaWdodCBleHByZXNzaW9uLAorCQkJCQkgKiBpdCBtdXN0IGJlIHRoZSByaWdodCB0 eXBlLAorCQkJCQkgKiBpdCBtdXN0IGJlIE5PVCBOVUxMLAorCQkJCQkgKiBpdCBtdXN0IG5v dCBiZSBpbmhlcml0ZWQuCisJCQkJCSAqLworCQkJCQlpZiAoY29sRGVmLT5nZW5lcmF0ZWQg PT0gJ1wwJykKKwkJCQkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2Vz IGEgbm9uLWdlbmVyYXRlZCBjb2x1bW4iLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJ CQkJaWYgKGNvbERlZi0+Z2VuZXJhdGVkICE9IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVE KQorCQkJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBnZW5l cmF0ZWQgY29sdW1uIHRoYXQgaXMgbm90IFNUT1JFRCIsIHBlcmlvZC0+cGVyaW9kbmFtZSkp KTsKKworCQkJCQkvLyBUT0RPOiBjaGVjayB0aGUgR0VORVJBVEVEIGV4cHJlc3Npb24gYWxz by4KKworCQkJCQlpZiAoIWNvbERlZi0+aXNfbm90X251bGwgJiYgIUlzQmluYXJ5VXBncmFk ZSkKKwkJCQkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2VzIGEgZ2Vu ZXJhdGVkIGNvbHVtbiB0aGF0IGFsbG93cyBudWxscyIsIHBlcmlvZC0+cGVyaW9kbmFtZSkp KTsKKworCQkJCQlpZiAocGVyaW9kLT5ybmd0eXBpZCAhPSB0eXBlbmFtZVR5cGVJZChOVUxM LCBjb2xEZWYtPnR5cGVOYW1lKSkKKwkJCQkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBl cmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB3aXRoIHRoZSB3cm9uZyB0eXBlIiwg cGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCQkJCWlmICghY29sRGVmLT5pc19sb2NhbCkK KwkJCQkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2VzIGEgZ2VuZXJh dGVkIGNvbHVtbiB0aGF0IGlzIGluaGVyaXRlZCIsIHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsK KworCQkJCQlmb3VuZCA9IHRydWU7CisJCQkJfQorCQkJfQorCisJCQlpZiAoIWZvdW5kKQor CQkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIk5vIGNvbHVtbiBmb3VuZCB3aXRoIG5hbWUg JXMiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlDb2x1 bW5EZWYgKmNvbCA9IG1ha2VfcmFuZ2VfY29sdW1uX2Zvcl9wZXJpb2QocGVyaW9kKTsKKwkJ CXN0bXQtPnRhYmxlRWx0cyA9IGxhcHBlbmQoc3RtdC0+dGFibGVFbHRzLCBjb2wpOworCQl9 CisJfQorCiAJLyoKIAkgKiBDcmVhdGUgYSB0dXBsZSBkZXNjcmlwdG9yIGZyb20gdGhlIHJl bGF0aW9uIHNjaGVtYS4gIE5vdGUgdGhhdCB0aGlzCiAJICogZGVhbHMgd2l0aCBjb2x1bW4g bmFtZXMsIHR5cGVzLCBhbmQgaW4tZGVzY3JpcHRvciBOT1QgTlVMTCBmbGFncywgYnV0CkBA IC0xMjk2LDcgKzEzODgsNyBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpzdG10LCBj aGFyIHJlbGtpbmQsIE9pZCBvd25lcklkLAogCQkJCQkJCQkgIHRydWUsIHRydWUsIGZhbHNl LCBxdWVyeVN0cmluZyk7CiAKIAkvKgotCSAqIEZpbmFsbHksIG1lcmdlIHRoZSBub3QtbnVs bCBjb25zdHJhaW50cyB0aGF0IGFyZSBkZWNsYXJlZCBkaXJlY3RseSB3aXRoCisJICogTm93 IG1lcmdlIHRoZSBub3QtbnVsbCBjb25zdHJhaW50cyB0aGF0IGFyZSBkZWNsYXJlZCBkaXJl Y3RseSB3aXRoCiAJICogdGhvc2UgdGhhdCBjb21lIGZyb20gcGFyZW50IHJlbGF0aW9ucyAo bWFraW5nIHN1cmUgdG8gY291bnQgaW5oZXJpdGFuY2UKIAkgKiBhcHByb3ByaWF0ZWx5IGZv ciBlYWNoKSwgY3JlYXRlIHRoZW0sIGFuZCBzZXQgdGhlIGF0dG5vdG51bGwgZmxhZyBvbgog CSAqIGNvbHVtbnMgdGhhdCBkb24ndCB5ZXQgaGF2ZSBpdC4KQEAgLTEzMDYsNiArMTM5OCwy MSBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpzdG10LCBjaGFyIHJlbGtpbmQsIE9p ZCBvd25lcklkLAogCWZvcmVhY2hfaW50KGF0dHJudW0sIG5uY29scykKIAkJc2V0X2F0dG5v dG51bGwoTlVMTCwgcmVsLCBhdHRybnVtLCBOb0xvY2spOwogCisJLyoKKwkgKiBGaW5hbGx5 LCBjcmVhdGUgcGVyaW9kcyBmb3IgdGhlIHRhYmxlLiBUaGlzIG11c3QgY29tZSBhZnRlciB3 ZSBjcmVhdGUKKwkgKiBjb2x1bW5zIGFuZCBiZWZvcmUgd2UgY3JlYXRlIGluZGV4IGNvbnN0 cmFpbnRzLiBJdCB3aWxsIGF1dG9tYXRpY2FsbHkKKwkgKiBjcmVhdGUgYSBDSEVDSyBjb25z dHJhaW50IGZvciB0aGUgcGVyaW9kLgorCSAqLworCWZvcmVhY2gobGlzdHB0ciwgc3RtdC0+ cGVyaW9kcykKKwl7CisJCVBlcmlvZERlZiAqcGVyaW9kID0gKFBlcmlvZERlZiAqKSBsZmly c3QobGlzdHB0cik7CisKKwkJLyogRG9uJ3QgdXBkYXRlIHRoZSBjb3VudCBvZiBjaGVjayBj b25zdHJhaW50cyB0d2ljZSAqLworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJ CUFkZFJlbGF0aW9uTmV3UGVyaW9kKHJlbCwgcGVyaW9kKTsKKwl9CisKIAlPYmplY3RBZGRy ZXNzU2V0KGFkZHJlc3MsIFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsYXRpb25JZCk7CiAKIAkv KgpAQCAtMTQwNSw2ICsxNTEyLDMxMiBAQCBCdWlsZERlc2NGb3JSZWxhdGlvbihjb25zdCBM aXN0ICpjb2x1bW5zKQogCXJldHVybiBkZXNjOwogfQogCisvKgorICogbWFrZV9jb25zdHJh aW50X2Zvcl9wZXJpb2QKKyAqCisgKiBCdWlsZHMgYSBDSEVDSyBDb25zdHJhaW50IHRvIGVu c3VyZSBzdGFydCA8IGVuZC4KKyAqIFJldHVybnMgdGhlIENIRUNLIENvbnN0cmFpbnQuCisg KiBBbHNvIGZpbGxzIGluIHBlcmlvZC0+Y29uc3RyYWludG5hbWUgaWYgbmVlZGVkLgorICoK KyAqIElmIGVpdGhlciBib3VuZCBpcyBOVUxMLCB0aGUgY29uc3RyYWludCBwYXNzZXMKKyAq IChzaW5jZSB0aGF0IGluZGljYXRlcyBhbiB1bmJvdW5kZWQgcmFuZ2UpLgorICovCitzdGF0 aWMgQ29uc3RyYWludCAqCittYWtlX2NvbnN0cmFpbnRfZm9yX3BlcmlvZChSZWxhdGlvbiBy ZWwsIFBlcmlvZERlZiAqcGVyaW9kKQoreworCUNvbHVtblJlZiAgKnNjb2wsICplY29sOwor CUNvbnN0cmFpbnQgKmNvbnN0cjsKKwlUeXBlQ2FjaGVFbnRyeSAqdHlwZTsKKworCWlmIChw ZXJpb2QtPmNvbnN0cmFpbnRuYW1lID09IE5VTEwpCisJCXBlcmlvZC0+Y29uc3RyYWludG5h bWUgPSBDaG9vc2VDb25zdHJhaW50TmFtZShSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp LAorCQkJCQkJCQkJCQkJCSAgcGVyaW9kLT5wZXJpb2RuYW1lLAorCQkJCQkJCQkJCQkJCSAg ImNoZWNrIiwKKwkJCQkJCQkJCQkJCQkgIFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCksCisJ CQkJCQkJCQkJCQkJICBOSUwpOworCXNjb2wgPSBtYWtlTm9kZShDb2x1bW5SZWYpOworCXNj b2wtPmZpZWxkcyA9IGxpc3RfbWFrZTEobWFrZVN0cmluZyhwc3RyZHVwKHBlcmlvZC0+c3Rh cnRjb2xuYW1lKSkpOworCXNjb2wtPmxvY2F0aW9uID0gMDsKKworCWVjb2wgPSBtYWtlTm9k ZShDb2x1bW5SZWYpOworCWVjb2wtPmZpZWxkcyA9IGxpc3RfbWFrZTEobWFrZVN0cmluZyhw c3RyZHVwKHBlcmlvZC0+ZW5kY29sbmFtZSkpKTsKKwllY29sLT5sb2NhdGlvbiA9IDA7CisK Kwl0eXBlID0gbG9va3VwX3R5cGVfY2FjaGUocGVyaW9kLT5jb2x0eXBpZCwgVFlQRUNBQ0hF X0xUX09QUik7CisJaWYgKHR5cGUtPmx0X29wciA9PSBJbnZhbGlkT2lkKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwK KwkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGNhbm5vdCBiZSB1c2VkIGluIGEgUEVSSU9E IGJlY2F1c2UgaXRzIHR5cGUgJXMgaGFzIG5vIGxlc3MgdGhhbiBvcGVyYXRvciIsCisJCQkJ CQlwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgZm9ybWF0X3R5cGVfYmUocGVyaW9kLT5jb2x0eXBp ZCkpKSk7CisKKwljb25zdHIgPSBtYWtlTm9kZShDb25zdHJhaW50KTsKKwljb25zdHItPmNv bnR5cGUgPSBDT05TVFJfQ0hFQ0s7CisJY29uc3RyLT5jb25uYW1lID0gcGVyaW9kLT5jb25z dHJhaW50bmFtZTsKKwljb25zdHItPmRlZmVycmFibGUgPSBmYWxzZTsKKwljb25zdHItPmlu aXRkZWZlcnJlZCA9IGZhbHNlOworCWNvbnN0ci0+bG9jYXRpb24gPSAtMTsKKwljb25zdHIt PmlzX25vX2luaGVyaXQgPSBmYWxzZTsKKwljb25zdHItPnJhd19leHByID0gKE5vZGUgKikg bWFrZVNpbXBsZUFfRXhwcihBRVhQUl9PUCwKKwkJCQkJCQkJCQkJCSBnZXRfb3BuYW1lKHR5 cGUtPmx0X29wciksCisJCQkJCQkJCQkJCQkgKE5vZGUgKikgc2NvbCwKKwkJCQkJCQkJCQkJ CSAoTm9kZSAqKSBlY29sLAorCQkJCQkJCQkJCQkJIDApOworCWNvbnN0ci0+Y29va2VkX2V4 cHIgPSBOVUxMOworCWNvbnN0ci0+c2tpcF92YWxpZGF0aW9uID0gZmFsc2U7CisJY29uc3Ry LT5pbml0aWFsbHlfdmFsaWQgPSB0cnVlOworCisJcmV0dXJuIGNvbnN0cjsKK30KKworLyoK KyAqIG1ha2VfcmFuZ2VfY29sdW1uX2Zvcl9wZXJpb2QKKyAqCisgKiBCdWlsZHMgYSBHRU5F UkFURUQgQUxXQVlTIHJhbmdlIGNvbHVtbiBiYXNlZCBvbiB0aGUgUEVSSU9ECisgKiBzdGFy dC9lbmQgY29sdW1ucy4gUmV0dXJucyB0aGUgQ29sdW1uRGVmLgorICovCitDb2x1bW5EZWYg KgorbWFrZV9yYW5nZV9jb2x1bW5fZm9yX3BlcmlvZChQZXJpb2REZWYgKnBlcmlvZCkKK3sK KwljaGFyICpyYW5nZV90eXBlX25hbWVzcGFjZTsKKwljaGFyICpyYW5nZV90eXBlX25hbWU7 CisJQ29sdW1uRGVmICpjb2wgPSBtYWtlTm9kZShDb2x1bW5EZWYpOworCUNvbHVtblJlZiAq c3RhcnR2YXIsICplbmR2YXI7CisJRXhwciAqcmFuZ2VDb25zdHJ1Y3RvcjsKKworCWlmICgh Z2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZShwZXJpb2QtPnJuZ3R5cGlkLCAmcmFuZ2VfdHlw ZV9uYW1lLCAmcmFuZ2VfdHlwZV9uYW1lc3BhY2UpKQorCQllbG9nKEVSUk9SLCAibWlzc2lu ZyByYW5nZSB0eXBlICVkIiwgcGVyaW9kLT5ybmd0eXBpZCk7CisKKwlzdGFydHZhciA9IG1h a2VOb2RlKENvbHVtblJlZik7CisJc3RhcnR2YXItPmZpZWxkcyA9IGxpc3RfbWFrZTEobWFr ZVN0cmluZyhwc3RyZHVwKHBlcmlvZC0+c3RhcnRjb2xuYW1lKSkpOworCWVuZHZhciA9IG1h a2VOb2RlKENvbHVtblJlZik7CisJZW5kdmFyLT5maWVsZHMgPSBsaXN0X21ha2UxKG1ha2VT dHJpbmcocHN0cmR1cChwZXJpb2QtPmVuZGNvbG5hbWUpKSk7CisJcmFuZ2VDb25zdHJ1Y3Rv ciA9IChFeHByICopIG1ha2VGdW5jQ2FsbCgKKwkJCWxpc3RfbWFrZTIobWFrZVN0cmluZyhy YW5nZV90eXBlX25hbWVzcGFjZSksIG1ha2VTdHJpbmcocmFuZ2VfdHlwZV9uYW1lKSksCisJ CQlsaXN0X21ha2UyKHN0YXJ0dmFyLCBlbmR2YXIpLAorCQkJQ09FUkNFX0VYUExJQ0lUX0NB TEwsCisJCQlwZXJpb2QtPmxvY2F0aW9uKTsKKworCWNvbC0+Y29sbmFtZSA9IHBzdHJkdXAo cGVyaW9kLT5wZXJpb2RuYW1lKTsKKwljb2wtPnR5cGVOYW1lID0gbWFrZVR5cGVOYW1lKHJh bmdlX3R5cGVfbmFtZSk7CisJY29sLT5jb21wcmVzc2lvbiA9IE5VTEw7CisJY29sLT5pbmhj b3VudCA9IDA7CisJY29sLT5pc19sb2NhbCA9IHRydWU7CisJY29sLT5pc19ub3RfbnVsbCA9 IGZhbHNlOworCWNvbC0+aXNfZnJvbV90eXBlID0gZmFsc2U7CisJY29sLT5zdG9yYWdlID0g MDsKKwljb2wtPnN0b3JhZ2VfbmFtZSA9IE5VTEw7CisJY29sLT5yYXdfZGVmYXVsdCA9IChO b2RlICopIHJhbmdlQ29uc3RydWN0b3I7CisJY29sLT5jb29rZWRfZGVmYXVsdCA9IE5VTEw7 CisJY29sLT5pZGVudGl0eSA9IDA7CisJY29sLT5nZW5lcmF0ZWQgPSBBVFRSSUJVVEVfR0VO RVJBVEVEX1NUT1JFRDsKKwljb2wtPmNvbGxDbGF1c2UgPSBOVUxMOworCWNvbC0+Y29sbE9p ZCA9IEludmFsaWRPaWQ7CisJY29sLT5mZHdvcHRpb25zID0gTklMOworCWNvbC0+bG9jYXRp b24gPSBwZXJpb2QtPmxvY2F0aW9uOworCisJcmV0dXJuIGNvbDsKK30KKworLyoKKyAqIFZh bGlkYXRlUGVyaW9kCisgKgorICogTG9vayB1cCB0aGUgYXR0cmlidXRlcyB1c2VkIGJ5IHRo ZSBQRVJJT0QsCisgKiBtYWtlIHN1cmUgdGhleSBleGlzdCwgYXJlIG5vdCBzeXN0ZW0gY29s dW1ucywKKyAqIGFuZCBoYXZlIHRoZSBzYW1lIHR5cGUgYW5kIGNvbGxhdGlvbi4KKyAqCisg KiBZb3UgbXVzdCBoYXZlIGEgUm93RXhjbHVzaXZlTG9jayBvbiBwZ19hdHRyaWJ1dGUKKyAq IGJlZm9yZSBjYWxsaW5nIHRoaXMgZnVuY3Rpb24uCisgKgorICogQWRkIG91ciBmaW5kaW5n cyB0byB0aGVzZSBQZXJpb2REZWYgZmllbGRzOgorICoKKyAqIGNvbHR5cGlkIC0gdGhlIHR5 cGUgb2YgUEVSSU9EIGNvbHVtbnMuCisgKiBzdGFydGF0dG51bSAtIHRoZSBhdHRudW0gb2Yg dGhlIHN0YXJ0IGNvbHVtbi4KKyAqIGVuZGF0dG51bSAtIHRoZSBhdHRudW0gb2YgdGhlIGVu ZCBjb2x1bW4uCisgKiBybmd0eXBpZCAtIHRoZSByYW5nZSB0eXBlIHRvIHVzZS4KKyAqIHJu Z2F0dG51bSAtIHRoZSBhdHRudW0gb2YgYSBwcmUtZXhpc3RpbmcgcmFuZ2UgY29sdW1uLCBv ciBJbnZhbGlkLgorICovCitzdGF0aWMgdm9pZAorVmFsaWRhdGVQZXJpb2QoUmVsYXRpb24g cmVsLCBQZXJpb2REZWYgKnBlcmlvZCkKK3sKKwlIZWFwVHVwbGUgc3RhcnR0dXBsZTsKKwlI ZWFwVHVwbGUgZW5kdHVwbGU7CisJRm9ybV9wZ19hdHRyaWJ1dGUJYXR0dHVwbGU7CisJT2lk CWF0dGNvbGxhdGlvbjsKKworCS8qIEZpbmQgdGhlIHN0YXJ0IGNvbHVtbiAqLworCXN0YXJ0 dHVwbGUgPSBTZWFyY2hTeXNDYWNoZUNvcHlBdHROYW1lKFJlbGF0aW9uR2V0UmVsaWQocmVs KSwgcGVyaW9kLT5zdGFydGNvbG5hbWUpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZChzdGFy dHR1cGxlKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9DT0xVTU4pLAorCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24g XCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCXBlcmlvZC0+c3RhcnRjb2xuYW1lLCBS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCWF0dHR1cGxlID0gKEZvcm1fcGdf YXR0cmlidXRlKSBHRVRTVFJVQ1Qoc3RhcnR0dXBsZSk7CisJcGVyaW9kLT5jb2x0eXBpZCA9 IGF0dHR1cGxlLT5hdHR0eXBpZDsKKwlhdHRjb2xsYXRpb24gPSBhdHR0dXBsZS0+YXR0Y29s bGF0aW9uOworCXBlcmlvZC0+c3RhcnRhdHRudW0gPSBhdHR0dXBsZS0+YXR0bnVtOworCisJ LyogTWFrZSBzdXJlIGl0J3Mgbm90IGEgc3lzdGVtIGNvbHVtbiAqLworCWlmIChwZXJpb2Qt PnN0YXJ0YXR0bnVtIDw9IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJjYW5ub3Qg dXNlIHN5c3RlbSBjb2x1bW4gXCIlc1wiIGluIHBlcmlvZCIsCisJCQkJCQlwZXJpb2QtPnN0 YXJ0Y29sbmFtZSkpKTsKKworCS8qIEZpbmQgdGhlIGVuZCBjb2x1bW4gKi8KKwllbmR0dXBs ZSA9IFNlYXJjaFN5c0NhY2hlQ29weUF0dE5hbWUoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBw ZXJpb2QtPmVuZGNvbG5hbWUpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZChlbmR0dXBsZSkp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09M VU1OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBk b2VzIG5vdCBleGlzdCIsCisJCQkJCQlwZXJpb2QtPmVuZGNvbG5hbWUsIFJlbGF0aW9uR2V0 UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJYXR0dHVwbGUgPSAoRm9ybV9wZ19hdHRyaWJ1dGUp IEdFVFNUUlVDVChlbmR0dXBsZSk7CisJcGVyaW9kLT5lbmRhdHRudW0gPSBhdHR0dXBsZS0+ YXR0bnVtOworCisJLyogTWFrZSBzdXJlIGl0J3Mgbm90IGEgc3lzdGVtIGNvbHVtbiAqLwor CWlmIChwZXJpb2QtPmVuZGF0dG51bSA8PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJIGVycm1z ZygiY2Fubm90IHVzZSBzeXN0ZW0gY29sdW1uIFwiJXNcIiBpbiBwZXJpb2QiLAorCQkJCQkJ cGVyaW9kLT5lbmRjb2xuYW1lKSkpOworCisJLyogQm90aCBjb2x1bW5zIG11c3QgYmUgb2Yg c2FtZSB0eXBlICovCisJaWYgKHBlcmlvZC0+Y29sdHlwaWQgIT0gYXR0dHVwbGUtPmF0dHR5 cGlkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVf TUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coInN0YXJ0IGFuZCBlbmQgY29sdW1ucyBvZiBwZXJp b2QgbXVzdCBiZSBvZiBzYW1lIHR5cGUiKSkpOworCisJLyogQm90aCBjb2x1bW5zIG11c3Qg aGF2ZSB0aGUgc2FtZSBjb2xsYXRpb24gKi8KKwlpZiAoYXR0Y29sbGF0aW9uICE9IGF0dHR1 cGxlLT5hdHRjb2xsYXRpb24pCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9DT0xMQVRJT05fTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coInN0YXJ0IGFuZCBlbmQg Y29sdW1ucyBvZiBwZXJpb2QgbXVzdCBoYXZlIHNhbWUgY29sbGF0aW9uIikpKTsKKworCS8q IEdldCB0aGUgcmFuZ2UgdHlwZSBiYXNlZCBvbiB0aGUgc3RhcnQvZW5kIGNvbHMgb3IgdGhl IHVzZXIncyBjaG9pY2UgKi8KKwlwZXJpb2QtPnJuZ3R5cGlkID0gY2hvb3NlX3JhbmdldHlw ZV9mb3JfcGVyaW9kKHBlcmlvZCk7CisKKwkvKiBJZiB0aGUgR0VORVJBVEVEIGNvbHVtbnMg c2hvdWxkIGFscmVhZHkgZXhpc3QsIG1ha2Ugc3VyZSBpdCBpcyBzZW5zaWJsZS4gKi8KKwlp ZiAocGVyaW9kLT5jb2xleGlzdHMpCisJeworCQlIZWFwVHVwbGUgcm5ndHVwbGUgPSBTZWFy Y2hTeXNDYWNoZUNvcHlBdHROYW1lKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5w ZXJpb2RuYW1lKTsKKwkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHJuZ3R1cGxlKSkKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiks CisJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMg bm90IGV4aXN0IiwKKwkJCQkJCQlwZXJpb2QtPnBlcmlvZG5hbWUsIFJlbGF0aW9uR2V0UmVs YXRpb25OYW1lKHJlbCkpKSk7CisJCWF0dHR1cGxlID0gKEZvcm1fcGdfYXR0cmlidXRlKSBH RVRTVFJVQ1Qocm5ndHVwbGUpOworCisJCS8qCisJCSAqIExvdHMgdG8gY2hlY2sgaGVyZToK KwkJICogSXQgbXVzdCBiZSBHRU5FUkFURUQgQUxXQVlTLAorCQkgKiBpdCBtdXN0IGhhdmUg dGhlIHJpZ2h0IGV4cHJlc3Npb24sCisJCSAqIGl0IG11c3QgYmUgdGhlIHJpZ2h0IHR5cGUs CisJCSAqIGl0IG11c3QgYmUgTk9UIE5VTEwsCisJCSAqIGl0IG11c3Qgbm90IGJlIGluaGVy aXRlZC4KKwkJICovCisJCWlmIChhdHR0dXBsZS0+YXR0Z2VuZXJhdGVkID09ICdcMCcpCisJ CQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIG5vbi1nZW5lcmF0 ZWQgY29sdW1uIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCWlmIChhdHR0dXBsZS0+ YXR0Z2VuZXJhdGVkICE9IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQorCQkJZXJlcG9y dChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRo YXQgaXMgbm90IFNUT1JFRCIsIHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQkvLyBUT0RP OiBjaGVjayB0aGUgR0VORVJBVEVEIGV4cHJlc3Npb24gYWxzby4KKworCQlpZiAoIWF0dHR1 cGxlLT5hdHRub3RudWxsICYmICFJc0JpbmFyeVVwZ3JhZGUpCisJCQllcmVwb3J0KEVSUk9S LCAoZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBhbGxv d3MgbnVsbHMiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJaWYgKHBlcmlvZC0+cm5n dHlwaWQgIT0gYXR0dHVwbGUtPmF0dHR5cGlkKQorCQkJZXJlcG9ydChFUlJPUiwgKGVycm1z ZygiUGVyaW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHdpdGggdGhlIHdyb25nIHR5 cGUiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJaWYgKCFhdHR0dXBsZS0+YXR0aXNs b2NhbCkKKwkJCWVyZXBvcnQoRVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2VzIGEgZ2Vu ZXJhdGVkIGNvbHVtbiB0aGF0IGlzIGluaGVyaXRlZCIsIHBlcmlvZC0+cGVyaW9kbmFtZSkp KTsKKworCQlwZXJpb2QtPnJuZ2F0dG51bSA9IGF0dHR1cGxlLT5hdHRudW07CisKKwkJaGVh cF9mcmVldHVwbGUocm5ndHVwbGUpOworCX0KKworCWhlYXBfZnJlZXR1cGxlKHN0YXJ0dHVw bGUpOworCWhlYXBfZnJlZXR1cGxlKGVuZHR1cGxlKTsKK30KKworLyoKKyAqIGNob29zZV9y YW5nZXR5cGVfZm9yX3BlcmlvZAorICoKKyAqIEZpbmQgYSBzdWl0YWJsZSByYW5nZSB0eXBl IGZvciBvcGVyYXRpb25zIGludm9sdmluZyB0aGlzIHBlcmlvZC4KKyAqIFVzZSB0aGUgcmFu Z2V0eXBlIG9wdGlvbiBpZiBwcm92aWRlZCwgb3RoZXJ3aXNlIHRyeSB0byBmaW5kIGEKKyAq IG5vbi1hbWJpZ3VvdXMgZXhpc3RpbmcgdHlwZS4KKyAqLworT2lkCitjaG9vc2VfcmFuZ2V0 eXBlX2Zvcl9wZXJpb2QoUGVyaW9kRGVmICpwZXJpb2QpCit7CisJT2lkCXJuZ3R5cGlkOwor CisJaWYgKHBlcmlvZC0+cmFuZ2V0eXBlbmFtZSAhPSBOVUxMKQorCXsKKwkJLyogTWFrZSBz dXJlIGl0IGV4aXN0cyAqLworCQlybmd0eXBpZCA9IFR5cGVuYW1lR2V0VHlwaWRFeHRlbmRl ZChwZXJpb2QtPnJhbmdldHlwZW5hbWUsIGZhbHNlKTsKKwkJaWYgKHJuZ3R5cGlkID09IElu dmFsaWRPaWQpCisJCQllcmVwb3J0KEVSUk9SLCAoZXJyY29kZShFUlJDT0RFX1VOREVGSU5F RF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJSYW5nZSB0eXBlICVzIG5vdCBmb3VuZCIsIHBl cmlvZC0+cmFuZ2V0eXBlbmFtZSkpKTsKKworCQkvKiBNYWtlIHN1cmUgaXQgaXMgYSByYW5n ZSB0eXBlICovCisJCWlmICghdHlwZV9pc19yYW5nZShybmd0eXBpZCkpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJ CQkJIGVycm1zZygiVHlwZSAlcyBpcyBub3QgYSByYW5nZSB0eXBlIiwgcGVyaW9kLT5yYW5n ZXR5cGVuYW1lKSkpOworCisJCS8qIE1ha2Ugc3VyZSBpdCBtYXRjaGVzIHRoZSBjb2x1bW4g dHlwZSAqLworCQlpZiAoZ2V0X3JhbmdlX3N1YnR5cGUocm5ndHlwaWQpICE9IHBlcmlvZC0+ Y29sdHlwaWQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RB VEFUWVBFX01JU01BVENIKSwKKwkJCQkJIGVycm1zZygiUmFuZ2UgdHlwZSAlcyBkb2VzIG5v dCBtYXRjaCBjb2x1bW4gdHlwZSAlcyIsCisJCQkJCQkgcGVyaW9kLT5yYW5nZXR5cGVuYW1l LAorCQkJCQkJIGZvcm1hdF90eXBlX2JlKHBlcmlvZC0+Y29sdHlwaWQpKSkpOworCX0KKwll bHNlCisJeworCQlybmd0eXBpZCA9IGdldF9zdWJ0eXBlX3JhbmdlKHBlcmlvZC0+Y29sdHlw aWQpOworCQlpZiAocm5ndHlwaWQgPT0gSW52YWxpZE9pZCkKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJt c2coIm5vIHJhbmdlIHR5cGUgZm9yICVzIGZvdW5kIGZvciBwZXJpb2QgJXMiLAorCQkJCQkJ CWZvcm1hdF90eXBlX2JlKHBlcmlvZC0+Y29sdHlwaWQpLAorCQkJCQkJCXBlcmlvZC0+cGVy aW9kbmFtZSksCisJCQkJCSBlcnJoaW50KCJZb3UgY2FuIGRlZmluZSBhIGN1c3RvbSByYW5n ZSB0eXBlIHdpdGggQ1JFQVRFIFRZUEUiKSkpOworCisJfQorCisJcmV0dXJuIHJuZ3R5cGlk OworfQorCitzdGF0aWMgdm9pZAorQWRkUmVsYXRpb25OZXdQZXJpb2QoUmVsYXRpb24gcmVs LCBQZXJpb2REZWYgKnBlcmlvZCkKK3sKKwlSZWxhdGlvbglhdHRyZWxhdGlvbjsKKwlPaWQJ CQljb25vaWQ7CisJQ29uc3RyYWludCAqY29uc3RyOworCUxpc3QJICAgKm5ld2NvbnN0cnM7 CisKKwlhdHRyZWxhdGlvbiA9IHRhYmxlX29wZW4oQXR0cmlidXRlUmVsYXRpb25JZCwgUm93 RXhjbHVzaXZlTG9jayk7CisKKwkvKiBGaW5kIHRoZSBHRU5FUkFURUQgcmFuZ2UgY29sdW1u ICovCisKKwlwZXJpb2QtPnJuZ2F0dG51bSA9IGdldF9hdHRudW0oUmVsYXRpb25HZXRSZWxp ZChyZWwpLCBwZXJpb2QtPnBlcmlvZG5hbWUpOworCWlmIChwZXJpb2QtPnJuZ2F0dG51bSA9 PSBJbnZhbGlkQXR0ck51bWJlcikKKwkJZWxvZyhFUlJPUiwgIm1pc3NpbmcgYXR0cmlidXRl ICVzIiwgcGVyaW9kLT5wZXJpb2RuYW1lKTsKKworCS8qIFRoZSBwYXJzZXIgaGFzIGFscmVh ZHkgZm91bmQgcGVyaW9kLT5jb2x0eXBpZCAqLworCisJY29uc3RyID0gbWFrZV9jb25zdHJh aW50X2Zvcl9wZXJpb2QocmVsLCBwZXJpb2QpOworCW5ld2NvbnN0cnMgPSBBZGRSZWxhdGlv bk5ld0NvbnN0cmFpbnRzKHJlbCwgTklMLCBsaXN0X21ha2UxKGNvbnN0ciksIGZhbHNlLCB0 cnVlLCB0cnVlLCBOVUxMKTsKKwljb25vaWQgPSAoKENvb2tlZENvbnN0cmFpbnQgKikgbGlu aXRpYWwobmV3Y29uc3RycykpLT5jb25vaWQ7CisKKwkvKiBTYXZlIGl0ICovCisJU3RvcmVQ ZXJpb2QocmVsLCBwZXJpb2QtPnBlcmlvZG5hbWUsIHBlcmlvZC0+c3RhcnRhdHRudW0sIHBl cmlvZC0+ZW5kYXR0bnVtLCBwZXJpb2QtPnJuZ2F0dG51bSwgY29ub2lkKTsKKworCXRhYmxl X2Nsb3NlKGF0dHJlbGF0aW9uLCBSb3dFeGNsdXNpdmVMb2NrKTsKK30KKwogLyoKICAqIEVt aXQgdGhlIHJpZ2h0IGVycm9yIG9yIHdhcm5pbmcgbWVzc2FnZSBmb3IgYSAiRFJPUCIgY29t bWFuZCBpc3N1ZWQgb24gYQogICogbm9uLWV4aXN0ZW50IHJlbGF0aW9uCkBAIC0zMDg3LDYg KzM1MDAsMTY4IEBAIE1lcmdlQXR0cmlidXRlcyhMaXN0ICpjb2x1bW5zLCBjb25zdCBMaXN0 ICpzdXBlcnMsIGNoYXIgcmVscGVyc2lzdGVuY2UsCiB9CiAKIAorLyotLS0tLS0tLS0tCisg KiBNZXJnZVBlcmlvZHMKKyAqCQlSZXR1cm5zIG5ldyBwZXJpb2QgbGlzdCBnaXZlbiBpbml0 aWFsIHBlcmlvZHMgYW5kIHN1cGVyY2xhc3Nlcy4KKyAqCisgKiBGb3Igbm93IHdlIGRvbid0 IHN1cHBvcnQgaW5oZXJpdGVuY2Ugd2l0aCBQRVJJT0RzLAorICogYnV0IHdlIG1pZ2h0IG1h a2UgaXQgd29yayBldmVudHVhbGx5LgorICoKKyAqIFdlIGNhbiBvbWl0IGxvdHMgb2YgY2hl Y2tzIGhlcmUgYW5kIGFzc3VtZSBNZXJnZUF0dHJpYnV0ZXMgYWxyZWFkeSBkaWQgdGhlbSwK KyAqIGZvciBleGFtcGxlIHRoYXQgY2hpbGQgJiBwYXJlbnRzIGFyZSBub3QgYSBtaXggb2Yg cGVybWFuZW50IGFuZCB0ZW1wLgorICovCitzdGF0aWMgTGlzdCAqCitNZXJnZVBlcmlvZHMo Y2hhciAqcmVsbmFtZSwgTGlzdCAqcGVyaW9kcywgTGlzdCAqdGFibGVFbHRzLCBMaXN0ICpz dXBlcnMpCit7CisJTGlzdENlbGwgICAqZW50cnk7CisKKwkvKiBJZiB3ZSBoYXZlIGEgUEVS SU9EIHRoZW4gc3VwZXJzIG11c3QgYmUgZW1wdHkuICovCisKKwlpZiAobGlzdF9sZW5ndGgo cGVyaW9kcykgPiAwICYmIGxpc3RfbGVuZ3RoKHN1cGVycykgPiAwKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkgZXJybXNnKCJJbmhlcml0aW5nIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBhIHRhYmxlIGhh cyBhIFBFUklPRCIpKSk7CisKKwkvKiBJZiBhbnkgcGFyZW50IHRhYmxlIGhhcyBhIFBFUklP RCwgdGhlbiBmYWlsLiAqLworCisJZm9yZWFjaChlbnRyeSwgc3VwZXJzKQorCXsKKwkJT2lk CQkJcGFyZW50ID0gbGZpcnN0X29pZChlbnRyeSk7CisJCVJlbGF0aW9uCXJlbGF0aW9uOwor CQlSZWxhdGlvbglwZ19wZXJpb2Q7CisJCVN5c1NjYW5EZXNjIHNjYW47CisJCVNjYW5LZXlE YXRhIHNrZXlbMV07CisJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkvKiBjYWxsZXIgYWxyZWFk eSBnb3QgbG9jayAqLworCQlyZWxhdGlvbiA9IHRhYmxlX29wZW4ocGFyZW50LCBOb0xvY2sp OworCQlwZ19wZXJpb2QgPSB0YWJsZV9vcGVuKFBlcmlvZFJlbGF0aW9uSWQsIEFjY2Vzc1No YXJlTG9jayk7CisKKwkJU2NhbktleUluaXQoJnNrZXlbMF0sCisJCQkJCUFudW1fcGdfcGVy aW9kX3BlcnJlbGlkLAorCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJ CQkJCU9iamVjdElkR2V0RGF0dW0ocGFyZW50KSk7CisKKwkJc2NhbiA9IHN5c3RhYmxlX2Jl Z2luc2NhbihwZ19wZXJpb2QsIFBlcmlvZFJlbGlkTmFtZUluZGV4SWQsIHRydWUsCisJCQkJ CQkJCSAgTlVMTCwgMSwgc2tleSk7CisKKwkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUg PSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygi SW5oZXJpdGluZyBmcm9tIGEgdGFibGUgd2l0aCBhIFBFUklPRCBpcyBub3Qgc3VwcG9ydGVk IikpKTsKKworCQlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCQl0YWJsZV9jbG9zZShwZ19w ZXJpb2QsIEFjY2Vzc1NoYXJlTG9jayk7CisJCXRhYmxlX2Nsb3NlKHJlbGF0aW9uLCBOb0xv Y2spOworCX0KKworCS8qCisJICogRmluZCB0aGUgc3RhcnQgJiBlbmQgY29sdW1ucyBhbmQg Z2V0IHRoZWlyIGF0dG5vIGFuZCB0eXBlLgorCSAqIEluIHRoZSBzYW1lIHBhc3MsIG1ha2Ug c3VyZSB0aGUgcGVyaW9kIGRvZXNuJ3QgY29uZmxpY3Qgd2l0aCBhbnkgY29sdW1uIG5hbWVz LgorCSAqIEFsc28gbWFrZSBzdXJlIHRoZSBzYW1lIHBlcmlvZCBuYW1lIGlzbid0IHVzZWQg bW9yZSB0aGFuIG9uY2UuCisJICovCisJZm9yZWFjaCAoZW50cnksIHBlcmlvZHMpCisJewor CQlQZXJpb2REZWYgKnBlcmlvZCA9IGxmaXJzdChlbnRyeSk7CisJCUxpc3RDZWxsICplbnRy eTI7CisJCWludCBpID0gMTsKKwkJT2lkIHN0YXJ0Y29sdHlwaWQgPSBJbnZhbGlkT2lkOwor CQlPaWQgZW5kY29sdHlwaWQgPSBJbnZhbGlkT2lkOworCQlPaWQJc3RhcnRjb2xjb2xsYXRp b24gPSBJbnZhbGlkT2lkOworCQlPaWQJZW5kY29sY29sbGF0aW9uID0gSW52YWxpZE9pZDsK KworCQlwZXJpb2QtPnN0YXJ0YXR0bnVtID0gSW52YWxpZEF0dHJOdW1iZXI7CisJCXBlcmlv ZC0+ZW5kYXR0bnVtID0gSW52YWxpZEF0dHJOdW1iZXI7CisKKwkJaWYgKFN5c3RlbUF0dHJp YnV0ZUJ5TmFtZShwZXJpb2QtPnBlcmlvZG5hbWUpICE9IE5VTEwpCisJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCQkg ZXJybXNnKCJwZXJpb2QgbmFtZSBcIiVzXCIgY29uZmxpY3RzIHdpdGggYSBzeXN0ZW0gY29s dW1uIG5hbWUiLAorCQkJCQkJCXBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQlmb3JlYWNo IChlbnRyeTIsIHBlcmlvZHMpCisJCXsKKwkJCVBlcmlvZERlZiAqcGVyaW9kMiA9IGxmaXJz dChlbnRyeTIpOworCisJCQlpZiAocGVyaW9kICE9IHBlcmlvZDIgJiYgc3RyY21wKHBlcmlv ZC0+cGVyaW9kbmFtZSwgcGVyaW9kMi0+cGVyaW9kbmFtZSkgPT0gMCkKKwkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJ CQkJCSBlcnJtc2coInBlcmlvZCBuYW1lIFwiJXNcIiBzcGVjaWZpZWQgbW9yZSB0aGFuIG9u Y2UiLAorCQkJCQkJCQlwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisJCX0KKworCQlmb3JlYWNo IChlbnRyeTIsIHRhYmxlRWx0cykKKwkJeworCQkJQ29sdW1uRGVmICpjb2wgPSBsZmlyc3Qo ZW50cnkyKTsKKwkJCWludDMyCWF0dHR5cG1vZDsKKwkJCUFjbFJlc3VsdCBhY2xyZXN1bHQ7 CisKKwkJCWlmICghcGVyaW9kLT5jb2xleGlzdHMgJiYgc3RyY21wKHBlcmlvZC0+cGVyaW9k bmFtZSwgY29sLT5jb2xuYW1lKSA9PSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQko ZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCQkJIGVycm1zZygicGVy aW9kIG5hbWUgXCIlc1wiIGNvbmZsaWN0cyB3aXRoIGEgY29sdW1uIG5hbWUiLAorCQkJCQkJ CQlwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJCWlmIChzdHJjbXAocGVyaW9kLT5zdGFy dGNvbG5hbWUsIGNvbC0+Y29sbmFtZSkgPT0gMCkKKwkJCXsKKwkJCQlwZXJpb2QtPnN0YXJ0 YXR0bnVtID0gaTsKKworCQkJCXR5cGVuYW1lVHlwZUlkQW5kTW9kKE5VTEwsIGNvbC0+dHlw ZU5hbWUsICZzdGFydGNvbHR5cGlkLCAmYXR0dHlwbW9kKTsKKworCQkJCWFjbHJlc3VsdCA9 IG9iamVjdF9hY2xjaGVjayhUeXBlUmVsYXRpb25JZCwgc3RhcnRjb2x0eXBpZCwgR2V0VXNl cklkKCksIEFDTF9VU0FHRSk7CisJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykK KwkJCQkJYWNsY2hlY2tfZXJyb3JfdHlwZShhY2xyZXN1bHQsIHN0YXJ0Y29sdHlwaWQpOwor CisJCQkJc3RhcnRjb2xjb2xsYXRpb24gPSBHZXRDb2x1bW5EZWZDb2xsYXRpb24oTlVMTCwg Y29sLCBzdGFydGNvbHR5cGlkKTsKKwkJCX0KKworCQkJaWYgKHN0cmNtcChwZXJpb2QtPmVu ZGNvbG5hbWUsIGNvbC0+Y29sbmFtZSkgPT0gMCkKKwkJCXsKKwkJCQlwZXJpb2QtPmVuZGF0 dG51bSA9IGk7CisKKwkJCQl0eXBlbmFtZVR5cGVJZEFuZE1vZChOVUxMLCBjb2wtPnR5cGVO YW1lLCAmZW5kY29sdHlwaWQsICZhdHR0eXBtb2QpOworCisJCQkJYWNscmVzdWx0ID0gb2Jq ZWN0X2FjbGNoZWNrKFR5cGVSZWxhdGlvbklkLCBlbmRjb2x0eXBpZCwgR2V0VXNlcklkKCks IEFDTF9VU0FHRSk7CisJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJ YWNsY2hlY2tfZXJyb3JfdHlwZShhY2xyZXN1bHQsIGVuZGNvbHR5cGlkKTsKKworCQkJCWVu ZGNvbGNvbGxhdGlvbiA9IEdldENvbHVtbkRlZkNvbGxhdGlvbihOVUxMLCBjb2wsIGVuZGNv bHR5cGlkKTsKKwkJCX0KKworCQkJaSsrOworCQl9CisKKwkJLyogRGlkIHdlIGZpbmQgdGhl IGNvbHVtbnM/ICovCisJCWlmIChwZXJpb2QtPnN0YXJ0YXR0bnVtID09IEludmFsaWRBdHRy TnVtYmVyKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKKwkJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlv biBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXBlcmlvZC0+c3RhcnRjb2xuYW1l LCByZWxuYW1lKSkpOworCQlpZiAocGVyaW9kLT5lbmRhdHRudW0gPT0gSW52YWxpZEF0dHJO dW1iZXIpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVG SU5FRF9DT0xVTU4pLAorCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9u IFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJcGVyaW9kLT5lbmRjb2xuYW1lLCBy ZWxuYW1lKSkpOworCisJCS8qIEJvdGggY29sdW1ucyBtdXN0IGJlIG9mIHNhbWUgdHlwZSAq LworCQlpZiAoc3RhcnRjb2x0eXBpZCAhPSBlbmRjb2x0eXBpZCkKKwkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkg ZXJybXNnKCJzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVyaW9kIG11c3QgYmUgb2Ygc2Ft ZSB0eXBlIikpKTsKKworCQkvKiBCb3RoIGNvbHVtbnMgbXVzdCBoYXZlIHRoZSBzYW1lIGNv bGxhdGlvbiAqLworCQlpZiAoc3RhcnRjb2xjb2xsYXRpb24gIT0gZW5kY29sY29sbGF0aW9u KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9DT0xMQVRJT05f TUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJzdGFydCBhbmQgZW5kIGNvbHVtbnMgb2YgcGVy aW9kIG11c3QgaGF2ZSBzYW1lIGNvbGxhdGlvbiIpKSk7CisKKwkJcGVyaW9kLT5jb2x0eXBp ZCA9IHN0YXJ0Y29sdHlwaWQ7CisJCXBlcmlvZC0+cm5ndHlwaWQgPSBjaG9vc2VfcmFuZ2V0 eXBlX2Zvcl9wZXJpb2QocGVyaW9kKTsKKwl9CisKKwlyZXR1cm4gcGVyaW9kczsKK30KKwog LyoKICAqIE1lcmdlQ2hlY2tDb25zdHJhaW50CiAgKgkJVHJ5IHRvIG1lcmdlIGFuIGluaGVy aXRlZCBDSEVDSyBjb25zdHJhaW50IHdpdGggcHJldmlvdXMgb25lcwpAQCAtNDQ3MiwxMiAr NTA0NywxMiBAQCBBbHRlclRhYmxlKEFsdGVyVGFibGVTdG10ICpzdG10LCBMT0NLTU9ERSBs b2NrbW9kZSwKICAqIGV4aXN0aW5nIHF1ZXJ5IHBsYW5zLiAgT24gdGhlIGFzc3VtcHRpb24g aXQncyBub3QgdXNlZCBmb3Igc3VjaCwgd2UKICAqIGRvbid0IGhhdmUgdG8gcmVqZWN0IHBl bmRpbmcgQUZURVIgdHJpZ2dlcnMsIGVpdGhlci4KICAqCi0gKiBBbHNvLCBzaW5jZSB3ZSBk b24ndCBoYXZlIGFuIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCwgdGhpcyBjYW5ub3QgYmUK KyAqIEFsc28sIGlmIHlvdSBkb24ndCBwYXNzIGFuIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4 dCwgdGhpcyBjYW5ub3QgYmUKICAqIHVzZWQgZm9yIGFueSBzdWJjb21tYW5kIHR5cGVzIHRo YXQgcmVxdWlyZSBwYXJzZSB0cmFuc2Zvcm1hdGlvbiBvcgogICogY291bGQgZ2VuZXJhdGUg c3ViY29tbWFuZHMgdGhhdCBoYXZlIHRvIGJlIHBhc3NlZCB0byBQcm9jZXNzVXRpbGl0eS4K ICAqLwogdm9pZAotQWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxpZCwgTGlzdCAqY21kcywg Ym9vbCByZWN1cnNlKQorQWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxpZCwgTGlzdCAqY21k cywgYm9vbCByZWN1cnNlLCBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpCiB7 CiAJUmVsYXRpb24JcmVsOwogCUxPQ0tNT0RFCWxvY2ttb2RlID0gQWx0ZXJUYWJsZUdldExv Y2tMZXZlbChjbWRzKTsKQEAgLTQ0ODYsNyArNTA2MSw3IEBAIEFsdGVyVGFibGVJbnRlcm5h bChPaWQgcmVsaWQsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSkKIAogCUV2ZW50VHJpZ2dl ckFsdGVyVGFibGVSZWxpZChyZWxpZCk7CiAKLQlBVENvbnRyb2xsZXIoTlVMTCwgcmVsLCBj bWRzLCByZWN1cnNlLCBsb2NrbW9kZSwgTlVMTCk7CisJQVRDb250cm9sbGVyKE5VTEwsIHJl bCwgY21kcywgcmVjdXJzZSwgbG9ja21vZGUsIGNvbnRleHQpOwogfQogCiAvKgpAQCAtNDU3 OSw2ICs1MTU0LDggQEAgQWx0ZXJUYWJsZUdldExvY2tMZXZlbChMaXN0ICpjbWRzKQogCQkJ Y2FzZSBBVF9FbmFibGVSZXBsaWNhUnVsZToJLyogbWF5IGNoYW5nZSBTRUxFQ1QgcnVsZXMg Ki8KIAkJCWNhc2UgQVRfRW5hYmxlUnVsZTogLyogbWF5IGNoYW5nZSBTRUxFQ1QgcnVsZXMg Ki8KIAkJCWNhc2UgQVRfRGlzYWJsZVJ1bGU6CS8qIG1heSBjaGFuZ2UgU0VMRUNUIHJ1bGVz ICovCisJCQljYXNlIEFUX0FkZFBlcmlvZDogLyogc2hhcmVzIG5hbWVzcGFjZSB3aXRoIGNv bHVtbnMsIGFkZHMgY29uc3RyYWludCAqLworCQkJY2FzZSBBVF9Ecm9wUGVyaW9kOgogCQkJ CWNtZF9sb2NrbW9kZSA9IEFjY2Vzc0V4Y2x1c2l2ZUxvY2s7CiAJCQkJYnJlYWs7CiAKQEAg LTQ4OTgsNiArNTQ3NSwxNCBAQCBBVFByZXBDbWQoTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24g cmVsLCBBbHRlclRhYmxlQ21kICpjbWQsCiAJCQkvKiBUaGlzIGNvbW1hbmQgbmV2ZXIgcmVj dXJzZXMgKi8KIAkJCXBhc3MgPSBBVF9QQVNTX0FERF9PVEhFUkNPTlNUUjsKIAkJCWJyZWFr OworCQljYXNlIEFUX0FkZFBlcmlvZDogLyogQUxURVIgVEFCTEUgLi4uIEFERCBQRVJJT0Qg Rk9SIG5hbWUgKHN0YXJ0LCBlbmQpICovCisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+ c3VidHlwZSwgcmVsLCBBVFRfVEFCTEUpOworCQkJcGFzcyA9IEFUX1BBU1NfQUREX1BFUklP RDsKKwkJCWJyZWFrOworCQljYXNlIEFUX0Ryb3BQZXJpb2Q6IC8qIEFMVEVSIFRBQkxFIC4u LiBEUk9QIFBFUklPRCBGT1IgbmFtZSAqLworCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQt PnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFKTsKKwkJCXBhc3MgPSBBVF9QQVNTX0RST1A7CisJ CQlicmVhazsKIAkJY2FzZSBBVF9BZGRJZGVudGl0eToKIAkJCUFUU2ltcGxlUGVybWlzc2lv bnMoY21kLT5zdWJ0eXBlLCByZWwsCiAJCQkJCQkJCUFUVF9UQUJMRSB8IEFUVF9QQVJUSVRJ T05FRF9UQUJMRSB8IEFUVF9WSUVXIHwKQEAgLTUzMDksNiArNTg5NCwxNCBAQCBBVEV4ZWND bWQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLAogCQljYXNlIEFUX0Nv b2tlZENvbHVtbkRlZmF1bHQ6CS8qIGFkZCBhIHByZS1jb29rZWQgZGVmYXVsdCAqLwogCQkJ YWRkcmVzcyA9IEFURXhlY0Nvb2tlZENvbHVtbkRlZmF1bHQocmVsLCBjbWQtPm51bSwgY21k LT5kZWYpOwogCQkJYnJlYWs7CisJCWNhc2UgQVRfQWRkUGVyaW9kOgorCQkJYWRkcmVzcyA9 IEFURXhlY0FkZFBlcmlvZChyZWwsIChQZXJpb2REZWYgKikgY21kLT5kZWYsIGNvbnRleHQp OworCQkJYnJlYWs7CisJCWNhc2UgQVRfRHJvcFBlcmlvZDoKKwkJCUFURXhlY0Ryb3BQZXJp b2QocmVsLCBjbWQtPm5hbWUsIGNtZC0+YmVoYXZpb3IsCisJCQkJCQkJCSBmYWxzZSwgZmFs c2UsCisJCQkJCQkJCSBjbWQtPm1pc3Npbmdfb2spOworCQkJYnJlYWs7CiAJCWNhc2UgQVRf QWRkSWRlbnRpdHk6CiAJCQljbWQgPSBBVFBhcnNlVHJhbnNmb3JtQ21kKHdxdWV1ZSwgdGFi LCByZWwsIGNtZCwgZmFsc2UsIGxvY2ttb2RlLAogCQkJCQkJCQkJICBjdXJfcGFzcywgY29u dGV4dCk7CkBAIC02NDUyLDYgKzcwNDUsOCBAQCBhbHRlcl90YWJsZV90eXBlX3RvX3N0cmlu ZyhBbHRlclRhYmxlVHlwZSBjbWR0eXBlKQogCQljYXNlIEFUX0FkZENvbHVtbjoKIAkJY2Fz ZSBBVF9BZGRDb2x1bW5Ub1ZpZXc6CiAJCQlyZXR1cm4gIkFERCBDT0xVTU4iOworCQljYXNl IEFUX0FkZFBlcmlvZDoKKwkJCXJldHVybiAiQUREIFBFUklPRCI7CiAJCWNhc2UgQVRfQ29s dW1uRGVmYXVsdDoKIAkJY2FzZSBBVF9Db29rZWRDb2x1bW5EZWZhdWx0OgogCQkJcmV0dXJu ICJBTFRFUiBDT0xVTU4gLi4uIFNFVCBERUZBVUxUIjsKQEAgLTY0NzUsNiArNzA3MCw4IEBA IGFsdGVyX3RhYmxlX3R5cGVfdG9fc3RyaW5nKEFsdGVyVGFibGVUeXBlIGNtZHR5cGUpCiAJ CQlyZXR1cm4gIkFMVEVSIENPTFVNTiAuLi4gU0VUIENPTVBSRVNTSU9OIjsKIAkJY2FzZSBB VF9Ecm9wQ29sdW1uOgogCQkJcmV0dXJuICJEUk9QIENPTFVNTiI7CisJCWNhc2UgQVRfRHJv cFBlcmlvZDoKKwkJCXJldHVybiAiRFJPUCBQRVJJT0QiOwogCQljYXNlIEFUX0FkZEluZGV4 OgogCQljYXNlIEFUX1JlQWRkSW5kZXg6CiAJCQlyZXR1cm4gTlVMTDsJCS8qIG5vdCByZWFs IGdyYW1tYXIgKi8KQEAgLTc0NjAsMTQgKzgwNTcsMjkgQEAgQVRFeGVjQWRkQ29sdW1uKExp c3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogLyoK ICAqIElmIGEgbmV3IG9yIHJlbmFtZWQgY29sdW1uIHdpbGwgY29sbGlkZSB3aXRoIHRoZSBu YW1lIG9mIGFuIGV4aXN0aW5nCiAgKiBjb2x1bW4gYW5kIGlmX25vdF9leGlzdHMgaXMgZmFs c2UgdGhlbiBlcnJvciBvdXQsIGVsc2UgZG8gbm90aGluZy4KKyAqCisgKiBTZWUgYWxzbyBj aGVja19mb3JfcGVyaW9kX25hbWVfY29sbGlzaW9uLgogICovCiBzdGF0aWMgYm9vbAogY2hl Y2tfZm9yX2NvbHVtbl9uYW1lX2NvbGxpc2lvbihSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIg KmNvbG5hbWUsCiAJCQkJCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKIHsKLQlIZWFwVHVwbGUJ YXR0VHVwbGU7CisJSGVhcFR1cGxlCWF0dFR1cGxlLCBwZXJUdXBsZTsKIAlpbnQJCQlhdHRu dW07CiAKKwkvKiBJZiB0aGUgbmFtZSBleGlzdHMgYXMgYSBwZXJpb2QsIHdlJ3JlIGRvbmUu ICovCisJcGVyVHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoUEVSSU9ETkFNRSwKKwkJCQkJCQkg ICBPYmplY3RJZEdldERhdHVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSksCisJCQkJCQkJICAg UG9pbnRlckdldERhdHVtKGNvbG5hbWUpKTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZChwZXJU dXBsZSkpCisJeworCQlSZWxlYXNlU3lzQ2FjaGUocGVyVHVwbGUpOworCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX0NPTFVNTiksCisJCQkJIGVy cm1zZygiY29sdW1uIG5hbWUgXCIlc1wiIGNvbmZsaWN0cyB3aXRoIGEgcGVyaW9kIG5hbWUi LAorCQkJCQkJY29sbmFtZSkpKTsKKwl9CisKIAkvKgogCSAqIHRoaXMgdGVzdCBpcyBkZWxp YmVyYXRlbHkgbm90IGF0dGlzZHJvcHBlZC1hd2FyZSwgc2luY2UgaWYgb25lIHRyaWVzIHRv CiAJICogYWRkIGEgY29sdW1uIG1hdGNoaW5nIGEgZHJvcHBlZCBjb2x1bW4gbmFtZSwgaXQn cyBnb25uYSBmYWlsIGFueXdheS4KQEAgLTc1MTEsNiArODEyMyw3NyBAQCBjaGVja19mb3Jf Y29sdW1uX25hbWVfY29sbGlzaW9uKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sbmFt ZSwKIAlyZXR1cm4gdHJ1ZTsKIH0KIAorLyoKKyAqIElmIGEgbmV3IHBlcmlvZCBuYW1lIHdp bGwgY29sbGlkZSB3aXRoIHRoZSBuYW1lIG9mIGFuIGV4aXN0aW5nIGNvbHVtbiBvcgorICog cGVyaW9kIFthbmQgaWZfbm90X2V4aXN0cyBpcyBmYWxzZV0gdGhlbiBlcnJvciBvdXQsIGVs c2UgZG8gbm90aGluZy4KKyAqCisgKiBTZWUgYWxzbyBjaGVja19mb3JfY29sdW1uX25hbWVf Y29sbGlzaW9uLgorICovCitzdGF0aWMgYm9vbAorY2hlY2tfZm9yX3BlcmlvZF9uYW1lX2Nv bGxpc2lvbihSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcm5hbWUsCisJCQkJCQkJCWJv b2wgY29sZXhpc3RzLCBib29sIGlmX25vdF9leGlzdHMpCit7CisJSGVhcFR1cGxlCWF0dFR1 cGxlLCBwZXJUdXBsZTsKKwlpbnQJCQlhdHRudW07CisKKwkvKiBUT0RPOiBpbXBsZW1lbnQg SUYgW05PVF0gRVhJU1RTIGZvciBwZXJpb2RzICovCisJQXNzZXJ0KCFpZl9ub3RfZXhpc3Rz KTsKKworCS8qIElmIHRoZXJlIGlzIGFscmVhZHkgYSBwZXJpb2Qgd2l0aCB0aGlzIG5hbWUs IHRoZW4gd2UncmUgZG9uZS4gKi8KKwlwZXJUdXBsZSA9IFNlYXJjaFN5c0NhY2hlMihQRVJJ T0ROQU1FLAorCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0oUmVsYXRpb25HZXRSZWxpZChy ZWwpKSwKKwkJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0ocGVybmFtZSkpOworCWlmIChIZWFw VHVwbGVJc1ZhbGlkKHBlclR1cGxlKSkKKwl7CisJCWlmIChpZl9ub3RfZXhpc3RzKQorCQl7 CisJCQlSZWxlYXNlU3lzQ2FjaGUocGVyVHVwbGUpOworCisJCQllcmVwb3J0KE5PVElDRSwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkJIGVycm1z ZygicGVyaW9kIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMsIHNr aXBwaW5nIiwKKwkJCQkJCQlwZXJuYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwp KSkpOworCQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCSBlcnJtc2coInBlcmlv ZCBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCXBl cm5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJfQorCisJLyoKKwkg KiB0aGlzIHRlc3QgaXMgZGVsaWJlcmF0ZWx5IG5vdCBhdHRpc2Ryb3BwZWQtYXdhcmUsIHNp bmNlIGlmIG9uZSB0cmllcyB0bworCSAqIGFkZCBhIGNvbHVtbiBtYXRjaGluZyBhIGRyb3Bw ZWQgY29sdW1uIG5hbWUsIGl0J3MgZ29ubmEgZmFpbCBhbnl3YXkuCisJICovCisJYXR0VHVw bGUgPSBTZWFyY2hTeXNDYWNoZTIoQVRUTkFNRSwKKwkJCQkJCQkgICBPYmplY3RJZEdldERh dHVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSksCisJCQkJCQkJICAgUG9pbnRlckdldERhdHVt KHBlcm5hbWUpKTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZChhdHRUdXBsZSkpCisJeworCQlh dHRudW0gPSAoKEZvcm1fcGdfYXR0cmlidXRlKSBHRVRTVFJVQ1QoYXR0VHVwbGUpKS0+YXR0 bnVtOworCQlSZWxlYXNlU3lzQ2FjaGUoYXR0VHVwbGUpOworCisJCS8qCisJCSAqIFdlIHRo cm93IGEgZGlmZmVyZW50IGVycm9yIG1lc3NhZ2UgZm9yIGNvbmZsaWN0cyB3aXRoIHN5c3Rl bSBjb2x1bW4KKwkJICogbmFtZXMsIHNpbmNlIHRoZXkgYXJlIG5vcm1hbGx5IG5vdCBzaG93 biBhbmQgdGhlIHVzZXIgbWlnaHQgb3RoZXJ3aXNlCisJCSAqIGJlIGNvbmZ1c2VkIGFib3V0 IHRoZSByZWFzb24gZm9yIHRoZSBjb25mbGljdC4KKwkJICovCisJCWlmIChhdHRudW0gPD0g MCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRF X0NPTFVNTiksCisJCQkJCSBlcnJtc2coInBlcmlvZCBuYW1lIFwiJXNcIiBjb25mbGljdHMg d2l0aCBhIHN5c3RlbSBjb2x1bW4gbmFtZSIsCisJCQkJCQkJcGVybmFtZSkpKTsKKwkJaWYg KCFjb2xleGlzdHMpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RF X0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCQkgZXJybXNnKCJwZXJpb2QgbmFtZSBcIiVzXCIg Y29uZmxpY3RzIHdpdGggYSBjb2x1bW4gbmFtZSIsCisJCQkJCQkJcGVybmFtZSkpKTsKKwl9 CisKKwlyZXR1cm4gdHJ1ZTsKK30KKwogLyoKICAqIEluc3RhbGwgYSBjb2x1bW4ncyBkZXBl bmRlbmN5IG9uIGl0cyBkYXRhdHlwZS4KICAqLwpAQCAtODAyOSw2ICs4NzEyLDE2MiBAQCBB VEV4ZWNDb29rZWRDb2x1bW5EZWZhdWx0KFJlbGF0aW9uIHJlbCwgQXR0ck51bWJlciBhdHRu dW0sCiAJcmV0dXJuIGFkZHJlc3M7CiB9CiAKKy8qCisgKiBBTFRFUiBUQUJMRSBBREQgUEVS SU9ECisgKgorICogUmV0dXJuIHRoZSBhZGRyZXNzIG9mIHRoZSBwZXJpb2QuCisgKi8KK3N0 YXRpYyBPYmplY3RBZGRyZXNzCitBVEV4ZWNBZGRQZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJp b2REZWYgKnBlcmlvZCwgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KQorewor CVJlbGF0aW9uCQlhdHRyZWxhdGlvbjsKKwlPYmplY3RBZGRyZXNzCWFkZHJlc3MgPSBJbnZh bGlkT2JqZWN0QWRkcmVzczsKKwlDb25zdHJhaW50CSAgICpjb25zdHI7CisJQ29sdW1uRGVm CSAgICpyYW5nZWNvbDsKKwlPaWQJCQkJY29ub2lkLCBwZXJpb2RvaWQ7CisJTGlzdAkJICAg KmNtZHMgPSBOSUw7CisJQWx0ZXJUYWJsZUNtZCAgKmNtZDsKKworCS8vIFRPRE86IHNoYXJl IGNvZGUgd2l0aCB0cmFuc2Zvcm1UYWJsZVBlcmlvZDoKKwkvKgorCSAqIFBFUklPRCBGT1Ig U1lTVEVNX1RJTUUgaXMgbm90IHlldCBpbXBsZW1lbnRlZCwgYnV0IG1ha2Ugc3VyZSBubyBv bmUgdXNlcworCSAqIHRoZSBuYW1lLgorCSAqLworCWlmIChzdHJjbXAocGVyaW9kLT5wZXJp b2RuYW1lLCAic3lzdGVtX3RpbWUiKSA9PSAwKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNn KCJQRVJJT0QgRk9SIFNZU1RFTV9USU1FIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOworCisJaWYg KHN0cmNtcChwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgcGVyaW9kLT5lbmRjb2xuYW1lKSA9PSAw KQorCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJjb2x1bW4gXCIlc1wiIGNhbid0IGJlIHRo ZSBzdGFydCBhbmQgZW5kIGNvbHVtbiBmb3IgcGVyaW9kIFwiJXNcIiIsCisJCQkJCQlwZXJp b2QtPnN0YXJ0Y29sbmFtZSwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJLyogUGFyc2Ug b3B0aW9ucyAqLworCXRyYW5zZm9ybVBlcmlvZE9wdGlvbnMocGVyaW9kKTsKKworCS8qIFRo ZSBwZXJpb2QgbmFtZSBtdXN0IG5vdCBhbHJlYWR5IGV4aXN0ICovCisJKHZvaWQpIGNoZWNr X2Zvcl9wZXJpb2RfbmFtZV9jb2xsaXNpb24ocmVsLCBwZXJpb2QtPnBlcmlvZG5hbWUsIHBl cmlvZC0+Y29sZXhpc3RzLCBmYWxzZSk7CisKKwlhdHRyZWxhdGlvbiA9IHRhYmxlX29wZW4o QXR0cmlidXRlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisJVmFsaWRhdGVQZXJp b2QocmVsLCBwZXJpb2QpOworCisJLyogTWFrZSB0aGUgQ0hFQ0sgY29uc3RyYWludCAqLwor CWNvbnN0ciA9IG1ha2VfY29uc3RyYWludF9mb3JfcGVyaW9kKHJlbCwgcGVyaW9kKTsKKwlj bWQgPSBtYWtlTm9kZShBbHRlclRhYmxlQ21kKTsKKwljbWQtPnN1YnR5cGUgPSBBVF9BZGRD b25zdHJhaW50OworCWNtZC0+ZGVmID0gKE5vZGUgKikgY29uc3RyOworCWNtZHMgPSBsYXBw ZW5kKGNtZHMsIGNtZCk7CisJQWx0ZXJUYWJsZUludGVybmFsKFJlbGF0aW9uR2V0UmVsaWQo cmVsKSwgY21kcywgdHJ1ZSwgY29udGV4dCk7CisJY29ub2lkID0gZ2V0X3JlbGF0aW9uX2Nv bnN0cmFpbnRfb2lkKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5jb25zdHJhaW50 bmFtZSwgZmFsc2UpOworCisJaWYgKCFwZXJpb2QtPmNvbGV4aXN0cykKKwl7CisJCS8qIE1h a2UgdGhlIHJhbmdlIGNvbHVtbiAqLworCQlyYW5nZWNvbCA9IG1ha2VfcmFuZ2VfY29sdW1u X2Zvcl9wZXJpb2QocGVyaW9kKTsKKwkJY21kID0gbWFrZU5vZGUoQWx0ZXJUYWJsZUNtZCk7 CisJCWNtZC0+c3VidHlwZSA9IEFUX0FkZENvbHVtbjsKKwkJY21kLT5kZWYgPSAoTm9kZSAq KSByYW5nZWNvbDsKKwkJY21kLT5uYW1lID0gcGVyaW9kLT5wZXJpb2RuYW1lOworCQljbWQt PnJlY3Vyc2UgPSBmYWxzZTsgLyogbm8sIGxldCB0aGUgUEVSSU9EIHJlY3Vyc2UgaW5zdGVh ZCAqLworCisJCUFsdGVyVGFibGVJbnRlcm5hbChSZWxhdGlvbkdldFJlbGlkKHJlbCksIGxp c3RfbWFrZTEoY21kKSwgdHJ1ZSwgY29udGV4dCk7CisJCXBlcmlvZC0+cm5nYXR0bnVtID0g Z2V0X2F0dG51bShSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBlcmlvZC0+cGVyaW9kbmFtZSk7 CisJCWlmIChwZXJpb2QtPnJuZ2F0dG51bSA9PSBJbnZhbGlkQXR0ck51bWJlcikKKwkJCWVs b2coRVJST1IsICJtaXNzaW5nIGF0dHJpYnV0ZSAlcyIsIHBlcmlvZC0+cGVyaW9kbmFtZSk7 CisJfQorCisJLyogU2F2ZSB0aGUgUGVyaW9kICovCisJcGVyaW9kb2lkID0gU3RvcmVQZXJp b2QocmVsLCBwZXJpb2QtPnBlcmlvZG5hbWUsIHBlcmlvZC0+c3RhcnRhdHRudW0sIHBlcmlv ZC0+ZW5kYXR0bnVtLCBwZXJpb2QtPnJuZ2F0dG51bSwgY29ub2lkKTsKKworCU9iamVjdEFk ZHJlc3NTZXQoYWRkcmVzcywgUGVyaW9kUmVsYXRpb25JZCwgcGVyaW9kb2lkKTsKKworCXRh YmxlX2Nsb3NlKGF0dHJlbGF0aW9uLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBh ZGRyZXNzOworfQorCisvKgorICogQUxURVIgVEFCTEUgRFJPUCBQRVJJT0QKKyAqCisgKiBM aWtlIERST1AgQ09MVU1OLCB3ZSBjYW4ndCB1c2UgdGhlIG5vcm1hbCBBTFRFUiBUQUJMRSBy ZWN1cnNpb24gbWVjaGFuaXNtLgorICovCitzdGF0aWMgdm9pZAorQVRFeGVjRHJvcFBlcmlv ZChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcmlvZE5hbWUsCisJCQkJCSBEcm9wQmVo YXZpb3IgYmVoYXZpb3IsCisJCQkJCSBib29sIHJlY3Vyc2UsIGJvb2wgcmVjdXJzaW5nLAor CQkJCQkgYm9vbCBtaXNzaW5nX29rKQoreworCVJlbGF0aW9uCXBnX3BlcmlvZDsKKwlGb3Jt X3BnX3BlcmlvZCBwZXJpb2Q7CisJU3lzU2NhbkRlc2Mgc2NhbjsKKwlTY2FuS2V5RGF0YSBr ZXk7CisJSGVhcFR1cGxlCXR1cGxlOworCWJvb2wJCWZvdW5kID0gZmFsc2U7CisKKwkvKiBB dCB0b3AgbGV2ZWwsIHBlcm1pc3Npb24gY2hlY2sgd2FzIGRvbmUgaW4gQVRQcmVwQ21kLCBl bHNlIGRvIGl0ICovCisJaWYgKHJlY3Vyc2luZykKKwkJQVRTaW1wbGVQZXJtaXNzaW9ucyhB VF9Ecm9wUGVyaW9kLCByZWwsIEFUVF9UQUJMRSk7CisKKwlwZ19wZXJpb2QgPSB0YWJsZV9v cGVuKFBlcmlvZFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJLyoKKwkgKiBG aW5kIGFuZCBkcm9wIHRoZSB0YXJnZXQgcGVyaW9kCisJICovCisJU2NhbktleUluaXQoJmtl eSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9wZXJyZWxpZCwKKwkJCQlCVEVxdWFsU3RyYXRlZ3lO dW1iZXIsIEZfT0lERVEsCisJCQkJT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlk KHJlbCkpKTsKKwlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2FuKHBnX3BlcmlvZCwgUGVyaW9k UmVsaWROYW1lSW5kZXhJZCwKKwkJCQkJCQkgIHRydWUsIE5VTEwsIDEsICZrZXkpOworCisJ d2hpbGUgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4p KSkKKwl7CisJCU9iamVjdEFkZHJlc3MgcGVyb2JqOworCisJCXBlcmlvZCA9IChGb3JtX3Bn X3BlcmlvZCkgR0VUU1RSVUNUKHR1cGxlKTsKKworCQlpZiAoc3RyY21wKE5hbWVTdHIocGVy aW9kLT5wZXJuYW1lKSwgcGVyaW9kTmFtZSkgIT0gMCkKKwkJCWNvbnRpbnVlOworCisJCS8q CisJCSAqIFBlcmZvcm0gdGhlIGFjdHVhbCBwZXJpb2QgZGVsZXRpb24KKwkJICovCisJCXBl cm9iai5jbGFzc0lkID0gUGVyaW9kUmVsYXRpb25JZDsKKwkJcGVyb2JqLm9iamVjdElkID0g cGVyaW9kLT5vaWQ7CisJCXBlcm9iai5vYmplY3RTdWJJZCA9IDA7CisKKwkJcGVyZm9ybURl bGV0aW9uKCZwZXJvYmosIGJlaGF2aW9yLCAwKTsKKworCQlmb3VuZCA9IHRydWU7CisKKwkJ LyogcGVyaW9kIGZvdW5kIGFuZCBkcm9wcGVkIC0tIG5vIG5lZWQgdG8ga2VlcCBsb29waW5n ICovCisJCWJyZWFrOworCX0KKworCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisKKwlpZiAo IWZvdW5kKQorCXsKKwkJaWYgKCFtaXNzaW5nX29rKQorCQl7CisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJy bXNnKCJwZXJpb2QgXCIlc1wiIG9uIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIs CisJCQkJCQkJcGVyaW9kTmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsK KwkJfQorCQllbHNlCisJCXsKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJybXNnKCJw ZXJpb2QgXCIlc1wiIG9uIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBp bmciLAorCQkJCQkJCXBlcmlvZE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkp KSk7CisJCQl0YWJsZV9jbG9zZShwZ19wZXJpb2QsIFJvd0V4Y2x1c2l2ZUxvY2spOworCQkJ cmV0dXJuOworCQl9CisJfQorCisJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBSb3dFeGNsdXNp dmVMb2NrKTsKK30KKwogLyoKICAqIEFMVEVSIFRBQkxFIEFMVEVSIENPTFVNTiBBREQgSURF TlRJVFkKICAqCkBAIC05ODg3LDggKzEwNzI2LDkgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3Ry YWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJl bCwKIAlmb3IgKGkgPSAwOyBpIDwgbnVtZmtzOyBpKyspCiAJewogCQljaGFyCQlhdHRnZW5l cmF0ZWQgPSBUdXBsZURlc2NBdHRyKFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgZmthdHRudW1b aV0gLSAxKS0+YXR0Z2VuZXJhdGVkOworCQlCaXRtYXBzZXQgICpwZXJpb2RzID0gZ2V0X3Bl cmlvZF9hdHRub3MoUmVsYXRpb25HZXRSZWxpZChyZWwpKTsKIAotCQlpZiAoYXR0Z2VuZXJh dGVkKQorCQlpZiAoYXR0Z2VuZXJhdGVkICYmICFibXNfaXNfbWVtYmVyKGZrYXR0bnVtW2ld LCBwZXJpb2RzKSkKIAkJewogCQkJLyoKIAkJCSAqIENoZWNrIHJlc3RyaWN0aW9ucyBvbiBV UERBVEUvREVMRVRFIGFjdGlvbnMsIHBlciBTUUwgc3RhbmRhcmQKQEAgLTEzOTQzLDYgKzE0 NzgzLDE2IEBAIFJlbWVtYmVyQWxsRGVwZW5kZW50Rm9yUmVidWlsZGluZyhBbHRlcmVkVGFi bGVJbmZvICp0YWIsIEFsdGVyVGFibGVUeXBlIHN1YnR5cGUsCiAJCQkJUmVtZW1iZXJDb25z dHJhaW50Rm9yUmVidWlsZGluZyhmb3VuZE9iamVjdC5vYmplY3RJZCwgdGFiKTsKIAkJCQli cmVhazsKIAorCQkJY2FzZSBQZXJpb2RSZWxhdGlvbklkOgorCQkJCWlmIChzdWJ0eXBlID09 IEFUX0FsdGVyQ29sdW1uVHlwZSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJIGVycm1zZygi Y2Fubm90IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNlZCBieSBhIHBlcmlvZCIpLAorCQkJ CQkJCSBlcnJkZXRhaWwoIiVzIGRlcGVuZHMgb24gY29sdW1uIFwiJXNcIiIsCisJCQkJCQkJ CQkgICBnZXRPYmplY3REZXNjcmlwdGlvbigmZm91bmRPYmplY3QsIGZhbHNlKSwKKwkJCQkJ CQkJCSAgIGNvbE5hbWUpKSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgUHJvY2VkdXJlUmVs YXRpb25JZDoKIAogCQkJCS8qCkBAIC0xNDAzMiw2ICsxNDg4MiwxNSBAQCBSZW1lbWJlckFs bERlcGVuZGVudEZvclJlYnVpbGRpbmcoQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBBbHRlclRh YmxlVHlwZSBzdWJ0eXBlLAogCQkJCQl9CiAJCQkJCWVsc2UKIAkJCQkJeworCQkJCQkJLyoK KwkJCQkJCSAqIElmIHRoaXMgR0VORVJBVEVEIGNvbHVtbiBpcyBpbXBsZW1lbnRpbmcgYSBQ RVJJT0QsCisJCQkJCQkgKiBrZWVwIGdvaW5nIGFuZCB3ZSdsbCBmYWlsIGZyb20gdGhlIFBF UklPRCBpbnN0ZWFkLgorCQkJCQkJICogVGhpcyBnaXZlcyBhIG1vcmUgY2xlYXIgZXJyb3Ig bWVzc2FnZS4KKwkJCQkJCSAqLworCQkJCQkJQml0bWFwc2V0ICpwZXJpb2RhdHRzID0gZ2V0 X3BlcmlvZF9hdHRub3MoUmVsYXRpb25HZXRSZWxpZChyZWwpKTsKKwkJCQkJCWlmIChibXNf aXNfbWVtYmVyKGNvbC5vYmplY3RTdWJJZCwgcGVyaW9kYXR0cykpCisJCQkJCQkJYnJlYWs7 CisKIAkJCQkJCS8qCiAJCQkJCQkgKiBUaGlzIG11c3QgYmUgYSByZWZlcmVuY2UgZnJvbSB0 aGUgZXhwcmVzc2lvbiBvZiBhCiAJCQkJCQkgKiBnZW5lcmF0ZWQgY29sdW1uIGVsc2V3aGVy ZSBpbiB0aGUgc2FtZSB0YWJsZS4KQEAgLTE1OTQxLDcgKzE2ODAwLDcgQEAgQWx0ZXJUYWJs ZU1vdmVBbGwoQWx0ZXJUYWJsZU1vdmVBbGxTdG10ICpzdG10KQogCiAJCUV2ZW50VHJpZ2dl ckFsdGVyVGFibGVTdGFydCgoTm9kZSAqKSBzdG10KTsKIAkJLyogT0lEIGlzIHNldCBieSBB bHRlclRhYmxlSW50ZXJuYWwgKi8KLQkJQWx0ZXJUYWJsZUludGVybmFsKGxmaXJzdF9vaWQo bCksIGNtZHMsIGZhbHNlKTsKKwkJQWx0ZXJUYWJsZUludGVybmFsKGxmaXJzdF9vaWQobCks IGNtZHMsIGZhbHNlLCBOVUxMKTsKIAkJRXZlbnRUcmlnZ2VyQWx0ZXJUYWJsZUVuZCgpOwog CX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCmluZGV4IGMxN2IyY2JiYjZhLi45OTRmNzVi ZDY4YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpAQCAtNjA1OSw2ICs2MDU5LDggQEAg Q29weUZvclBvcnRpb25PZlN0YXRlKEZvclBvcnRpb25PZlN0YXRlICpzcmMpCiAJCWRzdC0+ ZnBfcmFuZ2VOYW1lID0gcHN0cmR1cChzcmMtPmZwX3JhbmdlTmFtZSk7CiAJCWRzdC0+ZnBf cmFuZ2VUeXBlID0gc3JjLT5mcF9yYW5nZVR5cGU7CiAJCWRzdC0+ZnBfcmFuZ2VBdHRubyA9 IHNyYy0+ZnBfcmFuZ2VBdHRubzsKKwkJZHN0LT5mcF9wZXJpb2RTdGFydEF0dG5vID0gc3Jj LT5mcF9wZXJpb2RTdGFydEF0dG5vOworCQlkc3QtPmZwX3BlcmlvZEVuZEF0dG5vID0gc3Jj LT5mcF9wZXJpb2RFbmRBdHRubzsKIAogCQlyID0gRGF0dW1HZXRSYW5nZVR5cGVQKHNyYy0+ ZnBfdGFyZ2V0UmFuZ2UpOwogCQl0eXBjYWNoZSA9IGxvb2t1cF90eXBlX2NhY2hlKFJhbmdl VHlwZUdldE9pZChyKSwgVFlQRUNBQ0hFX1JBTkdFX0lORk8pOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdmlldy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5j CmluZGV4IDZmMDMwMTU1NWUwLi5jNzI3NjgzNjIyMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmlldy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwpA QCAtMTYzLDcgKzE2Myw3IEBAIERlZmluZVZpcnR1YWxSZWxhdGlvbihSYW5nZVZhciAqcmVs YXRpb24sIExpc3QgKnRsaXN0LCBib29sIHJlcGxhY2UsCiAJCQl9CiAKIAkJCS8qIEV2ZW50 VHJpZ2dlckFsdGVyVGFibGVTdGFydCBjYWxsZWQgYnkgUHJvY2Vzc1V0aWxpdHlTbG93ICov Ci0JCQlBbHRlclRhYmxlSW50ZXJuYWwodmlld09pZCwgYXRjbWRzLCB0cnVlKTsKKwkJCUFs dGVyVGFibGVJbnRlcm5hbCh2aWV3T2lkLCBhdGNtZHMsIHRydWUsIE5VTEwpOwogCiAJCQkv KiBNYWtlIHRoZSBuZXcgdmlldyBjb2x1bW5zIHZpc2libGUgKi8KIAkJCUNvbW1hbmRDb3Vu dGVySW5jcmVtZW50KCk7CkBAIC0xOTUsNyArMTk1LDcgQEAgRGVmaW5lVmlydHVhbFJlbGF0 aW9uKFJhbmdlVmFyICpyZWxhdGlvbiwgTGlzdCAqdGxpc3QsIGJvb2wgcmVwbGFjZSwKIAkJ YXRjbWRzID0gbGlzdF9tYWtlMShhdGNtZCk7CiAKIAkJLyogRXZlbnRUcmlnZ2VyQWx0ZXJU YWJsZVN0YXJ0IGNhbGxlZCBieSBQcm9jZXNzVXRpbGl0eVNsb3cgKi8KLQkJQWx0ZXJUYWJs ZUludGVybmFsKHZpZXdPaWQsIGF0Y21kcywgdHJ1ZSk7CisJCUFsdGVyVGFibGVJbnRlcm5h bCh2aWV3T2lkLCBhdGNtZHMsIHRydWUsIE5VTEwpOwogCiAJCS8qCiAJCSAqIFRoZXJlIGlz IHZlcnkgbGl0dGxlIHRvIGRvIGhlcmUgdG8gdXBkYXRlIHRoZSB2aWV3J3MgZGVwZW5kZW5j aWVzLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxl LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwppbmRleCBiMWNj OWJhYzk1OC4uMWRiOGE0YmIxNDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVNb2RpZnlUYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2Rp ZnlUYWJsZS5jCkBAIC0xMzcxLDYgKzEzNzEsNyBAQCBFeGVjRm9yUG9ydGlvbk9mTGVmdG92 ZXJzKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAlGbWdySW5mbyBmbGluZm87CiAJ UmV0dXJuU2V0SW5mbyByc2k7CiAJUmVsYXRpb24gcmVsOworCWJvb2wgaGFzUGVyaW9kID0g ZmFsc2U7CiAJYm9vbCBkaWRJbml0ID0gZmFsc2U7CiAJYm9vbCBzaG91bGRGcmVlID0gZmFs c2U7CiAJTE9DQUxfRkNJTkZPKGZjaW5mbywgMik7CkBAIC0xNDgwLDYgKzE0ODEsNyBAQCBF eGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwK IAkJCWVsc2UKIAkJCQlsZWZ0b3ZlclNsb3QgPSBvbGR0dXBsZVNsb3Q7CiAKKwkJCWhhc1Bl cmlvZCA9IGZvclBvcnRpb25PZi0+c3RhcnRWYXI7CiAJCQl0dXBkZXNjID0gbGVmdG92ZXJT bG90LT50dHNfdHVwbGVEZXNjcmlwdG9yOwogCQkJbmF0dHMgPSB0dXBkZXNjLT5uYXR0czsK IApAQCAtMTU4MCw4ICsxNTgyLDQyIEBAIEV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoTW9k aWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCQkJCWZwb1N0YXRlLT5mcF9udWxsc1tpXSA9 IGxlZnRvdmVyU2xvdC0+dHRzX2lzbnVsbFtpXSA/ICduJyA6ICcgJzsKIAkJfQogCi0JCWZw b1N0YXRlLT5mcF9udWxsc1tmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFd ID0gJyAnOwotCQlmcG9TdGF0ZS0+ZnBfdmFsdWVzW2ZvclBvcnRpb25PZi0+cmFuZ2VWYXIt PnZhcmF0dG5vIC0gMV0gPSBsZWZ0b3ZlcjsKKwkJaWYgKGhhc1BlcmlvZCkKKwkJeworCQkJ UmFuZ2VUeXBlICAqbGVmdG92ZXJSYW5nZTsKKwkJCVJhbmdlQm91bmQJbGVmdG92ZXJMb3dl cjsKKwkJCVJhbmdlQm91bmQJbGVmdG92ZXJVcHBlcjsKKwkJCWJvb2wJCWxlZnRvdmVyRW1w dHk7CisJCQlBdHRyTnVtYmVyCXN0YXJ0QXR0bm87CisJCQlBdHRyTnVtYmVyCWVuZEF0dG5v OworCisJCQlsZWZ0b3ZlclJhbmdlID0gRGF0dW1HZXRSYW5nZVR5cGVQKGxlZnRvdmVyKTsK KwkJCXJhbmdlX2Rlc2VyaWFsaXplKHR5cGNhY2hlLCBsZWZ0b3ZlclJhbmdlLCAmbGVmdG92 ZXJMb3dlciwgJmxlZnRvdmVyVXBwZXIsICZsZWZ0b3ZlckVtcHR5KTsKKworCQkJc3RhcnRB dHRubyA9IGZvclBvcnRpb25PZi0+c3RhcnRWYXItPnZhcmF0dG5vOworCQkJZW5kQXR0bm8g PSBmb3JQb3J0aW9uT2YtPmVuZFZhci0+dmFyYXR0bm87CisKKwkJCWlmIChsZWZ0b3Zlckxv d2VyLmluZmluaXRlKQorCQkJCWZwb1N0YXRlLT5mcF9udWxsc1tzdGFydEF0dG5vIC0gMV0g PSAnbic7CisJCQllbHNlCisJCQl7CisJCQkJZnBvU3RhdGUtPmZwX251bGxzW3N0YXJ0QXR0 bm8gLSAxXSA9ICcgJzsKKwkJCQlmcG9TdGF0ZS0+ZnBfdmFsdWVzW3N0YXJ0QXR0bm8gLSAx XSA9IGxlZnRvdmVyTG93ZXIudmFsOworCQkJfQorCisJCQlpZiAobGVmdG92ZXJVcHBlci5p bmZpbml0ZSkKKwkJCQlmcG9TdGF0ZS0+ZnBfbnVsbHNbZW5kQXR0bm8gLSAxXSA9ICduJzsK KwkJCWVsc2UKKwkJCXsKKwkJCQlmcG9TdGF0ZS0+ZnBfbnVsbHNbZW5kQXR0bm8gLSAxXSA9 ICcgJzsKKwkJCQlmcG9TdGF0ZS0+ZnBfdmFsdWVzW2VuZEF0dG5vIC0gMV0gPSBsZWZ0b3Zl clVwcGVyLnZhbDsKKwkJCX0KKwkJfQorCQllbHNlCisJCXsKKwkJCWZwb1N0YXRlLT5mcF9u dWxsc1tmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gJyAnOworCQkJ ZnBvU3RhdGUtPmZwX3ZhbHVlc1tmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAt IDFdID0gbGVmdG92ZXI7CisJCX0KIAogCQlzcGlfcmVzdWx0ID0gU1BJX2V4ZWN1dGVfc25h cHNob3QocXBsYW4sCiAJCQkJCQkJCQkJICBmcG9TdGF0ZS0+ZnBfdmFsdWVzLApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYwppbmRleCBhZDY5Yzk1ZmIzNi4uMDNjZTQzY2Q0MjYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCkBAIC0xNzIyLDYgKzE3MjIsOSBAQCBleHByTG9jYXRpb24oY29u c3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX0NvbnN0cmFpbnQ6CiAJCQlsb2MgPSAoKGNvbnN0 IENvbnN0cmFpbnQgKikgZXhwciktPmxvY2F0aW9uOwogCQkJYnJlYWs7CisJCWNhc2UgVF9Q ZXJpb2REZWY6CisJCQlsb2MgPSAoKGNvbnN0IFBlcmlvZERlZiAqKSBleHByKS0+bG9jYXRp b247CisJCQlicmVhazsKIAkJY2FzZSBUX0Z1bmN0aW9uUGFyYW1ldGVyOgogCQkJbG9jID0g KChjb25zdCBGdW5jdGlvblBhcmFtZXRlciAqKSBleHByKS0+bG9jYXRpb247CiAJCQlicmVh azsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDBjODVjZWFjODg1Li5iMTI0N2Q2OWQ0ZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiYWNj ZXNzL3N0cmF0bnVtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX2FtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUu aCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKQEAgLTEzNTYsNyArMTM1NywxMSBA QCB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCWNo YXIgKnJhbmdlX25hbWUgPSBmb3JQb3J0aW9uT2YtPnJhbmdlX25hbWU7CiAJY2hhciAqcmFu Z2VfdHlwZV9uYW1lc3BhY2UgPSBOVUxMOwogCWNoYXIgKnJhbmdlX3R5cGVfbmFtZSA9IE5V TEw7Ci0JaW50IHJhbmdlX2F0dG5vID0gSW52YWxpZEF0dHJOdW1iZXI7CisJQXR0ck51bWJl ciByYW5nZV9hdHRubyA9IEludmFsaWRBdHRyTnVtYmVyOworCUF0dHJOdW1iZXIgc3RhcnRf YXR0bm8gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwlBdHRyTnVtYmVyIGVuZF9hdHRubyA9IElu dmFsaWRBdHRyTnVtYmVyOworCWNoYXIgKnN0YXJ0Y29sbmFtZSA9IE5VTEw7CisJY2hhciAq ZW5kY29sbmFtZSA9IE5VTEw7CiAJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cjsKIAlPaWQJb3Bj bGFzczsKIAlPaWQgb3BmYW1pbHk7CkBAIC0xNDAwLDYgKzE0MDUsNTMgQEAgdHJhbnNmb3Jt Rm9yUG9ydGlvbk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlpZiAoIWdldF90eXBu YW1lX2FuZF9uYW1lc3BhY2UoYXR0ci0+YXR0dHlwaWQsICZyYW5nZV90eXBlX25hbWUsICZy YW5nZV90eXBlX25hbWVzcGFjZSkpCiAJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFp bGVkIGZvciB0eXBlICV1IiwgYXR0ci0+YXR0dHlwaWQpOwogCisJLyoKKwkgKiBJZiB3ZSBh cmUgdXNpbmcgYSBQRVJJT0QsIHdlIG5lZWQgdGhlIHN0YXJ0ICYgZW5kIGNvbHVtbnMuCisJ ICogSWYgdGhlIGF0dHJpYnV0ZSBpdCBub3QgYSBHRU5FUkFURUQgY29sdW1uLCB3ZSBuZWVk bid0IHF1ZXJ5IHBnX3BlcmlvZC4KKwkgKi8KKwlpZiAoYXR0ci0+YXR0Z2VuZXJhdGVkID09 IEFUVFJJQlVURV9HRU5FUkFURURfU1RPUkVEKQorCXsKKwkJSGVhcFR1cGxlIHBlclR1cGxl ID0gU2VhcmNoU3lzQ2FjaGUyKFBFUklPRE5BTUUsCisJCQkJCQkJCQkJCSBPYmplY3RJZEdl dERhdHVtKFJlbGF0aW9uR2V0UmVsaWQodGFyZ2V0cmVsKSksCisJCQkJCQkJCQkJCSBQb2lu dGVyR2V0RGF0dW0ocmFuZ2VfbmFtZSkpOworCQlpZiAoSGVhcFR1cGxlSXNWYWxpZChwZXJU dXBsZSkpCisJCXsKKwkJCUZvcm1fcGdfcGVyaW9kIHBlciA9IChGb3JtX3BnX3BlcmlvZCkg R0VUU1RSVUNUKHBlclR1cGxlKTsKKwkJCUZvcm1fcGdfYXR0cmlidXRlIHBlcmF0dHI7CisK KwkJCXN0YXJ0X2F0dG5vID0gcGVyLT5wZXJzdGFydDsKKwkJCWVuZF9hdHRubyA9IHBlci0+ cGVyZW5kOworCisJCQlwZXJhdHRyID0gVHVwbGVEZXNjQXR0cih0YXJnZXRyZWwtPnJkX2F0 dCwgc3RhcnRfYXR0bm8gLSAxKTsKKwkJCXN0YXJ0Y29sbmFtZSA9IE5hbWVTdHIocGVyYXR0 ci0+YXR0bmFtZSk7CisKKwkJCXJlc3VsdC0+c3RhcnRWYXIgPSBtYWtlVmFyKAorCQkJCQly dGluZGV4LAorCQkJCQlzdGFydF9hdHRubywKKwkJCQkJcGVyYXR0ci0+YXR0dHlwaWQsCisJ CQkJCXBlcmF0dHItPmF0dHR5cG1vZCwKKwkJCQkJcGVyYXR0ci0+YXR0Y29sbGF0aW9uLAor CQkJCQkwKTsKKworCQkJcGVyYXR0ciA9IFR1cGxlRGVzY0F0dHIodGFyZ2V0cmVsLT5yZF9h dHQsIGVuZF9hdHRubyAtIDEpOworCQkJZW5kY29sbmFtZSA9IE5hbWVTdHIocGVyYXR0ci0+ YXR0bmFtZSk7CisJCQlyZXN1bHQtPmVuZFZhciA9IG1ha2VWYXIoCisJCQkJCXJ0aW5kZXgs CisJCQkJCWVuZF9hdHRubywKKwkJCQkJcGVyYXR0ci0+YXR0dHlwaWQsCisJCQkJCXBlcmF0 dHItPmF0dHR5cG1vZCwKKwkJCQkJcGVyYXR0ci0+YXR0Y29sbGF0aW9uLAorCQkJCQkwKTsK KworCQkJUmVsZWFzZVN5c0NhY2hlKHBlclR1cGxlKTsKKwkJfQorCX0KKworCWlmIChzdGFy dF9hdHRubyA9PSBJbnZhbGlkQXR0ck51bWJlcikKKwl7CisJCXJlc3VsdC0+c3RhcnRWYXIg PSBOVUxMOworCQlyZXN1bHQtPmVuZFZhciA9IE5VTEw7CisJfQogCiAJaWYgKGZvclBvcnRp b25PZi0+dGFyZ2V0KQogCQkvKgpAQCAtMTQ2NSw3ICsxNTE3LDEwIEBAIHRyYW5zZm9ybUZv clBvcnRpb25PZkNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJewogCQkvKgogCQkgKiBO b3cgbWFrZSBzdXJlIHdlIHVwZGF0ZSB0aGUgc3RhcnQvZW5kIHRpbWUgb2YgdGhlIHJlY29y ZC4KLQkJICogRm9yIGEgcmFuZ2UgY29sIChyKSB0aGlzIGlzIGByID0gciAqIHRhcmdldFJh bmdlYC4KKwkJICogRm9yIGEgcmFuZ2UvZXRjIGNvbCAocikgdGhpcyBpcyBgciA9IHIgKiB0 YXJnZXRSYW5nZWAuCisJCSAqIEZvciBhIFBFUklPRCB3aXRoIGNvbHMgKHMsIGUpIHRoaXMg aXMgYHMgPSBsb3dlcih0c3JhbmdlKHMsIGUpICogdGFyZ2V0UmFuZ2UpYAorCQkgKiBhbmQg YGUgPSB1cHBlcih0c3JhbmdlKHMsIGUpICogdGFyZ2V0UmFuZ2VgIChvZiBjb3Vyc2Ugbm90 IG5lY2Vzc2FyaWx5IHdpdGgKKwkJICogdHNyYW5nZSwgYnV0IHdpdGggd2hhdGV2ZXIgcmFu Z2UgdHlwZSBpcyB1c2VkIHRoZXJlKS4KIAkJICovCiAJCUxpc3QJCSAgICpmdW5jQXJncyA9 IE5JTDsKIAkJRnVuY0V4cHIJICAgKnJhbmdlVExFRXhwcjsKQEAgLTE0ODUsMTQgKzE1NDAs NzEgQEAgdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAkJcmFuZ2VUTEVFeHByID0gbWFrZUZ1bmNFeHByKGZ1bmNpZCwgYXR0ci0+YXR0dHlwaWQs IGZ1bmNBcmdzLAogCQkJCQkJCQkJSW52YWxpZE9pZCwgSW52YWxpZE9pZCwgQ09FUkNFX0VY UExJQ0lUX0NBTEwpOwogCi0JCS8qIE1ha2UgYSBUTEUgdG8gc2V0IHRoZSByYW5nZSBjb2x1 bW4gKi8KKwkJLyogTWFrZSBhIFRMRSB0byBzZXQgdGhlIHJhbmdlIGNvbHVtbiBvciBzdGFy dC9lbmQgY29sdW1ucyAqLwogCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IE5JTDsKLQkJ dGxlID0gbWFrZVRhcmdldEVudHJ5KChFeHByICopIHJhbmdlVExFRXhwciwgcmFuZ2VfYXR0 bm8sIHJhbmdlX25hbWUsIGZhbHNlKTsKLQkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBs YXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0LCB0bGUpOwogCi0JCS8qIE1hcmsgdGhl IHJhbmdlIGNvbHVtbiBhcyByZXF1aXJpbmcgdXBkYXRlIHBlcm1pc3Npb25zICovCi0JCXRh cmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMgPSBibXNfYWRkX21lbWJlcih0YXJnZXRfcGVy bWluZm8tPnVwZGF0ZWRDb2xzLAotCQkJCQkJCQkJCQkJCSAgcmFuZ2VfYXR0bm8gLSBGaXJz dExvd0ludmFsaWRIZWFwQXR0cmlidXRlTnVtYmVyKTsKKwkJaWYgKHJlc3VsdC0+c3RhcnRW YXIpCisJCXsKKwkJCUZ1bmNFeHByICpib3VuZFRMRUV4cHI7CisJCQlPaWQgYXJnX3R5cGVz WzFdID0ge0FOWVJBTkdFT0lEfTsKKwkJCUZ1bmNEZXRhaWxDb2RlIGZkcmVzdWx0OworCQkJ T2lkIHJldHR5cGU7CisJCQlib29sIHJldHNldDsKKwkJCWludCBudmFyZ3M7CisJCQlPaWQg dmF0eXBlOworCQkJT2lkICpkZWNsYXJlZF9hcmdfdHlwZXM7CisJCQlPaWQgZWxlbXR5cGlk ID0gZ2V0X3JhbmdlX3N1YnR5cGUoYXR0ci0+YXR0dHlwaWQpOworCisJCQkvKiBzZXQgdGhl IHN0YXJ0IGNvbHVtbiAqLworCQkJZmRyZXN1bHQgPSBmdW5jX2dldF9kZXRhaWwoU3lzdGVt RnVuY05hbWUoImxvd2VyIiksIE5JTCwgTklMLCAxLAorCQkJCQkJCQkJICAgYXJnX3R5cGVz LAorCQkJCQkJCQkJICAgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJCSAgICZmdW5j aWQsICZyZXR0eXBlLCAmcmV0c2V0LAorCQkJCQkJCQkJICAgJm52YXJncywgJnZhdHlwZSwK KwkJCQkJCQkJCSAgICZkZWNsYXJlZF9hcmdfdHlwZXMsIE5VTEwpOworCQkJaWYgKGZkcmVz dWx0ICE9IEZVTkNERVRBSUxfTk9STUFMKQorCQkJCWVsb2coRVJST1IsICJmYWlsZWQgdG8g ZmluZCBsb3dlcihhbnlyYW5nZSkgZnVuY3Rpb24iKTsKKwkJCWJvdW5kVExFRXhwciA9IG1h a2VGdW5jRXhwcihmdW5jaWQsCisJCQkJCQkJCQkJZWxlbXR5cGlkLAorCQkJCQkJCQkJCWxp c3RfbWFrZTEocmFuZ2VUTEVFeHByKSwKKwkJCQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlk T2lkLCBDT0VSQ0VfRVhQTElDSVRfQ0FMTCk7CisJCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnko KEV4cHIgKikgYm91bmRUTEVFeHByLCBzdGFydF9hdHRubywgc3RhcnRjb2xuYW1lLCBmYWxz ZSk7CisJCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IGxhcHBlbmQocmVzdWx0LT5yYW5n ZVRhcmdldExpc3QsIHRsZSk7CisKKwkJCS8qIHNldCB0aGUgZW5kIGNvbHVtbiAqLworCQkJ ZmRyZXN1bHQgPSBmdW5jX2dldF9kZXRhaWwoU3lzdGVtRnVuY05hbWUoInVwcGVyIiksIE5J TCwgTklMLCAxLAorCQkJCQkJCQkJICAgYXJnX3R5cGVzLAorCQkJCQkJCQkJICAgZmFsc2Us IGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJCSAgICZmdW5jaWQsICZyZXR0eXBlLCAmcmV0c2V0 LAorCQkJCQkJCQkJICAgJm52YXJncywgJnZhdHlwZSwKKwkJCQkJCQkJCSAgICZkZWNsYXJl ZF9hcmdfdHlwZXMsIE5VTEwpOworCQkJaWYgKGZkcmVzdWx0ICE9IEZVTkNERVRBSUxfTk9S TUFMKQorCQkJCWVsb2coRVJST1IsICJmYWlsZWQgdG8gZmluZCB1cHBlcihhbnlyYW5nZSkg ZnVuY3Rpb24iKTsKKwkJCWJvdW5kVExFRXhwciA9IG1ha2VGdW5jRXhwcihmdW5jaWQsCisJ CQkJCQkJCQkJZWxlbXR5cGlkLAorCQkJCQkJCQkJCWxpc3RfbWFrZTEocmFuZ2VUTEVFeHBy KSwKKwkJCQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCBDT0VSQ0VfRVhQTElDSVRf Q0FMTCk7CisJCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkoKEV4cHIgKikgYm91bmRUTEVFeHBy LCBlbmRfYXR0bm8sIGVuZGNvbG5hbWUsIGZhbHNlKTsKKwkJCXJlc3VsdC0+cmFuZ2VUYXJn ZXRMaXN0ID0gbGFwcGVuZChyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCwgdGxlKTsKKworCQkJ LyoKKwkJCSAqIE1hcmsgdGhlIHN0YXJ0L2VuZCBjb2x1bW5zIGFzIHJlcXVpcmluZyB1cGRh dGUgcGVybWlzc2lvbnMuCisJCQkgKiBBcyB1c3VhbCwgd2UgZG9uJ3QgY2hlY2sgcGVybWlz c2lvbnMgZm9yIHRoZSBHRU5FUkFURUQgY29sdW1uLgorCQkJICovCisJCQl0YXJnZXRfcGVy bWluZm8tPnVwZGF0ZWRDb2xzID0gYm1zX2FkZF9tZW1iZXIodGFyZ2V0X3Blcm1pbmZvLT51 cGRhdGVkQ29scywKKwkJCQkJCQkJCQkJCQkJICBzdGFydF9hdHRubyAtIEZpcnN0TG93SW52 YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIpOworCQkJdGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVk Q29scyA9IGJtc19hZGRfbWVtYmVyKHRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMsCisJ CQkJCQkJCQkJCQkJCSAgZW5kX2F0dG5vIC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0 ZU51bWJlcik7CisJCX0KKwkJZWxzZQorCQl7CisJCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnko KEV4cHIgKikgcmFuZ2VUTEVFeHByLCByYW5nZV9hdHRubywgcmFuZ2VfbmFtZSwgZmFsc2Up OworCQkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VU YXJnZXRMaXN0LCB0bGUpOworCisJCQkvKiBNYXJrIHRoZSByYW5nZSBjb2x1bW4gYXMgcmVx dWlyaW5nIHVwZGF0ZSBwZXJtaXNzaW9ucyAqLworCQkJdGFyZ2V0X3Blcm1pbmZvLT51cGRh dGVkQ29scyA9IGJtc19hZGRfbWVtYmVyKHRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMs CisJCQkJCQkJCQkJCQkJCSAgcmFuZ2VfYXR0bm8gLSBGaXJzdExvd0ludmFsaWRIZWFwQXR0 cmlidXRlTnVtYmVyKTsKKwkJfQogCX0KIAllbHNlCiAJCXJlc3VsdC0+cmFuZ2VUYXJnZXRM aXN0ID0gTklMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMjYxNDc0Y2VmOTYuLjg0Njk4YjNmZjUy IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKQEAgLTU4NSw3ICs1ODUsNyBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9k ZSAqcXVlcnkpOwogJXR5cGUgPGtleXdvcmQ+IGNvbF9uYW1lX2tleXdvcmQgcmVzZXJ2ZWRf a2V5d29yZAogJXR5cGUgPGtleXdvcmQ+IGJhcmVfbGFiZWxfa2V5d29yZAogCi0ldHlwZSA8 bm9kZT4JRG9tYWluQ29uc3RyYWludCBUYWJsZUNvbnN0cmFpbnQgVGFibGVMaWtlQ2xhdXNl CisldHlwZSA8bm9kZT4JRG9tYWluQ29uc3RyYWludCBUYWJsZUNvbnN0cmFpbnQgVGFibGVM aWtlQ2xhdXNlIFRhYmxlUGVyaW9kCiAldHlwZSA8aXZhbD4JVGFibGVMaWtlT3B0aW9uTGlz dCBUYWJsZUxpa2VPcHRpb24KICV0eXBlIDxzdHI+CQljb2x1bW5fY29tcHJlc3Npb24gb3B0 X2NvbHVtbl9jb21wcmVzc2lvbiBjb2x1bW5fc3RvcmFnZSBvcHRfY29sdW1uX3N0b3JhZ2UK ICV0eXBlIDxsaXN0PglDb2xRdWFsTGlzdApAQCAtMjY0Miw2ICsyNjQyLDI0IEBAIGFsdGVy X3RhYmxlX2NtZDoKIAkJCQkJbi0+ZGVmID0gKE5vZGUgKikgJDQ7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9CisJCQkvKiBBTFRFUiBUQUJMRSA8bmFtZT4gQUREIFBFUklPRCBG T1IgPG5hbWU+ICg8bmFtZT4sIDxuYW1lPikgKi8KKwkJCXwgQUREX1AgVGFibGVQZXJpb2QK KwkJCQl7CisJCQkJCUFsdGVyVGFibGVDbWQgKm4gPSBtYWtlTm9kZShBbHRlclRhYmxlQ21k KTsKKwkJCQkJbi0+c3VidHlwZSA9IEFUX0FkZFBlcmlvZDsKKwkJCQkJbi0+ZGVmID0gJDI7 CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCS8qIEFMVEVSIFRBQkxFIDxuYW1l PiBEUk9QIFBFUklPRCBGT1IgPG5hbWU+IFtSRVNUUklDVHxDQVNDQURFXSAqLworCQkJfCBE Uk9QIFBFUklPRCBGT1IgbmFtZSBvcHRfZHJvcF9iZWhhdmlvcgorCQkJCXsKKwkJCQkJQWx0 ZXJUYWJsZUNtZCAqbiA9IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOworCQkJCQluLT5zdWJ0 eXBlID0gQVRfRHJvcFBlcmlvZDsKKwkJCQkJbi0+bmFtZSA9ICQ0OworCQkJCQluLT5iZWhh dmlvciA9ICQ1OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0gKE5v ZGUgKiluOworCQkJCX0KIAkJCS8qIEFMVEVSIFRBQkxFIDxuYW1lPiBBREQgQ09OU1RSQUlO VCAuLi4gKi8KIAkJCXwgQUREX1AgVGFibGVDb25zdHJhaW50CiAJCQkJewpAQCAtMzc3NSw4 ICszNzkzLDEwIEBAIFRhYmxlRWxlbWVudDoKIAkJCWNvbHVtbkRlZgkJCQkJCQl7ICQkID0g JDE7IH0KIAkJCXwgVGFibGVMaWtlQ2xhdXNlCQkJCQl7ICQkID0gJDE7IH0KIAkJCXwgVGFi bGVDb25zdHJhaW50CQkJCQl7ICQkID0gJDE7IH0KKwkJCXwgVGFibGVQZXJpb2QJCQkJCQl7 ICQkID0gJDE7IH0KIAkJOwogCisKIFR5cGVkVGFibGVFbGVtZW50OgogCQkJY29sdW1uT3B0 aW9ucwkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCBUYWJsZUNvbnN0cmFpbnQJCQkJCXsgJCQg PSAkMTsgfQpAQCAtNDEyOCw2ICs0MTQ4LDE5IEBAIFRhYmxlTGlrZU9wdGlvbjoKIAkJOwog CiAKK1RhYmxlUGVyaW9kOgorCQkJUEVSSU9EIEZPUiBuYW1lICcoJyBuYW1lICcsJyBuYW1l ICcpJyBvcHRfZGVmaW5pdGlvbgorCQkJCXsKKwkJCQkJUGVyaW9kRGVmICpuID0gbWFrZU5v ZGUoUGVyaW9kRGVmKTsKKwkJCQkJbi0+cGVyaW9kbmFtZSA9ICQzOworCQkJCQluLT5zdGFy dGNvbG5hbWUgPSAkNTsKKwkJCQkJbi0+ZW5kY29sbmFtZSA9ICQ3OworCQkJCQluLT5vcHRp b25zID0gJDk7CisJCQkJCW4tPmxvY2F0aW9uID0gQDE7CisJCQkJCSQkID0gKE5vZGUgKikg bjsKKwkJCQl9CisJCTsKKwogLyogQ29uc3RyYWludEVsZW0gc3BlY2lmaWVzIGNvbnN0cmFp bnQgc3ludGF4IHdoaWNoIGlzIG5vdCBlbWJlZGRlZCBpbnRvCiAgKglhIGNvbHVtbiBkZWZp bml0aW9uLiBDb2xDb25zdHJhaW50RWxlbSBzcGVjaWZpZXMgdGhlIGVtYmVkZGVkIGZvcm0u CiAgKiAtIHRob21hcyAxOTk3LTEyLTAzCkBAIC03MjM5LDYgKzcyNzIsMTQgQEAgQ29tbWVu dFN0bXQ6CiAJCQkJCW4tPmNvbW1lbnQgPSAkOTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwog CQkJCX0KKwkJCXwgQ09NTUVOVCBPTiBQRVJJT0QgYW55X25hbWUgSVMgY29tbWVudF90ZXh0 CisJCQkJeworCQkJCQlDb21tZW50U3RtdCAqbiA9IG1ha2VOb2RlKENvbW1lbnRTdG10KTsK KwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9QRVJJT0Q7CisJCQkJCW4tPm9iamVjdCA9IChO b2RlICopICQ0OworCQkJCQluLT5jb21tZW50ID0gJDY7CisJCQkJCSQkID0gKE5vZGUgKikg bjsKKwkJCQl9CiAJCQl8IENPTU1FTlQgT04gTEFSR0VfUCBPQkpFQ1RfUCBOdW1lcmljT25s eSBJUyBjb21tZW50X3RleHQKIAkJCQl7CiAJCQkJCUNvbW1lbnRTdG10ICpuID0gbWFrZU5v ZGUoQ29tbWVudFN0bXQpOwpAQCAtMTc4OTEsNyArMTc5MzIsNiBAQCB1bnJlc2VydmVkX2tl eXdvcmQ6CiAJCQl8IFBBU1NJTkcKIAkJCXwgUEFTU1dPUkQKIAkJCXwgUEFUSAotCQkJfCBQ RVJJT0QKIAkJCXwgUExBTgogCQkJfCBQTEFOUwogCQkJfCBQT0xJQ1kKQEAgLTE4MTk1LDYg KzE4MjM1LDcgQEAgcmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgT05MWQogCQkJfCBPUgogCQkJ fCBPUkRFUgorCQkJfCBQRVJJT0QKIAkJCXwgUExBQ0lORwogCQkJfCBQUklNQVJZCiAJCQl8 IFJFRkVSRU5DRVMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxh dGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggOTJh MDRlMzVkZmYuLjExMGM3OWQ4OWFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRp b24uYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy90YWJsZS5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvaGVhcC5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1 bmNzLmgiCkBAIC0zMjYyLDYgKzMyNjMsNyBAQCBleHBhbmROU0l0ZW1BdHRycyhQYXJzZVN0 YXRlICpwc3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNpdGVtLAogCQkJCSAgaW50IHN1 YmxldmVsc191cCwgYm9vbCByZXF1aXJlX2NvbF9wcml2cywgaW50IGxvY2F0aW9uKQogewog CVJhbmdlVGJsRW50cnkgKnJ0ZSA9IG5zaXRlbS0+cF9ydGU7CisJQml0bWFwc2V0ICAqcGVy aW9kYXR0cyA9IE5VTEw7CiAJUlRFUGVybWlzc2lvbkluZm8gKnBlcm1pbmZvID0gbnNpdGVt LT5wX3Blcm1pbmZvOwogCUxpc3QJICAgKm5hbWVzLAogCQkJICAgKnZhcnM7CkBAIC0zMjg1 LDEyICszMjg3LDIwIEBAIGV4cGFuZE5TSXRlbUF0dHJzKFBhcnNlU3RhdGUgKnBzdGF0ZSwg UGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCXBlcm1pbmZvLT5yZXF1aXJlZFBlcm1z IHw9IEFDTF9TRUxFQ1Q7CiAJfQogCisJLyogR2V0IFBFUklPRCBjb2x1bW5zIHRvIGV4Y2x1 ZGUgKi8KKwlpZiAocnRlLT5ydGVraW5kID09IFJURV9SRUxBVElPTikKKwkJcGVyaW9kYXR0 cyA9IGdldF9wZXJpb2RfYXR0bm9zKHJ0ZS0+cmVsaWQpOworCiAJZm9yYm90aChuYW1lLCBu YW1lcywgdmFyLCB2YXJzKQogCXsKIAkJY2hhcgkgICAqbGFiZWwgPSBzdHJWYWwobGZpcnN0 KG5hbWUpKTsKIAkJVmFyCQkgICAqdmFybm9kZSA9IChWYXIgKikgbGZpcnN0KHZhcik7CiAJ CVRhcmdldEVudHJ5ICp0ZTsKIAorCQkvKiBJZiB0aGlzIGNvbHVtbiBpcyBmcm9tIGEgUEVS SU9ELCBza2lwIGl0ICovCisJCWlmIChibXNfaXNfbWVtYmVyKHZhcm5vZGUtPnZhcmF0dG5v LCBwZXJpb2RhdHRzKSkKKwkJCQljb250aW51ZTsKKwogCQl0ZSA9IG1ha2VUYXJnZXRFbnRy eSgoRXhwciAqKSB2YXJub2RlLAogCQkJCQkJCSAoQXR0ck51bWJlcikgcHN0YXRlLT5wX25l eHRfcmVzbm8rKywKIAkJCQkJCQkgbGFiZWwsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxj bWQuYwppbmRleCBkMmQ4MmM5YzU5Ni4uODM4OGE4ODc0YWEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3V0aWxjbWQuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BjbGFzcy5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Bl cmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlzdGljX2V4dC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIK QEAgLTgwLDYgKzgxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQlpc2ZvcmVpZ247CQkv KiB0cnVlIGlmIENSRUFURS9BTFRFUiBGT1JFSUdOIFRBQkxFICovCiAJYm9vbAkJaXNhbHRl cjsJCS8qIHRydWUgaWYgYWx0ZXJpbmcgZXhpc3RpbmcgdGFibGUgKi8KIAlMaXN0CSAgICpj b2x1bW5zOwkJLyogQ29sdW1uRGVmIGl0ZW1zICovCisJTGlzdAkgICAqcGVyaW9kczsJCS8q IFBlcmlvZERlZiBpdGVtcyAqLwogCUxpc3QJICAgKmNrY29uc3RyYWludHM7CS8qIENIRUNL IGNvbnN0cmFpbnRzICovCiAJTGlzdAkgICAqbm5jb25zdHJhaW50czsJLyogTk9UIE5VTEwg Y29uc3RyYWludHMgKi8KIAlMaXN0CSAgICpma2NvbnN0cmFpbnRzOwkvKiBGT1JFSUdOIEtF WSBjb25zdHJhaW50cyAqLwpAQCAtMTEwLDYgKzExMiw4IEBAIHR5cGVkZWYgc3RydWN0CiAK IHN0YXRpYyB2b2lkIHRyYW5zZm9ybUNvbHVtbkRlZmluaXRpb24oQ3JlYXRlU3RtdENvbnRl eHQgKmN4dCwKIAkJCQkJCQkJCSAgQ29sdW1uRGVmICpjb2x1bW4pOworc3RhdGljIHZvaWQg dHJhbnNmb3JtVGFibGVQZXJpb2QoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwKKwkJCQkJCQkJ IFBlcmlvZERlZiAqcGVyaW9kKTsKIHN0YXRpYyB2b2lkIHRyYW5zZm9ybVRhYmxlQ29uc3Ry YWludChDcmVhdGVTdG10Q29udGV4dCAqY3h0LAogCQkJCQkJCQkJIENvbnN0cmFpbnQgKmNv bnN0cmFpbnQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0 ZVN0bXRDb250ZXh0ICpjeHQsCkBAIC0yNDAsNiArMjQ0LDcgQEAgdHJhbnNmb3JtQ3JlYXRl U3RtdChDcmVhdGVTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZykKIAljeHQu aW5oUmVsYXRpb25zID0gc3RtdC0+aW5oUmVsYXRpb25zOwogCWN4dC5pc2FsdGVyID0gZmFs c2U7CiAJY3h0LmNvbHVtbnMgPSBOSUw7CisJY3h0LnBlcmlvZHMgPSBOSUw7CiAJY3h0LmNr Y29uc3RyYWludHMgPSBOSUw7CiAJY3h0Lm5uY29uc3RyYWludHMgPSBOSUw7CiAJY3h0LmZr Y29uc3RyYWludHMgPSBOSUw7CkBAIC0yNzksNiArMjg0LDEwIEBAIHRyYW5zZm9ybUNyZWF0 ZVN0bXQoQ3JlYXRlU3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcpCiAJCQkJ dHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbigmY3h0LCAoQ29sdW1uRGVmICopIGVsZW1lbnQp OwogCQkJCWJyZWFrOwogCisJCQljYXNlIFRfUGVyaW9kRGVmOgorCQkJCXRyYW5zZm9ybVRh YmxlUGVyaW9kKCZjeHQsIChQZXJpb2REZWYgKikgZWxlbWVudCk7CisJCQkJYnJlYWs7CisK IAkJCWNhc2UgVF9Db25zdHJhaW50OgogCQkJCXRyYW5zZm9ybVRhYmxlQ29uc3RyYWludCgm Y3h0LCAoQ29uc3RyYWludCAqKSBlbGVtZW50KTsKIAkJCQlicmVhazsKQEAgLTM2Nyw2ICsz NzYsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTdG10KENyZWF0ZVN0bXQgKnN0bXQsIGNvbnN0IGNo YXIgKnF1ZXJ5U3RyaW5nKQogCSAqIE91dHB1dCByZXN1bHRzLgogCSAqLwogCXN0bXQtPnRh YmxlRWx0cyA9IGN4dC5jb2x1bW5zOworCXN0bXQtPnBlcmlvZHMgPSBjeHQucGVyaW9kczsK IAlzdG10LT5jb25zdHJhaW50cyA9IGN4dC5ja2NvbnN0cmFpbnRzOwogCXN0bXQtPm5uY29u c3RyYWludHMgPSBjeHQubm5jb25zdHJhaW50czsKIApAQCAtMTAyNSw2ICsxMDM1LDkxIEBA IHRyYW5zZm9ybUNvbHVtbkRlZmluaXRpb24oQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgQ29s dW1uRGVmICpjb2x1bW4pCiAJfQogfQogCit2b2lkCit0cmFuc2Zvcm1QZXJpb2RPcHRpb25z KFBlcmlvZERlZiAqcGVyaW9kKQoreworCUxpc3RDZWxsICAgKm9wdGlvbjsKKwlEZWZFbGVt CSAgICpkY29uc3RyYWludG5hbWUgPSBOVUxMOworCURlZkVsZW0JICAgKmRyYW5nZXR5cGVu YW1lID0gTlVMTDsKKwlEZWZFbGVtCSAgICpkY29sZXhpc3RzID0gTlVMTDsKKworCWZvcmVh Y2gob3B0aW9uLCBwZXJpb2QtPm9wdGlvbnMpCisJeworCQlEZWZFbGVtICAgICpkZWZlbCA9 IChEZWZFbGVtICopIGxmaXJzdChvcHRpb24pOworCisJCWlmIChzdHJjbXAoZGVmZWwtPmRl Zm5hbWUsICJjaGVja19jb25zdHJhaW50X25hbWUiKSA9PSAwKQorCQl7CisJCQlpZiAoZGNv bnN0cmFpbnRuYW1lKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJD T0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1 bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlkY29uc3RyYWludG5hbWUgPSBkZWZlbDsKKwkJfQor CQllbHNlIGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJyYW5nZXR5cGUiKSA9PSAwKQor CQl7CisJCQlpZiAoZHJhbmdldHlwZW5hbWUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ CShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBlcnJtc2coImNvbmZs aWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zIikpKTsKKwkJCWRyYW5nZXR5cGVuYW1lID0g ZGVmZWw7CisJCX0KKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiY29sZXhp c3RzIikgPT0gMCkKKwkJeworCQkJaWYgKGRjb2xleGlzdHMpCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCSBlcnJt c2coImNvbmZsaWN0aW5nIG9yIHJlZHVuZGFudCBvcHRpb25zIikpKTsKKwkJCWRjb2xleGlz dHMgPSBkZWZlbDsKKwkJfQorCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJy Y29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coIm9wdGlvbiBcIiVz XCIgbm90IHJlY29nbml6ZWQiLCBkZWZlbC0+ZGVmbmFtZSkpKTsKKwl9CisKKwlpZiAoZGNv bnN0cmFpbnRuYW1lICE9IE5VTEwpCisJCXBlcmlvZC0+Y29uc3RyYWludG5hbWUgPSBkZWZH ZXRTdHJpbmcoZGNvbnN0cmFpbnRuYW1lKTsKKwllbHNlCisJCXBlcmlvZC0+Y29uc3RyYWlu dG5hbWUgPSBOVUxMOworCisJaWYgKGRyYW5nZXR5cGVuYW1lICE9IE5VTEwpCisJCXBlcmlv ZC0+cmFuZ2V0eXBlbmFtZSA9IGRlZkdldFN0cmluZyhkcmFuZ2V0eXBlbmFtZSk7CisJZWxz ZQorCQlwZXJpb2QtPnJhbmdldHlwZW5hbWUgPSBOVUxMOworCisJaWYgKGRjb2xleGlzdHMg IT0gTlVMTCkKKwkJcGVyaW9kLT5jb2xleGlzdHMgPSBkZWZHZXRCb29sZWFuKGRjb2xleGlz dHMpOworCWVsc2UKKwkJcGVyaW9kLT5jb2xleGlzdHMgPSBmYWxzZTsKK30KKworLyoKKyAq IHRyYW5zZm9ybVRhYmxlUGVyaW9kCisgKgkJdHJhbnNmb3JtIGEgUGVyaW9kRGVmIG5vZGUg d2l0aGluIENSRUFURSBUQUJMRQorICovCitzdGF0aWMgdm9pZAordHJhbnNmb3JtVGFibGVQ ZXJpb2QoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgUGVyaW9kRGVmICpwZXJpb2QpCit7CisJ aWYgKHN0cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUsICJzeXN0ZW1fdGltZSIpID09IDApCisJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NV UFBPUlRFRCksCisJCQkJCSBlcnJtc2coIlBFUklPRCBGT1IgU1lTVEVNX1RJTUUgaXMgbm90 IHN1cHBvcnRlZCIpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKGN4dC0+cHN0YXRlLAor CQkJCQkJCQkJCXBlcmlvZC0+bG9jYXRpb24pKSk7CisKKwlpZiAoc3RyY21wKHBlcmlvZC0+ c3RhcnRjb2xuYW1lLCBwZXJpb2QtPmVuZGNvbG5hbWUpID09IDApCisJCWVyZXBvcnQoRVJS T1IsIChlcnJtc2coImNvbHVtbiBcIiVzXCIgY2FuJ3QgYmUgdGhlIHN0YXJ0IGFuZCBlbmQg Y29sdW1uIGZvciBwZXJpb2QgXCIlc1wiIiwKKwkJCQkJCXBlcmlvZC0+c3RhcnRjb2xuYW1l LCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkvKgorCSAqIERldGVybWluZSB0aGUgY29s dW1uIGluZm8gYW5kIHJhbmdlIHR5cGUgc28gdGhhdCB0cmFuc2Zvcm1JbmRleENvbnN0cmFp bnRzCisJICoga25vd3MgaG93IHRvIGNyZWF0ZSBQUklNQVJZIEtFWS9VTklRVUUgY29uc3Ry YWludHMgdXNpbmcgdGhpcyBQRVJJT0QuCisJICovCisJdHJhbnNmb3JtUGVyaW9kT3B0aW9u cyhwZXJpb2QpOworCisJY3h0LT5wZXJpb2RzID0gbGFwcGVuZChjeHQtPnBlcmlvZHMsIHBl cmlvZCk7Cit9CisKIC8qCiAgKiB0cmFuc2Zvcm1UYWJsZUNvbnN0cmFpbnQKICAqCQl0cmFu c2Zvcm0gYSBDb25zdHJhaW50IG5vZGUgd2l0aGluIENSRUFURSBUQUJMRSBvciBBTFRFUiBU QUJMRQpAQCAtMTEyMCw2ICsxMjE1LDcgQEAgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENy ZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEK IAlBdHRyTnVtYmVyCXBhcmVudF9hdHRubzsKIAlSZWxhdGlvbglyZWxhdGlvbjsKIAlUdXBs ZURlc2MJdHVwbGVEZXNjOworCUJpdG1hcHNldCAgKnBlcmlvZGF0dHM7CiAJQWNsUmVzdWx0 CWFjbHJlc3VsdDsKIAljaGFyCSAgICpjb21tZW50OwogCVBhcnNlQ2FsbGJhY2tTdGF0ZSBw Y2JzdGF0ZTsKQEAgLTExNzEsNiArMTI2Nyw3IEBAIHRyYW5zZm9ybVRhYmxlTGlrZUNsYXVz ZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBUYWJsZUxpa2VDbGF1c2UgKnRhYmxlX2xpa2Vf Y2xhCiAJfQogCiAJdHVwbGVEZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWxhdGlvbik7CisJ cGVyaW9kYXR0cyA9IGdldF9wZXJpb2RfYXR0bm9zKFJlbGF0aW9uR2V0UmVsaWQocmVsYXRp b24pKTsKIAogCS8qCiAJICogSW5zZXJ0IHRoZSBjb3BpZWQgYXR0cmlidXRlcyBpbnRvIHRo ZSBjeHQgZm9yIHRoZSBuZXcgdGFibGUgZGVmaW5pdGlvbi4KQEAgLTExODAsMTAgKzEyNzcs MTggQEAgdHJhbnNmb3JtVGFibGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQs IFRhYmxlTGlrZUNsYXVzZSAqdGFibGVfbGlrZV9jbGEKIAlmb3IgKHBhcmVudF9hdHRubyA9 IDE7IHBhcmVudF9hdHRubyA8PSB0dXBsZURlc2MtPm5hdHRzOwogCQkgcGFyZW50X2F0dG5v KyspCiAJewotCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyaWJ1dGUgPSBUdXBsZURlc2NBdHRy KHR1cGxlRGVzYywKLQkJCQkJCQkJCQkJCQlwYXJlbnRfYXR0bm8gLSAxKTsKKwkJRm9ybV9w Z19hdHRyaWJ1dGUgYXR0cmlidXRlOwogCQlDb2x1bW5EZWYgICpkZWY7CiAKKwkJLyoKKwkJ ICogSWYgdGhpcyBjb2x1bW4gaXMgZnJvbSBhIFBFUklPRCwgc2tpcCBpdAorCQkgKiAoc2lu Y2UgTElLRSBuZXZlciBjb3BpZXMgUEVSSU9EcykuCisJCSAqLworCQlpZiAoYm1zX2lzX21l bWJlcihwYXJlbnRfYXR0bm8sIHBlcmlvZGF0dHMpKQorCQkJY29udGludWU7CisKKwkJYXR0 cmlidXRlID0gVHVwbGVEZXNjQXR0cih0dXBsZURlc2MsIHBhcmVudF9hdHRubyAtIDEpOwor CiAJCS8qCiAJCSAqIElnbm9yZSBkcm9wcGVkIGNvbHVtbnMgaW4gdGhlIHBhcmVudC4KIAkJ ICovCkBAIC0yNTgwLDYgKzI2ODUsNyBAQCB0cmFuc2Zvcm1JbmRleENvbnN0cmFpbnQoQ29u c3RyYWludCAqY29uc3RyYWludCwgQ3JlYXRlU3RtdENvbnRleHQgKmN4dCkKIAkJewogCQkJ Y2hhcgkgICAqa2V5ID0gc3RyVmFsKGxmaXJzdChsYykpOwogCQkJYm9vbAkJZm91bmQgPSBm YWxzZTsKKwkJCWJvb2wJCWhhc3BlcmlvZCA9IGZhbHNlOwogCQkJQ29sdW1uRGVmICAqY29s dW1uID0gTlVMTDsKIAkJCUxpc3RDZWxsICAgKmNvbHVtbnM7CiAJCQlJbmRleEVsZW0gICpp cGFyYW07CkBAIC0yNTk4LDYgKzI3MDQsMjQgQEAgdHJhbnNmb3JtSW5kZXhDb25zdHJhaW50 KENvbnN0cmFpbnQgKmNvbnN0cmFpbnQsIENyZWF0ZVN0bXRDb250ZXh0ICpjeHQpCiAJCQlp ZiAoIWZvdW5kKQogCQkJCWNvbHVtbiA9IE5VTEw7CiAKKwkJCS8qIElmIHRoZSBrZXkgaXMg V0lUSE9VVCBPVkVSTEFQUywgYSBQRVJJT0Qgd2lsbCB3b3JrIHRvby4gKi8KKwkJCWlmICgh Zm91bmQgJiYgY29uc3RyYWludC0+d2l0aG91dF9vdmVybGFwcyAmJgorCQkJCWxjID09IGxp c3RfbGFzdF9jZWxsKGNvbnN0cmFpbnQtPmtleXMpKQorCQkJeworCQkJCVBlcmlvZERlZiAg KnBlcmlvZCA9IE5VTEw7CisKKwkJCQlmb3JlYWNoKGNvbHVtbnMsIGN4dC0+cGVyaW9kcykK KwkJCQl7CisJCQkJCXBlcmlvZCA9IGxmaXJzdF9ub2RlKFBlcmlvZERlZiwgY29sdW1ucyk7 CisJCQkJCWlmIChzdHJjbXAocGVyaW9kLT5wZXJpb2RuYW1lLCBrZXkpID09IDApCisJCQkJ CXsKKwkJCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQkJCWhhc3BlcmlvZCA9IHRydWU7CisJCQkJ CQlicmVhazsKKwkJCQkJfQorCQkJCX0KKwkJCX0KKwogCQkJaWYgKGZvdW5kKQogCQkJewog CQkJCS8qCkBAIC0yNjE0LDI0ICsyNzM4LDM0IEBAIHRyYW5zZm9ybUluZGV4Q29uc3RyYWlu dChDb25zdHJhaW50ICpjb25zdHJhaW50LCBDcmVhdGVTdG10Q29udGV4dCAqY3h0KQogCQkJ CWlmIChjb25zdHJhaW50LT5jb250eXBlID09IENPTlNUUl9QUklNQVJZICYmCiAJCQkJCSFj eHQtPmlzYWx0ZXIpCiAJCQkJewotCQkJCQlpZiAoY29sdW1uLT5pc19ub3RfbnVsbCkKKwkJ CQkJaWYgKGNvbHVtbikKIAkJCQkJewotCQkJCQkJZm9yZWFjaF9ub2RlKENvbnN0cmFpbnQs IG5uLCBjeHQtPm5uY29uc3RyYWludHMpCisJCQkJCQlpZiAoY29sdW1uLT5pc19ub3RfbnVs bCkKIAkJCQkJCXsKLQkJCQkJCQlpZiAoc3RyY21wKHN0clZhbChsaW5pdGlhbChubi0+a2V5 cykpLCBrZXkpID09IDApCisJCQkJCQkJZm9yZWFjaF9ub2RlKENvbnN0cmFpbnQsIG5uLCBj eHQtPm5uY29uc3RyYWludHMpCiAJCQkJCQkJewotCQkJCQkJCQlpZiAobm4tPmlzX25vX2lu aGVyaXQpCi0JCQkJCQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJCQkJCQllcnJjb2RlKEVS UkNPREVfU1lOVEFYX0VSUk9SKSwKLQkJCQkJCQkJCQkJZXJybXNnKCJjb25mbGljdGluZyBO TyBJTkhFUklUIGRlY2xhcmF0aW9uIGZvciBub3QtbnVsbCBjb25zdHJhaW50IG9uIGNvbHVt biBcIiVzXCIiLAotCQkJCQkJCQkJCQkJICAga2V5KSk7Ci0JCQkJCQkJCWJyZWFrOworCQkJ CQkJCQlpZiAoc3RyY21wKHN0clZhbChsaW5pdGlhbChubi0+a2V5cykpLCBrZXkpID09IDAp CisJCQkJCQkJCXsKKwkJCQkJCQkJCWlmIChubi0+aXNfbm9faW5oZXJpdCkKKwkJCQkJCQkJ CQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9F UlJPUiksCisJCQkJCQkJCQkJCQllcnJtc2coImNvbmZsaWN0aW5nIE5PIElOSEVSSVQgZGVj bGFyYXRpb24gZm9yIG5vdC1udWxsIGNvbnN0cmFpbnQgb24gY29sdW1uIFwiJXNcIiIsCisJ CQkJCQkJCQkJCQkJICAga2V5KSk7CisJCQkJCQkJCQlicmVhazsKKwkJCQkJCQkJfQogCQkJ CQkJCX0KIAkJCQkJCX0KKwkJCQkJCWVsc2UKKwkJCQkJCXsKKwkJCQkJCQljb2x1bW4tPmlz X25vdF9udWxsID0gdHJ1ZTsKKwkJCQkJCQljeHQtPm5uY29uc3RyYWludHMgPQorCQkJCQkJ CQlsYXBwZW5kKGN4dC0+bm5jb25zdHJhaW50cywKKwkJCQkJCQkJCQltYWtlTm90TnVsbENv bnN0cmFpbnQobWFrZVN0cmluZyhrZXkpKSk7CisJCQkJCQl9CiAJCQkJCX0KLQkJCQkJZWxz ZQorCQkJCQllbHNlIGlmIChoYXNwZXJpb2QpCiAJCQkJCXsKLQkJCQkJCWNvbHVtbi0+aXNf bm90X251bGwgPSB0cnVlOworCQkJCQkJLyogSWYgd2UncmUgdXNpbmcgYSBQRVJJT0QsIHdl IGJldHRlciBtYWtlIHN1cmUgaXQgaXMgTk9UIE5VTEwgKi8KIAkJCQkJCWN4dC0+bm5jb25z dHJhaW50cyA9CiAJCQkJCQkJbGFwcGVuZChjeHQtPm5uY29uc3RyYWludHMsCiAJCQkJCQkJ CQltYWtlTm90TnVsbENvbnN0cmFpbnQobWFrZVN0cmluZyhrZXkpKSk7CkBAIC0yNzU4LDcg KzI4OTIsMTIgQEAgdHJhbnNmb3JtSW5kZXhDb25zdHJhaW50KENvbnN0cmFpbnQgKmNvbnN0 cmFpbnQsIENyZWF0ZVN0bXRDb250ZXh0ICpjeHQpCiAJCQkJCQl9CiAJCQkJCX0KIAkJCQl9 Ci0JCQkJaWYgKGZvdW5kKQorCQkJCS8qCisJCQkJICogSW4gQ1JFQVRFIFRBQkxFIHdlIGRv bid0IGtub3cgUEVSSU9EcycgcmFuZ2V0eXBlIHlldCwKKwkJCQkgKiBidXQgd2Uga25vdyBp dCB3aWxsIGJlIGEgcmFuZ2UvbXVsdGlyYW5nZS4gU28gaWYgd2UKKwkJCQkgKiBoYXZlIGEg UEVSSU9EIHRoZW4gd2UncmUgc2FmZS4KKwkJCQkgKi8KKwkJCQlpZiAoZm91bmQgJiYgIWhh c3BlcmlvZCkKIAkJCQl7CiAJCQkJCWlmICghT2lkSXNWYWxpZCh0eXBpZCkgJiYgY29sdW1u KQogCQkJCQkJdHlwaWQgPSB0eXBlbmFtZVR5cGVJZChOVUxMLCBjb2x1bW4tPnR5cGVOYW1l KTsKQEAgLTMwODAsNiArMzIxOSwxMCBAQCB0cmFuc2Zvcm1JbmRleFN0bXQoT2lkIHJlbGlk LCBJbmRleFN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nKQogCQl9CiAJfQog CisJLyogdGFrZSBjYXJlIG9mIHRoZSBwZXJpb2QgKi8KKwlpZiAoc3RtdC0+cGVyaW9kKQor CQlzdG10LT5wZXJpb2QtPm9pZCA9IGdldF9wZXJpb2Rfb2lkKHJlbGlkLCBzdG10LT5wZXJp b2QtPnBlcmlvZG5hbWUsIGZhbHNlKTsKKwogCS8qCiAJICogQ2hlY2sgdGhhdCBvbmx5IHRo ZSBiYXNlIHJlbCBpcyBtZW50aW9uZWQuICAoVGhpcyBzaG91bGQgYmUgZGVhZCBjb2RlCiAJ ICogbm93IHRoYXQgYWRkX21pc3NpbmdfZnJvbSBpcyBoaXN0b3J5LikKQEAgLTM1MzcsNiAr MzY4MCw3IEBAIHRyYW5zZm9ybUFsdGVyVGFibGVTdG10KE9pZCByZWxpZCwgQWx0ZXJUYWJs ZVN0bXQgKnN0bXQsCiAJY3h0LmluaFJlbGF0aW9ucyA9IE5JTDsKIAljeHQuaXNhbHRlciA9 IHRydWU7CiAJY3h0LmNvbHVtbnMgPSBOSUw7CisJY3h0LnBlcmlvZHMgPSBOSUw7CiAJY3h0 LmNrY29uc3RyYWludHMgPSBOSUw7CiAJY3h0Lm5uY29uc3RyYWludHMgPSBOSUw7CiAJY3h0 LmZrY29uc3RyYWludHMgPSBOSUw7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvTWFrZWZpbGUKaW5kZXggMzVl OGMwMWFhYjkuLjg5ZmExN2IxZTk0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L01ha2VmaWxlCkBAIC03 OCw2ICs3OCw3IEBAIE9CSlMgPSBcCiAJb3JhY2xlX2NvbXBhdC5vIFwKIAlvcmRlcmVkc2V0 YWdncy5vIFwKIAlwYXJ0aXRpb25mdW5jcy5vIFwKKwlwZXJpb2QubyBcCiAJcGdfbG9jYWxl Lm8gXAogCXBnX2xvY2FsZV9idWlsdGluLm8gXAogCXBnX2xvY2FsZV9pY3UubyBcCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvcGVyaW9kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAuLjBlZDQzMDRlMTZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BlcmlvZC5jCkBAIC0wLDAgKzEsNTYgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICoKKyAqIHBlcmlvZC5jCisgKgkgIEZ1bmN0aW9ucyB0byBzdXBwb3J0IHBlcmlvZHMuCisg KgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FM IEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKgor ICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3BlcmlvZC5j CisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpbmNsdWRlICJwb3N0Z3Jlcy5o IgorCisjaW5jbHVkZSAiZXhlY3V0b3IvdHVwdGFibGUuaCIKKyNpbmNsdWRlICJmbWdyLmgi CisjaW5jbHVkZSAibm9kZXMvcHJpbW5vZGVzLmgiCisjaW5jbHVkZSAidXRpbHMvZm1ncnBy b3Rvcy5oIgorI2luY2x1ZGUgInV0aWxzL3BlcmlvZC5oIgorI2luY2x1ZGUgInV0aWxzL3Jh bmdldHlwZXMuaCIKKworRGF0dW0gcGVyaW9kX3RvX3JhbmdlKFR1cGxlVGFibGVTbG90ICpz bG90LCBpbnQgc3RhcnRhdHRubywgaW50IGVuZGF0dG5vLCBPaWQgcmFuZ2V0eXBlKQorewor CURhdHVtIHN0YXJ0dmFsdWU7CisJRGF0dW0gZW5kdmFsdWU7CisJRGF0dW0gcmVzdWx0Owor CWJvb2wJc3RhcnRpc251bGw7CisJYm9vbAllbmRpc251bGw7CisJTE9DQUxfRkNJTkZPKGZj aW5mbywgMik7CisJRm1nckluZm8JZmxpbmZvOworCUZ1bmNFeHByICAgKmY7CisKKwlJbml0 RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgJmZsaW5mbywgMiwgSW52YWxpZE9pZCwg TlVMTCwgTlVMTCk7CisJZiA9IG1ha2VOb2RlKEZ1bmNFeHByKTsKKwlmLT5mdW5jcmVzdWx0 dHlwZSA9IHJhbmdldHlwZTsKKwlmbGluZm8uZm5fZXhwciA9IChOb2RlICopIGY7CisJZmxp bmZvLmZuX2V4dHJhID0gTlVMTDsKKworCS8qIGNvbXB1dGUgb2xkdmFsdWUgKi8KKwlzdGFy dHZhbHVlID0gc2xvdF9nZXRhdHRyKHNsb3QsIHN0YXJ0YXR0bm8sICZzdGFydGlzbnVsbCk7 CisJZW5kdmFsdWUgPSBzbG90X2dldGF0dHIoc2xvdCwgZW5kYXR0bm8sICZlbmRpc251bGwp OworCisJZmNpbmZvLT5hcmdzWzBdLnZhbHVlID0gc3RhcnR2YWx1ZTsKKwlmY2luZm8tPmFy Z3NbMF0uaXNudWxsID0gc3RhcnRpc251bGw7CisJZmNpbmZvLT5hcmdzWzFdLnZhbHVlID0g ZW5kdmFsdWU7CisJZmNpbmZvLT5hcmdzWzFdLmlzbnVsbCA9IGVuZGlzbnVsbDsKKworCXJl c3VsdCA9IHJhbmdlX2NvbnN0cnVjdG9yMihmY2luZm8pOworCWlmIChmY2luZm8tPmlzbnVs bCkKKwkJZWxvZyhFUlJPUiwgImZ1bmN0aW9uICV1IHJldHVybmVkIE5VTEwiLCBmbGluZm8u Zm5fb2lkKTsKKworCXJldHVybiByZXN1bHQ7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xz eXNjYWNoZS5jCmluZGV4IGI2MTlhODJiNWNkLi4xOWQ2MDI2YzMwZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJj YXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BjbGFzcy5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfcHVibGljYXRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Jhbmdl LmgiCkBAIC05OTUsNiArOTk2LDY4IEBAIGdldF9hdHRvcHRpb25zKE9pZCByZWxpZCwgaW50 MTYgYXR0bnVtKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCQkJCS0tLS0tLS0tLS0gUEdf UEVSSU9EIENBQ0hFIC0tLS0tLS0tLS0JCQkJICovCisKKy8qCisgKiBnZXRfcGVyaW9kbmFt ZSAtIGdpdmVuIGl0cyBPSUQsIGxvb2sgdXAgYSBwZXJpb2QKKyAqCisgKiBJZiBtaXNzaW5n X29rIGlzIGZhbHNlLCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgcGVyaW9kIGlzIG5vdCBmb3Vu ZC4KKyAqIElmIHRydWUsIGp1c3QgcmV0dXJuIEludmFsaWRPaWQuCisgKi8KK2NoYXIgKgor Z2V0X3BlcmlvZG5hbWUoT2lkIHBlcmlvZGlkLCBib29sIG1pc3Npbmdfb2spCit7CisJSGVh cFR1cGxlCXRwOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoUEVSSU9ET0lELAorCQkJCQkJ IE9iamVjdElkR2V0RGF0dW0ocGVyaW9kaWQpKTsKKwlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0 cCkpCisJeworCQlGb3JtX3BnX3BlcmlvZCBwZXJpb2RfdHVwID0gKEZvcm1fcGdfcGVyaW9k KSBHRVRTVFJVQ1QodHApOworCQljaGFyCSAgICpyZXN1bHQ7CisKKwkJcmVzdWx0ID0gcHN0 cmR1cChOYW1lU3RyKHBlcmlvZF90dXAtPnBlcm5hbWUpKTsKKwkJUmVsZWFzZVN5c0NhY2hl KHRwKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlpZiAoIW1pc3Npbmdfb2spCisJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwZXJpb2QgJWQiLAorCQkJIHBl cmlvZGlkKTsKKwlyZXR1cm4gTlVMTDsKK30KKworLyoKKyAqIGdldF9wZXJpb2Rfb2lkIC0g Z2V0cyBpdHMgcmVsYXRpb24gYW5kIG5hbWUsIGxvb2sgdXAgYSBwZXJpb2QKKyAqCisgKiBJ ZiBtaXNzaW5nX29rIGlzIGZhbHNlLCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgY2FzdCBpcyBu b3QgZm91bmQuICBJZgorICogdHJ1ZSwganVzdCByZXR1cm4gSW52YWxpZE9pZC4KKyAqLwor T2lkCitnZXRfcGVyaW9kX29pZChPaWQgcmVsaWQsIGNvbnN0IGNoYXIgKnBlcmlvZG5hbWUs IGJvb2wgbWlzc2luZ19vaykKK3sKKwlIZWFwVHVwbGUJdHA7CisKKwl0cCA9IFNlYXJjaFN5 c0NhY2hlMihQRVJJT0ROQU1FLAorCQkJCQkJIE9iamVjdElkR2V0RGF0dW0ocmVsaWQpLAor CQkJCQkJIFBvaW50ZXJHZXREYXR1bShwZXJpb2RuYW1lKSk7CisKKwlpZiAoSGVhcFR1cGxl SXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3BlcmlvZCBwZXJpb2RfdHVwID0gKEZvcm1f cGdfcGVyaW9kKSBHRVRTVFJVQ1QodHApOworCQlPaWQgcmVzdWx0OworCisJCXJlc3VsdCA9 IHBlcmlvZF90dXAtPm9pZDsKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwkJcmV0dXJuIHJl c3VsdDsKKwl9CisKKwlpZiAoIW1pc3Npbmdfb2spCisJCWVsb2coRVJST1IsICJjYWNoZSBs b29rdXAgZmFpbGVkIGZvciBwZXJpb2QgJXMiLAorCQkJIHBlcmlvZG5hbWUpOworCXJldHVy biBJbnZhbGlkT2lkOworfQorCiAvKgkJCQktLS0tLS0tLS0tIFBHX0NBU1QgQ0FDSEUgLS0t LS0tLS0tLQkJCQkJICovCiAKIC8qCkBAIC0zNTI1LDYgKzM1ODgsMzAgQEAgZ2V0X211bHRp cmFuZ2VfcmFuZ2UoT2lkIG11bHRpcmFuZ2VPaWQpCiAJCXJldHVybiBJbnZhbGlkT2lkOwog fQogCitPaWQKK2dldF9zdWJ0eXBlX3JhbmdlKE9pZCBzdWJ0eXBlT2lkKQoreworCUNhdENM aXN0ICpjYXRsaXN0OworCU9pZAlyZXN1bHQgPSBJbnZhbGlkT2lkOworCisJY2F0bGlzdCA9 IFNlYXJjaFN5c0NhY2hlTGlzdDEoUkFOR0VTVUJUWVBFLCBPYmplY3RJZEdldERhdHVtKHN1 YnR5cGVPaWQpKTsKKworCWlmIChjYXRsaXN0LT5uX21lbWJlcnMgPT0gMSkKKwl7CisJCUhl YXBUdXBsZQl0dXBsZSA9ICZjYXRsaXN0LT5tZW1iZXJzWzBdLT50dXBsZTsKKwkJRm9ybV9w Z19yYW5nZSBybmd0dXAgPSAoRm9ybV9wZ19yYW5nZSkgR0VUU1RSVUNUKHR1cGxlKTsKKwkJ cmVzdWx0ID0gcm5ndHVwLT5ybmd0eXBpZDsKKwkJUmVsZWFzZUNhdENhY2hlTGlzdChjYXRs aXN0KTsKKwl9CisJZWxzZSBpZiAoY2F0bGlzdC0+bl9tZW1iZXJzID4gMSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOREVURVJNSU5BVEVfREFUQVRZUEUp LAorCQkJCSBlcnJtc2coImFtYmlndW91cyByYW5nZSBmb3IgdHlwZSAlcyIsCisJCQkJCQlm b3JtYXRfdHlwZV9iZShzdWJ0eXBlT2lkKSkpKTsKKworCXJldHVybiByZXN1bHQ7Cit9CisK IC8qCQkJCS0tLS0tLS0tLS0gUEdfSU5ERVggQ0FDSEUgLS0tLS0tLS0tLQkJCQkgKi8KIAog LyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRleCA3MDdhM2ZjODQ0 Yy4uYjdmMzk5MmY4NzQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBf YXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMK QEAgLTM3MDgsNiArMzcwOCw3IEBAIF9nZXRPYmplY3REZXNjcmlwdGlvbihQUUV4cEJ1ZmZl ciBidWYsIGNvbnN0IFRvY0VudHJ5ICp0ZSkKIAkJCSBzdHJjbXAodHlwZSwgIkRBVEFCQVNF IFBST1BFUlRJRVMiKSA9PSAwIHx8CiAJCQkgc3RyY21wKHR5cGUsICJERUZBVUxUIikgPT0g MCB8fAogCQkJIHN0cmNtcCh0eXBlLCAiRksgQ09OU1RSQUlOVCIpID09IDAgfHwKKwkJCSBz dHJjbXAodHlwZSwgIlBFUklPRCIpID09IDAgfHwKIAkJCSBzdHJjbXAodHlwZSwgIklOREVY IikgPT0gMCB8fAogCQkJIHN0cmNtcCh0eXBlLCAiUlVMRSIpID09IDAgfHwKIAkJCSBzdHJj bXAodHlwZSwgIlRSSUdHRVIiKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCA4ZjczYTVk Zjk1Ni4uMTNlMWEzNDNiNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNjgwMSw2ICs2ODAxLDcg QEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCWludAkJCWlf cmVsdHlwZTsKIAlpbnQJCQlpX3JlbG93bmVyOwogCWludAkJCWlfcmVsY2hlY2tzOworCWlu dAkJCWlfbnBlcmlvZDsKIAlpbnQJCQlpX3JlbGhhc2luZGV4OwogCWludAkJCWlfcmVsaGFz cnVsZXM7CiAJaW50CQkJaV9yZWxwYWdlczsKQEAgLTY4NzgsNiArNjg3OSwxNCBAQCBnZXRU YWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCWFwcGVuZFBRRXhwQnVm ZmVyU3RyKHF1ZXJ5LAogCQkJCQkJCSAiYy5yZWxoYXNvaWRzLCAiKTsKIAorCS8qIEluIFBH MTggdXB3YXJkcyB3ZSBoYXZlIFBFUklPRHMuICovCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNp b24gPj0gMTgwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkg IihTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19wZXJpb2QgV0hFUkUgcGVycmVsaWQgPSBjLm9p ZCkgQVMgbnBlcmlvZHMsICIpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVl cnksCisJCQkJCQkJICIwIEFTIG5wZXJpb2RzLCAiKTsKKwogCWlmIChmb3V0LT5yZW1vdGVW ZXJzaW9uID49IDkwMzAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJ CQkgImMucmVsaXNwb3B1bGF0ZWQsICIpOwpAQCAtNzAxNSw2ICs3MDI0LDcgQEAgZ2V0VGFi bGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCWlfcmVsdHlwZSA9IFBRZm51 bWJlcihyZXMsICJyZWx0eXBlIik7CiAJaV9yZWxvd25lciA9IFBRZm51bWJlcihyZXMsICJy ZWxvd25lciIpOwogCWlfcmVsY2hlY2tzID0gUFFmbnVtYmVyKHJlcywgInJlbGNoZWNrcyIp OworCWlfbnBlcmlvZCA9IFBRZm51bWJlcihyZXMsICJucGVyaW9kcyIpOwogCWlfcmVsaGFz aW5kZXggPSBQUWZudW1iZXIocmVzLCAicmVsaGFzaW5kZXgiKTsKIAlpX3JlbGhhc3J1bGVz ID0gUFFmbnVtYmVyKHJlcywgInJlbGhhc3J1bGVzIik7CiAJaV9yZWxwYWdlcyA9IFBRZm51 bWJlcihyZXMsICJyZWxwYWdlcyIpOwpAQCAtNzA5OCw2ICs3MTA4LDcgQEAgZ2V0VGFibGVz KEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQl9CiAJCXRibGluZm9baV0ucmVs dGFibGVzcGFjZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9yZWx0YWJsZXNw YWNlKSk7CiAJCXRibGluZm9baV0uaGFzb2lkcyA9IChzdHJjbXAoUFFnZXR2YWx1ZShyZXMs IGksIGlfcmVsaGFzb2lkcyksICJ0IikgPT0gMCk7CisJCXRibGluZm9baV0ubnBlcmlvZCA9 IGF0b2koUFFnZXR2YWx1ZShyZXMsIGksIGlfbnBlcmlvZCkpOwogCQl0YmxpbmZvW2ldLmhh c3RyaWdnZXJzID0gKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9yZWxoYXN0cmlnZ2Vy cyksICJ0IikgPT0gMCk7CiAJCXRibGluZm9baV0ucmVscGVyc2lzdGVuY2UgPSAqKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3JlbHBlcnNpc3RlbmNlKSk7CiAJCXRibGluZm9baV0ucmVsaXNw b3B1bGF0ZWQgPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbGlzcG9wdWxhdGVk KSwgInQiKSA9PSAwKTsKQEAgLTg3MzMsNyArODc0NCw3IEBAIGdldFRyYW5zZm9ybXMoQXJj aGl2ZSAqZm91dCkKIC8qCiAgKiBnZXRUYWJsZUF0dHJzIC0KICAqCSAgZm9yIGVhY2ggaW50 ZXJlc3RpbmcgdGFibGUsIHJlYWQgaW5mbyBhYm91dCBpdHMgYXR0cmlidXRlcwotICoJICAo bmFtZXMsIHR5cGVzLCBkZWZhdWx0IHZhbHVlcywgQ0hFQ0sgY29uc3RyYWludHMsIGV0YykK KyAqCSAgKG5hbWVzLCB0eXBlcywgZGVmYXVsdCB2YWx1ZXMsIENIRUNLIGNvbnN0cmFpbnRz LCBQRVJJT0RzLCBldGMpCiAgKgogICoJbW9kaWZpZXMgdGJsaW5mbwogICovCkBAIC04Nzg1 LDYgKzg3OTYsOCBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAq dGJsaW5mbywgaW50IG51bVRhYmxlcykKIAlmb3IgKGludCBpID0gMDsgaSA8IG51bVRhYmxl czsgaSsrKQogCXsKIAkJVGFibGVJbmZvICAqdGJpbmZvID0gJnRibGluZm9baV07CisJCWlu dAkJCW5kdW1wYWJsZWNoZWNrczsJLyogbnVtYmVyIG9mIENIRUNLIGNvbnN0cmFpbnRzIHRo YXQgZG8KKwkJCQkJCQkJCQkgICBub3QgYmVsb25nIHRvIGEgcGVyaW9kICovCiAKIAkJLyog RG9uJ3QgYm90aGVyIHRvIGNvbGxlY3QgaW5mbyBmb3Igc2VxdWVuY2VzICovCiAJCWlmICh0 YmluZm8tPnJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSkKQEAgLTg3OTksNyArODgxMiw4 IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBp bnQgbnVtVGFibGVzKQogCQkJYXBwZW5kUFFFeHBCdWZmZXJDaGFyKHRibG9pZHMsICcsJyk7 CiAJCWFwcGVuZFBRRXhwQnVmZmVyKHRibG9pZHMsICIldSIsIHRiaW5mby0+ZG9iai5jYXRJ ZC5vaWQpOwogCi0JCWlmICh0YmluZm8tPm5jaGVjayA+IDApCisJCW5kdW1wYWJsZWNoZWNr cyA9IHRiaW5mby0+bmNoZWNrIC0gdGJpbmZvLT5ucGVyaW9kOworCQlpZiAobmR1bXBhYmxl Y2hlY2tzID4gMCkKIAkJewogCQkJLyogQWxzbyBtYWtlIGEgbGlzdCBvZiB0aGUgb25lcyB3 aXRoIGNoZWNrIGNvbnN0cmFpbnRzICovCiAJCQlpZiAoY2hlY2tvaWRzLT5sZW4gPiAxKSAv KiBkbyB3ZSBoYXZlIG1vcmUgdGhhbiB0aGUgJ3snPyAqLwpAQCAtOTIwNSwxNSArOTIxOSwz NiBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywg aW50IG51bVRhYmxlcykKIAkJcGdfbG9nX2luZm8oImZpbmRpbmcgdGFibGUgY2hlY2sgY29u c3RyYWludHMiKTsKIAogCQlyZXNldFBRRXhwQnVmZmVyKHEpOwotCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxLAotCQkJCQkJICAiU0VMRUNUIGMudGFibGVvaWQsIGMub2lkLCBjb25yZWxpZCwg Y29ubmFtZSwgIgotCQkJCQkJICAicGdfY2F0YWxvZy5wZ19nZXRfY29uc3RyYWludGRlZihj Lm9pZCkgQVMgY29uc3JjLCAiCi0JCQkJCQkgICJjb25pc2xvY2FsLCBjb252YWxpZGF0ZWQg IgotCQkJCQkJICAiRlJPTSB1bm5lc3QoJyVzJzo6cGdfY2F0YWxvZy5vaWRbXSkgQVMgc3Jj KHRibG9pZClcbiIKLQkJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50IGMg T04gKHNyYy50YmxvaWQgPSBjLmNvbnJlbGlkKVxuIgotCQkJCQkJICAiV0hFUkUgY29udHlw ZSA9ICdjJyAiCi0JCQkJCQkgICJPUkRFUiBCWSBjLmNvbnJlbGlkLCBjLmNvbm5hbWUiLAot CQkJCQkJICBjaGVja29pZHMtPmRhdGEpOworCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+ PSAxODAwMDApCisJCXsKKwkJCS8qCisJCQkgKiBQRVJJT0RzIHdlcmUgYWRkZWQgaW4gdjE4 IGFuZCB3ZSBkb24ndCBkdW1wIENIRUNLCisJCQkgKiBjb25zdHJhaW50cyBmb3IgdGhlbS4K KwkJCSAqLworCQkJYXBwZW5kUFFFeHBCdWZmZXIocSwKKwkJCQkJCQkgICJTRUxFQ1QgYy50 YWJsZW9pZCwgYy5vaWQsIGNvbnJlbGlkLCBjb25uYW1lLCAiCisJCQkJCQkJICAicGdfY2F0 YWxvZy5wZ19nZXRfY29uc3RyYWludGRlZihjLm9pZCkgQVMgY29uc3JjLCAiCisJCQkJCQkJ ICAiY29uaXNsb2NhbCwgY29udmFsaWRhdGVkICIKKwkJCQkJCQkgICJGUk9NIHVubmVzdCgn JXMnOjpwZ19jYXRhbG9nLm9pZFtdKSBBUyBzcmModGJsb2lkKVxuIgorCQkJCQkJCSAgIkpP SU4gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50IGMgT04gKHNyYy50YmxvaWQgPSBjLmNvbnJl bGlkKVxuIgorCQkJCQkJCSAgIldIRVJFIGNvbnR5cGUgPSAnYycgIgorCQkJCQkJCSAgIiAg IEFORCBOT1QgRVhJU1RTIChTRUxFQ1QgRlJPTSBwZ19wZXJpb2QgIgorCQkJCQkJCSAgIiAg ICAgICAgICAgICAgICAgICBXSEVSRSAocGVycmVsaWQsIHBlcmNvbnN0cmFpbnQpID0gKGNv bnJlbGlkLCBjLm9pZCkpICIKKwkJCQkJCQkgICJPUkRFUiBCWSBjLmNvbnJlbGlkLCBjLmNv bm5hbWUiLAorCQkJCQkJCSAgY2hlY2tvaWRzLT5kYXRhKTsKKwkJfQorCQllbHNlCisJCXsK KwkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsCisJCQkJCQkJICAiU0VMRUNUIGMudGFibGVvaWQs IGMub2lkLCBjb25yZWxpZCwgY29ubmFtZSwgIgorCQkJCQkJCSAgInBnX2NhdGFsb2cucGdf Z2V0X2NvbnN0cmFpbnRkZWYoYy5vaWQpIEFTIGNvbnNyYywgIgorCQkJCQkJCSAgImNvbmlz bG9jYWwsIGNvbnZhbGlkYXRlZCAiCisJCQkJCQkJICAiRlJPTSB1bm5lc3QoJyVzJzo6cGdf Y2F0YWxvZy5vaWRbXSkgQVMgc3JjKHRibG9pZClcbiIKKwkJCQkJCQkgICJKT0lOIHBnX2Nh dGFsb2cucGdfY29uc3RyYWludCBjIE9OIChzcmMudGJsb2lkID0gYy5jb25yZWxpZClcbiIK KwkJCQkJCQkgICJXSEVSRSBjb250eXBlID0gJ2MnICIKKwkJCQkJCQkgICJPUkRFUiBCWSBj LmNvbnJlbGlkLCBjLmNvbm5hbWUiLAorCQkJCQkJCSAgY2hlY2tvaWRzLT5kYXRhKTsKKwkJ fQogCiAJCXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxLT5kYXRhLCBQR1JFU19UVVBM RVNfT0spOwogCkBAIC05MjM1LDYgKzkyNzAsNyBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUg KmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5mbywgaW50IG51bVRhYmxlcykKIAkJCU9pZAkJCWNv bnJlbGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBqLCBpX2NvbnJlbGlkKSk7CiAJCQlU YWJsZUluZm8gICp0YmluZm8gPSBOVUxMOwogCQkJaW50CQkJbnVtY29uczsKKwkJCWludAkJ CW5kdW1wYWJsZWNoZWNrczsKIAogCQkJLyogQ291bnQgcm93cyBmb3IgdGhpcyB0YWJsZSAq LwogCQkJZm9yIChudW1jb25zID0gMTsgbnVtY29ucyA8IG51bUNvbnN0cnMgLSBqOyBudW1j b25zKyspCkBAIC05MjU0LDEyICs5MjkwLDEzIEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAq Zm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQkJaWYgKGN1cnRi bGluZHggPj0gbnVtVGFibGVzKQogCQkJCXBnX2ZhdGFsKCJ1bnJlY29nbml6ZWQgdGFibGUg T0lEICV1IiwgY29ucmVsaWQpOwogCi0JCQlpZiAobnVtY29ucyAhPSB0YmluZm8tPm5jaGVj aykKKwkJCW5kdW1wYWJsZWNoZWNrcyA9IHRiaW5mby0+bmNoZWNrIC0gdGJpbmZvLT5ucGVy aW9kOworCQkJaWYgKG51bWNvbnMgIT0gbmR1bXBhYmxlY2hlY2tzKQogCQkJewogCQkJCXBn X2xvZ19lcnJvcihuZ2V0dGV4dCgiZXhwZWN0ZWQgJWQgY2hlY2sgY29uc3RyYWludCBvbiB0 YWJsZSBcIiVzXCIgYnV0IGZvdW5kICVkIiwKIAkJCQkJCQkJCSAgImV4cGVjdGVkICVkIGNo ZWNrIGNvbnN0cmFpbnRzIG9uIHRhYmxlIFwiJXNcIiBidXQgZm91bmQgJWQiLAotCQkJCQkJ CQkJICB0YmluZm8tPm5jaGVjayksCi0JCQkJCQkJIHRiaW5mby0+bmNoZWNrLCB0YmluZm8t PmRvYmoubmFtZSwgbnVtY29ucyk7CisJCQkJCQkJCQkgIG5kdW1wYWJsZWNoZWNrcyksCisJ CQkJCQkJIG5kdW1wYWJsZWNoZWNrcywgdGJpbmZvLT5kb2JqLm5hbWUsIG51bWNvbnMpOwog CQkJCXBnX2xvZ19lcnJvcl9oaW50KCJUaGUgc3lzdGVtIGNhdGFsb2dzIG1pZ2h0IGJlIGNv cnJ1cHRlZC4iKTsKIAkJCQlleGl0X25pY2VseSgxKTsKIAkJCX0KQEAgLTkzMTgsNiArOTM1 NSw4MCBAQCBnZXRUYWJsZUF0dHJzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyAqdGJsaW5m bywgaW50IG51bVRhYmxlcykKIAkJUFFjbGVhcihyZXMpOwogCX0KIAorCWZvciAoaW50IGkg PSAwOyBpIDwgbnVtVGFibGVzOyBpKyspCisJeworCQlUYWJsZUluZm8gICp0YmluZm8gPSAm dGJsaW5mb1tpXTsKKworCQkvKgorCQkgKiBHZXQgaW5mbyBhYm91dCBQRVJJT0QgZGVmaW5p dGlvbnMKKwkJICovCisJCWlmICh0YmluZm8tPm5wZXJpb2QgPiAwKQorCQl7CisJCQlQZXJp b2RJbmZvICpwZXJpb2RzOworCQkJaW50CQkJbnVtUGVyaW9kczsKKwkJCWludAkJCWo7CisK KwkJCS8qIFdlIHNob3VsZG4ndCBoYXZlIGFueSBwZXJpb2RzIGJlZm9yZSB2MTggKi8KKwkJ CUFzc2VydChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE4MDAwMCk7CisKKwkJCXBnX2xvZ19p bmZvKCJmaW5kaW5nIHBlcmlvZHMgZm9yIHRhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQl0Ymlu Zm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJCQl0YmluZm8tPmRvYmoubmFt ZSk7CisKKwkJCXJlc2V0UFFFeHBCdWZmZXIocSk7CisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihx LAorCQkJCSJTRUxFQ1QgcC50YWJsZW9pZCwgcC5vaWQsIHAucGVybmFtZSwgIgorCQkJCSIg ICAgICAgc2EuYXR0bmFtZSBBUyBwZXJzdGFydCwgZWEuYXR0bmFtZSBBUyBwZXJlbmQsICIK KwkJCQkiICAgICAgIHIudHlwbmFtZSBBUyBybmd0eXBlLCAiCisJCQkJIiAgICAgICBjLmNv bm5hbWUgQVMgY29ubmFtZSAiCisJCQkJIkZST00gcGdfY2F0YWxvZy5wZ19wZXJpb2QgQVMg cCAiCisJCQkJIkpPSU4gcGdfY2F0YWxvZy5wZ19hdHRyaWJ1dGUgQVMgc2EgT04gKHNhLmF0 dHJlbGlkLCBzYS5hdHRudW0pID0gKHAucGVycmVsaWQsIHAucGVyc3RhcnQpICIKKwkJCQki Sk9JTiBwZ19jYXRhbG9nLnBnX2F0dHJpYnV0ZSBBUyBlYSBPTiAoZWEuYXR0cmVsaWQsIGVh LmF0dG51bSkgPSAocC5wZXJyZWxpZCwgcC5wZXJlbmQpICIKKwkJCQkiSk9JTiBwZ19jYXRh bG9nLnBnX2F0dHJpYnV0ZSBBUyByYSBPTiAocmEuYXR0cmVsaWQsIHJhLmF0dG51bSkgPSAo cC5wZXJyZWxpZCwgcC5wZXJyYW5nZSkgIgorCQkJCSJKT0lOIHBnX2NhdGFsb2cucGdfdHlw ZSBBUyByIE9OIHIub2lkID0gcmEuYXR0dHlwaWQgIgorCQkJCSJKT0lOIHBnX2NhdGFsb2cu cGdfY29uc3RyYWludCBBUyBjIE9OIGMub2lkID0gcC5wZXJjb25zdHJhaW50ICIKKwkJCQki V0hFUkUgcC5wZXJyZWxpZCA9ICcldSc6OnBnX2NhdGFsb2cub2lkICIKKwkJCQkiT1JERVIg QlkgcC5wZXJuYW1lIiwKKwkJCQl0YmluZm8tPmRvYmouY2F0SWQub2lkKTsKKworCQkJcmVz ID0gRXhlY3V0ZVNxbFF1ZXJ5KGZvdXQsIHEtPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisK KwkJCS8qCisJCQkgKiBJZiB3ZSBkaWRuJ3QgZ2V0IHRoZSBudW1iZXIgb2Ygcm93cyB3ZSB0 aG91Z2h0IHdlIHdlcmUgZ29pbmcgdG8sCisJCQkgKiB0aGVuIHRob3NlIEpPSU5zIGRpZG4n dCB3b3JrLgorCQkJICovCisJCQludW1QZXJpb2RzID0gUFFudHVwbGVzKHJlcyk7CisJCQlp ZiAobnVtUGVyaW9kcyAhPSB0YmluZm8tPm5wZXJpb2QpCisJCQl7CisJCQkJcGdfbG9nX2lu Zm8obmdldHRleHQoImV4cGVjdGVkICVkIHBlcmlvZCBvbiB0YWJsZSBcIiVzXCIgYnV0IGZv dW5kICVkIiwKKwkJCQkJCQkJCSAiZXhwZWN0ZWQgJWQgcGVyaW9kcyBvbiB0YWJsZSBcIiVz XCIgYnV0IGZvdW5kICVkIiwKKwkJCQkJCQkJCSB0YmluZm8tPm5wZXJpb2QpLAorCQkJCQkJ CXRiaW5mby0+bnBlcmlvZCwgdGJpbmZvLT5kb2JqLm5hbWUsIG51bVBlcmlvZHMpOworCQkJ CXBnX2xvZ19pbmZvKCIoVGhlIHN5c3RlbSBjYXRhbG9ncyBtaWdodCBiZSBjb3JydXB0ZWQu KSIpOworCQkJCWV4aXRfbmljZWx5KDEpOworCQkJfQorCisJCQlwZXJpb2RzID0gKFBlcmlv ZEluZm8gKikgcGdfbWFsbG9jKG51bVBlcmlvZHMgKiBzaXplb2YoUGVyaW9kSW5mbykpOwor CQkJdGJpbmZvLT5wZXJpb2RzID0gcGVyaW9kczsKKworCQkJZm9yIChqID0gMDsgaiA8IG51 bVBlcmlvZHM7IGorKykKKwkJCXsKKwkJCQlwZXJpb2RzW2pdLmRvYmoub2JqVHlwZSA9IERP X1BFUklPRDsKKwkJCQlwZXJpb2RzW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPSBhdG9vaWQo UFFnZXR2YWx1ZShyZXMsIGosIDApKTsKKwkJCQlwZXJpb2RzW2pdLmRvYmouY2F0SWQub2lk ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBqLCAxKSk7CisJCQkJQXNzaWduRHVtcElkKCZw ZXJpb2RzW2pdLmRvYmopOworCQkJCXBlcmlvZHNbal0uZG9iai5uYW1lID0gcGdfc3RyZHVw KFBRZ2V0dmFsdWUocmVzLCBqLCAyKSk7CisJCQkJcGVyaW9kc1tqXS5kb2JqLm5hbWVzcGFj ZSA9IHRiaW5mby0+ZG9iai5uYW1lc3BhY2U7CisJCQkJcGVyaW9kc1tqXS5wZXJ0YWJsZSA9 IHRiaW5mbzsKKwkJCQlwZXJpb2RzW2pdLnBlcnN0YXJ0ID0gcGdfc3RyZHVwKFBRZ2V0dmFs dWUocmVzLCBqLCAzKSk7CisJCQkJcGVyaW9kc1tqXS5wZXJlbmQgPSBwZ19zdHJkdXAoUFFn ZXR2YWx1ZShyZXMsIGosIDQpKTsKKwkJCQlwZXJpb2RzW2pdLnJuZ3R5cGUgPSBwZ19zdHJk dXAoUFFnZXR2YWx1ZShyZXMsIGosIDUpKTsKKwkJCQlwZXJpb2RzW2pdLmNvbm5hbWUgPSBw Z19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGosIDYpKTsKKwkJCX0KKwkJCVBRY2xlYXIocmVz KTsKKwkJfQorCX0KKwogCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxKTsKIAlkZXN0cm95UFFFeHBC dWZmZXIodGJsb2lkcyk7CiAJZGVzdHJveVBRRXhwQnVmZmVyKGNoZWNrb2lkcyk7CkBAIC0x MDY1MCw2ICsxMDc2MSw4IEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBE dW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBET19GS19DT05TVFJBSU5UOgogCQkJZHVt cENvbnN0cmFpbnQoZm91dCwgKGNvbnN0IENvbnN0cmFpbnRJbmZvICopIGRvYmopOwogCQkJ YnJlYWs7CisJCWNhc2UgRE9fUEVSSU9EOgorCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFJPQ0xB Tkc6CiAJCQlkdW1wUHJvY0xhbmcoZm91dCwgKGNvbnN0IFByb2NMYW5nSW5mbyAqKSBkb2Jq KTsKIAkJCWJyZWFrOwpAQCAtMTYyNTYsNiArMTYzNjksMzMgQEAgZHVtcFRhYmxlU2NoZW1h KEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJCX0KIAkJCX0K IAorCQkJLyoKKwkJCSAqIEFkZCBub24taW5oZXJpdGVkIFBFUklPRCBkZWZpbml0aW9ucywg aWYgYW55LgorCQkJICovCisJCQlmb3IgKGogPSAwOyBqIDwgdGJpbmZvLT5ucGVyaW9kOyBq KyspCisJCQl7CisJCQkJUGVyaW9kSW5mbyAqcGVyaW9kID0gJih0YmluZm8tPnBlcmlvZHNb al0pOworCisJCQkJY2hhcgkgICAqbmFtZSA9IHBnX3N0cmR1cChmbXRJZChwZXJpb2QtPmRv YmoubmFtZSkpOworCQkJCWNoYXIJICAgKnN0YXJ0ID0gcGdfc3RyZHVwKGZtdElkKHBlcmlv ZC0+cGVyc3RhcnQpKTsKKwkJCQljaGFyCSAgICplbmQgPSBwZ19zdHJkdXAoZm10SWQocGVy aW9kLT5wZXJlbmQpKTsKKwkJCQljaGFyCSAgICpybmd0eXBlID0gcGdfc3RyZHVwKGZtdElk KHBlcmlvZC0+cm5ndHlwZSkpOworCQkJCWNoYXIJICAgKmNvbm5hbWUgPSBwZ19zdHJkdXAo Zm10SWQocGVyaW9kLT5jb25uYW1lKSk7CisKKwkJCQlpZiAoYWN0dWFsX2F0dHMgPT0gMCkK KwkJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIiAoXG4gICAgIik7CisJCQkJZWxzZQor CQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiLFxuICAgICIpOworCisJCQkJLyogQWx3 YXlzIHNheSBjb2xleGlzdHMgc28gd2UgY2FuIGp1c3QgcHJpbnQgdGhlIEdFTkVSQVRFRCBj b2x1bW4gKi8KKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxLCAiUEVSSU9EIEZPUiAlcyAoJXMs ICVzKSAiCisJCQkJCQkiV0lUSCAocmFuZ2V0eXBlID0gJXMsIGNoZWNrX2NvbnN0cmFpbnRf bmFtZSA9ICVzLCBjb2xleGlzdHMgPSB0cnVlKSIsCisJCQkJCQkJCSAgbmFtZSwgc3RhcnQs IGVuZCwKKwkJCQkJCQkJICBybmd0eXBlLCBjb25uYW1lKTsKKworCQkJCWFjdHVhbF9hdHRz Kys7CisJCQl9CisKIAkJCS8qCiAJCQkgKiBBZGQgbm9uLWluaGVyaXRlZCBDSEVDSyBjb25z dHJhaW50cywgaWYgYW55LgogCQkJICoKQEAgLTE2MjY0LDcgKzE2NDA0LDcgQEAgZHVtcFRh YmxlU2NoZW1hKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJ ICogUEFSVElUSU9OIHRoYXQgd2UnbGwgZW1pdCBsYXRlciBleHBlY3RzIHRoZSBjb25zdHJh aW50IHRvIGJlCiAJCQkgKiB0aGVyZS4gIChObyBuZWVkIHRvIGZpeCBjb25pc2xvY2FsOiBB VFRBQ0ggUEFSVElUSU9OIGRvZXMgdGhhdCkKIAkJCSAqLwotCQkJZm9yIChqID0gMDsgaiA8 IHRiaW5mby0+bmNoZWNrOyBqKyspCisJCQlmb3IgKGogPSAwOyBqIDwgdGJpbmZvLT5uY2hl Y2sgLSB0YmluZm8tPm5wZXJpb2Q7IGorKykKIAkJCXsKIAkJCQlDb25zdHJhaW50SW5mbyAq Y29uc3RyID0gJih0YmluZm8tPmNoZWNrZXhwcnNbal0pOwogCkBAIC0xNjU3Niw3ICsxNjcx Niw3IEBAIGR1bXBUYWJsZVNjaGVtYShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8g KnRiaW5mbykKIAkJCSAqLwogCQkJcmVzZXRQUUV4cEJ1ZmZlcihleHRyYSk7CiAJCQlmaXJz dGl0ZW0gPSB0cnVlOwotCQkJZm9yIChrID0gMDsgayA8IHRiaW5mby0+bmNoZWNrOyBrKysp CisJCQlmb3IgKGsgPSAwOyBrIDwgdGJpbmZvLT5uY2hlY2sgLSB0YmluZm8tPm5wZXJpb2Q7 IGsrKykKIAkJCXsKIAkJCQlDb25zdHJhaW50SW5mbyAqY29uc3RyID0gJih0YmluZm8tPmNo ZWNrZXhwcnNba10pOwogCkBAIC0xNjg3MCw3ICsxNzAxMCw3IEBAIGR1bXBUYWJsZVNjaGVt YShBcmNoaXZlICpmb3V0LCBjb25zdCBUYWJsZUluZm8gKnRiaW5mbykKIAkJZHVtcFRhYmxl U2VjTGFiZWwoZm91dCwgdGJpbmZvLCByZWx0eXBlbmFtZSk7CiAKIAkvKiBEdW1wIGNvbW1l bnRzIG9uIGlubGluZWQgdGFibGUgY29uc3RyYWludHMgKi8KLQlmb3IgKGogPSAwOyBqIDwg dGJpbmZvLT5uY2hlY2s7IGorKykKKwlmb3IgKGogPSAwOyBqIDwgdGJpbmZvLT5uY2hlY2sg LSB0YmluZm8tPm5wZXJpb2Q7IGorKykKIAl7CiAJCUNvbnN0cmFpbnRJbmZvICpjb25zdHIg PSAmKHRiaW5mby0+Y2hlY2tleHByc1tqXSk7CiAKQEAgLTE4OTQzLDYgKzE5MDgzLDcgQEAg YWRkQm91bmRhcnlEZXBlbmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51 bU9ianMsCiAJCQljYXNlIERPX1RSSUdHRVI6CiAJCQljYXNlIERPX0VWRU5UX1RSSUdHRVI6 CiAJCQljYXNlIERPX0RFRkFVTFRfQUNMOgorCQkJY2FzZSBET19QRVJJT0Q6CiAJCQljYXNl IERPX1BPTElDWToKIAkJCWNhc2UgRE9fUFVCTElDQVRJT046CiAJCQljYXNlIERPX1BVQkxJ Q0FUSU9OX1JFTDoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGY2MmI1NjRlZDFiLi5hM2FlNTE1ZTgy NiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCkBAIC01OSw2ICs1OSw3IEBAIHR5cGVkZWYgZW51bQogCURP X1RSSUdHRVIsCiAJRE9fQ09OU1RSQUlOVCwKIAlET19GS19DT05TVFJBSU5ULAkJCS8qIHNl ZSBub3RlIGZvciBDb25zdHJhaW50SW5mbyAqLworCURPX1BFUklPRCwKIAlET19QUk9DTEFO RywKIAlET19DQVNULAogCURPX1RBQkxFX0RBVEEsCkBAIC0zMDksMTIgKzMxMCwxNCBAQCB0 eXBlZGVmIHN0cnVjdCBfdGFibGVJbmZvCiAJYm9vbAkJcm93c2VjOwkJCS8qIGlzIHJvdyBz ZWN1cml0eSBlbmFibGVkPyAqLwogCWJvb2wJCWZvcmNlcm93c2VjOwkvKiBpcyByb3cgc2Vj dXJpdHkgZm9yY2VkPyAqLwogCWJvb2wJCWhhc29pZHM7CQkvKiBkb2VzIGl0IGhhdmUgT0lE cz8gKi8KKwlib29sCQloYXNwZXJpb2RzOwkJLyogZG9lcyBpdCBoYXZlIGFueSBwZXJpb2Rz PyAqLwogCXVpbnQzMgkJZnJvemVueGlkOwkJLyogdGFibGUncyByZWxmcm96ZW54aWQgKi8K IAl1aW50MzIJCW1pbm14aWQ7CQkvKiB0YWJsZSdzIHJlbG1pbm14aWQgKi8KIAlPaWQJCQl0 b2FzdF9vaWQ7CQkvKiB0b2FzdCB0YWJsZSdzIE9JRCwgb3IgMCBpZiBub25lICovCiAJdWlu dDMyCQl0b2FzdF9mcm96ZW54aWQ7CS8qIHRvYXN0IHRhYmxlJ3MgcmVsZnJvemVueGlkLCBp ZiBhbnkgKi8KIAl1aW50MzIJCXRvYXN0X21pbm14aWQ7CS8qIHRvYXN0IHRhYmxlJ3MgcmVs bWlubXhpZCAqLwogCWludAkJCW5jaGVjazsJCQkvKiAjIG9mIENIRUNLIGV4cHJlc3Npb25z ICovCisJaW50CQkJbnBlcmlvZDsJCS8qICMgb2YgUEVSSU9EIGRlZmluaXRpb25zICovCiAJ T2lkCQkJcmVsdHlwZTsJCS8qIE9JRCBvZiB0YWJsZSdzIGNvbXBvc2l0ZSB0eXBlLCBpZiBh bnkgKi8KIAlPaWQJCQlyZWxvZnR5cGU7CQkvKiB1bmRlcmx5aW5nIHR5cGUgZm9yIHR5cGVk IHRhYmxlICovCiAJT2lkCQkJZm9yZWlnbl9zZXJ2ZXI7IC8qIGZvcmVpZ24gc2VydmVyIG9p ZCwgaWYgYXBwbGljYWJsZSAqLwpAQCAtMzQ1LDYgKzM0OCw3IEBAIHR5cGVkZWYgc3RydWN0 IF90YWJsZUluZm8KIAljaGFyCSAgICphdHRzdG9yYWdlOwkJLyogYXR0cmlidXRlIHN0b3Jh Z2Ugc2NoZW1lICovCiAJY2hhcgkgICAqdHlwc3RvcmFnZTsJCS8qIHR5cGUgc3RvcmFnZSBz Y2hlbWUgKi8KIAlib29sCSAgICphdHRpc2Ryb3BwZWQ7CS8qIHRydWUgaWYgYXR0ciBpcyBk cm9wcGVkOyBkb24ndCBkdW1wIGl0ICovCisJYm9vbAkgICAqYXR0aXNwZXJpb2Q7CS8qIHRy dWUgaWYgYXR0ciBpcyBhIFBFUklPRDsgZG9uJ3QgZHVtcCBpdCAqLwogCWNoYXIJICAgKmF0 dGlkZW50aXR5OwogCWNoYXIJICAgKmF0dGdlbmVyYXRlZDsKIAlpbnQJCSAgICphdHRsZW47 CQkJLyogYXR0cmlidXRlIGxlbmd0aCwgdXNlZCBieSBiaW5hcnlfdXBncmFkZSAqLwpAQCAt MzYzLDYgKzM2Nyw3IEBAIHR5cGVkZWYgc3RydWN0IF90YWJsZUluZm8KIAlib29sCSAgICpu b3RudWxsX2lzbG9jYWw7CS8qIHRydWUgaWYgTk9UIE5VTEwgaGFzIGxvY2FsIGRlZmluaXRp b24gKi8KIAlzdHJ1Y3QgX2F0dHJEZWZJbmZvICoqYXR0cmRlZnM7IC8qIERFRkFVTFQgZXhw cmVzc2lvbnMgKi8KIAlzdHJ1Y3QgX2NvbnN0cmFpbnRJbmZvICpjaGVja2V4cHJzOyAvKiBD SEVDSyBjb25zdHJhaW50cyAqLworCXN0cnVjdCBfcGVyaW9kSW5mbyAqcGVyaW9kczsJLyog UEVSSU9EIGRlZmluaXRpb25zICovCiAJYm9vbAkJbmVlZHNfb3ZlcnJpZGU7IC8qIGhhcyBH RU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZICovCiAJY2hhcgkgICAqYW1uYW1lOwkJCS8q IHJlbGF0aW9uIGFjY2VzcyBtZXRob2QgKi8KIApAQCAtNDkyLDYgKzQ5NywxNiBAQCB0eXBl ZGVmIHN0cnVjdCBfY29uc3RyYWludEluZm8KIAlib29sCQlzZXBhcmF0ZTsJCS8qIHRydWUg aWYgbXVzdCBkdW1wIGFzIHNlcGFyYXRlIGl0ZW0gKi8KIH0gQ29uc3RyYWludEluZm87CiAK K3R5cGVkZWYgc3RydWN0IF9wZXJpb2RJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsK KwlUYWJsZUluZm8gICpwZXJ0YWJsZTsKKwljaGFyCSAgICpwZXJzdGFydDsJCS8qIHRoZSBu YW1lIG9mIHRoZSBzdGFydCBjb2x1bW4gKi8KKwljaGFyCSAgICpwZXJlbmQ7CQkJLyogdGhl IG5hbWUgb2YgdGhlIGVuZCBjb2x1bW4gKi8KKwljaGFyCSAgICpybmd0eXBlOwkJLyogdGhl IG5hbWUgb2YgdGhlIHJhbmdlIHR5cGUgKi8KKwljaGFyCSAgICpjb25uYW1lOwkJLyogdGhl IG5hbWUgb2YgdGhlIENIRUNLIGNvbnN0cmFpbnQgKi8KK30gUGVyaW9kSW5mbzsKKwogdHlw ZWRlZiBzdHJ1Y3QgX3Byb2NMYW5nSW5mbwogewogCUR1bXBhYmxlT2JqZWN0IGRvYmo7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggZGM5YTI4OTI0YmQuLjkyN2M0MzBmNGM0IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC04NSw2ICs4NSw3IEBAIGVudW0gZGJPYmpl Y3RUeXBlUHJpb3JpdGllcwogCVBSSU9fQ09OU1RSQUlOVCwKIAlQUklPX0lOREVYLAogCVBS SU9fSU5ERVhfQVRUQUNILAorCVBSSU9fUEVSSU9ELAogCVBSSU9fU1RBVFNFWFQsCiAJUFJJ T19SVUxFLAogCVBSSU9fVFJJR0dFUiwKQEAgLTEyMCw2ICsxMjEsNyBAQCBzdGF0aWMgY29u c3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQogCVtET19BVFRSREVGXSA9IFBSSU9f QVRUUkRFRiwKIAlbRE9fSU5ERVhdID0gUFJJT19JTkRFWCwKIAlbRE9fSU5ERVhfQVRUQUNI XSA9IFBSSU9fSU5ERVhfQVRUQUNILAorCVtET19QRVJJT0RdID0gUFJJT19QRVJJT0QsCiAJ W0RPX1NUQVRTRVhUXSA9IFBSSU9fU1RBVFNFWFQsCiAJW0RPX1JVTEVdID0gUFJJT19SVUxF LAogCVtET19UUklHR0VSXSA9IFBSSU9fVFJJR0dFUiwKQEAgLTEzODEsNiArMTM4MywxMSBA QCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1 ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiRksgQ09OU1RSQUlOVCAlcyAgKElEICVkIE9JRCAl dSkiLAogCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOwog CQkJcmV0dXJuOworCQljYXNlIERPX1BFUklPRDoKKwkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6 ZSwKKwkJCQkJICJQRVJJT0QgJXMgIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+bmFt ZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJCXJldHVybjsKIAkJY2FzZSBE T19QUk9DTEFORzoKIAkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKIAkJCQkJICJQUk9DRURV UkFMIExBTkdVQUdFICVzICAoSUQgJWQgT0lEICV1KSIsCmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGQ1NTQz ZmQ2MmIwLi4yNmY5MmE4ZDM2OCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJl LmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTE5NjksNiArMTk2OSw4IEBA IGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAKIAlh cHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5GUk9NIHBnX2NhdGFsb2cucGdfYXR0cmli dXRlIGEiKTsKIAlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiXG5XSEVSRSBhLmF0dHJlbGlk ID0gJyVzJyBBTkQgYS5hdHRudW0gPiAwIEFORCBOT1QgYS5hdHRpc2Ryb3BwZWQiLCBvaWQp OworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE4MDAwMCkKKwkJYXBwZW5kUFFFeHBCdWZmZXIo JmJ1ZiwgIlxuQU5EIE5PVCBFWElTVFMgKFNFTEVDVCAxIEZST00gcGdfY2F0YWxvZy5wZ19w ZXJpb2QgcCBXSEVSRSBwLnBlcnJlbGlkID0gYS5hdHRyZWxpZCBBTkQgcC5wZXJyYW5nZSA9 IGEuYXR0bnVtKSIpOwogCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbk9SREVSIEJZ IGEuYXR0bnVtOyIpOwogCiAJcmVzID0gUFNRTGV4ZWMoYnVmLmRhdGEpOwpAQCAtMjM5MSw2 ICsyMzkzLDQwIEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVt YW5hbWUsCiAJCVBHcmVzdWx0ICAgKnJlc3VsdCA9IE5VTEw7CiAJCWludAkJCXR1cGxlcyA9 IDA7CiAKKwkJLyogcHJpbnQgcGVyaW9kcyAqLworCQlpZiAocHNldC5zdmVyc2lvbiA+PSAx ODAwMDApCisJCXsKKwkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCQkJICAiU0VM RUNUIHF1b3RlX2lkZW50KHAucGVybmFtZSksIHF1b3RlX2lkZW50KHMuYXR0bmFtZSkgQVMg c3RhcnRhdHQsIHF1b3RlX2lkZW50KGUuYXR0bmFtZSkgQVMgZW5kYXR0XG4iCisJCQkJCQkJ ICAiRlJPTSBwZ19wZXJpb2QgQVMgcFxuIgorCQkJCQkJCSAgIkpPSU4gcGdfYXR0cmlidXRl IEFTIHMgT04gKHMuYXR0cmVsaWQsIHMuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcnN0 YXJ0KVxuIgorCQkJCQkJCSAgIkpPSU4gcGdfYXR0cmlidXRlIEFTIGUgT04gKGUuYXR0cmVs aWQsIGUuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcmVuZClcbiIKKwkJCQkJCQkgICJX SEVSRSBwLnBlcnJlbGlkID0gJyVzJ1xuIgorCQkJCQkJCSAgIk9SREVSIEJZIDE7IiwKKwkJ CQkJCQkgIG9pZCk7CisJCQlyZXN1bHQgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJCQlpZiAo IXJlc3VsdCkKKwkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJCWVsc2UKKwkJCQl0dXBsZXMg PSBQUW50dXBsZXMocmVzdWx0KTsKKworCQkJaWYgKHR1cGxlcyA+IDApCisJCQl7CisJCQkJ cHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwgXygiUGVyaW9kczoiKSk7CisJCQkJZm9yIChp ID0gMDsgaSA8IHR1cGxlczsgaSsrKQorCQkJCXsKKwkJCQkJLyogdW50cmFuc2xhdGVkIGNv bnN0cmFpbnQgbmFtZSBhbmQgZGVmICovCisJCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYs ICIgICAgJXMgKCVzLCAlcykiLAorCQkJCQkJCQkJICBQUWdldHZhbHVlKHJlc3VsdCwgaSwg MCksCisJCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAxKSwKKwkJCQkJCQkJCSAg UFFnZXR2YWx1ZShyZXN1bHQsIGksIDIpKTsKKworCQkJCQlwcmludFRhYmxlQWRkRm9vdGVy KCZjb250LCBidWYuZGF0YSk7CisJCQkJfQorCQkJfQorCQkJUFFjbGVhcihyZXN1bHQpOwor CQl9CisKIAkJLyogcHJpbnQgaW5kZXhlcyAqLwogCQlpZiAodGFibGVpbmZvLmhhc2luZGV4 KQogCQl7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQppbmRleCAyYmJjNzgwNWZlMy4uYjlhZWUyY2E0 OWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNjUsNiArNjUsNyBAQCBDQVRBTE9HX0hF QURFUlMgOj0gXAogCXBnX2ZvcmVpZ25fc2VydmVyLmggXAogCXBnX3VzZXJfbWFwcGluZy5o IFwKIAlwZ19mb3JlaWduX3RhYmxlLmggXAorCXBnX3BlcmlvZC5oIFwKIAlwZ19wb2xpY3ku aCBcCiAJcGdfcmVwbGljYXRpb25fb3JpZ2luLmggXAogCXBnX2RlZmF1bHRfYWNsLmggXApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmggYi9zcmMvaW5jbHVkZS9j YXRhbG9nL2hlYXAuaAppbmRleCA5ZGVhNDljNTJiNC4uOGU3M2M3YWYxNzIgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVhcC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvaGVhcC5oCkBAIC0xMjEsNiArMTIxLDEwIEBAIGV4dGVybiBMaXN0ICpBZGRSZWxhdGlv bk5vdE51bGxDb25zdHJhaW50cyhSZWxhdGlvbiByZWwsCiBleHRlcm4gdm9pZCBSZWxhdGlv bkNsZWFyTWlzc2luZyhSZWxhdGlvbiByZWwpOwogZXh0ZXJuIHZvaWQgU2V0QXR0ck1pc3Np bmcoT2lkIHJlbGlkLCBjaGFyICphdHRuYW1lLCBjaGFyICp2YWx1ZSk7CiAKK2V4dGVybiBP aWQgU3RvcmVQZXJpb2QoUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpwZXJpb2QsCisJCQkJ CSAgIEF0dHJOdW1iZXIgc3RhcnRudW0sIEF0dHJOdW1iZXIgZW5kbnVtLAorCQkJCQkgICBB dHRyTnVtYmVyIHJhbmdlbnVtLCBPaWQgY29ub2lkKTsKKwogZXh0ZXJuIE5vZGUgKmNvb2tE ZWZhdWx0KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCSBOb2RlICpyYXdfZGVmYXVsdCwK IAkJCQkJCSBPaWQgYXR0dHlwaWQsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L21lc29uLmJ1aWxkIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAppbmRleCBl YzFjZjQ2N2Y2Zi4uODdjYjRjZTMzMDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZApA QCAtNjEsNiArNjEsNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAgICdwZ19jb2xsYXRpb24u aCcsCiAgICdwZ19wYXJhbWV0ZXJfYWNsLmgnLAogICAncGdfcGFydGl0aW9uZWRfdGFibGUu aCcsCisgICdwZ19wZXJpb2QuaCcsCiAgICdwZ19yYW5nZS5oJywKICAgJ3BnX3RyYW5zZm9y bS5oJywKICAgJ3BnX3NlcXVlbmNlLmgnLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19pbmRleC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oCmluZGV4 IDllYjk5ZDMxZmFjLi5kYzFkNmZjNWU0NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19pbmRleC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaApA QCAtNDgsNyArNDgsNiBAQCBDQVRBTE9HKHBnX2luZGV4LDI2MTAsSW5kZXhSZWxhdGlvbklk KSBCS0lfU0NIRU1BX01BQ1JPCiAJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBo ZXJlLCBidXQgd2UgYWxsb3cgZGlyZWN0IGFjY2VzcyB0byBpbmRrZXkgKi8KIAlpbnQydmVj dG9yCWluZGtleSBCS0lfRk9SQ0VfTk9UX05VTEw7CS8qIGNvbHVtbiBudW1iZXJzIG9mIGlu ZGV4ZWQgY29scywKIAkJCQkJCQkJCQkJICogb3IgMCAqLwotCiAjaWZkZWYgQ0FUQUxPR19W QVJMRU4KIAlvaWR2ZWN0b3IJaW5kY29sbGF0aW9uIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxh dGlvbikgQktJX0ZPUkNFX05PVF9OVUxMOwkvKiBjb2xsYXRpb24gaWRlbnRpZmllcnMgKi8K IAlvaWR2ZWN0b3IJaW5kY2xhc3MgQktJX0xPT0tVUChwZ19vcGNsYXNzKSBCS0lfRk9SQ0Vf Tk9UX05VTEw7IC8qIG9wY2xhc3MgaWRlbnRpZmllcnMgKi8KZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcGVyaW9kLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Bl cmlvZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yNTA4Y2Q0 NWEwOQotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcGVyaW9k LmgKQEAgLTAsMCArMSw1OCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdf cGVyaW9kLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiB0aGUgInBlcmlvZCIgc3lzdGVtIGNhdGFs b2cgKHBnX3BlcmlvZCkKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2 LTIwMjEsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wZXJpb2QuaAorICoKKyAqIE5PVEVTCisgKgkgIFRoZSBD YXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1hCisg KgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZu ZGVmIFBHX1BFUklPRF9ICisjZGVmaW5lIFBHX1BFUklPRF9ICisKKyNpbmNsdWRlICJjYXRh bG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9kX2QuaCIKKyNpbmNs dWRlICJub2Rlcy9iaXRtYXBzZXQuaCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBn X3BlcmlvZCBkZWZpbml0aW9uLiAgY3BwIHR1cm5zIHRoaXMgaW50bworICoJCXR5cGVkZWYg c3RydWN0IEZvcm1EYXRhX3BnX3BlcmlvZAorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitD QVRBTE9HKHBnX3BlcmlvZCw4MDAwLFBlcmlvZFJlbGF0aW9uSWQpCit7CisJT2lkCQkJb2lk OwkJCS8qIE9JRCBvZiB0aGUgcGVyaW9kICovCisJTmFtZURhdGEJcGVybmFtZTsJCS8qIG5h bWUgb2YgcGVyaW9kICovCisJT2lkCQkJcGVycmVsaWQ7CQkvKiBPSUQgb2YgcmVsYXRpb24g Y29udGFpbmluZyB0aGlzIHBlcmlvZCAqLworCWludDE2CQlwZXJzdGFydDsJCS8qIGNvbHVt biBmb3Igc3RhcnQgdmFsdWUgKi8KKwlpbnQxNgkJcGVyZW5kOwkJCS8qIGNvbHVtbiBmb3Ig ZW5kIHZhbHVlICovCisJaW50MTYJCXBlcnJhbmdlOwkJLyogY29sdW1uIGZvciByYW5nZSB2 YWx1ZSAqLworCU9pZAkJCXBlcmNvbnN0cmFpbnQ7CS8qIE9JRCBvZiAoc3RhcnQgPCBlbmQp IGNvbnN0cmFpbnQgKi8KK30gRm9ybURhdGFfcGdfcGVyaW9kOworCisvKiAtLS0tLS0tLS0t LS0tLS0tCisgKgkJRm9ybV9wZ19wZXJpb2QgY29ycmVzcG9uZHMgdG8gYSBwb2ludGVyIHRv IGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgcGdfcGVyaW9kIHJlbGF0aW9uLgor ICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIEZvcm1EYXRhX3BnX3BlcmlvZCAq Rm9ybV9wZ19wZXJpb2Q7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVkocGdfcGVyaW9k X29pZF9pbmRleCwgODAwMSwgUGVyaW9kT2JqZWN0SW5kZXhJZCwgcGdfcGVyaW9kLCBidHJl ZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfcGVyaW9kX3BlcnJl bGlkX3Blcm5hbWVfaW5kZXgsIDgwMDIsIFBlcmlvZFJlbGlkTmFtZUluZGV4SWQsIHBnX3Bl cmlvZCwgYnRyZWUocGVycmVsaWQgb2lkX29wcywgcGVybmFtZSBuYW1lX29wcykpOworCitN QUtFX1NZU0NBQ0hFKFBFUklPRE9JRCwgcGdfcGVyaW9kX29pZF9pbmRleCwgMzIpOworTUFL RV9TWVNDQUNIRShQRVJJT0ROQU1FLCBwZ19wZXJpb2RfcGVycmVsaWRfcGVybmFtZV9pbmRl eCwgMzIpOworCitleHRlcm4gdm9pZCBSZW1vdmVQZXJpb2RCeUlkKE9pZCBwZXJpb2RJZCk7 CisKK2V4dGVybiBPaWQgZ2V0X3JlbGF0aW9uX3BlcmlvZF9vaWQoT2lkIHJlbGlkLCBjb25z dCBjaGFyICpwZXJuYW1lLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIEJpdG1hcHNldCAq Z2V0X3BlcmlvZF9hdHRub3MoT2lkIHJlbGlkKTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1BF UklPRF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3JhbmdlLmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3JhbmdlLmgKaW5kZXggYWEyM2E3OGRkNmEuLjM2 NTQ4MjAwZDFiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3JhbmdlLmgK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19yYW5nZS5oCkBAIC01OSw4ICs1OSwxMCBA QCB0eXBlZGVmIEZvcm1EYXRhX3BnX3JhbmdlICpGb3JtX3BnX3JhbmdlOwogCiBERUNMQVJF X1VOSVFVRV9JTkRFWF9QS0VZKHBnX3JhbmdlX3JuZ3R5cGlkX2luZGV4LCAzNTQyLCBSYW5n ZVR5cGlkSW5kZXhJZCwgcGdfcmFuZ2UsIGJ0cmVlKHJuZ3R5cGlkIG9pZF9vcHMpKTsKIERF Q0xBUkVfVU5JUVVFX0lOREVYKHBnX3JhbmdlX3JuZ211bHRpdHlwaWRfaW5kZXgsIDIyMjgs IFJhbmdlTXVsdGlyYW5nZVR5cGlkSW5kZXhJZCwgcGdfcmFuZ2UsIGJ0cmVlKHJuZ211bHRp dHlwaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfcmFuZ2Vfcm5nc3Vi dHlwZV9ybmd0eXBpZF9pbmRleCwgODAwMywgUmFuZ2VTdWJUeXBpZFR5cGlkSW5kZXhJZCwg cGdfcmFuZ2UsIGJ0cmVlKHJuZ3N1YnR5cGUgb2lkX29wcywgcm5ndHlwaWQgb2lkX29wcykp OwogCiBNQUtFX1NZU0NBQ0hFKFJBTkdFVFlQRSwgcGdfcmFuZ2Vfcm5ndHlwaWRfaW5kZXgs IDQpOworTUFLRV9TWVNDQUNIRShSQU5HRVNVQlRZUEUsIHBnX3JhbmdlX3JuZ3N1YnR5cGVf cm5ndHlwaWRfaW5kZXgsIDQpOwogTUFLRV9TWVNDQUNIRShSQU5HRU1VTFRJUkFOR0UsIHBn X3JhbmdlX3JuZ211bHRpdHlwaWRfaW5kZXgsIDQpOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy90 YWJsZWNtZHMuaAppbmRleCA2ODMyNDcwZDM4Ny4uZmFlNTQxZTY2ZWQgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5oCisrKyBiL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3RhYmxlY21kcy5oCkBAIC00MCw3ICs0MCw4IEBAIGV4dGVybiBMT0NLTU9ERSBB bHRlclRhYmxlR2V0TG9ja0xldmVsKExpc3QgKmNtZHMpOwogCiBleHRlcm4gdm9pZCBBVEV4 ZWNDaGFuZ2VPd25lcihPaWQgcmVsYXRpb25PaWQsIE9pZCBuZXdPd25lcklkLCBib29sIHJl Y3Vyc2luZywgTE9DS01PREUgbG9ja21vZGUpOwogCi1leHRlcm4gdm9pZCBBbHRlclRhYmxl SW50ZXJuYWwoT2lkIHJlbGlkLCBMaXN0ICpjbWRzLCBib29sIHJlY3Vyc2UpOworZXh0ZXJu IHZvaWQgQWx0ZXJUYWJsZUludGVybmFsKE9pZCByZWxpZCwgTGlzdCAqY21kcywgYm9vbCBy ZWN1cnNlLAorCQkJCQkJCSAgIHN0cnVjdCBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNv bnRleHQpOwogCiBleHRlcm4gT2lkCUFsdGVyVGFibGVNb3ZlQWxsKEFsdGVyVGFibGVNb3Zl QWxsU3RtdCAqc3RtdCk7CiAKQEAgLTEwNiw1ICsxMDcsNiBAQCBleHRlcm4gdm9pZCBSYW5n ZVZhckNhbGxiYWNrT3duc1JlbGF0aW9uKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwKIAkJ CQkJCQkJCQkgT2lkIHJlbElkLCBPaWQgb2xkUmVsSWQsIHZvaWQgKmFyZyk7CiBleHRlcm4g Ym9vbCBQYXJ0Q29uc3RyYWludEltcGxpZWRCeVJlbENvbnN0cmFpbnQoUmVsYXRpb24gc2Nh bnJlbCwKIAkJCQkJCQkJCQkJCSBMaXN0ICpwYXJ0Q29uc3RyYWludCk7CitleHRlcm4gT2lk IGNob29zZV9yYW5nZXR5cGVfZm9yX3BlcmlvZChQZXJpb2REZWYgKnBlcmlvZCk7CiAKICNl bmRpZgkJCQkJCQkvKiBUQUJMRUNNRFNfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv bm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRl eCBmMTQ4OTNhMTZlMy4uZjVjMTQxOWJkYmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBA IC00NDEsOSArNDQxLDExIEBAIHR5cGVkZWYgc3RydWN0IEZvclBvcnRpb25PZlN0YXRlCiB7 CiAJTm9kZVRhZwkJdHlwZTsKIAotCWNoYXIgICAqZnBfcmFuZ2VOYW1lOwkJLyogdGhlIGNv bHVtbiBuYW1lZCBpbiBGT1IgUE9SVElPTiBPRiAqLworCWNoYXIgICAqZnBfcmFuZ2VOYW1l OwkJLyogdGhlIGNvbHVtbi9QRVJJT0QgbmFtZWQgaW4gRk9SIFBPUlRJT04gT0YgKi8KIAlP aWQJCWZwX3JhbmdlVHlwZTsJCS8qIHRoZSB0eXBlIG9mIHRoZSBGT1IgUE9SVElPTiBPRiBl eHByZXNzaW9uICovCi0JaW50CQlmcF9yYW5nZUF0dG5vOwkJLyogdGhlIGF0dG5vIG9mIHRo ZSByYW5nZSBjb2x1bW4gKi8KKwlpbnQJCWZwX3JhbmdlQXR0bm87CQkvKiB0aGUgYXR0bm8g b2YgdGhlIHJhbmdlIGNvbHVtbiAob3IgMCBmb3IgYSBQRVJJT0QpICovCisJaW50CQlmcF9w ZXJpb2RTdGFydEF0dG5vOwkvKiB0aGUgYXR0bm8gb2YgdGhlIFBFUklPRCBzdGFydCBjb2x1 bW4gKG9yIDAgZm9yIGEgcmFuZ2UpICovCisJaW50CQlmcF9wZXJpb2RFbmRBdHRubzsJCS8q IHRoZSBhdHRubyBvZiB0aGUgUEVSSU9EIGVuZCBjb2x1bW4gKG9yIDAgZm9yIGEgcmFuZ2Up ICovCiAJRGF0dW0JZnBfdGFyZ2V0UmFuZ2U7CQkvKiB0aGUgcmFuZ2UvbXVsdGlyYW5nZS9l dGMgZnJvbSBGT1IgUE9SVElPTiBPRiAqLwogCVR5cGVDYWNoZUVudHJ5ICpmcF9sZWZ0b3Zl cnN0eXBjYWNoZTsJLyogdHlwZSBjYWNoZSBlbnRyeSBvZiB0aGUgcmFuZ2UgKi8KIAlUdXBs ZVRhYmxlU2xvdCAqZnBfRXhpc3Rpbmc7CQkvKiBzbG90IHRvIHN0b3JlIG9sZCB0dXBsZSAq LwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDk0OTJjNDA1NDZlLi4wM2M3YjViNjY1 YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMjMxMyw2ICsyMzEzLDcgQEAgdHlw ZWRlZiBlbnVtIE9iamVjdFR5cGUKIAlPQkpFQ1RfT1BFUkFUT1IsCiAJT0JKRUNUX09QRkFN SUxZLAogCU9CSkVDVF9QQVJBTUVURVJfQUNMLAorCU9CSkVDVF9QRVJJT0QsCiAJT0JKRUNU X1BPTElDWSwKIAlPQkpFQ1RfUFJPQ0VEVVJFLAogCU9CSkVDVF9QVUJMSUNBVElPTiwKQEAg LTI0MDAsNiArMjQwMSw4IEBAIHR5cGVkZWYgZW51bSBBbHRlclRhYmxlVHlwZQogCUFUX1Zh bGlkYXRlQ29uc3RyYWludCwJCS8qIHZhbGlkYXRlIGNvbnN0cmFpbnQgKi8KIAlBVF9BZGRJ bmRleENvbnN0cmFpbnQsCQkvKiBhZGQgY29uc3RyYWludCB1c2luZyBleGlzdGluZyBpbmRl eCAqLwogCUFUX0Ryb3BDb25zdHJhaW50LAkJCS8qIGRyb3AgY29uc3RyYWludCAqLworCUFU X0FkZFBlcmlvZCwJCQkJLyogQUREIFBFUklPRCAqLworCUFUX0Ryb3BQZXJpb2QsCQkJCS8q IERST1AgUEVSSU9EICovCiAJQVRfUmVBZGRDb21tZW50LAkJCS8qIGludGVybmFsIHRvIGNv bW1hbmRzL3RhYmxlY21kcy5jICovCiAJQVRfQWx0ZXJDb2x1bW5UeXBlLAkJCS8qIGFsdGVy IGNvbHVtbiB0eXBlICovCiAJQVRfQWx0ZXJDb2x1bW5HZW5lcmljT3B0aW9ucywJLyogYWx0 ZXIgY29sdW1uIE9QVElPTlMgKC4uLikgKi8KQEAgLTI2ODEsMTEgKzI2ODQsMTIgQEAgdHlw ZWRlZiBzdHJ1Y3QgVmFyaWFibGVTaG93U3RtdAogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICoJCUNyZWF0ZSBUYWJsZSBTdGF0ZW1lbnQKICAqCi0gKiBOT1RFOiBpbiB0aGUgcmF3 IGdyYW0ueSBvdXRwdXQsIENvbHVtbkRlZiBhbmQgQ29uc3RyYWludCBub2RlcyBhcmUKLSAq IGludGVybWl4ZWQgaW4gdGFibGVFbHRzLCBhbmQgY29uc3RyYWludHMgYW5kIG5uY29uc3Ry YWludHMgYXJlIE5JTC4gIEFmdGVyCisgKiBOT1RFOiBpbiB0aGUgcmF3IGdyYW0ueSBvdXRw dXQsIENvbHVtbkRlZiwgUGVyaW9kRGVmLCBhbmQgQ29uc3RyYWludCBub2RlcyBhcmUKKyAq IGludGVybWl4ZWQgaW4gdGFibGVFbHRzOyBjb25zdHJhaW50cywgbm5jb25zdHJhaW50cywg YW5kIHBlcmlvZHMgYXJlIE5JTC4gIEFmdGVyCiAgKiBwYXJzZSBhbmFseXNpcywgdGFibGVF bHRzIGNvbnRhaW5zIGp1c3QgQ29sdW1uRGVmcywgbm5jb25zdHJhaW50cyBjb250YWlucwot ICogQ29uc3RyYWludCBub2RlcyBvZiBDT05TVFJfTk9UTlVMTCB0eXBlIGZyb20gdmFyaW91 cyBzb3VyY2VzLCBhbmQKLSAqIGNvbnN0cmFpbnRzIGNvbnRhaW5zIGp1c3QgQ09OU1RSX0NI RUNLIENvbnN0cmFpbnQgbm9kZXMuCisgKiBDb25zdHJhaW50IG5vZGVzIG9mIENPTlNUUl9O T1ROVUxMIHR5cGUgZnJvbSB2YXJpb3VzIHNvdXJjZXMsIGNvbnN0cmFpbnRzCisgKiBjb250 YWlucyBqdXN0IENPTlNUUl9DSEVDSyBDb25zdHJhaW50IG5vZGVzLCBhbmQgcGVyaW9kcyBj b250YWlucyBqdXN0CisgKiBQZXJpb2REZWZzLgogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQogICovCiAKQEAgLTI2OTQsNiArMjY5OCw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVN0 bXQKIAlOb2RlVGFnCQl0eXBlOwogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyogcmVsYXRp b24gdG8gY3JlYXRlICovCiAJTGlzdAkgICAqdGFibGVFbHRzOwkJLyogY29sdW1uIGRlZmlu aXRpb25zIChsaXN0IG9mIENvbHVtbkRlZikgKi8KKwlMaXN0CSAgICpwZXJpb2RzOwkJLyog cGVyaW9kcyAobGlzdCBvZiBQZXJpb2REZWYgbm9kZXMpICovCiAJTGlzdAkgICAqaW5oUmVs YXRpb25zOwkvKiByZWxhdGlvbnMgdG8gaW5oZXJpdCBmcm9tIChsaXN0IG9mCiAJCQkJCQkJ CSAqIFJhbmdlVmFyKSAqLwogCVBhcnRpdGlvbkJvdW5kU3BlYyAqcGFydGJvdW5kOwkvKiBG T1IgVkFMVUVTIGNsYXVzZSAqLwpAQCAtMjcwOCw2ICsyNzEzLDMxIEBAIHR5cGVkZWYgc3Ry dWN0IENyZWF0ZVN0bXQKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBqdXN0IGRvIG5vdGhp bmcgaWYgaXQgYWxyZWFkeSBleGlzdHM/ICovCiB9IENyZWF0ZVN0bXQ7CiAKKworLyogLS0t LS0tLS0tLQorICogRGVmaW5pdGlvbnMgZm9yIHBlcmlvZHMgaW4gQ3JlYXRlU3RtdAorICog LS0tLS0tLS0tLQorICovCisKK3R5cGVkZWYgc3RydWN0IFBlcmlvZERlZgoreworCU5vZGVU YWcJCXR5cGU7CisJT2lkCQkJb2lkOwkJCS8qIHBlcmlvZCBvaWQsIG9uY2UgaXQncyB0cmFu c2Zvcm1lZCAqLworCWNoYXIJICAgKnBlcmlvZG5hbWU7CQkvKiBwZXJpb2QgbmFtZSAqLwor CWNoYXIJICAgKnN0YXJ0Y29sbmFtZTsJLyogbmFtZSBvZiBzdGFydCBjb2x1bW4gKi8KKwlj aGFyCSAgICplbmRjb2xuYW1lOwkJLyogbmFtZSBvZiBlbmQgY29sdW1uICovCisJQXR0ck51 bWJlcglzdGFydGF0dG51bTsJLyogYXR0bnVtIG9mIHRoZSBzdGFydCBjb2x1bW4gKi8KKwlB dHRyTnVtYmVyCWVuZGF0dG51bTsJCS8qIGF0dG51bSBvZiB0aGUgZW5kIGNvbHVtbiAqLwor CUF0dHJOdW1iZXIJcm5nYXR0bnVtOwkJLyogYXR0bnVtIG9mIHRoZSBHRU5FUkFURUQgcmFu Z2UgY29sdW1uICovCisJTGlzdAkgICAqb3B0aW9uczsJCS8qIG9wdGlvbnMgZnJvbSBXSVRI IGNsYXVzZSAqLworCWNoYXIJICAgKmNvbnN0cmFpbnRuYW1lOwkvKiBuYW1lIG9mIHRoZSBD SEVDSyBjb25zdHJhaW50ICovCisJY2hhcgkgICAqcmFuZ2V0eXBlbmFtZTsJLyogbmFtZSBv ZiB0aGUgcmFuZ2UgdHlwZSAqLworCU9pZAkJCWNvbHR5cGlkOwkJLyogdGhlIHN0YXJ0L2Vu ZCBjb2wgdHlwZSAqLworCU9pZAkJCXJuZ3R5cGlkOwkJLyogdGhlIHJhbmdlIHR5cGUgdG8g dXNlICovCisJYm9vbAkJY29sZXhpc3RzOwkJLyogdXNlIGFuIGV4aXN0aW5nIEdFTkVSQVRF RCBjb2x1bW4gKi8KKwlpbnQJCQlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAt MSBpZiB1bmtub3duICovCit9IFBlcmlvZERlZjsKKwogLyogLS0tLS0tLS0tLQogICogRGVm aW5pdGlvbnMgZm9yIGNvbnN0cmFpbnRzIGluIENyZWF0ZVN0bXQKICAqCkBAIC0zNDAxLDYg KzM0MzEsNyBAQCB0eXBlZGVmIHN0cnVjdCBJbmRleFN0bXQKIAlMaXN0CSAgICppbmRleFBh cmFtczsJLyogY29sdW1ucyB0byBpbmRleDogYSBsaXN0IG9mIEluZGV4RWxlbSAqLwogCUxp c3QJICAgKmluZGV4SW5jbHVkaW5nUGFyYW1zOwkvKiBhZGRpdGlvbmFsIGNvbHVtbnMgdG8g aW5kZXg6IGEgbGlzdAogCQkJCQkJCQkJCSAqIG9mIEluZGV4RWxlbSAqLworCVBlcmlvZERl ZiAgKnBlcmlvZDsJCQkvKiBUaGUgcGVyaW9kIGluY2x1ZGVkIGluIHRoZSBpbmRleCAqLwog CUxpc3QJICAgKm9wdGlvbnM7CQkvKiBXSVRIIGNsYXVzZSBvcHRpb25zOiBhIGxpc3Qgb2Yg RGVmRWxlbSAqLwogCU5vZGUJICAgKndoZXJlQ2xhdXNlOwkvKiBxdWFsaWZpY2F0aW9uIChw YXJ0aWFsLWluZGV4IHByZWRpY2F0ZSkgKi8KIAlMaXN0CSAgICpleGNsdWRlT3BOYW1lczsg LyogZXhjbHVzaW9uIG9wZXJhdG9yIG5hbWVzLCBvciBOSUwgaWYgbm9uZSAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rl cy9wcmltbm9kZXMuaAppbmRleCA1NTQyMDFmZGNiNy4uZmZiMmEzOTlkODcgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3ByaW1ub2Rlcy5oCkBAIC0yMzU0LDYgKzIzNTQsOCBAQCB0eXBlZGVmIHN0cnVjdCBG b3JQb3J0aW9uT2ZFeHByCiB7CiAJTm9kZVRhZwkJdHlwZTsKIAlWYXIJCSAgICpyYW5nZVZh cjsJCQkvKiBSYW5nZSBjb2x1bW4gKi8KKwlWYXIJCSAgICpzdGFydFZhcjsJCQkvKiBTdGFy dCBjb2x1bW4gaWYgUEVSSU9EICovCisJVmFyCQkgICAqZW5kVmFyOwkJCQkvKiBFbmQgY29s dW1uIGlmIFBFUklPRCAqLwogCWNoYXIJICAgKnJhbmdlX25hbWU7CQkJLyogUmFuZ2UgbmFt ZSAqLwogCU5vZGUJICAgKnRhcmdldFJhbmdlOwkJLyogRk9SIFBPUlRJT04gT0YgYm91bmRz IGFzIGEgcmFuZ2UgKi8KIAlPaWQJCQlyYW5nZVR5cGU7CQkJLyogdHlwZSBvZiB0YXJnZXRS YW5nZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGUyOGY4ODBmZWZiLi45NWY3ZjI1M2Rm ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMzM4LDcgKzMzOCw3IEBAIFBHX0tFWVdPUkQo InBhcnRpdGlvbiIsIFBBUlRJVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgicGFzc2luZyIsIFBBU1NJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhc3N3b3JkIiwgUEFTU1dPUkQsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhdGgiLCBQQVRILCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCi1QR19LRVlXT1JEKCJwZXJpb2QiLCBQRVJJ T0QsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInBlcmlv ZCIsIFBFUklPRCwgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InBsYWNpbmciLCBQTEFDSU5HLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgicGxhbiIsIFBMQU4sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK IFBHX0tFWVdPUkQoInBsYW5zIiwgUExBTlMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmgg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRpbGNtZC5oCmluZGV4IDlmMmI1OGRlNzk3 Li5iYjQwY2E1Njg1NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0 aWxjbWQuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRpbGNtZC5oCkBAIC00 MCw1ICs0MCw2IEBAIGV4dGVybiBJbmRleFN0bXQgKmdlbmVyYXRlQ2xvbmVkSW5kZXhTdG10 KFJhbmdlVmFyICpoZWFwUmVsLAogCQkJCQkJCQkJCSAgUmVsYXRpb24gc291cmNlX2lkeCwK IAkJCQkJCQkJCQkgIGNvbnN0IHN0cnVjdCBBdHRyTWFwICphdHRtYXAsCiAJCQkJCQkJCQkJ ICBPaWQgKmNvbnN0cmFpbnRPaWQpOworZXh0ZXJuIHZvaWQgdHJhbnNmb3JtUGVyaW9kT3B0 aW9ucyhQZXJpb2REZWYgKnBlcmlvZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9VVElM Q01EX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIv c3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKaW5kZXggN2I3NDAzNTFiY2EuLmI4MTkz ZGU3M2ZkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAtOTUsNiArOTUsOCBAQCBleHRl cm4gT2lkCWdldF9hdHR0eXBlKE9pZCByZWxpZCwgQXR0ck51bWJlciBhdHRudW0pOwogZXh0 ZXJuIHZvaWQgZ2V0X2F0dHR5cGV0eXBtb2Rjb2xsKE9pZCByZWxpZCwgQXR0ck51bWJlciBh dHRudW0sCiAJCQkJCQkJCSAgT2lkICp0eXBpZCwgaW50MzIgKnR5cG1vZCwgT2lkICpjb2xs aWQpOwogZXh0ZXJuIERhdHVtIGdldF9hdHRvcHRpb25zKE9pZCByZWxpZCwgaW50MTYgYXR0 bnVtKTsKK2V4dGVybiBjaGFyICpnZXRfcGVyaW9kbmFtZShPaWQgcGVyaW9kaWQsIGJvb2wg bWlzc2luZ19vayk7CitleHRlcm4gT2lkCWdldF9wZXJpb2Rfb2lkKE9pZCByZWxpZCwgY29u c3QgY2hhciAqcGVyaW9kbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0 X2Nhc3Rfb2lkKE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0YXJnZXR0eXBlaWQsIGJvb2wgbWlz c2luZ19vayk7CiBleHRlcm4gY2hhciAqZ2V0X2NvbGxhdGlvbl9uYW1lKE9pZCBjb2xsb2lk KTsKIGV4dGVybiBib29sIGdldF9jb2xsYXRpb25faXNkZXRlcm1pbmlzdGljKE9pZCBjb2xs b2lkKTsKQEAgLTE5OCw2ICsyMDAsNyBAQCBleHRlcm4gT2lkCWdldF9yYW5nZV9zdWJ0eXBl KE9pZCByYW5nZU9pZCk7CiBleHRlcm4gT2lkCWdldF9yYW5nZV9jb2xsYXRpb24oT2lkIHJh bmdlT2lkKTsKIGV4dGVybiBPaWQJZ2V0X3JhbmdlX211bHRpcmFuZ2UoT2lkIHJhbmdlT2lk KTsKIGV4dGVybiBPaWQJZ2V0X211bHRpcmFuZ2VfcmFuZ2UoT2lkIG11bHRpcmFuZ2VPaWQp OworZXh0ZXJuIE9pZAlnZXRfc3VidHlwZV9yYW5nZShPaWQgc3VidHlwZU9pZCk7CiBleHRl cm4gT2lkCWdldF9pbmRleF9jb2x1bW5fb3BjbGFzcyhPaWQgaW5kZXhfb2lkLCBpbnQgYXR0 bm8pOwogZXh0ZXJuIGJvb2wgZ2V0X2luZGV4X2lzcmVwbGlkZW50KE9pZCBpbmRleF9vaWQp OwogZXh0ZXJuIGJvb2wgZ2V0X2luZGV4X2lzdmFsaWQoT2lkIGluZGV4X29pZCk7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9wZXJpb2QuaCBiL3NyYy9pbmNsdWRlL3V0aWxz L3BlcmlvZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMDJj MTcwMzZmZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3BlcmlvZC5o CkBAIC0wLDAgKzEsMjEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBlcmlv ZC5oCisgKgkgIHN1cHBvcnQgZm9yIFBvc3RncmVzIHBlcmlvZHMuCisgKgorICoKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRz IG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS91 dGlscy9wZXJpb2QuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVm IFBFUklPRF9ICisjZGVmaW5lIFBFUklPRF9ICisKKyNpbmNsdWRlICJleGVjdXRvci90dXB0 YWJsZS5oIgorCitleHRlcm4gRGF0dW0gcGVyaW9kX3RvX3JhbmdlKFR1cGxlVGFibGVTbG90 ICpzbG90LCBpbnQgc3RhcnRhdHRubywgaW50IGVuZGF0dG5vLCBPaWQgcmFuZ2V0eXBlKTsK KworI2VuZGlmCQkJCQkJCS8qIFBFUklPRF9IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9t b2R1bGVzL3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5jIGIvc3JjL3Rlc3Qv bW9kdWxlcy90ZXN0X2RkbF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2UuYwppbmRleCAxOTM2 NjlmMmJjMS4uOWVkNDI5ZmRhZGQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVz dF9kZGxfZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMKKysrIGIvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2RkbF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2UuYwpAQCAtMTc5LDYgKzE3OSwx MiBAQCBnZXRfYWx0ZXJ0YWJsZV9zdWJjbWRpbmZvKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQlj YXNlIEFUX0Ryb3BDb25zdHJhaW50OgogCQkJCXN0cnR5cGUgPSAiRFJPUCBDT05TVFJBSU5U IjsKIAkJCQlicmVhazsKKwkJCWNhc2UgQVRfQWRkUGVyaW9kOgorCQkJCXN0cnR5cGUgPSAi QUREIFBFUklPRCI7CisJCQkJYnJlYWs7CisJCQljYXNlIEFUX0Ryb3BQZXJpb2Q6CisJCQkJ c3RydHlwZSA9ICJEUk9QIFBFUklPRCI7CisJCQkJYnJlYWs7CiAJCQljYXNlIEFUX1JlQWRk Q29tbWVudDoKIAkJCQlzdHJ0eXBlID0gIihyZSkgQUREIENPTU1FTlQiOwogCQkJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9v Zi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dApp bmRleCA0ZjllZTI4ZjA3OC4uYzdjMzY5MjRlMTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CkBAIC02MTIsNiArNjEyLDY0IEBAIFNF TEVDVCAqIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OwogIFszLDQpIHwge1syMDE4LTAxLTAxLCl9ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVlCiAoNiByb3dzKQogCitE Uk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworLS0gVGVzdCB3aXRoIFBFUklPRHMK K0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MiAoCisgIGlkIGludDRyYW5nZSBO T1QgTlVMTCwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgbmFt ZSB0ZXh0IE5PVCBOVUxMLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2 YWxpZF90aWwpLAorICBDT05TVFJBSU5UIGZvcl9wb3J0aW9uX29mX3Rlc3QyX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNFUlQgSU5U TyBmb3JfcG9ydGlvbl9vZl90ZXN0MgorVkFMVUVTCisoJ1sxLDIpJywgJzIwMTgtMDEtMDIn LCAnMjAxOC0wMi0wMycsICdvbmUnKSwKKygnWzEsMiknLCAnMjAxOC0wMi0wNCcsICcyMDE4 LTAzLTAzJywgJ29uZScpLAorKCdbMSwyKScsICcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQn LCAnb25lJyksCisoJ1syLDMpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wNS0wMScsICd0d28n KSwKKygnWzMsNCknLCAnMjAxOC0wMS0wMScsIG51bGwsICd0aHJlZScpOworOworVVBEQVRF IGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE4LTAxLTEwJyBUTyAnMjAxOC0wMi0xMCcKK1NFVCBuYW1lID0gJ29uZV4xJworV0hFUkUg aWQgPSAnWzEsMiknOworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE4LTAyLTE1Jwor V0hFUkUgaWQgPSAnWzIsMyknOworLS0gU2V0dGluZyB0aGUgc3RhcnQgY29sdW1uIGZhaWxz OgorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTEwJyBUTyAnMjAxOC0wMi0xMCcKK1NFVCB2YWxpZF9mcm9tID0g JzIwMTgtMDItMDEnCitXSEVSRSBpZCA9ICdbMSwyKSc7CitFUlJPUjogIG11bHRpcGxlIGFz c2lnbm1lbnRzIHRvIHNhbWUgY29sdW1uICJ2YWxpZF9mcm9tIgorLS0gU2V0dGluZyB0aGUg ZW5kIGNvbHVtbiBmYWlsczoKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgtMDItMTAnCitT RVQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnCitXSEVSRSBpZCA9ICdbMSwyKSc7CitFUlJP UjogIG11bHRpcGxlIGFzc2lnbm1lbnRzIHRvIHNhbWUgY29sdW1uICJ2YWxpZF90aWwiCist LSBTZXR0aW5nIHRoZSBnZW5lcmF0ZWQgY29sdW1uIGZhaWxzOgorVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTEw JyBUTyAnMjAxOC0wMi0xMCcKK1NFVCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAy LTAzKScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgY2FuJ3QgZGlyZWN0bHkgYXNz aWduIHRvICJ2YWxpZF9hdCIgaW4gYSBGT1IgUE9SVElPTiBPRiB1cGRhdGUKK0xJTkUgMzog U0VUIHZhbGlkX2F0ID0gJ1syMDE4LTAyLTAxLDIwMTgtMDItMDMpJworICAgICAgICAgICAg XgorU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IG5hbWUgIAorLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IDIwMTgt MDEtMDIgfCAyMDE4LTAxLTEwIHwgb25lCisgWzEsMikgfCAyMDE4LTAxLTEwIHwgMjAxOC0w Mi0wMyB8IG9uZV4xCisgWzEsMikgfCAyMDE4LTAyLTA0IHwgMjAxOC0wMi0xMCB8IG9uZV4x CisgWzEsMikgfCAyMDE4LTAyLTEwIHwgMjAxOC0wMy0wMyB8IG9uZQorIFsxLDIpIHwgMjAx OC0wMy0wMyB8IDIwMTgtMDQtMDQgfCBvbmUKKyBbMiwzKSB8IDIwMTgtMDEtMDEgfCAyMDE4 LTAxLTE1IHwgdHdvCisgWzIsMykgfCAyMDE4LTAyLTE1IHwgMjAxOC0wNS0wMSB8IHR3bwor IFszLDQpIHwgMjAxOC0wMS0wMSB8ICAgICAgICAgICAgfCB0aHJlZQorKDggcm93cykKKwog RFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKIC0tIFRlc3Qgd2l0aCBhIGN1c3Rv bSByYW5nZSB0eXBlCiBDUkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBl PWRhdGUpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZXJpb2Rz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGVyaW9kcy5vdXQKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFjMTFjODhlOGRjCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZXJpb2RzLm91dApAQCAtMCww ICsxLDI3NSBAQAorLyogU3lzdGVtIHBlcmlvZHMgYXJlIG5vdCBpbXBsZW1lbnRlZCAqLwor Y3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2Qg Zm9yIHN5c3RlbV90aW1lIChkcywgZGUpKTsKK0VSUk9SOiAgUEVSSU9EIEZPUiBTWVNURU1f VElNRSBpcyBub3Qgc3VwcG9ydGVkCitMSU5FIDI6IGNyZWF0ZSB0YWJsZSBwdCAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBzeS4uLgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy8qIFBlcmlv ZHMgbXVzdCBzcGVjaWZ5IGFjdHVhbCBjb2x1bW5zICovCitjcmVhdGUgdGFibGUgcHQgKGlk IGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoYm9ndXMsIGRlKSk7 CitFUlJPUjogIGNvbHVtbiAiYm9ndXMiIG9mIHJlbGF0aW9uICJwdCIgZG9lcyBub3QgZXhp c3QKK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVy aW9kIGZvciBwIChkcywgYm9ndXMpKTsKK0VSUk9SOiAgY29sdW1uICJib2d1cyIgb2YgcmVs YXRpb24gInB0IiBkb2VzIG5vdCBleGlzdAorLyogRGF0YSB0eXBlcyBtdXN0IG1hdGNoIGV4 YWN0bHkgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgdGlt ZXN0YW1wLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworRVJST1I6ICBzdGFydCBhbmQgZW5k IGNvbHVtbnMgb2YgcGVyaW9kIG11c3QgYmUgb2Ygc2FtZSB0eXBlCitjcmVhdGUgdGFibGUg cHQgKGlkIGludGVnZXIsIGRzIHRleHQgY29sbGF0ZSAiQyIsIGRlIHRleHQgY29sbGF0ZSAi UE9TSVgiLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworRVJST1I6ICBzdGFydCBhbmQgZW5k IGNvbHVtbnMgb2YgcGVyaW9kIG11c3QgaGF2ZSBzYW1lIGNvbGxhdGlvbgorLyogUGVyaW9k cyBtdXN0IGhhdmUgYSBkZWZhdWx0IEJUcmVlIG9wZXJhdG9yIGNsYXNzICovCitjcmVhdGUg dGFibGUgcHQgKGlkIGludGVnZXIsIGRzIHhtbCwgZGUgeG1sLCBwZXJpb2QgZm9yIHAgKGRz LCBkZSkpOworRVJST1I6ICBubyByYW5nZSB0eXBlIGZvciB4bWwgZm91bmQgZm9yIHBlcmlv ZCBwCitISU5UOiAgWW91IGNhbiBkZWZpbmUgYSBjdXN0b20gcmFuZ2UgdHlwZSB3aXRoIENS RUFURSBUWVBFCisvKiBQZXJpb2QgYW5kIGNvbHVtbiBuYW1lcyBhcmUgaW4gdGhlIHNhbWUg bmFtZXNwYWNlICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRl IGRhdGUsIHBlcmlvZCBmb3IgY3RpZCAoZHMsIGRlKSk7CitFUlJPUjogIHBlcmlvZCBuYW1l ICJjdGlkIiBjb25mbGljdHMgd2l0aCBhIHN5c3RlbSBjb2x1bW4gbmFtZQorY3JlYXRlIHRh YmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIGlkIChk cywgZGUpKTsKK0VSUk9SOiAgcGVyaW9kIG5hbWUgImlkIiBjb25mbGljdHMgd2l0aCBhIGNv bHVtbiBuYW1lCisvKiBQZXJpb2QgbmFtZSBjYW4ndCBiZSBnaXZlbiBtb3JlIHRoYW4gb25j ZSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBw ZXJpb2QgZm9yIHAgKGRzLCBkZSksIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitFUlJPUjog IHBlcmlvZCBuYW1lICJwIiBzcGVjaWZpZWQgbW9yZSB0aGFuIG9uY2UKKy8qIFBlcmlvZCBj YW4ndCB1c2UgdGhlIHNhbWUgY29sdW0gZm9yIHN0YXJ0IGFuZCBlbmQqLworY3JlYXRlIHRh YmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRz LCBkcykpOworRVJST1I6ICBjb2x1bW4gImRzIiBjYW4ndCBiZSB0aGUgc3RhcnQgYW5kIGVu ZCBjb2x1bW4gZm9yIHBlcmlvZCAicCIKKy8qIE5vdyBtYWtlIG9uZSB0aGF0IHdvcmtzICov CitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlv ZCBmb3IgcCAoZHMsIGRlKSk7CisvKiBTRUxFQ1QgKiBleGNsdWRlcyB0aGUgUEVSSU9EICov CitpbnNlcnQgaW50byBwdCB2YWx1ZXMgKDEsICcyMDAwLTAxLTAxJywgJzIwMDEtMDEtMDEn KTsKK3NlbGVjdCAqIGZyb20gcHQ7CisgaWQgfCAgICAgZHMgICAgIHwgICAgIGRlICAgICAK Ky0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorICAxIHwgMDEtMDEtMjAwMCB8IDAx LTAxLTIwMDEKKygxIHJvdykKKworLyogWW91IGNhbiBnZXQgaXQgaWYgeW91IHdhbnQgKi8K K3NlbGVjdCAqLCBwIGZyb20gcHQ7CisgaWQgfCAgICAgZHMgICAgIHwgICAgIGRlICAgICB8 ICAgICAgICAgICAgcCAgICAgICAgICAgIAorLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgMSB8IDAxLTAxLTIwMDAgfCAwMS0w MS0yMDAxIHwgWzAxLTAxLTIwMDAsMDEtMDEtMjAwMSkKKygxIHJvdykKKworLyogVHdvIGFy ZSBva2F5ICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBk YXRlLCBwZXJpb2QgZm9yIHAxIChkcywgZGUpLCBwZXJpb2QgZm9yIHAyIChkcywgZGUpKTsK K2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiB3 b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0 ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdl KGRzLCBkZSkpIHN0b3JlZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0 cyA9IHRydWUpKTsKK1xkIHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHQy IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQg CistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0K KyBpZCAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAg fCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgcCAoZHMsIGRlKQor Q2hlY2sgY29uc3RyYWludHM6CisgICAgInB0Ml9wX2NoZWNrIiBDSEVDSyAoZHMgPCBkZSkK KworZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46 IGZhaWxzIGJlY2F1c2UgdGhlIGNvbCBpc24ndCB0aGVyZSAqLworY3JlYXRlIHRhYmxlIHB0 MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUp IHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKK0VSUk9SOiAgTm8gY29sdW1uIGZvdW5kIHdp dGggbmFtZSBwCisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJl Y2F1c2UgdGhlIG9wdGlvbiBoYXMgYW4gaW52YWxpZCB2YWx1ZSAqLworY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywg ZGUpIHdpdGggKGNvbGV4aXN0cyA9ICd3aGF0ZXZlcicpKTsKK0VSUk9SOiAgY29sZXhpc3Rz IHJlcXVpcmVzIGEgQm9vbGVhbiB2YWx1ZQorLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQg Y29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IE5PVCBOVUxMICovCitj cmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVy YW5nZSBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkLCBw ZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworRVJST1I6 ICBQZXJpb2QgcCB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGFsbG93cyBudWxscwor LyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBj b2x1bW4gaXMgbm90IEdFTkVSQVRFRCAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdl ciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwsIHBlcmlvZCBmb3Ig cCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitFUlJPUjogIFBlcmlvZCBw IHVzZXMgYSBub24tZ2VuZXJhdGVkIGNvbHVtbgorLyogU2tpcCBjcmVhdGluZyBHRU5FUkFU RUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgR0VORVJBVEVEIGJ1dCB3 aXRoIHRoZSB3cm9uZyBleHByZXNzaW9uICovCistLSBUT0RPOgorLS0gY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51 bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRlLCBkcykpIHN0b3JlZCwgcGVy aW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKKy8qIFNraXAg Y3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlz IHRoZSB3cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBk YXRlLCBkZSBkYXRlLCBwIHRzcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAo dHNyYW5nZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChj b2xleGlzdHMgPSB0cnVlKSk7CitFUlJPUjogIFBlcmlvZCBwIHVzZXMgYSBnZW5lcmF0ZWQg Y29sdW1uIHdpdGggdGhlIHdyb25nIHR5cGUKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVE IGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIGluaGVyaXRlZCAqLworY3Jl YXRlIHRhYmxlIHB0MnBhcmVudCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBk YXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBk ZSkpIHN0b3JlZCk7CitjcmVhdGUgdGFibGUgcHQyIChwZXJpb2QgZm9yIHAgKGRzLCBkZSkg d2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpIGluaGVyaXRzIChwdDJwYXJlbnQpOworRVJST1I6 ICBJbmhlcml0aW5nIGlzIG5vdCBzdXBwb3J0ZWQgd2hlbiBhIHRhYmxlIGhhcyBhIFBFUklP RAorZHJvcCB0YWJsZSBwdDJwYXJlbnQ7CisvKgorICogQUxURVIgVEFCTEUgdGVzdHMKKyAq LworYWx0ZXIgdGFibGUgcHQgZHJvcCBwZXJpb2QgZm9yIHA7CithbHRlciB0YWJsZSBwdCBh ZGQgcGVyaW9kIGZvciBzeXN0ZW1fdGltZSAoZHMsIGRlKTsKK0VSUk9SOiAgUEVSSU9EIEZP UiBTWVNURU1fVElNRSBpcyBub3Qgc3VwcG9ydGVkCithbHRlciB0YWJsZSBwdCBhZGQgcGVy aW9kIGZvciBwIChkcywgZGUpOworLyogQWRkaW5nIGEgc2Vjb25kIG9uZSAqLworY3JlYXRl IHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBw MSAoZHMsIGRlKSk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcDIgKGRzLCBk ZSk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIENhbid0IGRyb3AgaXRzIGNvbHVtbnMgKi8KK2Fs dGVyIHRhYmxlIHB0IGRyb3AgY29sdW1uIGRzOworRVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1 bW4gZHMgb2YgdGFibGUgcHQgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAor REVUQUlMOiAgcGVyaW9kIHAgb24gdGFibGUgcHQgZGVwZW5kcyBvbiBjb2x1bW4gZHMgb2Yg dGFibGUgcHQKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBl bmRlbnQgb2JqZWN0cyB0b28uCithbHRlciB0YWJsZSBwdCBkcm9wIGNvbHVtbiBkZTsKK0VS Uk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIGRlIG9mIHRhYmxlIHB0IGJlY2F1c2Ugb3RoZXIg b2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHBlcmlvZCBwIG9uIHRhYmxlIHB0IGRl cGVuZHMgb24gY29sdW1uIGRlIG9mIHRhYmxlIHB0CitISU5UOiAgVXNlIERST1AgLi4uIENB U0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLyogQ2FuJ3QgY2hh bmdlIHRoZSBkYXRhIHR5cGVzICovCithbHRlciB0YWJsZSBwdCBhbHRlciBjb2x1bW4gZHMg dHlwZSB0aW1lc3RhbXA7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlIG9mIGEgY29sdW1u IHVzZWQgYnkgYSBwZXJpb2QKK0RFVEFJTDogIHBlcmlvZCBwIG9uIHRhYmxlIHB0IGRlcGVu ZHMgb24gY29sdW1uICJkcyIKK2FsdGVyIHRhYmxlIHB0IGFsdGVyIGNvbHVtbiBkcyB0eXBl IHRpbWVzdGFtcDsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNl ZCBieSBhIHBlcmlvZAorREVUQUlMOiAgcGVyaW9kIHAgb24gdGFibGUgcHQgZGVwZW5kcyBv biBjb2x1bW4gImRzIgorLyogY29sdW1uL3BlcmlvZCBuYW1lc3BhY2UgY29uZmxpY3RzICov CithbHRlciB0YWJsZSBwdCBhZGQgY29sdW1uIHAgaW50ZWdlcjsKK0VSUk9SOiAgY29sdW1u IG5hbWUgInAiIGNvbmZsaWN0cyB3aXRoIGEgcGVyaW9kIG5hbWUKK2FsdGVyIHRhYmxlIHB0 IHJlbmFtZSBjb2x1bW4gaWQgdG8gcDsKK0VSUk9SOiAgY29sdW1uIG5hbWUgInAiIGNvbmZs aWN0cyB3aXRoIGEgcGVyaW9kIG5hbWUKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9y IHRhYmxlb2lkIChkcywgZGUpOworRVJST1I6ICBwZXJpb2QgbmFtZSAidGFibGVvaWQiIGNv bmZsaWN0cyB3aXRoIGEgc3lzdGVtIGNvbHVtbiBuYW1lCithbHRlciB0YWJsZSBwdCBhZGQg cGVyaW9kIGZvciAiLi4uLi4uLi5wZy5kcm9wcGVkLjQuLi4uLi4uLiIgKGRzLCBkZSk7CitF UlJPUjogIHBlcmlvZCBuYW1lICIuLi4uLi4uLnBnLmRyb3BwZWQuNC4uLi4uLi4uIiBjb25m bGljdHMgd2l0aCBhIGNvbHVtbiBuYW1lCisvKiBhZGRpbmcgY29sdW1ucyBhbmQgdGhlIHBl cmlvZCBhdCB0aGUgc2FtZSB0aW1lICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2Vy KTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgY29sdW1uIGRzIGRhdGUsIGFkZCBjb2x1bW4gZGUg ZGF0ZSwgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKTsKK2Ryb3AgdGFibGUgcHQyOworLyog QW1iaWd1b3VzIHJhbmdlIHR5cGVzIHJhaXNlIGFuIGVycm9yICovCitjcmVhdGUgdHlwZSBt eWRhdGVyYW5nZSBhcyByYW5nZShzdWJ0eXBlPWRhdGUpOworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworRVJS T1I6ICBhbWJpZ3VvdXMgcmFuZ2UgZm9yIHR5cGUgZGF0ZQorLyogWW91IGNhbiBnaXZlIGFu IGV4cGxpY2l0IHJhbmdlIHR5cGUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludCwgZHMg ZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKHJhbmdldHlwZSA9 ICdteWRhdGVyYW5nZScpKTsKK2Ryb3AgdHlwZSBteWRhdGVyYW5nZTsKK0VSUk9SOiAgY2Fu bm90IGRyb3AgdHlwZSBteWRhdGVyYW5nZSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5k IG9uIGl0CitERVRBSUw6ICBwZXJpb2QgcCBvbiB0YWJsZSBwdDIgZGVwZW5kcyBvbiB0eXBl IG15ZGF0ZXJhbmdlCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUg ZGVwZW5kZW50IG9iamVjdHMgdG9vLgorZHJvcCB0eXBlIG15ZGF0ZXJhbmdlIGNhc2NhZGU7 CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHBlcmlvZCBwIG9uIHRhYmxlIHB0MgorZHJv cCB0YWJsZSBwdDI7CitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRh dGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnZGF0ZXJhbmdl JykpOworLyogUmFuZ2UgdHlwZSBpcyBub3QgZm91bmQgKi8KK2NyZWF0ZSB0YWJsZSBwdDMg KGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGgg KHJhbmdldHlwZSA9ICdub3RhcmFuZ2UnKSk7CitFUlJPUjogIFJhbmdlIHR5cGUgbm90YXJh bmdlIG5vdCBmb3VuZAorLyogUmFuZ2UgdHlwZSBpcyB0aGUgd3JvbmcgdHlwZSAqLworY3Jl YXRlIHRhYmxlIHB0MyAoaWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAg KGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBlID0gJ3RzdHpyYW5nZScpKTsKK0VSUk9SOiAgUmFu Z2UgdHlwZSB0c3R6cmFuZ2UgZG9lcyBub3QgbWF0Y2ggY29sdW1uIHR5cGUgZGF0ZQorZHJv cCB0YWJsZSBwdDI7CisvKiBQZXJpb2QgY2FuJ3QgdXNlIHRoZSBzYW1lIGNvbHVtIGZvciBz dGFydCBhbmQgZW5kKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkcyk7 CitFUlJPUjogIGNvbHVtbiAiZHMiIGNhbid0IGJlIHRoZSBzdGFydCBhbmQgZW5kIGNvbHVt biBmb3IgcGVyaW9kICJwIgorZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdF TkVSQVRFRCBjb2x1bW46IHdvcmtzICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2Vy LCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBh ZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworXGQg cHQyCisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5 cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVn ZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRzICAgICB8IGRhdGUgICAgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorIGRlICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorUGVyaW9kczoKKyAgICBwIChkcywgZGUpCitDaGVjayBjb25zdHJhaW50 czoKKyAgICAicHQyX3BfY2hlY2siIENIRUNLIChkcyA8IGRlKQorCitkcm9wIHRhYmxlIHB0 MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0 aGUgY29sIGlzbid0IHRoZXJlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBk cyBkYXRlLCBkZSBkYXRlKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChk cywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworRVJST1I6ICBjb2x1bW4gInAiIG9m IHJlbGF0aW9uICJwdDIiIGRvZXMgbm90IGV4aXN0Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNr aXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgb3B0aW9u IGhhcyBhbiBpbnZhbGlkIHZhbHVlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2Vy LCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3 YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBh ZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9ICd3aGF0ZXZlcicp OworRVJST1I6ICBjb2xleGlzdHMgcmVxdWlyZXMgYSBCb29sZWFuIHZhbHVlCitkcm9wIHRh YmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVj YXVzZSB0aGUgY29sdW1uIGlzIG5vdCBOT1QgTlVMTCAqLworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2UgZ2VuZXJhdGVkIGFs d2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIg YWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VS Uk9SOiAgUGVyaW9kIHAgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBhbGxvd3MgbnVs bHMKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1u OiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IEdFTkVSQVRFRCAqLworY3JlYXRl IHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ug bm90IG51bGwpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkg d2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitFUlJPUjogIFBlcmlvZCBwIHVzZXMgYSBub24t Z2VuZXJhdGVkIGNvbHVtbgorZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdF TkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBHRU5FUkFURUQg YnV0IHdpdGggdGhlIHdyb25nIGV4cHJlc3Npb24gKi8KKy0tIFRPRE86CistLSBjcmVhdGUg dGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBu b3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZGUsIGRzKSkgc3RvcmVk KTsKKy0tIGFsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGgg KGNvbGV4aXN0cyA9IHRydWUpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1u OiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0 ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgdHNyYW5nZSBu b3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzICh0c3JhbmdlKGRzLCBkZSkpIHN0b3JlZCk7 CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xl eGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAgUGVyaW9kIHAgdXNlcyBhIGdlbmVyYXRlZCBjb2x1 bW4gd2l0aCB0aGUgd3JvbmcgdHlwZQorZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0 aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBpbmhl cml0ZWQgKi8KK2NyZWF0ZSB0YWJsZSBwdDJwYXJlbnQgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRh dGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworY3JlYXRlIHRhYmxlIHB0MiAoKSBpbmhlcml0 cyAocHQycGFyZW50KTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywg ZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEg Z2VuZXJhdGVkIGNvbHVtbiB0aGF0IGlzIGluaGVyaXRlZAorZHJvcCB0YWJsZSBwdDI7Citk cm9wIHRhYmxlIHB0MnBhcmVudDsKKy8qIENSRUFURSBUQUJMRSAoTElLRSAuLi4pICovCisv KiBQZXJpb2RzIGFyZSBub3QgY29waWVkIGJ5IExJS0UsIHNvIHRoZWlyIGNvbHVtbnMgYXJl bid0IGVpdGhlciAqLworY3JlYXRlIHRhYmxlIHB0MiAobGlrZSBwdCk7CitcZCBwdDIKKyAg ICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisgZHMgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCisgZGUgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAg IHwgCisKK2Ryb3AgdGFibGUgcHQyOworLyogQ2FuIGFkZCBhIHBlcmlvZCByZWZlcnJpbmcg dG8gTElLRSdkIGNvbHVtbnMgKi8KK2NyZWF0ZSB0YWJsZSBub3RfcCAoaWQgaW50ZWdlciwg ZHMgZGF0ZSwgZGUgZGF0ZSk7CitjcmVhdGUgdGFibGUgcHQyIChsaWtlIG5vdF9wLCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkpOworXGQgcHQyCisgICAgICAgICAgICAgICAgVGFibGUgInB1 YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IGRzICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRlICAgICB8 IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICBwIChk cywgZGUpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAicHQyX3BfY2hlY2siIENIRUNLIChk cyA8IGRlKQorCitkcm9wIHRhYmxlIHB0MjsKKy8qIENhbiBhZGQgYSBwZXJpb2Qgd2l0aCB0 aGUgc2FtZSBuYW1lICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0LCBwZXJpb2QgZm9y IHAgKGRzLCBkZSkpOworXGQgcHQyCisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5w dDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVs dCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LQorIGlkICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRzICAg ICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRlICAgICB8IGRhdGUg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICBwIChkcywgZGUp CitDaGVjayBjb25zdHJhaW50czoKKyAgICAicHQyX3BfY2hlY2siIENIRUNLIChkcyA8IGRl KQorCitkcm9wIHRhYmxlIHB0MjsKKy8qIENhbiBhZGQgYSBwZXJpb2Qgd2l0aCBhIGRpZmZl cmVudCBuYW1lICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0LCBwZXJpb2QgZm9yIHAy IChkcywgZGUpKTsKK1xkIHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHQy IgorIENvbHVtbiB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQg CistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0K KyBpZCAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAg fCBkYXRlICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgcDIgKGRzLCBkZSkK K0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJwdDJfcDJfY2hlY2siIENIRUNLIChkcyA8IGRl KQorCitkcm9wIHRhYmxlIHB0MjsKKy8qIENhbid0IGFkZCBhIHBlcmlvZCB3aG9zZSBuYW1l IGNvbmZsaWN0cyB3aXRoIGEgTElLRSdkIGNvbHVtbiAqLworY3JlYXRlIHRhYmxlIHB0MiAo bGlrZSBwdCwgcGVyaW9kIGZvciBpZCAoZHMsIGRlKSk7CitFUlJPUjogIHBlcmlvZCBuYW1l ICJpZCIgY29uZmxpY3RzIHdpdGggYSBjb2x1bW4gbmFtZQorLyogQ1JFQVRFIFRBTEJFIElO SEVSSVRTICovCisvKiBDYW4ndCBpbmhlcml0IGZyb20gYSB0YWJsZSB3aXRoIGEgcGVyaW9k ICovCitjcmVhdGUgdGFibGUgcHQyIChuYW1lIHRleHQpIGluaGVyaXRzIChwdCk7CitFUlJP UjogIEluaGVyaXRpbmcgZnJvbSBhIHRhYmxlIHdpdGggYSBQRVJJT0QgaXMgbm90IHN1cHBv cnRlZAorLyogQ2FuJ3QgaW5oZXJpdCB3aXRoIGEgcGVyaW9kICovCitjcmVhdGUgdGFibGUg cHQyIChkMnMgZGF0ZSwgZDJlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZDJzLCBkMmUpKSBpbmhl cml0cyAobm90X3ApOworRVJST1I6ICBJbmhlcml0aW5nIGlzIG5vdCBzdXBwb3J0ZWQgd2hl biBhIHRhYmxlIGhhcyBhIFBFUklPRAorZHJvcCB0YWJsZSBub3RfcDsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0CmluZGV4IDM5OTgwOTk0MGU5Li5hZWQ1 YzA2NjdkNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxl Z2VzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0 CkBAIC0xMTIzLDYgKzExMjMsMzUgQEAgU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3ByaXZfdXNlcjM7CiBVUERBVEUgdDEgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAwMC0wMS0wMScgVE8gJzIwMDEtMDEtMDEnIFNFVCBjMSA9ICdbMiwzKSc7CiBTRVQg U0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIERST1AgVEFCTEUg dDE7CistLSB0ZXN0IGNvbHVtbi1sZXZlbCBwcml2aWxlZ2VzIG9uIHRoZSBQRVJJT0QgdXNl ZCBpbiBGT1IgUE9SVElPTiBPRgorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3ByaXZfdXNlcjE7CitDUkVBVEUgVEFCTEUgdDEgKAorICBjMSBpbnQ0cmFuZ2UsCisgIHZh bGlkX2Zyb20gdGltZXN0YW1wLAorICB2YWxpZF90aWwgdGltZXN0YW1wLAorICBQRVJJT0Qg Rk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdDFw ayBQUklNQVJZIEtFWSAoYzEsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworR1JB TlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMjsKK0dSQU5UIFNFTEVDVCBP TiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjM7CitHUkFOVCBTRUxFQ1QgT04gdDEgVE8gcmVn cmVzc19wcml2X3VzZXI0OworR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91 c2VyNTsKK0dSQU5UIFVQREFURSAoYzEpIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyMjsK K0dSQU5UIFVQREFURSAoYzEsIHZhbGlkX2F0KSBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNl cjM7CitHUkFOVCBVUERBVEUgKGMxLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIE9OIHQxIFRP IHJlZ3Jlc3NfcHJpdl91c2VyNDsKK0dSQU5UIFVQREFURSAoYzEsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgdmFsaWRfYXQpIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyNTsKK1NFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIyOworVVBEQVRFIHQxIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAxLTAx JyBTRVQgYzEgPSAnWzIsMyknOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3IgdGFi bGUgdDEKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIzOwor VVBEQVRFIHQxIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRP ICcyMDAxLTAxLTAxJyBTRVQgYzEgPSAnWzIsMyknOworRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3IgdGFibGUgdDEKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19w cml2X3VzZXI0OworVVBEQVRFIHQxIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MDAtMDEtMDEnIFRPICcyMDAxLTAxLTAxJyBTRVQgYzEgPSAnWzIsMyknOworU0VUIFNFU1NJ T04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjU7CitVUERBVEUgdDEgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0wMScgVE8gJzIwMDEtMDEtMDEnIFNF VCBjMSA9ICdbMiwzKSc7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJp dl91c2VyMTsKK0RST1AgVEFCTEUgdDE7CiAtLSB0ZXN0IGNvbHVtbi1sZXZlbCBwcml2aWxl Z2VzIHdoZW4gaW52b2x2ZWQgd2l0aCBERUxFVEUKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJ T04gcmVncmVzc19wcml2X3VzZXIxOwogQUxURVIgVEFCTEUgYXRlc3Q2IEFERCBDT0xVTU4g dGhyZWUgaW50ZWdlcjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv d2l0aG91dF9vdmVybGFwcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhv dXRfb3ZlcmxhcHMub3V0CmluZGV4IDU0ZjU0MjNmZTY4Li4zMWVmMjZjZjgyYiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CkBA IC0xNTMsNiArMTUzLDc2IEBAIFNFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAs IHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlCiAgQ1JFQVRF IFVOSVFVRSBJTkRFWCB0ZW1wb3JhbF9ybmcyX3BrIE9OIHRlbXBvcmFsX3JuZzIgVVNJTkcg Z2lzdCAoaWQxLCBpZDIsIHZhbGlkX2F0KQogKDEgcm93KQogCistLSBQSyB3aXRoIG9uZSBj b2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisg IFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIKKyAgICAgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudGVtcG9yYWxfcGVyIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xs YXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJh bmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAg IHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX3Blcl9wayIgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3Ry YWludHM6CisgICAgInRlbXBvcmFsX3Blcl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlk X2Zyb20gPCB2YWxpZF90aWwpCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQp IEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Blcl9wayc7 CisgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNUIHBn X2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdI RVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyX3BrJzsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVY IHRlbXBvcmFsX3Blcl9wayBPTiB0ZW1wb3JhbF9wZXIgVVNJTkcgZ2lzdCAoaWQsIHZhbGlk X2F0KQorKDEgcm93KQorCistLSBQSyB3aXRoIHR3byBjb2x1bW5zIHBsdXMgYSBQRVJJT0Q6 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlk MiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisg IFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcGVyMgorICAgICAgICAgICAg ICBUYWJsZSAicHVibGljLnRlbXBvcmFsX3BlcjIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkMSAgICAgICAg fCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIGlkMiAgICAgICAgfCBp bnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRl ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcGVyMl9w ayIgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQor Q2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX3BlcjJfdmFsaWRfYXRfY2hlY2si IENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0 cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1w b3JhbF9wZXIyX3BrJzsKKyAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgUFJJTUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VU IE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlk LCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3Jh bF9wZXIyX3BrJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dl dF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRFWCB0ZW1w b3JhbF9wZXIyX3BrIE9OIHRlbXBvcmFsX3BlcjIgVVNJTkcgZ2lzdCAoaWQxLCBpZDIsIHZh bGlkX2F0KQorKDEgcm93KQorCiAtLSBQSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGU6CiBD UkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChzdWJ0eXBlPXRleHQsIGNvbGxhdGlv bj0iQyIpOwogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKApAQCAtMzAwLDYgKzM3MCw3 OCBAQCBTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBn X2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZQogKDEgcm93KQogCiBEUk9QIFRBQkxF IHRlbXBvcmFsX3JuZzM7CistLSBVTklRVUUgd2l0aCBvbmUgY29sdW1uIHBsdXMgYSBQRVJJ T0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMyAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w ZXIzX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQg dGVtcG9yYWxfcGVyMworICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX3Bl cjMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQor SW5kZXhlczoKKyAgICAidGVtcG9yYWxfcGVyM191cSIgVU5JUVVFIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9w ZXIzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKKwor U0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdI RVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7CisgICAgICAgICAgcGdfZ2V0X2Nv bnN0cmFpbnRkZWYgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygx IHJvdykKKworU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJP TSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcGVyM191cSBPTiB0ZW1wb3JhbF9w ZXIzIFVTSU5HIGdpc3QgKGlkLCB2YWxpZF9hdCkKKygxIHJvdykKKworRFJPUCBUQUJMRSB0 ZW1wb3JhbF9wZXIzOworLS0gVU5JUVVFIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIFBFUklP RDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIzICgKKyAgaWQxIGludDRyYW5nZSwKKyAg aWQyIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwK KyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcGVyMworICAgICAgICAgICAgICBU YWJsZSAicHVibGljLnRlbXBvcmFsX3BlcjMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8 IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkMSAgICAgICAgfCBp bnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGlkMiAgICAgICAgfCBpbnQ0 cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFs aWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcGVyM191cSIg VU5JUVVFIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNv bnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9wZXIzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAo dmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVm KG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVy M191cSc7CisgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgVU5J UVVFIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKwor U0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7CisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIENSRUFURSBVTklRVUUgSU5ERVggdGVtcG9yYWxfcGVyM191cSBPTiB0ZW1wb3Jh bF9wZXIzIFVTSU5HIGdpc3QgKGlkMSwgaWQyLCB2YWxpZF9hdCkKKygxIHJvdykKKworRFJP UCBUQUJMRSB0ZW1wb3JhbF9wZXIzOwogLS0gVU5JUVVFIHdpdGggYSBjdXN0b20gcmFuZ2Ug dHlwZToKIENSRUFURSBUWVBFIHRleHRyYW5nZTIgQVMgcmFuZ2UgKHN1YnR5cGU9dGV4dCwg Y29sbGF0aW9uPSJDIik7CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBAIC0zNzcs NiArNTE5LDEwNiBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKICAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWwzX3VxCiAgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp OwogRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLSBQUklNQVJZIEtFWSB3aXRoIFBFUklPRCBh bHJlYWR5IHRoZXJlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9S IHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCispOworQUxURVIgVEFCTEUgdGVt cG9yYWwzCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM19waworICBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCisgICAgICAg ICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1bW4gICB8ICAgVHlw ZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAg ICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20g fCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBk YXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWwz X3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVj ayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWwzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAo dmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKKworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLSBQ UklNQVJZIEtFWSB3aXRoIFBFUklPRCB0b28KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUK Kyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM19w aworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQg dGVtcG9yYWwzCisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbDMiCisg ICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVs dCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVs bCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor UGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhl czoKKyAgICAidGVtcG9yYWwzX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWwzX3ZhbGlk X2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKKworRFJPUCBUQUJM RSB0ZW1wb3JhbDM7CistLSBVTklRVUUgd2l0aCBQRVJJT0QgYWxyZWFkeSB0aGVyZQorQ1JF QVRFIFRBQkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBk YXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRf ZnJvbSwgdmFsaWRfdGlsKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbDNfdXEKKyAgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyk7CitcZCB0ZW1wb3JhbDMKKyAgICAgICAgICAgICAgICBUYWJsZSAicHVibGlj LnRlbXBvcmFsMyIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbDNfdXEiIFVOSVFVRSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVtcG9y YWwzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKKwor RFJPUCBUQUJMRSB0ZW1wb3JhbDM7CistLSBVTklRVUUgd2l0aCBQRVJJT0QgdG9vCitDUkVB VEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRh dGUsCisgIHZhbGlkX3RpbCBkYXRlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWwzCisgIEFE RCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKKyAgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyk7CitcZCB0ZW1wb3JhbDMKKyAgICAgICAgICAgICAgICBUYWJsZSAicHVi bGljLnRlbXBvcmFsMyIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwg TnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2 YWxpZF90aWwpCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbDNfdXEiIFVOSVFVRSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVt cG9yYWwzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkK KworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAtLQogLS0gcmFuZ2UgUEs6IHRlc3Qgd2l0aCBl eGlzdGluZyByb3dzCiAtLQpAQCAtODc0LDYgKzExMTYsMjg0IEBAIFNFTEVDVCAqIEZST00g dGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAKIERST1AgVEFCTEUg dGVtcG9yYWxfbWx0cm5nMzsKIC0tCistLSBQRVJJT0QgUEs6IHRlc3Qgd2l0aCBleGlzdGlu ZyByb3dzCistLQorQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wZXJfcGs7CistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAy JywgJzIwMTgtMDItMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMy0wMycsICcyMDE4 LTA0LTA0Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMyw0KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9wZXIgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wZXIgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wazsKKy0tIHNob3VsZCBmYWls OgorQkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1 Jyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsK K0VSUk9SOiAgY291bGQgbm90IGNyZWF0ZSBleGNsdXNpb24gY29uc3RyYWludCAidGVtcG9y YWxfcGVyX3BrIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgt MDEtMDIsMjAxOC0wMi0wMykpIGNvbmZsaWN0cyB3aXRoIGtleSAoaWQsIHZhbGlkX2F0KT0o WzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDEtMDUpKS4KK1JPTExCQUNLOworLS0gcmVqZWN0 cyBlbXB0eToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgRFJPUCBQRVJJ T0QgRk9SIHZhbGlkX2F0OworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAnMjAy MC0wMS0wMScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIgQUREIFBFUklPRCBGT1Ig dmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCk7CitFUlJPUjogIGNoZWNrIGNvbnN0 cmFpbnQgInRlbXBvcmFsX3Blcl92YWxpZF9hdF9jaGVjayIgb2YgcmVsYXRpb24gInRlbXBv cmFsX3BlciIgaXMgdmlvbGF0ZWQgYnkgc29tZSByb3cKK1JPTExCQUNLOworQUxURVIgVEFC TEUgdGVtcG9yYWxfcGVyIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworREVMRVRFIEZST00gdGVt cG9yYWxfcGVyOworLS0KKy0tIFBFUklPRCBQSzogdGVzdCBpbnNlcnRzCistLQorLS0gb2th eToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwz KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAx OC0wMS0wMScsIE5VTEwpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIw MTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFs dWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRlbXBvcmFsX3Blcl9wayIKK0RF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDEt MDUpKSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIp LCBbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKSkuCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoTlVMTCwgJzIwMTgtMDEtMDEn LCAnMjAxOC0wMS0wNScpOworRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiaWQiIG9m IHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQK K0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChudWxsLCAyMDE4LTAxLTAxLCAyMDE4 LTAxLTA1LCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkuCistLSByZWplY3RzIGVtcHR5Ogor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMyw0KScsICcyMDIwLTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0VSUk9SOiAg bmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgY2hlY2sgY29u c3RyYWludCAidGVtcG9yYWxfcGVyX3ZhbGlkX2F0X2NoZWNrIgorREVUQUlMOiAgRmFpbGlu ZyByb3cgY29udGFpbnMgKFszLDQpLCAyMDIwLTAxLTAxLCAyMDIwLTAxLTAxLCBlbXB0eSku CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg IGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxLDIpIHwgMjAxOC0wMS0wMiB8IDIwMTgtMDItMDMKKyBbMSwy KSB8IDIwMTgtMDMtMDMgfCAyMDE4LTA0LTA0CisgWzIsMykgfCAyMDE4LTAxLTAxIHwgMjAx OC0wMS0wNQorIFszLDQpIHwgMjAxOC0wMS0wMSB8IAorKDQgcm93cykKKworLS0KKy0tIFBF UklPRCBQSzogdGVzdCB1cGRhdGVzCistLQorLS0gdXBkYXRlIHRoZSBzY2FsYXIgcGFydAor VVBEQVRFICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAnWzExLDEyKScKK1dIRVJFICAg aWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsK Ky0tIHVwZGF0ZSB0aGUgUEVSSU9EIGJvdW5kcworVVBEQVRFICB0ZW1wb3JhbF9wZXIKK1NF VCAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0g JzIwMjEtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0 IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSBib3RoIGF0IG9uY2UKK1VQREFU RSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1syMSwyMiknLAorICAgICAgICB2YWxp ZF9mcm9tID0gJzIwMTgtMDEtMDInLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wMi0w MycKK1dIRVJFICAgaWQgPSAnWzExLDEyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMjAt MDEtMTUnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgaWQgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgICB8IDIwMTgtMDMtMDMg fCAyMDE4LTA0LTA0CisgWzIsMykgICB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTA1CisgWzMs NCkgICB8IDIwMTgtMDEtMDEgfCAKKyBbMjEsMjIpIHwgMjAxOC0wMS0wMiB8IDIwMTgtMDIt MDMKKyg0IHJvd3MpCisKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3JhbF9wZXIK K1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDMt MDUnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wNS0wNScKK1dIRVJFICAgaWQgPSAn WzIxLDIyKSc7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNs dXNpb24gY29uc3RyYWludCAidGVtcG9yYWxfcGVyX3BrIgorREVUQUlMOiAgS2V5IChpZCwg dmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDMtMDUsMjAxOC0wNS0wNSkpIGNvbmZsaWN0cyB3 aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAzLTAzLDIw MTgtMDQtMDQpKS4KKy0tIHNldCB0aGUgc2NhbGFyIHBhcnQgdG8gTlVMTAorVVBEQVRFICB0 ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAgICB2YWxpZF9mcm9tID0g JzIwMTgtMDMtMDUnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wNS0wNScKK1dIRVJF ICAgaWQgPSAnWzIxLDIyKSc7CitFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJpZCIg b2YgcmVsYXRpb24gInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWlu dAorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKG51bGwsIDIwMTgtMDMtMDUsIDIw MTgtMDUtMDUsIFsyMDE4LTAzLTA1LDIwMTgtMDUtMDUpKS4KKy0tIHNldCBhIFBFUklPRCBi b3VuZCB0byBOVUxMIChva2F5KQorVVBEQVRFICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQg PSAnWzEsMiknLAorICAgICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDQtMDQnLAorICAgICAg ICB2YWxpZF90aWwgPSBOVUxMCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gcmVqZWN0 cyBlbXB0eToKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gJ1syMSwyMikn LAorICAgICAgICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90 aWwgPSAnMjAyMC0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzEsMiknOworRVJST1I6ICBuZXcg cm93IGZvciByZWxhdGlvbiAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBjaGVjayBjb25zdHJh aW50ICJ0ZW1wb3JhbF9wZXJfdmFsaWRfYXRfY2hlY2siCitERVRBSUw6ICBGYWlsaW5nIHJv dyBjb250YWlucyAoWzIxLDIyKSwgMjAyMC0wMS0wMSwgMjAyMC0wMS0wMSwgZW1wdHkpLgor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBp ZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIwMTgtMDMtMDMgfCAyMDE4LTA0LTA0CisgWzEsMikg fCAyMDE4LTA0LTA0IHwgCisgWzIsMykgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorIFsz LDQpIHwgMjAxOC0wMS0wMSB8IAorKDQgcm93cykKKworLS0KKy0tIFBFUklPRCBVUTogdGVz dCB3aXRoIGV4aXN0aW5nIHJvd3MKKy0tCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMyAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0 ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorKTsK Ky0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb Myw0KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIz IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAx JywgJzIwMTgtMDEtMDUnKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfcGVyM191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX3BlcjNfdXE7CistLSBzaG91bGQgZmFpbDoKK0JFR0lOOworICBJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKKyAgQUxURVIgVEFCTEUgdGVt cG9yYWxfcGVyMyBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworRVJST1I6ICBjb3VsZCBub3QgY3JlYXRl IGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3VxIgorREVUQUlMOiAgS2V5 IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wMi0wMykpIGNvbmZs aWN0cyB3aXRoIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgt MDEtMDUpKS4KK1JPTExCQUNLOworLS0gcmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBBTFRF UiBUQUJMRSB0ZW1wb3JhbF9wZXIzIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdDsKKyAgSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzMsNCknLCAnMjAyMC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CisgIEFMVEVSIFRB QkxFIHRlbXBvcmFsX3BlcjMgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCk7CitFUlJPUjogIGNoZWNrIGNvbnN0cmFpbnQgInRlbXBvcmFsX3BlcjNf dmFsaWRfYXRfY2hlY2siIG9mIHJlbGF0aW9uICJ0ZW1wb3JhbF9wZXIzIiBpcyB2aW9sYXRl ZCBieSBzb21lIHJvdworUk9MTEJBQ0s7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIzIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIzOworLS0KKy0tIFBF UklPRCBVUTogdGVzdCBpbnNlcnRzCistLQorLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywg JzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0w My0wMycsICcyMDE4LTA0LTA0Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAxJywg JzIwMTgtMDEtMDUnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoTlVMTCwgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworLS0gc2hvdWxk IGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsK K0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25z dHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3VxIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wNSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0 aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDItMDMp KS4KKy0tIHJlamVjdHMgZW1wdHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDIwLTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0VSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gInRlbXBvcmFs X3BlcjMiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgInRlbXBvcmFsX3BlcjNfdmFsaWRf YXRfY2hlY2siCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoWzMsNCksIDIwMjAt MDEtMDEsIDIwMjAtMDEtMDEsIGVtcHR5KS4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVy MyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxLDIpIHwgMjAx OC0wMS0wMiB8IDIwMTgtMDItMDMKKyBbMSwyKSB8IDIwMTgtMDMtMDMgfCAyMDE4LTA0LTA0 CisgWzIsMykgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorIFszLDQpIHwgMjAxOC0wMS0w MSB8IAorICAgICAgIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyg1IHJvd3MpCisKKy0t CistLSBQRVJJT0QgVVE6IHRlc3QgdXBkYXRlcworLS0KKy0tIHVwZGF0ZSB0aGUgc2NhbGFy IHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9ICdbMTEsMTIpJwor V0hFUkUgICBpZCA9ICdbMSwyKScKK0FORCAgICAgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUn OjpkYXRlOworLS0gdXBkYXRlIHRoZSBQRVJJT0QgYm91bmRzCitVUERBVEUgIHRlbXBvcmFs X3BlcjMKK1NFVCAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFs aWRfdGlsID0gJzIwMjEtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAg IHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIHVwZGF0ZSBib3RoIGF0IG9u Y2UKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9ICdbMjEsMjIpJywKKyAg ICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywKKyAgICAgICAgdmFsaWRfdGlsID0g JzIwMTgtMDItMDMnCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAgIHZhbGlkX2F0 IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyMyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICBpZCAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSAgIHwg MjAxOC0wMy0wMyB8IDIwMTgtMDQtMDQKKyBbMiwzKSAgIHwgMjAxOC0wMS0wMSB8IDIwMTgt MDEtMDUKKyBbMyw0KSAgIHwgMjAxOC0wMS0wMSB8IAorIFsyMSwyMikgfCAyMDE4LTAxLTAy IHwgMjAxOC0wMi0wMworICAgICAgICAgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorKDUg cm93cykKKworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAg ICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDMtMDUnLAor ICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wNS0wNScKK1dIRVJFICAgaWQgPSAnWzIxLDIy KSc7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24g Y29uc3RyYWludCAidGVtcG9yYWxfcGVyM191cSIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlk X2F0KT0oWzEsMiksIFsyMDE4LTAzLTA1LDIwMTgtMDUtMDUpKSBjb25mbGljdHMgd2l0aCBl eGlzdGluZyBrZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMy0wMywyMDE4LTA0 LTA0KSkuCistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwgKG9rYXkpCitVUERBVEUg IHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAgICB2YWxpZF9mcm9t ID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAyMS0wMS0wMScKK1dI RVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgYSBQRVJJT0QgYm91bmQgdG8gTlVMTCAo b2theSkKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9ICdbMSwyKScsCisg ICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wNC0wNCcsCisgICAgICAgIHZhbGlkX3RpbCA9 IE5VTEwKK1dIRVJFICAgaWQgSVMgTlVMTCBBTkQgdmFsaWRfYXQgQD4gJzIwMjAtMDYtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDE4LTAzLTAzIHwgMjAxOC0wNC0w NAorIFsxLDIpIHwgMjAxOC0wNC0wNCB8IAorIFsyLDMpIHwgMjAxOC0wMS0wMSB8IDIwMTgt MDEtMDUKKyBbMyw0KSB8IDIwMTgtMDEtMDEgfCAKKyAgICAgICB8IDIwMTgtMDEtMDEgfCAy MDE4LTAxLTA1CisoNSByb3dzKQorCistLSBzaG91bGQgZmFpbDoKK1VQREFURSAgdGVtcG9y YWxfcGVyMworU0VUICAgICB2YWxpZF9mcm9tID0gJzIwMTgtMDMtMDEnLAorICAgICAgICB2 YWxpZF90aWwgPSAnMjAxOC0wNS0wNScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxp ZF90aWwgSVMgTlVMTDsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVz IGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3VxIgorREVUQUlMOiAgS2V5 IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDMtMDEsMjAxOC0wNS0wNSkpIGNvbmZs aWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAz LTAzLDIwMTgtMDQtMDQpKS4KKy0tIHJlamVjdHMgZW1wdHk6CitVUERBVEUgIHRlbXBvcmFs X3BlcjMKK1NFVCAgICAgdmFsaWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFs aWRfdGlsID0gJzIwMjAtMDEtMDEnCitXSEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRf dGlsIElTIE5VTEw7CitFUlJPUjogIG5ldyByb3cgZm9yIHJlbGF0aW9uICJ0ZW1wb3JhbF9w ZXIzIiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wZXIzX3ZhbGlkX2F0 X2NoZWNrIgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKFsxLDIpLCAyMDIwLTAx LTAxLCAyMDIwLTAxLTAxLCBlbXB0eSkuCistLSBzdGlsbCByZWplY3RzIGVtcHR5IHdoZW4g c2NhbGFyIHBhcnQgaXMgTlVMTDoKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBp ZCA9IE5VTEwsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAg IHZhbGlkX3RpbCA9ICcyMDIwLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZh bGlkX3RpbCBJUyBOVUxMOworRVJST1I6ICBuZXcgcm93IGZvciByZWxhdGlvbiAidGVtcG9y YWxfcGVyMyIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAidGVtcG9yYWxfcGVyM192YWxp ZF9hdF9jaGVjayIKK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChudWxsLCAyMDIw LTAxLTAxLCAyMDIwLTAxLTAxLCBlbXB0eSkuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bl cjMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlk X3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMSwyKSB8IDIw MTgtMDMtMDMgfCAyMDE4LTA0LTA0CisgWzEsMikgfCAyMDE4LTA0LTA0IHwgCisgWzIsMykg fCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wNQorIFszLDQpIHwgMjAxOC0wMS0wMSB8IAorICAg ICAgIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDUKKyg1IHJvd3MpCisKK0RST1AgVEFCTEUg dGVtcG9yYWxfcGVyMzsKKy0tCiAtLSB0ZXN0IGEgcmFuZ2Ugd2l0aCBib3RoIGEgUEsgYW5k IGEgVU5JUVVFIGNvbnN0cmFpbnQKIC0tCiBDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKQEAg LTkzMyw2ICsxNDUzLDg5IEBAIEVSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgaXMgaW4gYSBw cmltYXJ5IGtleQogQUxURVIgVEFCTEUgdGVtcG9yYWwzIEFMVEVSIENPTFVNTiB2YWxpZF9h dCBUWVBFIHRzdHpyYW5nZSBVU0lORyB0c3R6cmFuZ2UobG93ZXIodmFsaWRfYXQpLCB1cHBl cih2YWxpZF9hdCkpOwogQUxURVIgVEFCTEUgdGVtcG9yYWwzIFJFTkFNRSBDT0xVTU4gdmFs aWRfYXQgVE8gdmFsaWRfdGhydTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVN TiB2YWxpZF90aHJ1OworXGQgdGVtcG9yYWwzCisgICAgICAgICAgICAgIFRhYmxlICJwdWJs aWMudGVtcG9yYWwzIgorIENvbHVtbiB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tCisgaWQgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90 IG51bGwgfCAKKworRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CitDUkVBVEUgVEFCTEUgdGVtcG9y YWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3Rp bCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsM19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWwzCisgICAgICAgICAgICAgICAg VGFibGUgInB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0 cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAg fCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFs aWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWwzX3BrIiBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJh aW50czoKKyAgICAidGVtcG9yYWwzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJv bSA8IHZhbGlkX3RpbCkKKworU0VMRUNUIGF0dG5vdG51bGwgRlJPTSBwZ19hdHRyaWJ1dGUg V0hFUkUgYXR0cmVsaWQgPSAndGVtcG9yYWwzJzo6cmVnY2xhc3MgQU5EIGF0dG5hbWUgPSAn dmFsaWRfYXQnOworIGF0dG5vdG51bGwgCistLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisK K0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBBTFRFUiBDT0xVTU4gdmFsaWRfYXQgRFJPUCBOT1Qg TlVMTDsKK0VSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgaXMgaW4gYSBwcmltYXJ5IGtleQor QUxURVIgVEFCTEUgdGVtcG9yYWwzIEFMVEVSIENPTFVNTiB2YWxpZF9hdCBUWVBFIHRzdHpy YW5nZSBVU0lORyB0c3R6cmFuZ2UobG93ZXIodmFsaWRfYXQpLCB1cHBlcih2YWxpZF9hdCkp OworRVJST1I6ICBjYW5ub3Qgc3BlY2lmeSBVU0lORyB3aGVuIGFsdGVyaW5nIHR5cGUgb2Yg Z2VuZXJhdGVkIGNvbHVtbgorREVUQUlMOiAgQ29sdW1uICJ2YWxpZF9hdCIgaXMgYSBnZW5l cmF0ZWQgY29sdW1uLgorQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1AgQ09MVU1OIHZhbGlk X2F0OworRVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1bW4gdmFsaWRfYXQgb2YgdGFibGUgdGVt cG9yYWwzIGJlY2F1c2UgcGVyaW9kIHZhbGlkX2F0IG9uIHRhYmxlIHRlbXBvcmFsMyByZXF1 aXJlcyBpdAorSElOVDogIFlvdSBjYW4gZHJvcCBwZXJpb2QgdmFsaWRfYXQgb24gdGFibGUg dGVtcG9yYWwzIGluc3RlYWQuCitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgRFJPUCBQRVJJT0Qg Rk9SIHZhbGlkX2F0OworXGQgdGVtcG9yYWwzCisgICAgICAgICAgICAgICAgVGFibGUgInB1 YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAg ICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAorCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKy0tIFNhbWUgcmVz dWx0cyBpZiB3ZSBhZGQgdGhlIFBFUklPRCBhbmQgUEsgZnJvbSBBTFRFUiBUQUJMRToKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20g ZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAg QUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsM19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCisgICAgICAgICAgICAgICAgVGFibGUg InB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlv biB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2Ug fCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWwzX3BrIiBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoK KyAgICAidGVtcG9yYWwzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZh bGlkX3RpbCkKKworU0VMRUNUIGF0dG5vdG51bGwgRlJPTSBwZ19hdHRyaWJ1dGUgV0hFUkUg YXR0cmVsaWQgPSAndGVtcG9yYWwzJzo6cmVnY2xhc3MgQU5EIGF0dG5hbWUgPSAndmFsaWRf YXQnOworIGF0dG5vdG51bGwgCistLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK0FMVEVS IFRBQkxFIHRlbXBvcmFsMyBBTFRFUiBDT0xVTU4gdmFsaWRfYXQgRFJPUCBOT1QgTlVMTDsK K0VSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIgaXMgaW4gYSBwcmltYXJ5IGtleQogRFJPUCBU QUJMRSB0ZW1wb3JhbDM7CiAtLQogLS0gdGVzdCBQQVJUSVRJT04gQlkgZm9yIHJhbmdlcwpA QCAtMTQxNCwzMiArMjAxNywyMzYgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9tbHRybmcz IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbF9tbHRybmcz OwogLS0KLS0tIHRlc3QgRksgZGVwZW5kZW5jaWVzCi0tLQotLS0gY2FuJ3QgZHJvcCBhIHJh bmdlIHJlZmVyZW5jZWQgYnkgYW4gRkssIHVubGVzcyB3aXRoIENBU0NBREUKLUNSRUFURSBU QUJMRSB0ZW1wb3JhbDMgKAotICBpZCBpbnQ0cmFuZ2UsCi0gIHZhbGlkX2F0IGRhdGVyYW5n ZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQotKTsKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nICgKLSAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBkYXRlcmFuZ2UsCi0gIHBhcmVu dF9pZCBpbnQ0cmFuZ2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAotICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQotICAgIFJFRkVSRU5DRVMgdGVtcG9yYWwzIChpZCwgUEVSSU9EIHZh bGlkX2F0KQotKTsKLUFMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2YWxpZF9h dDsKLUVSUk9SOiAgY2Fubm90IGRyb3AgY29sdW1uIHZhbGlkX2F0IG9mIHRhYmxlIHRlbXBv cmFsMyBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0Ci1ERVRBSUw6ICBjb25z dHJhaW50IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgb24gdGFibGUgdGVtcG9yYWxfZmtfcm5n MnJuZyBkZXBlbmRzIG9uIGNvbHVtbiB2YWxpZF9hdCBvZiB0YWJsZSB0ZW1wb3JhbDMKLUhJ TlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0 cyB0b28uCi1BTFRFUiBUQUJMRSB0ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfYXQgQ0FT Q0FERTsKLU5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY29uc3RyYWludCB0ZW1wb3JhbF9m a19ybmcycm5nX2ZrIG9uIHRhYmxlIHRlbXBvcmFsX2ZrX3JuZzJybmcKLURST1AgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnJuZzsKLURST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gT04gQ09O RkxJQ1Q6IFBFUklPRHMKIC0tCi0tLSB0ZXN0IEZPUkVJR04gS0VZLCByYW5nZSByZWZlcmVu Y2VzIHJhbmdlCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIw MDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIERPIE5P VEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScs ICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBETyBOT1RISU5HOwor LS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDA1 LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQor IFsxLDIpIHwgMjAxMC0wMS0wMSB8IDIwMjAtMDEtMDEKKyBbMiwzKSB8IDIwMDUtMDEtMDEg fCAyMDA2LTAxLTAxCisoMyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9O IENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlz IG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09O RkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1Qg KGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVl IG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVj aWZpY2F0aW9uCistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sy LDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFs aWRfYXQpIERPIE5PVEhJTkc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNs dXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlv bgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAx MC0wMS0wMQorKDEgcm93KQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sx LDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZM SUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIERPIE5PVEhJTkc7CistLSBpZCBt YXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywg JzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9w ayBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbMiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBD T05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKyAgaWQg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQorIFsxLDIpIHwg MjAxMC0wMS0wMSB8IDIwMjAtMDEtMDEKKyBbMiwzKSB8IDIwMDUtMDEtMDEgfCAyMDA2LTAx LTAxCisoMyByb3dzKQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIp JywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNU IChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwz KSc7CitFUlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWlu dCBtYXRjaGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorLS0gaWQgbWF0Y2hl cyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIw LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9 IEVYQ0xVREVELmlkICsgJ1szLDQpJzsKK0VSUk9SOiAgdGhlcmUgaXMgbm8gdW5pcXVlIG9y IGV4Y2x1c2lvbiBjb25zdHJhaW50IG1hdGNoaW5nIHRoZSBPTiBDT05GTElDVCBzcGVjaWZp Y2F0aW9uCistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMp JywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRf YXQpIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitFUlJPUjog IHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0 aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w ZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKyAgaWQgICB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQorKDEgcm93KQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0w MS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEt MDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxf cGVyX3BrIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbMiwzKSc7CitFUlJP UjogIE9OIENPTkZMSUNUIERPIFVQREFURSBub3Qgc3VwcG9ydGVkIHdpdGggZXhjbHVzaW9u IGNvbnN0cmFpbnRzCistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05T VFJBSU5UIHRlbXBvcmFsX3Blcl9wayBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQg KyAnWzMsNCknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBVUERBVEUgbm90IHN1cHBvcnRl ZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBj b25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBP TiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wayBETyBVUERBVEUgU0VU IGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworRVJST1I6ICBPTiBDT05GTElDVCBETyBV UERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgWzEsMikgfCAyMDAwLTAxLTAxIHwgMjAxMC0wMS0wMQor KDEgcm93KQorCistLSB3aXRoIGEgVU5JUVVFIGNvbnN0cmFpbnQ6CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcGVyMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAor ICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworVFJVTkNBVEUgdGVtcG9yYWxfcGVy MzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0g d2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYt MDEtMDEnKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8g Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScp IE9OIENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZs aWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBD T05GTElDVCBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVS IEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwg dmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxLDIp IHwgMjAwMC0wMS0wMSB8IDIwMTAtMDEtMDEKKyBbMSwyKSB8IDIwMTAtMDEtMDEgfCAyMDIw LTAxLTAxCisgWzIsMykgfCAyMDA1LTAxLTAxIHwgMjAwNi0wMS0wMQorKDMgcm93cykKKwor VFJVTkNBVEUgdGVtcG9yYWxfcGVyMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEn LCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScs ICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0 KSBETyBOT1RISU5HOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9u IGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0t IGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIz IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAx LTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RI SU5HOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFp bnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0tIGRhdGUgbWF0 Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAn MjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJTkc7CitF UlJPUjogIHRoZXJlIGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRj aGluZyB0aGUgT04gQ09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisgIGlkICAg fCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsxLDIpIHwgMjAwMC0wMS0wMSB8IDIwMTAtMDEtMDEKKygxIHJvdykKKwor VFJVTkNBVEUgdGVtcG9yYWxfcGVyMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEn LCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScs ICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5U IHRlbXBvcmFsX3BlcjNfdXEgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBP TiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gTk9USElORzsK Ky0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIw MDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVt cG9yYWxfcGVyM191cSBETyBOT1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIz IE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisgIGlkICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsxLDIpIHwgMjAwMC0wMS0wMSB8IDIwMTAtMDEtMDEKKyBbMSwyKSB8IDIwMTAtMDEtMDEg fCAyMDIwLTAxLTAxCisgWzIsMykgfCAyMDA1LTAxLTAxIHwgMjAwNi0wMS0wMQorKDMgcm93 cykKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAt MDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZh bGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMyknOworRVJS T1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbWF0Y2hp bmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24KKy0tIGlkIG1hdGNoZXMgYnV0IG5v IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEn KSBPTiBDT05GTElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVE RUQuaWQgKyAnWzMsNCknOworRVJST1I6ICB0aGVyZSBpcyBubyB1bmlxdWUgb3IgZXhjbHVz aW9uIGNvbnN0cmFpbnQgbWF0Y2hpbmcgdGhlIE9OIENPTkZMSUNUIHNwZWNpZmljYXRpb24K Ky0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIw MDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERP IFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1KSc7CitFUlJPUjogIHRoZXJl IGlzIG5vIHVuaXF1ZSBvciBleGNsdXNpb24gY29uc3RyYWludCBtYXRjaGluZyB0aGUgT04g Q09ORkxJQ1Qgc3BlY2lmaWNhdGlvbgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9S REVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWw7CisgIGlkICAgfCB2YWxpZF9mcm9t IHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx LDIpIHwgMjAwMC0wMS0wMSB8IDIwMTAtMDEtMDEKKygxIHJvdykKKworVFJVTkNBVEUgdGVt cG9yYWxfcGVyMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0w MScpOworLS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAx JywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3Bl cjNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1syLDMpJzsKK0VSUk9S OiAgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIG5vdCBzdXBwb3J0ZWQgd2l0aCBleGNsdXNpb24g Y29uc3RyYWludHMKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05T VFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlk ICsgJ1szLDQpJzsKK0VSUk9SOiAgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIG5vdCBzdXBwb3J0 ZWQgd2l0aCBleGNsdXNpb24gY29uc3RyYWludHMKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8g Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScp IE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBETyBVUERBVEUg U0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworRVJST1I6ICBPTiBDT05GTElDVCBE TyBVUERBVEUgbm90IHN1cHBvcnRlZCB3aXRoIGV4Y2x1c2lvbiBjb25zdHJhaW50cworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWw7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxLDIpIHwgMjAwMC0wMS0wMSB8IDIwMTAtMDEt MDEKKygxIHJvdykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIzOworLS0KKy0tIHRlc3Qg RksgZGVwZW5kZW5jaWVzCistLQorLS0gY2FuJ3QgZHJvcCBhIHJhbmdlIHJlZmVyZW5jZWQg YnkgYW4gRkssIHVubGVzcyB3aXRoIENBU0NBREUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMg KAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbDNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2Us CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWwzIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0VSUk9SOiAgY2Fu bm90IGRyb3AgY29sdW1uIHZhbGlkX2F0IG9mIHRhYmxlIHRlbXBvcmFsMyBiZWNhdXNlIG90 aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBjb25zdHJhaW50IHRlbXBvcmFs X2ZrX3JuZzJybmdfZmsgb24gdGFibGUgdGVtcG9yYWxfZmtfcm5nMnJuZyBkZXBlbmRzIG9u IGNvbHVtbiB2YWxpZF9hdCBvZiB0YWJsZSB0ZW1wb3JhbDMKK0hJTlQ6ICBVc2UgRFJPUCAu Li4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitBTFRFUiBU QUJMRSB0ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfYXQgQ0FTQ0FERTsKK05PVElDRTog IGRyb3AgY2FzY2FkZXMgdG8gY29uc3RyYWludCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIG9u IHRhYmxlIHRlbXBvcmFsX2ZrX3JuZzJybmcKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnJuZzsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gY2FuJ3QgZHJvcCBhIFBFUklPRCBy ZWZlcmVuY2VkIGJ5IGFuIEZLLCB1bmxlc3Mgd2l0aCBDQVNDQURFCitDUkVBVEUgVEFCTEUg dGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZh bGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsM19wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFs aWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWwz IChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBEUk9Q IFBFUklPRCBGT1IgdmFsaWRfYXQ7CitFUlJPUjogIGNhbm5vdCBkcm9wIHBlcmlvZCB2YWxp ZF9hdCBvbiB0YWJsZSB0ZW1wb3JhbDMgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBv biBpdAorREVUQUlMOiAgY29uc3RyYWludCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIG9uIHRh YmxlIHRlbXBvcmFsX2ZrX3BlcjJwZXIgZGVwZW5kcyBvbiBjb2x1bW4gdmFsaWRfYXQgb2Yg dGFibGUgdGVtcG9yYWwzCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0 aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1Ag UEVSSU9EIEZPUiB2YWxpZF9hdCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBjb25zdHJhaW50IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgb24gdGFibGUgdGVtcG9yYWxf ZmtfcGVyMnBlcgorRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyOworRFJPUCBUQUJM RSB0ZW1wb3JhbDM7CistLQorLS0gdGVzdCBGT1JFSUdOIEtFWSwgcmFuZ2UgcmVmZXJlbmNl cyByYW5nZQogLS0KIC0tIHRlc3QgdGFibGUgc2V0dXAKIERST1AgVEFCTEUgdGVtcG9yYWxf cm5nOwpAQCAtMTQ2Nyw2ICsyMjc0LDE4IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycm5nICgKICAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICk7CitcZCB0ZW1wb3JhbF9ma19ybmcy cm5nCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmtfcm5nMnJuZyIKKyAg Q29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLQorIGlkICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxsIHwg CisgdmFsaWRfYXQgIHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyBw YXJlbnRfaWQgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhl czoKKyAgICAidGVtcG9yYWxfZmtfcm5nMnJuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6CisgICAg InRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcoaWQsIFBFUklPRCB2YWxpZF9h dCkKKwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nOwogLS0gd2l0aCBtaXNtYXRj aGVkIFBFUklPRCBjb2x1bW5zOgogLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBS RUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCkBAIC0zODcwLDgzICs0Njg5LDQwMTAgQEAgU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWwKICBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAy MS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCiAoMiByb3dzKQogCi0tLSBGSyB3aXRo IGEgY3VzdG9tIHJhbmdlIHR5cGUKLUNSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdl KHN1YnR5cGU9ZGF0ZSk7Ci1DUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCistLQorLS0g dGVzdCBGT1JFSUdOIEtFWSwgUEVSSU9EIHJlZmVyZW5jZXMgUEVSSU9ECistLQorLS0gdGVz dCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXI7CitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBteWRhdGVyYW5n ZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KQogKTsKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoCitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9wZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrCisgIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CistLSBDYW4ndCBj cmVhdGUgYSBGSyB3aXRoIGEgbWlzbWF0Y2hlZCByYW5nZSB0eXBlCitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfZmtfcGVyMnBlciAoCiAgIGlkIGludDRyYW5nZSwKLSAgdmFsaWRfYXQgbXlk YXRlcmFuZ2UsCisgIHZhbGlkX2Zyb20gaW50LAorICB2YWxpZF90aWwgaW50LAogICBwYXJl bnRfaWQgaW50NHJhbmdlLAotICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrM19ybmcycm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCi0gIENPTlNU UkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQotICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMyAoaWQsIFBF UklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NBREUKKyAgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIg KGlkLCBQRVJJT0QgdmFsaWRfYXQpCiApOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazNfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s1LDYpJywgbXlkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKLURFTEVURSBGUk9NIHRl bXBvcmFsX3JuZzMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s4LDkpJzsKLVNFTEVDVCAqIEZST00gdGVt cG9yYWxfZmszX3JuZzJybmcgV0hFUkUgaWQgPSAnWzUsNiknOwotICBpZCAgIHwgICAgICAg IHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCi0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KLSBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEt MDEpIHwgWzgsOSkKLSBbNSw2KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkK LSgyIHJvd3MpCitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZAorREVUQUlMOiAgS2V5IGNvbHVt bnMgInZhbGlkX2F0IiBvZiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYW5kICJ2YWxpZF9hdCIg b2YgdGhlIHJlZmVyZW5jZWQgdGFibGUgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczogaW50 NHJhbmdlIGFuZCBkYXRlcmFuZ2UuCistLSB3b3JrczogUEVSSU9EIGZvciBib3RoIHJlZmVy ZW5jZWQgYW5kIHJlZmVyZW5jaW5nCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl ciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwg ZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlk LCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmtfcGVyMnBlcgorICAgICAg ICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX2ZrX3BlcjJwZXIiCisgICBDb2x1bW4gICB8 ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlk ICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlk X2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3Rp bCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZCAg fCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9y YWxfZmtfcGVyMnBlcl9wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrX3BlcjJwZXJf dmFsaWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorRm9yZWln bi1rZXkgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIoaWQsIFBFUklPRCB2YWxpZF9hdCkKIAotRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazNf cm5nMnJuZzsKLURST1AgVEFCTEUgdGVtcG9yYWxfcm5nMzsKLURST1AgVFlQRSBteWRhdGVy YW5nZTsKLS0tCi0tLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlczogcmFuZ2VzCi0t LQotQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCitEUk9QIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJwZXI7CistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVt bnM6CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2 YWxpZF9hdCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2 YWxpZF9hdCBkYXRlcmFuZ2UsCi0gIG5hbWUgdGV4dCwKLSAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCi0pIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdHAx IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAo J1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIp JywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIy KScsICdbMjMsMjQpJyk7Ci1DUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0 LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUp JywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1 KScpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRf YXQsIG5hbWUpIFZBTFVFUwotICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywg JzIwMDAtMDItMDEnKSwgJ29uZScpLAotICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAy LTAxJywgJzIwMDAtMDMtMDEnKSwgJ29uZScpLAotICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcy MDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ3R3bycpOwotQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZh bGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJ T0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jZWQgdGFi bGUKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQp CistLSBib3RoIHNob3VsZCBzcGVjaWZ5IFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBkYXRlcmFuZ2Us CisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCiAgIHBhcmVudF9pZCBp bnQ0cmFuZ2UsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu Z19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAotICBD T05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQotICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQotKSBQQVJUSVRJT04g QlkgTElTVCAoaWQpOwotQ1JFQVRFIFRBQkxFIHRma3AxIFBBUlRJVElPTiBPRiB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0 KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywg J1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScp OwotQ1JFQVRFIFRBQkxFIHRma3AyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScs ICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdb MTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsK LS0tCi0tLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2luZyBpbnNlcnRzCi0tLQotSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUwotICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywg JzIwMDAtMDItMTUnKSwgJ1sxLDIpJyksCi0gICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDEt MDEtMDEnLCAnMjAwMi0wMS0wMScpLCAnWzIsMyknKSwKLSAgKCdbMiwzKScsIGRhdGVyYW5n ZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1JyksICdbMSwyKScpOwotLS0gc2hvdWxkIGZh aWw6Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCi0gICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIw MTAtMDEtMDEnLCAnMjAxMC0wMi0xNScpLCAnWzEsMiknKTsKLUVSUk9SOiAgaW5zZXJ0IG9y IHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsiCi1ERVRBSUw6ICBLZXkg KHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTAtMDEtMDEsMjAxMC0wMi0xNSkp IGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmciLgot SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUwotICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDAwLTAx LTAxJywgJzIwMDAtMDItMTUnKSwgJ1szLDQpJyk7Ci1FUlJPUjogIGluc2VydCBvciB1cGRh dGUgb24gdGFibGUgInRma3AxIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrIgotREVUQUlMOiAgS2V5IChwYXJl bnRfaWQsIHZhbGlkX2F0KT0oWzMsNCksIFsyMDAwLTAxLTAxLDIwMDAtMDItMTUpKSBpcyBu b3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIi4KKyAgUEVS SU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgbXVzdCB1 c2UgUEVSSU9EIHdoZW4gcmVmZXJlbmNpbmcgYSBwcmltYXJ5IHVzaW5nIFdJVEhPVVQgT1ZF UkxBUFMKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9E IHZhbGlkX2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50 NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0VSUk9S OiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0 IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBS RUZFUkVOQ0VTIFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNp ZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFy ZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9h dCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKK0VSUk9SOiAgZm9yZWlnbiBr ZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVm ZXJlbmNpbmcgdGFibGUKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJF TkNFUyAoaWQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFy ZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkKQorKTsKK0VSUk9S OiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1 dCBub3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMg KGlkLCBQRVJJT0QgdmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl ciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwg ZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0 KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5j ZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIHdpdGggaW5mZXJy ZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6CistLSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAg dmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1Ig dmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyCispOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyOworLS0gKHBhcmVu dF9pZCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxp ZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCispOworRVJST1I6ICBm b3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90 IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBs aWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl ciAoaWQsIFBFUklPRCBpZCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHJlZmVyZW5jZWQt Y29sdW1ucyBsaXN0IG11c3Qgbm90IGNvbnRhaW4gZHVwbGljYXRlcworLS0gVHdvIHNjYWxh ciBjb2x1bW5zCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjI7CitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZh bGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVy Ml9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyICgKKyAgaWQgaW50NHJh bmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRf aWQxIGludDRyYW5nZSwKKyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1Ig dmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKyk7 CitcZCB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICAgICAgICAgICBUYWJsZSAicHVibGljLnRl bXBvcmFsX2ZrMl9wZXIycGVyIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRp b24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdl IHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwg ICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQxIHwgaW50NHJhbmdlIHwgICAgICAg ICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQyIHwgaW50NHJhbmdlIHwgICAgICAgICAg IHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycGVyX3BrIiBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJh aW50czoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJwZXJfdmFsaWRfYXRfY2hlY2siIENIRUNL ICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6Cisg ICAgInRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIo aWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazJf cGVyMnBlcjsKIC0tCi0tLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCist LSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCiAtLQotVVBEQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDAw LTAxLTAxJywgJzIwMDAtMDItMTMnKSBXSEVSRSBpZCA9ICdbMiwzKSc7Ci0tLSBtb3ZlIGEg cm93IGZyb20gdGhlIGZpcnN0IHBhcnRpdGlvbiB0byB0aGUgc2Vjb25kCi1VUERBVEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBTRVQgaWQgPSAnWzQsNSknIFdIRVJFIGlk ID0gJ1sxLDIpJzsKLS0tIG1vdmUgYSByb3cgZnJvbSB0aGUgc2Vjb25kIHBhcnRpdGlvbiB0 byB0aGUgZmlyc3QKLVVQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFNF VCBpZCA9ICdbMSwyKScgV0hFUkUgaWQgPSAnWzQsNSknOworQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwK KyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBG T1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlk LCBQRVJJT0QgdmFsaWRfYXQpOworLS0gVHdvIHNjYWxhciBjb2x1bW5zOgorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9m cm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQxIGludDRyYW5nZSwK KyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlk X2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIFBFUklPRCB2YWxpZF9hdCk7CitcZCB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICAg ICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX2ZrMl9wZXIycGVyIgorICAgQ29sdW1u ICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0K KyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2 YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxp ZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRf aWQxIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQy IHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAg dmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBv cmFsX2ZrMl9wZXIycGVyX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJw ZXJfdmFsaWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorRm9y ZWlnbi1rZXkgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIiBG T1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKwor LS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSwgYW5kIHdyb25n IGNvbHVtbiB0eXBlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maywKKyAgRFJPUCBQRVJJT0QgRk9S IHZhbGlkX2F0LAorICBBTFRFUiBDT0xVTU4gdmFsaWRfZnJvbSBUWVBFIHRpbWVzdGFtcCwK KyAgQUxURVIgQ09MVU1OIHZhbGlkX3RpbCBUWVBFIHRpbWVzdGFtcCwKKyAgQUREIFBFUklP RCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgY2Fubm90IGJlIGltcGxlbWVudGVkCitERVRB SUw6ICBLZXkgY29sdW1ucyAidmFsaWRfYXQiIG9mIHRoZSByZWZlcmVuY2luZyB0YWJsZSBh bmQgInZhbGlkX2F0IiBvZiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBhcmUgb2YgaW5jb21wYXRp YmxlIHR5cGVzOiB0c3JhbmdlIGFuZCBkYXRlcmFuZ2UuCitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisgIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdCwKKyAgQUxURVIgQ09M VU1OIHZhbGlkX2Zyb20gVFlQRSBkYXRlLAorICBBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZ UEUgZGF0ZSwKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCk7CistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CistLSBzaG91bGQgZmFpbCBi ZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsyCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIGlkKTsKK0VSUk9SOiAgZm9y ZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBs aWNhdGVzCistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0KK0RFTEVURSBGUk9N IHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXI7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UworICAoJ1sxLDIpJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpLAorICAoJ1sxLDIp JywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpLAorICAoJ1syLDMpJywgJzIwMTgtMDEt MDEnLCAnMjAxOC0wMS0wNScpLAorICAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJwZXJfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIp JywgJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScsICdbMSwyKScpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEn LCAnWzEsMiknKTsKKy0tIHNob3VsZCBmYWlsOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXI7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBv cmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRh YmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gb2theSBhZ2FpbjoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsK Ky0tCistLSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVmCistLQorU0VMRUNUIHBnX2dldF9j b25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAn dGVtcG9yYWxfZmtfcGVyMnBlcl9mayc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIo aWQsIFBFUklPRCB2YWxpZF9hdCkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNpbmcgaW5zZXJ0cworLS0KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCAn MjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJywgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMicsICcyMDE4 LTA0LTAxJywgJ1sxLDIpJyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUg InRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFs aWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSkpIGlzIG5vdCBwcmVzZW50 IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gbm93IGl0IHNob3VsZCB3b3JrOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbMSwyKScsICcyMDE4LTAyLTAzJywgJzIwMTgtMDMtMDMnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJywgJ1sx LDIpJyk7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorLS0gc2xp ZGUgdGhlIGVkZ2UgYWNyb3NzIGEgcmVmZXJlbmNlZCB0cmFuc2l0aW9uOgorVVBEQVRFIHRl bXBvcmFsX2ZrX3BlcjJwZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsIHZhbGlk X3RpbCA9ICcyMDE4LTAyLTIwJyBXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBzaG91bGQgZmFp bDoKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wNS0wMScgV0hFUkUgaWQgPSAnWzEsMiknOwor RVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVy IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVy X2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4 LTAxLTAyLDIwMTgtMDUtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxf cGVyIi4KK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCBwYXJlbnRfaWQgPSAnWzgs OSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lk LCB2YWxpZF9hdCk9KFs4LDkpLCBbMjAxOC0wMS0wMiwyMDE4LTAyLTIwKSkgaXMgbm90IHBy ZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BlciIuCistLSBBTFRFUiBGSyBERUZFUlJBQkxF CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMKKyAgICAoJ1s1LDYpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpLAorICAgICgnWzUsNiknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7Cisg IElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICAgKCdbMyw0KScsICcyMDE4LTAxLTA1Jywg JzIwMTgtMDEtMTAnLCAnWzUsNiknKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAg IERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknOyAtLXNob3VsZCBub3QgZmFpbCB5ZXQuCitDT01N SVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24g dGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAi dGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIi CitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4 LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19w ZXIycGVyIi4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04K Ky0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIK KyAgT04gVVBEQVRFIE5PIEFDVElPTjsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMg YmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw2 KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIg U0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAx JyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2 ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFu Z2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNikn OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbNSw2KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAg KCdbNSw2KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTCisgICgnWzMsNCknLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1 LDYpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDIt MDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMy0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQg dmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEn OworLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUworICAoJ1s2LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpLAorICAoJ1s2LDcpJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNCw1KScsICcyMDE4LTAxLTE1JywgJzIwMTgtMDIt MTUnLCAnWzYsNyknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIKK1NFVCB2YWxpZF9mcm9tID0g Q0FTRSBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgVEhFTiAnMjAxOC0wMS0wMScK KyAgICAgICAgICAgICAgICAgICAgICBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScg VEhFTiAnMjAxOC0wMS0wNScgRU5EOjpkYXRlLAorICAgIHZhbGlkX3RpbCA9ICBDQVNFIFdI RU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTA1JworICAgICAg ICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcy MDE4LTAzLTAxJyBFTkQ6OmRhdGUKK1dIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBk YXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBidXQgc3RpbGwgdmFsaWQ6Cist LSBUaGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0 IHBrIHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJp bmVkLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMKKyAgKCdbMSwyKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSwK KyAgKCdbMSwyKScsICcyMDE4LTAzLTAxJywgJzIwMTgtMDYtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZCkgVkFMVUVTCisgICgnWzEsMiknLCAnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJywg J1sxLDIpJyksCisgICgnWzIsMyknLCAnMjAxOC0wMS0xNScsICcyMDE4LTA1LTAxJywgJ1sx LDIpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTgtMDEt MTUnLCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMScKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgZ3Jvd2lu ZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBpcyBmaW5lOgorVVBEQVRFIHRlbXBvcmFsX3BlciBT RVQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEn CitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTI1Jzo6ZGF0 ZTsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBhbmQg Y2hhbmdpbmcgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTE1 JywgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZh bGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVy MnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAx LDIwMTgtMDMtMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X2ZrX3BlcjJwZXIiLgorLS0gYSBQSyB1cGRhdGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52 YWxpZGF0ZXMgdGhlIHdob2xlIHJhbmdlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQg PSAnWzIsMyknCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAx LTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9y YWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBz dGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0g YSBQSyB1cGRhdGUgdGhhdCBsb3NlcyB0aW1lIGZyb20gYm90aCBlbmRzLCBidXQgaXMgc3Rp bGwgdmFsaWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUworICAoJ1syLDMpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNSw2KScsICcyMDE4LTAxLTE1 JywgJzIwMTgtMDItMDEnLCAnWzIsMyknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZh bGlkX2Zyb20gPSAnMjAxOC0wMS0xNScsIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTE1JworV0hF UkUgaWQgPSAnWzIsMyknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJv dGggYXJlIHJlZmVyZW5jZWQ6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9t ID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0g JzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCist LSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwg YnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19wZXIycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2Zr CisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIFVQREFURSB0ZW1wb3Jh bF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2 LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKK0VSUk9SOiAgdXBkYXRl IG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsy MDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUg InRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0gY2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZh aWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9 ICdbNSw2KScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9 ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVt cG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9m a19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDog IEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBp cyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgor LS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1w b3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRP ICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOwor LS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0x MCcKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVt cG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiks IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFi bGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIg V0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzUsNikgfCAyMDE2LTAyLTAxIHwgMjAxNi0wMy0wMQorIFs1 LDYpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2KSB8IDIwMTgtMDEtMDMgfCAy MDE4LTAyLTAxCisgWzcsOCkgfCAyMDE4LTAxLTAyIHwgMjAxOC0wMS0wMworKDQgcm93cykK KworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgnWzMs NCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFs aWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEtMTAgfCBbNSw2 KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNF VCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScK K1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQg dmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1 cGRhdGVzIFJFU1RSSUNUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9m a19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcGVyCisgIE9OIFVQREFURSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRl IHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2Vk OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbNSw2KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK1VQREFU RSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3Rp bCA9ICcyMDE2LTAyLTAxJyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIHVwZGF0ZSB0 aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQg YmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hF UkUgaWQgPSAnWzUsNiknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw2KScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSwKKyAgKCdbNSw2KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCAnMjAxOC0wMS0wNScsICcy MDE4LTAxLTEwJywgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9m cm9tID0gJzIwMTYtMDItMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMy0wMScKK1dIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGls ID0gJzIwMTgtMDMtMDEnOworLS0gQSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBiZXR3 ZWVuIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s2LDcpJywgJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpLAorICAoJ1s2LDcpJywgJzIwMTgtMDItMDEnLCAnMjAxOC0w My0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbNCw1KScsICcyMDE4LTAx LTE1JywgJzIwMTgtMDItMTUnLCAnWzYsNyknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIKK1NF VCB2YWxpZF9mcm9tID0gQ0FTRSBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgVEhF TiAnMjAxOC0wMS0wMScKKyAgICAgICAgICAgICAgICAgICAgICBXSEVOIHZhbGlkX2Zyb20g PSAnMjAxOC0wMi0wMScgVEhFTiAnMjAxOC0wMS0wNScgRU5EOjpkYXRlLAorICAgIHZhbGlk X3RpbCA9ICBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4 LTAxLTA1JworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4 LTAyLTAxJyBUSEVOICcyMDE4LTAzLTAxJyBFTkQ6OmRhdGUKK1dIRVJFIGlkID0gJ1s2LDcp JzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2 aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5nIG9mIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgor REVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNiw3KSwgWzIwMTgtMDEtMDEsMjAxOC0w Mi0wMSkpIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIu CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYnV0IHN0 aWxsIHZhbGlkOgorLS0gVGhlcmUgYXJlIHR3byByZWZlcmVuY2VzOiBvbmUgZnVsZmlsbGVk IGJ5IHRoZSBmaXJzdCBwayByb3csCistLSB0aGUgb3RoZXIgZnVsZmlsbGVkIGJ5IGJvdGgg cGsgcm93cyBjb21iaW5lZC4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcy MDE4LTAzLTAxJyksCisgICgnWzEsMiknLCAnMjAxOC0wMy0wMScsICcyMDE4LTA2LTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgJzIwMTgtMDEtMTUnLCAn MjAxOC0wMi0wMScsICdbMSwyKScpLAorICAoJ1syLDMpJywgJzIwMTgtMDEtMTUnLCAnMjAx OC0wNS0wMScsICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJv bSA9ICcyMDE4LTAxLTE1JywgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnCitXSEVSRSBpZCA9 ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsg dXBkYXRlIGdyb3dpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgaXMgZmluZToKK1VQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScsIHZhbGlkX3RpbCA9 ICcyMDE4LTAzLTAxJworV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAx OC0wMS0yNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5j ZWQgcmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgcmFu Z2U6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbMiwzKScsIHZhbGlkX2Zyb20g PSAnMjAxOC0wMS0xNScsIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJworV0hFUkUgaWQgPSAn WzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CitFUlJPUjogIHVw ZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgUkVTVFJJ Q1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAo aWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyByZWZl cmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0gYSBQSyB1cGRh dGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIHJhbmdlOgor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzIsMyknCitXSEVSRSBpZCA9ICdbMSwy KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBkYXRl IG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBSRVNUUklDVCBz ZXR0aW5nIG9mIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJf ZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwg dmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMy0wMSkpIGlzIHJlZmVyZW5j ZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCistLSBhIFBLIHVwZGF0ZSB0 aGF0IGxvc2VzIHRpbWUgZnJvbSBib3RoIGVuZHMsIGJ1dCBpcyBzdGlsbCB2YWxpZDoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTCisgICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQpIFZBTFVFUworICAoJ1s1LDYpJywgJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0w MScsICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcy MDE4LTAxLTE1JywgdmFsaWRfdGlsID0gJzIwMTgtMDItMTUnCitXSEVSRSBpZCA9ICdbMiwz KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJl bmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIFVQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9 ICcyMDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zyb20gPSAn MjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBSRVNUUklD VCBzZXR0aW5nIG9mIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChp ZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHJlZmVy ZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitST0xMQkFDSzsKKy0t IGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIg U0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0g JzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVw ZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgUkVTVFJJ Q1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIy cGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJTDogIEtleSAo aWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyByZWZl cmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiLgorLS0gY2hhbmdpbmcg YW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAz JworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcg anVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9 ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5nIG9m IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHJlZmVyZW5jZWQgZnJvbSB0 YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bl ciBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIwMTYtMDItMDEgfCAyMDE2LTAzLTAxCisg WzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1LDYpIHwgMjAxOC0wMS0wMyB8 IDIwMTgtMDItMDEKKyBbNyw4KSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAxLTAzCisoNCByb3dz KQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgaW4gKCdb Myw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2 YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCAyMDE4LTAxLTA1IHwgMjAxOC0wMS0xMCB8IFs1 LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3Jk IGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9wZXIg U0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAx JworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFO RCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3Jh bF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m aworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcGVyOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBiZWNh dXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDYpJywg JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVy IFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZl biB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5n ZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JyksCisgICgnWzUsNiknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcs ICdbNSw2KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgt MDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJl ZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0w Mi0wMSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3Bl ciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBl cl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlk LCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KKy0tIGEgUEsg ZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBidXQgbm90 ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJw ZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBE RUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxf cGVyIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19w ZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEt MDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9y YWxfZmtfcGVyMnBlciIuCistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBv a2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDYp JzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9y YWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAn MjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRl bGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtf cGVyMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAx LTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBv cmFsX2ZrX3BlcjJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQg aW4gKCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1LDYpIHwgMjAx OC0wMS0wMyB8IDIwMTgtMDItMDEKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCist LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8 IDIwMTgtMDEtMDUgfCAyMDE4LTAxLTEwIHwgWzUsNikKKygxIHJvdykKKworLS0gdGhlbiBk ZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBz dWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDIt MDEnOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCistLQor VFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9O IERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNiknLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNikn OworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJp YyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAg KCdbNSw2KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw2KScsICcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzMsNCknLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDYpJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0g JzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBhIFBLIGRl bGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZv cmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy CisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgREVG RVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3Bl ciBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5E IHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5nIG9mIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxl ICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShb NSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVu cmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAz JworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNiknOwor RVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xh dGVzIFJFU1RSSUNUIHNldHRpbmcgb2YgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9y YWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRB SUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAx KSkgaXMgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCkn KSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFs1LDYpIHwgMjAx OC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2KSB8IDIwMTgtMDEtMDMgfCAyMDE4LTAyLTAx CisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUg aWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCAyMDE4LTAxLTA1IHwgMjAxOC0w MS0xMCB8IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rpbmcg RksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zyb20gPSAnMjAx OC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tCistLSBwZXIycGVy IHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLQorLS0gVE9DOgorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCist LSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBT RVQgTlVMTAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURF ICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdv IHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2Nh bGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIg Y29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xz LCBTRVQgTlVMTCBzdWJzZXQpCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQg KHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0 d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0 ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m aywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3BlcgorICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBT RVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEw MCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbNyw4KQorIFsxMDAsMTAxKSB8 IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1G UE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsOCknIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4 LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8 IDIwMjAtMDEtMDEgfCBbNyw4KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAx LTAxIHwgWzcsOCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn LCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDEwKScgV0hF UkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEt MDEgfCBbOSwxMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4 LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FT Q0FERQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQor IFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykKKygyIHJvd3Mp CisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgfCBwYXJlbnRfaWQgCistLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlk ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg WzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBOVUxMCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVy OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorICAgIE9O IERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAx LTAxIHwgMjAyMC0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAx LTAxIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRl bXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8 IAorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgCisgWzEwMCwxMDEp IHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VU IGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAx OC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAy MS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIE5VTEwKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFs X2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRl czoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2 YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAx LTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAor IFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykKKygzIHJvd3Mp CisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAg fCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4 LTAxLTAxIHwgMjAxOS0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIw LTAxLTAxIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAKKygz IHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19w ZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAo J1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVy MnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIw MSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsyMDAsMjAxKSB8IDIwMjAtMDEt MDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Bl ciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScsIG51bGwsIG51bGwp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBB TFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgICBPTiBERUxF VEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCkn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBl ciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0w MS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwg MjAyMS0wMS0wMSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQ REFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8 IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTkt MDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8 IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWy0xLDAp CisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkp JywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDkpJyk7 CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4 LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDAp CisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93 cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbLTEsLTFdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZh bGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEt MDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAy MC0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAx IHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKQorIFsxMDAs MTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwg MjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlciBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdb MjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwg MjAyMC0wMS0wMSB8IFstMSwwKQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAx LTAxIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxf cGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICdb Niw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJf cGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUg Q0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFs X3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxp ZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsx MDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwg WzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFs X3BlcjIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3Rp bCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8 IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEwMCwx MDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBb MTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs3LDgpICAgICAgfCBbNiw3 KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sy MDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknLCAnWzgsOSkn KTsKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkg fCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs5LDEwKSAgICAgfCBbOCw5KQorIFsyMDAs MjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkgICAgICB8IFs4LDkpCiso MiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAo dHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFs X2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3 KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAx OC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkg fCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDIgcm93 cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdI RVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworIGlkIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor KDAgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknLCAnWzgsOSknKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIw MjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQor VFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbNiw3KScsICdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVy X2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2 YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUg U0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUg aWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYs NykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEg fCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgor VVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRf ZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgICAgICAgICAgICB8 IAorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8 IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgICAgICAgICAgICB8 IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sy MDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknLCAnWzgsOSkn KTsKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkg fCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkg fCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93 cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28g c2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsy X3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDcpJywg J1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAx LTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIw MTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IDIw MjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQor CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUg aWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgICAg ICAgICAgICB8IAorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAg ICAgICAgICB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgICAg ICAgICAgICB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSkn LCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4 LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAx OC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzIwMCwyMDEpIHwgMjAy MC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisK Ky0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxh ciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwg dGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JywgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQg dGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERB VEUgU0VUIE5VTEw7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4g T04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVy X2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2 YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUg U0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUg aWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYs NykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEg fCAgICAgICAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0w MS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxl dGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2 YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8ICAgICAgICAgICAgfCBbNiw3KQor IFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IFs2 LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAgICAgICAgICAg IHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDkpJywg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgt MDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwg MjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3Mp CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdv IHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2Zr Ml9wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgbnVsbCwg bnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMg KCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDcpJywgJ1s2 LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xV TU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBw YXJlbnRfaWQyIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04g REVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAn WzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAy MDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAx KSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsx MDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcp CisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIy IFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAg fCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSww KSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4 LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDEw KScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50 X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAx IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIx LTAxLTAxIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0t CitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzYsNyknLCAnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQy IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBb Niw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0w MSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAy MS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1 cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAg fCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSww KSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4 LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9 ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3Rp bCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAs MjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkgICAgICB8IFs4LDkpCiso MiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFV TFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn Wy0xLC0xXScsICdbNiw3KScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNykn LCAnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScsICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3Ug Y2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsy X3BlcjJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwt MV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0 KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJl ZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0g b2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4g cGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAgIE9O IERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxU OworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIw MTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAx IHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMjAt MDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCist LSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQx ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWy0xLDAp ICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBb LTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0w MSB8IFstMSwwKSAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlk MSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkp JywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0x XScsICdbOCw5KScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQx ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEp IHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWzgsOSkKKyBbMjAw LDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQor KDIgcm93cykKKworLS0KKy0tIHRlc3QgRk9SRUlHTiBLRVksIHJhbmdlIHJlZmVyZW5jZXMg UEVSSU9ECistLQorLS0gdGVzdCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9w ZXIgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gY29uc3RyYWludCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrIG9uIHRhYmxlIHRlbXBvcmFsX2ZrX3BlcjJwZXIKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9wZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20g ZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyk7CistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlz bWF0Y2hlZCByYW5nZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgaW50NHJhbmdlLAorICBwYXJlbnRfaWQg aW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3JuZzJwZXJfZmsiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZAorREVUQUlMOiAgS2V5IGNvbHVt bnMgInZhbGlkX2F0IiBvZiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYW5kICJ2YWxpZF9hdCIg b2YgdGhlIHJlZmVyZW5jZWQgdGFibGUgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczogaW50 NHJhbmdlIGFuZCBkYXRlcmFuZ2UuCistLSB3b3JrczogUEVSSU9EIGZvciByZWZlcmVuY2Vk LCByYW5nZSBmb3IgcmVmZXJlbmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9E IHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgICAgICAgICAgVGFi bGUgInB1YmxpYy50ZW1wb3JhbF9ma19ybmcycGVyIgorICBDb2x1bW4gICB8ICAgVHlwZSAg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgIHwg aW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCAgfCBkYXRl cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHBhcmVudF9pZCB8IGludDRyYW5n ZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9m a19ybmcycGVyX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmtfcm5nMnBl cl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcihpZCwgUEVSSU9EIHZhbGlkX2F0KQorCitEUk9QIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJwZXI7CistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6 CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxp ZF9hdCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1 c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJl bmNlZCB0YWJsZQorLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2 YWxpZF9hdCkKKy0tIGJvdGggc2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRh dGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgbXVzdCB1c2UgUEVSSU9E IHdoZW4gcmVmZXJlbmNpbmcgYSBwcmltYXJ5IHVzaW5nIFdJVEhPVVQgT1ZFUkxBUFMKKy0t IChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0 KQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9h dCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2Vz IFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2lu ZyB0YWJsZQorLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0 XQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9h dCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVu Y2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5n ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIg KGlkKQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVy ZW5jaW5nIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRf aWQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJh bmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFs aWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVm ZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gd2l0aCBp bmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKKy0tIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJh bmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cgorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcjsKKy0tIChwYXJlbnRfaWQp IFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJw ZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50 X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2Vz IFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2lu ZyB0YWJsZQorLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNl ZCBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBp bnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5n ZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lk KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIGlkKQorKTsKK0VS Uk9SOiAgZm9yZWlnbiBrZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29u dGFpbiBkdXBsaWNhdGVzCistLSBUd28gc2NhbGFyIGNvbHVtbnMKK0RST1AgVEFCTEUgdGVt cG9yYWxfcGVyMiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjb25zdHJh aW50IHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIG9uIHRhYmxlIHRlbXBvcmFsX2ZrMl9wZXIy cGVyCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisg IGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUs CisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENP TlNUUkFJTlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9y bmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBh cmVudF9pZDEgaW50NHJhbmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVy X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZh bGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrMl9ybmcycGVyCisgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudGVtcG9yYWxfZmsyX3JuZzJwZXIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAg ICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAg fCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICAgfCBk YXRlcmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHBhcmVudF9pZDEgfCBpbnQ0 cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFu Z2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxf ZmsyX3JuZzJwZXJfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcm5n MnBlcl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2 YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyKGlkMSwgaWQyLCBQRVJJT0QgdmFs aWRfYXQpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CistLQorLS0gdGVz dCBBTFRFUiBUQUJMRSBBREQgQ09OU1RSQUlOVAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2Us CisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFs aWRfYXQpOworLS0gVHdvIHNjYWxhciBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrMl9ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2Us CisgIHBhcmVudF9pZDEgaW50NHJhbmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsy X3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmsKKyAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0 KTsKK1xkIHRlbXBvcmFsX2ZrMl9ybmcycGVyCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMu dGVtcG9yYWxfZmsyX3JuZzJwZXIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxh dGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFu Z2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICAgfCBkYXRlcmFuZ2Ug fCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAg ICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmsyX3JuZzJw ZXJfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0Zv cmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcm5nMnBlcl9mayIg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisK Ky0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUsIGFuZCB3cm9u ZyBjb2x1bW4gdHlwZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmssCisgIEFMVEVSIENPTFVNTiB2 YWxpZF9hdCBUWVBFIHRzcmFuZ2UgVVNJTkcgdHNyYW5nZShsb3dlcih2YWxpZF9hdCksIHVw cGVyKHZhbGlkX2F0KSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsK K0VSUk9SOiAgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnBlcl9m ayIgY2Fubm90IGJlIGltcGxlbWVudGVkCitERVRBSUw6ICBLZXkgY29sdW1ucyAidmFsaWRf YXQiIG9mIHRoZSByZWZlcmVuY2luZyB0YWJsZSBhbmQgInZhbGlkX2F0IiBvZiB0aGUgcmVm ZXJlbmNlZCB0YWJsZSBhcmUgb2YgaW5jb21wYXRpYmxlIHR5cGVzOiB0c3JhbmdlIGFuZCBk YXRlcmFuZ2UuCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFMVEVSIENP TFVNTiB2YWxpZF9hdCBUWVBFIGRhdGVyYW5nZSBVU0lORyBkYXRlcmFuZ2UobG93ZXIodmFs aWRfYXQpOjpkYXRlLCB1cHBlcih2YWxpZF9hdCk6OmRhdGUpOworLS0gd2l0aCBpbmZlcnJl ZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyOworLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVm ZXJlbmNlZCBjb2x1bW5zOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrMgorICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl ciAoaWQsIFBFUklPRCBpZCk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHJlZmVyZW5jZWQtY29s dW1ucyBsaXN0IG11c3Qgbm90IGNvbnRhaW4gZHVwbGljYXRlcworLS0KKy0tIHRlc3Qgd2l0 aCByb3dzIGFscmVhZHkKKy0tCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbMSwyKScsICcyMDE4LTAx LTAyJywgJzIwMTgtMDItMDMnKSwKKyAgKCdbMSwyKScsICcyMDE4LTAzLTAzJywgJzIwMTgt MDQtMDQnKSwKKyAgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSwKKyAg KCdbMyw0KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDEpJywgJ1sxLDIp Jyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJwZXJfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMyknLCAnWzIwMTgtMDEtMDIsMjAxOC0wNC0w MSknLCAnWzEsMiknKTsKKy0tIHNob3VsZCBmYWlsOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisg IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXI7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRl bXBvcmFsX2ZrX3JuZzJwZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX2ZrX3JuZzJwZXJfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRf YXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSkpIGlzIG5vdCBwcmVzZW50IGlu IHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gb2theSBhZ2FpbjoKK0RFTEVURSBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cjsKKy0tCistLSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVmCistLQorU0VMRUNUIHBnX2dl dF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUg PSAndGVtcG9yYWxfZmtfcm5nMnBlcl9mayc7CisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIoaWQsIFBFUklPRCB2YWxpZF9hdCkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVm ZXJlbmNpbmcgaW5zZXJ0cworLS0KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsICdbMjAxOC0wMS0w MiwyMDE4LTAyLTAxKScsICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzIsMyknLCAnWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSknLCAnWzEsMiknKTsKK0VSUk9S OiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnBlcl9mayIK K0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0w MiwyMDE4LTA0LTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BlciIu CistLSBub3cgaXQgc2hvdWxkIHdvcms6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDItMDMn LCAnMjAxOC0wMy0wMycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgJ1syMDE4LTAxLTAyLDIw MTgtMDQtMDEpJywgJ1sxLDIpJyk7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRh dGVzCistLQorLS0gc2xpZGUgdGhlIGVkZ2UgYWNyb3NzIGEgcmVmZXJlbmNlZCB0cmFuc2l0 aW9uOgorVVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgU0VUIHZhbGlkX2F0ID0gJ1syMDE4 LTAxLTAyLDIwMTgtMDItMjApJyBXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBzaG91bGQgZmFp bDoKK1VQREFURSB0ZW1wb3JhbF9ma19ybmcycGVyIFNFVCB2YWxpZF9hdCA9ICdbMjAxOC0w MS0wMiwyMDE4LTA1LTAxKScgV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBpbnNlcnQg b3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIiB2aW9sYXRlcyBmb3Jl aWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIgorREVUQUlMOiAg S2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDUt MDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGVyIi4KK1VQREFURSB0 ZW1wb3JhbF9ma19ybmcycGVyIFNFVCBwYXJlbnRfaWQgPSAnWzgsOSknIFdIRVJFIGlkID0g J1sxLDIpJzsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxf Zmtfcm5nMnBlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf Zmtfcm5nMnBlcl9mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFs4 LDkpLCBbMjAxOC0wMS0wMiwyMDE4LTAyLTIwKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUg InRlbXBvcmFsX3BlciIuCistLSBBTFRFUiBGSyBERUZFUlJBQkxFCitCRUdJTjsKKyAgSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMKKyAgICAoJ1s1LDYpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAgICgn WzUsNiknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CisgIElOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAg ICAoJ1szLDQpJywgJ1syMDE4LTAxLTA1LDIwMTgtMDEtMTApJywgJ1s1LDYpJyk7CisgIEFM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJF RDsKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJzsgLS1z aG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlUOyAtLSBzaG91bGQgZmFpbCBoZXJlLgorRVJS T1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0 ZW1wb3JhbF9ma19ybmcycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9OIFVQREFURSBOTyBBQ1RJT047CistLSBh IFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3Qg cmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx Jyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEn LCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQ SyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyBy ZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9y YWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNiknLCAnMjAxOC0w MS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNiknLCAnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCAnWzIwMTgtMDEtMDUsMjAxOC0w MS0xMCknLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20g PSAnMjAxNi0wMi0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAn MjAxOC0wMy0wMSc7CistLSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4g dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzYsNyknLCAnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTCisgICgnWzQsNSknLCAnWzIwMTgtMDEtMTUsMjAxOC0wMi0xNSkn LCAnWzYsNyknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIKK1NFVCB2YWxpZF9mcm9tID0gQ0FT RSBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgVEhFTiAnMjAxOC0wMS0wMScKKyAg ICAgICAgICAgICAgICAgICAgICBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgVEhF TiAnMjAxOC0wMS0wNScgRU5EOjpkYXRlLAorICAgIHZhbGlkX3RpbCA9ICBDQVNFIFdIRU4g dmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTA1JworICAgICAgICAg ICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4 LTAzLTAxJyBFTkQ6OmRhdGUKK1dIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRl IHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBU aGVyZSBhcmUgdHdvIHJlZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBr IHJvdywKKy0tIHRoZSBvdGhlciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVk LgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbMSwyKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSwKKyAg KCdbMSwyKScsICcyMDE4LTAzLTAxJywgJzIwMTgtMDYtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAg KCdbMSwyKScsICdbMjAxOC0wMS0xNSwyMDE4LTAyLTAxKScsICdbMSwyKScpLAorICAoJ1sy LDMpJywgJ1syMDE4LTAxLTE1LDIwMTgtMDUtMDEpJywgJ1sxLDIpJyk7CitVUERBVEUgdGVt cG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMTUnLCB2YWxpZF90aWwgPSAn MjAxOC0wMy0wMScKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgt MDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgZ3Jvd2luZyB0aGUgcmVmZXJlbmNlZCBy YW5nZSBpcyBmaW5lOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcy MDE4LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnCitXSEVSRSBpZCA9ICdbMSwy KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTI1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRl IHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBhbmQgY2hhbmdpbmcgdGhlIGlkIGlu dmFsaWRhdGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlk ID0gJ1syLDMpJywgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTE1JywgdmFsaWRfdGlsID0gJzIw MTgtMDMtMDEnCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAx LTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9y YWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19y bmcycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtl eSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBz dGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorLS0g YSBQSyB1cGRhdGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xl IHJhbmdlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzIsMyknCitXSEVSRSBp ZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKK0VSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBm b3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJs ZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorLS0gYSBQSyB1cGRhdGUgdGhhdCBs b3NlcyB0aW1lIGZyb20gYm90aCBlbmRzLCBidXQgaXMgc3RpbGwgdmFsaWQ6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUwor ICAoJ1syLDMpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUwor ICAoJ1s1LDYpJywgJ1syMDE4LTAxLTE1LDIwMTgtMDItMDEpJywgJ1syLDMpJyk7CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMTUnLCB2YWxpZF90 aWwgPSAnMjAxOC0wMi0xNScKK1dIRVJFIGlkID0gJ1syLDMpJzsKKy0tIGEgUEsgdXBkYXRl IHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBv cmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIw MTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0w MS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9SOiAgdXBkYXRlIG9y IGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf Zmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4 LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX3JuZzJwZXIiLgorLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNl IGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsKKyAg QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVS UkVEOworICBVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEt MDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitD T01NSVQ7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3Bl ciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnBl cl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiCitERVRBSUw6ICBLZXkgKGlk LCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIi4KKy0tIGNoYW5n aW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlk ID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0ZSBv ciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkg Y29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFs X2ZrX3JuZzJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAx OC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0 ZW1wb3JhbF9ma19ybmcycGVyIi4KKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0 IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw4KScK K1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgor VVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9 ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFs X3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5n MnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiCitERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3Rp bGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIi4KK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGls ICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFs1LDYpIHwgMjAxNi0w Mi0wMSB8IDIwMTYtMDMtMDEKKyBbNSw2KSB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTAyCisg WzUsNikgfCAyMDE4LTAxLTAzIHwgMjAxOC0wMi0wMQorIFs3LDgpIHwgMjAxOC0wMS0wMiB8 IDIwMTgtMDEtMDMKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnBlciBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBp ZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4LTAx LTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKworLS0gdGhlbiBkZWxldGUgdGhl IG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzMsNCknOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFs aWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9y YWxfZmtfcm5nMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJf ZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlcgorICBPTiBVUERBVEUgUkVTVFJJQ1Q7CistLSBhIFBLIHVw ZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJl bmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzUsNiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitV UERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxp ZF90aWwgPSAnMjAxNi0wMi0wMScgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyB1cGRh dGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVu Y2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVy IFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNiknLCAnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyksCisgICgnWzUsNiknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCAnWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCkn LCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAx Ni0wMi0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0w My0wMSc7CistLSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTCisgICgnWzQsNSknLCAnWzIwMTgtMDEtMTUsMjAxOC0wMi0xNSknLCAnWzYs NyknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIKK1NFVCB2YWxpZF9mcm9tID0gQ0FTRSBXSEVO IHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgVEhFTiAnMjAxOC0wMS0wMScKKyAgICAgICAg ICAgICAgICAgICAgICBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgVEhFTiAnMjAx OC0wMS0wNScgRU5EOjpkYXRlLAorICAgIHZhbGlkX3RpbCA9ICBDQVNFIFdIRU4gdmFsaWRf ZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTA1JworICAgICAgICAgICAgICAg ICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAzLTAx JyBFTkQ6OmRhdGUKK1dIRVJFIGlkID0gJ1s2LDcpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRl bGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5n IG9mIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsiIG9u IHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNiw3KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHJlZmVyZW5jZWQgZnJv bSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCistLSBhIFBLIHVwZGF0ZSBzaHJpbmtp bmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYnV0IHN0aWxsIHZhbGlkOgorLS0gVGhlcmUgYXJl IHR3byByZWZlcmVuY2VzOiBvbmUgZnVsZmlsbGVkIGJ5IHRoZSBmaXJzdCBwayByb3csCist LSB0aGUgb3RoZXIgZnVsZmlsbGVkIGJ5IGJvdGggcGsgcm93cyBjb21iaW5lZC4KK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT CisgICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJyksCisgICgnWzEsMikn LCAnMjAxOC0wMy0wMScsICcyMDE4LTA2LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEsMikn LCAnWzIwMTgtMDEtMTUsMjAxOC0wMi0wMSknLCAnWzEsMiknKSwKKyAgKCdbMiwzKScsICdb MjAxOC0wMS0xNSwyMDE4LTA1LTAxKScsICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX3Bl ciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTE1JywgdmFsaWRfdGlsID0gJzIwMTgtMDMt MDEnCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6 ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIGdyb3dpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgaXMg ZmluZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0w MScsIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJworV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2 YWxpZF9hdCBAPiAnMjAxOC0wMS0yNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtp bmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBpbnZhbGlkYXRl cyB0aGUgd2hvbGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbMiwz KScsIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0xNScsIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAx JworV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRh dGU7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIg dmlvbGF0ZXMgUkVTVFJJQ1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgt MDMtMDEpKSBpcyByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIi LgorLS0gYSBQSyB1cGRhdGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhl IHdob2xlIHJhbmdlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzIsMyknCitX SEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9s YXRlcyBSRVNUUklDVCBzZXR0aW5nIG9mIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDEsMjAxOC0wMy0w MSkpIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCist LSBhIFBLIHVwZGF0ZSB0aGF0IGxvc2VzIHRpbWUgZnJvbSBib3RoIGVuZHMsIGJ1dCBpcyBz dGlsbCB2YWxpZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAz LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzUsNiknLCAnWzIwMTgtMDEtMTUsMjAxOC0wMi0w MSknLCAnWzIsMyknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAn MjAxOC0wMS0xNScsIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIs MyknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVy ZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBVUERBVEUg dGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwg PSAnMjAxNi0wMi0wMScKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0g JzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVw ZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgUkVTVFJJ Q1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcy cGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAo aWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyByZWZl cmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorUk9MTEJBQ0s7Cist LSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVy IFNFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfZnJvbSA9 ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1 cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIFJFU1RS SUNUIHNldHRpbmcgb2YgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5n MnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiCitERVRBSUw6ICBLZXkg KGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgcmVm ZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIi4KKy0tIGNoYW5naW5n IGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcGVyCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0w MycKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5n IGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQg PSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxl dGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgUkVTVFJJQ1Qgc2V0dGluZyBv ZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0 YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0 KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyByZWZlcmVuY2VkIGZyb20g dGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w ZXIgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgWzUsNikgfCAyMDE2LTAyLTAxIHwgMjAxNi0wMy0wMQor IFs1LDYpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2KSB8IDIwMTgtMDEtMDMg fCAyMDE4LTAyLTAxCisgWzcsOCkgfCAyMDE4LTAxLTAyIHwgMjAxOC0wMS0wMworKDQgcm93 cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkIGluICgn WzMsNCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCkgfCBb NSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29y ZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9y YWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfcGVy IFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0w MScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBB TkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9y YWxfZmtfcm5nMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJf ZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlcjsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgYmVj YXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw2KScs ICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl ciBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2 ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFu Z2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDYpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpLAorICAoJ1s1LDYpJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1szLDQpJywgJ1syMDE4LTAxLTA1LDIwMTgtMDEtMTApJywgJ1s1LDYpJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9m cm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBh IFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK0VSUk9S OiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBm b3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIiBvbiB0YWJs ZSAidGVtcG9yYWxfZmtfcm5nMnBlciIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0o WzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZy b20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiLgorLS0gYSBQSyBkZWxldGUgdGhhdCBm YWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6 CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICAgIEFMVEVS IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5J VElBTExZIERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7CitDT01NSVQ7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9y YWxfZmtfcm5nMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJwZXIiCitERVRB SUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVy Ii4KKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRp bmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJwor V0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxl ICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0w MSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBl ciIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDYpJywg J1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8 IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2 KSB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTAyCisgWzUsNikgfCAyMDE4LTAxLTAzIHwgMjAx OC0wMi0wMQorKDIgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVy IFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAg fCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgWzIwMTgtMDEtMDUs MjAxOC0wMS0xMCkgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2Jq ZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVM RVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9t ID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1w b3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3JuZzJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgT04gREVMRVRFIFJFU1RS SUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbNSw2KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRl bGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVy ZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDYpJywgJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAoJ1s1LDYpJywgJzIwMTgtMDItMDEnLCAn MjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgJ1syMDE4LTAxLTA1LDIwMTgt MDEtMTApJywgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwg PSAnMjAxOC0wMy0wMSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90 aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7 CisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZh bGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsK K0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcGVyIiB2aW9s YXRlcyBSRVNUUklDVCBzZXR0aW5nIG9mIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBv cmFsX2ZrX3JuZzJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycGVyIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0w MSkpIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnBlciIuCitS T0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0g ZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAx LTEwJworV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9u IHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIFJFU1RSSUNUIHNldHRpbmcgb2YgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnBlcl9mayIgb24gdGFibGUg InRlbXBvcmFsX2ZrX3JuZzJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1 LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgcmVmZXJlbmNlZCBmcm9tIHRhYmxl ICJ0ZW1wb3JhbF9ma19ybmcycGVyIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIFdI RVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg IGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFs1LDYpIHwgMjAxOC0wMS0wMSB8IDIwMTgtMDEtMDIKKyBbNSw2 KSB8IDIwMTgtMDEtMDMgfCAyMDE4LTAyLTAxCisoMiByb3dzKQorCitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYpCisoMSByb3cpCisKKy0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBk ZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJF IGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcy MDE4LTAyLTAxJzsKKy0tCistLSBybmcycGVyIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRp b25zCistLQorLS0gVE9DOgorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5V TEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0t IHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLSByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxU IHN1YnNldCkKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCist LQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNyknKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJf ZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERB VEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBv cmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkg fCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkK KyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dz KQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0g J1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNyw4KQorIFsxMDAsMTAxKSB8 IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8IFs3LDgpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScs ICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksMTApJyBXSEVS RSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KSB8IFs5LDEwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgs OSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVND QURFCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNyknKTsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8g ZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lk IAorLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAx LTAxKScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0g J1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgs OSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBO VUxMCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNyknKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwg T04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERB VEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5 LTAxLTAxKSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkg fCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyBy b3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlk ID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw5KScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsyMDAs MjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNyknLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywg J1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24g Ym90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAx LDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAx LTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxf cGVyIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAg ICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDE5LTAx LTAxLDIwMjAtMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIw MCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDkpJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwg WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVu Y2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRl bXBvcmFsX2ZrX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDcpJyk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRf aWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9m aworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBV UERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFU RSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0w MScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTkt MDEtMDEpIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8 IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBT RVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSwwKQorIFsx MDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIw MjEtMDEtMDEpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdb OSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0g J1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAx LDIwMjAtMDEtMDEpIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBk ZWxldGVzIFNFVCBERUZBVUxUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3Jh bF9ma19ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s2LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sx MDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw3KScpOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdI RVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBb MjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEt MDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkK KyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsxMDAs MTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDApCisoMyByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJzIwMjAtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0w MSwyMDIxLTAxLTAxKScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdI RVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEt MDEpIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb OCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENB U0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0 ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwg aWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDcpJywgJ1s2 LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVu dF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIK KyAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAn WzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5 LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAx LDIwMjAtMDEtMDEpIHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0t IG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbNyw4 KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEt MDEpIHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAy MC0wMS0wMSkgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKSB8IFs3LDgpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEp JywgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0g J1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBp ZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbOSwxMCkg ICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4 LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1w b3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcp JywgJ1s2LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywg J1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAs MTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCiso MiByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl cjIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg aWQgfCB2YWxpZF9hdCB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSkn LCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdb OCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEg PSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkg fCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDEgcm93 KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJf cm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBd JywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcy cGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxF VEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScgV0hF UkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwg WzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0w MSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRl OgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgICAgICAgICAg ICB8IAorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAg ICB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgICAgICAgICAg ICB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywg J1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUg dGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEt MDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzIwMCwyMDEpIHwgWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xz KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9ybmcycGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgt MDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBv biBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQx ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykg ICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAg ICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb Niw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwg WzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwg WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAgICAgICAgICAgIHwgCisoMyByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0w MS0wMSknLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIg V0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMjAw LDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgCisg WzIwMCwyMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbOCw5KSAgICAgIHwgWzgs OSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg TlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorVFJVTkNBVEUg dGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb Niw3KScsICdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAx KScsICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0 IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIK KyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrLAorICBBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBOVUxMICh2YWxpZF9hdCkgT04gVVBE QVRFIFNFVCBOVUxMOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGlu IE9OIERFTEVURSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIg VEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9ybmcycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBl cl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRF IFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2 LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEp IHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVs ZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRf YXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEw MCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAgICAgICAgICAgIHwgWzYsNykK KyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCBb Niw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgICAgICAgICAg ICB8IFs2LDcpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOSknLCAnWzgsOSknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRf YXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBw YXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0w MS0wMSkgfCAgICAgICAgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMp CistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAx LDIwMjEtMDEtMDEpJywgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcm5nMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQyIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFU RSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRl bXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2 LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEp IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVw ZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAn WzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5 LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIx LTAxLTAxKScsICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VU IGlkMSA9ICdbOSwxMCknLCBpZDIgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2Nh bGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3Ju ZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBudWxsLCBudWxs KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1sy MDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2 LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEp IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVw ZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSww KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8 IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDAp ICAgICB8IFstMSwwKQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJw ZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDkpJywgJ1s4LDkpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIw MjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAx LTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIg Y29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIs IHRlbXBvcmFsX2ZrMl9ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQx LCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw3 KScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5n MnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzYsNyknLCAnWzYsNykn KTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycGVyCisgIEFMVEVSIENPTFVNTiBwYXJl bnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9ybmcycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5n MnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJ T0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAgT04gREVM RVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworRVJS T1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQgYWN0 aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsy X3JuZzJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwt MV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBhcmVudF9p ZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsx MDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAg ICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0w MS0wMSwyMDE5LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsy MDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWzYsNykKKygzIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOSknLCBudWxsLCBudWxsKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIx LTAxLTAxKScsICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVy MiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRh dGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sy MDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBb OCw5KQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAg ICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGT1JFSUdOIEtFWSwgUEVSSU9E IHJlZmVyZW5jZXMgcmFuZ2UKKy0tCistLSB0ZXN0IHRhYmxlIHNldHVwCitEUk9QIFRBQkxF IHRlbXBvcmFsX3JuZyBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjb25z dHJhaW50IHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgb24gdGFibGUgdGVtcG9yYWxfZmtfcm5n MnJuZworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfYXQgZGF0ZXJhbmdlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZ19waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworLS0gQ2FuJ3QgY3JlYXRlIGEgRksgd2l0aCBhIG1p c21hdGNoZWQgcmFuZ2UgdHlwZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcg KAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gaW50LAorICB2YWxpZF90aWwgaW50 LAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBF UklPRCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX2ZrX3BlcjJybmdfZmsiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZAorREVUQUlMOiAg S2V5IGNvbHVtbnMgInZhbGlkX2F0IiBvZiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYW5kICJ2 YWxpZF9hdCIgb2YgdGhlIHJlZmVyZW5jZWQgdGFibGUgYXJlIG9mIGluY29tcGF0aWJsZSB0 eXBlczogaW50NHJhbmdlIGFuZCBkYXRlcmFuZ2UuCistLSB3b3JrczogcmFuZ2UgZm9yIHJl ZmVyZW5jZWQsIFBFUklPRCBmb3IgcmVmZXJlbmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisg IHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9S IHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9ma19wZXIy cm5nCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmtfcGVyMnJuZyIKKyAg IENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0 IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8IG5vdCBudWxs IHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwg CisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisg cGFyZW50X2lkICB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJp b2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCitJbmRleGVzOgor ICAgICJ0ZW1wb3JhbF9ma19wZXIycm5nX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxf ZmtfcGVyMnJuZ192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90 aWwpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmtfcGVyMnJu Z19mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZyhpZCwgUEVSSU9EIHZhbGlkX2F0KQorCitEUk9QIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJybmc7CistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6 CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxp ZF9hdCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdl LAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9y ZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBub3Qg dGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIChpZCwgdmFsaWRfYXQpCistLSBib3RoIHNob3VsZCBzcGVjaWZ5IFBFUklPRDoKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2 YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJh bmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWdu IGtleSBtdXN0IHVzZSBQRVJJT0Qgd2hlbiByZWZlcmVuY2luZyBhIHByaW1hcnkgdXNpbmcg V0lUSE9VVCBPVkVSTEFQUworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMg KGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVj aWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBp bnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBh cmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQp CispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNl ZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gKHBhcmVudF9pZCwg dmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gRk9SRUlHTiBLRVkgcGFydCBz aG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5n ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBk YXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2 YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCispOworRVJST1I6 ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQg bm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KSBSRUZFUkVOQ0VTIChpZCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5n ICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBk YXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2 YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQp CispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNp bmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNlZCB0YWJsZQorLS0gKHBhcmVudF9pZCkg UkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisg IHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9S IHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04g S0VZIChwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJ T0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0 aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0g d2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKKy0tIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJv bSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAg UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcKKyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmc7 CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRh dGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJ T0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyk7 CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRh YmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSBzaG91bGQgZmFpbCBiZWNh dXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRl LAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9E IEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIGlkKQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkg cmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzCist LSBUd28gc2NhbGFyIGNvbHVtbnMKK0RST1AgVEFCTEUgdGVtcG9yYWxfcm5nMiBDQVNDQURF OworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBjb25zdHJhaW50IHRlbXBvcmFsX2ZrMl9y bmcycm5nX2ZrIG9uIHRhYmxlIHRlbXBvcmFsX2ZrMl9ybmcycm5nCitDUkVBVEUgVEFCTEUg dGVtcG9yYWxfcm5nMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmcyX3BrIFBS SU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZDEgaW50 NHJhbmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp LAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRl bXBvcmFsX2ZrMl9wZXIycm5nCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxf ZmsyX3BlcjJybmciCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAg ICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KQorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJybmdfcGsiIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgor ICAgICJ0ZW1wb3JhbF9mazJfcGVyMnJuZ192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlk X2Zyb20gPCB2YWxpZF90aWwpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVt cG9yYWxfZmsyX3BlcjJybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMihpZDEsIGlk MiwgUEVSSU9EIHZhbGlkX2F0KQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5n OworLS0KKy0tIHRlc3QgQUxURVIgVEFCTEUgQUREIENPTlNUUkFJTlQKKy0tCitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRf ZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwK KyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBUd28gc2NhbGFyIGNvbHVtbnM6 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2Us CisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZDEg aW50NHJhbmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9w ZXIycm5nCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3BlcjJybmci CisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVm YXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3Qg bnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVy aW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoK KyAgICAidGVtcG9yYWxfZmsyX3BlcjJybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3Jh bF9mazJfcGVyMnJuZ192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxp ZF90aWwpCitGb3JlaWduLWtleSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX3Bl cjJybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0Qg dmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMihpZDEsIGlkMiwgUEVSSU9EIHZh bGlkX2F0KQorCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxl LCBhbmQgd3JvbmcgY29sdW1uIHR5cGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrLAorICBEUk9Q IFBFUklPRCBGT1IgdmFsaWRfYXQsCisgIEFMVEVSIENPTFVNTiB2YWxpZF9mcm9tIFRZUEUg dGltZXN0YW1wLAorICBBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgdGltZXN0YW1wLAor ICBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnJuZ19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworRVJST1I6ICBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBjYW5ub3QgYmUgaW1wbGVt ZW50ZWQKK0RFVEFJTDogIEtleSBjb2x1bW5zICJ2YWxpZF9hdCIgb2YgdGhlIHJlZmVyZW5j aW5nIHRhYmxlIGFuZCAidmFsaWRfYXQiIG9mIHRoZSByZWZlcmVuY2VkIHRhYmxlIGFyZSBv ZiBpbmNvbXBhdGlibGUgdHlwZXM6IHRzcmFuZ2UgYW5kIGRhdGVyYW5nZS4KK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0LAor ICBBTFRFUiBDT0xVTU4gdmFsaWRfZnJvbSBUWVBFIGRhdGUsCisgIEFMVEVSIENPTFVNTiB2 YWxpZF90aWwgVFlQRSBkYXRlLAorICBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRf ZnJvbSwgdmFsaWRfdGlsKTsKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5j ZWQgdGFibGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKy0tIHNo b3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnJuZ19mazIKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBh cmVudF9pZCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgaWQpOwor RVJST1I6ICBmb3JlaWduIGtleSByZWZlcmVuY2VkLWNvbHVtbnMgbGlzdCBtdXN0IG5vdCBj b250YWluIGR1cGxpY2F0ZXMKKy0tCistLSB0ZXN0IHdpdGggcm93cyBhbHJlYWR5CistLQor REVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3JuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMK KyAgKCdbMSwyKScsICdbMjAxOC0wMS0wMiwyMDE4LTAyLTAzKScpLAorICAoJ1sxLDIpJywg J1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpJyksCisgICgnWzIsMyknLCAnWzIwMTgtMDEtMDEs MjAxOC0wMS0wNSknKSwKKyAgKCdbMyw0KScsICdbMjAxOC0wMS0wMSwpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycm5nX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4 LTAxLTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMiknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mazsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJywgJ1sxLDIp Jyk7CistLSBzaG91bGQgZmFpbDoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19w ZXIycm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19w ZXIycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiks IFsyMDE4LTAxLTAyLDIwMTgtMDQtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVt cG9yYWxfcm5nIi4KKy0tIG9rYXkgYWdhaW46CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19w ZXIycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CistLQorLS0g dGVzdCBwZ19nZXRfY29uc3RyYWludGRlZgorLS0KK1NFTEVDVCBwZ19nZXRfY29uc3RyYWlu dGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFs X2ZrX3BlcjJybmdfZmsnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdf Z2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nKGlkLCBQRVJJ T0QgdmFsaWRfYXQpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIGlu c2VydHMKKy0tCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEt MDInLCAnMjAxOC0wMi0wMScsICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScs ICdbMSwyKScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19wZXIycm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3Jh bF9ma19wZXIycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0o WzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDQtMDEpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJs ZSAidGVtcG9yYWxfcm5nIi4KKy0tIG5vdyBpdCBzaG91bGQgd29yazoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsICdbMjAxOC0w Mi0wMywyMDE4LTAzLTAzKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwzKScs ICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnLCAnWzEsMiknKTsKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jaW5nIHVwZGF0ZXMKKy0tCistLSBzbGlkZSB0aGUgZWRnZSBhY3Jvc3MgYSBy ZWZlcmVuY2VkIHRyYW5zaXRpb246CitVUERBVEUgdGVtcG9yYWxfZmtfcGVyMnJuZyBTRVQg dmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywgdmFsaWRfdGlsID0gJzIwMTgtMDItMjAnIFdI RVJFIGlkID0gJ1sxLDIpJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFsX2Zr X3BlcjJybmcgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsIHZhbGlkX3RpbCA9ICcy MDE4LTA1LTAxJyBXSEVSRSBpZCA9ICdbMSwyKSc7CitFUlJPUjogIGluc2VydCBvciB1cGRh dGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBh cmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNS0wMSkpIGlz IG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9ybmciLgorVVBEQVRFIHRlbXBvcmFs X2ZrX3BlcjJybmcgU0VUIHBhcmVudF9pZCA9ICdbOCw5KScgV0hFUkUgaWQgPSAnWzEsMikn OworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIy cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIy cm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzgsOSksIFsy MDE4LTAxLTAyLDIwMTgtMDItMjApKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9y YWxfcm5nIi4KKy0tIEFMVEVSIEZLIERFRkVSUkFCTEUKK0JFR0lOOworICBJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICAgKCdbNSw2KScsICdb MjAxOC0wMS0wMSwyMDE4LTAyLTAxKScpLAorICAgICgnWzUsNiknLCAnWzIwMTgtMDItMDEs MjAxOC0wMy0wMSknKTsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgICAoJ1szLDQp JywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw2KScpOworICBBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERF TEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7IC0tc2hvdWxkIG5v dCBmYWlsIHlldC4KK0NPTU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVyZS4KK0VSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVt cG9yYWxfZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiks IFsyMDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFi bGUgInRlbXBvcmFsX2ZrX3BlcjJybmciLgorLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1 cGRhdGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxf ZmtfcGVyMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsK KyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZworICBPTiBVUERBVEUgTk8gQUNUSU9OOworLS0gYSBQSyB1cGRh dGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5j ZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzUsNiknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKTsKK1VQREFURSB0ZW1wb3JhbF9y bmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIwMTYtMDItMDEpJyBXSEVSRSBpZCA9 ICdbNSw2KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRo ZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYpJywgJ1sy MDE4LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICgnWzUsNiknLCAnWzIwMTgtMDItMDEsMjAx OC0wMy0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCknLCAnMjAx OC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5n IFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMi0wMSwyMDE2LTAzLTAxKScKK1dIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknOworLS0g QSBQSyB1cGRhdGUgc2xpZGluZyB0aGUgZWRnZSBiZXR3ZWVuIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisg ICgnWzYsNyknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKSwKKyAgKCdbNiw3KScsICdb MjAxOC0wMi0wMSwyMDE4LTAzLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVy MnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMKKyAg KCdbNCw1KScsICcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnLCAnWzYsNyknKTsKK1VQREFU RSB0ZW1wb3JhbF9ybmcKK1NFVCB2YWxpZF9hdCA9IENBU0UgV0hFTiBsb3dlcih2YWxpZF9h dCkgPSAnMjAxOC0wMS0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpCisgICAgICAgICAgICAgICAgICAgIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIw MTgtMDItMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDMtMDEnKSBF TkQKK1dIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUg cmVmZXJlbmNlZCByYW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJl ZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBv dGhlciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgJ1syMDE4 LTAxLTAxLDIwMTgtMDMtMDEpJyksCisgICgnWzEsMiknLCAnWzIwMTgtMDMtMDEsMjAxOC0w Ni0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEsMiknLCAnMjAxOC0w MS0xNScsICcyMDE4LTAyLTAxJywgJ1sxLDIpJyksCisgICgnWzIsMyknLCAnMjAxOC0wMS0x NScsICcyMDE4LTA1LTAxJywgJ1sxLDIpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2 YWxpZF9hdCA9ICdbMjAxOC0wMS0xNSwyMDE4LTAzLTAxKScKK1dIRVJFIGlkID0gJ1sxLDIp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUg Z3Jvd2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBpcyBmaW5lOgorVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMy0wMSknCitXSEVSRSBp ZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTI1Jzo6ZGF0ZTsKKy0tIGEg UEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBhbmQgY2hhbmdpbmcg dGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0ZW1wb3JhbF9y bmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMTUsMjAxOC0wMy0w MSknCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6 ZGF0ZTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5n IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQs IHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBzdGlsbCBy ZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciLgorLS0gYSBQSyB1 cGRhdGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIHJhbmdl OgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzIsMyknCitXSEVSRSBpZCA9ICdb MSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBk YXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVt cG9yYWxfZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiks IFsyMDE4LTAxLTAxLDIwMTgtMDMtMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFi bGUgInRlbXBvcmFsX2ZrX3BlcjJybmciLgorLS0gYSBQSyB1cGRhdGUgdGhhdCBsb3NlcyB0 aW1lIGZyb20gYm90aCBlbmRzLCBidXQgaXMgc3RpbGwgdmFsaWQ6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzIsMyknLCAnWzIwMTgt MDEtMDEsMjAxOC0wMy0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzUs NiknLCAnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJywgJ1syLDMpJyk7CitVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0xNSwyMDE4LTAyLTE1KScKK1dI RVJFIGlkID0gJ1syLDMpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBi b3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQg PSAnWzIwMTYtMDEtMDEsMjAxNi0wMi0wMSknCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZh bGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKK0VSUk9SOiAgdXBkYXRlIG9y IGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf ZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4 LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRl bXBvcmFsX2ZrX3BlcjJybmciLgorLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNl IGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsKKyAg QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVS UkVEOworICBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0w MSwyMDE2LTAyLTAxKScKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7CitFUlJPUjog IHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIgb24gdGFibGUg InRlbXBvcmFsX2ZrX3BlcjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1 LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9t IHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIi4KKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIg cGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJworV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19m ayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2 YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVm ZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIi4KKy0tIGNoYW5naW5n IGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcm5nCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0w MycKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5n IGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQg PSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxl dGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3Bl cjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0w MywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3Jh bF9ma19wZXIycm5nIi4KK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGlu ICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIFs1LDYpIHwgWzIwMTYtMDItMDEsMjAxNi0wMy0wMSkKKyBbNSw2KSB8IFsyMDE4 LTAxLTAxLDIwMTgtMDEtMDIpCisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQor IFs3LDgpIHwgWzIwMTgtMDEtMDIsMjAxOC0wMS0wMykKKyg0IHJvd3MpCisKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0KKyBbMyw0KSB8IDIwMTgtMDEtMDUgfCAyMDE4LTAxLTEwIHwgWzUsNikKKygxIHJvdykK KworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1l IFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcg V0hFUkUgaWQgPSAnWzMsNCknOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQg PSAnWzIwMTYtMDEtMDEsMjAxNi0wMi0wMSknCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZh bGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywg dGVtcG9yYWxfZmtfcGVyMnJuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcK KyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZms7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworICBPTiBVUERBVEUgUkVTVFJJQ1Q7CistLSBh IFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3Qg cmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbNSw2KScsICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKScpOworVVBEQVRFIHRl bXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTYtMDEtMDEsMjAxNi0wMi0wMSknIFdI RVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0 aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBp c24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUs NiknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKSwKKyAgKCdbNSw2KScsICdbMjAxOC0w Mi0wMSwyMDE4LTAzLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0 KScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNiknKTsKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAyLTAxLDIwMTYtMDMtMDEpJworV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAx KSc7CistLSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMKKyAgKCdbNiw3KScsICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKScpLAorICAoJ1s2 LDcpJywgJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUworICAoJ1s0LDUpJywgJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0xNScsICdbNiw3KScp OworVVBEQVRFIHRlbXBvcmFsX3JuZworU0VUIHZhbGlkX2F0ID0gQ0FTRSBXSEVOIGxvd2Vy KHZhbGlkX2F0KSA9ICcyMDE4LTAxLTAxJyBUSEVOIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAxLTA1JykKKyAgICAgICAgICAgICAgICAgICAgV0hFTiBsb3dlcih2YWxpZF9h dCkgPSAnMjAxOC0wMi0wMScgVEhFTiBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0w My0wMScpIEVORAorV0hFUkUgaWQgPSAnWzYsNyknOworRVJST1I6ICB1cGRhdGUgb3IgZGVs ZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIFJFU1RSSUNUIHNldHRpbmcg b2YgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIgb24g dGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9h dCk9KFs2LDcpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgcmVmZXJlbmNlZCBmcm9t IHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIi4KKy0tIGEgUEsgdXBkYXRlIHNocmlua2lu ZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUg dHdvIHJlZmVyZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0t IHRoZSBvdGhlciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywg J1syMDE4LTAxLTAxLDIwMTgtMDMtMDEpJyksCisgICgnWzEsMiknLCAnWzIwMTgtMDMtMDEs MjAxOC0wNi0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEsMiknLCAn MjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJywgJ1sxLDIpJyksCisgICgnWzIsMyknLCAnMjAx OC0wMS0xNScsICcyMDE4LTA1LTAxJywgJ1sxLDIpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5n IFNFVCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0xNSwyMDE4LTAzLTAxKScKK1dIRVJFIGlkID0g J1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1 cGRhdGUgZ3Jvd2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBpcyBmaW5lOgorVVBEQVRFIHRl bXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMy0wMSknCitX SEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTI1Jzo6ZGF0ZTsK Ky0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBhbmQgY2hh bmdpbmcgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSByYW5nZToKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMTUsMjAx OC0wMy0wMSknCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAx LTE1Jzo6ZGF0ZTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9y YWxfcm5nIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5nIG9mIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19w ZXIycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEt MDEsMjAxOC0wMy0wMSkpIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtf cGVyMnJuZyIuCistLSBhIFBLIHVwZGF0ZSBjaGFuZ2luZyBvbmx5IHRoZSBpZCBpbnZhbGlk YXRlcyB0aGUgd2hvbGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdb MiwzKScKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUn OjpkYXRlOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9y bmciIHZpb2xhdGVzIFJFU1RSSUNUIHNldHRpbmcgb2YgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJy bmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAxOC0wMS0wMSwy MDE4LTAzLTAxKSkgaXMgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIy cm5nIi4KKy0tIGEgUEsgdXBkYXRlIHRoYXQgbG9zZXMgdGltZSBmcm9tIGJvdGggZW5kcywg YnV0IGlzIHN0aWxsIHZhbGlkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUworICAoJ1syLDMpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDMtMDEpJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s1LDYpJywgJzIwMTgtMDEtMTUnLCAn MjAxOC0wMi0wMScsICdbMiwzKScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRf YXQgPSAnWzIwMTgtMDEtMTUsMjAxOC0wMi0xNSknCitXSEVSRSBpZCA9ICdbMiwzKSc7Cist LSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoK K1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAxLDIwMTYt MDItMDEpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0w MSwyMDE4LTAyLTAxKSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRl bXBvcmFsX3JuZyIgdmlvbGF0ZXMgUkVTVFJJQ1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf ZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4 LTAxLTAxLDIwMTgtMDItMDEpKSBpcyByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X2ZrX3BlcjJybmciLgorLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGgg YXJlIHJlZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOwor ICBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2 LTAyLTAxKScKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgUkVTVFJJQ1Qgc2V0dGluZyBvZiBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsy MDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBv cmFsX2ZrX3BlcjJybmciLgorUk9MTEJBQ0s7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBh cnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKK1dIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkn OworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZp b2xhdGVzIFJFU1RSSUNUIHNldHRpbmcgb2YgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVt cG9yYWxfZmtfcGVyMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciCitE RVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAy LTAxKSkgaXMgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIi4K Ky0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVt cG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBU TyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsK Ky0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3JuZwor Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEt MTAnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitFUlJPUjogIHVw ZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgUkVTVFJJ Q1Qgc2V0dGluZyBvZiBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19wZXIy cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIKK0RFVEFJTDogIEtleSAo aWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyByZWZl cmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciLgorU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAxNi0wMi0wMSwy MDE2LTAzLTAxKQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAxOC0wMS0wMikKKyBbNSw2KSB8 IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisgWzcsOCkgfCBbMjAxOC0wMS0wMiwyMDE4LTAx LTAzKQorKDQgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdI RVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIw MTgtMDEtMTAgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0 aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRF IEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUg dGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScK K1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0w Mi0wMSknOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgor LS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsK Ky0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBp c24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s1LDYpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyBkZWxl dGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVu Y2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYpJywgJ1syMDE4LTAxLTAxLDIwMTgt MDItMDEpJyksCisgICgnWzUsNiknLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCAnMjAxOC0wMS0wNScsICcyMDE4LTAx LTEwJywgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKSc7CistLSBh IFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVy MnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAx LDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X2ZrX3BlcjJybmciLgorLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGgg YXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnJuZ19maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOwor ICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7 CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnJuZ19mayIg b24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxp ZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJl bmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIi4KKy0tIGRlbGV0aW5nIGFu IHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAx LTAzJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFp bHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNikn OworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJybmdfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVy ZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnJuZyIuCitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgCistLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIw MTgtMDEtMDIpCisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQorKDIgcm93cykK KworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkIGluICgnWzMs NCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFs aWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIwMTgtMDEtMTAgfCBbNSw2 KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBh bmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxf ZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4 LTAyLTAxKSc7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QK Ky0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcK KyAgT04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQ SyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyBy ZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYpJywgJ1syMDE4LTAxLTAx LDIwMTgtMDItMDEpJyksCisgICgnWzUsNiknLCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSkn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCAnMjAxOC0wMS0wNScsICcy MDE4LTAxLTEwJywgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKSc7 CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNl ZCAoZXZlbiBiZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycm5nCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5n X2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4 LTAxLTAxLDIwMTgtMDItMDEpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBSRVNUUklDVCBzZXR0aW5nIG9mIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJybmdfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19wZXIycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVt cG9yYWxfZmtfcGVyMnJuZyIuCitST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJl bmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hF UkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIFJF U1RSSUNUIHNldHRpbmcgb2YgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cGVyMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJybmciCitERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycm5nIi4KK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTgtMDEt MDEsMjAxOC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisoMiBy b3dzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgaW4g KCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCAyMDE4LTAxLTA1IHwgMjAxOC0wMS0xMCB8 IFs1LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVj b3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAx LDIwMTgtMDItMDEpJzsKKy0tCistLSBwZXIycm5nIHRlc3QgT04gVVBEQVRFL0RFTEVURSBv cHRpb25zCistLQorLS0gVE9DOgorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0t IHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VU IE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQK Ky0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSBy ZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLSBy ZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVm ZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZB VUxUIHN1YnNldCkKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURF CistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19wZXIycm5nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywg J1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19w ZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAo J1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNyknKTsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJy bmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBV UERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRl bXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEt MDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzcs OCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCisoMyBy b3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlk ID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNyw4KQorIFsxMDAsMTAx KSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs3LDgpCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3Mg dHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsK K1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgs OSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbOSwxMCkK KyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dz KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbMjAxOC0w MS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDcpJyk7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUg aWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgt MDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwg MjAyMS0wMS0wMSB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsIHwgcGFyZW50 X2lkIAorLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKygwIHJv d3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1syMDE4LTAx LTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlk ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg WzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBOVUxMCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19wZXIycm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2 LDcpJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNykn KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgICBPTiBERUxFVEUgU0VUIE5V TEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitV UERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwg MjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEt MDEgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCiso MyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VU IGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRf aWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAKKyBbMTAwLDEwMSkg fCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEg fCAyMDIxLTAxLTAxIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1syMDIwLTAx LTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAw XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIw MCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMjAwLDIwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9y bmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSkn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFs aWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0w MSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBb MTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCisoMyByb3dzKQor CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0w MS0wMSB8IDIwMTktMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0w MS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgCisoMyBy b3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbMjAxOC0w MS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8 IAorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAor LS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywg JygsKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUxURVIgQ09M VU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisgICAgT04gREVMRVRFIFNFVCBE RUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0w MS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAy MDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwg Wy0xLDApCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkK KyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKQorKDMgcm93 cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzIwMTgtMDEt MDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwx MCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sy MDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zy b20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAy MDIwLTAxLTAxIHwgWy0xLDApCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBERUZBVUxUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9m a19wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1stMSwtMV0nLCAnKCwpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSkn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFs aWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0w MSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEs MCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCisoMyBy b3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBX SEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg MjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDE5LTAx LTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAy MDIxLTAxLTAxIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1syMDIw LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5n IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAs MjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAy MDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKQorIFsyMDAsMjAxKSB8IDIwMjAtMDEt MDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNB VEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2 LDcpJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScsICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3Bl cjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENB U0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9y bmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAw LDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs3LDgpICAgICAgfCBbNiw3KQor IFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2 LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9y bmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAy MDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs3LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAx KSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBp ZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdI RVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs5 LDEwKSAgICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAx IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYs NykKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyBpZCB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgfCBwYXJlbnRfaWQxIHwgcGFyZW50 X2lkMiAKKy0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKygwIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsICdbOCw5KScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAg ICAgIHwgWzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxf cm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJ1syMDE4 LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJu ZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3 KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQx LCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNF VCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAx LTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIw MTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IDIw MjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQor CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAn WzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8 IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAx OS0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAy MC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAy MS0wMS0wMSB8ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIw LTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAw XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQ REFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgs OSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4 LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFy IGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQy IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBb Niw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0w MSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0w MSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxp ZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEw MSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEw MSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8ICAgICAgICAgICAgfCAKKygzIHJvd3Mp CisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICdb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Bl cjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQx ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEp IHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzIwMCwyMDEp IHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdv IHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorVFJVTkNBVEUgdGVtcG9yYWxf cm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJ1syMDE4 LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJu ZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3 KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJ T0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBw YXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9y bmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxMICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBO VUxMOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVU RSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVt cG9yYWxfZmsyX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIy cm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAg IEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQp CisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxM IChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlk X2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAg fCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAg ICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBb Niw3KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGls ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwg MjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAgICAgICAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCBbNiw3KQorIFsx MDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgICAgICAgICAgICB8IFs2LDcp CisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAn WzgsOSknLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcy IFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIw MCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJv bSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IFs4 LDkpCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAg IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRl cyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFs X3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCAn KCwpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScsICdbNiw3KScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEg U0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMiBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVy MnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAg ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVG QVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRl czoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJywgaWQyID0g J1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIw MTktMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAx IHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIw LTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKwor LS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3 LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAx OC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEp IHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEw MCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDAp CisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAn WzgsOSknLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQg aWQxID0gJ1s5LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRf aWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEg fCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IDIwMjAt MDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2Fs YXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcGVy MnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgJygsKScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBh cmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0x LDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAg IHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00g dGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAxOC0wMS0w MSB8IDIwMTktMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAx OS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzEwMCwxMDEp IHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEsMCkgICAgIHwgWy0xLDApCisoMyBy b3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAn WzgsOSknLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSkn LCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJl bnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JywgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJF IGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQor IFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkgICAgICB8IFs4 LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VU IERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFd JywgJ1s2LDcpJywgJygsKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsICdbMjAxOC0wMS0wMSwy MDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNyknLCAnWzYs NyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVt bjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5nCisgIEFMVEVSIENPTFVNTiBw YXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04g REVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOwor RVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQg YWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX3BlcjJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1st MSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmssCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrCisgICAgRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBhcmVu dF9pZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJv bSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2 LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAg IHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcp ICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4 LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8 IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwx MDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEsMCkgICAgIHwgWzYsNykKKygz IHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5 KScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDkpJywg JygsKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknLCAnWzgsOSknKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIw MjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAx IHwgMjAyMS0wMS0wMSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0gRksg d2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlCitDUkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyBy YW5nZShzdWJ0eXBlPWRhdGUpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IG15ZGF0ZXJhbmdlLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX3JuZzNfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfYXQgbXlkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFu Z2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazNfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmczIChpZCwgUEVSSU9EIHZhbGlkX2F0 KSBPTiBERUxFVEUgQ0FTQ0FERQorKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmszX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIG15ZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmczIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRP ICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbOCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrM19ybmcycm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAx KSB8IFs4LDkpCisgWzUsNikgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCiso MiByb3dzKQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nOworRFJPUCBUQUJM RSB0ZW1wb3JhbF9ybmczOworRFJPUCBUWVBFIG15ZGF0ZXJhbmdlOworLS0KKy0tIEZLIGJl dHdlZW4gcGFydGl0aW9uZWQgdGFibGVzOiByYW5nZXMKKy0tCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBk YXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlv bmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElP TiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywg J1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywx NCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMs MjQpJyk7CitDUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2 LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdbMTQsMTUpJywgJ1sxNiwx NyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAnWzI0LDI1KScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQsIG5hbWUp IFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDIt MDEnKSwgJ29uZScpLAorICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAyLTAxJywgJzIw MDAtMDMtMDEnKSwgJ29uZScpLAorICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAx JywgJzIwMTAtMDEtMDEnKSwgJ3R3bycpOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVy YW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCBQRVJJT0QgdmFs aWRfYXQpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdGZrcDEg UEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVF UyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdb MTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAn WzIxLDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDIgUEFSVElUSU9OIE9G IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEp JywgJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEy LDEzKScsICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1sy MiwyMyknLCAnWzI0LDI1KScpOworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jaW5n IGluc2VydHMKKy0tCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzEsMiknKSwKKyAgKCdbMSwy KScsIGRhdGVyYW5nZSgnMjAwMS0wMS0wMScsICcyMDAyLTAxLTAxJyksICdbMiwzKScpLAor ICAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1sx LDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdb Myw0KScsIGRhdGVyYW5nZSgnMjAxMC0wMS0wMScsICcyMDEwLTAyLTE1JyksICdbMSwyKScp OworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZmtwMSIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu Z19mayIKK0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFsxLDIpLCBbMjAx MC0wMS0wMSwyMDEwLTAyLTE1KSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyIuCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzMsNCkn LCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xNScpLCAnWzMsNCknKTsKK0VS Uk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsi CitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMyw0KSwgWzIwMDAtMDEt MDEsMjAwMC0wMi0xNSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmciLgorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jaW5nIHVwZGF0 ZXMKKy0tCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBTRVQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xMycpIFdIRVJFIGlk ID0gJ1syLDMpJzsKKy0tIG1vdmUgYSByb3cgZnJvbSB0aGUgZmlyc3QgcGFydGl0aW9uIHRv IHRoZSBzZWNvbmQKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFNF VCBpZCA9ICdbNCw1KScgV0hFUkUgaWQgPSAnWzEsMiknOworLS0gbW92ZSBhIHJvdyBmcm9t IHRoZSBzZWNvbmQgcGFydGl0aW9uIHRvIHRoZSBmaXJzdAorVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIGlkID0gJ1sxLDIpJyBXSEVSRSBpZCA9ICdbNCw1 KSc7CiAtLSBzaG91bGQgZmFpbDoKIFVQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTA0 LTAxJykgV0hFUkUgaWQgPSAnWzEsMiknOwogRVJST1I6ICBjb25mbGljdGluZyBrZXkgdmFs dWUgdmlvbGF0ZXMgZXhjbHVzaW9uIGNvbnN0cmFpbnQgInRma3AxX3BrZXkiCkBAIC00NTcz LDQgKzkzMTksMTggQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxNSwxNiknOwogCiBEUk9QIFRBQkxFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX21sdHJuZzJtbHRybmc7CiBEUk9QIFRBQkxFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX21sdHJuZzsKKy0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRh YmxlczogUEVSSU9EcworLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9w ZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGls IGRhdGUsCisgIG5hbWUgdGV4dCwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3JuZ19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJ VElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFCTEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9wZXIgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywg J1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJywgJ1sxMywxNCknLCAnWzE1 LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIyKScsICdbMjMsMjQpJyk7CitF UlJPUjogIEluaGVyaXRpbmcgZnJvbSBhIHRhYmxlIHdpdGggYSBQRVJJT0QgaXMgbm90IHN1 cHBvcnRlZAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9wZXI7CiBSRVNFVCBk YXRlc3R5bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCAxMWYyODQz ZmQwNS4uOTQ4ZTJhMDY5MGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxs ZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpA QCAtNDMsNyArNDMsNyBAQCB0ZXN0OiBjb3B5IGNvcHlzZWxlY3QgY29weWRtbCBjb3B5ZW5j b2RpbmcgaW5zZXJ0IGluc2VydF9jb25mbGljdAogIyBOb3RlOiBtYW55IG9mIHRoZSB0ZXN0 cyBpbiBsYXRlciBncm91cHMgZGVwZW5kIG9uIGNyZWF0ZV9pbmRleAogIyAtLS0tLS0tLS0t CiB0ZXN0OiBjcmVhdGVfZnVuY3Rpb25fYyBjcmVhdGVfbWlzYyBjcmVhdGVfb3BlcmF0b3Ig Y3JlYXRlX3Byb2NlZHVyZSBjcmVhdGVfdGFibGUgY3JlYXRlX3R5cGUgY3JlYXRlX3NjaGVt YQotdGVzdDogY3JlYXRlX2luZGV4IGNyZWF0ZV9pbmRleF9zcGdpc3QgY3JlYXRlX3ZpZXcg aW5kZXhfaW5jbHVkaW5nIGluZGV4X2luY2x1ZGluZ19naXN0Cit0ZXN0OiBjcmVhdGVfaW5k ZXggY3JlYXRlX2luZGV4X3NwZ2lzdCBjcmVhdGVfdmlldyBpbmRleF9pbmNsdWRpbmcgaW5k ZXhfaW5jbHVkaW5nX2dpc3QgcGVyaW9kcwogCiAjIC0tLS0tLS0tLS0KICMgQW5vdGhlciBn cm91cCBvZiBwYXJhbGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZm9yX3BvcnRpb25fb2Yuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRp b25fb2Yuc3FsCmluZGV4IGNkMTY0NWE0MzZmLi40NTU5NDY2ODgxOSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3FsCisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbApAQCAtNDg5LDYgKzQ4OSw1NiBAQCBT RUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKIAogRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKIAorLS0gVGVzdCB3aXRo IFBFUklPRHMKKworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyICgKKyAgaWQg aW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBk YXRlLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfdGVz dDJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsK K0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitWQUxVRVMKKygnWzEsMiknLCAn MjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJywgJ29uZScpLAorKCdbMSwyKScsICcyMDE4LTAy LTA0JywgJzIwMTgtMDMtMDMnLCAnb25lJyksCisoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAn MjAxOC0wNC0wNCcsICdvbmUnKSwKKygnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTA1 LTAxJywgJ3R3bycpLAorKCdbMyw0KScsICcyMDE4LTAxLTAxJywgbnVsbCwgJ3RocmVlJyk7 Cis7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgtMDItMTAnCitTRVQgbmFtZSA9ICdv bmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25f b2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRP ICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMyknOworCistLSBTZXR0aW5nIHRoZSBz dGFydCBjb2x1bW4gZmFpbHM6CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTAnIFRPICcyMDE4LTAyLTEwJwor U0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKwor LS0gU2V0dGluZyB0aGUgZW5kIGNvbHVtbiBmYWlsczoKK1VQREFURSBmb3JfcG9ydGlvbl9v Zl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8g JzIwMTgtMDItMTAnCitTRVQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnCitXSEVSRSBpZCA9 ICdbMSwyKSc7CisKKy0tIFNldHRpbmcgdGhlIGdlbmVyYXRlZCBjb2x1bW4gZmFpbHM6CitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDEtMTAnIFRPICcyMDE4LTAyLTEwJworU0VUIHZhbGlkX2F0ID0gJ1syMDE4 LTAyLTAxLDIwMTgtMDItMDMpJworV0hFUkUgaWQgPSAnWzEsMiknOworCitTRUxFQ1QgKiBG Uk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworRFJP UCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKKwogLS0gVGVzdCB3aXRoIGEgY3VzdG9t IHJhbmdlIHR5cGUKIAogQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlw ZT1kYXRlKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BlcmlvZHMuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGVyaW9kcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI3OWE5ZGI0OWFjCi0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcGVyaW9kcy5zcWwKQEAgLTAsMCArMSwxODYgQEAKKy8q IFN5c3RlbSBwZXJpb2RzIGFyZSBub3QgaW1wbGVtZW50ZWQgKi8KK2NyZWF0ZSB0YWJsZSBw dCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBzeXN0ZW1fdGlt ZSAoZHMsIGRlKSk7CisKKy8qIFBlcmlvZHMgbXVzdCBzcGVjaWZ5IGFjdHVhbCBjb2x1bW5z ICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBl cmlvZCBmb3IgcCAoYm9ndXMsIGRlKSk7CitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIs IGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGJvZ3VzKSk7CisKKy8qIERh dGEgdHlwZXMgbXVzdCBtYXRjaCBleGFjdGx5ICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIHRpbWVzdGFtcCwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsK K2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgdGV4dCBjb2xsYXRlICJDIiwgZGUg dGV4dCBjb2xsYXRlICJQT1NJWCIsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CisKKy8qIFBl cmlvZHMgbXVzdCBoYXZlIGEgZGVmYXVsdCBCVHJlZSBvcGVyYXRvciBjbGFzcyAqLworY3Jl YXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyB4bWwsIGRlIHhtbCwgcGVyaW9kIGZvciBw IChkcywgZGUpKTsKKworLyogUGVyaW9kIGFuZCBjb2x1bW4gbmFtZXMgYXJlIGluIHRoZSBz YW1lIG5hbWVzcGFjZSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRl LCBkZSBkYXRlLCBwZXJpb2QgZm9yIGN0aWQgKGRzLCBkZSkpOworY3JlYXRlIHRhYmxlIHB0 IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIGlkIChkcywgZGUp KTsKKworLyogUGVyaW9kIG5hbWUgY2FuJ3QgYmUgZ2l2ZW4gbW9yZSB0aGFuIG9uY2UgKi8K K2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9k IGZvciBwIChkcywgZGUpLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworCisvKiBQZXJpb2Qg Y2FuJ3QgdXNlIHRoZSBzYW1lIGNvbHVtIGZvciBzdGFydCBhbmQgZW5kKi8KK2NyZWF0ZSB0 YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChk cywgZHMpKTsKKworLyogTm93IG1ha2Ugb25lIHRoYXQgd29ya3MgKi8KK2NyZWF0ZSB0YWJs ZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywg ZGUpKTsKKworLyogU0VMRUNUICogZXhjbHVkZXMgdGhlIFBFUklPRCAqLworaW5zZXJ0IGlu dG8gcHQgdmFsdWVzICgxLCAnMjAwMC0wMS0wMScsICcyMDAxLTAxLTAxJyk7CitzZWxlY3Qg KiBmcm9tIHB0OworCisvKiBZb3UgY2FuIGdldCBpdCBpZiB5b3Ugd2FudCAqLworc2VsZWN0 ICosIHAgZnJvbSBwdDsKKworLyogVHdvIGFyZSBva2F5ICovCitjcmVhdGUgdGFibGUgcHQy IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAxIChkcywgZGUp LCBwZXJpb2QgZm9yIHAyIChkcywgZGUpKTsKK2Ryb3AgdGFibGUgcHQyOworCisvKiBTa2lw IGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IHdvcmtzICovCitjcmVhdGUgdGFibGUgcHQy IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkLCBwZXJpb2Qg Zm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworXGQgcHQyCitkcm9w IHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMg YmVjYXVzZSB0aGUgY29sIGlzbid0IHRoZXJlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBp bnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAo Y29sZXhpc3RzID0gdHJ1ZSkpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1u OiBmYWlscyBiZWNhdXNlIHRoZSBvcHRpb24gaGFzIGFuIGludmFsaWQgdmFsdWUgKi8KK2Ny ZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBm b3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSAnd2hhdGV2ZXInKSk7CisvKiBTa2lw IGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBp cyBub3QgTk9UIE5VTEwgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRh dGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5n ZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlz dHMgPSB0cnVlKSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxz IGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBub3QgR0VORVJBVEVEICovCitjcmVhdGUgdGFibGUg cHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVs bCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKKy8q IFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29s dW1uIGlzIEdFTkVSQVRFRCBidXQgd2l0aCB0aGUgd3JvbmcgZXhwcmVzc2lvbiAqLworLS0g VE9ETzoKKy0tIGNyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRh dGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5n ZShkZSwgZHMpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlz dHMgPSB0cnVlKSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxz IGJlY2F1c2UgdGhlIGNvbHVtbiBpcyB0aGUgd3JvbmcgdHlwZSAqLworY3JlYXRlIHRhYmxl IHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCB0c3JhbmdlIG5vdCBudWxs IGdlbmVyYXRlZCBhbHdheXMgYXMgKHRzcmFuZ2UoZHMsIGRlKSkgc3RvcmVkLCBwZXJpb2Qg Zm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworLyogU2tpcCBjcmVh dGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgaW5o ZXJpdGVkICovCitjcmVhdGUgdGFibGUgcHQycGFyZW50IChpZCBpbnRlZ2VyLCBkcyBkYXRl LCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChk YXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2NyZWF0ZSB0YWJsZSBwdDIgKHBlcmlvZCBm b3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSkgaW5oZXJpdHMgKHB0MnBh cmVudCk7Citkcm9wIHRhYmxlIHB0MnBhcmVudDsKKworCisvKgorICogQUxURVIgVEFCTEUg dGVzdHMKKyAqLworYWx0ZXIgdGFibGUgcHQgZHJvcCBwZXJpb2QgZm9yIHA7CithbHRlciB0 YWJsZSBwdCBhZGQgcGVyaW9kIGZvciBzeXN0ZW1fdGltZSAoZHMsIGRlKTsKK2FsdGVyIHRh YmxlIHB0IGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSk7CisKKy8qIEFkZGluZyBhIHNlY29u ZCBvbmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRh dGUsIHBlcmlvZCBmb3IgcDEgKGRzLCBkZSkpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJp b2QgZm9yIHAyIChkcywgZGUpOworZHJvcCB0YWJsZSBwdDI7CisKKy8qIENhbid0IGRyb3Ag aXRzIGNvbHVtbnMgKi8KK2FsdGVyIHRhYmxlIHB0IGRyb3AgY29sdW1uIGRzOworYWx0ZXIg dGFibGUgcHQgZHJvcCBjb2x1bW4gZGU7CisKKy8qIENhbid0IGNoYW5nZSB0aGUgZGF0YSB0 eXBlcyAqLworYWx0ZXIgdGFibGUgcHQgYWx0ZXIgY29sdW1uIGRzIHR5cGUgdGltZXN0YW1w OworYWx0ZXIgdGFibGUgcHQgYWx0ZXIgY29sdW1uIGRzIHR5cGUgdGltZXN0YW1wOworCisv KiBjb2x1bW4vcGVyaW9kIG5hbWVzcGFjZSBjb25mbGljdHMgKi8KK2FsdGVyIHRhYmxlIHB0 IGFkZCBjb2x1bW4gcCBpbnRlZ2VyOworYWx0ZXIgdGFibGUgcHQgcmVuYW1lIGNvbHVtbiBp ZCB0byBwOworYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3IgdGFibGVvaWQgKGRzLCBk ZSk7CithbHRlciB0YWJsZSBwdCBhZGQgcGVyaW9kIGZvciAiLi4uLi4uLi5wZy5kcm9wcGVk LjQuLi4uLi4uLiIgKGRzLCBkZSk7CisKKy8qIGFkZGluZyBjb2x1bW5zIGFuZCB0aGUgcGVy aW9kIGF0IHRoZSBzYW1lIHRpbWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIp OworYWx0ZXIgdGFibGUgcHQyIGFkZCBjb2x1bW4gZHMgZGF0ZSwgYWRkIGNvbHVtbiBkZSBk YXRlLCBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpOworZHJvcCB0YWJsZSBwdDI7CisKKy8q IEFtYmlndW91cyByYW5nZSB0eXBlcyByYWlzZSBhbiBlcnJvciAqLworY3JlYXRlIHR5cGUg bXlkYXRlcmFuZ2UgYXMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKK2NyZWF0ZSB0YWJsZSBwdDIg KGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKKwor LyogWW91IGNhbiBnaXZlIGFuIGV4cGxpY2l0IHJhbmdlIHR5cGUgKi8KK2NyZWF0ZSB0YWJs ZSBwdDIgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUp IHdpdGggKHJhbmdldHlwZSA9ICdteWRhdGVyYW5nZScpKTsKK2Ryb3AgdHlwZSBteWRhdGVy YW5nZTsKK2Ryb3AgdHlwZSBteWRhdGVyYW5nZSBjYXNjYWRlOworZHJvcCB0YWJsZSBwdDI7 CitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBm b3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnZGF0ZXJhbmdlJykpOworCisvKiBS YW5nZSB0eXBlIGlzIG5vdCBmb3VuZCAqLworY3JlYXRlIHRhYmxlIHB0MyAoaWQgaW50LCBk cyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBl ID0gJ25vdGFyYW5nZScpKTsKKworLyogUmFuZ2UgdHlwZSBpcyB0aGUgd3JvbmcgdHlwZSAq LworY3JlYXRlIHRhYmxlIHB0MyAoaWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2Qg Zm9yIHAgKGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBlID0gJ3RzdHpyYW5nZScpKTsKK2Ryb3Ag dGFibGUgcHQyOworCisvKiBQZXJpb2QgY2FuJ3QgdXNlIHRoZSBzYW1lIGNvbHVtIGZvciBz dGFydCBhbmQgZW5kKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkcyk7 Citkcm9wIHRhYmxlIHB0MjsKKworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1u OiB3b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUg ZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJh bmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3Ig cCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK1xkIHB0MgorZHJvcCB0YWJs ZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1 c2UgdGhlIGNvbCBpc24ndCB0aGVyZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdl ciwgZHMgZGF0ZSwgZGUgZGF0ZSk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3Ig cCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK2Ryb3AgdGFibGUgcHQyOwor LyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBv cHRpb24gaGFzIGFuIGludmFsaWQgdmFsdWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRl ZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUg cHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gJ3doYXRl dmVyJyk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNv bHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBOT1QgTlVMTCAqLworY3Jl YXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFu Z2UgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7Cith bHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlz dHMgPSB0cnVlKTsKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFU RUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IEdFTkVSQVRFRCAq LworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBk YXRlcmFuZ2Ugbm90IG51bGwpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAg KGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7Citkcm9wIHRhYmxlIHB0MjsKKy8q IFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29s dW1uIGlzIEdFTkVSQVRFRCBidXQgd2l0aCB0aGUgd3JvbmcgZXhwcmVzc2lvbiAqLworLS0g VE9ETzoKKy0tIGNyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRh dGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5n ZShkZSwgZHMpKSBzdG9yZWQpOworLS0gYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9y IHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CisvKiBTa2lwIGNyZWF0aW5n IEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyB0aGUgd3Jv bmcgdHlwZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUg ZGF0ZSwgcCB0c3JhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKHRzcmFuZ2Uo ZHMsIGRlKSkgc3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChk cywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBT a2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVt biBpcyBpbmhlcml0ZWQgKi8KK2NyZWF0ZSB0YWJsZSBwdDJwYXJlbnQgKGlkIGludGVnZXIs IGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdh eXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworY3JlYXRlIHRhYmxlIHB0MiAo KSBpbmhlcml0cyAocHQycGFyZW50KTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZv ciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpOworZHJvcCB0YWJsZSBwdDI7 Citkcm9wIHRhYmxlIHB0MnBhcmVudDsKKworLyogQ1JFQVRFIFRBQkxFIChMSUtFIC4uLikg Ki8KKworLyogUGVyaW9kcyBhcmUgbm90IGNvcGllZCBieSBMSUtFLCBzbyB0aGVpciBjb2x1 bW5zIGFyZW4ndCBlaXRoZXIgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQpOworXGQg cHQyCitkcm9wIHRhYmxlIHB0MjsKKworLyogQ2FuIGFkZCBhIHBlcmlvZCByZWZlcnJpbmcg dG8gTElLRSdkIGNvbHVtbnMgKi8KK2NyZWF0ZSB0YWJsZSBub3RfcCAoaWQgaW50ZWdlciwg ZHMgZGF0ZSwgZGUgZGF0ZSk7CitjcmVhdGUgdGFibGUgcHQyIChsaWtlIG5vdF9wLCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkpOworXGQgcHQyCitkcm9wIHRhYmxlIHB0MjsKKworLyogQ2Fu IGFkZCBhIHBlcmlvZCB3aXRoIHRoZSBzYW1lIG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIg KGxpa2UgcHQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitcZCBwdDIKK2Ryb3AgdGFibGUg cHQyOworCisvKiBDYW4gYWRkIGEgcGVyaW9kIHdpdGggYSBkaWZmZXJlbnQgbmFtZSAqLwor Y3JlYXRlIHRhYmxlIHB0MiAobGlrZSBwdCwgcGVyaW9kIGZvciBwMiAoZHMsIGRlKSk7Citc ZCBwdDIKK2Ryb3AgdGFibGUgcHQyOworCisvKiBDYW4ndCBhZGQgYSBwZXJpb2Qgd2hvc2Ug bmFtZSBjb25mbGljdHMgd2l0aCBhIExJS0UnZCBjb2x1bW4gKi8KK2NyZWF0ZSB0YWJsZSBw dDIgKGxpa2UgcHQsIHBlcmlvZCBmb3IgaWQgKGRzLCBkZSkpOworCisvKiBDUkVBVEUgVEFM QkUgSU5IRVJJVFMgKi8KKworLyogQ2FuJ3QgaW5oZXJpdCBmcm9tIGEgdGFibGUgd2l0aCBh IHBlcmlvZCAqLworY3JlYXRlIHRhYmxlIHB0MiAobmFtZSB0ZXh0KSBpbmhlcml0cyAocHQp OworCisvKiBDYW4ndCBpbmhlcml0IHdpdGggYSBwZXJpb2QgKi8KK2NyZWF0ZSB0YWJsZSBw dDIgKGQycyBkYXRlLCBkMmUgZGF0ZSwgcGVyaW9kIGZvciBwIChkMnMsIGQyZSkpIGluaGVy aXRzIChub3RfcCk7CisKK2Ryb3AgdGFibGUgbm90X3A7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3By aXZpbGVnZXMuc3FsCmluZGV4IGU3MjVlOWNjYjZkLi5jZmNlNzgyZTE0OCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHJpdmlsZWdlcy5zcWwKQEAgLTc3NCw2ICs3NzQsMzQgQEAgVVBEQVRF IHQxIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAx LTAxLTAxJyBTRVQgYzEgPSAnWzIKIFNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVz c19wcml2X3VzZXIxOwogRFJPUCBUQUJMRSB0MTsKIAorLS0gdGVzdCBjb2x1bW4tbGV2ZWwg cHJpdmlsZWdlcyBvbiB0aGUgUEVSSU9EIHVzZWQgaW4gRk9SIFBPUlRJT04gT0YKK1NFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOworQ1JFQVRFIFRBQkxF IHQxICgKKyAgYzEgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIHRpbWVzdGFtcCwKKyAgdmFs aWRfdGlsIHRpbWVzdGFtcCwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHQxcGsgUFJJTUFSWSBLRVkgKGMxLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0dSQU5UIFNFTEVDVCBPTiB0MSBUTyByZWdyZXNz X3ByaXZfdXNlcjI7CitHUkFOVCBTRUxFQ1QgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIz OworR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2VyNDsKK0dSQU5UIFNF TEVDVCBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjU7CitHUkFOVCBVUERBVEUgKGMxKSBP TiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjI7CitHUkFOVCBVUERBVEUgKGMxLCB2YWxpZF9h dCkgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIzOworR1JBTlQgVVBEQVRFIChjMSwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBPTiB0MSBUTyByZWdyZXNzX3ByaXZfdXNlcjQ7CitHUkFO VCBVUERBVEUgKGMxLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHZhbGlkX2F0KSBPTiB0MSBU TyByZWdyZXNzX3ByaXZfdXNlcjU7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcHJpdl91c2VyMjsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMpJzsKK1NFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIzOworVVBEQVRFIHQxIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAxLTAx JyBTRVQgYzEgPSAnWzIsMyknOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3ByaXZfdXNlcjQ7CitVUERBVEUgdDEgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAwMC0wMS0wMScgVE8gJzIwMDEtMDEtMDEnIFNFVCBjMSA9ICdbMiwzKSc7CitTRVQgU0VT U0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyNTsKK1VQREFURSB0MSBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScg U0VUIGMxID0gJ1syLDMpJzsKK1NFVCBTRVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19w cml2X3VzZXIxOworRFJPUCBUQUJMRSB0MTsKKwogLS0gdGVzdCBjb2x1bW4tbGV2ZWwgcHJp dmlsZWdlcyB3aGVuIGludm9sdmVkIHdpdGggREVMRVRFCiBTRVQgU0VTU0lPTiBBVVRIT1JJ WkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIEFMVEVSIFRBQkxFIGF0ZXN0NiBBREQgQ09M VU1OIHRocmVlIGludGVnZXI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93 aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3Zl cmxhcHMuc3FsCmluZGV4IGM4M2I3NTU2NzlmLi5kMDhlODlmNDU4OSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKQEAgLTkxLDYgKzkxLDMxIEBA IENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcyICgKIFNFTEVDVCBwZ19nZXRfY29uc3RyYWlu dGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFs X3JuZzJfcGsnOwogU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkg RlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nMl9wayc7 CiAKKy0tIFBLIHdpdGggb25lIGNvbHVtbiBwbHVzIGEgUEVSSU9EOgorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3BlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAor ICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXJfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xkIHRlbXBvcmFsX3Blcgor U0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdI RVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhk ZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1l ID0gJ3RlbXBvcmFsX3Blcl9wayc7CisKKy0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBh IFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIyICgKKyAgaWQxIGludDRyYW5n ZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwg ZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIyCitTRUxF Q1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUg Y29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIyX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYo Y29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0g J3RlbXBvcmFsX3BlcjJfcGsnOworCiAtLSBQSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGU6 CiBDUkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChzdWJ0eXBlPXRleHQsIGNvbGxh dGlvbj0iQyIpOwogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKApAQCAtMTY5LDYgKzE5 NCwzMyBAQCBTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0 cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybgogU0VMRUNUIHBnX2dldF9pbmRl eGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5h bWUgPSAndGVtcG9yYWxfcm5nM191cSc7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CiAK Ky0tIFVOSVFVRSB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9wZXIzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUs CisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgVU5JUVVFIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIzCitT RUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hF UkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhk ZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1l ID0gJ3RlbXBvcmFsX3BlcjNfdXEnOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIzOworCist LSBVTklRVUUgd2l0aCB0d28gY29sdW1ucyBwbHVzIGEgUEVSSU9EOgorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3BlcjMgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50NHJhbmdlLAor ICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZh bGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X3BlcjNfdXEgVU5JUVVFIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykK Kyk7CitcZCB0ZW1wb3JhbF9wZXIzCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lk KSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3Vx JzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdf Y29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3BlcjNfdXEnOworRFJPUCBU QUJMRSB0ZW1wb3JhbF9wZXIzOworCiAtLSBVTklRVUUgd2l0aCBhIGN1c3RvbSByYW5nZSB0 eXBlOgogQ1JFQVRFIFRZUEUgdGV4dHJhbmdlMiBBUyByYW5nZSAoc3VidHlwZT10ZXh0LCBj b2xsYXRpb249IkMiKTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKQEAgLTI0NSw2 ICsyOTcsNTggQEAgQUxURVIgVEFCTEUgdGVtcG9yYWwzCiAgIFVOSVFVRSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwogRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAKKy0tIFBS SU1BUlkgS0VZIHdpdGggUEVSSU9EIGFscmVhZHkgdGhlcmUKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWwzX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7 CitcZCB0ZW1wb3JhbDMKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBQUklNQVJZIEtF WSB3aXRoIFBFUklPRCB0b28KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUKKyk7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCksCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM19waworICBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwz CitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKworLS0gVU5JUVVFIHdpdGggUEVSSU9EIGFscmVh ZHkgdGhlcmUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bDMKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxCisgIFVOSVFVRSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCitEUk9QIFRBQkxFIHRlbXBv cmFsMzsKKworLS0gVU5JUVVFIHdpdGggUEVSSU9EIHRvbworQ1JFQVRFIFRBQkxFIHRlbXBv cmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQUREIENPTlNUUkFJTlQgdGVt cG9yYWwzX3VxCisgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOwor XGQgdGVtcG9yYWwzCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKwogLS0KIC0tIHJhbmdlIFBL OiB0ZXN0IHdpdGggZXhpc3Rpbmcgcm93cwogLS0KQEAgLTYxNSw2ICs3MTksMjEyIEBAIFdI RVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBJUyBOVUxMOwogU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9tbHRybmczIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIERST1AgVEFCTEUg dGVtcG9yYWxfbWx0cm5nMzsKIAorLS0KKy0tIFBFUklPRCBQSzogdGVzdCB3aXRoIGV4aXN0 aW5nIHJvd3MKKy0tCisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlciBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfcGVyX3BrOworCistLSBva2F5OgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4 LTAxLTAyJywgJzIwMTgtMDItMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMy0wMycs ICcyMDE4LTA0LTA0Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbMyw0KScsICcyMDE4LTAxLTAxJywgTlVMTCk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9wZXIgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9wZXIgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3Blcl9wazsKKworLS0gc2hv dWxkIGZhaWw6CitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAxJywgJzIw MTgtMDEtMDUnKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIEFERCBDT05TVFJBSU5U IHRlbXBvcmFsX3Blcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpOworUk9MTEJBQ0s7CistLSByZWplY3RzIGVtcHR5OgorQkVHSU47CisgIEFMVEVS IFRBQkxFIHRlbXBvcmFsX3BlciBEUk9QIFBFUklPRCBGT1IgdmFsaWRfYXQ7CisgIElOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzMsNCknLCAnMjAyMC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CisgIEFMVEVSIFRBQkxF IHRlbXBvcmFsX3BlciBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKTsKK1JPTExCQUNLOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX3Blcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyOworCistLQorLS0gUEVS SU9EIFBLOiB0ZXN0IGluc2VydHMKKy0tCisKKy0tIG9rYXk6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywg JzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAz LTAzJywgJzIwMTgtMDQtMDQnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcy MDE4LTAxLTA1Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKKwor LS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0w MS0wNScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKE5VTEwsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKKy0t IHJlamVjdHMgZW1wdHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAnMjAyMC0w MS0wMScpOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworCistLQorLS0gUEVSSU9EIFBLOiB0ZXN0IHVwZGF0ZXMKKy0tCisKKy0tIHVwZGF0 ZSB0aGUgc2NhbGFyIHBhcnQKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0g J1sxMSwxMiknCitXSEVSRSAgIGlkID0gJ1sxLDIpJworQU5EICAgICB2YWxpZF9hdCBAPiAn MjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgdGhlIFBFUklPRCBib3VuZHMKK1VQREFU RSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisg ICAgICAgIHZhbGlkX3RpbCA9ICcyMDIxLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMTEsMTIp JworQU5EICAgICB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUg Ym90aCBhdCBvbmNlCitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9ICdbMjEs MjIpJywKKyAgICAgICAgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywKKyAgICAgICAgdmFs aWRfdGlsID0gJzIwMTgtMDItMDMnCitXSEVSRSAgIGlkID0gJ1sxMSwxMiknCitBTkQgICAg IHZhbGlkX2F0IEA+ICcyMDIwLTAxLTE1Jzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRF ICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9m cm9tID0gJzIwMTgtMDMtMDUnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wNS0wNScK K1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5V TEwKK1VQREFURSAgdGVtcG9yYWxfcGVyCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAg dmFsaWRfZnJvbSA9ICcyMDE4LTAzLTA1JywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMTgt MDUtMDUnCitXSEVSRSAgIGlkID0gJ1syMSwyMiknOworLS0gc2V0IGEgUEVSSU9EIGJvdW5k IHRvIE5VTEwgKG9rYXkpCitVUERBVEUgIHRlbXBvcmFsX3BlcgorU0VUICAgICBpZCA9ICdb MSwyKScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wNC0wNCcsCisgICAgICAgIHZh bGlkX3RpbCA9IE5VTEwKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSByZWplY3RzIGVt cHR5OgorVVBEQVRFICB0ZW1wb3JhbF9wZXIKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisg ICAgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZhbGlkX3RpbCA9 ICcyMDIwLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMSwyKSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BlciBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSBQRVJJT0QgVVE6 IHRlc3Qgd2l0aCBleGlzdGluZyByb3dzCistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxf cGVyMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KQorKTsKKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDInLCAnMjAx OC0wMi0wMycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0 Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoTlVMTCwgJzIw MTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyMyBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfcGVyM191cTsKKworLS0gc2hvdWxkIGZhaWw6CitCRUdJTjsKKyAg SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jyk7CisgIEFMVEVS IFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBV TklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1JPTExCQUNLOworLS0g cmVqZWN0cyBlbXB0eToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIzIERS T1AgUEVSSU9EIEZPUiB2YWxpZF9hdDsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzMsNCknLCAnMjAyMC0wMS0w MScsICcyMDIwLTAxLTAxJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCk7CitST0xMQkFDSzsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BlcjMgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVy M191cSBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlcjM7CisKKy0tCistLSBQRVJJT0QgVVE6IHRlc3QgaW5zZXJ0cwor LS0KKworLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDInLCAnMjAxOC0w Mi0wMycpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0Jyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1szLDQpJywgJzIwMTgtMDEtMDEnLCBOVUxMKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoTlVMTCwgJzIwMTgt MDEtMDEnLCAnMjAxOC0wMS0wNScpOworCistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sx LDIpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpOworLS0gcmVqZWN0cyBlbXB0eToK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1szLDQpJywgJzIwMjAtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0t IFBFUklPRCBVUTogdGVzdCB1cGRhdGVzCistLQorCistLSB1cGRhdGUgdGhlIHNjYWxhciBw YXJ0CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSAnWzExLDEyKScKK1dI RVJFICAgaWQgPSAnWzEsMiknCitBTkQgICAgIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6 ZGF0ZTsKKy0tIHVwZGF0ZSB0aGUgUEVSSU9EIGJvdW5kcworVVBEQVRFICB0ZW1wb3JhbF9w ZXIzCitTRVQgICAgIHZhbGlkX2Zyb20gPSAnMjAyMC0wMS0wMScsCisgICAgICAgIHZhbGlk X3RpbCA9ICcyMDIxLTAxLTAxJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2 YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSB1cGRhdGUgYm90aCBhdCBvbmNl CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSAnWzIxLDIyKScsCisgICAg ICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsCisgICAgICAgIHZhbGlkX3RpbCA9ICcy MDE4LTAyLTAzJworV0hFUkUgICBpZCA9ICdbMTEsMTIpJworQU5EICAgICB2YWxpZF9hdCBA PiAnMjAyMC0wMS0xNSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgIHRlbXBvcmFs X3BlcjMKK1NFVCAgICAgaWQgPSAnWzEsMiknLAorICAgICAgICB2YWxpZF9mcm9tID0gJzIw MTgtMDMtMDUnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAxOC0wNS0wNScKK1dIRVJFICAg aWQgPSAnWzIxLDIyKSc7CistLSBzZXQgdGhlIHNjYWxhciBwYXJ0IHRvIE5VTEwgKG9rYXkp CitVUERBVEUgIHRlbXBvcmFsX3BlcjMKK1NFVCAgICAgaWQgPSBOVUxMLAorICAgICAgICB2 YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAnMjAyMS0w MS0wMScKK1dIRVJFICAgaWQgPSAnWzIxLDIyKSc7CistLSBzZXQgYSBQRVJJT0QgYm91bmQg dG8gTlVMTCAob2theSkKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VUICAgICBpZCA9ICdb MSwyKScsCisgICAgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wNC0wNCcsCisgICAgICAgIHZh bGlkX3RpbCA9IE5VTEwKK1dIRVJFICAgaWQgSVMgTlVMTCBBTkQgdmFsaWRfYXQgQD4gJzIw MjAtMDYtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFICB0ZW1wb3JhbF9wZXIz CitTRVQgICAgIHZhbGlkX2Zyb20gPSAnMjAxOC0wMy0wMScsCisgICAgICAgIHZhbGlkX3Rp bCA9ICcyMDE4LTA1LTA1JworV0hFUkUgICBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX3RpbCBJ UyBOVUxMOworLS0gcmVqZWN0cyBlbXB0eToKK1VQREFURSAgdGVtcG9yYWxfcGVyMworU0VU ICAgICB2YWxpZF9mcm9tID0gJzIwMjAtMDEtMDEnLAorICAgICAgICB2YWxpZF90aWwgPSAn MjAyMC0wMS0wMScKK1dIRVJFICAgaWQgPSAnWzEsMiknIEFORCB2YWxpZF90aWwgSVMgTlVM TDsKKy0tIHN0aWxsIHJlamVjdHMgZW1wdHkgd2hlbiBzY2FsYXIgcGFydCBpcyBOVUxMOgor VVBEQVRFICB0ZW1wb3JhbF9wZXIzCitTRVQgICAgIGlkID0gTlVMTCwKKyAgICAgICAgdmFs aWRfZnJvbSA9ICcyMDIwLTAxLTAxJywKKyAgICAgICAgdmFsaWRfdGlsID0gJzIwMjAtMDEt MDEnCitXSEVSRSAgIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfdGlsIElTIE5VTEw7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworRFJPUCBU QUJMRSB0ZW1wb3JhbF9wZXIzOworCiAtLQogLS0gdGVzdCBhIHJhbmdlIHdpdGggYm90aCBh IFBLIGFuZCBhIFVOSVFVRSBjb25zdHJhaW50CiAtLQpAQCAtNjYyLDYgKzk3MiwzNyBAQCBB TFRFUiBUQUJMRSB0ZW1wb3JhbDMgQUxURVIgQ09MVU1OIHZhbGlkX2F0IERST1AgTk9UIE5V TEw7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgQUxURVIgQ09MVU1OIHZhbGlkX2F0IFRZUEUg dHN0enJhbmdlIFVTSU5HIHRzdHpyYW5nZShsb3dlcih2YWxpZF9hdCksIHVwcGVyKHZhbGlk X2F0KSk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgUkVOQU1FIENPTFVNTiB2YWxpZF9hdCBU TyB2YWxpZF90aHJ1OwogQUxURVIgVEFCTEUgdGVtcG9yYWwzIERST1AgQ09MVU1OIHZhbGlk X3RocnU7CitcZCB0ZW1wb3JhbDMKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCitDUkVBVEUg VEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUs CisgIHZhbGlkX3RpbCBkYXRlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsM19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWwzCitTRUxF Q1QgYXR0bm90bnVsbCBGUk9NIHBnX2F0dHJpYnV0ZSBXSEVSRSBhdHRyZWxpZCA9ICd0ZW1w b3JhbDMnOjpyZWdjbGFzcyBBTkQgYXR0bmFtZSA9ICd2YWxpZF9hdCc7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbDMgQUxURVIgQ09MVU1OIHZhbGlkX2F0IERST1AgTk9UIE5VTEw7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbDMgQUxURVIgQ09MVU1OIHZhbGlkX2F0IFRZUEUgdHN0enJhbmdl IFVTSU5HIHRzdHpyYW5nZShsb3dlcih2YWxpZF9hdCksIHVwcGVyKHZhbGlkX2F0KSk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbDMgRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0OworXGQgdGVtcG9yYWwzCitE Uk9QIFRBQkxFIHRlbXBvcmFsMzsKKworLS0gU2FtZSByZXN1bHRzIGlmIHdlIGFkZCB0aGUg UEVSSU9EIGFuZCBQSyBmcm9tIEFMVEVSIFRBQkxFOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs MyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwg ZGF0ZQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWwzX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7Citc ZCB0ZW1wb3JhbDMKK1NFTEVDVCBhdHRub3RudWxsIEZST00gcGdfYXR0cmlidXRlIFdIRVJF IGF0dHJlbGlkID0gJ3RlbXBvcmFsMyc6OnJlZ2NsYXNzIEFORCBhdHRuYW1lID0gJ3ZhbGlk X2F0JzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMyBBTFRFUiBDT0xVTU4gdmFsaWRfYXQgRFJP UCBOT1QgTlVMTDsKIERST1AgVEFCTEUgdGVtcG9yYWwzOwogCiAtLQpAQCAtOTYzLDYgKzEz MDQsMTIxIEBAIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nMyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CiAKIERST1AgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMzsKIAorLS0KKy0tIE9O IENPTkZMSUNUOiBQRVJJT0RzCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXI7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOworLS0gd2l0aCBhIGNv bmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9O IENPTkZMSUNUIERPIE5PVEhJTkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElD VCBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbMiwzKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBETyBO T1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbDsKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKTsKKy0tIHdpdGggYSBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05G TElDVCAoaWQsIHZhbGlkX2F0KSBETyBOT1RISU5HOworLS0gaWQgbWF0Y2hlcyBidXQgbm8g Y29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykg T04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hl cyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcyMDA2 LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gTk9USElORzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWw7CisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0w MS0wMScsICcyMDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEs MiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RS QUlOVCB0ZW1wb3JhbF9wZXJfcGsgRE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5v IGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTAtMDEtMDEnLCAnMjAyMC0wMS0wMScp IE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIERPIE5PVEhJTkc7 CistLSBkYXRlIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIw MDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVt cG9yYWxfcGVyX3BrIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBP UkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworCitUUlVOQ0FURSB0ZW1wb3Jh bF9wZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOwor LS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEtMDEnLCAnMjAw Ni0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIFVQREFURSBTRVQgaWQg PSBFWENMVURFRC5pZCArICdbMiwzKSc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGlj dAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05G TElDVCAoaWQsIHZhbGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAn WzMsNCknOworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMiwz KScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZhbGlk X2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzQsNSknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9wZXIgT1JERVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bDsKKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDAwLTAx LTAxJywgJzIwMTAtMDEtMDEnKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwy KScsICcyMDA1LTAxLTAxJywgJzIwMDYtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJB SU5UIHRlbXBvcmFsX3Blcl9wayBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAn WzIsMyknOworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMikn LCAnMjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlO VCB0ZW1wb3JhbF9wZXJfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1sz LDQpJzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMykn LCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlO VCB0ZW1wb3JhbF9wZXJfcGsgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0 LDUpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIE9SREVSIEJZIGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWw7CisKKy0tIHdpdGggYSBVTklRVUUgY29uc3RyYWludDoKKworQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX3BlcjMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBV TklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1RSVU5DQVRFIHRl bXBvcmFsX3BlcjM7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEt MDEnKTsKKy0tIHdpdGggYSBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0w MScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKKy0tIGlkIG1hdGNo ZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDEwLTAxLTAxJywgJzIw MjAtMDEtMDEnKSBPTiBDT05GTElDVCBETyBOT1RISU5HOworLS0gZGF0ZSBtYXRjaGVzIGJ1 dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAx LTAxJykgT04gQ09ORkxJQ1QgRE8gTk9USElORzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworCitUUlVOQ0FURSB0 ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcyMDEwLTAx LTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDUtMDEt MDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwgdmFsaWRfYXQpIERPIE5PVEhJ Tkc7CistLSBpZCBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAn MjAxMC0wMS0wMScsICcyMDIwLTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkg RE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIChpZCwg dmFsaWRfYXQpIERPIE5PVEhJTkc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JE RVIgQlkgaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbDsKKworVFJVTkNBVEUgdGVtcG9yYWxf cGVyMzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpOwor LS0gd2l0aCBhIGNvbmZsaWN0CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDA1LTAxLTAxJywgJzIw MDYtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05TVFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEg RE8gTk9USElORzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCBPTiBDT05T VFJBSU5UIHRlbXBvcmFsX3BlcjNfdXEgRE8gTk9USElORzsKKy0tIGRhdGUgbWF0Y2hlcyBi dXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjMgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1syLDMpJywgJzIwMDUtMDEtMDEnLCAnMjAwNi0w MS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyM191cSBETyBO T1RISU5HOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIzIE9SREVSIEJZIGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWw7CisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjM7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbMSwyKScsICcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKTsKKy0tIHdpdGggYSBjb25m bGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04g Q09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBEQVRFIFNFVCBpZCA9IEVYQ0xVREVELmlk ICsgJ1syLDMpJzsKKy0tIGlkIG1hdGNoZXMgYnV0IG5vIGNvbmZsaWN0CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIzIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDEwLTAxLTAxJywgJzIwMjAtMDEtMDEnKSBPTiBDT05GTElDVCAoaWQsIHZh bGlkX2F0KSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCknOworLS0g ZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy MyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAnMjAwNS0w MS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgKGlkLCB2YWxpZF9hdCkgRE8gVVBE QVRFIFNFVCBpZCA9IEVYQ0xVREVELmlkICsgJ1s0LDUpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGVyMyBPUkRFUiBCWSBpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsOworCitUUlVO Q0FURSB0ZW1wb3JhbF9wZXIzOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMyAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzEsMiknLCAnMjAwMC0wMS0wMScsICcy MDEwLTAxLTAxJyk7CistLSB3aXRoIGEgY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIw MDUtMDEtMDEnLCAnMjAwNi0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVt cG9yYWxfcGVyM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzIsMykn OworLS0gaWQgbWF0Y2hlcyBidXQgbm8gY29uZmxpY3QKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjMgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1sxLDIpJywgJzIw MTAtMDEtMDEnLCAnMjAyMC0wMS0wMScpIE9OIENPTkZMSUNUIE9OIENPTlNUUkFJTlQgdGVt cG9yYWxfcGVyM191cSBETyBVUERBVEUgU0VUIGlkID0gRVhDTFVERUQuaWQgKyAnWzMsNCkn OworLS0gZGF0ZSBtYXRjaGVzIGJ1dCBubyBjb25mbGljdAorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzIsMyknLCAn MjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJykgT04gQ09ORkxJQ1QgT04gQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wZXIzX3VxIERPIFVQREFURSBTRVQgaWQgPSBFWENMVURFRC5pZCArICdbNCw1 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlcjMgT1JERVIgQlkgaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbDsKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIzOworCiAtLQogLS0g dGVzdCBGSyBkZXBlbmRlbmNpZXMKIC0tCkBAIC05ODYsNiArMTQ0MiwyOSBAQCBBTFRFUiBU QUJMRSB0ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfYXQgQ0FTQ0FERTsKIERST1AgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIERST1AgVEFCTEUgdGVtcG9yYWwzOwogCistLSBj YW4ndCBkcm9wIGEgUEVSSU9EIHJlZmVyZW5jZWQgYnkgYW4gRkssIHVubGVzcyB3aXRoIENB U0NBREUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZh bGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWwzX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5n ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAg UkVGRVJFTkNFUyB0ZW1wb3JhbDMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworQUxURVIg VEFCTEUgdGVtcG9yYWwzIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdDsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsMyBEUk9QIFBFUklPRCBGT1IgdmFsaWRfYXQgQ0FTQ0FERTsKK0RST1AgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCiAtLQog LS0gdGVzdCBGT1JFSUdOIEtFWSwgcmFuZ2UgcmVmZXJlbmNlcyByYW5nZQogLS0KQEAgLTEw MTYsNiArMTQ5NSw3IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKICAg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKICAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQs IFBFUklPRCB2YWxpZF9hdCkKICk7CitcZCB0ZW1wb3JhbF9ma19ybmcycm5nCiBEUk9QIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmc7CiAKIC0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0Qg Y29sdW1uczoKQEAgLTI3OTAsNDcgKzMyNzAsMjg4OSBAQCBJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQQogREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgs OSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CiBTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OwogCi0tLSBGSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUK Ky0tCistLSB0ZXN0IEZPUkVJR04gS0VZLCBQRVJJT0QgcmVmZXJlbmNlcyBQRVJJT0QKKy0t CiAKLUNSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7Cist LSB0ZXN0IHRhYmxlIHNldHVwCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjsKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9wZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0 ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyk7CiAKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKy0t IENhbid0IGNyZWF0ZSBhIEZLIHdpdGggYSBtaXNtYXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxp ZF9hdCBteWRhdGVyYW5nZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyAgdmFsaWRfZnJvbSBp bnQsCisgIHZhbGlkX3RpbCBpbnQsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklP RCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogKTsKLUNSRUFURSBUQUJMRSB0 ZW1wb3JhbF9mazNfcm5nMnJuZyAoCisKKy0tIHdvcmtzOiBQRVJJT0QgZm9yIGJvdGggcmVm ZXJlbmNlZCBhbmQgcmVmZXJlbmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyICgKICAgaWQgaW50NHJhbmdlLAotICB2YWxpZF9hdCBteWRhdGVyYW5nZSwKKyAgdmFs aWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKICAgcGFyZW50X2lkIGludDRyYW5n ZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAotICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrM19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKLSAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzMgKGlkLCBQRVJJT0QgdmFsaWRfYXQp IE9OIERFTEVURSBDQVNDQURFCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZh bGlkX2F0KQogKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmszX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmczIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBXSEVSRSBpZCA9ICdbOCw5KSc7Ci1TRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrM19ybmcy cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK1xkIHRlbXBvcmFsX2ZrX3BlcjJwZXIKIAotRFJP UCBUQUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJuZzsKLURST1AgVEFCTEUgdGVtcG9yYWxfcm5n MzsKLURST1AgVFlQRSBteWRhdGVyYW5nZTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnBlcjsKIAotLS0KLS0tIEZLIGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVzOiByYW5nZXMK LS0tCistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6CiAKLUNSRUFURSBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKAorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBSRUZFUkVOQ0VTIHBhcnQg c2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl ciAoCiAgIGlkIGludDRyYW5nZSwKLSAgdmFsaWRfYXQgZGF0ZXJhbmdlLAotICBuYW1lIHRl eHQsCi0gIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25lZF9ybmdfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQotKSBQQVJUSVRJT04gQlkgTElT VCAoaWQpOwotQ1JFQVRFIFRBQkxFIHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0 aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdb Nyw4KScsICdbOSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3 LDE4KScsICdbMTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScpOwotQ1JFQVRFIFRBQkxF IHRwMiBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMg SU4gKCdbMCwxKScsICdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAs MTEpJywgJ1sxMiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIw LDIxKScsICdbMjIsMjMpJywgJ1syNCwyNSknKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKLSAgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKLSAgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwK KyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGlu dDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9hdCkKKyk7CistLSAo cGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gYm90 aCBzaG91bGQgc3BlY2lmeSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90 aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwg UEVSSU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQ RVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKyAgaWQgaW50NHJh bmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRf aWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQor ICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsK Ky0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KKy0tIEZP UkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRl LAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9E IEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlcgorKTsKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAo aWQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5n ZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lk IGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkKQorKTsKKy0tIChwYXJlbnRf aWQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRl LAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9E IEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwg UEVSSU9EIHZhbGlkX2F0KQorKTsKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVy ZW5jZWQgdGFibGU6CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5D RVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisg IHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCispOworRFJPUCBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyBb aW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFy ZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyCispOworCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9m IGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVS TEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyIChpZCwgUEVSSU9EIGlkKQorKTsKKworLS0gVHdvIHNjYWxhciBjb2x1bW5zCitE Uk9QIFRBQkxFIHRlbXBvcmFsX3BlcjI7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMiAo CisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0 ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZ IEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworCitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZh bGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZDEgaW50NHJh bmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVy MnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAor ICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJl bnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0 ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBv cmFsX2ZrMl9wZXIycGVyCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworCist LQorLS0gdGVzdCBBTFRFUiBUQUJMRSBBREQgQ09OU1RSQUlOVAorLS0KKworQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisg IFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl cgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworLS0gVHdvIHNjYWxhciBjb2x1bW5zOgor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlLAorICBwYXJlbnRfaWQxIGlu dDRyYW5nZSwKKyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRf YXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQx LCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCk7CitcZCB0ZW1wb3JhbF9mazJfcGVy MnBlcgorCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlLCBh bmQgd3JvbmcgY29sdW1uIHR5cGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy CisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBEUk9QIFBF UklPRCBGT1IgdmFsaWRfYXQsCisgIEFMVEVSIENPTFVNTiB2YWxpZF9mcm9tIFRZUEUgdGlt ZXN0YW1wLAorICBBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgdGltZXN0YW1wLAorICBB REQgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRf YXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlcgorICBEUk9QIFBFUklPRCBGT1IgdmFsaWRfYXQsCisgIEFMVEVSIENPTFVN TiB2YWxpZF9mcm9tIFRZUEUgZGF0ZSwKKyAgQUxURVIgQ09MVU1OIHZhbGlkX3RpbCBUWVBF IGRhdGUsCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpOworCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CisKKy0tIHNob3VsZCBmYWls IGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9mazIKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkK KyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgaWQpOworCistLQorLS0g dGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0KKworREVMRVRFIEZST00gdGVtcG9yYWxfZmtf cGVyMnBlcjsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzEsMikn LCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJyksCisgICgnWzEsMiknLCAnMjAxOC0wMy0w MycsICcyMDE4LTA0LTA0JyksCisgICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAx LTA1JyksCisgICgnWzMsNCknLCAnMjAxOC0wMS0wMScsIE5VTEwpOworCitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAx LTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMiknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIsMyknLCAnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJywgJ1sxLDIpJyk7 CistLSBzaG91bGQgZmFpbDoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy OworLS0gb2theSBhZ2FpbjoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKKworLS0KKy0tIHRlc3QgcGdf Z2V0X2NvbnN0cmFpbnRkZWYKKy0tCisKK1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihv aWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX2ZrX3Bl cjJwZXJfZmsnOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyBpbnNlcnRzCistLQor CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywgJzIwMTgtMDEtMDInLCAnMjAx OC0wMi0wMScsICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1syLDMpJywgJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwyKScp OworLS0gbm93IGl0IHNob3VsZCB3b3JrOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAyLTAz JywgJzIwMTgtMDMtMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMyknLCAn MjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJywgJ1sxLDIpJyk7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jaW5nIHVwZGF0ZXMKKy0tCisKKy0tIHNsaWRlIHRoZSBlZGdlIGFjcm9zcyBh IHJlZmVyZW5jZWQgdHJhbnNpdGlvbjoKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNF VCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wMi0yMCcg V0hFUkUgaWQgPSAnWzEsMiknOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxf ZmtfcGVyMnBlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAyJywgdmFsaWRfdGlsID0g JzIwMTgtMDUtMDEnIFdIRVJFIGlkID0gJ1sxLDIpJzsKK1VQREFURSB0ZW1wb3JhbF9ma19w ZXIycGVyIFNFVCBwYXJlbnRfaWQgPSAnWzgsOSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKKwor LS0gQUxURVIgRksgREVGRVJSQUJMRQorCitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgICAoJ1s1LDYp JywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAgICgnWzUsNiknLCAnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJyk7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICAg KCdbMyw0KScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNiknKTsKKyAgQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVE OworCisgIERFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw2KSc7IC0t c2hvdWxkIG5vdCBmYWlsIHlldC4KK0NPTU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVyZS4KKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIE5PIEFDVElPTgorLS0KKworVFJV TkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVy MnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9OIFVQ REFURSBOTyBBQ1RJT047CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2Ug dGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNiknLCAnMjAx OC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxp ZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0wMScgV0hFUkUg aWQgPSAnWzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3Vn aCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0 OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT CisgICgnWzUsNiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNikn LCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVF UworICAoJ1szLDQpJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw2KScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywgdmFs aWRfdGlsID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIEEg UEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAg KCdbNiw3KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTCisgICgnWzQsNSknLCAnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JywgJ1s2 LDcpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyCitTRVQgdmFsaWRfZnJvbSA9IENBU0UgV0hF TiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4gJzIwMTgtMDEtMDEnCisgICAgICAg ICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIw MTgtMDEtMDUnIEVORDo6ZGF0ZSwKKyAgICB2YWxpZF90aWwgPSAgQ0FTRSBXSEVOIHZhbGlk X2Zyb20gPSAnMjAxOC0wMS0wMScgVEhFTiAnMjAxOC0wMS0wNScKKyAgICAgICAgICAgICAg ICAgICAgICBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgVEhFTiAnMjAxOC0wMy0w MScgRU5EOjpkYXRlCitXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0ZSBzaHJp bmtpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYnV0IHN0aWxsIHZhbGlkOgorLS0gVGhlcmUg YXJlIHR3byByZWZlcmVuY2VzOiBvbmUgZnVsZmlsbGVkIGJ5IHRoZSBmaXJzdCBwayByb3cs CistLSB0aGUgb3RoZXIgZnVsZmlsbGVkIGJ5IGJvdGggcGsgcm93cyBjb21iaW5lZC4KK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTCisgICgnWzEsMiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJyksCisgICgnWzEs MiknLCAnMjAxOC0wMy0wMScsICcyMDE4LTA2LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUworICAoJ1sxLDIpJywgJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0wMScsICdbMSwyKScp LAorICAoJ1syLDMpJywgJzIwMTgtMDEtMTUnLCAnMjAxOC0wNS0wMScsICdbMSwyKScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTE1JywgdmFs aWRfdGlsID0gJzIwMTgtMDMtMDEnCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0 IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIGdyb3dpbmcgdGhlIHJl ZmVyZW5jZWQgcmFuZ2UgaXMgZmluZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlk X2Zyb20gPSAnMjAxOC0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJworV0hFUkUg aWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0yNSc6OmRhdGU7CistLSBh IFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYW5kIGNoYW5naW5n IHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxf cGVyIFNFVCBpZCA9ICdbMiwzKScsIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0xNScsIHZhbGlk X3RpbCA9ICcyMDE4LTAzLTAxJworV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBA PiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBjaGFuZ2luZyBvbmx5IHRo ZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfcGVy IFNFVCBpZCA9ICdbMiwzKScKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgdGhhdCBsb3NlcyB0aW1lIGZy b20gYm90aCBlbmRzLCBidXQgaXMgc3RpbGwgdmFsaWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1syLDMpJywg JzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMK KyAgKCdbNSw2KScsICcyMDE4LTAxLTE1JywgJzIwMTgtMDItMDEnLCAnWzIsMyknKTsKK1VQ REFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0xNScsIHZhbGlk X3RpbCA9ICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMyknOworLS0gYSBQSyB1cGRh dGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitVUERBVEUgdGVt cG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAn MjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4 LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0gYSBQSyB1cGRhdGUg dGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQsIGJ1dCBub3QgJ3RpbCBj b21taXQ6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICAg IEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIERFRkVSUkFC TEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIFVQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZh bGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworICBX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFy dCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90 aWwgPSAnMjAxOC0wMi0wMSc7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBp cyBva2F5OgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitX SEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQ REFURSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMDUnIFRPICcyMDE4LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAn WzUsNiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw2 KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRo ZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgV0hFUkUgaWQgPSAnWzMsNCknOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFs aWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlk X3RpbCA9ICcyMDE4LTAyLTAxJzsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFJFU1RSSUNUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2Zr X3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisg IEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIKKyAgT04gVVBEQVRFIFJFU1RSSUNUOworLS0gYSBQSyB1cGRhdGUg dGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s1LDYpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworVVBEQVRF IHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGls ID0gJzIwMTYtMDItMDEnIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgdXBkYXRlIHRo YXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBi ZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVS RSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDYpJywgJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpLAorICAoJ1s1LDYpJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsICcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zy b20gPSAnMjAxNi0wMi0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwg PSAnMjAxOC0wMy0wMSc7CistLSBBIFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdl ZW4gdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzYsNyknLCAnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJyksCisgICgnWzYsNyknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAz LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1s0LDUpJywgJzIwMTgtMDEt MTUnLCAnMjAxOC0wMi0xNScsICdbNiw3KScpOworVVBEQVRFIHRlbXBvcmFsX3BlcgorU0VU IHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBUSEVO ICcyMDE4LTAxLTAxJworICAgICAgICAgICAgICAgICAgICAgIFdIRU4gdmFsaWRfZnJvbSA9 ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1JyBFTkQ6OmRhdGUsCisgICAgdmFsaWRf dGlsID0gIENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIFRIRU4gJzIwMTgt MDEtMDUnCisgICAgICAgICAgICAgICAgICAgICAgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgt MDItMDEnIFRIRU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQorV0hFUkUgaWQgPSAnWzYsNykn OworLS0gYSBQSyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZlcmVuY2VkIHJhbmdlIGJ1dCBz dGlsbCB2YWxpZDoKKy0tIFRoZXJlIGFyZSB0d28gcmVmZXJlbmNlczogb25lIGZ1bGZpbGxl ZCBieSB0aGUgZmlyc3QgcGsgcm93LAorLS0gdGhlIG90aGVyIGZ1bGZpbGxlZCBieSBib3Ro IHBrIHJvd3MgY29tYmluZWQuCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1sxLDIpJywgJzIwMTgtMDEtMDEnLCAn MjAxOC0wMy0wMScpLAorICAoJ1sxLDIpJywgJzIwMTgtMDMtMDEnLCAnMjAxOC0wNi0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScsICcyMDE4LTAxLTE1Jywg JzIwMTgtMDItMDEnLCAnWzEsMiknKSwKKyAgKCdbMiwzKScsICcyMDE4LTAxLTE1JywgJzIw MTgtMDUtMDEnLCAnWzEsMiknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zy b20gPSAnMjAxOC0wMS0xNScsIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJworV0hFUkUgaWQg PSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBL IHVwZGF0ZSBncm93aW5nIHRoZSByZWZlcmVuY2VkIHJhbmdlIGlzIGZpbmU6CitVUERBVEUg dGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnLCB2YWxpZF90aWwg PSAnMjAxOC0wMy0wMScKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTgtMDEtMjUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZlcmVu Y2VkIHJhbmdlIGFuZCBjaGFuZ2luZyB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIHJh bmdlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzIsMyknLCB2YWxpZF9mcm9t ID0gJzIwMTgtMDEtMTUnLCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMScKK1dIRVJFIGlkID0g J1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1 cGRhdGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIHJhbmdl OgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzIsMyknCitXSEVSRSBpZCA9ICdb MSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBk YXRlIHRoYXQgbG9zZXMgdGltZSBmcm9tIGJvdGggZW5kcywgYnV0IGlzIHN0aWxsIHZhbGlk OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzUsNiknLCAnMjAxOC0wMS0xNScsICcyMDE4 LTAyLTAxJywgJ1syLDMpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9t ID0gJzIwMTgtMDEtMTUnLCB2YWxpZF90aWwgPSAnMjAxOC0wMi0xNScKK1dIRVJFIGlkID0g J1syLDMpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSBy ZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBV UERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxp ZF90aWwgPSAnMjAxNi0wMi0wMScKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9m cm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitST0xM QkFDSzsKKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1w b3JhbF9wZXIgU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7Cist LSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBv cmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8g JzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7Cist LSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEw JworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVS RSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gdGhlbiBkZWxl dGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNj ZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzMs NCknOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAx JywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZh bGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgorLS0KKwor VFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0g YSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0 IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s1LDYpJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0t IGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQg aXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUs NiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisgICgnWzUsNiknLCAnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQp JywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw2KScpOworREVMRVRFIEZST00g dGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4 LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyBkZWxldGUg dGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLSBhIFBLIGRlbGV0ZSB0 aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwgYnV0IG5vdCAndGlsIGNv bW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisgICAg QUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgREVGRVJSQUJM RSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdI RVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2Vk IHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBp ZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRl bGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1 Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdb Myw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0w MSc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisg IE9OIERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNiknLCAnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUs NiknOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVt ZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMK KyAgKCdbNSw2KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw2KScs ICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzMsNCknLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDYpJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9t ID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBhIFBL IGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCAoZXZlbiBi ZWZvcmUgY29tbWl0KToKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAg REVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9y YWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAx JyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworUk9MTEJBQ0s7CistLSBkZWxldGlu ZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxf cGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAx OC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0 IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1 LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkIGluICgnWzUsNikn LCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUg c2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIy cGVyIFdIRVJFIGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlk X3RpbCA9ICcyMDE4LTAyLTAxJzsKKworLS0KKy0tIHBlcjJwZXIgdGVzdCBPTiBVUERBVEUv REVMRVRFIG9wdGlvbnMKKy0tCistLSBUT0M6CistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FT Q0FERQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgTlVMTAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLSByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg REVGQVVMVAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29s cykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCist LSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNl dCkKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz KQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMp CistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywg U0VUIERFRkFVTFQgc3Vic2V0KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0 ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19w ZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl cgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maywKKyAgQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Blcgor ICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcs OCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVy MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsOCkn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBl ciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9w ZXIgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf cGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDcpJyk7Cist LSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0w MScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0g bm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0g J1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byBy ZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJF IGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVw ZGF0ZXMgU0VUIE5VTEwKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxf ZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQg PSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAn WzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAw XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsKK1VQREFURSB0ZW1w b3JhbF9wZXIgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KKwor VFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb Niw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkg VkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3 KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl ciBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAw LDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIs IHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCBudWxsLCBudWxsKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKyAgQUxU RVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgICAgT04gREVMRVRF IFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBX SEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24t RlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDgpJyBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNF VCBpZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIw MTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScs IG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbOCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSkn LCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2Fs YXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9w ZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScsICdb Niw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJl bnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIy CisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0g J1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9 ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw5KScsICdbOCw5KScpOworVVBEQVRF IHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURF ICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1w b3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQy LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9p ZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAn WzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5 LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw5KScsICdbOCw5KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2Fs YXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9w ZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScsICdb Niw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJl bnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIy CisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEg PSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQx ID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzgsOSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERB VEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkp JyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0 ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwg aWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn LCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwy MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw5KScsICdbOCw5KScpOwor REVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBz Y2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxf cGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICdb Niw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4n dCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVy MnBlcgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBP TiBVUERBVEUgU0VUIE5VTEw7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9w ZXIycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAg QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtF WSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcGVyMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lk MSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAw LDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDkpJywgJ1s4LDkpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9y YWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBu dWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNykn LCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFMVEVS IENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09M VU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9wZXIycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAg ICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlk MSA9ICdbNyw4KScsIGlkMiA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1w b3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlk ID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlk MiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBp ZDEgPSAnWzksMTApJywgaWQyID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxU ICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1w b3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQy LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScs IG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3 KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9y YWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzgsOSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxh ciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9w ZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAn WzYsNyknLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwg aWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywg JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn LCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0 aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisg IEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQx LCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRF IFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBl cgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisg IERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04g VVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00g dGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOSknLCBudWxsLCBudWxsKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0t CistLSB0ZXN0IEZPUkVJR04gS0VZLCByYW5nZSByZWZlcmVuY2VzIFBFUklPRAorLS0KKwor LS0gdGVzdCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIgQ0FTQ0FERTsK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wZXIK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrCisgIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CisKKy0tIENhbid0IGNyZWF0ZSBhIEZLIHdp dGggYSBtaXNtYXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBpbnQ0cmFuZ2UsCisgIHBh cmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVS SU9EIHZhbGlkX2F0KQorKTsKKworLS0gd29ya3M6IFBFUklPRCBmb3IgcmVmZXJlbmNlZCwg cmFuZ2UgZm9yIHJlZmVyZW5jaW5nCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBl ciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRf aWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9ma19ybmcycGVyCitEUk9QIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJwZXI7CisKKy0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJT0QgY29sdW1uczoK KworLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFs aWRfYXQpCistLSBSRUZFUkVOQ0VTIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVB VEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlk X2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBib3RoIHNob3VsZCBzcGVjaWZ5 IFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50 NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2Us CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lk LCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKy0tIEZPUkVJ R04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdl LAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK KyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVS SU9EIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VT IFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9E CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlciAoCisgIGlkIGludDRyYW5nZSwK KyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVy X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMg dGVtcG9yYWxfcGVyCispOworLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIChpZCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFu Z2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCkKKyk7CistLSAocGFyZW50X2lk KSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5n ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mayBGT1JFSUdOIEtFWSAocGFy ZW50X2lkKQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIHZhbGlk X2F0KQorKTsKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6 CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0 XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2Us CisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBl cl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJw ZXI7CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBk YXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKKworLS0g c2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorICAgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIGlkKQorKTsKKworLS0gVHdvIHNjYWxh ciBjb2x1bW5zCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BlcjIgQ0FTQ0FERTsKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9wZXIyICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5n ZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1w b3JhbF9wZXIyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKKyk7CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlciAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQxIGlu dDRyYW5nZSwKKyAgcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3JuZzJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKyk7 CitcZCB0ZW1wb3JhbF9mazJfcm5nMnBlcgorRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazJfcm5n MnBlcjsKKworLS0KKy0tIHRlc3QgQUxURVIgVEFCTEUgQUREIENPTlNUUkFJTlQKKy0tCisK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBl cgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworLS0gVHdvIHNjYWxhciBjb2x1bW5zOgor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycGVyICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZDEgaW50NHJhbmdlLAorICBwYXJl bnRfaWQyIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmsyX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9ybmcycGVyCisKKy0t IHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUsIGFuZCB3cm9uZyBj b2x1bW4gdHlwZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmssCisgIEFMVEVSIENPTFVNTiB2YWxp ZF9hdCBUWVBFIHRzcmFuZ2UgVVNJTkcgdHNyYW5nZShsb3dlcih2YWxpZF9hdCksIHVwcGVy KHZhbGlkX2F0KSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUxURVIgQ09MVU1OIHZhbGlkX2F0 IFRZUEUgZGF0ZXJhbmdlIFVTSU5HIGRhdGVyYW5nZShsb3dlcih2YWxpZF9hdCk6OmRhdGUs IHVwcGVyKHZhbGlkX2F0KTo6ZGF0ZSk7CisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhl IHJlZmVyZW5jZWQgdGFibGU6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisg IEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cjsKKworLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBj b2x1bW5zOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrMgorICBGT1JFSUdOIEtFWSAocGFyZW50X2lk LCBQRVJJT0QgcGFyZW50X2lkKQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIFBF UklPRCBpZCk7CisKKy0tCistLSB0ZXN0IHdpdGggcm93cyBhbHJlYWR5CistLQorCitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVy OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDMnKSwKKyAg KCdbMSwyKScsICcyMDE4LTAzLTAzJywgJzIwMTgtMDQtMDQnKSwKKyAgKCdbMiwzKScsICcy MDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSwKKyAgKCdbMyw0KScsICcyMDE4LTAxLTAxJywg TlVMTCk7CisKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCAn WzIwMTgtMDEtMDIsMjAxOC0wMi0wMSknLCAnWzEsMiknKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9m aworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVS RU5DRVMgdGVtcG9yYWxfcGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMiwzKScsICdbMjAxOC0wMS0wMiwyMDE4LTA0LTAxKScsICdbMSwyKScpOworLS0gc2hv dWxkIGZhaWw6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKKy0tIG9r YXkgYWdhaW46CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK KyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CisKKy0tCistLSB0ZXN0IHBnX2dldF9jb25z dHJhaW50ZGVmCistLQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9N IHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ma19ybmcycGVyX2Zr JzsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KKworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDEpJywgJ1sxLDIpJyk7Cist LSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwzKScsICdbMjAxOC0wMS0wMiwyMDE4 LTA0LTAxKScsICdbMSwyKScpOworLS0gbm93IGl0IHNob3VsZCB3b3JrOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb MSwyKScsICcyMDE4LTAyLTAzJywgJzIwMTgtMDMtMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwz KScsICdbMjAxOC0wMS0wMiwyMDE4LTA0LTAxKScsICdbMSwyKScpOworCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQorCistLSBzbGlkZSB0aGUgZWRnZSBhY3Jv c3MgYSByZWZlcmVuY2VkIHRyYW5zaXRpb246CitVUERBVEUgdGVtcG9yYWxfZmtfcm5nMnBl ciBTRVQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDIsMjAxOC0wMi0yMCknIFdIRVJFIGlkID0g J1sxLDIpJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJwZXIg U0VUIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAyLDIwMTgtMDUtMDEpJyBXSEVSRSBpZCA9ICdb MSwyKSc7CitVUERBVEUgdGVtcG9yYWxfZmtfcm5nMnBlciBTRVQgcGFyZW50X2lkID0gJ1s4 LDkpJyBXSEVSRSBpZCA9ICdbMSwyKSc7CisKKy0tIEFMVEVSIEZLIERFRkVSUkFCTEUKKwor QkVHSU47CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTCisgICAgKCdbNSw2KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKSwKKyAgICAoJ1s1LDYpJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworICBJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTCisgICAgKCdbMyw0KScsICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScsICdb NSw2KScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgICAgQUxURVIg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklU SUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlk ID0gJ1s1LDYpJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlUOyAtLSBzaG91bGQg ZmFpbCBoZXJlLgorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8gQUNU SU9OCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3JuZzJwZXI7 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBl cgorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXIKKyAgT04gVVBEQVRFIE5PIEFDVElPTjsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3Vj Y2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbNSw2KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3Jh bF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2 LTAyLTAxJyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2Nl ZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0 aGUgcmFuZ2UgaXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzUsNiknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw2KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSwKKyAgKCdbNSw2KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMKKyAgKCdbMyw0KScsICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScsICdbNSw2KScpOwor VVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAyLTAxJywgdmFs aWRfdGlsID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIEEg UEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls KSBWQUxVRVMKKyAgKCdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAg KCdbNiw3KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAg KCdbNCw1KScsICdbMjAxOC0wMS0xNSwyMDE4LTAyLTE1KScsICdbNiw3KScpOworVVBEQVRF IHRlbXBvcmFsX3BlcgorU0VUIHZhbGlkX2Zyb20gPSBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9 ICcyMDE4LTAxLTAxJyBUSEVOICcyMDE4LTAxLTAxJworICAgICAgICAgICAgICAgICAgICAg IFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAxLTA1JyBFTkQ6 OmRhdGUsCisgICAgdmFsaWRfdGlsID0gIENBU0UgV0hFTiB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDEnIFRIRU4gJzIwMTgtMDEtMDUnCisgICAgICAgICAgICAgICAgICAgICAgV0hFTiB2 YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIFRIRU4gJzIwMTgtMDMtMDEnIEVORDo6ZGF0ZQor V0hFUkUgaWQgPSAnWzYsNyknOworLS0gYSBQSyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZl cmVuY2VkIHJhbmdlIGJ1dCBzdGlsbCB2YWxpZDoKKy0tIFRoZXJlIGFyZSB0d28gcmVmZXJl bmNlczogb25lIGZ1bGZpbGxlZCBieSB0aGUgZmlyc3QgcGsgcm93LAorLS0gdGhlIG90aGVy IGZ1bGZpbGxlZCBieSBib3RoIHBrIHJvd3MgY29tYmluZWQuCitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1sxLDIp JywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMy0wMScpLAorICAoJ1sxLDIpJywgJzIwMTgtMDMt MDEnLCAnMjAxOC0wNi0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgJ1syMDE4LTAx LTE1LDIwMTgtMDItMDEpJywgJ1sxLDIpJyksCisgICgnWzIsMyknLCAnWzIwMTgtMDEtMTUs MjAxOC0wNS0wMSknLCAnWzEsMiknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlk X2Zyb20gPSAnMjAxOC0wMS0xNScsIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJworV0hFUkUg aWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBh IFBLIHVwZGF0ZSBncm93aW5nIHRoZSByZWZlcmVuY2VkIHJhbmdlIGlzIGZpbmU6CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnLCB2YWxpZF90 aWwgPSAnMjAxOC0wMy0wMScKK1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTgtMDEtMjUnOjpkYXRlOworLS0gYSBQSyB1cGRhdGUgc2hyaW5raW5nIHRoZSByZWZl cmVuY2VkIHJhbmdlIGFuZCBjaGFuZ2luZyB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xl IHJhbmdlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzIsMyknLCB2YWxpZF9m cm9tID0gJzIwMTgtMDEtMTUnLCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMScKK1dIRVJFIGlk ID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQ SyB1cGRhdGUgY2hhbmdpbmcgb25seSB0aGUgaWQgaW52YWxpZGF0ZXMgdGhlIHdob2xlIHJh bmdlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzIsMyknCitXSEVSRSBpZCA9 ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsg dXBkYXRlIHRoYXQgbG9zZXMgdGltZSBmcm9tIGJvdGggZW5kcywgYnV0IGlzIHN0aWxsIHZh bGlkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMKKyAgKCdbMiwzKScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkKSBWQUxVRVMKKyAgKCdbNSw2KScsICdbMjAxOC0wMS0xNSwyMDE4LTAyLTAxKScsICdb MiwzKScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE4LTAx LTE1JywgdmFsaWRfdGlsID0gJzIwMTgtMDItMTUnCitXSEVSRSBpZCA9ICdbMiwzKSc7Cist LSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoK K1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZh bGlkX3RpbCA9ICcyMDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9m cm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLSBh IFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZCwgYnV0 IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19y bmcycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisg ICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgVVBEQVRFIHRlbXBvcmFs X3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYt MDItMDEnCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworQ09NTUlUOworLS0gY2hhbmdpbmcgdGhl IHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcs OCknCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScg QU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJl bmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9 ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0 IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsOCknCitX SEVSRSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBp ZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJl Y29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxf cGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0w Mi0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEs MjAxOC0wMi0wMSknOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVT VFJJQ1QKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBl cjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cGVyCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3BlcgorICBPTiBVUERBVEUgUkVTVFJJQ1Q7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1 Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzUsNiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitVUERBVEUgdGVtcG9y YWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAx Ni0wMi0wMScgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNj ZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2Ug dGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0g J1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JyksCisgICgnWzUsNiknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTCisgICgnWzMsNCknLCAnWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCknLCAnWzUsNiknKTsK K1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMi0wMScsIHZh bGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9m cm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBB IFBLIHVwZGF0ZSBzbGlkaW5nIHRoZSBlZGdlIGJldHdlZW4gdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTCisgICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyksCisg ICgnWzYsNyknLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTCisg ICgnWzQsNSknLCAnWzIwMTgtMDEtMTUsMjAxOC0wMi0xNSknLCAnWzYsNyknKTsKK1VQREFU RSB0ZW1wb3JhbF9wZXIKK1NFVCB2YWxpZF9mcm9tID0gQ0FTRSBXSEVOIHZhbGlkX2Zyb20g PSAnMjAxOC0wMS0wMScgVEhFTiAnMjAxOC0wMS0wMScKKyAgICAgICAgICAgICAgICAgICAg ICBXSEVOIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgVEhFTiAnMjAxOC0wMS0wNScgRU5E OjpkYXRlLAorICAgIHZhbGlkX3RpbCA9ICBDQVNFIFdIRU4gdmFsaWRfZnJvbSA9ICcyMDE4 LTAxLTAxJyBUSEVOICcyMDE4LTAxLTA1JworICAgICAgICAgICAgICAgICAgICAgIFdIRU4g dmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBUSEVOICcyMDE4LTAzLTAxJyBFTkQ6OmRhdGUK K1dIRVJFIGlkID0gJ1s2LDcpJzsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVm ZXJlbmNlZCByYW5nZSBidXQgc3RpbGwgdmFsaWQ6CistLSBUaGVyZSBhcmUgdHdvIHJlZmVy ZW5jZXM6IG9uZSBmdWxmaWxsZWQgYnkgdGhlIGZpcnN0IHBrIHJvdywKKy0tIHRoZSBvdGhl ciBmdWxmaWxsZWQgYnkgYm90aCBwayByb3dzIGNvbWJpbmVkLgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbMSwy KScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDMtMDEnKSwKKyAgKCdbMSwyKScsICcyMDE4LTAz LTAxJywgJzIwMTgtMDYtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMSwyKScsICdbMjAxOC0w MS0xNSwyMDE4LTAyLTAxKScsICdbMSwyKScpLAorICAoJ1syLDMpJywgJ1syMDE4LTAxLTE1 LDIwMTgtMDUtMDEpJywgJ1sxLDIpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxp ZF9mcm9tID0gJzIwMTgtMDEtMTUnLCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMScKK1dIRVJF IGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0g YSBQSyB1cGRhdGUgZ3Jvd2luZyB0aGUgcmVmZXJlbmNlZCByYW5nZSBpcyBmaW5lOgorVVBE QVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJywgdmFsaWRf dGlsID0gJzIwMTgtMDMtMDEnCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE4LTAxLTI1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIHNocmlua2luZyB0aGUgcmVm ZXJlbmNlZCByYW5nZSBhbmQgY2hhbmdpbmcgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9s ZSByYW5nZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1syLDMpJywgdmFsaWRf ZnJvbSA9ICcyMDE4LTAxLTE1JywgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnCitXSEVSRSBp ZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEg UEsgdXBkYXRlIGNoYW5naW5nIG9ubHkgdGhlIGlkIGludmFsaWRhdGVzIHRoZSB3aG9sZSBy YW5nZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1syLDMpJworV0hFUkUgaWQg PSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBL IHVwZGF0ZSB0aGF0IGxvc2VzIHRpbWUgZnJvbSBib3RoIGVuZHMsIGJ1dCBpcyBzdGlsbCB2 YWxpZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTCisgICgnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAzLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTCisgICgnWzUsNiknLCAnWzIwMTgtMDEtMTUsMjAxOC0wMi0wMSknLCAn WzIsMyknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0w MS0xNScsIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMyknOwor LS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQg KGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9m aworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIFVQREFURSB0ZW1w b3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcy MDE2LTAyLTAxJworICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zyb20gPSAnMjAx OC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK1JPTExCQUNLOworLS0g Y2hhbmdpbmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBT RVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zyb20gPSAn MjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGNoYW5naW5n IGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcGVyCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0w MycKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5n IGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQg PSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X3BlciBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkIGluICgn WzMsNCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2Jq ZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVM RVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90 aWwgPSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfZnJvbSA9 ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgTk8gQUNUSU9OCistLQorCitUUlVOQ0FURSB0 ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3JuZzJwZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19ybmcycGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2Zr OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBlcgorICBBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CistLSBhIFBLIGRlbGV0 ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNl ZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzUsNiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyBkZWxl dGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVu Y2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw2KScsICcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw2KScsICcyMDE4LTAyLTAxJywgJzIw MTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsICdbMjAxOC0wMS0wNSwyMDE4LTAx LTEwKScsICdbNSw2KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0g JzIwMTgtMDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGgg YXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAn MjAxOC0wMi0wMSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBh cmUgcmVmZXJlbmNlZCwgYnV0IG5vdCAndGlsIGNvbW1pdDoKK0JFR0lOOworICBBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19ybmcycGVyX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisK KyAgREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworQ09NTUlU OworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGlu ZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitX SEVSRSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBp ZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJl Y29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEt MDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVy LCB0ZW1wb3JhbF9ma19ybmcycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnBl cgorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9mazsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJwZXIKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnBlcl9maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisgIE9OIERFTEVURSBSRVNUUklDVDsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzUsNiknLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyBkZWxldGUgdGhh dCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJl Y2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdbNSw2KScsICcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw2KScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsICdbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKScs ICdbNSw2KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgt MDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJl ZmVyZW5jZWQgKGV2ZW4gYmVmb3JlIGNvbW1pdCk6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcm5nMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIERF TEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2Zy b20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKK1JPTExC QUNLOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxl dGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAn CitXSEVSRSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVS RSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkIGluICgnWzMsNCknKSBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZL IHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00g dGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9mcm9tID0gJzIwMTgt MDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CisKKy0tCistLSBybmcycGVy IHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLQorLS0gVE9DOgorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCist LSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBT RVQgTlVMTAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURF ICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdv IHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2Nh bGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIg Y29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xz LCBTRVQgTlVMTCBzdWJzZXQpCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQg KHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0 d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3Bl ciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNyknLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAx LDIwMjEtMDEtMDEpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cGVyCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy CisgICAgT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0Yg dmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdb Nyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19y bmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcy cGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0g RksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDIwLTAxLTAxJywg JzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEs MjAyMS0wMS0wMSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0g J1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQg PSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9w ZXIsIHRlbXBvcmFsX2ZrX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0w MSwyMDIxLTAxLTAxKScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywg J1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9wZXIgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0w MSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQg PSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxf cGVyLCB0ZW1wb3JhbF9ma19ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEt MDEsMjAyMS0wMS0wMSknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmssCisgIEFE RCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJwZXJfZmsKKyAgICBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQg PSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf Zmtfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAn WzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAx LTAxLDIwMjEtMDEtMDEpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBp ZCA9ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTkt MDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJF IGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCisKK1RSVU5DQVRFIHRlbXBv cmFsX3BlciwgdGVtcG9yYWxfZmtfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNyknLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVy IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4 LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5 KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVS RSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRl c3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLQorCitUUlVOQ0FURSB0 ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCBu dWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEp JywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycGVyCisgIEFMVEVS IENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcm5nMnBlcl9maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorICAgIE9OIERFTEVURSBT RVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUg aWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycGVyIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3Nz IHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0w MSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDEwKScg V0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwy MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0 ZW1wb3JhbF9ma19ybmcycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgbnVsbCwgbnVsbCk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s2LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw3KScpOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEt MDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5n MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnBlciBXSEVSRSBpZCA9 ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28g cmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzgsOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURF ICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1w b3JhbF9mazJfcm5nMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQy LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDcpJywgJ1s2LDcp Jyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgorICBEUk9QIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAg ICBPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBv biBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcs OCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9y bmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s3 LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIx LTAxLTAxKScsICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VU IGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMp CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4 LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMg b24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJF IGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBk ZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAs MTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVu Y2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQy LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s4LDkpJywgJ1s4LDkp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAo dHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9y YWxfZmsyX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcy cGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sx MDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw3KScsICdbNiw3KScp OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIKKyAgRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcm5nMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisgICAg T04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBv biBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcs OCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9y bmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s3 LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIx LTAxLTAxKScsICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VU IGlkMSA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xz KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3JuZzJwZXI7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICdbMjAx OC0wMS0wMSwyMDIxLTAxLTAxKScsICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g ZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlk MiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9y bmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScsICdbOCw5KScsICdbOCw5 KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwg KHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0KKworVFJVTkNBVEUgdGVt cG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw3 KScsICdbNiw3KScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9ybmcycGVyIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScs ICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRo ZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJwZXIKKyAg RFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrLAorICBBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRf aWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9wZXIyCisgICAgT04gREVMRVRFIFNFVCBOVUxMICh2YWxpZF9hdCkgT04gVVBEQVRF IFNFVCBOVUxMOworLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnBlcgor ICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQ REFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAx LTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnWzIwMTgtMDEtMDEs MjAyMS0wMS0wMSknLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcjIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnBlciBXSEVSRSBpZCA9 ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQor CitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBlcjsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzYsNyknLCAnWzYsNyknLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnWzIwMTgtMDEtMDEsMjAy MS0wMS0wMSknLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr Ml9ybmcycGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0n LAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmssCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNF VCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9y YWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScsIGlkMiA9ICdbNyw4KScgV0hFUkUgaWQx ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUg aWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVw ZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAn WzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdb OCw5KScsICdbOCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIw MjEtMDEtMDEpJywgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBT RVQgaWQxID0gJ1s5LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScg QU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVG QVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwg dGVtcG9yYWxfZmsyX3JuZzJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwt MV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQy LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Ju ZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJywgJ1s2LDcpJywgJ1s2LDcp Jyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIw MjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9ybmcycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdI RVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycGVy IFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw5KScsICdb OCw5KScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEp JywgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJF IGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg ZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJz ZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcm5nMnBl cjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzYsNyknLCBudWxsLCBudWxsKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJwZXIgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJ1syMDE4LTAx LTAxLDIwMjEtMDEtMDEpJywgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNl IHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcm5nMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnBlcl9maywK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJfZmsKKyAgICBGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorICAgIE9OIERFTEVURSBTRVQgREVGQVVMVCAodmFs aWRfYXQpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVt cG9yYWxfZmsyX3JuZzJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFV TFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJwZXJf ZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycGVyX2ZrCisgICAgRk9S RUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFVTFQg KHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0 ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDkp JywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnBlciAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0n LCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5n MnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRk9SRUlHTiBLRVksIFBFUklPRCByZWZlcmVuY2VzIHJhbmdlCistLQor CistLSB0ZXN0IHRhYmxlIHNldHVwCitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZyBDQVNDQURF OworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFs aWRfYXQgZGF0ZXJhbmdlCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX3JuZ19waworICBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpOworCistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlz bWF0Y2hlZCByYW5nZSB0eXBlCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAo CisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBpbnQsCisgIHZhbGlkX3RpbCBpbnQs CisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlk X2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVS SU9EIHZhbGlkX2F0KQorKTsKKworLS0gd29ya3M6IHJhbmdlIGZvciByZWZlcmVuY2VkLCBQ RVJJT0QgZm9yIHJlZmVyZW5jaW5nCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJu ZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwg ZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisg IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlk LCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmtfcGVyMnJuZworRFJPUCBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nOworCistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9E IGNvbHVtbnM6CisKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNF UyAoaWQsIHZhbGlkX2F0KQorLS0gUkVGRVJFTkNFUyBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBF UklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFu Z2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9p ZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpCispOwor LS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKKy0t IGJvdGggc2hvdWxkIHNwZWNpZnkgUEVSSU9EOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFs aWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlk LCB2YWxpZF9hdCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNp ZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGlu dDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFy ZW50X2lkIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9h dCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkK Kyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCist LSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20g ZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcKKyk7CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5D RVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0 cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCkKKyk7CistLSAocGFy ZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20g ZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBF UklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSBy ZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRl LAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxp ZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKK0RS T1AgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZzsKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5D RVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcgKAorICBp ZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisg IHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorICBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKyAg ICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworKTsKKworLS0gc2hvdWxkIGZhaWwgYmVjYXVz ZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwK KyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZCBpbnQ0cmFuZ2UsCisgIFBFUklPRCBG T1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKyAgICBSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZyAoaWQsIFBFUklPRCBpZCkKKyk7CisKKy0tIFR3byBzY2FsYXIgY29sdW1u cworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcyIENBU0NBREU7CitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcm5nMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZh bGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmcyX3BrIFBSSU1B UlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CisKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAg dmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkMSBpbnQ0 cmFuZ2UsCisgIHBhcmVudF9pZDIgaW50NHJhbmdlLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0 ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9w ZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyks CisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVt cG9yYWxfZmsyX3BlcjJybmcKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmc7CisK Ky0tCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5UCistLQorCitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRf ZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwK KyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cm5nCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBUd28gc2NhbGFyIGNvbHVtbnM6 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcgKAorICBpZCBpbnQ0cmFuZ2Us CisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIHBhcmVudF9pZDEg aW50NHJhbmdlLAorICBwYXJlbnRfaWQyIGludDRyYW5nZSwKKyAgUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcGVyMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9w ZXIycm5nCisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUs IGFuZCB3cm9uZyBjb2x1bW4gdHlwZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJy bmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmssCisgIERST1Ag UEVSSU9EIEZPUiB2YWxpZF9hdCwKKyAgQUxURVIgQ09MVU1OIHZhbGlkX2Zyb20gVFlQRSB0 aW1lc3RhbXAsCisgIEFMVEVSIENPTFVNTiB2YWxpZF90aWwgVFlQRSB0aW1lc3RhbXAsCisg IEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycm5nCisgIERST1AgUEVSSU9EIEZPUiB2YWxpZF9hdCwKKyAgQUxURVIgQ09M VU1OIHZhbGlkX2Zyb20gVFlQRSBkYXRlLAorICBBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZ UEUgZGF0ZSwKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCk7CisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKworLS0gc2hvdWxkIGZh aWwgYmVjYXVzZSBvZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycm5nX2ZrMgorICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lk KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCBpZCk7CisKKy0tCist LSB0ZXN0IHdpdGggcm93cyBhbHJlYWR5CistLQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19wZXIycm5nOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1sxLDIpJywgJ1syMDE4LTAx LTAyLDIwMTgtMDItMDMpJyksCisgICgnWzEsMiknLCAnWzIwMTgtMDMtMDMsMjAxOC0wNC0w NCknKSwKKyAgKCdbMiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KScpLAorICAoJ1sz LDQpJywgJ1syMDE4LTAxLTAxLCknKTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mazsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAx JywgJ1sxLDIpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJybmdfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywg JzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScsICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6 CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzsKKy0tIG9rYXkgYWdhaW46 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nOworQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnJuZworICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2Zr CisgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmc7CisKKy0tCistLSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVm CistLQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0 cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ma19wZXIycm5nX2ZrJzsKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KKworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lk KSBWQUxVRVMgKCdbMSwyKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnLCAnWzEsMikn KTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwzKScs ICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnLCAnWzEsMiknKTsKKy0tIG5vdyBpdCBzaG91 bGQgd29yazoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsICdbMjAxOC0wMi0wMywyMDE4LTAzLTAzKScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMiwzKScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnLCAnWzEs MiknKTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgdXBkYXRlcworLS0KKworLS0g c2xpZGUgdGhlIGVkZ2UgYWNyb3NzIGEgcmVmZXJlbmNlZCB0cmFuc2l0aW9uOgorVVBEQVRF IHRlbXBvcmFsX2ZrX3BlcjJybmcgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMicsIHZh bGlkX3RpbCA9ICcyMDE4LTAyLTIwJyBXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBzaG91bGQg ZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycm5nIFNFVCB2YWxpZF9mcm9tID0gJzIw MTgtMDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wNS0wMScgV0hFUkUgaWQgPSAnWzEsMikn OworVVBEQVRFIHRlbXBvcmFsX2ZrX3BlcjJybmcgU0VUIHBhcmVudF9pZCA9ICdbOCw5KScg V0hFUkUgaWQgPSAnWzEsMiknOworCistLSBBTFRFUiBGSyBERUZFUlJBQkxFCisKK0JFR0lO OworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisg ICAgKCdbNSw2KScsICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKScpLAorICAgICgnWzUsNikn LCAnWzIwMTgtMDItMDEsMjAxOC0wMy0wMSknKTsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxV RVMKKyAgICAoJ1szLDQpJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw2KScp OworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgICAgQUxURVIgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgICAgREVGRVJSQUJMRSBJTklUSUFMTFkg REVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1 LDYpJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlUOyAtLSBzaG91bGQgZmFpbCBo ZXJlLgorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgTk8gQUNUSU9OCist LQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5nX2ZrCisgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcK KyAgT04gVVBEQVRFIE5PIEFDVElPTjsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMg YmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgJ1syMDE4LTAx LTAxLDIwMTgtMDItMDEpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9 ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQ SyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyBy ZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsICdbMjAxOC0wMS0wMSwyMDE4LTAy LTAxKScpLAorICAoJ1s1LDYpJywgJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0w MS0xMCcsICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAn WzIwMTYtMDItMDEsMjAxNi0wMy0wMSknCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJzsKKy0tIEEgUEsgdXBkYXRlIHNsaWRp bmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s2LDcpJywgJ1syMDE4 LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICgnWzYsNyknLCAnWzIwMTgtMDItMDEsMjAxOC0w My0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzQsNSknLCAnMjAxOC0w MS0xNScsICcyMDE4LTAyLTE1JywgJ1s2LDcpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nCitT RVQgdmFsaWRfYXQgPSBDQVNFIFdIRU4gbG93ZXIodmFsaWRfYXQpID0gJzIwMTgtMDEtMDEn IFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKQorICAgICAgICAg ICAgICAgICAgICBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4LTAyLTAxJyBUSEVOIGRh dGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAzLTAxJykgRU5ECitXSEVSRSBpZCA9ICdb Niw3KSc7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2Ug YnV0IHN0aWxsIHZhbGlkOgorLS0gVGhlcmUgYXJlIHR3byByZWZlcmVuY2VzOiBvbmUgZnVs ZmlsbGVkIGJ5IHRoZSBmaXJzdCBwayByb3csCistLSB0aGUgb3RoZXIgZnVsZmlsbGVkIGJ5 IGJvdGggcGsgcm93cyBjb21iaW5lZC4KK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMSwyKScsICdbMjAxOC0wMS0wMSwyMDE4LTAzLTAx KScpLAorICAoJ1sxLDIpJywgJ1syMDE4LTAzLTAxLDIwMTgtMDYtMDEpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBw YXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgJzIwMTgtMDEtMTUnLCAnMjAxOC0wMi0w MScsICdbMSwyKScpLAorICAoJ1syLDMpJywgJzIwMTgtMDEtMTUnLCAnMjAxOC0wNS0wMScs ICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTgt MDEtMTUsMjAxOC0wMy0wMSknCitXSEVSRSBpZCA9ICdbMSwyKScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIGdyb3dpbmcgdGhlIHJlZmVy ZW5jZWQgcmFuZ2UgaXMgZmluZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0 ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDMtMDEpJworV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2 YWxpZF9hdCBAPiAnMjAxOC0wMS0yNSc6OmRhdGU7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtp bmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYW5kIGNoYW5naW5nIHRoZSBpZCBpbnZhbGlkYXRl cyB0aGUgd2hvbGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbMiwz KScsIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTE1LDIwMTgtMDMtMDEpJworV0hFUkUgaWQgPSAn WzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRhdGU7CistLSBhIFBLIHVw ZGF0ZSBjaGFuZ2luZyBvbmx5IHRoZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgcmFuZ2U6 CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbMiwzKScKK1dIRVJFIGlkID0gJ1sx LDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRlOworLS0gYSBQSyB1cGRh dGUgdGhhdCBsb3NlcyB0aW1lIGZyb20gYm90aCBlbmRzLCBidXQgaXMgc3RpbGwgdmFsaWQ6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgn WzIsMyknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMy0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkg VkFMVUVTCisgICgnWzUsNiknLCAnMjAxOC0wMS0xNScsICcyMDE4LTAyLTAxJywgJ1syLDMp Jyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0xNSwy MDE4LTAyLTE1KScKK1dIRVJFIGlkID0gJ1syLDMpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQg ZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3Ju ZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTYtMDEtMDEsMjAxNi0wMi0wMSknCitXSEVSRSBpZCA9 ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKKy0t IGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkLCBi dXQgbm90ICd0aWwgY29tbWl0OgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsK KyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBVUERBVEUgdGVtcG9y YWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScKKyAgV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDE4LTAyLTAxJyk7CitDT01NSVQ7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQg ZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOwor LS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1w b3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRP ICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOwor LS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0x MCcKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hF UkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIHRoZW4gZGVs ZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3Vj Y2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sz LDQpJzsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE2LTAxLTAx LDIwMTYtMDItMDEpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAx OC0wMS0wMSwyMDE4LTAyLTAxKSc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9m a19wZXIycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mawor ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nCisgIE9OIFVQREFURSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRl IHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2Vk OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1 LDYpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5n IFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2LTAyLTAxKScgV0hFUkUgaWQgPSAn WzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUg bnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsICdbMjAx OC0wMS0wMSwyMDE4LTAyLTAxKScpLAorICAoJ1s1LDYpJywgJ1syMDE4LTAyLTAxLDIwMTgt MDMtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1szLDQpJywgJzIwMTgt MDEtMDUnLCAnMjAxOC0wMS0xMCcsICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBT RVQgdmFsaWRfYXQgPSAnWzIwMTYtMDItMDEsMjAxNi0wMy0wMSknCitXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJzsKKy0tIEEg UEsgdXBkYXRlIHNsaWRpbmcgdGhlIGVkZ2UgYmV0d2VlbiB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAo J1s2LDcpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJyksCisgICgnWzYsNyknLCAnWzIw MTgtMDItMDEsMjAxOC0wMy0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJy bmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgn WzQsNSknLCAnMjAxOC0wMS0xNScsICcyMDE4LTAyLTE1JywgJ1s2LDcpJyk7CitVUERBVEUg dGVtcG9yYWxfcm5nCitTRVQgdmFsaWRfYXQgPSBDQVNFIFdIRU4gbG93ZXIodmFsaWRfYXQp ID0gJzIwMTgtMDEtMDEnIFRIRU4gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEt MDUnKQorICAgICAgICAgICAgICAgICAgICBXSEVOIGxvd2VyKHZhbGlkX2F0KSA9ICcyMDE4 LTAyLTAxJyBUSEVOIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAzLTAxJykgRU5E CitXSEVSRSBpZCA9ICdbNiw3KSc7CistLSBhIFBLIHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJl ZmVyZW5jZWQgcmFuZ2UgYnV0IHN0aWxsIHZhbGlkOgorLS0gVGhlcmUgYXJlIHR3byByZWZl cmVuY2VzOiBvbmUgZnVsZmlsbGVkIGJ5IHRoZSBmaXJzdCBwayByb3csCistLSB0aGUgb3Ro ZXIgZnVsZmlsbGVkIGJ5IGJvdGggcGsgcm93cyBjb21iaW5lZC4KK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbMSwyKScsICdbMjAxOC0w MS0wMSwyMDE4LTAzLTAxKScpLAorICAoJ1sxLDIpJywgJ1syMDE4LTAzLTAxLDIwMTgtMDYt MDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIpJywgJzIwMTgtMDEt MTUnLCAnMjAxOC0wMi0wMScsICdbMSwyKScpLAorICAoJ1syLDMpJywgJzIwMTgtMDEtMTUn LCAnMjAxOC0wNS0wMScsICdbMSwyKScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFs aWRfYXQgPSAnWzIwMTgtMDEtMTUsMjAxOC0wMy0wMSknCitXSEVSRSBpZCA9ICdbMSwyKScg QU5EIHZhbGlkX2F0IEA+ICcyMDE4LTAxLTE1Jzo6ZGF0ZTsKKy0tIGEgUEsgdXBkYXRlIGdy b3dpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgaXMgZmluZToKK1VQREFURSB0ZW1wb3JhbF9y bmcgU0VUIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIwMTgtMDMtMDEpJworV0hFUkUgaWQg PSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0yNSc6OmRhdGU7CistLSBhIFBL IHVwZGF0ZSBzaHJpbmtpbmcgdGhlIHJlZmVyZW5jZWQgcmFuZ2UgYW5kIGNoYW5naW5nIHRo ZSBpZCBpbnZhbGlkYXRlcyB0aGUgd2hvbGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfcm5n IFNFVCBpZCA9ICdbMiwzKScsIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTE1LDIwMTgtMDMtMDEp JworV0hFUkUgaWQgPSAnWzEsMiknIEFORCB2YWxpZF9hdCBAPiAnMjAxOC0wMS0xNSc6OmRh dGU7CistLSBhIFBLIHVwZGF0ZSBjaGFuZ2luZyBvbmx5IHRoZSBpZCBpbnZhbGlkYXRlcyB0 aGUgd2hvbGUgcmFuZ2U6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbMiwzKScK K1dIRVJFIGlkID0gJ1sxLDIpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTgtMDEtMTUnOjpkYXRl OworLS0gYSBQSyB1cGRhdGUgdGhhdCBsb3NlcyB0aW1lIGZyb20gYm90aCBlbmRzLCBidXQg aXMgc3RpbGwgdmFsaWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTCisgICgnWzIsMyknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMy0wMSknKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzUsNiknLCAnMjAxOC0wMS0xNScsICcyMDE4 LTAyLTAxJywgJ1syLDMpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9 ICdbMjAxOC0wMS0xNSwyMDE4LTAyLTE1KScKK1dIRVJFIGlkID0gJ1syLDMpJzsKKy0tIGEg UEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorVVBE QVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTYtMDEtMDEsMjAxNi0wMi0w MSknCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAxLTAxLDIw MTgtMDItMDEpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFy ZSByZWZlcmVuY2VkIChldmVuIGJlZm9yZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJybmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKwor ICBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9ICdbMjAxNi0wMS0wMSwyMDE2 LTAyLTAxKScKKyAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSc7CitST0xMQkFDSzsKKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIg cGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJworV0hF UkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KSc7CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRF IHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0w MicgVE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2 KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9y bmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4 LTAxLTEwJworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJu ZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gdGhl biBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0 ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQg PSAnWzMsNCknOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSAnWzIwMTYt MDEtMDEsMjAxNi0wMi0wMSknCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0g J1syMDE4LTAxLTAxLDIwMTgtMDItMDEpJzsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIE5PIEFDVElPTgorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1w b3JhbF9ma19wZXIycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnJuZworICBE Uk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJybmcKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJu Z19maworICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgIFJF RkVSRU5DRVMgdGVtcG9yYWxfcm5nOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBi ZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCAnWzIwMTgtMDEt MDEsMjAxOC0wMi0wMSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9 ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRo ZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUs NiknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKSwKKyAgKCdbNSw2KScsICdbMjAxOC0w Mi0wMSwyMDE4LTAzLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScs ICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAy LTAxLDIwMTgtMDMtMDEpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBi b3RoIGFyZSByZWZlcmVuY2VkOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOwor LS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQs IGJ1dCBub3QgJ3RpbCBjb21taXQ6CitCRUdJTjsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19m aworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworCisgIERFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0NPTU1JVDsKKy0tIGRlbGV0aW5n IGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4 LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQg ZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUs NiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScs ICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBz YW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJy bmcgV0hFUkUgaWQgPSAnWzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkn OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKKy0tCisK K1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycm5nCisgIEFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsKKyAgRk9SRUlHTiBLRVkgKHBhcmVu dF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZworICBP TiBERUxFVEUgUkVTVFJJQ1Q7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzUsNiknLCAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRl bGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVy ZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCAnWzIwMTgtMDEtMDEsMjAx OC0wMi0wMSknKSwKKyAgKCdbNSw2KScsICdbMjAxOC0wMi0wMSwyMDE4LTAzLTAxKScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsICcyMDE4LTAxLTA1JywgJzIwMTgt MDEtMTAnLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9 ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gJ1syMDE4LTAyLTAxLDIwMTgtMDMtMDEpJzsKKy0t IGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkIChl dmVuIGJlZm9yZSBjb21taXQpOgorQkVHSU47CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmsK KyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9ICdbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSc7CitST0xMQkFDSzsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJl bmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworV0hF UkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUsNiknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdbNSw2KScsICdbNyw4KScpIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJu ZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gdGhl biBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0 ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQg PSAnWzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSAnWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSknOworCistLQorLS0g cGVyMnJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0t IHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FT Q0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0g cmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2VkIHVwZGF0ZXMg Q0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIENBU0NB REUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAo dHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28g c2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2Fs YXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBE RUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERF RkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVG QVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorCitUUlVOQ0FURSB0ZW1w b3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzIwMTgtMDEtMDEsMjAyMS0w MS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnJuZworICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maywK KyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnJuZ19maworICAgIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZworICAgIE9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQg aWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQg PSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1syMDE4LTAxLTAx LDIwMjAtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWws IHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTAp JyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCBkZWxldGVzIENBU0NBREUKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVt cG9yYWxfZmtfcGVyMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNiw3KScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5 LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzIwMTgtMDEtMDEs MjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBT RVQgTlVMTAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19wZXIy cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYs NyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyAgICBPTiBERUxFVEUgU0VU IE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitVUERBVEUgdGVtcG9yYWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRl OgorVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVm ZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJy bmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIw MCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw5KScpOworVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCist LQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3BlcjJybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAn WzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Bl cjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScpOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5v bi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVm ZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJy bmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIw MCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycm5n IFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcGVyMnJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJygsKScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNyknKTsK K0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVu dF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9ma19wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycm5n X2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAg IFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxUIE9O IFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBE QVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAx LTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQ REFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1syMDIwLTAx LTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycm5nIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAw XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknKTsKK1VQREFURSB0ZW1w b3JhbF9ybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxp ZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr X3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19wZXIycm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAn KCwpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzYsNyknLCAnWzIwMTgtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdb Niw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8g JzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdI RVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEp Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkg VkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw5 KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdv IHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxf ZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFs aWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEt MDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScsICdbNiw3KScpOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJybmcKKyAgRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQ RVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04g REVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90 aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5v bi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw4KScg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnWzIw MTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnWzIwMjAtMDEt MDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDkpJywg J1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDEwKScgV0hF UkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRl bXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScs ICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn LCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCAnWzgsOSknLCAnWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgs OSknLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJywgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdI RVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUg dGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3BlcjJybmc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcp JywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m azJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScsICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJy bmcKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrLAorICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAgIEZPUkVJR04gS0VZIChw YXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNF UyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQg TlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3Ju ZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9y YWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsICdbOCw5KScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9y bmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9w ZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2Fs YXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9w ZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJy bmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBu b24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0g J1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnWzIwMTgtMDEtMDEsMjAy MC0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCAnWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5nIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIw MF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDkpJywgJ1s4LDkpJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3BlcjJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNj YWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9y bmcyLCB0ZW1wb3JhbF9mazJfcGVyMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCAnWzIwMTgt MDEtMDEsMjAyMS0wMS0wMSknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycm5n IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBW QUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDcp JywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBFUklP RCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnJuZworICBEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9wZXIycm5nX2ZrCisgICAgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Ju ZzIKKyAgICBPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5V TEw7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5nCisgIERST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAgICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwg cGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nMgorICAgIE9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNF VCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRP ICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5n MiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVy MnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICdb MjAxOC0wMS0wMSwyMDIwLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICdbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZB TFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSkn LCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4 LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9y bmcyLCB0ZW1wb3JhbF9mazJfcGVyMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFdJywgJygs KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbNiw3KScsICdbNiw3KScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrMl9wZXIycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNF VCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERF RkFVTFQgJ1stMSwtMV0nLAorICBEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJy bmdfZmssCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5nX2ZrCisgICAg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KyAgICBSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKyAgICBPTiBERUxFVEUgU0VUIERFRkFV TFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitVUERBVEUgdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw4KScsIGlkMiA9ICdb Nyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3BlcjJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAn WzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgJ1s4LDkpJywgJ1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScsICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIg U0VUIGlkMSA9ICdbOSwxMCknLCBpZDIgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERF RkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIs IHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCAnKCwpJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s2LDcpJywgJ1s2LDcpJywgJ1syMDE4LTAxLTAxLDIwMjEtMDEtMDEpJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnJuZyAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g dXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJu ZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFy IGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3Ju ZzIsIHRlbXBvcmFsX2ZrMl9wZXIycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDcpJywgJygsKScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsICdbNiw3KScsICdbMjAxOC0wMS0wMSwyMDIxLTAxLTAxKScpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJl Y2F1c2UgeW91IGNhbid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrMl9wZXIycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZB VUxUICdbLTEsLTFdJywKKyAgRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycm5n X2ZrLAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnJuZ19maworICAgIEZP UkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisg ICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisgICAgT04gREVMRVRFIFNFVCBERUZBVUxU ICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9mazJfcGVyMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisgIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVy MnJuZ19maywKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJybmdfZmsKKyAg ICBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0 KQorICAgIFJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nMgorICAgIE9OIERFTEVURSBTRVQgREVG QVVMVCAocGFyZW50X2lkMSkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g dXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsICdbMjAxOC0wMS0wMSwyMDIwLTAxLTAx KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsICdbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbLTEsLTFdJywgJ1s4LDkpJywgJygsKScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsy X3BlcjJybmcgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn LCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUg aWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0gRksgd2l0aCBhIGN1c3RvbSByYW5nZSB0 eXBlCisKK0NSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJhbmdlKHN1YnR5cGU9ZGF0ZSk7 CisKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKKyAgaWQgaW50NHJhbmdlLAorICB2 YWxpZF9hdCBteWRhdGVyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUg VEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmcgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2F0IG15ZGF0ZXJhbmdlLAorICBwYXJlbnRfaWQgaW50NHJhbmdlLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrM19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorICAgIFJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nMyAoaWQsIFBFUklPRCB2YWxpZF9hdCkgT04gREVMRVRFIENBU0NB REUKKyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmczIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrM19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzUsNiknLCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMyBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazNfcm5nMnJuZyBX SEVSRSBpZCA9ICdbNSw2KSc7CisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmc7 CitEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CitEUk9QIFRZUEUgbXlkYXRlcmFuZ2U7CisK Ky0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlczogcmFuZ2VzCistLQorCitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKyAgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCispIFBBUlRJVElPTiBCWSBMSVNUIChpZCk7CitDUkVBVEUgVEFC TEUgdHAxIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVF UyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdb MTEsMTIpJywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAn WzIxLDIyKScsICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdHAyIFBBUlRJVElPTiBPRiB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1syLDMp JywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScsICdb MTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMyknLCAn WzI0LDI1KScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwg dmFsaWRfYXQsIG5hbWUpIFZBTFVFUworICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcyMDAwLTAx LTAxJywgJzIwMDAtMDItMDEnKSwgJ29uZScpLAorICAoJ1sxLDIpJywgZGF0ZXJhbmdlKCcy MDAwLTAyLTAxJywgJzIwMDAtMDMtMDEnKSwgJ29uZScpLAogICAoJ1syLDMpJywgZGF0ZXJh bmdlKCcyMDAwLTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ3R3bycpOwogCiBDUkVBVEUgVEFC TEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoCkBAIC0zMjk4LDQgKzY2MjAs MTkgQEAgU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19tbHRybmcybWx0 cm5nIFdIRVJFIGlkID0gJ1sxNSwxNiknOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19tbHRybmcybWx0cm5nOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9tbHRybmc7CiAKKy0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlczogUEVS SU9EcworLS0KKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3BlciAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwK KyAgbmFtZSB0ZXh0LAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxp ZF90aWwpLAorICBDT05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfcm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZ IExJU1QgKGlkKTsKK0NSRUFURSBUQUJMRSB0cDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3BlciBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNikn LCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywg J1sxNywxOCknLCAnWzE5LDIwKScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0RST1AgVEFC TEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcGVyOworCiBSRVNFVCBkYXRlc3R5bGU7Ci0tIAoy LjQyLjAKCg== --------------QJ7G02LVkbGy9abPg7beeymq--