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 1rmzvy-00B321-G9 for pgsql-hackers@arkaria.postgresql.org; Wed, 20 Mar 2024 17:41:03 +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 1rmzvw-006tV2-QZ for pgsql-hackers@arkaria.postgresql.org; Wed, 20 Mar 2024 17:41:01 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1rmyhV-006Dbe-K7 for pgsql-hackers@lists.postgresql.org; Wed, 20 Mar 2024 16:22:02 +0000 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1rmyhK-005Zg6-4G for pgsql-hackers@lists.postgresql.org; Wed, 20 Mar 2024 16:22:01 +0000 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-6e6b54a28d0so66118b3a.2 for ; Wed, 20 Mar 2024 09:21:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=illuminatedcomputing-com.20230601.gappssmtp.com; s=20230601; t=1710951708; x=1711556508; darn=lists.postgresql.org; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=3VRPtYaEddRZfSvkO8Tlb4phFVDUigH/xZNmgYZ1uPI=; b=OKiZz+RrVwOc2H7dJnT3GXyPdSzTFuUGWGQPO0i4QHwP3PtL7maaJptp8in/Kq9uE7 NpMgl1Bwrk4saTcVhhcx5wWd067Z7fQRLSCcaHsHAiXorIv07EgV1xYdwAsEam2ckXtB RjsIZdgfZFfMwZXzDcvrUk137KmAYo/B62MjnZxJUT1U7Ox30bemErHQosoa4O7D3U3D 2x2GNq5+QU3LRxiTSL/dsCvOG/NH/jkO7rcv84RHVBGWKww4BnAhxG1nArBMbaJZ/nXJ lb8KWtXTQoTRmi6zshTpFnPE7RroNrKxLdc4Y6QJpCR8aYk7ShxL5jTaQjQTiIEfpAxo hTog== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710951708; x=1711556508; h=in-reply-to:from:references:cc:to:content-language:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=3VRPtYaEddRZfSvkO8Tlb4phFVDUigH/xZNmgYZ1uPI=; b=vwZYMUYUGVfFqr6BhA3RCanM+EyDqD6OTGgXy2iHN2+L3arEOJ2YY4P+ufJ6adIpr+ R4uxyba7AyiAVbq/x1LcKMJT5iafMjloWoG8cGjIWCRQJCUuAWs8wyl1Fg+y5DLd6dNv 2fEcUDvuXeoE5CrjHROfnP2b3Qe4Q6pw1jYC7ANaNLGPWnAbCIXwoSc3K6cB/QwRuT9h AmKtMGriw5yBjhdvugqbU6GE/wsuZJLBe70Ym4r2fST9eQdGNzAf8A8p/FvudshhM5bS iqppN83/RTc285cNfigcaV10qqptcbPPLJ4XVgmGVAoK7eFLD95W8OrBluib5Ki0YW1g VlDQ== X-Forwarded-Encrypted: i=1; AJvYcCWaClAYieyvOTwYG8DeeJP5UbUP2xvTQwt8mv95IE5EHmwLfrUhefnprw3FXVn8HuOMND3/MFR3fqyZYqO8L6MpEVcEAbyweOGKFHLM0YALKgr+ X-Gm-Message-State: AOJu0YzBColzydU4rZghVP2MGIQRtpw17Y8hhyesFfgzQTGRkdifLjXi 3muEWfCpYduy8m4d2IZ/sKZUHFw6mO4+p1atHQw3mNlLMgycaCqD5OXuDdmhtyc= X-Google-Smtp-Source: AGHT+IELsnZicDCsJ6U5/0JZId9G+kaYaPUL/fcrf70+XTz+l+RzQGJkF7674ceWlPuzHIa54ujtlQ== X-Received: by 2002:a05:6a00:1ad4:b0:6e7:2cdd:1b12 with SMTP id f20-20020a056a001ad400b006e72cdd1b12mr9438603pfv.26.1710951706765; Wed, 20 Mar 2024 09:21:46 -0700 (PDT) Received: from [192.168.2.139] ([50.39.255.79]) by smtp.googlemail.com with ESMTPSA id t27-20020a62d15b000000b006e6c0895b95sm12314582pfl.7.2024.03.20.09.21.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 20 Mar 2024 09:21:45 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------rOiwMPZjbSgQ0WsI4nnNtOso" Message-ID: Date: Wed, 20 Mar 2024 09:21:44 -0700 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: SQL:2011 application time Content-Language: en-US To: jian he Cc: Peter Eisentraut , PostgreSQL Hackers References: <0af6a323-f026-4cd9-adf1-941038cd00de@illuminatedcomputing.com> <88518c81-dcdc-4c5b-9200-146b74a520ab@eisentraut.org> <113f5e25-4455-4bdb-98ec-56275705cc4e@illuminatedcomputing.com> <7bd1c8f9-a91a-41a3-990e-0f796ba692ec@eisentraut.org> <6c3edb2c-bc45-4f19-babd-8f4edf39b384@illuminatedcomputing.com> <41b57948-f4d3-455f-8880-e0ce7e61ffc1@illuminatedcomputing.com> <0d977c63-f4a6-43ba-aad0-35c06c55df11@eisentraut.org> From: Paul Jungwirth In-Reply-To: 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. --------------rOiwMPZjbSgQ0WsI4nnNtOso Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 3/20/24 03:55, jian he wrote: > hi. > minor cosmetic issues, other than that, looks good. > > *pk_period = (indexStruct->indisexclusion); > to > *pk_period = indexStruct->indisexclusion; > > ... > > if (with_period && !fkconstraint->fk_with_period) > ereport(ERROR, > (errcode(ERRCODE_INVALID_FOREIGN_KEY), > errmsg("foreign key uses PERIOD on the referenced table but not the > referencing table"))); Both included in the new patches here. Rebased to a0390f6ca6. Yours, -- Paul ~{:-) pj@illuminatedcomputing.com --------------rOiwMPZjbSgQ0WsI4nnNtOso Content-Type: text/x-patch; charset=UTF-8; name="v31-0001-Add-temporal-FOREIGN-KEYs.patch" Content-Disposition: attachment; filename="v31-0001-Add-temporal-FOREIGN-KEYs.patch" Content-Transfer-Encoding: base64 RnJvbSBlYmFmNzJkMGUwN2IyNmY3YWQ1N2YzNmEyNGU3YjFjODVmN2E3NWQxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFdlZCwgMjggRmViIDIwMjQgMjE6NDU6MzcgLTA4 MDAKU3ViamVjdDogW1BBVENIIHYzMSAxLzZdIEFkZCB0ZW1wb3JhbCBGT1JFSUdOIEtFWXMK Ci0gQWRkZWQgYmlzb24gc3VwcG9ydCBmb3IgdGVtcG9yYWwgRk9SRUlHTiBLRVlzLiBUaGV5 IHNob3VsZCBoYXZlIGEKICByYW5nZSBjb2x1bW4gZm9yIHRoZSB0ZW1wb3JhbCBjb21wb25l bnQuIChNdWx0aXJhbmdlIGFuZCBvdGhlciB0eXBlcwogIGFyZSBub3QgeWV0IHN1cHBvcnRl ZC4pCi0gQWRkZWQgdGVtcG9yYWwgdHJpZ2dlciBmdW5jdGlvbnMgYWtpbiB0byBleGlzdGlu ZyBSSSB0cmlnZ2VyCiAgZnVuY3Rpb25zLgotIERvbid0IHlldCBzdXBwb3J0IE9OIHtVUERB VEUsREVMRVRFfSB7Q0FTQ0FERSxTRVQgTlVMTCxTRVQgREVGQVVMVH0uCi0gQWRkZWQgcGdf ZHVtcCBzdXBwb3J0LgotIFNob3cgdGhlIGNvcnJlY3Qgc3ludGF4IGluIHBzcWwgXGQgb3V0 cHV0IGZvciBmb3JlaWduIGtleXMuCi0gQWRkZWQgdGVzdHMgYW5kIGRvY3VtZW50YXRpb24u Ci0tLQogLi4uL2J0cmVlX2dpc3QvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgIHwg IDQ4ICsrCiBjb250cmliL2J0cmVlX2dpc3Qvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsICAg fCAgMjggKwogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAgICAgICAg ICAgfCAgNDUgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jICAgICAg ICAgICB8ICA0MyArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMgICAgICAg ICAgICAgIHwgIDQ5ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAg ICAgICAgICAgfCAyMDggKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAg ICAgICAgICAgICAgICAgfCAgNDUgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmln Z2Vycy5jICAgICAgICAgICB8IDEzMSArKystCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMgICAgICAgICAgICAgfCAgMTkgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y29uc3RyYWludC5oICAgICAgICAgICB8ICAxOSArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMv ZGVmcmVtLmggICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9yZWdyZXNzL2V4cGVj dGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0ICAgICB8IDY0NCArKysrKysrKysrKysrKysrKy0K IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsICAgICB8IDYxNSAr KysrKysrKysrKysrKysrLQogMTYgZmlsZXMgY2hhbmdlZCwgMTc4NSBpbnNlcnRpb25zKCsp LCAxMTcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9idHJlZV9naXN0L2V4 cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0IGIvY29udHJpYi9idHJlZV9naXN0L2V4cGVj dGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CmluZGV4IGJlNTJjNTIyZTg5Li4xODg1NjkwMGRl ZCAxMDA2NDQKLS0tIGEvY29udHJpYi9idHJlZV9naXN0L2V4cGVjdGVkL3dpdGhvdXRfb3Zl cmxhcHMub3V0CisrKyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9leHBlY3RlZC93aXRob3V0X292 ZXJsYXBzLm91dApAQCAtNDIsMyArNDIsNTEgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IFZBTFVFUwogICAoMSwgJ1syMDAwLTA2LTAxLDIwMDEtMDEtMDEpJyk7CiBFUlJPUjogIGNv bmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24gY29uc3RyYWludCAidGVt cG9yYWxfcm5nX3BrIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPSgxLCBbMDYtMDEt MjAwMCwwMS0wMS0yMDAxKSkgY29uZmxpY3RzIHdpdGggZXhpc3Rpbmcga2V5IChpZCwgdmFs aWRfYXQpPSgxLCBbMDEtMDEtMjAwMCwwMS0wMS0yMDAxKSkuCistLSBGb3JlaWduIGtleQor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorICBpZCBpbnRlZ2VyLAorICB2 YWxpZF9hdCBkYXRlcmFuZ2UsCisgIHBhcmVudF9pZCBpbnRlZ2VyLAorICBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKyAgICBSRUZFUkVOQ0VT IHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9m a19ybmcycm5nCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmtfcm5nMnJu ZyIKKyAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLQorIGlkICAgICAgICB8IGludGVnZXIgICB8ICAgICAgICAgICB8IG5vdCBu dWxsIHwgCisgdmFsaWRfYXQgIHwgZGF0ZXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwg fCAKKyBwYXJlbnRfaWQgfCBpbnRlZ2VyICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor SW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmtfcm5nMnJuZ19wayIgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6 CisgICAgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIEZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcoaWQsIFBFUklPRCB2 YWxpZF9hdCkKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19j b25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfcm5nMnJuZ19mayc7Cisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcoaWQsIFBFUklPRCB2YWxpZF9hdCkKKygxIHJv dykKKworLS0gb2theQorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyBWQUxVRVMK KyAgKDEsICdbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKScsIDEpOworLS0gb2theSBzcGFubmlu ZyB0d28gcGFyZW50IHJlY29yZHM6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IFZBTFVFUworICAoMiwgJ1syMDAwLTAxLTAxLDIwMDItMDEtMDEpJywgMSk7CistLSBrZXkg aXMgbWlzc2luZworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyBWQUxVRVMKKyAg KDMsICdbMjAwMC0wMS0wMSwyMDAxLTAxLTAxKScsIDMpOworRVJST1I6ICBpbnNlcnQgb3Ig dXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5 IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oMywgWzAxLTAxLTIwMDAsMDEtMDEtMjAwMSkpIGlz IG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9ybmciLgorLS0ga2V5IGV4aXN0IGJ1 dCBpcyBvdXRzaWRlIHJhbmdlCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIFZB TFVFUworICAoNCwgJ1syMDAxLTAxLTAxLDIwMDItMDEtMDEpJywgMik7CitFUlJPUjogIGlu c2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciIHZpb2xhdGVz IGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiCitERVRB SUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPSgyLCBbMDEtMDEtMjAwMSwwMS0wMS0y MDAyKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3JuZyIuCistLSBrZXkg ZXhpc3QgYnV0IGlzIHBhcnRseSBvdXRzaWRlIHJhbmdlCitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19ybmcycm5nIFZBTFVFUworICAoNSwgJ1syMDAwLTAxLTAxLDIwMDItMDEtMDEpJywg Mik7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3Ju ZzJybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPSgyLCBbMDEt MDEtMjAwMCwwMS0wMS0yMDAyKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFs X3JuZyIuCmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3Qvc3FsL3dpdGhvdXRfb3Zl cmxhcHMuc3FsIGIvY29udHJpYi9idHJlZV9naXN0L3NxbC93aXRob3V0X292ZXJsYXBzLnNx bAppbmRleCA0MzNjNjA5YWIyMi4uYjFiNTgxZmNhYmMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIv YnRyZWVfZ2lzdC9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvY29udHJpYi9idHJl ZV9naXN0L3NxbC93aXRob3V0X292ZXJsYXBzLnNxbApAQCAtMjMsMyArMjMsMzEgQEAgSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIFZBTFVFUwogLS0gc2hvdWxkIGZhaWw6CiBJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgVkFMVUVTCiAgICgxLCAnWzIwMDAtMDYtMDEsMjAwMS0wMS0w MSknKTsKKworLS0gRm9yZWlnbiBrZXkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nICgKKyAgaWQgaW50ZWdlciwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAorICBwYXJlbnRf aWQgaW50ZWdlciwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFs aWRfYXQpCispOworXGQgdGVtcG9yYWxfZmtfcm5nMnJuZworU0VMRUNUIHBnX2dldF9jb25z dHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVt cG9yYWxfZmtfcm5nMnJuZ19mayc7CisKKy0tIG9rYXkKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJybmcgVkFMVUVTCisgICgxLCAnWzIwMDAtMDEtMDEsMjAwMS0wMS0wMSknLCAx KTsKKy0tIG9rYXkgc3Bhbm5pbmcgdHdvIHBhcmVudCByZWNvcmRzOgorSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcm5nMnJuZyBWQUxVRVMKKyAgKDIsICdbMjAwMC0wMS0wMSwyMDAyLTAx LTAxKScsIDEpOworLS0ga2V5IGlzIG1pc3NpbmcKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3JuZzJybmcgVkFMVUVTCisgICgzLCAnWzIwMDAtMDEtMDEsMjAwMS0wMS0wMSknLCAzKTsK Ky0tIGtleSBleGlzdCBidXQgaXMgb3V0c2lkZSByYW5nZQorSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcm5nMnJuZyBWQUxVRVMKKyAgKDQsICdbMjAwMS0wMS0wMSwyMDAyLTAxLTAxKScs IDIpOworLS0ga2V5IGV4aXN0IGJ1dCBpcyBwYXJ0bHkgb3V0c2lkZSByYW5nZQorSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyBWQUxVRVMKKyAgKDUsICdbMjAwMC0wMS0wMSwy MDAyLTAxLTAxKScsIDIpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBiNzk4MGViNDk5NC4uMjk4 MTdmYjMzYzYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0yNzI4LDcgKzI3MjgsOCBAQCBTQ1JB TS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFj ZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CiAg ICAgICAgVGhpcyBjb25zdHJhaW50IGlzIGRlZmluZWQgd2l0aCA8bGl0ZXJhbD5XSVRIT1VU IE9WRVJMQVBTPC9saXRlcmFsPgotICAgICAgIChmb3IgcHJpbWFyeSBrZXlzIGFuZCB1bmlx dWUgY29uc3RyYWludHMpLgorICAgICAgIChmb3IgcHJpbWFyeSBrZXlzIGFuZCB1bmlxdWUg Y29uc3RyYWludHMpIG9yIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4KKyAgICAgICAoZm9y IGZvcmVpZ24ga2V5cykuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCmluZGV4IDRjYmFhY2NhZjdjLi41MTJi MWRiMzg3OCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC04MSw3ICs4 MSw3IEBAIENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAg fSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJCiAgIFVOSVFVRSBbIE5VTExTIFsg Tk9UIF0gRElTVElOQ1QgXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1 bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhPVVQgT1ZFUkxBUFMg XSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9wYXJhbWV0ZXJzPC9y ZXBsYWNlYWJsZT4gfAogICBQUklNQVJZIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+IFdJVEhP VVQgT1ZFUkxBUFMgXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5pbmRleF9w YXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gfAogICBFWENMVURFIFsgVVNJTkcgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X21ldGhvZDwvcmVwbGFjZWFibGU+IF0gKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjbHVkZV9lbGVtZW50PC9yZXBsYWNl YWJsZT4gV0lUSCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b3BlcmF0b3I8L3Jl cGxhY2VhYmxlPiBbLCAuLi4gXSApIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5p bmRleF9wYXJhbWV0ZXJzPC9yZXBsYWNlYWJsZT4gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wcmVkaWNhdGU8L3JlcGxhY2VhYmxlPiApIF0gfAotICBGT1JF SUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwv cmVwbGFjZWFibGU+IFssIC4uLiBdICkgUkVGRVJFTkNFUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxlPiBbICggPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXQor ICBGT1JFSUdOIEtFWSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkgUkVGRVJFTkNF UyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmdGFibGU8L3JlcGxhY2VhYmxl PiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFj ZWFibGU+IFssIC4uLiBdIFssIFBFUklPRCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBdICkgXQogICAgIFsgTUFUQ0ggRlVMTCB8 IE1BVENIIFBBUlRJQUwgfCBNQVRDSCBTSU1QTEUgXSBbIE9OIERFTEVURSA8cmVwbGFjZWFi bGUKIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+ IF0gWyBPTiBVUERBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50 aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0gfQogWyBERUZFUlJBQkxFIHwgTk9UIERFRkVS UkFCTEUgXSBbIElOSVRJQUxMWSBERUZFUlJFRCB8IElOSVRJQUxMWSBJTU1FRElBVEUgXQpA QCAtMTE1Miw4ICsxMTUyLDggQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgIDx2 YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1yZWZlcmVuY2VzIj4KICAg ICA8dGVybT48bGl0ZXJhbD5SRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gKSBdIFsgTUFUQ0ggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm1hdGNodHlwZTwvcmVwbGFjZWFibGU+IF0gWyBPTiBE RUxFVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlv bjwvcmVwbGFjZWFibGU+IF0gWyBPTiBVUERBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF08L2xpdGVyYWw+IChj b2x1bW4gY29uc3RyYWludCk8L3Rlcm0+CiAKLSAgIDx0ZXJtPjxsaXRlcmFsPkZPUkVJR04g S0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uIF0gKQotICAgIFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0K KyAgIDx0ZXJtPjxsaXRlcmFsPkZPUkVJR04gS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9E IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFi bGU+IF0gKQorICAgIFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gXSAp IF0KICAgICBbIE1BVENIIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5tYXRjaHR5 cGU8L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBPTiBERUxFVEUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBb IE9OIFVQREFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxf YWN0aW9uPC9yZXBsYWNlYWJsZT4gXTwvbGl0ZXJhbD4KQEAgLTExNjksNyArMTE2OSwzMiBA QCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJp Y19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgcHJpbWFyeSBrZXkgb2YgdGhl IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+ CiAgICAgICBpcyB1c2VkLiAgT3RoZXJ3aXNlLCB0aGUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnJlZmNvbHVtbjwvcmVwbGFjZWFibGU+CiAgICAgICBsaXN0IG11c3QgcmVm ZXIgdG8gdGhlIGNvbHVtbnMgb2YgYSBub24tZGVmZXJyYWJsZSB1bmlxdWUgb3IgcHJpbWFy eSBrZXkKLSAgICAgIGNvbnN0cmFpbnQgb3IgYmUgdGhlIGNvbHVtbnMgb2YgYSBub24tcGFy dGlhbCB1bmlxdWUgaW5kZXguICBUaGUgdXNlcgorICAgICAgY29uc3RyYWludCBvciBiZSB0 aGUgY29sdW1ucyBvZiBhIG5vbi1wYXJ0aWFsIHVuaXF1ZSBpbmRleC4KKyAgICAgPC9wYXJh PgorCisgICAgIDxwYXJhPgorICAgICAgSWYgdGhlIGxhc3QgY29sdW1uIGlzIG1hcmtlZCB3 aXRoIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4sCisgICAgICBpdCBpcyB0cmVhdGVkIGlu IGEgc3BlY2lhbCB3YXkuCisgICAgICBXaGlsZSB0aGUgbm9uLTxsaXRlcmFsPlBFUklPRDwv bGl0ZXJhbD4gY29sdW1ucyBhcmUgY29tcGFyZWQgZm9yIGVxdWFsaXR5CisgICAgICAoYW5k IHRoZXJlIG11c3QgYmUgYXQgbGVhc3Qgb25lIG9mIHRoZW0pLAorICAgICAgdGhlIDxsaXRl cmFsPlBFUklPRDwvbGl0ZXJhbD4gY29sdW1uIGlzIG5vdC4KKyAgICAgIEluc3RlYWQgdGhl IGNvbnN0cmFpbnQgaXMgY29uc2lkZXJlZCBzYXRpc2ZpZWQKKyAgICAgIGlmIHRoZSByZWZl cmVuY2VkIHRhYmxlIGhhcyBtYXRjaGluZyByZWNvcmRzCisgICAgICAoYmFzZWQgb24gdGhl IG5vbi08bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IHBhcnRzIG9mIHRoZSBrZXkpCisgICAg ICB3aG9zZSBjb21iaW5lZCA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+IHZhbHVlcyBjb21w bGV0ZWx5IGNvdmVyCisgICAgICB0aGUgcmVmZXJlbmNpbmcgcmVjb3JkJ3MuCisgICAgICBJ biBvdGhlciB3b3JkcywgdGhlIHJlZmVyZW5jZSBtdXN0IGhhdmUgYSByZWZlcmVudCBmb3Ig aXRzIGVudGlyZSBkdXJhdGlvbi4KKyAgICAgIFRoaXMgY29sdW1uIG11c3QgYmUgYSBjb2x1 bW4gd2l0aCBhIHJhbmdlIHR5cGUuCisgICAgICBJbiBhZGRpdGlvbiB0aGUgcmVmZXJlbmNl ZCB0YWJsZSBtdXN0IGhhdmUgYSBwcmltYXJ5IGtleQorICAgICAgb3IgdW5pcXVlIGNvbnN0 cmFpbnQgZGVjbGFyZWQgd2l0aCA8bGl0ZXJhbD5XSVRIT1VUIE9WRVJMQVBTPC9saXRlcmFs Pi4KKyAgICAgIEZpbmFsbHksIGlmIG9uZSBzaWRlIG9mIHRoZSBmb3JlaWduIGtleSB1c2Vz IDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4sCisgICAgICB0aGUgb3RoZXIgc2lkZSBtdXN0 IHRvby4gSWYgdGhlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48 L3JlcGxhY2VhYmxlPgorICAgICAgbGlzdCBpcyBvbWl0dGVkLCB3ZSBhc3N1bWUgdGhlIDxs aXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+CisgICAgICBwYXJ0IG9mIHRoZSBw cmltYXJ5IGtleSBzaG91bGQgYmUgdHJlYXRlZCBhcyBpZiBtYXJrZWQgd2l0aCA8bGl0ZXJh bD5QRVJJT0Q8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisKKyAgICAgPHBhcmE+CisgICAg ICBUaGUgdXNlcgogICAgICAgbXVzdCBoYXZlIDxsaXRlcmFsPlJFRkVSRU5DRVM8L2xpdGVy YWw+IHBlcm1pc3Npb24gb24gdGhlIHJlZmVyZW5jZWQKICAgICAgIHRhYmxlIChlaXRoZXIg dGhlIHdob2xlIHRhYmxlLCBvciB0aGUgc3BlY2lmaWMgcmVmZXJlbmNlZCBjb2x1bW5zKS4g IFRoZQogICAgICAgYWRkaXRpb24gb2YgYSBmb3JlaWduIGtleSBjb25zdHJhaW50IHJlcXVp cmVzIGEKQEAgLTEyNDMsNiArMTI2OCwxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJF TQogICAgICAgICAgIHZhbHVlcyBvZiB0aGUgcmVmZXJlbmNpbmcgY29sdW1uKHMpIHRvIHRo ZSBuZXcgdmFsdWVzIG9mIHRoZQogICAgICAgICAgIHJlZmVyZW5jZWQgY29sdW1ucywgcmVz cGVjdGl2ZWx5LgogICAgICAgICAgPC9wYXJhPgorCisgICAgICAgICA8cGFyYT4KKyAgICAg ICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBub3Qgc3Vw cG9ydGVkLgorICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAg IDwvdmFybGlzdGVudHJ5PgogCkBAIC0xMjU0LDYgKzEyODMsMTAgQEAgV0lUSCAoIE1PRFVM VVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVw bGFjZWFibGU+LCBSRU0KICAgICAgICAgICByZWZlcmVuY2luZyBjb2x1bW5zLCB0byBudWxs LiBBIHN1YnNldCBvZiBjb2x1bW5zIGNhbiBvbmx5IGJlCiAgICAgICAgICAgc3BlY2lmaWVk IGZvciA8bGl0ZXJhbD5PTiBERUxFVEU8L2xpdGVyYWw+IGFjdGlvbnMuCiAgICAgICAgICA8 L3BhcmE+CisKKyAgICAgICAgIDxwYXJhPgorICAgICAgICAgIEluIGEgdGVtcG9yYWwgZm9y ZWlnbiBrZXksIHRoaXMgb3B0aW9uIGlzIG5vdCBzdXBwb3J0ZWQuCisgICAgICAgICA8L3Bh cmE+CiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CiAKQEAg LTEyNjcsNiArMTMwMCwxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAg ICAgIChUaGVyZSBtdXN0IGJlIGEgcm93IGluIHRoZSByZWZlcmVuY2VkIHRhYmxlIG1hdGNo aW5nIHRoZSBkZWZhdWx0CiAgICAgICAgICAgdmFsdWVzLCBpZiB0aGV5IGFyZSBub3QgbnVs bCwgb3IgdGhlIG9wZXJhdGlvbiB3aWxsIGZhaWwuKQogICAgICAgICAgPC9wYXJhPgorCisg ICAgICAgICA8cGFyYT4KKyAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LCB0 aGlzIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAgPC9wYXJhPgogICAgICAg ICA8L2xpc3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgogICAgICAgPC92YXJpYWJs ZWxpc3Q+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQu YyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCmluZGV4IGYxNTQzYWU3 ZDM1Li5iMmU1YzNhNjg3NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19j b25zdHJhaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMK QEAgLTE1LDYgKzE1LDcgQEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAi YWNjZXNzL2dlbmFtLmgiCisjaW5jbHVkZSAiYWNjZXNzL2dpc3QuaCIKICNpbmNsdWRlICJh Y2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIKICNp bmNsdWRlICJhY2Nlc3MvdGFibGUuaCIKQEAgLTE2NDksNiArMTY1MCw0OCBAQCBEZWNvbnN0 cnVjdEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogCSpu dW1ma3MgPSBudW1rZXlzOwogfQogCisvKgorICogRmluZEZrUGVyaW9kT3BlcnMgLQorICoK KyAqIExvb2tzIHVwIHRoZSBvcGVyYXRvciBvaWRzIHVzZWQgZm9yIHRoZSBQRVJJT0QgcGFy dCBvZiBhIHRlbXBvcmFsIGZvcmVpZ24ga2V5LgorICogVGhlIG9wY2xhc3Mgc2hvdWxkIGJl IHRoZSBvcGNsYXNzIG9mIHRoYXQgUEVSSU9EIGVsZW1lbnQuCisgKiBFdmVyeXRoaW5nIGVs c2UgaXMgYW4gb3V0cHV0OiBjb250YWluZWRieW9wZXJvaWQgaXMgdGhlIENvbnRhaW5lZEJ5 IG9wZXJhdG9yIGZvcgorICogdHlwZXMgbWF0Y2hpbmcgdGhlIFBFUklPRCBlbGVtZW50Lgor ICogQW5kIGFnZ2VkY29udGFpbmVkYnlvcGVyb2lkIGlzIGFsc28gYSBDb250YWluZWRCeSBv cGVyYXRvciwKKyAqIGJ1dCBvbmUgd2hvc2UgcmhzIGlzIGFueW11bHRpcmFuZ2UuCisgKiBU aGF0IHdheSBmb3JlaWduIGtleXMgY2FuIGNvbXBhcmUgZmthdHRyIDxAIHJhbmdlX2FnZyhw a2F0dHIpLgorICovCit2b2lkCitGaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKKwkJ CQkgIE9pZCAqY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5l ZGJ5b3Blcm9pZCkKK3sKKwlTdHJhdGVneU51bWJlciBzdHJhdDsKKworCS8qCisJICogTG9v ayB1cCB0aGUgQ29udGFpbmVkQnkgb3BlcmF0b3Igd2hvc2UgbGhzIGFuZCByaHMgYXJlIHRo ZSBvcGNsYXNzJ3MgdHlwZS4KKwkgKiBXZSB1c2UgdGhpcyB0byBvcHRpbWl6ZSBSSSBjaGVj a3M6IGlmIHRoZSBuZXcgdmFsdWUgaW5jbHVkZXMgYWxsCisJICogb2YgdGhlIG9sZCB2YWx1 ZSwgdGhlbiB3ZSBjYW4gdHJlYXQgdGhlIGF0dHJpYnV0ZSBhcyBpZiBpdCBkaWRuJ3QgY2hh bmdlLAorCSAqIGFuZCBza2lwIHRoZSBSSSBjaGVjay4KKwkgKi8KKwlzdHJhdCA9IFJUQ29u dGFpbmVkQnlTdHJhdGVneU51bWJlcjsKKwlHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJh dGVneShvcGNsYXNzLAorCQkJCQkJCQkJIEludmFsaWRPaWQsCisJCQkJCQkJCQkgY29udGFp bmVkYnlvcGVyb2lkLAorCQkJCQkJCQkJICZzdHJhdCk7CisKKwkvKgorCSAqIE5vdyBsb29r IHVwIHRoZSBDb250YWluZWRCeSBvcGVyYXRvci4KKwkgKiBJdHMgbGVmdCBhcmcgbXVzdCBi ZSB0aGUgdHlwZSBvZiB0aGUgY29sdW1uIChvciByYXRoZXIgb2YgdGhlIG9wY2xhc3MpLgor CSAqIEl0cyByaWdodCBhcmcgbXVzdCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgdGhlIHN1 cHBvcnQgcHJvYy4KKwkgKi8KKwlzdHJhdCA9IFJUQ29udGFpbmVkQnlTdHJhdGVneU51bWJl cjsKKwlHZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShvcGNsYXNzLAorCQkJCQkJ CQkJIEFOWU1VTFRJUkFOR0VPSUQsCisJCQkJCQkJCQkgYWdnZWRjb250YWluZWRieW9wZXJv aWQsCisJCQkJCQkJCQkgJnN0cmF0KTsKK30KKwogLyoKICAqIERldGVybWluZSB3aGV0aGVy IGEgcmVsYXRpb24gY2FuIGJlIHByb3ZlbiBmdW5jdGlvbmFsbHkgZGVwZW5kZW50IG9uCiAg KiBhIHNldCBvZiBncm91cGluZyBjb2x1bW5zLiAgSWYgc28sIHJldHVybiB0cnVlIGFuZCBh ZGQgdGhlIHBnX2NvbnN0cmFpbnQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2luZGV4Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvaW5kZXhjbWRzLmMKaW5kZXgg N2IyMGQxMDNjODYuLmQ1NDBhNjA5MTBhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9pbmRleGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMu YwpAQCAtMjE4NSw4ICsyMTg1LDEwIEBAIENvbXB1dGVJbmRleEF0dHJzKEluZGV4SW5mbyAq aW5kZXhJbmZvLAogCQkJCXN0cmF0ID0gUlRPdmVybGFwU3RyYXRlZ3lOdW1iZXI7CiAJCQll bHNlCiAJCQkJc3RyYXQgPSBSVEVxdWFsU3RyYXRlZ3lOdW1iZXI7Ci0JCQlHZXRPcGVyYXRv ckZyb21XZWxsS25vd25TdHJhdGVneShvcGNsYXNzT2lkc1thdHRuXSwgYXR0dHlwZSwKLQkJ CQkJCQkJCQkJICZvcGlkLCAmc3RyYXQpOworCQkJR2V0T3BlcmF0b3JGcm9tV2VsbEtub3du U3RyYXRlZ3kob3BjbGFzc09pZHNbYXR0bl0sCisJCQkJCQkJCQkJCSBJbnZhbGlkT2lkLAor CQkJCQkJCQkJCQkgJm9waWQsCisJCQkJCQkJCQkJCSAmc3RyYXQpOwogCQkJaW5kZXhJbmZv LT5paV9FeGNsdXNpb25PcHNbYXR0bl0gPSBvcGlkOwogCQkJaW5kZXhJbmZvLT5paV9FeGNs dXNpb25Qcm9jc1thdHRuXSA9IGdldF9vcGNvZGUob3BpZCk7CiAJCQlpbmRleEluZm8tPmlp X0V4Y2x1c2lvblN0cmF0c1thdHRuXSA9IHN0cmF0OwpAQCAtMjQyNSw3ICsyNDI3LDcgQEAg R2V0RGVmYXVsdE9wQ2xhc3MoT2lkIHR5cGVfaWQsIE9pZCBhbV9pZCkKICAqIEdldE9wZXJh dG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5CiAgKgogICogb3BjbGFzcyAtIHRoZSBvcGNsYXNz IHRvIHVzZQotICogYXR0dHlwZSAtIHRoZSB0eXBlIHRvIGFzayBhYm91dAorICogcmhzdHlw ZSAtIHRoZSB0eXBlIGZvciB0aGUgcmlnaHQtaGFuZCBzaWRlLCBvciBJbnZhbGlkT2lkIHRv IHVzZSB0aGUgdHlwZSBvZiB0aGUgZ2l2ZW4gb3BjbGFzcy4KICAqIG9waWQgLSBob2xkcyB0 aGUgb3BlcmF0b3Igd2UgZm91bmQKICAqIHN0cmF0IC0gaG9sZHMgdGhlIGlucHV0IGFuZCBv dXRwdXQgc3RyYXRlZ3kgbnVtYmVyCiAgKgpAQCAtMjQzOCwxNCArMjQ0MCwzMCBAQCBHZXRE ZWZhdWx0T3BDbGFzcyhPaWQgdHlwZV9pZCwgT2lkIGFtX2lkKQogICogSW52YWxpZFN0cmF0 ZWd5LgogICovCiB2b2lkCi1HZXRPcGVyYXRvckZyb21XZWxsS25vd25TdHJhdGVneShPaWQg b3BjbGFzcywgT2lkIGF0dHR5cGUsCi0JCQkJCQkJCSBPaWQgKm9waWQsIFN0cmF0ZWd5TnVt YmVyICpzdHJhdCkKK0dldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KE9pZCBvcGNs YXNzLAorCQkJCQkJCQkgT2lkIHJoc3R5cGUsCisJCQkJCQkJCSBPaWQgKm9waWQsCisJCQkJ CQkJCSBTdHJhdGVneU51bWJlciAqc3RyYXQpCiB7CiAJT2lkCQkJb3BmYW1pbHk7CiAJT2lk CQkJb3BjaW50eXBlOwogCVN0cmF0ZWd5TnVtYmVyIGluc3RyYXQgPSAqc3RyYXQ7CisJY2hh cgkgICAqZXJyc3RyOwogCi0JQXNzZXJ0KGluc3RyYXQgPT0gUlRFcXVhbFN0cmF0ZWd5TnVt YmVyIHx8IGluc3RyYXQgPT0gUlRPdmVybGFwU3RyYXRlZ3lOdW1iZXIpOworCXN3aXRjaCAo aW5zdHJhdCkKKwl7CisJCWNhc2UgUlRFcXVhbFN0cmF0ZWd5TnVtYmVyOgorCQkJZXJyc3Ry ID0gImNvdWxkIG5vdCBpZGVudGlmeSBhbiBlcXVhbGl0eSBvcGVyYXRvciBmb3IgdHlwZSAl cyI7CisJCQlicmVhazsKKwkJY2FzZSBSVE92ZXJsYXBTdHJhdGVneU51bWJlcjoKKwkJCWVy cnN0ciA9ICJjb3VsZCBub3QgaWRlbnRpZnkgYW4gb3ZlcmxhcHMgb3BlcmF0b3IgZm9yIHR5 cGUgJXMiOworCQkJYnJlYWs7CisJCWNhc2UgUlRDb250YWluZWRCeVN0cmF0ZWd5TnVtYmVy OgorCQkJZXJyc3RyID0gImNvdWxkIG5vdCBpZGVudGlmeSBhIGNvbnRhaW5lZCBieSBvcGVy YXRvciBmb3IgdHlwZSAlcyI7CisJCQlicmVhazsKKwkJZGVmYXVsdDoKKwkJCWVsb2coRVJS T1IsICJ1bnN1cHBvcnRlZCBzdHJhdGVneSBudW1iZXIgJXUiLCBpbnN0cmF0KTsKKwl9CiAK IAkqb3BpZCA9IEludmFsaWRPaWQ7CiAKQEAgLTI0NjgsMTYgKzI0ODYsMTkgQEAgR2V0T3Bl cmF0b3JGcm9tV2VsbEtub3duU3RyYXRlZ3koT2lkIG9wY2xhc3MsIE9pZCBhdHR0eXBlLAog CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09C SkVDVCksCi0JCQkJCWluc3RyYXQgPT0gUlRFcXVhbFN0cmF0ZWd5TnVtYmVyID8KLQkJCQkJ ZXJybXNnKCJjb3VsZCBub3QgaWRlbnRpZnkgYW4gZXF1YWxpdHkgb3BlcmF0b3IgZm9yIHR5 cGUgJXMiLCBmb3JtYXRfdHlwZV9iZShhdHR0eXBlKSkgOgotCQkJCQllcnJtc2coImNvdWxk IG5vdCBpZGVudGlmeSBhbiBvdmVybGFwcyBvcGVyYXRvciBmb3IgdHlwZSAlcyIsIGZvcm1h dF90eXBlX2JlKGF0dHR5cGUpKSwKKwkJCQkJZXJybXNnKGVycnN0ciwgZm9ybWF0X3R5cGVf YmUob3BjaW50eXBlKSksCiAJCQkJCWVycmRldGFpbCgiQ291bGQgbm90IHRyYW5zbGF0ZSBz dHJhdGVneSBudW1iZXIgJWQgZm9yIG9wZXJhdG9yIGNsYXNzIFwiJXNcIiBmb3IgYWNjZXNz IG1ldGhvZCBcIiVzXCIuIiwKIAkJCQkJCQkgIGluc3RyYXQsIE5hbWVTdHIoKChGb3JtX3Bn X29wY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSkpLT5vcGNuYW1lKSwgImdpc3QiKSk7Ci0KLQkJ CVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CiAJCX0KIAotCQkqb3BpZCA9IGdldF9vcGZhbWls eV9tZW1iZXIob3BmYW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCAqc3RyYXQpOworCQkv KgorCQkgKiBXZSBwYXJhbWV0ZXJpemUgcmhzdHlwZSBzbyBmb3JlaWduIGtleXMgY2FuIGFz ayBmb3IgYSA8QCBvcGVyYXRvcgorCQkgKiB3aG9zZSByaHMgbWF0Y2hlcyB0aGUgYWdncmVn YXRlIGZ1bmN0aW9uLiBGb3IgZXhhbXBsZSByYW5nZV9hZ2cKKwkJICogcmV0dXJucyBhbnlt dWx0aXJhbmdlLgorCQkgKi8KKwkJaWYgKCFPaWRJc1ZhbGlkKHJoc3R5cGUpKQorCQkJcmhz dHlwZSA9IG9wY2ludHlwZTsKKwkJKm9waWQgPSBnZXRfb3BmYW1pbHlfbWVtYmVyKG9wZmFt aWx5LCBvcGNpbnR5cGUsIHJoc3R5cGUsICpzdHJhdCk7CiAJfQogCiAJaWYgKCFPaWRJc1Zh bGlkKCpvcGlkKSkKQEAgLTI0OTAsOSArMjUxMSw3IEBAIEdldE9wZXJhdG9yRnJvbVdlbGxL bm93blN0cmF0ZWd5KE9pZCBvcGNsYXNzLCBPaWQgYXR0dHlwZSwKIAogCQllcmVwb3J0KEVS Uk9SLAogCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKLQkJCQlpbnN0 cmF0ID09IFJURXF1YWxTdHJhdGVneU51bWJlciA/Ci0JCQkJZXJybXNnKCJjb3VsZCBub3Qg aWRlbnRpZnkgYW4gZXF1YWxpdHkgb3BlcmF0b3IgZm9yIHR5cGUgJXMiLCBmb3JtYXRfdHlw ZV9iZShhdHR0eXBlKSkgOgotCQkJCWVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGFuIG92 ZXJsYXBzIG9wZXJhdG9yIGZvciB0eXBlICVzIiwgZm9ybWF0X3R5cGVfYmUoYXR0dHlwZSkp LAorCQkJCWVycm1zZyhlcnJzdHIsIGZvcm1hdF90eXBlX2JlKG9wY2ludHlwZSkpLAogCQkJ CWVycmRldGFpbCgiVGhlcmUgaXMgbm8gc3VpdGFibGUgb3BlcmF0b3IgaW4gb3BlcmF0b3Ig ZmFtaWx5IFwiJXNcIiBmb3IgYWNjZXNzIG1ldGhvZCBcIiVzXCIuIiwKIAkJCQkJCSAgTmFt ZVN0cigoKEZvcm1fcGdfb3BmYW1pbHkpIEdFVFNUUlVDVCh0dXBsZSkpLT5vcGZuYW1lKSwg Imdpc3QiKSk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA2YzBjODk5 MjEwYi4uYzRiYjhjMGYzZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0x Niw2ICsxNiw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvYXR0bWFwLmgiCiAjaW5jbHVkZSAi YWNjZXNzL2dlbmFtLmgiCisjaW5jbHVkZSAiYWNjZXNzL2dpc3QuaCIKICNpbmNsdWRlICJh Y2Nlc3MvaGVhcGFtLmgiCiAjaW5jbHVkZSAiYWNjZXNzL2hlYXBhbV94bG9nLmgiCiAjaW5j bHVkZSAiYWNjZXNzL211bHRpeGFjdC5oIgpAQCAtMjA5LDYgKzIxMCw3IEBAIHR5cGVkZWYg c3RydWN0IE5ld0NvbnN0cmFpbnQKIAlDb25zdHJUeXBlCWNvbnR5cGU7CQkvKiBDSEVDSyBv ciBGT1JFSUdOICovCiAJT2lkCQkJcmVmcmVsaWQ7CQkvKiBQSyByZWwsIGlmIEZPUkVJR04g Ki8KIAlPaWQJCQlyZWZpbmRpZDsJCS8qIE9JRCBvZiBQSydzIGluZGV4LCBpZiBGT1JFSUdO ICovCisJYm9vbAkJY29ud2l0aHBlcmlvZDsJLyogV2hldGhlciB0aGUgbmV3IEZPUkVJR04g S0VZIHVzZXMgUEVSSU9EICovCiAJT2lkCQkJY29uaWQ7CQkJLyogT0lEIG9mIHBnX2NvbnN0 cmFpbnQgZW50cnksIGlmIEZPUkVJR04gKi8KIAlOb2RlCSAgICpxdWFsOwkJCS8qIENoZWNr IGV4cHIgb3IgQ09OU1RSX0ZPUkVJR04gQ29uc3RyYWludCAqLwogCUV4cHJTdGF0ZSAgKnF1 YWxzdGF0ZTsJCS8qIEV4ZWN1dGlvbiBzdGF0ZSBmb3IgQ0hFQ0sgZXhwciAqLwpAQCAtMzg0 LDE2ICszODYsMTYgQEAgc3RhdGljIGludAl0cmFuc2Zvcm1Db2x1bW5OYW1lTGlzdChPaWQg cmVsSWQsIExpc3QgKmNvbExpc3QsCiBzdGF0aWMgaW50CXRyYW5zZm9ybUZrZXlHZXRQcmlt YXJ5S2V5KFJlbGF0aW9uIHBrcmVsLCBPaWQgKmluZGV4T2lkLAogCQkJCQkJCQkJICAgTGlz dCAqKmF0dG5hbWVsaXN0LAogCQkJCQkJCQkJICAgaW50MTYgKmF0dG51bXMsIE9pZCAqYXR0 dHlwaWRzLAotCQkJCQkJCQkJICAgT2lkICpvcGNsYXNzZXMpOworCQkJCQkJCQkJICAgT2lk ICpvcGNsYXNzZXMsIGJvb2wgKnBrX3BlcmlvZCk7CiBzdGF0aWMgT2lkCXRyYW5zZm9ybUZr ZXlDaGVja0F0dHJzKFJlbGF0aW9uIHBrcmVsLAogCQkJCQkJCQkJaW50IG51bWF0dHJzLCBp bnQxNiAqYXR0bnVtcywKLQkJCQkJCQkJCU9pZCAqb3BjbGFzc2VzKTsKKwkJCQkJCQkJCWJv b2wgd2l0aF9wZXJpb2QsIE9pZCAqb3BjbGFzc2VzKTsKIHN0YXRpYyB2b2lkIGNoZWNrRmtl eVBlcm1pc3Npb25zKFJlbGF0aW9uIHJlbCwgaW50MTYgKmF0dG51bXMsIGludCBuYXR0cyk7 CiBzdGF0aWMgQ29lcmNpb25QYXRoVHlwZSBmaW5kRmtleUNhc3QoT2lkIHRhcmdldFR5cGVJ ZCwgT2lkIHNvdXJjZVR5cGVJZCwKIAkJCQkJCQkJCSBPaWQgKmZ1bmNpZCk7CiBzdGF0aWMg dm9pZCB2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJhaW50KGNoYXIgKmNvbm5hbWUsCiAJCQkJ CQkJCQkJIFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gcGtyZWwsCi0JCQkJCQkJCQkJIE9pZCBw a2luZE9pZCwgT2lkIGNvbnN0cmFpbnRPaWQpOworCQkJCQkJCQkJCSBPaWQgcGtpbmRPaWQs IE9pZCBjb25zdHJhaW50T2lkLCBib29sIGhhc3BlcmlvZCk7CiBzdGF0aWMgdm9pZCBBVENv bnRyb2xsZXIoQWx0ZXJUYWJsZVN0bXQgKnBhcnNldHJlZSwKIAkJCQkJCSBSZWxhdGlvbiBy ZWwsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSwgTE9DS01PREUgbG9ja21vZGUsCiAJCQkJ CQkgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0KTsKQEAgLTUwNiw3ICs1MDgs OCBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBhZGRGa1JlY3Vyc2VSZWZlcmVuY2VkKExpc3Qg Kip3cXVldWUsIENvbnN0cmFpbnQgKmZrY29uc3RyYQogCQkJCQkJCQkJCQlPaWQgKnBmZXFv cGVyYXRvcnMsIE9pZCAqcHBlcW9wZXJhdG9ycywgT2lkICpmZmVxb3BlcmF0b3JzLAogCQkJ CQkJCQkJCQlpbnQgbnVtZmtkZWxzZXRjb2xzLCBpbnQxNiAqZmtkZWxzZXRjb2xzLAogCQkJ CQkJCQkJCQlib29sIG9sZF9jaGVja19vaywKLQkJCQkJCQkJCQkJT2lkIHBhcmVudERlbFRy aWdnZXIsIE9pZCBwYXJlbnRVcGRUcmlnZ2VyKTsKKwkJCQkJCQkJCQkJT2lkIHBhcmVudERl bFRyaWdnZXIsIE9pZCBwYXJlbnRVcGRUcmlnZ2VyLAorCQkJCQkJCQkJCQlib29sIHdpdGhf cGVyaW9kKTsKIHN0YXRpYyB2b2lkIHZhbGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMoaW50 IG51bWZrcywgY29uc3QgaW50MTYgKmZrYXR0bnVtcywKIAkJCQkJCQkJCQkgaW50IG51bWZr c2V0Y29scywgY29uc3QgaW50MTYgKmZrc2V0Y29sc2F0dG51bXMsCiAJCQkJCQkJCQkJIExp c3QgKmZrc2V0Y29scyk7CkBAIC01MTYsNyArNTE5LDkgQEAgc3RhdGljIHZvaWQgYWRkRmtS ZWN1cnNlUmVmZXJlbmNpbmcoTGlzdCAqKndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJh aW50LAogCQkJCQkJCQkJT2lkICpwZmVxb3BlcmF0b3JzLCBPaWQgKnBwZXFvcGVyYXRvcnMs IE9pZCAqZmZlcW9wZXJhdG9ycywKIAkJCQkJCQkJCWludCBudW1ma2RlbHNldGNvbHMsIGlu dDE2ICpma2RlbHNldGNvbHMsCiAJCQkJCQkJCQlib29sIG9sZF9jaGVja19vaywgTE9DS01P REUgbG9ja21vZGUsCi0JCQkJCQkJCQlPaWQgcGFyZW50SW5zVHJpZ2dlciwgT2lkIHBhcmVu dFVwZFRyaWdnZXIpOworCQkJCQkJCQkJT2lkIHBhcmVudEluc1RyaWdnZXIsIE9pZCBwYXJl bnRVcGRUcmlnZ2VyLAorCQkJCQkJCQkJYm9vbCB3aXRoX3BlcmlvZCk7CisKIHN0YXRpYyB2 b2lkIENsb25lRm9yZWlnbktleUNvbnN0cmFpbnRzKExpc3QgKip3cXVldWUsIFJlbGF0aW9u IHBhcmVudFJlbCwKIAkJCQkJCQkJCSAgIFJlbGF0aW9uIHBhcnRpdGlvblJlbCk7CiBzdGF0 aWMgdm9pZCBDbG9uZUZrUmVmZXJlbmNlZChSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9u IHBhcnRpdGlvblJlbCk7CkBAIC01OTU4LDcgKzU5NjMsOCBAQCBBVFJld3JpdGVUYWJsZXMo QWx0ZXJUYWJsZVN0bXQgKnBhcnNldHJlZSwgTGlzdCAqKndxdWV1ZSwgTE9DS01PREUgbG9j a21vZGUsCiAKIAkJCQl2YWxpZGF0ZUZvcmVpZ25LZXlDb25zdHJhaW50KGZrY29uc3RyYWlu dC0+Y29ubmFtZSwgcmVsLCByZWZyZWwsCiAJCQkJCQkJCQkJCSBjb24tPnJlZmluZGlkLAot CQkJCQkJCQkJCQkgY29uLT5jb25pZCk7CisJCQkJCQkJCQkJCSBjb24tPmNvbmlkLAorCQkJ CQkJCQkJCQkgY29uLT5jb253aXRocGVyaW9kKTsKIAogCQkJCS8qCiAJCQkJICogTm8gbmVl ZCB0byBtYXJrIHRoZSBjb25zdHJhaW50IHJvdyBhcyB2YWxpZGF0ZWQsIHdlIGRpZApAQCAt OTgwOSw2ICs5ODE1LDggQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1 ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlPaWQJCQlwcGVx b3BlcmF0b3JzW0lOREVYX01BWF9LRVlTXSA9IHswfTsKIAlPaWQJCQlmZmVxb3BlcmF0b3Jz W0lOREVYX01BWF9LRVlTXSA9IHswfTsKIAlpbnQxNgkJZmtkZWxzZXRjb2xzW0lOREVYX01B WF9LRVlTXSA9IHswfTsKKwlib29sCQl3aXRoX3BlcmlvZDsKKwlib29sCQlwa193aXRoX3Bl cmlvZDsKIAlpbnQJCQlpOwogCWludAkJCW51bWZrcywKIAkJCQludW1wa3MsCkBAIC05OTAz LDYgKzk5MTEsMTEgQEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVl LCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAludW1ma3MgPSB0cmFu c2Zvcm1Db2x1bW5OYW1lTGlzdChSZWxhdGlvbkdldFJlbGlkKHJlbCksCiAJCQkJCQkJCQkg Zmtjb25zdHJhaW50LT5ma19hdHRycywKIAkJCQkJCQkJCSBma2F0dG51bSwgZmt0eXBvaWQp OworCXdpdGhfcGVyaW9kID0gZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCB8fCBma2Nv bnN0cmFpbnQtPnBrX3dpdGhfcGVyaW9kOworCWlmICh3aXRoX3BlcmlvZCAmJiAhZmtjb25z dHJhaW50LT5ma193aXRoX3BlcmlvZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAorCQkJCWVycm1zZygiZm9yZWlnbiBr ZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVm ZXJlbmNpbmcgdGFibGUiKSkpOwogCiAJbnVtZmtkZWxzZXRjb2xzID0gdHJhbnNmb3JtQ29s dW1uTmFtZUxpc3QoUmVsYXRpb25HZXRSZWxpZChyZWwpLAogCQkJCQkJCQkJCQkgIGZrY29u c3RyYWludC0+ZmtfZGVsX3NldF9jb2xzLApAQCAtOTkyMiwxNiArOTkzNSwyOSBAQCBBVEFk ZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8g KnRhYiwgUmVsYXRpb24gcmVsLAogCQludW1wa3MgPSB0cmFuc2Zvcm1Ga2V5R2V0UHJpbWFy eUtleShwa3JlbCwgJmluZGV4T2lkLAogCQkJCQkJCQkJCQkmZmtjb25zdHJhaW50LT5wa19h dHRycywKIAkJCQkJCQkJCQkJcGthdHRudW0sIHBrdHlwb2lkLAotCQkJCQkJCQkJCQlvcGNs YXNzZXMpOworCQkJCQkJCQkJCQlvcGNsYXNzZXMsICZwa193aXRoX3BlcmlvZCk7CisKKwkJ LyogSWYgdGhlIHByaW1hcnkga2V5IHVzZXMgV0lUSE9VVCBPVkVSTEFQUywgdGhlIGZrIG11 c3QgdXNlIFBFUklPRCAqLworCQlpZiAocGtfd2l0aF9wZXJpb2QgJiYgIWZrY29uc3RyYWlu dC0+Zmtfd2l0aF9wZXJpb2QpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfRk9SRUlHTl9LRVkpLAorCQkJCQllcnJtc2coImZvcmVpZ24ga2V5 IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVy ZW5jaW5nIHRhYmxlIikpKTsKIAl9CiAJZWxzZQogCXsKIAkJbnVtcGtzID0gdHJhbnNmb3Jt Q29sdW1uTmFtZUxpc3QoUmVsYXRpb25HZXRSZWxpZChwa3JlbCksCiAJCQkJCQkJCQkJIGZr Y29uc3RyYWludC0+cGtfYXR0cnMsCiAJCQkJCQkJCQkJIHBrYXR0bnVtLCBwa3R5cG9pZCk7 CisKKwkJLyogU2luY2Ugd2UgZ290IHBrX2F0dHJzLCBvbmUgc2hvdWxkIGJlIGEgcGVyaW9k LiAqLworCQlpZiAod2l0aF9wZXJpb2QgJiYgIWZrY29uc3RyYWludC0+cGtfd2l0aF9wZXJp b2QpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURf Rk9SRUlHTl9LRVkpLAorCQkJCQllcnJtc2coImZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9u IHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2VkIHRhYmxlIikp KTsKKwogCQkvKiBMb29rIGZvciBhbiBpbmRleCBtYXRjaGluZyB0aGUgY29sdW1uIGxpc3Qg Ki8KIAkJaW5kZXhPaWQgPSB0cmFuc2Zvcm1Ga2V5Q2hlY2tBdHRycyhwa3JlbCwgbnVtcGtz LCBwa2F0dG51bSwKLQkJCQkJCQkJCQkgICBvcGNsYXNzZXMpOworCQkJCQkJCQkJCSAgIHdp dGhfcGVyaW9kLCBvcGNsYXNzZXMpOwogCX0KIAogCS8qCkBAIC0xMDAwMCw4ICsxMDAyNiwx MSBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRU YWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQlPaWQJCQlwZmVxb3A7CiAJCU9pZAkJ CXBwZXFvcDsKIAkJT2lkCQkJZmZlcW9wOworCQlTdHJhdGVneU51bWJlcglydHN0cmF0ZWd5 OwogCQlpbnQxNgkJZXFzdHJhdGVneTsKIAkJT2lkCQkJcGZlcW9wX3JpZ2h0OworCQljaGFy CSAgICpzdHJhdG5hbWU7CisJCWJvb2wJCWZvcl9vdmVybGFwcyA9IHdpdGhfcGVyaW9kICYm IGkgPT0gbnVtcGtzIC0gMTsKIAogCQkvKiBXZSBuZWVkIHNldmVyYWwgZmllbGRzIG91dCBv ZiB0aGUgcGdfb3BjbGFzcyBlbnRyeSAqLwogCQljbGFfaHQgPSBTZWFyY2hTeXNDYWNoZTEo Q0xBT0lELCBPYmplY3RJZEdldERhdHVtKG9wY2xhc3Nlc1tpXSkpOwpAQCAtMTAwMTMsMTYg KzEwMDQyLDUzIEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndxdWV1ZSwg QWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCW9wY2ludHlwZSA9IGNs YV90dXAtPm9wY2ludHlwZTsKIAkJUmVsZWFzZVN5c0NhY2hlKGNsYV9odCk7CiAKLQkJLyoK LQkJICogQ2hlY2sgaXQncyBhIGJ0cmVlOyBjdXJyZW50bHkgdGhpcyBjYW4gbmV2ZXIgZmFp bCBzaW5jZSBubyBvdGhlcgotCQkgKiBpbmRleCBBTXMgc3VwcG9ydCB1bmlxdWUgaW5kZXhl cy4gIElmIHdlIGV2ZXIgZGlkIGhhdmUgb3RoZXIgdHlwZXMKLQkJICogb2YgdW5pcXVlIGlu ZGV4ZXMsIHdlJ2QgbmVlZCBhIHdheSB0byBkZXRlcm1pbmUgd2hpY2ggb3BlcmF0b3IKLQkJ ICogc3RyYXRlZ3kgbnVtYmVyIGlzIGVxdWFsaXR5LiAgKElzIGl0IHJlYXNvbmFibGUgdG8g aW5zaXN0IHRoYXQKLQkJICogZXZlcnkgc3VjaCBpbmRleCBBTSB1c2UgYnRyZWUncyBudW1i ZXIgZm9yIGVxdWFsaXR5PykKLQkJICovCi0JCWlmIChhbWlkICE9IEJUUkVFX0FNX09JRCkK LQkJCWVsb2coRVJST1IsICJvbmx5IGItdHJlZSBpbmRleGVzIGFyZSBzdXBwb3J0ZWQgZm9y IGZvcmVpZ24ga2V5cyIpOwotCQllcXN0cmF0ZWd5ID0gQlRFcXVhbFN0cmF0ZWd5TnVtYmVy OworCQlpZiAod2l0aF9wZXJpb2QpCisJCXsKKwkJCS8qCisJCQkgKiBHaVNUIGluZGV4ZXMg YXJlIHJlcXVpcmVkIHRvIHN1cHBvcnQgdGVtcG9yYWwgZm9yZWlnbiBrZXlzCisJCQkgKiBi ZWNhdXNlIHRoZXkgY29tYmluZSBlcXVhbHMgYW5kIG92ZXJsYXBzLgorCQkJICovCisJCQlp ZiAoYW1pZCAhPSBHSVNUX0FNX09JRCkKKwkJCQllbG9nKEVSUk9SLCAib25seSBHaVNUIGlu ZGV4ZXMgYXJlIHN1cHBvcnRlZCBmb3IgdGVtcG9yYWwgZm9yZWlnbiBrZXlzIik7CisJCQlp ZiAoZm9yX292ZXJsYXBzKQorCQkJeworCQkJCXN0cmF0bmFtZSA9ICJvdmVybGFwcyI7CisJ CQkJcnRzdHJhdGVneSA9IFJUT3ZlcmxhcFN0cmF0ZWd5TnVtYmVyOworCQkJfQorCQkJZWxz ZQorCQkJeworCQkJCXN0cmF0bmFtZSA9ICJlcXVhbGl0eSI7CisJCQkJcnRzdHJhdGVneSA9 IFJURXF1YWxTdHJhdGVneU51bWJlcjsKKwkJCX0KKwkJCS8qCisJCQkgKiBBbiBvcGNsYXNz IGNhbiB1c2Ugd2hhdGV2ZXIgc3RyYXRlZ3kgbnVtYmVycyBpdCB3YW50cywgc28gd2UgYXNr CisJCQkgKiB0aGUgb3BjbGFzcyB3aGF0IG51bWJlciBpdCBhY3R1YWxseSB1c2VzIGluc3Rl YWQgb2Ygb3VyCisJCQkgKiBSVCogY29uc3RhbnRzLgorCQkJICovCisJCQllcXN0cmF0ZWd5 ID0gR2lzdFRyYW5zbGF0ZVN0cmF0bnVtKG9wY2xhc3Nlc1tpXSwgcnRzdHJhdGVneSk7CisJ CQlpZiAoZXFzdHJhdGVneSA9PSBJbnZhbGlkU3RyYXRlZ3kpCisJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCQkg ZXJybXNnKCJubyAlcyBvcGVyYXRvciBmb3VuZCBmb3IgZm9yZWlnbiBrZXkiLCBzdHJhdG5h bWUpLAorCQkJCQkJIGVycmRldGFpbCgiQ291bGQgbm90IHRyYW5zbGF0ZSBzdHJhdGVneSBu dW1iZXIgJWQgZm9yIG9wY2xhc3MgJWQuIiwKKwkJCQkJCQkgcnRzdHJhdGVneSwgb3BjbGFz c2VzW2ldKSwKKwkJCQkJCSBlcnJoaW50KCJEZWZpbmUgYSBzdHJhdG51bSBzdXBwb3J0IGZ1 bmN0aW9uIGZvciB5b3VyIEdpU1Qgb3BjbGFzcy4iKSkpOworCQl9CisJCWVsc2UKKwkJewor CQkJLyoKKwkJCSAqIENoZWNrIGl0J3MgYSBidHJlZS4gIFRoaXMgY2FuIG9ubHkgZmFpbCBp ZiB0aGUgcHJpbWFyeSBrZXkgb3IKKwkJCSAqIHVuaXF1ZSBjb25zdHJhaW50IHVzZXMgV0lU SE9VVCBPVkVSTEFQUy4gIEJ1dCB0aGVuIHdlIHNob3VsZAorCQkJICogZm9yYmlkIGEgbm9u LVBFUklPRCBmb3JlaWduIGtleS4KKwkJCSAqCisJCQkgKiBJZiB3ZSBldmVyIGFsbG93ZWQg bm9uLXRlbXBvcmFsIHVuaXF1ZSBpbmRleGVzIHdpdGggb3RoZXIgaW5kZXggQU1zLAorCQkJ ICogd2UgY291bGQgdXNlIEdpc3RUcmFuc2xhdGVTdHJhdG51bSAob3Igc29tZXRoaW5nIHNp bWlsYXIgZm9yIG5vbi1HaVNUKQorCQkJICogdG8gZGV0ZXJtaW5lIHdoaWNoIG9wZXJhdG9y IHN0cmF0ZWd5IG51bWJlciBpcyBlcXVhbGl0eS4KKwkJCSAqLworCQkJaWYgKGFtaWQgIT0g QlRSRUVfQU1fT0lEKQorCQkJCWVsb2coRVJST1IsICJvbmx5IGItdHJlZSBpbmRleGVzIGFy ZSBzdXBwb3J0ZWQgZm9yIG5vbi1QRVJJT0QgZm9yZWlnbiBrZXlzIik7CisJCQllcXN0cmF0 ZWd5ID0gQlRFcXVhbFN0cmF0ZWd5TnVtYmVyOworCQl9CiAKIAkJLyoKIAkJICogVGhlcmUg aGFkIGJldHRlciBiZSBhIHByaW1hcnkgZXF1YWxpdHkgb3BlcmF0b3IgZm9yIHRoZSBpbmRl eC4KQEAgLTEwMDgzLDE2ICsxMDE0OSwyMSBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50 KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAog CQl9CiAKIAkJaWYgKCEoT2lkSXNWYWxpZChwZmVxb3ApICYmIE9pZElzVmFsaWQoZmZlcW9w KSkpCisJCXsKKwkJCWNoYXIgKmZrYXR0cl9uYW1lID0gc3RyVmFsKGxpc3RfbnRoKGZrY29u c3RyYWludC0+ZmtfYXR0cnMsIGkpKTsKKwkJCWNoYXIgKnBrYXR0cl9uYW1lID0gc3RyVmFs KGxpc3RfbnRoKGZrY29uc3RyYWludC0+cGtfYXR0cnMsIGkpKTsKKwogCQkJZXJlcG9ydChF UlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCiAJCQkJ CSBlcnJtc2coImZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgXCIlc1wiIGNhbm5vdCBiZSBpbXBs ZW1lbnRlZCIsCiAJCQkJCQkJZmtjb25zdHJhaW50LT5jb25uYW1lKSwKIAkJCQkJIGVycmRl dGFpbCgiS2V5IGNvbHVtbnMgXCIlc1wiIGFuZCBcIiVzXCIgIgogCQkJCQkJCSAgICJhcmUg b2YgaW5jb21wYXRpYmxlIHR5cGVzOiAlcyBhbmQgJXMuIiwKLQkJCQkJCQkgICBzdHJWYWwo bGlzdF9udGgoZmtjb25zdHJhaW50LT5ma19hdHRycywgaSkpLAotCQkJCQkJCSAgIHN0clZh bChsaXN0X250aChma2NvbnN0cmFpbnQtPnBrX2F0dHJzLCBpKSksCisJCQkJCQkJICAgZmth dHRyX25hbWUsCisJCQkJCQkJICAgcGthdHRyX25hbWUsCiAJCQkJCQkJICAgZm9ybWF0X3R5 cGVfYmUoZmt0eXBlKSwKIAkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZShwa3R5cGUpKSkpOwor CQl9CiAKIAkJaWYgKG9sZF9jaGVja19vaykKIAkJewpAQCAtMTAxNjUsNiArMTAyMzYsNyBA QCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJs ZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkJCW5ld19jYXN0ZnVuYyA9PSBvbGRf Y2FzdGZ1bmMgJiYKIAkJCQkJCQkoIUlzUG9seW1vcnBoaWNUeXBlKHBmZXFvcF9yaWdodCkg fHwKIAkJCQkJCQkgbmV3X2ZrdHlwZSA9PSBvbGRfZmt0eXBlKSk7CisKIAkJfQogCiAJCXBm ZXFvcGVyYXRvcnNbaV0gPSBwZmVxb3A7CkBAIC0xMDE3Miw2ICsxMDI0NCwyMiBAQCBBVEFk ZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3cXVldWUsIEFsdGVyZWRUYWJsZUluZm8g KnRhYiwgUmVsYXRpb24gcmVsLAogCQlmZmVxb3BlcmF0b3JzW2ldID0gZmZlcW9wOwogCX0K IAorCS8qCisJICogRm9yIEZLcyB3aXRoIFBFUklPRCB3ZSBuZWVkIGFuIG9wZXJhdG9yIGFu ZCBhZ2dyZWdhdGUgZnVuY3Rpb24KKwkgKiB0byBjaGVjayB3aGV0aGVyIHRoZSByZWZlcmVu Y2luZyByb3cncyByYW5nZSBpcyBjb250YWluZWQKKwkgKiBieSB0aGUgYWdncmVnYXRlZCBy YW5nZXMgb2YgdGhlIHJlZmVyZW5jZWQgcm93KHMpLgorCSAqIEZvciByYW5nZXR5cGVzIHRo aXMgaXMgZmsucGVyaW9kYXR0IDxAIHJhbmdlX2FnZyhway5wZXJpb2RhdHQpLgorCSAqIEZL cyB3aWxsIGxvb2sgdGhlc2UgdXAgYXQgInJ1bnRpbWUiLCBidXQgd2Ugc2hvdWxkIG1ha2Ug c3VyZQorCSAqIHRoZSBsb29rdXAgd29ya3MgaGVyZSwgZXZlbiBpZiB3ZSBkb24ndCB1c2Ug dGhlIHZhbHVlcy4KKwkgKi8KKwlpZiAod2l0aF9wZXJpb2QpCisJeworCQlPaWQJCQlwZXJp b2RvcGVyb2lkOworCQlPaWQJCQlhZ2dlZHBlcmlvZG9wZXJvaWQ7CisKKwkJRmluZEZLUGVy aW9kT3BlcnMob3BjbGFzc2VzW251bXBrcyAtIDFdLCAmcGVyaW9kb3Blcm9pZCwgJmFnZ2Vk cGVyaW9kb3Blcm9pZCk7CisJfQorCiAJLyoKIAkgKiBDcmVhdGUgYWxsIHRoZSBjb25zdHJh aW50IGFuZCB0cmlnZ2VyIG9iamVjdHMsIHJlY3Vyc2luZyB0byBwYXJ0aXRpb25zCiAJICog YXMgbmVjZXNzYXJ5LiAgRmlyc3QgaGFuZGxlIHRoZSByZWZlcmVuY2VkIHNpZGUuCkBAIC0x MDE4OCw3ICsxMDI3Niw4IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFpbnQoTGlzdCAqKndx dWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAJCQkJCQkJCQkg bnVtZmtkZWxzZXRjb2xzLAogCQkJCQkJCQkJIGZrZGVsc2V0Y29scywKIAkJCQkJCQkJCSBv bGRfY2hlY2tfb2ssCi0JCQkJCQkJCQkgSW52YWxpZE9pZCwgSW52YWxpZE9pZCk7CisJCQkJ CQkJCQkgSW52YWxpZE9pZCwgSW52YWxpZE9pZCwKKwkJCQkJCQkJCSB3aXRoX3BlcmlvZCk7 CiAKIAkvKiBOb3cgaGFuZGxlIHRoZSByZWZlcmVuY2luZyBzaWRlLiAqLwogCWFkZEZrUmVj dXJzZVJlZmVyZW5jaW5nKHdxdWV1ZSwgZmtjb25zdHJhaW50LCByZWwsIHBrcmVsLApAQCAt MTAyMDQsNyArMTAyOTMsOCBAQCBBVEFkZEZvcmVpZ25LZXlDb25zdHJhaW50KExpc3QgKip3 cXVldWUsIEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLAogCQkJCQkJCWZr ZGVsc2V0Y29scywKIAkJCQkJCQlvbGRfY2hlY2tfb2ssCiAJCQkJCQkJbG9ja21vZGUsCi0J CQkJCQkJSW52YWxpZE9pZCwgSW52YWxpZE9pZCk7CisJCQkJCQkJSW52YWxpZE9pZCwgSW52 YWxpZE9pZCwKKwkJCQkJCQl3aXRoX3BlcmlvZCk7CiAKIAkvKgogCSAqIERvbmUuICBDbG9z ZSBwayB0YWJsZSwgYnV0IGtlZXAgbG9jayB1bnRpbCB3ZSd2ZSBjb21taXR0ZWQuCkBAIC0x MDI4OSw3ICsxMDM3OSw4IEBAIGFkZEZrUmVjdXJzZVJlZmVyZW5jZWQoTGlzdCAqKndxdWV1 ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LCBSZWxhdGlvbiByZWwsCiAJCQkJCSAgIE9p ZCAqcHBlcW9wZXJhdG9ycywgT2lkICpmZmVxb3BlcmF0b3JzLAogCQkJCQkgICBpbnQgbnVt ZmtkZWxzZXRjb2xzLCBpbnQxNiAqZmtkZWxzZXRjb2xzLAogCQkJCQkgICBib29sIG9sZF9j aGVja19vaywKLQkJCQkJICAgT2lkIHBhcmVudERlbFRyaWdnZXIsIE9pZCBwYXJlbnRVcGRU cmlnZ2VyKQorCQkJCQkgICBPaWQgcGFyZW50RGVsVHJpZ2dlciwgT2lkIHBhcmVudFVwZFRy aWdnZXIsCisJCQkJCSAgIGJvb2wgd2l0aF9wZXJpb2QpCiB7CiAJT2JqZWN0QWRkcmVzcyBh ZGRyZXNzOwogCU9pZAkJCWNvbnN0ck9pZDsKQEAgLTEwMzc1LDcgKzEwNDY2LDcgQEAgYWRk RmtSZWN1cnNlUmVmZXJlbmNlZChMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0 cmFpbnQsIFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCSAgY29uaXNsb2NhbCwJLyogaXNsb2Nh bCAqLwogCQkJCQkJCQkJICBjb25pbmhjb3VudCwJLyogaW5oY291bnQgKi8KIAkJCQkJCQkJ CSAgY29ubm9pbmhlcml0LCAvKiBjb25Ob0luaGVyaXQgKi8KLQkJCQkJCQkJCSAgZmFsc2Us CS8qIGNvblBlcmlvZCAqLworCQkJCQkJCQkJICB3aXRoX3BlcmlvZCwJLyogY29uUGVyaW9k ICovCiAJCQkJCQkJCQkgIGZhbHNlKTsJLyogaXNfaW50ZXJuYWwgKi8KIAogCU9iamVjdEFk ZHJlc3NTZXQoYWRkcmVzcywgQ29uc3RyYWludFJlbGF0aW9uSWQsIGNvbnN0ck9pZCk7CkBA IC0xMDQ1MSw3ICsxMDU0Miw4IEBAIGFkZEZrUmVjdXJzZVJlZmVyZW5jZWQoTGlzdCAqKndx dWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LCBSZWxhdGlvbiByZWwsCiAJCQkJCQkJ CSAgIHBmZXFvcGVyYXRvcnMsIHBwZXFvcGVyYXRvcnMsIGZmZXFvcGVyYXRvcnMsCiAJCQkJ CQkJCSAgIG51bWZrZGVsc2V0Y29scywgZmtkZWxzZXRjb2xzLAogCQkJCQkJCQkgICBvbGRf Y2hlY2tfb2ssCi0JCQkJCQkJCSAgIGRlbGV0ZVRyaWdnZXJPaWQsIHVwZGF0ZVRyaWdnZXJP aWQpOworCQkJCQkJCQkgICBkZWxldGVUcmlnZ2VyT2lkLCB1cGRhdGVUcmlnZ2VyT2lkLAor CQkJCQkJCQkgICB3aXRoX3BlcmlvZCk7CiAKIAkJCS8qIERvbmUgLS0gY2xlYW4gdXAgKGJ1 dCBrZWVwIHRoZSBsb2NrKSAqLwogCQkJdGFibGVfY2xvc2UocGFydFJlbCwgTm9Mb2NrKTsK QEAgLTEwNTA5LDcgKzEwNjAxLDggQEAgYWRkRmtSZWN1cnNlUmVmZXJlbmNpbmcoTGlzdCAq KndxdWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LCBSZWxhdGlvbiByZWwsCiAJCQkJ CQlPaWQgKnBmZXFvcGVyYXRvcnMsIE9pZCAqcHBlcW9wZXJhdG9ycywgT2lkICpmZmVxb3Bl cmF0b3JzLAogCQkJCQkJaW50IG51bWZrZGVsc2V0Y29scywgaW50MTYgKmZrZGVsc2V0Y29s cywKIAkJCQkJCWJvb2wgb2xkX2NoZWNrX29rLCBMT0NLTU9ERSBsb2NrbW9kZSwKLQkJCQkJ CU9pZCBwYXJlbnRJbnNUcmlnZ2VyLCBPaWQgcGFyZW50VXBkVHJpZ2dlcikKKwkJCQkJCU9p ZCBwYXJlbnRJbnNUcmlnZ2VyLCBPaWQgcGFyZW50VXBkVHJpZ2dlciwKKwkJCQkJCWJvb2wg d2l0aF9wZXJpb2QpCiB7CiAJT2lkCQkJaW5zZXJ0VHJpZ2dlck9pZCwKIAkJCQl1cGRhdGVU cmlnZ2VyT2lkOwpAQCAtMTA1NTcsNiArMTA2NTAsNyBAQCBhZGRGa1JlY3Vyc2VSZWZlcmVu Y2luZyhMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsIFJlbGF0aW9u IHJlbCwKIAkJCW5ld2Nvbi0+cmVmcmVsaWQgPSBSZWxhdGlvbkdldFJlbGlkKHBrcmVsKTsK IAkJCW5ld2Nvbi0+cmVmaW5kaWQgPSBpbmRleE9pZDsKIAkJCW5ld2Nvbi0+Y29uaWQgPSBw YXJlbnRDb25zdHI7CisJCQluZXdjb24tPmNvbndpdGhwZXJpb2QgPSBma2NvbnN0cmFpbnQt PmZrX3dpdGhfcGVyaW9kOwogCQkJbmV3Y29uLT5xdWFsID0gKE5vZGUgKikgZmtjb25zdHJh aW50OwogCiAJCQl0YWItPmNvbnN0cmFpbnRzID0gbGFwcGVuZCh0YWItPmNvbnN0cmFpbnRz LCBuZXdjb24pOwpAQCAtMTA2NzQsNyArMTA3NjgsNyBAQCBhZGRGa1JlY3Vyc2VSZWZlcmVu Y2luZyhMaXN0ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsIFJlbGF0aW9u IHJlbCwKIAkJCQkJCQkJCSAgZmFsc2UsCiAJCQkJCQkJCQkgIDEsCiAJCQkJCQkJCQkgIGZh bHNlLAotCQkJCQkJCQkJICBmYWxzZSwJLyogY29uUGVyaW9kICovCisJCQkJCQkJCQkgIHdp dGhfcGVyaW9kLAkvKiBjb25QZXJpb2QgKi8KIAkJCQkJCQkJCSAgZmFsc2UpOwogCiAJCQkv KgpAQCAtMTA3MDUsNyArMTA3OTksOCBAQCBhZGRGa1JlY3Vyc2VSZWZlcmVuY2luZyhMaXN0 ICoqd3F1ZXVlLCBDb25zdHJhaW50ICpma2NvbnN0cmFpbnQsIFJlbGF0aW9uIHJlbCwKIAkJ CQkJCQkJCW9sZF9jaGVja19vaywKIAkJCQkJCQkJCWxvY2ttb2RlLAogCQkJCQkJCQkJaW5z ZXJ0VHJpZ2dlck9pZCwKLQkJCQkJCQkJCXVwZGF0ZVRyaWdnZXJPaWQpOworCQkJCQkJCQkJ dXBkYXRlVHJpZ2dlck9pZCwKKwkJCQkJCQkJCXdpdGhfcGVyaW9kKTsKIAogCQkJdGFibGVf Y2xvc2UocGFydGl0aW9uLCBOb0xvY2spOwogCQl9CkBAIC0xMDk0MSw3ICsxMTAzNiw4IEBA IENsb25lRmtSZWZlcmVuY2VkKFJlbGF0aW9uIHBhcmVudFJlbCwgUmVsYXRpb24gcGFydGl0 aW9uUmVsKQogCQkJCQkJCSAgIGNvbmZkZWxzZXRjb2xzLAogCQkJCQkJCSAgIHRydWUsCiAJ CQkJCQkJICAgZGVsZXRlVHJpZ2dlck9pZCwKLQkJCQkJCQkgICB1cGRhdGVUcmlnZ2VyT2lk KTsKKwkJCQkJCQkgICB1cGRhdGVUcmlnZ2VyT2lkLAorCQkJCQkJCSAgIGNvbnN0ckZvcm0t PmNvbnBlcmlvZCk7CiAKIAkJdGFibGVfY2xvc2UoZmtSZWwsIE5vTG9jayk7CiAJCVJlbGVh c2VTeXNDYWNoZSh0dXBsZSk7CkBAIC0xMTAzNCw2ICsxMTEzMCw3IEBAIENsb25lRmtSZWZl cmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBh cnRSZWwpCiAJCUxpc3RDZWxsICAgKmxjOwogCQlPaWQJCQlpbnNlcnRUcmlnZ2VyT2lkLAog CQkJCQl1cGRhdGVUcmlnZ2VyT2lkOworCQlib29sCQl3aXRoX3BlcmlvZDsKIAogCQl0dXBs ZSA9IFNlYXJjaFN5c0NhY2hlMShDT05TVFJPSUQsIE9iamVjdElkR2V0RGF0dW0ocGFyZW50 Q29uc3RyT2lkKSk7CiAJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSkpCkBAIC0xMTE0 OSw2ICsxMTI0Niw3IEBAIENsb25lRmtSZWZlcmVuY2luZyhMaXN0ICoqd3F1ZXVlLCBSZWxh dGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBhcnRSZWwpCiAJCQlma2NvbnN0cmFpbnQtPmNv bm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIoY29uc3RyRm9ybS0+Y29ubmFtZSkpOwogCiAJCWlu ZGV4T2lkID0gY29uc3RyRm9ybS0+Y29uaW5kaWQ7CisJCXdpdGhfcGVyaW9kID0gY29uc3Ry Rm9ybS0+Y29ucGVyaW9kOwogCQljb25zdHJPaWQgPQogCQkJQ3JlYXRlQ29uc3RyYWludEVu dHJ5KGZrY29uc3RyYWludC0+Y29ubmFtZSwKIAkJCQkJCQkJICBjb25zdHJGb3JtLT5jb25u YW1lc3BhY2UsCkBAIC0xMTE4MCw3ICsxMTI3OCw3IEBAIENsb25lRmtSZWZlcmVuY2luZyhM aXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiBwYXJlbnRSZWwsIFJlbGF0aW9uIHBhcnRSZWwpCiAJ CQkJCQkJCSAgZmFsc2UsCS8qIGlzbG9jYWwgKi8KIAkJCQkJCQkJICAxLAkvKiBpbmhjb3Vu dCAqLwogCQkJCQkJCQkgIGZhbHNlLAkvKiBjb25Ob0luaGVyaXQgKi8KLQkJCQkJCQkJICBm YWxzZSwJLyogY29uUGVyaW9kICovCisJCQkJCQkJCSAgd2l0aF9wZXJpb2QsCS8qIGNvblBl cmlvZCAqLwogCQkJCQkJCQkgIHRydWUpOwogCiAJCS8qIFNldCB1cCBwYXJ0aXRpb24gZGVw ZW5kZW5jaWVzIGZvciB0aGUgbmV3IGNvbnN0cmFpbnQgKi8KQEAgLTExMjE0LDcgKzExMzEy LDggQEAgQ2xvbmVGa1JlZmVyZW5jaW5nKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHBhcmVu dFJlbCwgUmVsYXRpb24gcGFydFJlbCkKIAkJCQkJCQkJZmFsc2UsCS8qIG5vIG9sZCBjaGVj ayBleGlzdHMgKi8KIAkJCQkJCQkJQWNjZXNzRXhjbHVzaXZlTG9jaywKIAkJCQkJCQkJaW5z ZXJ0VHJpZ2dlck9pZCwKLQkJCQkJCQkJdXBkYXRlVHJpZ2dlck9pZCk7CisJCQkJCQkJCXVw ZGF0ZVRyaWdnZXJPaWQsCisJCQkJCQkJCXdpdGhfcGVyaW9kKTsKIAkJdGFibGVfY2xvc2Uo cGtyZWwsIE5vTG9jayk7CiAJfQogCkBAIC0xMjAzNSw3ICsxMjEzNCw3IEBAIHN0YXRpYyBp bnQKIHRyYW5zZm9ybUZrZXlHZXRQcmltYXJ5S2V5KFJlbGF0aW9uIHBrcmVsLCBPaWQgKmlu ZGV4T2lkLAogCQkJCQkJICAgTGlzdCAqKmF0dG5hbWVsaXN0LAogCQkJCQkJICAgaW50MTYg KmF0dG51bXMsIE9pZCAqYXR0dHlwaWRzLAotCQkJCQkJICAgT2lkICpvcGNsYXNzZXMpCisJ CQkJCQkgICBPaWQgKm9wY2xhc3NlcywgYm9vbCAqcGtfcGVyaW9kKQogewogCUxpc3QJICAg KmluZGV4b2lkbGlzdDsKIAlMaXN0Q2VsbCAgICppbmRleG9pZHNjYW47CkBAIC0xMjExMyw2 ICsxMjIxMiw4IEBAIHRyYW5zZm9ybUZrZXlHZXRQcmltYXJ5S2V5KFJlbGF0aW9uIHBrcmVs LCBPaWQgKmluZGV4T2lkLAogCQkJCQkJCSAgIG1ha2VTdHJpbmcocHN0cmR1cChOYW1lU3Ry KCphdHRudW1BdHROYW1lKHBrcmVsLCBwa2F0dG5vKSkpKSk7CiAJfQogCisJKnBrX3Blcmlv ZCA9IGluZGV4U3RydWN0LT5pbmRpc2V4Y2x1c2lvbjsKKwogCVJlbGVhc2VTeXNDYWNoZShp bmRleFR1cGxlKTsKIAogCXJldHVybiBpOwpAQCAtMTIxMzMsNyArMTIyMzQsNyBAQCB0cmFu c2Zvcm1Ga2V5R2V0UHJpbWFyeUtleShSZWxhdGlvbiBwa3JlbCwgT2lkICppbmRleE9pZCwK IHN0YXRpYyBPaWQKIHRyYW5zZm9ybUZrZXlDaGVja0F0dHJzKFJlbGF0aW9uIHBrcmVsLAog CQkJCQkJaW50IG51bWF0dHJzLCBpbnQxNiAqYXR0bnVtcywKLQkJCQkJCU9pZCAqb3BjbGFz c2VzKQorCQkJCQkJYm9vbCB3aXRoX3BlcmlvZCwgT2lkICpvcGNsYXNzZXMpCiB7CiAJT2lk CQkJaW5kZXhvaWQgPSBJbnZhbGlkT2lkOwogCWJvb2wJCWZvdW5kID0gZmFsc2U7CkBAIC0x MjE4MCwxMiArMTIyODEsMTMgQEAgdHJhbnNmb3JtRmtleUNoZWNrQXR0cnMoUmVsYXRpb24g cGtyZWwsCiAJCWluZGV4U3RydWN0ID0gKEZvcm1fcGdfaW5kZXgpIEdFVFNUUlVDVChpbmRl eFR1cGxlKTsKIAogCQkvKgotCQkgKiBNdXN0IGhhdmUgdGhlIHJpZ2h0IG51bWJlciBvZiBj b2x1bW5zOyBtdXN0IGJlIHVuaXF1ZSBhbmQgbm90IGEKKwkJICogTXVzdCBoYXZlIHRoZSBy aWdodCBudW1iZXIgb2YgY29sdW1uczsgbXVzdCBiZSB1bmlxdWUKKwkJICogKG9yIGlmIHRl bXBvcmFsIHRoZW4gZXhjbHVzaW9uIGluc3RlYWQpIGFuZCBub3QgYQogCQkgKiBwYXJ0aWFs IGluZGV4OyBmb3JnZXQgaXQgaWYgdGhlcmUgYXJlIGFueSBleHByZXNzaW9ucywgdG9vLiBJ bnZhbGlkCiAJCSAqIGluZGV4ZXMgYXJlIG91dCBhcyB3ZWxsLgogCQkgKi8KIAkJaWYgKGlu ZGV4U3RydWN0LT5pbmRua2V5YXR0cyA9PSBudW1hdHRycyAmJgotCQkJaW5kZXhTdHJ1Y3Qt PmluZGlzdW5pcXVlICYmCisJCQkod2l0aF9wZXJpb2QgPyBpbmRleFN0cnVjdC0+aW5kaXNl eGNsdXNpb24gOiBpbmRleFN0cnVjdC0+aW5kaXN1bmlxdWUpICYmCiAJCQlpbmRleFN0cnVj dC0+aW5kaXN2YWxpZCAmJgogCQkJaGVhcF9hdHRpc251bGwoaW5kZXhUdXBsZSwgQW51bV9w Z19pbmRleF9pbmRwcmVkLCBOVUxMKSAmJgogCQkJaGVhcF9hdHRpc251bGwoaW5kZXhUdXBs ZSwgQW51bV9wZ19pbmRleF9pbmRleHBycywgTlVMTCkpCkBAIC0xMjIyMyw2ICsxMjMyNSwx MyBAQCB0cmFuc2Zvcm1Ga2V5Q2hlY2tBdHRycyhSZWxhdGlvbiBwa3JlbCwKIAkJCQlpZiAo IWZvdW5kKQogCQkJCQlicmVhazsKIAkJCX0KKwkJCS8qIFRoZSBsYXN0IGF0dHJpYnV0ZSBp biB0aGUgaW5kZXggbXVzdCBiZSB0aGUgUEVSSU9EIEZLIHBhcnQgKi8KKwkJCWlmIChmb3Vu ZCAmJiB3aXRoX3BlcmlvZCkKKwkJCXsKKwkJCQlpbnQxNiBwZXJpb2RhdHRudW0gPSBhdHRu dW1zW251bWF0dHJzIC0gMV07CisKKwkJCQlmb3VuZCA9IChwZXJpb2RhdHRudW0gPT0gaW5k ZXhTdHJ1Y3QtPmluZGtleS52YWx1ZXNbbnVtYXR0cnMgLSAxXSk7CisJCQl9CiAKIAkJCS8q CiAJCQkgKiBSZWZ1c2UgdG8gdXNlIGEgZGVmZXJyYWJsZSB1bmlxdWUvcHJpbWFyeSBrZXku ICBUaGlzIGlzIHBlciBTUUwKQEAgLTEyMzMyLDcgKzEyNDQxLDggQEAgdmFsaWRhdGVGb3Jl aWduS2V5Q29uc3RyYWludChjaGFyICpjb25uYW1lLAogCQkJCQkJCSBSZWxhdGlvbiByZWws CiAJCQkJCQkJIFJlbGF0aW9uIHBrcmVsLAogCQkJCQkJCSBPaWQgcGtpbmRPaWQsCi0JCQkJ CQkJIE9pZCBjb25zdHJhaW50T2lkKQorCQkJCQkJCSBPaWQgY29uc3RyYWludE9pZCwKKwkJ CQkJCQkgYm9vbCBoYXNwZXJpb2QpCiB7CiAJVHVwbGVUYWJsZVNsb3QgKnNsb3Q7CiAJVGFi bGVTY2FuRGVzYyBzY2FuOwpAQCAtMTIzNjEsOCArMTI0NzEsMTAgQEAgdmFsaWRhdGVGb3Jl aWduS2V5Q29uc3RyYWludChjaGFyICpjb25uYW1lLAogCS8qCiAJICogU2VlIGlmIHdlIGNh biBkbyBpdCB3aXRoIGEgc2luZ2xlIExFRlQgSk9JTiBxdWVyeS4gIEEgZmFsc2UgcmVzdWx0 CiAJICogaW5kaWNhdGVzIHdlIG11c3QgcHJvY2VlZCB3aXRoIHRoZSBmaXJlLXRoZS10cmln Z2VyIG1ldGhvZC4KKwkgKiBXZSBjYW4ndCBkbyBhIExFRlQgSk9JTiBmb3IgdGVtcG9yYWwg RktzIHlldCwKKwkgKiBidXQgd2UgY2FuIG9uY2Ugd2Ugc3VwcG9ydCB0ZW1wb3JhbCBsZWZ0 IGpvaW5zLgogCSAqLwotCWlmIChSSV9Jbml0aWFsX0NoZWNrKCZ0cmlnLCByZWwsIHBrcmVs KSkKKwlpZiAoIWhhc3BlcmlvZCAmJiBSSV9Jbml0aWFsX0NoZWNrKCZ0cmlnLCByZWwsIHBr cmVsKSkKIAkJcmV0dXJuOwogCiAJLyoKQEAgLTEyNTEzLDYgKzEyNjI1LDE3IEBAIGNyZWF0 ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2VycyhSZWxhdGlvbiByZWwsIE9pZCByZWZSZWxPaWQs IENvbnN0cmFpbnQgKmZrY29uc3RyCiAJZmtfdHJpZ2dlci0+d2hlbkNsYXVzZSA9IE5VTEw7 CiAJZmtfdHJpZ2dlci0+dHJhbnNpdGlvblJlbHMgPSBOSUw7CiAJZmtfdHJpZ2dlci0+Y29u c3RycmVsID0gTlVMTDsKKworCS8qIEZvcmJpZCBzb21lIGFjdGlvbnMgd2l0aCBQRVJJT0Qg ZWxlbWVudHMgZm9yIG5vdzogKi8KKwlpZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3Blcmlv ZCAmJiAoCisJCWZrY29uc3RyYWludC0+ZmtfZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJ T05fQ0FTQ0FERSB8fAorCQlma2NvbnN0cmFpbnQtPmZrX2RlbF9hY3Rpb24gPT0gRktDT05T VFJfQUNUSU9OX1NFVE5VTEwgfHwKKwkJZmtjb25zdHJhaW50LT5ma19kZWxfYWN0aW9uID09 IEZLQ09OU1RSX0FDVElPTl9TRVRERUZBVUxUKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygi aW52YWxpZCAlcyBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVS SU9EIiwKKwkJCQkJCSJPTiBERUxFVEUiKSkpOworCiAJc3dpdGNoIChma2NvbnN0cmFpbnQt PmZrX2RlbF9hY3Rpb24pCiAJewogCQljYXNlIEZLQ09OU1RSX0FDVElPTl9OT0FDVElPTjoK QEAgLTEyNTczLDYgKzEyNjk2LDE3IEBAIGNyZWF0ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2Vy cyhSZWxhdGlvbiByZWwsIE9pZCByZWZSZWxPaWQsIENvbnN0cmFpbnQgKmZrY29uc3RyCiAJ ZmtfdHJpZ2dlci0+d2hlbkNsYXVzZSA9IE5VTEw7CiAJZmtfdHJpZ2dlci0+dHJhbnNpdGlv blJlbHMgPSBOSUw7CiAJZmtfdHJpZ2dlci0+Y29uc3RycmVsID0gTlVMTDsKKworCS8qIEZv cmJpZCBzb21lIGFjdGlvbnMgd2l0aCBQRVJJT0QgZWxlbWVudHMgZm9yIG5vdzogKi8KKwlp ZiAoZmtjb25zdHJhaW50LT5ma193aXRoX3BlcmlvZCAmJiAoCisJCWZrY29uc3RyYWludC0+ ZmtfdXBkX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERSB8fAorCQlma2NvbnN0 cmFpbnQtPmZrX3VwZF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX1NFVE5VTEwgfHwKKwkJ Zmtjb25zdHJhaW50LT5ma191cGRfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9TRVRERUZB VUxUKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygiaW52YWxpZCAlcyBhY3Rpb24gZm9yIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9EIiwKKwkJCQkJCSJPTiBVUERBVEUi KSkpOworCiAJc3dpdGNoIChma2NvbnN0cmFpbnQtPmZrX3VwZF9hY3Rpb24pCiAJewogCQlj YXNlIEZLQ09OU1RSX0FDVElPTl9OT0FDVElPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDM5YTgw MWExYzM4Li40N2VjNzFhOWFiMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01MjMsMTIgKzUyMywx MyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFt ZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCSBTZXRSZXNldENsYXVzZSBG dW5jdGlvblNldFJlc2V0Q2xhdXNlCiAKICV0eXBlIDxub2RlPglUYWJsZUVsZW1lbnQgVHlw ZWRUYWJsZUVsZW1lbnQgQ29uc3RyYWludEVsZW0gVGFibGVGdW5jRWxlbWVudAotJXR5cGUg PG5vZGU+CWNvbHVtbkRlZiBjb2x1bW5PcHRpb25zCisldHlwZSA8bm9kZT4JY29sdW1uRGVm IGNvbHVtbk9wdGlvbnMgb3B0aW9uYWxQZXJpb2ROYW1lCiAldHlwZSA8ZGVmZWx0PglkZWZf ZWxlbSByZWxvcHRpb25fZWxlbSBvbGRfYWdncl9lbGVtIG9wZXJhdG9yX2RlZl9lbGVtCiAl dHlwZSA8bm9kZT4JZGVmX2FyZyBjb2x1bW5FbGVtIHdoZXJlX2NsYXVzZSB3aGVyZV9vcl9j dXJyZW50X2NsYXVzZQogCQkJCWFfZXhwciBiX2V4cHIgY19leHByIEFleHByQ29uc3QgaW5k aXJlY3Rpb25fZWwgb3B0X3NsaWNlX2JvdW5kCiAJCQkJY29sdW1ucmVmIGluX2V4cHIgaGF2 aW5nX2NsYXVzZSBmdW5jX3RhYmxlIHhtbHRhYmxlIGFycmF5X2V4cHIKIAkJCQlPcHRXaGVy ZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnCisldHlwZSA8bGlzdD4Jb3B0X2NvbHVtbl9hbmRf cGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0Pglyb3dzZnJvbV9pdGVtIHJvd3Nmcm9tX2xpc3Qg b3B0X2NvbF9kZWZfbGlzdAogJXR5cGUgPGJvb2xlYW4+IG9wdF9vcmRpbmFsaXR5IG9wdF93 aXRob3V0X292ZXJsYXBzCiAldHlwZSA8bGlzdD4JRXhjbHVzaW9uQ29uc3RyYWludExpc3Qg RXhjbHVzaW9uQ29uc3RyYWludEVsZW0KQEAgLTc0Niw3ICs3NDcsNyBAQCBzdGF0aWMgTm9k ZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogCU9WRVIgT1ZFUkxBUFMgT1ZFUkxBWSBPVkVSUklESU5HIE9X TkVEIE9XTkVSCiAKIAlQQVJBTExFTCBQQVJBTUVURVIgUEFSU0VSIFBBUlRJQUwgUEFSVElU SU9OIFBBU1NJTkcgUEFTU1dPUkQKLQlQTEFDSU5HIFBMQU5TIFBPTElDWQorCVBFUklPRCBQ TEFDSU5HIFBMQU5TIFBPTElDWQogCVBPU0lUSU9OIFBSRUNFRElORyBQUkVDSVNJT04gUFJF U0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklNQVJZCiAJUFJJT1IgUFJJVklMRUdFUyBQUk9D RURVUkFMIFBST0NFRFVSRSBQUk9DRURVUkVTIFBST0dSQU0gUFVCTElDQVRJT04KIApAQCAt NDIyOCwyMSArNDIyOSwzMSBAQCBDb25zdHJhaW50RWxlbToKIAkJCQkJCQkJICAgTlVMTCwg eXlzY2FubmVyKTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgRk9SRUlH TiBLRVkgJygnIGNvbHVtbkxpc3QgJyknIFJFRkVSRU5DRVMgcXVhbGlmaWVkX25hbWUKLQkJ CQlvcHRfY29sdW1uX2xpc3Qga2V5X21hdGNoIGtleV9hY3Rpb25zIENvbnN0cmFpbnRBdHRy aWJ1dGVTcGVjCisJCQl8IEZPUkVJR04gS0VZICcoJyBjb2x1bW5MaXN0IG9wdGlvbmFsUGVy aW9kTmFtZSAnKScgUkVGRVJFTkNFUyBxdWFsaWZpZWRfbmFtZQorCQkJCW9wdF9jb2x1bW5f YW5kX3BlcmlvZF9saXN0IGtleV9tYXRjaCBrZXlfYWN0aW9ucyBDb25zdHJhaW50QXR0cmli dXRlU3BlYwogCQkJCXsKIAkJCQkJQ29uc3RyYWludCAqbiA9IG1ha2VOb2RlKENvbnN0cmFp bnQpOwogCiAJCQkJCW4tPmNvbnR5cGUgPSBDT05TVFJfRk9SRUlHTjsKIAkJCQkJbi0+bG9j YXRpb24gPSBAMTsKLQkJCQkJbi0+cGt0YWJsZSA9ICQ3OworCQkJCQluLT5wa3RhYmxlID0g JDg7CiAJCQkJCW4tPmZrX2F0dHJzID0gJDQ7Ci0JCQkJCW4tPnBrX2F0dHJzID0gJDg7Ci0J CQkJCW4tPmZrX21hdGNodHlwZSA9ICQ5OwotCQkJCQluLT5ma191cGRfYWN0aW9uID0gKCQx MCktPnVwZGF0ZUFjdGlvbi0+YWN0aW9uOwotCQkJCQluLT5ma19kZWxfYWN0aW9uID0gKCQx MCktPmRlbGV0ZUFjdGlvbi0+YWN0aW9uOwotCQkJCQluLT5ma19kZWxfc2V0X2NvbHMgPSAo JDEwKS0+ZGVsZXRlQWN0aW9uLT5jb2xzOwotCQkJCQlwcm9jZXNzQ0FTYml0cygkMTEsIEAx MSwgIkZPUkVJR04gS0VZIiwKKwkJCQkJaWYgKCQ1KQorCQkJCQl7CisJCQkJCQluLT5ma19h dHRycyA9IGxhcHBlbmQobi0+ZmtfYXR0cnMsICQ1KTsKKwkJCQkJCW4tPmZrX3dpdGhfcGVy aW9kID0gdHJ1ZTsKKwkJCQkJfQorCQkJCQluLT5wa19hdHRycyA9IGxpbml0aWFsKCQ5KTsK KwkJCQkJaWYgKGxzZWNvbmQoJDkpKQorCQkJCQl7CisJCQkJCQluLT5wa19hdHRycyA9IGxh cHBlbmQobi0+cGtfYXR0cnMsIGxzZWNvbmQoJDkpKTsKKwkJCQkJCW4tPnBrX3dpdGhfcGVy aW9kID0gdHJ1ZTsKKwkJCQkJfQorCQkJCQluLT5ma19tYXRjaHR5cGUgPSAkMTA7CisJCQkJ CW4tPmZrX3VwZF9hY3Rpb24gPSAoJDExKS0+dXBkYXRlQWN0aW9uLT5hY3Rpb247CisJCQkJ CW4tPmZrX2RlbF9hY3Rpb24gPSAoJDExKS0+ZGVsZXRlQWN0aW9uLT5hY3Rpb247CisJCQkJ CW4tPmZrX2RlbF9zZXRfY29scyA9ICgkMTEpLT5kZWxldGVBY3Rpb24tPmNvbHM7CisJCQkJ CXByb2Nlc3NDQVNiaXRzKCQxMiwgQDEyLCAiRk9SRUlHTiBLRVkiLAogCQkJCQkJCQkgICAm bi0+ZGVmZXJyYWJsZSwgJm4tPmluaXRkZWZlcnJlZCwKIAkJCQkJCQkJICAgJm4tPnNraXBf dmFsaWRhdGlvbiwgTlVMTCwKIAkJCQkJCQkJICAgeXlzY2FubmVyKTsKQEAgLTQyNzAsNiAr NDI4MSwxNiBAQCBjb2x1bW5MaXN0OgogCQkJfCBjb2x1bW5MaXN0ICcsJyBjb2x1bW5FbGVt CQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KIAkJOwogCitvcHRpb25hbFBlcmlvZE5h bWU6CisJCQknLCcgUEVSSU9EIGNvbHVtbkVsZW0geyAkJCA9ICQzOyB9CisJCQl8IC8qRU1Q VFkqLyAgICAgICAgICAgICAgIHsgJCQgPSBOVUxMOyB9CisJOworCitvcHRfY29sdW1uX2Fu ZF9wZXJpb2RfbGlzdDoKKwkJCScoJyBjb2x1bW5MaXN0IG9wdGlvbmFsUGVyaW9kTmFtZSAn KScJCQl7ICQkID0gbGlzdF9tYWtlMigkMiwgJDMpOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJ CQkJeyAkJCA9IGxpc3RfbWFrZTIoTklMLCBOVUxMKTsgfQorCQk7CisKIGNvbHVtbkVsZW06 IENvbElkCiAJCQkJewogCQkJCQkkJCA9IChOb2RlICopIG1ha2VTdHJpbmcoJDEpOwpAQCAt MTczNDIsNiArMTczNjMsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFBBUlRJVElP TgogCQkJfCBQQVNTSU5HCiAJCQl8IFBBU1NXT1JECisJCQl8IFBFUklPRAogCQkJfCBQTEFO UwogCQkJfCBQT0xJQ1kKIAkJCXwgUFJFQ0VESU5HCkBAIC0xNzk0NSw2ICsxNzk2Nyw3IEBA IGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgUEFSVElUSU9OCiAJCQl8IFBBU1NJTkcKIAkJ CXwgUEFTU1dPUkQKKwkJCXwgUEVSSU9ECiAJCQl8IFBMQUNJTkcKIAkJCXwgUExBTlMKIAkJ CXwgUE9MSUNZCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlfdHJpZ2dl cnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCmluZGV4IDJmZTkz Nzc1MDAzLi44MjRhNDFmM2JmMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3JpX3RyaWdnZXJzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJz LmMKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb25z dHJhaW50LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3Ivc3BpLmgiCkBAIC00NSw2ICs0Niw3IEBACiAjaW5jbHVkZSAidXRp bHMvaW52YWwuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1 dGlscy9tZW11dGlscy5oIgorI2luY2x1ZGUgInV0aWxzL3JhbmdldHlwZXMuaCIKICNpbmNs dWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9ybHMuaCIKICNpbmNsdWRlICJ1 dGlscy9ydWxldXRpbHMuaCIKQEAgLTk2LDYgKzk4LDkgQEAKICAqCiAgKiBJbmZvcm1hdGlv biBleHRyYWN0ZWQgZnJvbSBhbiBGSyBwZ19jb25zdHJhaW50IGVudHJ5LiAgVGhpcyBpcyBj YWNoZWQgaW4KICAqIHJpX2NvbnN0cmFpbnRfY2FjaGUuCisgKgorICogTm90ZSB0aGF0IHBm L3BwL2ZmX2VxX29wcnMgbWF5IGhvbGQgdGhlIG92ZXJsYXBzIG9wZXJhdG9yIGluc3RlYWQg b2YgZXF1YWxzCisgKiBmb3IgdGhlIFBFUklPRCBwYXJ0IG9mIGEgdGVtcG9yYWwgZm9yZWln biBrZXkuCiAgKi8KIHR5cGVkZWYgc3RydWN0IFJJX0NvbnN0cmFpbnRJbmZvCiB7CkBAIC0x MTUsMTIgKzEyMCwxNSBAQCB0eXBlZGVmIHN0cnVjdCBSSV9Db25zdHJhaW50SW5mbwogCWlu dDE2CQljb25mZGVsc2V0Y29sc1tSSV9NQVhfTlVNS0VZU107IC8qIGF0dG51bXMgb2YgY29s cyB0byBzZXQgb24KIAkJCQkJCQkJCQkJCSAqIGRlbGV0ZSAqLwogCWNoYXIJCWNvbmZtYXRj aHR5cGU7CS8qIGZvcmVpZ24ga2V5J3MgbWF0Y2ggdHlwZSAqLworCWJvb2wJCWhhc3Blcmlv ZDsJCS8qIGlmIHRoZSBmb3JlaWduIGtleSB1c2VzIFBFUklPRCAqLwogCWludAkJCW5rZXlz OwkJCS8qIG51bWJlciBvZiBrZXkgY29sdW1ucyAqLwogCWludDE2CQlwa19hdHRudW1zW1JJ X01BWF9OVU1LRVlTXTsgLyogYXR0bnVtcyBvZiByZWZlcmVuY2VkIGNvbHMgKi8KIAlpbnQx NgkJZmtfYXR0bnVtc1tSSV9NQVhfTlVNS0VZU107IC8qIGF0dG51bXMgb2YgcmVmZXJlbmNp bmcgY29scyAqLwogCU9pZAkJCXBmX2VxX29wcnNbUklfTUFYX05VTUtFWVNdOyAvKiBlcXVh bGl0eSBvcGVyYXRvcnMgKFBLID0gRkspICovCiAJT2lkCQkJcHBfZXFfb3Byc1tSSV9NQVhf TlVNS0VZU107IC8qIGVxdWFsaXR5IG9wZXJhdG9ycyAoUEsgPSBQSykgKi8KIAlPaWQJCQlm Zl9lcV9vcHJzW1JJX01BWF9OVU1LRVlTXTsgLyogZXF1YWxpdHkgb3BlcmF0b3JzIChGSyA9 IEZLKSAqLworCU9pZAkJCXBlcmlvZF9jb250YWluZWRfYnlfb3BlcjsJLyogYW55cmFuZ2Ug PEAgYW55cmFuZ2UgKi8KKwlPaWQJCQlhZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29wZXI7 CS8qIGFueXJhbmdlIDxAIGFueW11bHRpcmFuZ2UgKi8KIAlkbGlzdF9ub2RlCXZhbGlkX2xp bms7CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQgZW50cmllcyAqLwogfSBSSV9Db25zdHJh aW50SW5mbzsKIApAQCAtMzYyLDE0ICszNzAsNDEgQEAgUklfRktleV9jaGVjayhUcmlnZ2Vy RGF0YSAqdHJpZ2RhdGEpCiAJCSAqCQkgICBGT1IgS0VZIFNIQVJFIE9GIHgKIAkJICogVGhl IHR5cGUgaWQncyBmb3IgdGhlICQgcGFyYW1ldGVycyBhcmUgdGhvc2Ugb2YgdGhlCiAJCSAq IGNvcnJlc3BvbmRpbmcgRksgYXR0cmlidXRlcy4KKwkJICoKKwkJICogQnV0IGZvciB0ZW1w b3JhbCBGS3Mgd2UgbmVlZCB0byBtYWtlIHN1cmUKKwkJICogdGhlIEZLJ3MgcmFuZ2UgaXMg Y29tcGxldGVseSBjb3ZlcmVkLgorCQkgKiBTbyB3ZSB1c2UgdGhpcyBxdWVyeSBpbnN0ZWFk OgorCQkgKiAgU0VMRUNUIDEKKwkJICoJRlJPTQkoCisJCSAqCQlTRUxFQ1QgcGtwZXJpb2Rh dHQgQVMgcgorCQkgKgkJRlJPTSAgIFtPTkxZXSBwa3RhYmxlIHgKKwkJICoJCVdIRVJFICBw a2F0dDEgPSAkMSBbQU5EIC4uLl0KKwkJICoJCUFORCAgICBwa3BlcmlvZGF0dCAmJiAkbgor CQkgKgkJRk9SIEtFWSBTSEFSRSBPRiB4CisJCSAqCSkgeDEKKwkJICogIEhBVklORyAkbiA8 QCByYW5nZV9hZ2coeDEucikKKwkJICogTm90ZSBpZiBGT1IgS0VZIFNIQVJFIGV2ZXIgYWxs b3dzIEdST1VQIEJZIGFuZCBIQVZJTkcKKwkJICogd2UgY2FuIG1ha2UgdGhpcyBhIGJpdCBz aW1wbGVyLgogCQkgKiAtLS0tLS0tLS0tCiAJCSAqLwogCQlpbml0U3RyaW5nSW5mbygmcXVl cnlidWYpOwogCQlwa19vbmx5ID0gcGtfcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lO RF9QQVJUSVRJT05FRF9UQUJMRSA/CiAJCQkiIiA6ICJPTkxZICI7CiAJCXF1b3RlUmVsYXRp b25OYW1lKHBrcmVsbmFtZSwgcGtfcmVsKTsKLQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnli dWYsICJTRUxFQ1QgMSBGUk9NICVzJXMgeCIsCi0JCQkJCQkgcGtfb25seSwgcGtyZWxuYW1l KTsKKwkJaWYgKHJpaW5mby0+aGFzcGVyaW9kKQorCQl7CisJCQlxdW90ZU9uZU5hbWUoYXR0 bmFtZSwKKwkJCQkJUklBdHROYW1lKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5m by0+bmtleXMgLSAxXSkpOworCisJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwKKwkJ CQkJIlNFTEVDVCAxIEZST00gKFNFTEVDVCAlcyBBUyByIEZST00gJXMlcyB4IiwKKwkJCQkJ YXR0bmFtZSwgcGtfb25seSwgcGtyZWxuYW1lKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWFw cGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiU0VMRUNUIDEgRlJPTSAlcyVzIHgiLAorCQkJ CQkJCSBwa19vbmx5LCBwa3JlbG5hbWUpOworCQl9CiAJCXF1ZXJ5c2VwID0gIldIRVJFIjsK IAkJZm9yIChpbnQgaSA9IDA7IGkgPCByaWluZm8tPm5rZXlzOyBpKyspCiAJCXsKQEAgLTM4 Nyw2ICs0MjIsMTkgQEAgUklfRktleV9jaGVjayhUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEpCiAJ CQlxdWVyeW9pZHNbaV0gPSBma190eXBlOwogCQl9CiAJCWFwcGVuZFN0cmluZ0luZm9TdHJp bmcoJnF1ZXJ5YnVmLCAiIEZPUiBLRVkgU0hBUkUgT0YgeCIpOworCQlpZiAocmlpbmZvLT5o YXNwZXJpb2QpCisJCXsKKwkJCU9pZAkJZmtfdHlwZSA9IFJJQXR0VHlwZShma19yZWwsIHJp aW5mby0+ZmtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pOworCQkJT2lkCQlhZ2dfcmV0 dHlwZSA9IEFOWU1VTFRJUkFOR0VPSUQ7CisKKwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5 YnVmLCAiKSB4MSBIQVZJTkcgIik7CisJCQlzcHJpbnRmKHBhcmFtbmFtZSwgIiQlZCIsIHJp aW5mby0+bmtleXMpOworCQkJcmlfR2VuZXJhdGVRdWFsKCZxdWVyeWJ1ZiwgIiIsCisJCQkJ CQkJcGFyYW1uYW1lLCBma190eXBlLAorCQkJCQkJCXJpaW5mby0+YWdnZWRfcGVyaW9kX2Nv bnRhaW5lZF9ieV9vcGVyLAorCQkJCQkJCSJwZ19jYXRhbG9nLnJhbmdlX2FnZyIsIGFnZ19y ZXR0eXBlKTsKKwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiKHgxLnIpIik7CisJ CX0KIAogCQkvKiBQcmVwYXJlIGFuZCBzYXZlIHRoZSBwbGFuICovCiAJCXFwbGFuID0gcmlf UGxhbkNoZWNrKHF1ZXJ5YnVmLmRhdGEsIHJpaW5mby0+bmtleXMsIHF1ZXJ5b2lkcywKQEAg LTQ5NCwxNCArNTQyLDQwIEBAIHJpX0NoZWNrX1BrX01hdGNoKFJlbGF0aW9uIHBrX3JlbCwg UmVsYXRpb24gZmtfcmVsLAogCQkgKgkJICAgRk9SIEtFWSBTSEFSRSBPRiB4CiAJCSAqIFRo ZSB0eXBlIGlkJ3MgZm9yIHRoZSAkIHBhcmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQogCQkg KiBQSyBhdHRyaWJ1dGVzIHRoZW1zZWx2ZXMuCisJCSAqIEJ1dCBmb3IgdGVtcG9yYWwgRktz IHdlIG5lZWQgdG8gbWFrZSBzdXJlCisJCSAqIHRoZSBGSydzIHJhbmdlIGlzIGNvbXBsZXRl bHkgY292ZXJlZC4KKwkJICogU28gd2UgdXNlIHRoaXMgcXVlcnkgaW5zdGVhZDoKKwkJICog IFNFTEVDVCAxCisJCSAqICBGUk9NICAgICgKKwkJICoJICBTRUxFQ1QgcGtwZXJpb2RhdHQg QVMgcgorCQkgKgkgIEZST00gICBbT05MWV0gcGt0YWJsZSB4CisJCSAqCSAgV0hFUkUgIHBr YXR0MSA9ICQxIFtBTkQgLi4uXQorCQkgKgkgIEFORCAgICBwa3BlcmlvZGF0dCAmJiAkbgor CQkgKgkgIEZPUiBLRVkgU0hBUkUgT0YgeAorCQkgKiAgKSB4MQorCQkgKiAgSEFWSU5HICRu IDxAIHJhbmdlX2FnZyh4MS5yKQorCQkgKiBOb3RlIGlmIEZPUiBLRVkgU0hBUkUgZXZlciBh bGxvd3MgR1JPVVAgQlkgYW5kIEhBVklORworCQkgKiB3ZSBjYW4gbWFrZSB0aGlzIGEgYml0 IHNpbXBsZXIuCiAJCSAqIC0tLS0tLS0tLS0KIAkJICovCiAJCWluaXRTdHJpbmdJbmZvKCZx dWVyeWJ1Zik7CiAJCXBrX29ubHkgPSBwa19yZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxL SU5EX1BBUlRJVElPTkVEX1RBQkxFID8KIAkJCSIiIDogIk9OTFkgIjsKIAkJcXVvdGVSZWxh dGlvbk5hbWUocGtyZWxuYW1lLCBwa19yZWwpOwotCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVy eWJ1ZiwgIlNFTEVDVCAxIEZST00gJXMlcyB4IiwKLQkJCQkJCSBwa19vbmx5LCBwa3JlbG5h bWUpOworCQlpZiAocmlpbmZvLT5oYXNwZXJpb2QpCisJCXsKKwkJCXF1b3RlT25lTmFtZShh dHRuYW1lLCBSSUF0dE5hbWUocGtfcmVsLCByaWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5u a2V5cyAtIDFdKSk7CisKKwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLAorCQkJCQki U0VMRUNUIDEgRlJPTSAoU0VMRUNUICVzIEFTIHIgRlJPTSAlcyVzIHgiLAorCQkJCQlhdHRu YW1lLCBwa19vbmx5LCBwa3JlbG5hbWUpOworCQl9CisJCWVsc2UKKwkJeworCQkJYXBwZW5k U3RyaW5nSW5mbygmcXVlcnlidWYsICJTRUxFQ1QgMSBGUk9NICVzJXMgeCIsCisJCQkJCXBr X29ubHksIHBrcmVsbmFtZSk7CisJCX0KKwogCQlxdWVyeXNlcCA9ICJXSEVSRSI7CiAJCWZv ciAoaW50IGkgPSAwOyBpIDwgcmlpbmZvLT5ua2V5czsgaSsrKQogCQl7CkBAIC01MTgsNiAr NTkyLDE5IEBAIHJpX0NoZWNrX1BrX01hdGNoKFJlbGF0aW9uIHBrX3JlbCwgUmVsYXRpb24g ZmtfcmVsLAogCQkJcXVlcnlvaWRzW2ldID0gcGtfdHlwZTsKIAkJfQogCQlhcHBlbmRTdHJp bmdJbmZvU3RyaW5nKCZxdWVyeWJ1ZiwgIiBGT1IgS0VZIFNIQVJFIE9GIHgiKTsKKwkJaWYg KHJpaW5mby0+aGFzcGVyaW9kKQorCQl7CisJCQlPaWQJCWZrX3R5cGUgPSBSSUF0dFR5cGUo ZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdKTsKKwkJCU9p ZAkJYWdnX3JldHR5cGUgPSBBTllNVUxUSVJBTkdFT0lEOworCisJCQlhcHBlbmRTdHJpbmdJ bmZvKCZxdWVyeWJ1ZiwgIikgeDEgSEFWSU5HICIpOworCQkJc3ByaW50ZihwYXJhbW5hbWUs ICIkJWQiLCByaWluZm8tPm5rZXlzKTsKKwkJCXJpX0dlbmVyYXRlUXVhbCgmcXVlcnlidWYs ICIiLAorCQkJCQkJCXBhcmFtbmFtZSwgZmtfdHlwZSwKKwkJCQkJCQlyaWluZm8tPmFnZ2Vk X3BlcmlvZF9jb250YWluZWRfYnlfb3BlciwKKwkJCQkJCQkicGdfY2F0YWxvZy5yYW5nZV9h Z2ciLCBhZ2dfcmV0dHlwZSk7CisJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIih4 MS5yKSIpOworCQl9CiAKIAkJLyogUHJlcGFyZSBhbmQgc2F2ZSB0aGUgcGxhbiAqLwogCQlx cGxhbiA9IHJpX1BsYW5DaGVjayhxdWVyeWJ1Zi5kYXRhLCByaWluZm8tPm5rZXlzLCBxdWVy eW9pZHMsCkBAIC0xMjEwLDcgKzEyOTcsNiBAQCByaV9zZXQoVHJpZ2dlckRhdGEgKnRyaWdk YXRhLCBib29sIGlzX3NldF9udWxsLCBpbnQgdGdraW5kKQogCX0KIH0KIAotCiAvKgogICog UklfRktleV9wa191cGRfY2hlY2tfcmVxdWlyZWQgLQogICoKQEAgLTIxNjgsNiArMjI1NCw3 IEBAIHJpX0xvYWRDb25zdHJhaW50SW5mbyhPaWQgY29uc3RyYWludE9pZCkKIAlyaWluZm8t PmNvbmZ1cGR0eXBlID0gY29uRm9ybS0+Y29uZnVwZHR5cGU7CiAJcmlpbmZvLT5jb25mZGVs dHlwZSA9IGNvbkZvcm0tPmNvbmZkZWx0eXBlOwogCXJpaW5mby0+Y29uZm1hdGNodHlwZSA9 IGNvbkZvcm0tPmNvbmZtYXRjaHR5cGU7CisJcmlpbmZvLT5oYXNwZXJpb2QgPSBjb25Gb3Jt LT5jb25wZXJpb2Q7CiAKIAlEZWNvbnN0cnVjdEZrQ29uc3RyYWludFJvdyh0dXAsCiAJCQkJ CQkJICAgJnJpaW5mby0+bmtleXMsCkBAIC0yMTc5LDYgKzIyNjYsMjAgQEAgcmlfTG9hZENv bnN0cmFpbnRJbmZvKE9pZCBjb25zdHJhaW50T2lkKQogCQkJCQkJCSAgICZyaWluZm8tPm5k ZWxzZXRjb2xzLAogCQkJCQkJCSAgIHJpaW5mby0+Y29uZmRlbHNldGNvbHMpOwogCisJLyoK KwkgKiBGb3IgdGVtcG9yYWwgRktzLCBnZXQgdGhlIG9wZXJhdG9ycyBhbmQgZnVuY3Rpb25z IHdlIG5lZWQuCisJICogV2UgYXNrIHRoZSBvcGNsYXNzIG9mIHRoZSBQSyBlbGVtZW50IGZv ciB0aGVzZS4KKwkgKiBUaGlzIGFsbCBnZXRzIGNhY2hlZCAoYXMgZG9lcyB0aGUgZ2VuZXJh dGVkIHBsYW4pLAorCSAqIHNvIHRoZXJlJ3Mgbm8gcGVyZm9ybWFuY2UgaXNzdWUuCisJICov CisJaWYgKHJpaW5mby0+aGFzcGVyaW9kKQorCXsKKwkJT2lkCW9wY2xhc3MgPSBnZXRfaW5k ZXhfY29sdW1uX29wY2xhc3MoY29uRm9ybS0+Y29uaW5kaWQsIHJpaW5mby0+bmtleXMpOwor CQlGaW5kRktQZXJpb2RPcGVycyhvcGNsYXNzLAorCQkJCQkJICAmcmlpbmZvLT5wZXJpb2Rf Y29udGFpbmVkX2J5X29wZXIsCisJCQkJCQkgICZyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250 YWluZWRfYnlfb3Blcik7CisJfQorCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiAKIAkvKgpA QCAtMjc5MCw3ICsyODkxLDEwIEBAIHJpX0hhc2hQcmVwYXJlZFBsYW4oUklfUXVlcnlLZXkg KmtleSwgU1BJUGxhblB0ciBwbGFuKQogLyoKICAqIHJpX0tleXNFcXVhbCAtCiAgKgotICog Q2hlY2sgaWYgYWxsIGtleSB2YWx1ZXMgaW4gT0xEIGFuZCBORVcgYXJlIGVxdWFsLgorICog Q2hlY2sgaWYgYWxsIGtleSB2YWx1ZXMgaW4gT0xEIGFuZCBORVcgYXJlICJlcXVpdmFsZW50 IjoKKyAqIEZvciBub3JtYWwgRktzIHdlIGNoZWNrIGZvciBlcXVhbGl0eS4KKyAqIEZvciB0 ZW1wb3JhbCBGS3Mgd2UgY2hlY2sgdGhhdCB0aGUgUEsgc2lkZSBpcyBhIHN1cGVyc2V0IG9m IGl0cyBvbGQgdmFsdWUsCisgKiBvciB0aGUgRksgc2lkZSBpcyBhIHN1YnNldCBvZiBpdHMg b2xkIHZhbHVlLgogICoKICAqIE5vdGU6IGF0IHNvbWUgcG9pbnQgd2UgbWlnaHQgd2lzaCB0 byByZWRlZmluZSB0aGlzIGFzIGNoZWNraW5nIGZvcgogICogIklTIE5PVCBESVNUSU5DVCIg cmF0aGVyIHRoYW4gIj0iLCB0aGF0IGlzLCBhbGxvdyB0d28gbnVsbHMgdG8gYmUKQEAgLTI4 NDYsMTMgKzI5NTAsMjMgQEAgcmlfS2V5c0VxdWFsKFJlbGF0aW9uIHJlbCwgVHVwbGVUYWJs ZVNsb3QgKm9sZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAogCQl9CiAJCWVsc2UK IAkJeworCQkJT2lkIGVxX29wciA9IHJpaW5mby0+ZmZfZXFfb3Byc1tpXTsKKworCQkJLyoK KwkJCSAqIFdoZW4gY29tcGFyaW5nIHRoZSBQRVJJT0QgY29sdW1ucyB3ZSBjYW4gc2tpcCB0 aGUgY2hlY2sKKwkJCSAqIHdoZW5ldmVyIHRoZSByZWZlcmVuY2luZyBjb2x1bW4gc3RheWVk IGVxdWFsIG9yIHNocmFuaywKKwkJCSAqIHNvIHRlc3Qgd2l0aCB0aGUgY29udGFpbmVkLWJ5 IG9wZXJhdG9yIGluc3RlYWQuCisJCQkgKi8KKwkJCWlmIChyaWluZm8tPmhhc3BlcmlvZCAm JiBpID09IHJpaW5mby0+bmtleXMgLSAxKQorCQkJCWVxX29wciA9IHJpaW5mby0+cGVyaW9k X2NvbnRhaW5lZF9ieV9vcGVyOworCiAJCQkvKgogCQkJICogRm9yIHRoZSBGSyB0YWJsZSwg Y29tcGFyZSB3aXRoIHRoZSBhcHByb3ByaWF0ZSBlcXVhbGl0eQogCQkJICogb3BlcmF0b3Iu ICBDaGFuZ2VzIHRoYXQgY29tcGFyZSBlcXVhbCB3aWxsIHN0aWxsIHNhdGlzZnkgdGhlCiAJ CQkgKiBjb25zdHJhaW50IGFmdGVyIHRoZSB1cGRhdGUuCiAJCQkgKi8KLQkJCWlmICghcmlf QXR0cmlidXRlc0VxdWFsKHJpaW5mby0+ZmZfZXFfb3Byc1tpXSwgUklBdHRUeXBlKHJlbCwg YXR0bnVtc1tpXSksCi0JCQkJCQkJCQlvbGR2YWx1ZSwgbmV3dmFsdWUpKQorCQkJaWYgKCFy aV9BdHRyaWJ1dGVzRXF1YWwoZXFfb3ByLCBSSUF0dFR5cGUocmVsLCBhdHRudW1zW2ldKSwK KwkJCQkJCQkJCW5ld3ZhbHVlLCBvbGR2YWx1ZSkpCiAJCQkJcmV0dXJuIGZhbHNlOwogCQl9 CiAJfQpAQCAtMjg2MCw3ICsyOTc0LDYgQEAgcmlfS2V5c0VxdWFsKFJlbGF0aW9uIHJlbCwg VHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAogCXJl dHVybiB0cnVlOwogfQogCi0KIC8qCiAgKiByaV9BdHRyaWJ1dGVzRXF1YWwgLQogICoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCAwN2I0NTQ0MThkNy4uMzhjODA5NGU1 MGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTMzOCw3ICszMzgsNyBA QCBzdGF0aWMgY2hhciAqcGdfZ2V0X3ZpZXdkZWZfd29ya2VyKE9pZCB2aWV3b2lkLAogCQkJ CQkJCQkgICBpbnQgcHJldHR5RmxhZ3MsIGludCB3cmFwQ29sdW1uKTsKIHN0YXRpYyBjaGFy ICpwZ19nZXRfdHJpZ2dlcmRlZl93b3JrZXIoT2lkIHRyaWdpZCwgYm9vbCBwcmV0dHkpOwog c3RhdGljIGludAlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KERhdHVtIGNvbHVtbl9p bmRleF9hcnJheSwgT2lkIHJlbElkLAotCQkJCQkJCQkJCSBTdHJpbmdJbmZvIGJ1Zik7CisJ CQkJCQkJCQkJIGJvb2wgd2l0aFBlcmlvZCwgU3RyaW5nSW5mbyBidWYpOwogc3RhdGljIGNo YXIgKnBnX2dldF9ydWxlZGVmX3dvcmtlcihPaWQgcnVsZW9pZCwgaW50IHByZXR0eUZsYWdz KTsKIHN0YXRpYyBjaGFyICpwZ19nZXRfaW5kZXhkZWZfd29ya2VyKE9pZCBpbmRleHJlbGlk LCBpbnQgY29sbm8sCiAJCQkJCQkJCQljb25zdCBPaWQgKmV4Y2x1ZGVPcHMsCkBAIC0yMjQ5 LDcgKzIyNDksOSBAQCBwZ19nZXRfY29uc3RyYWludGRlZl93b3JrZXIoT2lkIGNvbnN0cmFp bnRJZCwgYm9vbCBmdWxsQ29tbWFuZCwKIAkJCQl2YWwgPSBTeXNDYWNoZUdldEF0dHJOb3RO dWxsKENPTlNUUk9JRCwgdHVwLAogCQkJCQkJCQkJCQkgQW51bV9wZ19jb25zdHJhaW50X2Nv bmtleSk7CiAKLQkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KHZhbCwgY29uRm9y bS0+Y29ucmVsaWQsICZidWYpOworCQkJCS8qIElmIGl0IGlzIGEgdGVtcG9yYWwgZm9yZWln biBrZXkgdGhlbiBpdCB1c2VzIFBFUklPRC4gKi8KKwkJCQlkZWNvbXBpbGVfY29sdW1uX2lu ZGV4X2FycmF5KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQsCisJCQkJCQkJCQkJCSBjb25Gb3Jt LT5jb25wZXJpb2QsICZidWYpOwogCiAJCQkJLyogYWRkIGZvcmVpZ24gcmVsYXRpb24gbmFt ZSAqLwogCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZiwgIikgUkVGRVJFTkNFUyAlcygiLApA QCAtMjI2MCw3ICsyMjYyLDggQEAgcGdfZ2V0X2NvbnN0cmFpbnRkZWZfd29ya2VyKE9pZCBj b25zdHJhaW50SWQsIGJvb2wgZnVsbENvbW1hbmQsCiAJCQkJdmFsID0gU3lzQ2FjaGVHZXRB dHRyTm90TnVsbChDT05TVFJPSUQsIHR1cCwKIAkJCQkJCQkJCQkJIEFudW1fcGdfY29uc3Ry YWludF9jb25ma2V5KTsKIAotCQkJCWRlY29tcGlsZV9jb2x1bW5faW5kZXhfYXJyYXkodmFs LCBjb25Gb3JtLT5jb25mcmVsaWQsICZidWYpOworCQkJCWRlY29tcGlsZV9jb2x1bW5faW5k ZXhfYXJyYXkodmFsLCBjb25Gb3JtLT5jb25mcmVsaWQsCisJCQkJCQkJCQkJCSBjb25Gb3Jt LT5jb25wZXJpb2QsICZidWYpOwogCiAJCQkJYXBwZW5kU3RyaW5nSW5mb0NoYXIoJmJ1Ziwg JyknKTsKIApAQCAtMjM0Niw3ICsyMzQ5LDcgQEAgcGdfZ2V0X2NvbnN0cmFpbnRkZWZfd29y a2VyKE9pZCBjb25zdHJhaW50SWQsIGJvb2wgZnVsbENvbW1hbmQsCiAJCQkJaWYgKCFpc251 bGwpCiAJCQkJewogCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsICIgKCIpOwot CQkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KHZhbCwgY29uRm9ybS0+Y29ucmVs aWQsICZidWYpOworCQkJCQlkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KHZhbCwgY29u Rm9ybS0+Y29ucmVsaWQsIGZhbHNlLCAmYnVmKTsKIAkJCQkJYXBwZW5kU3RyaW5nSW5mb0No YXIoJmJ1ZiwgJyknKTsKIAkJCQl9CiAKQEAgLTIzODEsNyArMjM4NCw3IEBAIHBnX2dldF9j b25zdHJhaW50ZGVmX3dvcmtlcihPaWQgY29uc3RyYWludElkLCBib29sIGZ1bGxDb21tYW5k LAogCQkJCXZhbCA9IFN5c0NhY2hlR2V0QXR0ck5vdE51bGwoQ09OU1RST0lELCB0dXAsCiAJ CQkJCQkJCQkJCSBBbnVtX3BnX2NvbnN0cmFpbnRfY29ua2V5KTsKIAotCQkJCWtleWF0dHMg PSBkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KHZhbCwgY29uRm9ybS0+Y29ucmVsaWQs ICZidWYpOworCQkJCWtleWF0dHMgPSBkZWNvbXBpbGVfY29sdW1uX2luZGV4X2FycmF5KHZh bCwgY29uRm9ybS0+Y29ucmVsaWQsIGZhbHNlLCAmYnVmKTsKIAkJCQlpZiAoY29uRm9ybS0+ Y29ucGVyaW9kKQogCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWYsICIgV0lUSE9V VCBPVkVSTEFQUyIpOwogCkBAIC0yNTg3LDcgKzI1OTAsNyBAQCBwZ19nZXRfY29uc3RyYWlu dGRlZl93b3JrZXIoT2lkIGNvbnN0cmFpbnRJZCwgYm9vbCBmdWxsQ29tbWFuZCwKICAqLwog c3RhdGljIGludAogZGVjb21waWxlX2NvbHVtbl9pbmRleF9hcnJheShEYXR1bSBjb2x1bW5f aW5kZXhfYXJyYXksIE9pZCByZWxJZCwKLQkJCQkJCQkgU3RyaW5nSW5mbyBidWYpCisJCQkJ CQkJIGJvb2wgd2l0aFBlcmlvZCwgU3RyaW5nSW5mbyBidWYpCiB7CiAJRGF0dW0JICAgKmtl eXM7CiAJaW50CQkJbktleXM7CkBAIC0yNjA2LDcgKzI2MDksOSBAQCBkZWNvbXBpbGVfY29s dW1uX2luZGV4X2FycmF5KERhdHVtIGNvbHVtbl9pbmRleF9hcnJheSwgT2lkIHJlbElkLAog CQlpZiAoaiA9PSAwKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsIHF1b3RlX2lk ZW50aWZpZXIoY29sTmFtZSkpOwogCQllbHNlCi0JCQlhcHBlbmRTdHJpbmdJbmZvKGJ1Ziwg IiwgJXMiLCBxdW90ZV9pZGVudGlmaWVyKGNvbE5hbWUpKTsKKwkJCWFwcGVuZFN0cmluZ0lu Zm8oYnVmLCAiLCAlcyVzIiwKKwkJCQkJCQkgKHdpdGhQZXJpb2QgJiYgaiA9PSBuS2V5cyAt IDEpID8gIlBFUklPRCAiIDogIiIsCisJCQkJCQkJIHF1b3RlX2lkZW50aWZpZXIoY29sTmFt ZSkpOwogCX0KIAogCXJldHVybiBuS2V5czsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfY29uc3RyYWludC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJh aW50LmgKaW5kZXggYmU0MDg2NzhjMjIuLjk0ZDMxMjBjZmFmIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX2NvbnN0cmFpbnQuaApAQCAtMTA4LDggKzEwOCw4IEBAIENBVEFMT0cocGdfY29u c3RyYWludCwyNjA2LENvbnN0cmFpbnRSZWxhdGlvbklkKQogCWJvb2wJCWNvbm5vaW5oZXJp dDsKIAogCS8qCi0JICogRm9yIHByaW1hcnkga2V5cyBhbmQgdW5pcXVlIGNvbnN0cmFpbnRz LCBzaWduaWZpZXMgdGhlIGxhc3QgY29sdW1uIHVzZXMKLQkgKiBvdmVybGFwcyBpbnN0ZWFk IG9mIGVxdWFscy4KKwkgKiBGb3IgcHJpbWFyeSBrZXlzLCB1bmlxdWUgY29uc3RyYWludHMs IGFuZCBmb3JlaWduIGtleXMsCisJICogc2lnbmlmaWVzIHRoZSBsYXN0IGNvbHVtbiB1c2Vz IG92ZXJsYXBzIGluc3RlYWQgb2YgZXF1YWxzLgogCSAqLwogCWJvb2wJCWNvbnBlcmlvZDsK IApAQCAtMTI3LDIwICsxMjcsMjAgQEAgQ0FUQUxPRyhwZ19jb25zdHJhaW50LDI2MDYsQ29u c3RyYWludFJlbGF0aW9uSWQpCiAJaW50MTYJCWNvbmZrZXlbMV07CiAKIAkvKgotCSAqIElm IGEgZm9yZWlnbiBrZXksIHRoZSBPSURzIG9mIHRoZSBQSyA9IEZLIGVxdWFsaXR5IG9wZXJh dG9ycyBmb3IgZWFjaAotCSAqIGNvbHVtbiBvZiB0aGUgY29uc3RyYWludAorCSAqIElmIGEg Zm9yZWlnbiBrZXksIHRoZSBPSURzIG9mIHRoZSBQSyA9IEZLIGVxdWFsaXR5L292ZXJsYXAg b3BlcmF0b3JzIGZvcgorCSAqIGVhY2ggY29sdW1uIG9mIHRoZSBjb25zdHJhaW50CiAJICov CiAJT2lkCQkJY29ucGZlcW9wWzFdIEJLSV9MT09LVVAocGdfb3BlcmF0b3IpOwogCiAJLyoK LQkgKiBJZiBhIGZvcmVpZ24ga2V5LCB0aGUgT0lEcyBvZiB0aGUgUEsgPSBQSyBlcXVhbGl0 eSBvcGVyYXRvcnMgZm9yIGVhY2gKLQkgKiBjb2x1bW4gb2YgdGhlIGNvbnN0cmFpbnQgKGku ZS4sIGVxdWFsaXR5IGZvciB0aGUgcmVmZXJlbmNlZCBjb2x1bW5zKQorCSAqIElmIGEgZm9y ZWlnbiBrZXksIHRoZSBPSURzIG9mIHRoZSBQSyA9IFBLIGVxdWFsaXR5L292ZXJsYXAgb3Bl cmF0b3JzIGZvcgorCSAqIGVhY2ggY29sdW1uIG9mIHRoZSBjb25zdHJhaW50IChpLmUuLCBl cXVhbGl0eSBmb3IgdGhlIHJlZmVyZW5jZWQgY29sdW1ucykKIAkgKi8KIAlPaWQJCQljb25w cGVxb3BbMV0gQktJX0xPT0tVUChwZ19vcGVyYXRvcik7CiAKIAkvKgotCSAqIElmIGEgZm9y ZWlnbiBrZXksIHRoZSBPSURzIG9mIHRoZSBGSyA9IEZLIGVxdWFsaXR5IG9wZXJhdG9ycyBm b3IgZWFjaAotCSAqIGNvbHVtbiBvZiB0aGUgY29uc3RyYWludCAoaS5lLiwgZXF1YWxpdHkg Zm9yIHRoZSByZWZlcmVuY2luZyBjb2x1bW5zKQorCSAqIElmIGEgZm9yZWlnbiBrZXksIHRo ZSBPSURzIG9mIHRoZSBGSyA9IEZLIGVxdWFsaXR5L292ZXJsYXAgb3BlcmF0b3JzIGZvcgor CSAqIGVhY2ggY29sdW1uIG9mIHRoZSBjb25zdHJhaW50IChpLmUuLCBlcXVhbGl0eSBmb3Ig dGhlIHJlZmVyZW5jaW5nIGNvbHVtbnMpCiAJICovCiAJT2lkCQkJY29uZmZlcW9wWzFdIEJL SV9MT09LVVAocGdfb3BlcmF0b3IpOwogCkBAIC0yODQsNiArMjg0LDkgQEAgZXh0ZXJuIHZv aWQgRGVjb25zdHJ1Y3RGa0NvbnN0cmFpbnRSb3coSGVhcFR1cGxlIHR1cGxlLCBpbnQgKm51 bWZrcywKIAkJCQkJCQkJCSAgIEF0dHJOdW1iZXIgKmNvbmtleSwgQXR0ck51bWJlciAqY29u ZmtleSwKIAkJCQkJCQkJCSAgIE9pZCAqcGZfZXFfb3BycywgT2lkICpwcF9lcV9vcHJzLCBP aWQgKmZmX2VxX29wcnMsCiAJCQkJCQkJCQkgICBpbnQgKm51bV9ma19kZWxfc2V0X2NvbHMs IEF0dHJOdW1iZXIgKmZrX2RlbF9zZXRfY29scyk7CitleHRlcm4gdm9pZCBGaW5kRktQZXJp b2RPcGVycyhPaWQgb3BjbGFzcywKKwkJCQkJCQkgIE9pZCAqY29udGFpbmVkYnlvcGVyb2lk LAorCQkJCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCk7CiAKIGV4dGVybiBi b29sIGNoZWNrX2Z1bmN0aW9uYWxfZ3JvdXBpbmcoT2lkIHJlbGlkLAogCQkJCQkJCQkJICBJ bmRleCB2YXJubywgSW5kZXggdmFybGV2ZWxzdXAsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy9kZWZyZW0uaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2RlZnJlbS5oCmlu ZGV4IDBjNTNkNjdkM2VlLi41ZmQwOTVlYTE3NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvZGVmcmVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmgK QEAgLTUwLDcgKzUwLDcgQEAgZXh0ZXJuIGJvb2wgQ2hlY2tJbmRleENvbXBhdGlibGUoT2lk IG9sZElkLAogZXh0ZXJuIE9pZAlHZXREZWZhdWx0T3BDbGFzcyhPaWQgdHlwZV9pZCwgT2lk IGFtX2lkKTsKIGV4dGVybiBPaWQJUmVzb2x2ZU9wQ2xhc3MoY29uc3QgTGlzdCAqb3BjbGFz cywgT2lkIGF0dHJUeXBlLAogCQkJCQkJICAgY29uc3QgY2hhciAqYWNjZXNzTWV0aG9kTmFt ZSwgT2lkIGFjY2Vzc01ldGhvZElkKTsKLWV4dGVybiB2b2lkIEdldE9wZXJhdG9yRnJvbVdl bGxLbm93blN0cmF0ZWd5KE9pZCBvcGNsYXNzLCBPaWQgYXR0dHlwZSwKK2V4dGVybiB2b2lk IEdldE9wZXJhdG9yRnJvbVdlbGxLbm93blN0cmF0ZWd5KE9pZCBvcGNsYXNzLCBPaWQgcmhz dHlwZSwKIAkJCQkJCQkJCQkJIE9pZCAqb3BpZCwgU3RyYXRlZ3lOdW1iZXIgKnN0cmF0KTsK IAogLyogY29tbWFuZHMvZnVuY3Rpb25jbWRzLmMgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aAppbmRleCAxZTJlODk4ODUxZi4uZDQzYzA4MTdmYmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKQEAgLTI2MTQsNiArMjYxNCw4IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0cmFpbnQK IAlSYW5nZVZhciAgICpwa3RhYmxlOwkJLyogUHJpbWFyeSBrZXkgdGFibGUgKi8KIAlMaXN0 CSAgICpma19hdHRyczsJCS8qIEF0dHJpYnV0ZXMgb2YgZm9yZWlnbiBrZXkgKi8KIAlMaXN0 CSAgICpwa19hdHRyczsJCS8qIENvcnJlc3BvbmRpbmcgYXR0cnMgaW4gUEsgdGFibGUgKi8K Kwlib29sCQlma193aXRoX3BlcmlvZDsJLyogTGFzdCBhdHRyaWJ1dGUgb2YgRksgdXNlcyBQ RVJJT0QgKi8KKwlib29sCQlwa193aXRoX3BlcmlvZDsJLyogTGFzdCBhdHRyaWJ1dGUgb2Yg UEsgdXNlcyBQRVJJT0QgKi8KIAljaGFyCQlma19tYXRjaHR5cGU7CS8qIEZVTEwsIFBBUlRJ QUwsIFNJTVBMRSAqLwogCWNoYXIJCWZrX3VwZF9hY3Rpb247CS8qIE9OIFVQREFURSBhY3Rp b24gKi8KIAljaGFyCQlma19kZWxfYWN0aW9uOwkvKiBPTiBERUxFVEUgYWN0aW9uICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKaW5kZXggMDk5MzUzNDY5YjUuLmQ0NWIwYjM4ODQyIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCkBAIC0zMjcsNiArMzI3LDcgQEAgUEdfS0VZV09SRCgicGFydGlhbCIs IFBBUlRJQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InBhcnRpdGlvbiIsIFBBUlRJVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVM KQogUEdfS0VZV09SRCgicGFzc2luZyIsIFBBU1NJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwg QkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhc3N3b3JkIiwgUEFTU1dPUkQsIFVOUkVTRVJW RURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoInBlcmlvZCIsIFBFUklPRCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxhY2luZyIs IFBMQUNJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJw bGFucyIsIFBMQU5TLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJwb2xpY3kiLCBQT0xJQ1ksIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFw cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0 CmluZGV4IDlmYjIwMzk1YTZhLi4wNWYwY2Q1YTU5NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CkBAIC05OSwyMSArOTksNiBA QCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9y bmczIERST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ybmczX3BrOwogRFJPUCBUQUJMRSB0ZW1w b3JhbF9ybmczOwogRFJPUCBUWVBFIHRleHRyYW5nZTI7Ci0tLSBQSyB3aXRoIGEgbXVsdGly YW5nZToKLUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgKAotICBpZCBpbnQ0cmFuZ2Us Ci0gIHZhbGlkX2F0IHRzbXVsdGlyYW5nZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQotKTsK LVxkIHRlbXBvcmFsX21sdHJuZwotICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBv cmFsX21sdHJuZyIKLSAgQ29sdW1uICB8ICAgICBUeXBlICAgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgRGVmYXVsdCAKLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KLSBpZCAgICAgICB8IGludDRyYW5nZSAgICB8ICAg ICAgICAgICB8IG5vdCBudWxsIHwgCi0gdmFsaWRfYXQgfCB0c211bHRpcmFuZ2UgfCAgICAg ICAgICAgfCBub3QgbnVsbCB8IAotSW5kZXhlczoKLSAgICAidGVtcG9yYWxfbWx0cm5nX3Br IiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCi0KIC0tIFVO SVFVRSB3aXRoIG5vIGNvbHVtbnMganVzdCBXSVRIT1VUIE9WRVJMQVBTOgogQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX3JuZzMgKAogCXZhbGlkX2F0IGRhdGVyYW5nZSwKQEAgLTM5NCw0ICsz NzksNjMzIEBAIFNFTEVDVCAqIEZST00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKICgx IHJvdykKIAogRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKKy0tCistLSB0ZXN0 IEZLIGRlcGVuZGVuY2llcworLS0KKy0tIGNhbid0IGRyb3AgYSByYW5nZSByZWZlcmVuY2Vk IGJ5IGFuIEZLLCB1bmxlc3Mgd2l0aCBDQVNDQURFCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwz ICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCUNPTlNUUkFJTlQg dGVtcG9yYWwzX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJu Z19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVS RU5DRVMgdGVtcG9yYWwzIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsMyBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0VSUk9SOiAgY2Fubm90IGRyb3Ag Y29sdW1uIHZhbGlkX2F0IG9mIHRhYmxlIHRlbXBvcmFsMyBiZWNhdXNlIG90aGVyIG9iamVj dHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBjb25zdHJhaW50IHRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsgb24gdGFibGUgdGVtcG9yYWxfZmtfcm5nMnJuZyBkZXBlbmRzIG9uIGNvbHVtbiB2 YWxpZF9hdCBvZiB0YWJsZSB0ZW1wb3JhbDMKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FE RSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitBTFRFUiBUQUJMRSB0ZW1w b3JhbDMgRFJPUCBDT0xVTU4gdmFsaWRfYXQgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2Fz Y2FkZXMgdG8gY29uc3RyYWludCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIG9uIHRhYmxlIHRl bXBvcmFsX2ZrX3JuZzJybmcKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0RS T1AgVEFCTEUgdGVtcG9yYWwzOworLS0KKy0tIHRlc3QgRk9SRUlHTiBLRVksIHJhbmdlIHJl ZmVyZW5jZXMgcmFuZ2UKKy0tCistLSB0ZXN0IHRhYmxlIHNldHVwCitEUk9QIFRBQkxFIHRl bXBvcmFsX3JuZzsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmcgKGlkIGludDRyYW5nZSwg dmFsaWRfYXQgZGF0ZXJhbmdlKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZworICBBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9ybmdfcGsKKyAgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKTsKKy0tIENhbid0IGNyZWF0ZSBhIEZLIHdpdGggYSBtaXNt YXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgK KwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgaW50NHJhbmdlLAorCXBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrMiBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfcm5nMnJuZ19mazIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkK Kyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJy bmdfZmsyIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQKK0RFVEFJTDogIEtleSBjb2x1bW5zICJ2 YWxpZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBlczogaW50 NHJhbmdlIGFuZCBkYXRlcmFuZ2UuCistLSB3b3JrczogUEVSSU9EIGZvciBib3RoIHJlZmVy ZW5jZWQgYW5kIHJlZmVyZW5jaW5nCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQg aW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0 KQorKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKKy0tIHdpdGggbWlzbWF0 Y2hlZCBQRVJJT0QgY29sdW1uczoKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkg UkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gUkVGRVJFTkNFUyBwYXJ0IHNob3VsZCBz cGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlk IGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5n ZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlk LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor CQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAg Zm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBu b3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBib3RoIHNob3VsZCBzcGVjaWZ5IFBFUklPRDoK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJ dmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZP UkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgb25seSBiLXRyZWUgaW5kZXhlcyBh cmUgc3VwcG9ydGVkIGZvciBub24tUEVSSU9EIGZvcmVpZ24ga2V5cworLS0gKHBhcmVudF9p ZCwgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JF SUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2Us CisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZh bGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJl ZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIChwYXJl bnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZ IHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJl bnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxp ZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyk7CitFUlJPUjogIGZvcmVpZ24g a2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJl ZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVS RU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGlu dDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlS RUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQpCispOworRVJST1I6ICBmb3JlaWduIGtleSB1 c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJl bmNlZCB0YWJsZQorLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyAoaWQsIFBFUklPRCB2YWxp ZF9hdCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5n X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5n IChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQ RVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQgdGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcg dGFibGUKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6Cist LSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQor Q1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2 YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZworKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKKy0tIChw YXJlbnRfaWQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJ cGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVz ZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5j aW5nIHRhYmxlCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVu Y2VkIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQg aW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdl LAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQs IHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtf cm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQor CQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCBpZCkKKyk7CitFUlJPUjog IGZvcmVpZ24ga2V5IHJlZmVyZW5jZWQtY29sdW1ucyBsaXN0IG11c3Qgbm90IGNvbnRhaW4g ZHVwbGljYXRlcworLS0gVHdvIHNjYWxhciBjb2x1bW5zCitEUk9QIFRBQkxFIHRlbXBvcmFs X3JuZzI7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMiAoCisgIGlkMSBpbnQ0cmFuZ2Us CisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ybmcyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcg KAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkMSBp bnQ0cmFuZ2UsCisJcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xk IHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9y YWxfZmsyX3JuZzJybmciCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAg ICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0ICAgfCBkYXRlcmFuZ2UgfCAgICAg ICAgICAgfCBub3QgbnVsbCB8IAorIHBhcmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAg ICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfZmsyX3JuZzJybmdfcGsi IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0ZvcmVpZ24t a2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9mazJfcm5nMnJuZ19mayIgRk9SRUlH TiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcyKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKK0RST1Ag VEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmc7CistLQorLS0gdGVzdCBBTFRFUiBUQUJMRSBB REQgQ09OU1RSQUlOVAorLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgK KwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZ IChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19m aworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBUd28gc2NhbGFy IGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcgKAorCWlkIGlu dDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkMSBpbnQ0cmFuZ2Us CisJcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5n MnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJl bnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisg ICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfZmsyX3JuZzJybmciCisgICBDb2x1 bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAor IHZhbGlkX2F0ICAgfCBkYXRlcmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHBh cmVudF9pZDEgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVu dF9pZDIgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5kZXhlczoK KyAgICAidGVtcG9yYWxfZmsyX3JuZzJybmdfcGsiIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0 ZW1wb3JhbF9mazJfcm5nMnJuZ19mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVu dF9pZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyKGlkMSwg aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhlIHJl ZmVyZW5jZWQgdGFibGUsIGFuZCB3cm9uZyBjb2x1bW4gdHlwZToKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJu Z19maywKKwlBTFRFUiBDT0xVTU4gdmFsaWRfYXQgVFlQRSB0c3JhbmdlIFVTSU5HIHRzcmFu Z2UobG93ZXIodmFsaWRfYXQpLCB1cHBlcih2YWxpZF9hdCkpOworQUxURVIgVEFCTEUgdGVt cG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdf ZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmc7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX2ZrX3JuZzJybmdfZmsiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZAorREVUQUlMOiAg S2V5IGNvbHVtbnMgInZhbGlkX2F0IiBhbmQgInZhbGlkX2F0IiBhcmUgb2YgaW5jb21wYXRp YmxlIHR5cGVzOiB0c3JhbmdlIGFuZCBkYXRlcmFuZ2UuCitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19ybmcycm5nCisJQUxURVIgQ09MVU1OIHZhbGlkX2F0IFRZUEUgZGF0ZXJhbmdlIFVT SU5HIGRhdGVyYW5nZShsb3dlcih2YWxpZF9hdCk6OmRhdGUsIHVwcGVyKHZhbGlkX2F0KTo6 ZGF0ZSk7CistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlOgor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CistLSBzaG91bGQgZmFpbCBiZWNh dXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19m azIKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorCVJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIGlkKTsKK0VSUk9SOiAgZm9yZWlnbiBr ZXkgcmVmZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVz CistLQorLS0gdGVzdCB3aXRoIHJvd3MgYWxyZWFkeQorLS0KK0RFTEVURSBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKSwKKyAgKCdbMSwyKScsIGRhdGVy YW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpLAorICAoJ1syLDMpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSksCisgICgnWzMsNCknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScpLCAn WzEsMiknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycm5nX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAy JywgJzIwMTgtMDQtMDEnKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor CVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9u IHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRf aWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDQtMDEpKSBpcyBub3Qg cHJlc2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcm5nIi4KKy0tIG9rYXkgYWdhaW46CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmc7CistLQorLS0gdGVzdCBwZ19nZXRfY29uc3RyYWludGRlZgorLS0KK1NFTEVD VCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBj b25uYW1lID0gJ3RlbXBvcmFsX2ZrX3JuZzJybmdfZmsnOworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgdGVt cG9yYWxfcm5nKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisoMSByb3cpCisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jaW5nIGluc2VydHMKKy0tCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScpLCAnWzEsMiknKTsKKy0tIHNob3Vs ZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywg JzIwMTgtMDQtMDEnKSwgJ1sxLDIpJyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24g dGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9p ZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0wMSkpIGlzIG5vdCBw cmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9ybmciLgorLS0gbm93IGl0IHNob3VsZCB3b3Jr OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx LDIpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAzJywgJzIwMTgtMDMtMDMnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScpLCAn WzEsMiknKTsKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIHVwZGF0ZXMKKy0tCitVUERB VEUgdGVtcG9yYWxfZmtfcm5nMnJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgt MDEtMDInLCAnMjAxOC0wMy0wMScpIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIHNob3VsZCBm YWlsOgorVVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDUtMDEnKSBXSEVSRSBpZCA9ICdbMSwyKSc7CitF UlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmci IHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdf ZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgt MDEtMDIsMjAxOC0wNS0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9y bmciLgorVVBEQVRFIHRlbXBvcmFsX2ZrX3JuZzJybmcgU0VUIHBhcmVudF9pZCA9ICdbOCw5 KScgV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQs IHZhbGlkX2F0KT0oWzgsOSksIFsyMDE4LTAxLTAyLDIwMTgtMDMtMDEpKSBpcyBub3QgcHJl c2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcm5nIi4KKy0tIEFMVEVSIEZLIERFRkVSUkFCTEUK K0JFR0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTCisgICAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JykpLAorICAgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0w MScpKTsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUworICAgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKKyAgQUxURVIgVEFCTEUgdGVtcG9yYWxf Zmtfcm5nMnJuZworICAgIEFMVEVSIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19m aworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVEOworICBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOyAtLXNob3VsZCBub3QgZmFpbCB5ZXQu CitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCitFUlJPUjogIHVwZGF0ZSBvciBkZWxl dGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3Ju ZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0w MSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3Jh bF9ma19ybmcycm5nIi4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBOTyBB Q1RJT04KKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7 CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQg aXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJykpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEg UEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMg cmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLTAx JykKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgt MDItMDEnLCAnMjAxOC0wMy0wMScpOworLS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNh dXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKK1dIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgorREVUQUlMOiAgS2V5 IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0 aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCistLSBj aGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNF VCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9m a19ybmcycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgt MDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVt cG9yYWxfZmtfcm5nMnJuZyIuCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJl Y29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAx JykKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFJFU1RSSUNUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19y bmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCURST1AgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf cm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1w b3JhbF9ybmcKKwlPTiBVUERBVEUgUkVTVFJJQ1Q7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1 Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworVVBEQVRFIHRlbXBvcmFs X3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0w MScpIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMg ZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSBy YW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2 KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisg ICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAg KCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn KSwgJ1s1LDYpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykKK1dIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwor LS0gYSBQSyB1cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6 CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0w MS0wMScsICcyMDE2LTAyLTAxJykKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19ybmcycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQg ZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlk ID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgorREVUQUlMOiAgS2V5 IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0 aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCistLSB0 aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBk YXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKK1dIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgorLS0KK1RSVU5D QVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJu Z19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nOworLS0gYSBQSyBkZWxl dGUgdGhhdCBzdWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5j ZWQ6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0 ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5j ZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0w MScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxz IGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1w b3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJy bmciLgorLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBz YW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RS SUNUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcK KwlPTiBERUxFVEUgUkVTVFJJQ1Q7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAx OC0wMi0wMScpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2 KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1l cmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSwKKyAgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sz LDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxp ZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBhIFBL IGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0g ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0VSUk9SOiAgdXBkYXRl IG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtl eSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9y YWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsy MDE4LTAxLTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUg InRlbXBvcmFsX2ZrX3JuZzJybmciLgorLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBG SyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOworREVMRVRFIEZST00g dGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0KKy0tIHRlc3QgT04gVVBEQVRF L0RFTEVURSBvcHRpb25zCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FT Q0FERQorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp LCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKwkJT04gREVMRVRFIENBU0NB REUgT04gVVBEQVRFIENBU0NBREU7CitFUlJPUjogIGludmFsaWQgT04gREVMRVRFIGFjdGlv biBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKKy0tIHRlc3QgRksg cmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdf ZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCQlGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nCisJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJP UjogIGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCB1c2luZyBQRVJJT0QKKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZB VUxUCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn Wy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMiwxMyknKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJy bmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCQlGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVt cG9yYWxfcm5nCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFV TFQ7CitFUlJPUjogIGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkg Y29uc3RyYWludCB1c2luZyBQRVJJT0QKKy0tCistLSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVk IHRhYmxlcworLS0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKAor CWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKwlD T05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfcm5nX3BrIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsK K0NSRUFURSBUQUJMRSB0cDEgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAn WzksMTApJywgJ1sxMSwxMiknKTsKK0NSRUFURSBUQUJMRSB0cDIgcGFydGl0aW9uIE9GIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSkn LCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVT CisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAn b25lJyksCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0w MScpLCAnb25lJyksCisgICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAx MC0wMS0wMScpLCAndHdvJyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlw YXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMg dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKSBQQVJU SVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRma3AxIHBhcnRpdGlvbiBPRiB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScs ICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScpOworQ1JF QVRFIFRBQkxFIHRma3AyIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5 KScsICdbMTAsMTEpJywgJ1sxMiwxMyknKTsKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZl cmVuY2luZyBpbnNlcnRzCistLQorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAoJ1sxLDIp JywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIpJyksCisg ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDEtMDEtMDEnLCAnMjAwMi0wMS0wMScpLCAnWzIs MyknKSwKKyAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTE1 JyksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT CisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTAtMDEtMDEnLCAnMjAxMC0wMi0xNScpLCAn WzEsMiknKTsKK0VSUk9SOiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGZrcDEiIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwy KSwgWzIwMTAtMDEtMDEsMjAxMC0wMi0xNSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmciLgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUworICAo J1szLDQpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1szLDQp Jyk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRma3AxIiB2aW9sYXRl cyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzMsNCksIFsy MDAwLTAxLTAxLDIwMDAtMDItMTUpKSBpcyBub3QgcHJlc2VudCBpbiB0YWJsZSAidGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIi4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2lu ZyB1cGRhdGVzCistLQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg U0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTMnKSBX SEVSRSBpZCA9ICdbMiwzKSc7CistLSBtb3ZlIGEgcm93IGZyb20gdGhlIGZpcnN0IHBhcnRp dGlvbiB0byB0aGUgc2Vjb25kCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyBTRVQgaWQgPSAnWzQsNSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIG1vdmUgYSBy b3cgZnJvbSB0aGUgc2Vjb25kIHBhcnRpdGlvbiB0byB0aGUgZmlyc3QKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFNFVCBpZCA9ICdbMSwyKScgV0hFUkUgaWQg PSAnWzQsNSknOworLS0gc2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAn MjAwMC0wNC0wMScpIFdIRVJFIGlkID0gJ1sxLDIpJzsKK0VSUk9SOiAgY29uZmxpY3Rpbmcg a2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZmtwMV9wa2V5Igor REVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMDAtMDEtMDEsMjAwMC0w NC0wMSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEs MiksIFsyMDAwLTAxLTAxLDIwMDAtMDQtMDEpKS4KKy0tCistLSBwYXJ0aXRpb25lZCBGSyBy ZWZlcmVuY2VkIHVwZGF0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSk7CitVUERB VEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykgV0hFUkUgaWQgPSAnWzUsNiknOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAn MjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEn KQorICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEt MDEnLCAnMjAxNi0wMi0wMScpCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlk X2F0X2ZrZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgor REVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0w Mi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZyIuCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBk ZWxldGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywg ZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0x MCcpLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBX SEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAx JywgJzIwMTgtMDMtMDEnKTsKKy0tIHNob3VsZCBmYWlsOgorREVMRVRFIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworRVJST1I6ICB1cGRhdGUg b3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0 X2ZrZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgorREVU QUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0w MSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyIuCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFJFU1RSSUNUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKKwlPTiBERUxFVEUgUkVT VFJJQ1Q7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0w Mi0wMScpKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSBXSEVSRSBpZCA9ICdb NSw2KSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0w My0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEn LCAnMjAxNi0wMy0wMScpCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBk YXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworLS0gc2hvdWxkIGZhaWw6 CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKKyAgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7 CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19w YXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmciCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAx OC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIi4KKy0tCistLSBwYXJ0aXRpb25lZCBG SyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVTVFJJQ1QKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1 JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBzaG91bGQgZmFpbDoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5E IHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0VS Uk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidHAxIiB2aW9sYXRlcyBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX3BhcmVu dF9pZF92YWxpZF9hdF9ma2V5IiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAx LTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJl ZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZworCQlPTiBE RUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKK0VSUk9SOiAgaW52YWxpZCBPTiBE RUxFVEUgYWN0aW9uIGZvciBmb3JlaWduIGtleSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAor LS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQor LS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0K K0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKKwlEUk9QIENP TlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKKwlBREQgQ09O U1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCisJCUZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ybmcKKwkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQg TlVMTDsKK0VSUk9SOiAgaW52YWxpZCBPTiBERUxFVEUgYWN0aW9uIGZvciBmb3JlaWduIGtl eSBjb25zdHJhaW50IHVzaW5nIFBFUklPRAorLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERF RkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZworCQlPTiBERUxF VEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworRVJST1I6ICBpbnZhbGlk IE9OIERFTEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVS SU9ECistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZB VUxUCistLQorRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmc7CiBSRVNFVCBkYXRlc3R5bGU7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IGI1 ZTc3MTY4ZjU0Li5kOTA0YTI4Njg1MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvd2l0aG91dF9vdmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0 aG91dF9vdmVybGFwcy5zcWwKQEAgLTU4LDcgKzU4LDYgQEAgQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX3JuZzIgKAogU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19j b25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm5nMl9wayc7CiBTRUxFQ1Qg cGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQg V0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmcyX3BrJzsKIAotCiAtLSBQSyB3aXRoIGEg Y3VzdG9tIHJhbmdlIHR5cGU6CiBDUkVBVEUgVFlQRSB0ZXh0cmFuZ2UyIEFTIHJhbmdlIChz dWJ0eXBlPXRleHQsIGNvbGxhdGlvbj0iQyIpOwogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3Ju ZzMgKApAQCAtNzAsMTQgKzY5LDYgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfcm5nMyBEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nM19wazsKIERST1AgVEFCTEUgdGVtcG9yYWxfcm5n MzsKIERST1AgVFlQRSB0ZXh0cmFuZ2UyOwogCi0tLSBQSyB3aXRoIGEgbXVsdGlyYW5nZToK LUNSRUFURSBUQUJMRSB0ZW1wb3JhbF9tbHRybmcgKAotICBpZCBpbnQ0cmFuZ2UsCi0gIHZh bGlkX2F0IHRzbXVsdGlyYW5nZSwKLSAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmdfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQotKTsKLVxkIHRl bXBvcmFsX21sdHJuZwotCiAtLSBVTklRVUUgd2l0aCBubyBjb2x1bW5zIGp1c3QgV0lUSE9V VCBPVkVSTEFQUzoKIAogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKApAQCAtMjkxLDQg KzI4Miw2MTAgQEAgU0VMRUNUICogRlJPTSB0cDEgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owog U0VMRUNUICogRlJPTSB0cDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogRFJPUCBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZDsKIAorLS0KKy0tIHRlc3QgRksgZGVwZW5kZW5jaWVzCist LQorCistLSBjYW4ndCBkcm9wIGEgcmFuZ2UgcmVmZXJlbmNlZCBieSBhbiBGSywgdW5sZXNz IHdpdGggQ0FTQ0FERQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisJaWQgaW50NHJhbmdl LAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsM19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBk YXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsMyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgRFJPUCBD T0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMgRFJPUCBDT0xVTU4gdmFs aWRfYXQgQ0FTQ0FERTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0RST1Ag VEFCTEUgdGVtcG9yYWwzOworCistLQorLS0gdGVzdCBGT1JFSUdOIEtFWSwgcmFuZ2UgcmVm ZXJlbmNlcyByYW5nZQorLS0KKworLS0gdGVzdCB0YWJsZSBzZXR1cAorRFJPUCBUQUJMRSB0 ZW1wb3JhbF9ybmc7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nIChpZCBpbnQ0cmFuZ2Us IHZhbGlkX2F0IGRhdGVyYW5nZSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmcKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nX3BrCisgIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyk7CisKKy0tIENhbid0IGNyZWF0ZSBhIEZLIHdpdGggYSBt aXNtYXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5n ICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgaW50NHJhbmdlLAorCXBhcmVudF9pZCBp bnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrMiBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcm5nMnJuZ19mazIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKKyk7CisKKy0tIHdvcmtzOiBQRVJJT0QgZm9yIGJvdGggcmVmZXJlbmNlZCBhbmQgcmVm ZXJlbmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJ Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcy cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVG RVJFTkNFUyB0ZW1wb3JhbF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRFJPUCBU QUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nOworCistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9E IGNvbHVtbnM6CisKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNF UyAoaWQsIHZhbGlkX2F0KQorLS0gUkVGRVJFTkNFUyBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBF UklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5n ZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdf ZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZh bGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBib3RoIHNob3VsZCBzcGVj aWZ5IFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBp bnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2Us CisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19y bmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0KQorCQlSRUZFUkVO Q0VTIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZh bGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorLS0gRk9SRUlHTiBL RVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBh cmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKKyk7CistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRd CistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBk YXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCispOwor LS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCkKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRf YXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcgKGlkKQorKTsKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50 NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAor CUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFs X3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CistLSB3aXRoIGluZmVycmVkIFBLIG9u IHRoZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9p ZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKKyk7CitEUk9QIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmc7CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIFtpbXBsaWNp dF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nICgKKwlpZCBpbnQ0cmFuZ2Us CisJdmFsaWRfYXQgZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2Zr IEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisp OworCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNv bHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZyAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJu Z19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZyAoaWQsIFBFUklPRCBpZCkKKyk7CisKKy0tIFR3byBzY2Fs YXIgY29sdW1ucworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmcyOworQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3JuZzIgKAorICBpZDEgaW50NHJhbmdlLAorICBpZDIgaW50NHJhbmdlLAorICB2 YWxpZF9hdCBkYXRlcmFuZ2UsCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcm5nMl9wayBQUklN QVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworCitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2 YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisJcGFyZW50X2lk MiBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVu dF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyIChp ZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrMl9ybmcycm5n CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworCistLQorLS0gdGVzdCBBTFRF UiBUQUJMRSBBREQgQ09OU1RSQUlOVAorLS0KKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFy ZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0t IFR3byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVyYW5nZSwKKwlwYXJlbnRfaWQx IGludDRyYW5nZSwKKwlwYXJlbnRfaWQyIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9ybmcycm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworCUFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVu dF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBv cmFsX3JuZzIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpOworXGQgdGVtcG9yYWxfZmsy X3JuZzJybmcKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJs ZSwgYW5kIHdyb25nIGNvbHVtbiB0eXBlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrLAorCUFMVEVS IENPTFVNTiB2YWxpZF9hdCBUWVBFIHRzcmFuZ2UgVVNJTkcgdHNyYW5nZShsb3dlcih2YWxp ZF9hdCksIHVwcGVyKHZhbGlkX2F0KSk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFs X3JuZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlBTFRFUiBDT0xVTU4g dmFsaWRfYXQgVFlQRSBkYXRlcmFuZ2UgVVNJTkcgZGF0ZXJhbmdlKGxvd2VyKHZhbGlkX2F0 KTo6ZGF0ZSwgdXBwZXIodmFsaWRfYXQpOjpkYXRlKTsKKworLS0gd2l0aCBpbmZlcnJlZCBQ SyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Ju ZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlH TiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9y YWxfcm5nOworCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVu Y2VkIGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mazIKKwlGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwg UEVSSU9EIGlkKTsKKworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVhZHkKKy0tCisKK0RF TEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisg ICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMycpKSwKKyAg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpLAorICAo J1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSksCisgICgn WzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBOVUxMKSk7CisKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5n MnJuZ19mazsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMics ICcyMDE4LTAyLTAxJyksICdbMSwyKScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5n MnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMyknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNC0wMScpLCAnWzEsMiknKTsKKy0tIHNob3Vs ZCBmYWlsOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CistLSBva2F5IGFn YWluOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5n X2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nOworCistLQorLS0gdGVzdCBwZ19nZXRfY29uc3RyYWludGRl ZgorLS0KKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25z dHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfcm5nMnJuZ19mayc7CisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIGluc2VydHMKKy0tCisKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJyksICdbMSwyKScp OworLS0gc2hvdWxkIGZhaWw6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMyknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDInLCAnMjAxOC0wNC0wMScpLCAnWzEsMiknKTsKKy0tIG5vdyBpdCBzaG91bGQg d29yazoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMSwyKScsIGRhdGVyYW5nZSgnMjAxOC0wMi0wMycsICcyMDE4LTAzLTAzJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1syLDMpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEn KSwgJ1sxLDIpJyk7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIHVwZGF0ZXMKKy0t CisKK1VQREFURSB0ZW1wb3JhbF9ma19ybmcycm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMS0wMicsICcyMDE4LTAzLTAxJykgV0hFUkUgaWQgPSAnWzEsMiknOworLS0g c2hvdWxkIGZhaWw6CitVUERBVEUgdGVtcG9yYWxfZmtfcm5nMnJuZyBTRVQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wNS0wMScpIFdIRVJFIGlkID0gJ1sx LDIpJzsKK1VQREFURSB0ZW1wb3JhbF9ma19ybmcycm5nIFNFVCBwYXJlbnRfaWQgPSAnWzgs OSknIFdIRVJFIGlkID0gJ1sxLDIpJzsKKworLS0gQUxURVIgRksgREVGRVJSQUJMRQorCitC RUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UworICAgICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp KSwKKyAgICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEn KSk7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMKKyAgICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1 JywgJzIwMTgtMDEtMTAnKSwgJ1s1LDYpJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3JuZzJybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmsK KyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknOyAtLXNob3VsZCBub3QgZmFpbCB5ZXQu CitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCisKKy0tCistLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywg dGVtcG9yYWxfZmtfcm5nMnJuZzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVj YXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykgV0hFUkUg aWQgPSAnWzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3Vn aCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0 OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAorICAoJ1s1LDYpJywg ZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNikn KTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2 LTAyLTAxJywgJzIwMTYtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CistLSBhIFBLIHVw ZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK1VQREFURSB0 ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIw MTYtMDItMDEnKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFy IHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKK1dI RVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNv cmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOworVVBEQVRFIHRlbXBvcmFsX3Ju ZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScp CitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRh dGVzIFJFU1RSSUNUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2Zr X3JuZzJybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19ybmcycm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCUZP UkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRl bXBvcmFsX3JuZworCU9OIFVQREFURSBSRVNUUklDVDsKKy0tIGEgUEsgdXBkYXRlIHRoYXQg c3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CitVUERBVEUgdGVtcG9y YWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAy LTAxJykgV0hFUkUgaWQgPSAnWzUsNiknOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVk cyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhl IHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1 LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMK KyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpLAor ICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0x MCcpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKQorV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7 CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNl ZDoKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2 LTAxLTAxJywgJzIwMTYtMDItMDEnKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBjaGFuZ2lu ZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9 ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVj dGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOworVVBEQVRF IHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAn MjAxNi0wMi0wMScpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKworLS0KKy0tIHRlc3QgRksgcmVm ZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5n LCB0ZW1wb3JhbF9ma19ybmcycm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcm5nMnJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJ UkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRz IGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworREVMRVRFIEZST00gdGVtcG9yYWxf cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMg ZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSBy YW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JykpLAorICAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcpLCAnWzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIw MTgtMDMtMDEnKTsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFy ZSByZWZlcmVuY2VkOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpOworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBz YW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJy bmcgV0hFUkUgaWQgPSAnWzMsNCknOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgUkVT VFJJQ1QKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJu ZzsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcm5nMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nCisJT04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMTgtMDItMDEnKSk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzUsNiknOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUg bnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUworICAoJ1s1LDYp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSksCisgICgnWzUsNikn LCBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMyw0KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2 KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworLS0g YSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSB0aGVuIGRl bGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1 Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb Myw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CisK Ky0tCistLSB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0KKworLS0gdGVzdCBG SyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19m aywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrCisJCUZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcKKwkJT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CisKKy0tIHRl c3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Ju ZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCQlG T1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMg dGVtcG9yYWxfcm5nCisJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7 CisKKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRh dGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxMiwxMyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFs X2ZrX3JuZzJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWy0x LC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCisJ CU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CisKKy0tCist LSBGSyBiZXR3ZWVuIHBhcnRpdGlvbmVkIHRhYmxlcworLS0KKworQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRh dGVyYW5nZSwKKyAgbmFtZSB0ZXh0LAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25l ZF9ybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQor KSBQQVJUSVRJT04gQlkgTElTVCAoaWQpOworQ1JFQVRFIFRBQkxFIHRwMSBwYXJ0aXRpb24g T0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdb Myw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScpOworQ1JFQVRF IFRBQkxFIHRwMiBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBW QUxVRVMgSU4gKCdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEp JywgJ1sxMiwxMyknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo aWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAw MC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKKyAgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKKyAgKCdbMiwzKScsIGRh dGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICd0d28nKTsKKworQ1JFQVRF IFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKAorCWlkIGludDRyYW5n ZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVS SU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo aWQsIFBFUklPRCB2YWxpZF9hdCkKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFU RSBUQUJMRSB0ZmtwMSBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCkn LCAnWzksMTApJywgJ1sxMSwxMiknKTsKK0NSRUFURSBUQUJMRSB0ZmtwMiBwYXJ0aXRpb24g T0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzIs MyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScsICdbMTIsMTMpJyk7 CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2luZyBpbnNlcnRzCistLQorCitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEt MDEnLCAnMjAwMC0wMi0xNScpLCAnWzEsMiknKSwKKyAgKCdbMSwyKScsIGRhdGVyYW5nZSgn MjAwMS0wMS0wMScsICcyMDAyLTAxLTAxJyksICdbMiwzKScpLAorICAoJ1syLDMpJywgZGF0 ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAtMDItMTUnKSwgJ1sxLDIpJyk7CistLSBzaG91 bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgKCdbMyw0KScsIGRhdGVyYW5n ZSgnMjAxMC0wMS0wMScsICcyMDEwLTAyLTE1JyksICdbMSwyKScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDAwLTAxLTAxJywgJzIwMDAt MDItMTUnKSwgJ1szLDQpJyk7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2lu ZyB1cGRhdGVzCistLQorCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0xMycp IFdIRVJFIGlkID0gJ1syLDMpJzsKKy0tIG1vdmUgYSByb3cgZnJvbSB0aGUgZmlyc3QgcGFy dGl0aW9uIHRvIHRoZSBzZWNvbmQKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIFNFVCBpZCA9ICdbNCw1KScgV0hFUkUgaWQgPSAnWzEsMiknOworLS0gbW92ZSBh IHJvdyBmcm9tIHRoZSBzZWNvbmQgcGFydGl0aW9uIHRvIHRoZSBmaXJzdAorVVBEQVRFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgU0VUIGlkID0gJ1sxLDIpJyBXSEVSRSBp ZCA9ICdbNCw1KSc7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAwMC0wMS0wMScs ICcyMDAwLTA0LTAxJykgV0hFUkUgaWQgPSAnWzEsMiknOworCistLQorLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIE5PIEFDVElPTgorLS0KKworVFJVTkNBVEUgdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEn KSk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykgV0hFUkUgaWQgPSAnWzUsNikn OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIw MTYtMDMtMDEnKQorICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIHNob3VsZCBmYWlsOgorVVBE QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCisgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworCist LQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDIt MDEnLCAnMjAxOC0wMy0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJyksICdbNSw2KScpOworREVM RVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwor LS0gc2hvdWxkIGZhaWw6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcg V0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJyk7CisKKy0tCistLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2Vk IHVwZGF0ZXMgUkVTVFJJQ1QKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCisJT04gREVM RVRFIFJFU1RSSUNUOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywg JzIwMTYtMDItMDEnKSk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCB2 YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykgV0hFUkUg aWQgPSAnWzUsNiknOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywgZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywg JzIwMTgtMDMtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpLCAnWzUsNiknKTsKK1VQREFURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2 LTAyLTAxJywgJzIwMTYtMDMtMDEnKQorICBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKy0tIHNob3Vs ZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCisgIFdIRVJFIGlkID0g J1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpOworCistLQorLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJF U1RSSUNUCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1szLDQpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSwgJ1s1 LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJyk7CistLSBzaG91bGQgZmFpbDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKworLS0KKy0tIHBhcnRpdGlvbmVkIEZL IHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLQorCitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCisJ CU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworCistLQorLS0gcGFydGl0 aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCisKKy0tCistLSBwYXJ0 aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tCisKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcKKwkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKwor LS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0K KworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVM VAorLS0KKworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZwor ICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKwlEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKKwlBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCisJCUZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFU RSBTRVQgREVGQVVMVDsKKworLS0KKy0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgREVGQVVMVAorLS0KKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nOworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmc7CisK IFJFU0VUIGRhdGVzdHlsZTsKLS0gCjIuNDIuMAoK --------------rOiwMPZjbSgQ0WsI4nnNtOso Content-Type: text/x-patch; charset=UTF-8; name="v31-0002-Support-multiranges-in-temporal-FKs.patch" Content-Disposition: attachment; filename="v31-0002-Support-multiranges-in-temporal-FKs.patch" Content-Transfer-Encoding: base64 RnJvbSA4YTJmZTBkMTFmOGUwMTU0YjczNDE1ZjBkMWJjODgwNDcxMjY5YmMxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMTUgTWFyIDIwMjQgMTc6NDM6MTYgLTA3 MDAKU3ViamVjdDogW1BBVENIIHYzMSAyLzZdIFN1cHBvcnQgbXVsdGlyYW5nZXMgaW4gdGVt cG9yYWwgRktzCgpBbGxvdyBtdWx0aXJhbmdlcyBhcyB0aGUgUEVSSU9EIHBhcnQgb2YgYSBG T1JFSUdOIEtFWS4gV2UgYWxyZWFkeSBhbGxvdwpyYW5nZSB0eXBlcywgYW5kIGFkZGluZyBt dWx0aXJhbmdlcyBpcyBzdHJhaWdodGZvcndhcmQuCi0tLQogZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX2NvbnN0cmFpbnQuYyAgICAgICAgICAgfCAgMTkgKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICAgNiArLQogc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgICAgICAgICAgIHwgICA4ICstCiAuLi4vcmVncmVz cy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dCAgICAgfCA0NTkgKysrKysrKysrKysr KysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCAgICAg fCAzODMgKysrKysrKysrKysrKysrCiA2IGZpbGVzIGNoYW5nZWQsIDg2NyBpbnNlcnRpb25z KCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApp bmRleCA1MTJiMWRiMzg3OC4uODRhNTIwZTk4M2YgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dGFibGUuc2dtbApAQCAtMTE4NCw3ICsxMTg0LDcgQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+ LCBSRU0KICAgICAgIHdob3NlIGNvbWJpbmVkIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4g dmFsdWVzIGNvbXBsZXRlbHkgY292ZXIKICAgICAgIHRoZSByZWZlcmVuY2luZyByZWNvcmQn cy4KICAgICAgIEluIG90aGVyIHdvcmRzLCB0aGUgcmVmZXJlbmNlIG11c3QgaGF2ZSBhIHJl ZmVyZW50IGZvciBpdHMgZW50aXJlIGR1cmF0aW9uLgotICAgICAgVGhpcyBjb2x1bW4gbXVz dCBiZSBhIGNvbHVtbiB3aXRoIGEgcmFuZ2UgdHlwZS4KKyAgICAgIFRoaXMgY29sdW1uIG11 c3QgYmUgYSByYW5nZSBvciBtdWx0aXJhbmdlIHR5cGUuCiAgICAgICBJbiBhZGRpdGlvbiB0 aGUgcmVmZXJlbmNlZCB0YWJsZSBtdXN0IGhhdmUgYSBwcmltYXJ5IGtleQogICAgICAgb3Ig dW5pcXVlIGNvbnN0cmFpbnQgZGVjbGFyZWQgd2l0aCA8bGl0ZXJhbD5XSVRIT1VUIE9WRVJM QVBTPC9saXRlcmFsPi4KICAgICAgIEZpbmFsbHksIGlmIG9uZSBzaWRlIG9mIHRoZSBmb3Jl aWduIGtleSB1c2VzIDxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD4sCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfY29uc3RyYWludC5jCmluZGV4IGIyZTVjM2E2ODc2Li5hY2FjY2QyNmZkYiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMKQEAgLTE2NTcsOCArMTY1Nyw4IEBA IERlY29uc3RydWN0RmtDb25zdHJhaW50Um93KEhlYXBUdXBsZSB0dXBsZSwgaW50ICpudW1m a3MsCiAgKiBUaGUgb3BjbGFzcyBzaG91bGQgYmUgdGhlIG9wY2xhc3Mgb2YgdGhhdCBQRVJJ T0QgZWxlbWVudC4KICAqIEV2ZXJ5dGhpbmcgZWxzZSBpcyBhbiBvdXRwdXQ6IGNvbnRhaW5l ZGJ5b3Blcm9pZCBpcyB0aGUgQ29udGFpbmVkQnkgb3BlcmF0b3IgZm9yCiAgKiB0eXBlcyBt YXRjaGluZyB0aGUgUEVSSU9EIGVsZW1lbnQuCi0gKiBBbmQgYWdnZWRjb250YWluZWRieW9w ZXJvaWQgaXMgYWxzbyBhIENvbnRhaW5lZEJ5IG9wZXJhdG9yLAotICogYnV0IG9uZSB3aG9z ZSByaHMgaXMgYW55bXVsdGlyYW5nZS4KKyAqIGFnZ2VkY29udGFpbmVkYnlvcGVyb2lkIGlz IGFsc28gYSBDb250YWluZWRCeSBvcGVyYXRvciwKKyAqIGJ1dCBvbmUgd2hvc2UgcmhzIGlz IGEgbXVsdGlyYW5nZS4KICAqIFRoYXQgd2F5IGZvcmVpZ24ga2V5cyBjYW4gY29tcGFyZSBm a2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikuCiAgKi8KIHZvaWQKQEAgLTE2NjYsOCArMTY2 NiwyMyBAQCBGaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKIAkJCQkgIE9pZCAqY29u dGFpbmVkYnlvcGVyb2lkLAogCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCkK IHsKKwlPaWQJCW9wZmFtaWx5ID0gSW52YWxpZE9pZDsKKwlPaWQJCW9wY2ludHlwZSA9IElu dmFsaWRPaWQ7CiAJU3RyYXRlZ3lOdW1iZXIgc3RyYXQ7CiAKKwkvKiBNYWtlIHN1cmUgd2Ug aGF2ZSBhIHJhbmdlIG9yIG11bHRpcmFuZ2UuICovCisJaWYgKGdldF9vcGNsYXNzX29wZmFt aWx5X2FuZF9pbnB1dF90eXBlKG9wY2xhc3MsICZvcGZhbWlseSwgJm9wY2ludHlwZSkpCisJ eworCQlpZiAob3BjaW50eXBlICE9IEFOWVJBTkdFT0lEICYmIG9wY2ludHlwZSAhPSBBTllN VUxUSVJBTkdFT0lEKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJJbnZhbGlkIHR5cGUg Zm9yIFBFUklPRCBwYXJ0IGluIEZPUkVJR04gS0VZIiksCisJCQkJCSBlcnJoaW50KCJVc2Ug YSByYW5nZSBvciBtdWx0aXJhbmdlIHR5cGUuIikpKTsKKworCX0KKwllbHNlCisJCWVsb2co RVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBvcGNsYXNzICV1Iiwgb3BjbGFzcyk7 CisKIAkvKgogCSAqIExvb2sgdXAgdGhlIENvbnRhaW5lZEJ5IG9wZXJhdG9yIHdob3NlIGxo cyBhbmQgcmhzIGFyZSB0aGUgb3BjbGFzcydzIHR5cGUuCiAJICogV2UgdXNlIHRoaXMgdG8g b3B0aW1pemUgUkkgY2hlY2tzOiBpZiB0aGUgbmV3IHZhbHVlIGluY2x1ZGVzIGFsbApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBjNGJiOGMwZjNlMC4uODA3Yjg3YzA2Nzgg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMDI0NSwxMCArMTAyNDUsMTIg QEAgQVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFi bGVJbmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAl9CiAKIAkvKgotCSAqIEZvciBGS3Mgd2l0 aCBQRVJJT0Qgd2UgbmVlZCBhbiBvcGVyYXRvciBhbmQgYWdncmVnYXRlIGZ1bmN0aW9uCisJ ICogRm9yIEZLcyB3aXRoIFBFUklPRCB3ZSBuZWVkIGFkZGl0aW9uYWwgb3BlcmF0b3JzCiAJ ICogdG8gY2hlY2sgd2hldGhlciB0aGUgcmVmZXJlbmNpbmcgcm93J3MgcmFuZ2UgaXMgY29u dGFpbmVkCiAJICogYnkgdGhlIGFnZ3JlZ2F0ZWQgcmFuZ2VzIG9mIHRoZSByZWZlcmVuY2Vk IHJvdyhzKS4KLQkgKiBGb3IgcmFuZ2V0eXBlcyB0aGlzIGlzIGZrLnBlcmlvZGF0dCA8QCBy YW5nZV9hZ2cocGsucGVyaW9kYXR0KS4KKwkgKiBGb3IgcmFuZ2V0eXBlcyBhbmQgbXVsdGly YW5nZXR5cGVzIHRoaXMgaXMKKwkgKiBmay5wZXJpb2RhdHQgPEAgcmFuZ2VfYWdnKHBrLnBl cmlvZGF0dCkuCisJICogVGhvc2UgYXJlIHRoZSBvbmx5IHR5cGVzIHdlIHN1cHBvcnQgZm9y IG5vdy4KIAkgKiBGS3Mgd2lsbCBsb29rIHRoZXNlIHVwIGF0ICJydW50aW1lIiwgYnV0IHdl IHNob3VsZCBtYWtlIHN1cmUKIAkgKiB0aGUgbG9va3VwIHdvcmtzIGhlcmUsIGV2ZW4gaWYg d2UgZG9uJ3QgdXNlIHRoZSB2YWx1ZXMuCiAJICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90 cmlnZ2Vycy5jCmluZGV4IDgyNGE0MWYzYmYzLi42MDM2M2NkNmY2MiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMKQEAgLTEyOCw3ICsxMjgsNyBAQCB0eXBlZGVmIHN0 cnVjdCBSSV9Db25zdHJhaW50SW5mbwogCU9pZAkJCXBwX2VxX29wcnNbUklfTUFYX05VTUtF WVNdOyAvKiBlcXVhbGl0eSBvcGVyYXRvcnMgKFBLID0gUEspICovCiAJT2lkCQkJZmZfZXFf b3Byc1tSSV9NQVhfTlVNS0VZU107IC8qIGVxdWFsaXR5IG9wZXJhdG9ycyAoRksgPSBGSykg Ki8KIAlPaWQJCQlwZXJpb2RfY29udGFpbmVkX2J5X29wZXI7CS8qIGFueXJhbmdlIDxAIGFu eXJhbmdlICovCi0JT2lkCQkJYWdnZWRfcGVyaW9kX2NvbnRhaW5lZF9ieV9vcGVyOwkvKiBh bnlyYW5nZSA8QCBhbnltdWx0aXJhbmdlICovCisJT2lkCQkJYWdnZWRfcGVyaW9kX2NvbnRh aW5lZF9ieV9vcGVyOwkvKiBma2F0dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikgKi8KIAlkbGlz dF9ub2RlCXZhbGlkX2xpbms7CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQgZW50cmllcyAq LwogfSBSSV9Db25zdHJhaW50SW5mbzsKIApAQCAtNDI1LDE0ICs0MjUsMTMgQEAgUklfRktl eV9jaGVjayhUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEpCiAJCWlmIChyaWluZm8tPmhhc3Blcmlv ZCkKIAkJewogCQkJT2lkCQlma190eXBlID0gUklBdHRUeXBlKGZrX3JlbCwgcmlpbmZvLT5m a19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSk7Ci0JCQlPaWQJCWFnZ19yZXR0eXBlID0g QU5ZTVVMVElSQU5HRU9JRDsKIAogCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIp IHgxIEhBVklORyAiKTsKIAkJCXNwcmludGYocGFyYW1uYW1lLCAiJCVkIiwgcmlpbmZvLT5u a2V5cyk7CiAJCQlyaV9HZW5lcmF0ZVF1YWwoJnF1ZXJ5YnVmLCAiIiwKIAkJCQkJCQlwYXJh bW5hbWUsIGZrX3R5cGUsCiAJCQkJCQkJcmlpbmZvLT5hZ2dlZF9wZXJpb2RfY29udGFpbmVk X2J5X29wZXIsCi0JCQkJCQkJInBnX2NhdGFsb2cucmFuZ2VfYWdnIiwgYWdnX3JldHR5cGUp OworCQkJCQkJCSJwZ19jYXRhbG9nLnJhbmdlX2FnZyIsIEFOWU1VTFRJUkFOR0VPSUQpOwog CQkJYXBwZW5kU3RyaW5nSW5mbygmcXVlcnlidWYsICIoeDEucikiKTsKIAkJfQogCkBAIC01 OTUsMTQgKzU5NCwxMyBAQCByaV9DaGVja19Qa19NYXRjaChSZWxhdGlvbiBwa19yZWwsIFJl bGF0aW9uIGZrX3JlbCwKIAkJaWYgKHJpaW5mby0+aGFzcGVyaW9kKQogCQl7CiAJCQlPaWQJ CWZrX3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbcmlpbmZv LT5ua2V5cyAtIDFdKTsKLQkJCU9pZAkJYWdnX3JldHR5cGUgPSBBTllNVUxUSVJBTkdFT0lE OwogCiAJCQlhcHBlbmRTdHJpbmdJbmZvKCZxdWVyeWJ1ZiwgIikgeDEgSEFWSU5HICIpOwog CQkJc3ByaW50ZihwYXJhbW5hbWUsICIkJWQiLCByaWluZm8tPm5rZXlzKTsKIAkJCXJpX0dl bmVyYXRlUXVhbCgmcXVlcnlidWYsICIiLAogCQkJCQkJCXBhcmFtbmFtZSwgZmtfdHlwZSwK IAkJCQkJCQlyaWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3BlciwKLQkJCQkJ CQkicGdfY2F0YWxvZy5yYW5nZV9hZ2ciLCBhZ2dfcmV0dHlwZSk7CisJCQkJCQkJInBnX2Nh dGFsb2cucmFuZ2VfYWdnIiwgQU5ZTVVMVElSQU5HRU9JRCk7CiAJCQlhcHBlbmRTdHJpbmdJ bmZvKCZxdWVyeWJ1ZiwgIih4MS5yKSIpOwogCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CmluZGV4IDA1ZjBjZDVhNTk1Li40 N2I0ZmYwNTY3OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRo b3V0X292ZXJsYXBzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhv dXRfb3ZlcmxhcHMub3V0CkBAIC05OSw2ICs5OSw1MSBAQCBDUkVBVEUgVEFCTEUgdGVtcG9y YWxfcm5nMyAoCiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ybmczIERST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ybmczX3BrOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwogRFJPUCBUWVBF IHRleHRyYW5nZTI7CistLSBQSyB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIG11bHRpcmFuZ2U6 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nICgKKyAgaWQgaW50NHJhbmdlLAorICB2 YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9tbHRybmdf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK1xk IHRlbXBvcmFsX21sdHJuZworICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3Jh bF9tbHRybmciCisgIENvbHVtbiAgfCAgICAgIFR5cGUgICAgICB8IENvbGxhdGlvbiB8IE51 bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgIHwgaW50NHJhbmdlICAgICAg fCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2F0IHwgZGF0ZW11bHRpcmFuZ2Ug fCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfbWx0 cm5nX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisK Ky0tIFBLIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIG11bHRpcmFuZ2U6CistLSBXZSBkb24n dCBkcm9wIHRoaXMgdGFibGUgYmVjYXVzZSB0ZXN0cyBiZWxvdyBhbHNvIG5lZWQgbXVsdGlw bGUgc2NhbGFyIGNvbHVtbnMuCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfbWx0cm5nMiAoCisJ aWQxIGludDRyYW5nZSwKKwlpZDIgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfbWx0cm5nMl9wayBQUklNQVJZIEtFWSAoaWQx LCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfbWx0 cm5nMgorICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX21sdHJuZzIiCisg IENvbHVtbiAgfCAgICAgIFR5cGUgICAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVm YXVsdCAKKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLQorIGlkMSAgICAgIHwgaW50NHJhbmdlICAgICAgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAorIGlkMiAgICAgIHwgaW50NHJhbmdlICAgICAgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAorIHZhbGlkX2F0IHwgZGF0ZW11bHRpcmFuZ2UgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfbWx0cm5nMl9wayIgUFJJ TUFSWSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorCitTRUxF Q1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUg Y29ubmFtZSA9ICd0ZW1wb3JhbF9tbHRybmcyX3BrJzsKKyAgICAgICAgICAgICAgIHBnX2dl dF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUFJJTUFSWSBLRVkgKGlkMSwgaWQy LCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQorCitTRUxFQ1QgcGdfZ2V0 X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUg Y29ubmFtZSA9ICd0ZW1wb3JhbF9tbHRybmcyX3BrJzsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRFWCB0ZW1wb3JhbF9tbHRybmcyX3BrIE9OIHRl bXBvcmFsX21sdHJuZzIgVVNJTkcgZ2lzdCAoaWQxLCBpZDIsIHZhbGlkX2F0KQorKDEgcm93 KQorCiAtLSBVTklRVUUgd2l0aCBubyBjb2x1bW5zIGp1c3QgV0lUSE9VVCBPVkVSTEFQUzoK IENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKIAl2YWxpZF9hdCBkYXRlcmFuZ2UsCkBA IC0yNzUsNiArMzIwLDMwIEBAIERFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zIChudWxs LCBbMjAxOC0wMS0wMSwyMDE4LTAxLTA1KSkuCiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKIEVSUk9SOiAgbnVsbCB2 YWx1ZSBpbiBjb2x1bW4gInZhbGlkX2F0IiBvZiByZWxhdGlvbiAidGVtcG9yYWxfcm5nIiB2 aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CiBERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250 YWlucyAoWzMsNCksIG51bGwpLgorLS0gb2theToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJykpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0JykpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMiwzKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1Jykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsIE5VTEwp KSk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0VSUk9SOiAgY29uZmxpY3Rpbmcga2V5 IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJhaW50ICJ0ZW1wb3JhbF9tbHRybmdf cGsiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFsxLDIpLCB7WzIwMTgtMDEtMDEs MjAxOC0wMS0wNSl9KSBjb25mbGljdHMgd2l0aCBleGlzdGluZyBrZXkgKGlkLCB2YWxpZF9h dCk9KFsxLDIpLCB7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9KS4KK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKE5VTEwsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0VSUk9SOiAg bnVsbCB2YWx1ZSBpbiBjb2x1bW4gImlkIiBvZiByZWxhdGlvbiAidGVtcG9yYWxfbWx0cm5n IiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitERVRBSUw6ICBGYWlsaW5nIHJvdyBj b250YWlucyAobnVsbCwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpfSkuCitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxM KTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gInZhbGlkX2F0IiBvZiByZWxhdGlv biAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50CitERVRB SUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoWzMsNCksIG51bGwpLgorU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9tbHRybmcgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgWzEsMikgfCB7WzIwMTgtMDEtMDIsMjAxOC0wMi0wMyl9CisgWzEsMikgfCB7 WzIwMTgtMDMtMDMsMjAxOC0wNC0wNCl9CisgWzIsMykgfCB7WzIwMTgtMDEtMDEsMjAxOC0w MS0wNSl9CisgWzMsNCkgfCB7WzIwMTgtMDEtMDEsKX0KKyg0IHJvd3MpCisKIC0tCiAtLSB0 ZXN0IGEgcmFuZ2Ugd2l0aCBib3RoIGEgUEsgYW5kIGEgVU5JUVVFIGNvbnN0cmFpbnQKIC0t CkBAIC04NTMsNiArOTIyLDM5NiBAQCBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5n CiAJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CiBFUlJP UjogIGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWlu dCB1c2luZyBQRVJJT0QKIC0tCistLSB0ZXN0IEZPUkVJR04gS0VZLCBtdWx0aXJhbmdlIHJl ZmVyZW5jZXMgbXVsdGlyYW5nZQorLS0KKy0tIENhbid0IGNyZWF0ZSBhIEZLIHdpdGggYSBt aXNtYXRjaGVkIG11bHRpcmFuZ2UgdHlwZQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBpbnQ0bXVsdGlyYW5n ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19wazIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsyIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1w b3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3JlaWdu IGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrMiIgY2Fubm90 IGJlIGltcGxlbWVudGVkCitERVRBSUw6ICBLZXkgY29sdW1ucyAidmFsaWRfYXQiIGFuZCAi dmFsaWRfYXQiIGFyZSBvZiBpbmNvbXBhdGlibGUgdHlwZXM6IGludDRtdWx0aXJhbmdlIGFu ZCBkYXRlbXVsdGlyYW5nZS4KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFy ZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJu ZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmc7CistLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6CistLSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkK Ky0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRf YXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlS RUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KQorKTsKK0VSUk9SOiAg Zm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jaW5nIHRhYmxlIGJ1dCBu b3QgdGhlIHJlZmVyZW5jZWQgdGFibGUKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZF UkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBib3RoIHNob3VsZCBzcGVjaWZ5IFBFUklPRDoK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFu Z2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQp CisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpCispOworRVJS T1I6ICBvbmx5IGItdHJlZSBpbmRleGVzIGFyZSBzdXBwb3J0ZWQgZm9yIG5vbi1QRVJJT0Qg Zm9yZWlnbiBrZXlzCistLSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQs IFBFUklPRCB2YWxpZF9hdCkKKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxkIHNwZWNpZnkg UEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoCisJaWQg aW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0 cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxp ZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZl cmVuY2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50 X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyBbaW1wbGljaXRdCistLSBGT1JFSUdOIEtFWSBw YXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5n ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVu Y2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkKQorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRl bXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nIChpZCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMg UEVSSU9EIG9uIHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2Vk IHRhYmxlCistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlkX2F0 KQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdl LAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtF WSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitFUlJP UjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIGJ1 dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSB3aXRoIGluZmVycmVkIFBLIG9uIHRo ZSByZWZlcmVuY2VkIHRhYmxlOgorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBS RUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJ cGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwK KwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkg KHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21s dHJuZworKTsKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKKy0tIChw YXJlbnRfaWQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVs dGlyYW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQg T1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBG T1JFSUdOIEtFWSAocGFyZW50X2lkKQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZwor KTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgdXNlcyBQRVJJT0Qgb24gdGhlIHJlZmVyZW5jZWQg dGFibGUgYnV0IG5vdCB0aGUgcmVmZXJlbmNpbmcgdGFibGUKKy0tIHNob3VsZCBmYWlsIGJl Y2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQg ZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkKKwkJUkVG RVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgaWQpCispOworRVJST1I6ICBm b3JlaWduIGtleSByZWZlcmVuY2VkLWNvbHVtbnMgbGlzdCBtdXN0IG5vdCBjb250YWluIGR1 cGxpY2F0ZXMKKy0tIFR3byBzY2FsYXIgY29sdW1ucworQ1JFQVRFIFRBQkxFIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11 bHRpcmFuZ2UsCisJcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisJcGFyZW50X2lkMiBpbnQ0cmFu Z2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcyIChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK1xkIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nCisgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyIKKyAgIENvbHVtbiAgIHwgICAgICBUeXBlICAgICAgfCBDb2xsYXRpb24g fCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFu Z2UgICAgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgICB8IGRhdGVt dWx0aXJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyBwYXJlbnRfaWQxIHwgaW50 NHJhbmdlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBp bnQ0cmFuZ2UgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitJbmRleGVzOgorICAg ICJ0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6CisgICAg InRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lk MSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX21s dHJuZzIoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKworRFJPUCBUQUJMRSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZzsKKy0tCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05T VFJBSU5UCistLQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKAor CWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5nZSwKKwlwYXJlbnRfaWQg aW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0Qg dmFsaWRfYXQpOworLS0gVHdvIHNjYWxhciBjb2x1bW5zOgorQ1JFQVRFIFRBQkxFIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0 ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisJcGFyZW50X2lkMiBpbnQ0 cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJl bnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgUEVSSU9EIHZhbGlkX2F0KTsKK1xkIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nCisgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyIKKyAgIENvbHVtbiAgIHwgICAgICBUeXBlICAgICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgICAg ICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfYXQgICB8IGRhdGVtdWx0aXJh bmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyBwYXJlbnRfaWQxIHwgaW50NHJhbmdl ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZDIgfCBpbnQ0cmFu Z2UgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZ19wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKQorRm9yZWlnbi1rZXkgY29uc3RyYWludHM6CisgICAgInRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrIiBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFy ZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIo aWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKworLS0gc2hvdWxkIGZhaWwgYmVjYXVzZSBv ZiBkdXBsaWNhdGUgcmVmZXJlbmNlZCBjb2x1bW5zOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfZmsyCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHBhcmVudF9pZCkK KwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCBpZCk7CitFUlJPUjog IGZvcmVpZ24ga2V5IHJlZmVyZW5jZWQtY29sdW1ucyBsaXN0IG11c3Qgbm90IGNvbnRhaW4g ZHVwbGljYXRlcworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVhZHkKKy0tCitERUxFVEUg RlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnKSksICdbMSwyKScpOworQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCUFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJ T0QgdmFsaWRfYXQpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZwor CURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAyJywgJzIwMTgtMDQtMDEnKSksICdbMSwyKScpOworLS0gc2hvdWxkIGZhaWw6CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBF UklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklP RCB2YWxpZF9hdCk7CitFUlJPUjogIGluc2VydCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiCitERVRBSUw6ICBLZXkgKHBhcmVudF9p ZCwgdmFsaWRfYXQpPShbMSwyKSwge1syMDE4LTAxLTAyLDIwMTgtMDQtMDEpfSkgaXMgbm90 IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX21sdHJuZyIuCistLSBva2F5IGFnYWluOgor REVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlk X2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0 KTsKKy0tCistLSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVmCistLQorU0VMRUNUIHBnX2dl dF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUg PSAndGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayc7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNF UyB0ZW1wb3JhbF9tbHRybmcoaWQsIFBFUklPRCB2YWxpZF9hdCkKKygxIHJvdykKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4 LTAyLTAxJykpLCAnWzEsMiknKTsKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIw MTgtMDQtMDEnKSksICdbMSwyKScpOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBj b25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIgorREVUQUlMOiAgS2V5 IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtbMjAxOC0wMS0wMiwyMDE4LTA0LTAx KX0pIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciLgorLS0gbm93 IGl0IHNob3VsZCB3b3JrOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAyLTAzJywgJzIwMTgtMDMtMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnKSks ICdbMSwyKScpOworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgdXBkYXRlcworLS0KK1VQ REFURSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAzLTAxJykpIFdIRVJFIGlk ID0gJ1sxLDIpJzsKKy0tIHNob3VsZCBmYWlsOgorVVBEQVRFIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAyJywgJzIwMTgtMDUtMDEnKSkgV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBp bnNlcnQgb3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzEsMiksIHtb MjAxOC0wMS0wMiwyMDE4LTA1LTAxKX0pIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1w b3JhbF9tbHRybmciLgorVVBEQVRFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgU0VUIHBh cmVudF9pZCA9ICdbOCw5KScgV0hFUkUgaWQgPSAnWzEsMiknOworRVJST1I6ICBpbnNlcnQg b3IgdXBkYXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIiB2aW9sYXRl cyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2Zr IgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQsIHZhbGlkX2F0KT0oWzgsOSksIHtbMjAxOC0w MS0wMiwyMDE4LTAzLTAxKX0pIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9t bHRybmciLgorLS0gQUxURVIgRksgREVGRVJSQUJMRQorQkVHSU47CisgIElOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgICAoJ1s1LDYpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkp LAorICAgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEn LCAnMjAxOC0wMy0wMScpKSk7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgICAoJ1szLDQpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSks ICdbNSw2KScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisg ICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisgICAg REVGRVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisgIERFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7IC0tc2hvdWxkIG5vdCBmYWlsIHlldC4KK0NP TU1JVDsgLS0gc2hvdWxkIGZhaWwgaGVyZS4KK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiks IHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0 YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIHVwZGF0ZXMgTk8gQUNUSU9OCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5n LCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNj ZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzUsNiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSk7 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpIFdIRVJFIGlkID0gJ1s1 LDYpJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51 bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUsNiknLCBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKSks CisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAn MjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAzLTAxJykpCitXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAy LTAxJywgJzIwMTgtMDMtMDEnKSk7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1 c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZh bGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYt MDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKK0VSUk9SOiAg dXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBm b3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBv biB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQs IHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxs IHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCist LSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfbWx0 cm5nIFNFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp KTsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfbWx0cm5n IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIKK0RFVEFJ TDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4LTAyLTAx KX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyIuCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJQ1QK Ky0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9h dCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkK KwlPTiBVUERBVEUgUkVTVFJJQ1Q7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGJl Y2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKTsKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkgV0hFUkUgaWQgPSAnWzUsNiknOwor LS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBp ZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00g dGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKSwKKyAgKCdb NSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAz LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAn MjAxOC0wMy0wMScpKTsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3Ro IGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQg PSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScp KQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJST1I6ICB1cGRhdGUg b3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxl ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJl bmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGNoYW5n aW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VU IGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJS T1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xh dGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf ZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5 IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMg c3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n Ii4KKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBOTyBBQ1RJT04KKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlS RUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBh IFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3Qg cmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJykpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhv dWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNu J3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT CisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpKSksCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMs NCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0x MCcpKSwgJ1s1LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQg PSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBi ZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRy bmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJST1I6ICB1cGRhdGUg b3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxl ICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRf YXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJl bmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisJRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVt cG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorCU9OIERFTEVURSBSRVNUUklD VDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJykpKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdb NSw2KSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBu dW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTCisgICgnWzUs NiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpKSksCisgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDIt MDEnLCAnMjAxOC0wMy0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSwgJ1s1 LDYpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNikn IEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScs ICcyMDE4LTAzLTAxJykpOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJv dGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2 KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9t IHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tCistLSB0ZXN0IEZPUkVJ R04gS0VZLCBib3ggcmVmZXJlbmNlcyBib3gKKy0tIChub3QgYWxsb3dlZDogUEVSSU9EIHBh cnQgbXVzdCBiZSBhIHJhbmdlIG9yIG11bHRpcmFuZ2UpCistLQorQ1JFQVRFIFRBQkxFIHRl bXBvcmFsX2JveCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgYm94LAorICBDT05T VFJBSU5UIHRlbXBvcmFsX2JveF9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfYm94CisgICAgICAgICAgICAgIFRhYmxl ICJwdWJsaWMudGVtcG9yYWxfYm94IgorICBDb2x1bW4gIHwgICBUeXBlICAgIHwgQ29sbGF0 aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICAgIHwgaW50NHJhbmdlIHwg ICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCB8IGJveCAgICAgICB8ICAgICAg ICAgICB8IG5vdCBudWxsIHwgCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9ib3hfcGsiIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKworQ1JFQVRFIFRB QkxFIHRlbXBvcmFsX2ZrX2JveDJib3ggKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0 IGJveCwKKyAgcGFyZW50X2lkIGludDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19ib3gyYm94X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UyksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfYm94MmJveF9mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9i b3ggKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBJbnZhbGlkIHR5cGUgZm9y IFBFUklPRCBwYXJ0IGluIEZPUkVJR04gS0VZCitISU5UOiAgVXNlIGEgcmFuZ2Ugb3IgbXVs dGlyYW5nZSB0eXBlLgorLS0KIC0tIEZLIGJldHdlZW4gcGFydGl0aW9uZWQgdGFibGVzCiAt LQogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IGQ5MDRhMjg2ODUzLi44 Y2I2Mzg0MzMxMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9v dmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFw cy5zcWwKQEAgLTY5LDYgKzY5LDI2IEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3JuZzMgRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNfcGs7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3Ju ZzM7CiBEUk9QIFRZUEUgdGV4dHJhbmdlMjsKIAorLS0gUEsgd2l0aCBvbmUgY29sdW1uIHBs dXMgYSBtdWx0aXJhbmdlOgorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX21sdHJuZyAoCisgIGlk IGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisgIENPTlNUUkFJTlQg dGVtcG9yYWxfbWx0cm5nX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBP VkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9tbHRybmcKKworLS0gUEsgd2l0aCB0d28gY29s dW1ucyBwbHVzIGEgbXVsdGlyYW5nZToKKy0tIFdlIGRvbid0IGRyb3AgdGhpcyB0YWJsZSBi ZWNhdXNlIHRlc3RzIGJlbG93IGFsc28gbmVlZCBtdWx0aXBsZSBzY2FsYXIgY29sdW1ucy4K K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9tbHRybmcyICgKKwlpZDEgaW50NHJhbmdlLAorCWlk MiBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9tbHRybmcyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lU SE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9tbHRybmcyCitTRUxFQ1QgcGdfZ2V0 X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9 ICd0ZW1wb3JhbF9tbHRybmcyX3BrJzsKK1NFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5k aWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBv cmFsX21sdHJuZzJfcGsnOworCiAtLSBVTklRVUUgd2l0aCBubyBjb2x1bW5zIGp1c3QgV0lU SE9VVCBPVkVSTEFQUzoKIAogQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKApAQCAtMjA3 LDYgKzIyNywxOSBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLAogSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVMTCwgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcg KGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzMsNCknLCBOVUxMKTsKIAorLS0gb2theToKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMSwy KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAz JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcy MDE4LTA0LTA0JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDE4LTAxLTA1JykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsIE5VTEwpKSk7CisKKy0tIHNob3VsZCBmYWlsOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoTlVM TCwgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDEtMDUn KSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1szLDQpJywgTlVMTCk7CisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfbWx0cm5nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKwogLS0KIC0tIHRlc3QgYSByYW5nZSB3aXRoIGJvdGgg YSBQSyBhbmQgYSBVTklRVUUgY29uc3RyYWludAogLS0KQEAgLTcyNCw2ICs3NTcsMzU2IEBA IEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKIAkJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9ybmcKIAkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsK IAorLS0KKy0tIHRlc3QgRk9SRUlHTiBLRVksIG11bHRpcmFuZ2UgcmVmZXJlbmNlcyBtdWx0 aXJhbmdlCistLQorCistLSBDYW4ndCBjcmVhdGUgYSBGSyB3aXRoIGEgbWlzbWF0Y2hlZCBt dWx0aXJhbmdlIHR5cGUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n ICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgaW50NG11bHRpcmFuZ2UsCisJcGFyZW50 X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf cGsyIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrMiBGT1JFSUdOIEtFWSAocGFy ZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5n IChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGly YW5nZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVt cG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKK0RST1AgVEFCTEUgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKKworLS0gd2l0aCBtaXNtYXRjaGVkIFBFUklPRCBj b2x1bW5zOgorCistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMg KGlkLCB2YWxpZF9hdCkKKy0tIFJFRkVSRU5DRVMgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJ T0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5n ZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRf YXQpCistLSBib3RoIHNob3VsZCBzcGVjaWZ5IFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0 ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdf ZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRf YXQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JFSUdOIEtFWSBw YXJ0IHNob3VsZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlbXVsdGlyYW5n ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxB UFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayBGT1JFSUdO IEtFWSAocGFyZW50X2lkLCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQp IFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3Bl Y2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgK KwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lk IGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCispOworLS0gKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCkKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRf YXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlS RUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQpCispOworLS0gKHBhcmVudF9pZCkgUkVG RVJFTkNFUyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRp cmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9S RUlHTiBLRVkgKHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlk LCBQRVJJT0QgdmFsaWRfYXQpCispOworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVm ZXJlbmNlZCB0YWJsZToKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJF TkNFUyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorCXBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcK Kyk7CitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CistLSAocGFyZW50 X2lkKSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFu Z2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlH TiBLRVkgKHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcKKyk7CisK Ky0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRlIHJlZmVyZW5jZWQgY29sdW1u czoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5n ZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9E IHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcgKGlkLCBQRVJJT0Qg aWQpCispOworCistLSBUd28gc2NhbGFyIGNvbHVtbnMKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVt dWx0aXJhbmdlLAorCXBhcmVudF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9pZDIgaW50NHJh bmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfcGsgUFJJTUFS WSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBw YXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0 cm5nMiAoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZworRFJPUCBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsK KworLS0KKy0tIHRlc3QgQUxURVIgVEFCTEUgQUREIENPTlNUUkFJTlQKKy0tCisKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nICgKKwlpZCBpbnQ0cmFuZ2UsCisJ dmFsaWRfYXQgZGF0ZW11bHRpcmFuZ2UsCisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJF RkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0tIFR3 byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1s dHJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlLAorCXBh cmVudF9pZDEgaW50NHJhbmdlLAorCXBhcmVudF9pZDIgaW50NHJhbmdlLAorCUNPTlNUUkFJ TlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmdfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZh bGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIFBFUklP RCB2YWxpZF9hdCk7CitcZCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworCistLSBzaG91 bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mazIKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQ RVJJT0QgcGFyZW50X2lkKQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVS SU9EIGlkKTsKKworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVhZHkKKy0tCisKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZms7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEsMiknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMi0wMScpKSwgJ1sxLDIpJyk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBF UklPRCB2YWxpZF9hdCk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n CisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzIsMyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDInLCAnMjAxOC0wNC0wMScpKSwgJ1sxLDIpJyk7CistLSBzaG91bGQgZmFpbDoKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVS SU9EIHZhbGlkX2F0KTsKKy0tIG9rYXkgYWdhaW46CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZworCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwlGT1JF SUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1w b3JhbF9tbHRybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpOworCistLQorLS0gdGVzdCBwZ19n ZXRfY29uc3RyYWludGRlZgorLS0KKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9p ZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZ19mayc7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jaW5nIGluc2VydHMK Ky0tCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJykpLCAnWzEsMiknKTsKKy0tIHNob3Vs ZCBmYWlsOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnKSksICdbMSwyKScpOworLS0gbm93 IGl0IHNob3VsZCB3b3JrOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFs aWRfYXQpIFZBTFVFUyAoJ1sxLDIpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAyLTAzJywgJzIwMTgtMDMtMDMnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syLDMpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnKSks ICdbMSwyKScpOworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2luZyB1cGRhdGVzCistLQor CitVUERBVEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBTRVQgdmFsaWRfYXQgPSBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMy0wMScpKSBXSEVS RSBpZCA9ICdbMSwyKSc7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMicsICcyMDE4LTA1LTAxJykpIFdIRVJFIGlkID0gJ1sxLDIpJzsKK1VQREFU RSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFNFVCBwYXJlbnRfaWQgPSAnWzgsOSknIFdI RVJFIGlkID0gJ1sxLDIpJzsKKworLS0gQUxURVIgRksgREVGRVJSQUJMRQorCitCRUdJTjsK KyAgSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUwor ICAgICgnWzUsNiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpKSksCisgICAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpKTsKKyAgSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUwor ICAgICgnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAn MjAxOC0wMS0xMCcpKSwgJ1s1LDYpJyk7CisgIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcKKyAgICBBTFRFUiBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmdfZmsKKyAgICBERUZFUlJBQkxFIElOSVRJQUxMWSBERUZFUlJFRDsKKworICBERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknOyAtLXNob3VsZCBu b3QgZmFpbCB5ZXQuCitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRFIHRl bXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKKy0tIGEgUEsgdXBk YXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVu Y2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSkpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpKSBX SEVSRSBpZCA9ICdbNSw2KSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4g dGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2Ug aXNuJ3Q6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNikn OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUwor ICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSkpLAorICAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDQp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn KSksICdbNSw2KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRfYXQgPSBk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAnMjAxNi0wMy0wMScpKQor V0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOworLS0gYSBQSyB1cGRhdGUgdGhh dCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitVUERBVEUgdGVtcG9yYWxf bWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0w MS0wMScsICcyMDE2LTAyLTAxJykpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0 ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEn KSk7CistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpKTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFJFU1RSSUNU CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmc7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZms7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZyAoaWQsIFBFUklPRCB2YWxpZF9h dCkKKwlPTiBVUERBVEUgUkVTVFJJQ1Q7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRz IGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNSw2KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKTsKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKSkgV0hFUkUgaWQgPSAnWzUsNikn OworLS0gYSBQSyB1cGRhdGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJp YyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKSwKKyAg KCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK1VQ REFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE2LTAyLTAxJywgJzIwMTYtMDMtMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEn LCAnMjAxOC0wMy0wMScpKTsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBi b3RoIGFyZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgdmFsaWRf YXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0w MScpKQorV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOworLS0gY2hhbmdpbmcg dGhlIHNjYWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQg PSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZ19mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2Zr CisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5D RVMgdGVtcG9yYWxfbWx0cm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0tIGEgUEsgZGVs ZXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVu Y2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s1LDYpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MTgtMDItMDEnKSkpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0g J1s1LDYpJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhl IG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdb NSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJykpKSwKKyAgKCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRh dGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAn WzUsNiknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2 KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAx JywgJzIwMTgtMDMtMDEnKSk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2Ug Ym90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVy ZW5jZWQgZGVsZXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5n LCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0 cm5nX2ZrOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCUFERCBD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwlGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRy bmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisJT04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s1LDYpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSkp OworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKy0t IGEgUEsgZGVsZXRlIHRoYXQgc3VjY2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQg aXMgcmVmZXJlbmNlZCBiZWNhdXNlIHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMKKyAgKCdbNSw2KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpKSwKKyAg KCdbNSw2KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4 LTAzLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpLCAnWzUsNiknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMt MDEnKSk7CistLSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVm ZXJlbmNlZDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2 KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKSk7CisKKy0tCistLSB0ZXN0IEZPUkVJR04gS0VZLCBib3ggcmVm ZXJlbmNlcyBib3gKKy0tIChub3QgYWxsb3dlZDogUEVSSU9EIHBhcnQgbXVzdCBiZSBhIHJh bmdlIG9yIG11bHRpcmFuZ2UpCistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfYm94ICgK KyAgaWQgaW50NHJhbmdlLAorICB2YWxpZF9hdCBib3gsCisgIENPTlNUUkFJTlQgdGVtcG9y YWxfYm94X3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykK Kyk7CitcZCB0ZW1wb3JhbF9ib3gKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX2JveDJi b3ggKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IGJveCwKKyAgcGFyZW50X2lkIGlu dDRyYW5nZSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ib3gyYm94X3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisgIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfYm94MmJveF9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisgICAgUkVGRVJFTkNFUyB0ZW1wb3JhbF9ib3ggKGlkLCBQRVJJT0QgdmFsaWRf YXQpCispOworCiAtLQogLS0gRksgYmV0d2VlbiBwYXJ0aXRpb25lZCB0YWJsZXMKIC0tCi0t IAoyLjQyLjAKCg== --------------rOiwMPZjbSgQ0WsI4nnNtOso Content-Type: text/x-patch; charset=UTF-8; name="v31-0003-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v31-0003-Add-support-funcs-for-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSA0NmNlN2U3MGFiM2ZhNTM0NTdhNjY0MTA5OGY3OWFjMDQ0OTFkYmIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMzAgRGVjIDIwMjMgMjM6MTA6NTkgLTA4 MDAKU3ViamVjdDogW1BBVENIIHYzMSAzLzZdIEFkZCBzdXBwb3J0IGZ1bmNzIGZvciBGT1Ig UE9SVElPTiBPRgoKLSBBZGRzIGludGVyc2VjdCBzdXBwb3J0IHByb2NzLgoKICBUaGVzZSBq dXN0IGNhbGwgdGhlIGV4aXN0aW5nIGludGVyc2VjdCBmdW5jdGlvbnMsCiAgYnV0IHRoZXkg bGV0IHVzIGNvbXB1dGUgdGhlIHBvcnRpb24gb2YgYSByb3cgdGhhdCBpcyB1cGRhdGVkL2Rl bGV0ZWQKICBpbiBhIEZPUiBQT1JUSU9OIGNvbW1hbmQuCgotIEFkZHMge211bHRpLH1yYW5n ZV93aXRob3V0X3BvcnRpb24gc3VwcG9ydCBwcm9jcwoKICBUaGVzZSByZXR1cm4gU0VUT0Yg dGhlaXIgaW5wdXQgdHlwZSBhbmQgd29yayBsaWtlIG1pbnVzIGJ1dCBkb24ndAogIGZhaWwg b24gc3BsaXRzLiBUaGV5IG5ldmVyIGNvbnRhaW4gZW1wdHkgZWxlbWVudHMuIFdlIHdpbGwg dXNlIHRoaXMgdG8KICBjb21wdXRlIEZPUiBQT1JUSU9OIE9GIGxlZnRvdmVycy4KLS0tCiBj b250cmliL2Jsb29tL2JsdmFsaWRhdGUuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgMiAr LQogZG9jL3NyYy9zZ21sL2dpc3Quc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgMTU1 ICsrKysrKysrKysrKysrKystCiBkb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgICAgICAgICAg ICAgICAgICAgICAgfCAgMTQgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFs aWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWxp ZGF0ZS5jICAgICAgICAgIHwgIDEyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0 dmFsaWRhdGUuYyAgICAgICAgfCAgMjkgKystLQogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4 L2FtdmFsaWRhdGUuYyAgICAgICAgIHwgICA5ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL25idHZhbGlkYXRlLmMgICAgICAgfCAgIDggKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9z cGdpc3Qvc3BndmFsaWRhdGUuYyAgICAgICB8ICAgOCArLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L211bHRpcmFuZ2V0eXBlcy5jICAgICAgIHwgIDcxICsrKysrKysrCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jICAgICAgICAgICAgfCAxNjMgKysrKysrKysrKysr KysrKysrCiBzcmMvaW5jbHVkZS9hY2Nlc3MvYW12YWxpZGF0ZS5oICAgICAgICAgICAgICAg fCAgIDQgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmggICAgICAgICAgICAgICAgICAg ICB8ICAgNCArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0ICAgICAgICAg ICAgIHwgIDE1ICsrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAg ICAgICAgfCAgIDggKwogc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oICAgICAgICAg ICAgICAgIHwgICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5 cGVzLm91dCB8IDExNiArKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3JhbmdldHlwZXMub3V0ICAgICAgfCAgNTQgKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9tdWx0aXJhbmdldHlwZXMuc3FsICAgICAgfCAgMjIgKysrCiBzcmMvdGVzdC9yZWdyZXNz L3NxbC9yYW5nZXR5cGVzLnNxbCAgICAgICAgICAgfCAgMTAgKysKIDIxIGZpbGVzIGNoYW5n ZWQsIDY3NyBpbnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9j b250cmliL2Jsb29tL2JsdmFsaWRhdGUuYyBiL2NvbnRyaWIvYmxvb20vYmx2YWxpZGF0ZS5j CmluZGV4IDg4YzVhNzkxOTc1Li45ZTM5ZTM5ZTE3NCAxMDA2NDQKLS0tIGEvY29udHJpYi9i bG9vbS9ibHZhbGlkYXRlLmMKKysrIGIvY29udHJpYi9ibG9vbS9ibHZhbGlkYXRlLmMKQEAg LTEwNSw3ICsxMDUsNyBAQCBibHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0Y2gg KHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgQkxPT01fSEFTSF9QUk9DOgot CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0 T0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQkxLCAxLCBvcGNr ZXl0eXBlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQkxPT01fT1BUSU9OU19QUk9DOgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCAyOTgxN2ZiMzNjNi4uMWEwOWFkMGZiZjcgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sCkBAIC04NjUsNyArODY1LDcgQEAKICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJh PgogICAgICAgIFRoZSBCLXRyZWUgb3BlcmF0b3IgZmFtaWx5IHRoaXMgZW50cnkgc29ydHMg YWNjb3JkaW5nIHRvLCBpZiBhbgotICAgICAgIG9yZGVyaW5nIG9wZXJhdG9yOyB6ZXJvIGlm IGEgc2VhcmNoIG9wZXJhdG9yCisgICAgICAgb3JkZXJpbmcgb3BlcmF0b3I7IHplcm8gaWYg YSBzZWFyY2ggb3BlcmF0b3Igb3IgcG9ydGlvbiBvcGVyYXRvcgogICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvZ2lzdC5zZ21sIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbAppbmRleCA4YTE5ZjE1 NmQ4My4uZDQzNDc1NDg4ZTcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9naXN0LnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2dpc3Quc2dtbApAQCAtMjcyLDcgKzI3Miw3IEBAIENSRUFU RSBJTkRFWCBPTiBteV90YWJsZSBVU0lORyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29w cyk7CiAKICA8cGFyYT4KICAgIFRoZXJlIGFyZSBmaXZlIG1ldGhvZHMgdGhhdCBhbiBpbmRl eCBvcGVyYXRvciBjbGFzcyBmb3IKLSAgIDxhY3JvbnltPkdpU1Q8L2Fjcm9ueW0+IG11c3Qg cHJvdmlkZSwgYW5kIHNldmVuIHRoYXQgYXJlIG9wdGlvbmFsLgorICAgPGFjcm9ueW0+R2lT VDwvYWNyb255bT4gbXVzdCBwcm92aWRlLCBhbmQgbmluZSB0aGF0IGFyZSBvcHRpb25hbC4K ICAgIENvcnJlY3RuZXNzIG9mIHRoZSBpbmRleCBpcyBlbnN1cmVkCiAgICBieSBwcm9wZXIg aW1wbGVtZW50YXRpb24gb2YgdGhlIDxmdW5jdGlvbj5zYW1lPC9mdW5jdGlvbj4sIDxmdW5j dGlvbj5jb25zaXN0ZW50PC9mdW5jdGlvbj4KICAgIGFuZCA8ZnVuY3Rpb24+dW5pb248L2Z1 bmN0aW9uPiBtZXRob2RzLCB3aGlsZSBlZmZpY2llbmN5IChzaXplIGFuZCBzcGVlZCkgb2Yg dGhlCkBAIC0zMDAsNiArMzAwLDEyIEBAIENSRUFURSBJTkRFWCBPTiBteV90YWJsZSBVU0lO RyBHSVNUIChteV9pbmV0X2NvbHVtbiBpbmV0X29wcyk7CiAgICA8ZmlsZW5hbWU+c3JjL2lu Y2x1ZGUvYWNjZXNzL3N0cmF0bnVtLmg8L2ZpbGVuYW1lPikgaW50byBzdHJhdGVneSBudW1i ZXJzCiAgICB1c2VkIGJ5IHRoZSBvcGVyYXRvciBjbGFzcy4gIFRoaXMgbGV0cyB0aGUgY29y ZSBjb2RlIGxvb2sgdXAgb3BlcmF0b3JzIGZvcgogICAgdGVtcG9yYWwgY29uc3RyYWludCBp bmRleGVzLgorICAgVGhlIG9wdGlvbmFsIHRoaXJ0ZWVudGggbWV0aG9kIDxmdW5jdGlvbj5p bnRlcnNlY3Q8L2Z1bmN0aW9uPiBpcyB1c2VkIGJ5CisgICA8bGl0ZXJhbD5GT1IgUE9SVElP TiBPRjwvbGl0ZXJhbD4gdG8gY29tcHV0ZSB0aGUgbmV3IGJvdW5kcyBvZiB0aGUgdXBkYXRl ZC8KKyAgIGRlbGV0ZWQgcmVjb3JkLgorICAgVGhlIG9wdGlvbmFsIGZvdXJ0ZWVudGggbWV0 aG9kIDxmdW5jdGlvbj53aXRob3V0X3BvcnRpb248L2Z1bmN0aW9uPiBpcyB1c2VkIGJ5Cisg ICA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gdG8gY29tcHV0ZSB0aGUgbGVm dG92ZXIgcmVjb3JkcyBvdXRzaWRlIHRoZQorICAgdGFyZ2V0ZWQgYm91bmRzLgogIDwvcGFy YT4KIAogIDx2YXJpYWJsZWxpc3Q+CkBAIC0xMjQ0LDYgKzEyNTAsMTUzIEBAIG15X3N0cmF0 bnVtKFBHX0ZVTkNUSU9OX0FSR1MpCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+ PGZ1bmN0aW9uPmludGVyc2VjdDwvZnVuY3Rpb24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+ CisgICAgICA8cGFyYT4KKyAgICAgICBHaXZlbiB0d28gdmFsdWVzIG9mIHRoaXMgb3BjbGFz cywgaXQgcmV0dXJucyB0aGVpciBpbnRlcnNlY3Rpb24uCisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBUaGlzIGlzIHVzZWQgZm9yIHRlbXBvcmFsIHVwZGF0ZSBjb21t YW5kcyB0byBjb21wdXRlIHRoZQorICAgICAgIG5ldyBib3VuZHMgb2YgdGhlIGNoYW5nZWQg cm93LgorICAgICAgPC9wYXJhPgorCisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgPGFjcm9u eW0+U1FMPC9hY3JvbnltPiBkZWNsYXJhdGlvbiBvZiB0aGUgZnVuY3Rpb24gbXVzdCBsb29r IGxpa2UKKyAgICAgICB0aGlzICh1c2luZyA8bGl0ZXJhbD5teV9pbnRlcnNlY3Q8L2xpdGVy YWw+IGFzIGFuIGV4YW1wbGUpOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBteV9yYW5nZV9pbnRlcnNlY3QoYW55cmFuZ2UsIGFueXJhbmdlKQor UkVUVVJOUyBhbnlyYW5nZQorQVMgJ01PRFVMRV9QQVRITkFNRScKK0xBTkdVQUdFIEMgU1RS SUNUOworPC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJh PgorICAgICAgICBUaGUgbWF0Y2hpbmcgY29kZSBpbiB0aGUgQyBtb2R1bGUgY291bGQgdGhl biBmb2xsb3cgdGhpcyBleGFtcGxlOgorCis8cHJvZ3JhbWxpc3Rpbmc+CitEYXR1bQorbXlf cmFuZ2VfaW50ZXJzZWN0KFBHX0ZVTkNUSU9OX0FSR1MpCit7CisgICAgUmFuZ2VUeXBlICAq cjEgPSBQR19HRVRBUkdfUkFOR0VfUCgwKTsKKyAgICBSYW5nZVR5cGUgICpyMiA9IFBHX0dF VEFSR19SQU5HRV9QKDEpOworICAgIFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZTsKKworICAg IC8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJldmVudGVkIGJ5IEFOWVJBTkdFIG1h dGNoaW5nIHJ1bGVzICovCisgICAgaWYgKFJhbmdlVHlwZUdldE9pZChyMSkgIT0gUmFuZ2VU eXBlR2V0T2lkKHIyKSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBlbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8g bm90IG1hdGNoIik7CisKKyAgICB0eXBjYWNoZSA9IHJhbmdlX2dldF90eXBjYWNoZShmY2lu Zm8sIFJhbmdlVHlwZUdldE9pZChyMSkpOworCisgICAgUEdfUkVUVVJOX1JBTkdFX1AocmFu Z2VfaW50ZXJzZWN0X2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIpKTsKK30KKzwvcHJvZ3Jh bWxpc3Rpbmc+CisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgPC92YXJs aXN0ZW50cnk+CisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGZ1bmN0aW9uPndp dGhvdXRfcG9ydGlvbjwvZnVuY3Rpb24+PC90ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAg ICA8cGFyYT4KKyAgICAgICBHaXZlbiB0d28gdmFsdWVzIG9mIHRoaXMgb3BjbGFzcywgaXQg c3VidHJhY3RzIHRoZSBzZWNvbmQgZm9yIHRoZSBmaXJzdAorICAgICAgIGFuZCByZXR1cm5z IGFuIGFycmF5IG9mIHRoZSByZXN1bHRzLgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhpcyBpcyB1c2VkIGZvciB0ZW1wb3JhbCB1cGRhdGUvZGVsZXRlIGNvbW1h bmRzIHRvIGNvbXB1dGUgdGhlCisgICAgICAgYm91bmRzIG9mIHRoZSB1bnRvdWNoZWQgZHVy YXRpb24uCisgICAgICA8L3BhcmE+CisKKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSA8YWNy b255bT5TUUw8L2Fjcm9ueW0+IGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBtdXN0IGxv b2sgbGlrZQorICAgICAgIHRoaXMgKHVzaW5nIDxsaXRlcmFsPm15X3JhbmdlX3dpdGhvdXRf cG9ydGlvbjwvbGl0ZXJhbD4gYXMgYW4gZXhhbXBsZSk6CisKKzxwcm9ncmFtbGlzdGluZz4K K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIG15X3JhbmdlX3dpdGhvdXRfcG9ydGlvbihh bnlyYW5nZSwgYW55cmFuZ2UpCitSRVRVUk5TIGFueWFycmF5CitBUyAnTU9EVUxFX1BBVEhO QU1FJworTEFOR1VBR0UgQyBTVFJJQ1Q7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgICAgPC9w YXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBtYXRjaGluZyBjb2RlIGluIHRo ZSBDIG1vZHVsZSBjb3VsZCB0aGVuIGZvbGxvdyB0aGlzIGV4YW1wbGU6CisKKzxwcm9ncmFt bGlzdGluZz4KK0RhdHVtCitteV9yYW5nZV93aXRob3V0X3BvcnRpb24oUEdfRlVOQ1RJT05f QVJHUykKK3sKKyAgICB0eXBlZGVmIHN0cnVjdCB7CisgICAgICAgIFJhbmdlVHlwZSAgKnJz WzJdOworICAgICAgICBpbnQgICAgICAgICBuOworICAgIH0gcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uX2ZjdHg7CisKKyAgICBGdW5jQ2FsbENvbnRleHQgKmZ1bmNjdHg7CisgICAgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uX2ZjdHggKmZjdHg7CisgICAgTWVtb3J5Q29udGV4dCBvbGRjb250 ZXh0OworCisgICAgLyogc3R1ZmYgZG9uZSBvbmx5IG9uIHRoZSBmaXJzdCBjYWxsIG9mIHRo ZSBmdW5jdGlvbiAqLworICAgIGlmIChTUkZfSVNfRklSU1RDQUxMKCkpCisgICAgeworICAg ICAgICBSYW5nZVR5cGUgICAgICAgKnIxOworICAgICAgICBSYW5nZVR5cGUgICAgICAgKnIy OworICAgICAgICBPaWQgICAgICAgICAgICAgIHJuZ3R5cGlkOworICAgICAgICBUeXBlQ2Fj aGVFbnRyeSAgKnR5cGNhY2hlOworCisgICAgICAgIC8qIGNyZWF0ZSBhIGZ1bmN0aW9uIGNv bnRleHQgZm9yIGNyb3NzLWNhbGwgcGVyc2lzdGVuY2UgKi8KKyAgICAgICAgZnVuY2N0eCA9 IFNSRl9GSVJTVENBTExfSU5JVCgpOworCisgICAgICAgIC8qCisgICAgICAgICAqIHN3aXRj aCB0byBtZW1vcnkgY29udGV4dCBhcHByb3ByaWF0ZSBmb3IgbXVsdGlwbGUgZnVuY3Rpb24g Y2FsbHMKKyAgICAgICAgICovCisgICAgICAgIG9sZGNvbnRleHQgPSBNZW1vcnlDb250ZXh0 U3dpdGNoVG8oZnVuY2N0eC0mZ3Q7bXVsdGlfY2FsbF9tZW1vcnlfY3R4KTsKKworICAgICAg ICByMSA9IFBHX0dFVEFSR19SQU5HRV9QKDApOworICAgICAgICByMiA9IFBHX0dFVEFSR19S QU5HRV9QKDEpOworCisgICAgICAgIC8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJl dmVudGVkIGJ5IEFOWVJBTkdFIG1hdGNoaW5nIHJ1bGVzICovCisgICAgICAgIGlmIChSYW5n ZVR5cGVHZXRPaWQocjEpICE9IFJhbmdlVHlwZUdldE9pZChyMikpCisgICAgICAgICAgICBl bG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMgZG8gbm90IG1hdGNoIik7CisKKyAgICAgICAgLyog YWxsb2NhdGUgbWVtb3J5IGZvciB1c2VyIGNvbnRleHQgKi8KKyAgICAgICAgZmN0eCA9IChy YW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCAqKSBwYWxsb2Moc2l6ZW9mKHJhbmdlX3dpdGhv dXRfcG9ydGlvbl9mY3R4KSk7CisKKyAgICAgICAgLyoKKyAgICAgICAgICogSW5pdGlhbGl6 ZSBzdGF0ZS4KKyAgICAgICAgICogV2UgY2FuJ3Qgc3RvcmUgdGhlIHJhbmdlIHR5cGNhY2hl IGluIGZuX2V4dHJhIGJlY2F1c2UgdGhlIGNhbGxlcgorICAgICAgICAgKiB1c2VzIHRoYXQg Zm9yIHRoZSBTUkYgc3RhdGUuCisgICAgICAgICAqLworICAgICAgICBybmd0eXBpZCA9IFJh bmdlVHlwZUdldE9pZChyMSk7CisgICAgICAgIHR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2Fj aGUocm5ndHlwaWQsIFRZUEVDQUNIRV9SQU5HRV9JTkZPKTsKKyAgICAgICAgaWYgKHR5cGNh Y2hlLSZndDtybmdlbGVtdHlwZSA9PSBOVUxMKQorICAgICAgICAgICAgZWxvZyhFUlJPUiwg InR5cGUgJXUgaXMgbm90IGEgcmFuZ2UgdHlwZSIsIHJuZ3R5cGlkKTsKKyAgICAgICAgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIsIGZjdHgtJmd0 O3JzLCAmYW1wO2ZjdHgtJmd0O24pOworCisgICAgICAgIGZ1bmNjdHgtJmd0O3VzZXJfZmN0 eCA9IGZjdHg7CisgICAgICAgIE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsK KyAgICB9CisKKyAgICAvKiBzdHVmZiBkb25lIG9uIGV2ZXJ5IGNhbGwgb2YgdGhlIGZ1bmN0 aW9uICovCisgICAgZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisgICAgZmN0eCA9 IGZ1bmNjdHgtJmd0O3VzZXJfZmN0eDsKKworICAgIGlmIChmdW5jY3R4LSZndDtjYWxsX2Nu dHIgJmx0OyBmY3R4LSZndDtuKQorICAgIHsKKyAgICAgICAgLyoKKyAgICAgICAgICogV2Ug bXVzdCBrZWVwIHRoZXNlIG9uIHNlcGFyYXRlIGxpbmVzCisgICAgICAgICAqIGJlY2F1c2Ug U1JGX1JFVFVSTl9ORVhUIGRvZXMgY2FsbF9jbnRyKys6CisgICAgICAgICAqLworICAgICAg ICBSYW5nZVR5cGUgKnJldCA9IGZjdHgtJmd0O3JzW2Z1bmNjdHgtJmd0O2NhbGxfY250cl07 CisgICAgICAgIFNSRl9SRVRVUk5fTkVYVChmdW5jY3R4LCBSYW5nZVR5cGVQR2V0RGF0dW0o cmV0KSk7CisgICAgfQorICAgIGVsc2UKKyAgICAgICAgLyogZG8gd2hlbiB0aGVyZSBpcyBu byBtb3JlIGxlZnQgKi8KKyAgICAgICAgU1JGX1JFVFVSTl9ET05FKGZ1bmNjdHgpOworfQor PC9wcm9ncmFtbGlzdGluZz4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAg ICA8L3Zhcmxpc3RlbnRyeT4KICAgPC92YXJpYWJsZWxpc3Q+CiAKICAgPHBhcmE+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwveGluZGV4LnNnbWwgYi9kb2Mvc3JjL3NnbWwveGluZGV4 LnNnbWwKaW5kZXggM2ExOWRhYjE1ZTAuLmY1OTY2Mzc1ZWFkIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwveGluZGV4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3hpbmRleC5zZ21sCkBA IC01MDgsNyArNTA4LDcgQEAKICAgIDwvdGFibGU+CiAKICAgPHBhcmE+Ci0gICBHaVNUIGlu ZGV4ZXMgaGF2ZSB0d2VsdmUgc3VwcG9ydCBmdW5jdGlvbnMsIHNldmVuIG9mIHdoaWNoIGFy ZSBvcHRpb25hbCwKKyAgIEdpU1QgaW5kZXhlcyBoYXZlIGZvdXJ0ZWVuIHN1cHBvcnQgZnVu Y3Rpb25zLCBuaW5lIG9mIHdoaWNoIGFyZSBvcHRpb25hbCwKICAgIGFzIHNob3duIGluIDx4 cmVmIGxpbmtlbmQ9InhpbmRleC1naXN0LXN1cHBvcnQtdGFibGUiLz4uCiAgICAoRm9yIG1v cmUgaW5mb3JtYXRpb24gc2VlIDx4cmVmIGxpbmtlbmQ9Imdpc3QiLz4uKQogICA8L3BhcmE+ CkBAIC01OTYsNiArNTk2LDE4IEBACiAgICAgICAgIHVzZWQgYnkgdGhlIG9wZXJhdG9yIGNs YXNzIChvcHRpb25hbCk8L2VudHJ5PgogICAgICAgIDxlbnRyeT4xMjwvZW50cnk+CiAgICAg ICA8L3Jvdz4KKyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxmdW5jdGlvbj5pbnRlcnNl Y3Q8L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgICAgPGVudHJ5PmNvbXB1dGVzIGludGVyc2Vj dGlvbiB3aXRoIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPgorICAgICAgICBi b3VuZHM8L2VudHJ5PgorICAgICAgIDxlbnRyeT4xMzwvZW50cnk+CisgICAgICA8L3Jvdz4K KyAgICAgIDxyb3c+CisgICAgICAgPGVudHJ5PjxmdW5jdGlvbj53aXRob3V0X3BvcnRpb248 L2Z1bmN0aW9uPjwvZW50cnk+CisgICAgICAgPGVudHJ5PmNvbXB1dGVzIHJlbWFpbmluZyBk dXJhdGlvbihzKSBvdXRzaWRlCisgICAgICAgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xp dGVyYWw+IGJvdW5kczwvZW50cnk+CisgICAgICAgPGVudHJ5PjE0PC9lbnRyeT4KKyAgICAg IDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdyb3VwPgogICAgPC90YWJsZT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9icmluL2JyaW5fdmFsaWRhdGUuYwppbmRleCA1MzlhYzljYjA2 NC4uMDgyZjk2Yjg0N2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmluL2Jy aW5fdmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluX3ZhbGlk YXRlLmMKQEAgLTg3LDIxICs4NywyMSBAQCBicmludmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQp CiAJCXN3aXRjaCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBCUklOX1BS T0NOVU1fT1BDSU5GTzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zv cm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwgdHJ1ZSwK IAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBC UklOX1BST0NOVU1fQUREVkFMVUU6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXBy b2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNlLCB0cnVlLAog CQkJCQkJCQkJCQk0LCA0LCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJ CUlOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJSSU5f UFJPQ05VTV9DT05TSVNURU5UOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9j X3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBCT09MT0lELCBmYWxzZSwgdHJ1ZSwKIAkJ CQkJCQkJCQkJMywgNCwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJ TlRFUk5BTE9JRCwgSU5UNE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJSSU5fUFJPQ05V TV9VTklPTjoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUo cHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTMs IDMsIElOVEVSTkFMT0lELCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQp OwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52 YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW52YWxpZGF0ZS5jCmluZGV4 IDc0NDIwYTEyOWFhLi43NDhiOTRhODkzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpbi9naW52YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2lu dmFsaWRhdGUuYwpAQCAtMTA0LDM3ICsxMDQsMzcgQEAgZ2ludmFsaWRhdGUoT2lkIG9wY2xh c3NvaWQpCiAJCXN3aXRjaCAocHJvY2Zvcm0tPmFtcHJvY251bSkKIAkJewogCQkJY2FzZSBH SU5fQ09NUEFSRV9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9j Zm9ybS0+YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJ CQkJCQkJCQkyLCAyLCBvcGNrZXl0eXBlLCBvcGNrZXl0eXBlKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgR0lOX0VYVFJBQ1RWQUxVRV9QUk9DOgogCQkJCS8qIFNvbWUgb3BjbGFzc2VzIG9t aXQgbnVsbEZsYWdzICovCi0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJv Y19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCBmYWxz ZSwKIAkJCQkJCQkJCQkJMiwgMywgb3BjaW50eXBlLCBJTlRFUk5BTE9JRCwKIAkJCQkJCQkJ CQkJSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fRVhUUkFDVFFVRVJZ X1BST0M6CiAJCQkJLyogU29tZSBvcGNsYXNzZXMgb21pdCBudWxsRmxhZ3MgYW5kIHNlYXJj aE1vZGUgKi8KLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFt cHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJ CQkJCQkJCQk1LCA3LCBvcGNpbnR5cGUsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJTlQy T0lELCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlOVEVSTkFMT0lE LCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJTl9DT05TSVNURU5UX1BS T0M6CiAJCQkJLyogU29tZSBvcGNsYXNzZXMgb21pdCBxdWVyeUtleXMgYW5kIG51bGxGbGFn cyAqLwotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9j LCBCT09MT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQk2LCA4 LCBJTlRFUk5BTE9JRCwgSU5UMk9JRCwKIAkJCQkJCQkJCQkJb3BjaW50eXBlLCBJTlQ0T0lE LAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCiAJCQkJCQkJCQkJCUlO VEVSTkFMT0lELCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEdJTl9DT01Q QVJFX1BBUlRJQUxfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgSU5UNE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVDRPSUQsIGZhbHNlLCBmYWxzZSwKIAkJ CQkJCQkJCQkJNCwgNCwgb3Bja2V5dHlwZSwgb3Bja2V5dHlwZSwKIAkJCQkJCQkJCQkJSU5U Mk9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSU5fVFJJQ09OU0lT VEVOVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBDSEFST0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgQ0hBUk9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJ CQk3LCA3LCBJTlRFUk5BTE9JRCwgSU5UMk9JRCwKIAkJCQkJCQkJCQkJb3BjaW50eXBlLCBJ TlQ0T0lELAogCQkJCQkJCQkJCQlJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jCmluZGV4IDA5MDE1NDNhNjBhLi4wYTIz OTVmYmFmNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlk YXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMKQEAg LTEwNiwzNiArMTA2LDM2IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJc3dp dGNoIChwcm9jZm9ybS0+YW1wcm9jbnVtKQogCQl7CiAJCQljYXNlIEdJU1RfQ09OU0lTVEVO VF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1w cm9jLCBCT09MT0lELCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUo cHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQk1 LCA1LCBJTlRFUk5BTE9JRCwgb3BjaW50eXBlLAogCQkJCQkJCQkJCQlJTlQyT0lELCBPSURP SUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgR0lTVF9VTklPTl9QUk9D OgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBv cGNrZXl0eXBlLCBmYWxzZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJv Y2Zvcm0tPmFtcHJvYywgb3Bja2V5dHlwZSwgZmFsc2UsIGZhbHNlLAogCQkJCQkJCQkJCQky LCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBH SVNUX0NPTVBSRVNTX1BST0M6CiAJCQljYXNlIEdJU1RfREVDT01QUkVTU19QUk9DOgogCQkJ Y2FzZSBHSVNUX0ZFVENIX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJl KHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tf YW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFsc2Us IHRydWUsCiAJCQkJCQkJCQkJCTEsIDEsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKIAkJ CWNhc2UgR0lTVF9QRU5BTFRZX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCB0cnVlLAorCQkJCW9rID0gY2hl Y2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgZmFs c2UsIHRydWUsCiAJCQkJCQkJCQkJCTMsIDMsIElOVEVSTkFMT0lELAogCQkJCQkJCQkJCQlJ TlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSVNUX1BJ Q0tTUExJVF9QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBJTlRFUk5BTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19z aWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQsIGZhbHNlLCB0cnVlLAog CQkJCQkJCQkJCQkyLCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFr OwogCQkJY2FzZSBHSVNUX0VRVUFMX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2ln bmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIElOVEVSTkFMT0lELCBmYWxzZSwKKwkJCQlvayA9 IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5URVJOQUxPSUQs IGZhbHNlLCBmYWxzZSwKIAkJCQkJCQkJCQkJMywgMywgb3Bja2V5dHlwZSwgb3Bja2V5dHlw ZSwKIAkJCQkJCQkJCQkJSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBHSVNU X0RJU1RBTkNFX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nm b3JtLT5hbXByb2MsIEZMT0FUOE9JRCwgZmFsc2UsCisJCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEZMT0FUOE9JRCwgZmFsc2UsIGZhbHNlLAog CQkJCQkJCQkJCQk1LCA1LCBJTlRFUk5BTE9JRCwgb3BjaW50eXBlLAogCQkJCQkJCQkJCQlJ TlQyT0lELCBPSURPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQlicmVhazsKQEAgLTE0MywxMyAr MTQzLDIxIEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQlvayA9IGNoZWNr X2Ftb3B0c3Byb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MpOwogCQkJCWJyZWFrOwog CQkJY2FzZSBHSVNUX1NPUlRTVVBQT1JUX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIHRydWUsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkxLCAxLCBJTlRFUk5BTE9JRCk7CiAJCQkJYnJlYWs7CiAJ CQljYXNlIEdJU1RfU1RSQVROVU1fUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWdu YXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UMk9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNr X2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgSU5UMk9JRCwgZmFsc2UsIHRy dWUsCiAJCQkJCQkJCQkJCTEsIDEsIElOVDJPSUQpOwogCQkJCWJyZWFrOworCQkJY2FzZSBH SVNUX0lOVEVSU0VDVF9QUk9DOgorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShw cm9jZm9ybS0+YW1wcm9jLCBJbnZhbGlkT2lkLCBmYWxzZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJ MiwgMiwgb3BjaW50eXBlLCBvcGNpbnR5cGUpOworCQkJCWJyZWFrOworCQkJY2FzZSBHSVNU X1dJVEhPVVRfUE9SVElPTl9QUk9DOgorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVy ZShwcm9jZm9ybS0+YW1wcm9jLCBvcGNpbnR5cGUsIHRydWUsIHRydWUsCisJCQkJCQkJCQkJ CTIsIDIsIG9wY2ludHlwZSwgb3BjaW50eXBlKTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6 CiAJCQkJZXJlcG9ydChJTkZPLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09C SkVDVF9ERUZJTklUSU9OKSwKQEAgLTI3MSw3ICsyNzksOCBAQCBnaXN0dmFsaWRhdGUoT2lk IG9wY2xhc3NvaWQpCiAJCWlmIChpID09IEdJU1RfRElTVEFOQ0VfUFJPQyB8fCBpID09IEdJ U1RfRkVUQ0hfUFJPQyB8fAogCQkJaSA9PSBHSVNUX0NPTVBSRVNTX1BST0MgfHwgaSA9PSBH SVNUX0RFQ09NUFJFU1NfUFJPQyB8fAogCQkJaSA9PSBHSVNUX09QVElPTlNfUFJPQyB8fCBp ID09IEdJU1RfU09SVFNVUFBPUlRfUFJPQyB8fAotCQkJaSA9PSBHSVNUX1NUUkFUTlVNX1BS T0MpCisJCQlpID09IEdJU1RfU1RSQVROVU1fUFJPQyB8fCBpID09IEdJU1RfSU5URVJTRUNU X1BST0MgfHwKKwkJCWkgPT0gR0lTVF9XSVRIT1VUX1BPUlRJT05fUFJPQykKIAkJCWNvbnRp bnVlOwkJCS8qIG9wdGlvbmFsIG1ldGhvZHMgKi8KIAkJZXJlcG9ydChJTkZPLAogCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvYW12YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYwppbmRleCAzMmJiNDc3ZjMyOC4uYjEwMzA4Yjli NjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9hbXZhbGlkYXRlLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2FtdmFsaWRhdGUuYwpAQCAtMTQ5LDcg KzE0OSw3IEBAIGlkZW50aWZ5X29wZmFtaWx5X2dyb3VwcyhDYXRDTGlzdCAqb3BybGlzdCwg Q2F0Q0xpc3QgKnByb2NsaXN0KQogICogSW4gYW55IGNhc2UgdGhlIGZ1bmN0aW9uIHJlc3Vs dCB0eXBlIG11c3QgbWF0Y2ggcmVzdHlwZSBleGFjdGx5LgogICovCiBib29sCi1jaGVja19h bXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIGV4YWN0LAor Y2hlY2tfYW1wcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkLCBPaWQgcmVzdHlwZSwgYm9vbCBy ZXRzZXQsIGJvb2wgZXhhY3QsCiAJCQkJCSAgIGludCBtaW5hcmdzLCBpbnQgbWF4YXJncywu Li4pCiB7CiAJYm9vbAkJcmVzdWx0ID0gdHJ1ZTsKQEAgLTE2Myw4ICsxNjMsOSBAQCBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIGV4YWN0 LAogCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgZnVuY3Rpb24gJXUi LCBmdW5jaWQpOwogCXByb2Nmb3JtID0gKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHRwKTsK IAotCWlmIChwcm9jZm9ybS0+cHJvcmV0dHlwZSAhPSByZXN0eXBlIHx8IHByb2Nmb3JtLT5w cm9yZXRzZXQgfHwKLQkJcHJvY2Zvcm0tPnByb25hcmdzIDwgbWluYXJncyB8fCBwcm9jZm9y bS0+cHJvbmFyZ3MgPiBtYXhhcmdzKQorCWlmICgocHJvY2Zvcm0tPnByb3JldHR5cGUgIT0g cmVzdHlwZSAmJiBPaWRJc1ZhbGlkKHJlc3R5cGUpKQorCQl8fCBwcm9jZm9ybS0+cHJvcmV0 c2V0ICE9IHJldHNldCB8fCBwcm9jZm9ybS0+cHJvbmFyZ3MgPCBtaW5hcmdzCisJCXx8IHBy b2Nmb3JtLT5wcm9uYXJncyA+IG1heGFyZ3MpCiAJCXJlc3VsdCA9IGZhbHNlOwogCiAJdmFf c3RhcnQoYXAsIG1heGFyZ3MpOwpAQCAtMTkxLDcgKzE5Miw3IEBAIGNoZWNrX2FtcHJvY19z aWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wgZXhhY3QsCiBib29sCiBj aGVja19hbW9wdHNwcm9jX3NpZ25hdHVyZShPaWQgZnVuY2lkKQogewotCXJldHVybiBjaGVj a19hbXByb2Nfc2lnbmF0dXJlKGZ1bmNpZCwgVk9JRE9JRCwgdHJ1ZSwgMSwgMSwgSU5URVJO QUxPSUQpOworCXJldHVybiBjaGVja19hbXByb2Nfc2lnbmF0dXJlKGZ1bmNpZCwgVk9JRE9J RCwgZmFsc2UsIHRydWUsIDEsIDEsIElOVEVSTkFMT0lEKTsKIH0KIAogLyoKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFsaWRhdGUuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFsaWRhdGUuYwppbmRleCBlOWQ0Y2Q2MGRlMy4uMDRl NDNlZjFkY2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dmFs aWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHZhbGlkYXRlLmMK QEAgLTkxLDE2ICs5MSwxNiBAQCBidHZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKQogCQlzd2l0 Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgQlRPUkRFUl9QUk9DOgot CQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBJTlQ0 T0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLCBJTlQ0T0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMiwgMiwgcHJvY2Zv cm0tPmFtcHJvY2xlZnR0eXBlLAogCQkJCQkJCQkJCQlwcm9jZm9ybS0+YW1wcm9jcmlnaHR0 eXBlKTsKIAkJCQlicmVhazsKIAkJCWNhc2UgQlRTT1JUU1VQUE9SVF9QUk9DOgotCQkJCW9r ID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCB0 cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+YW1wcm9j LCBWT0lET0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJCQkJMSwgMSwgSU5URVJOQUxPSUQp OwogCQkJCWJyZWFrOwogCQkJY2FzZSBCVElOUkFOR0VfUFJPQzoKLQkJCQlvayA9IGNoZWNr X2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJ CQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9J RCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCTUsIDUsCiAJCQkJCQkJCQkJCXByb2Nmb3Jt LT5hbXByb2NsZWZ0dHlwZSwKIAkJCQkJCQkJCQkJcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBl LApAQCAtMTA4LDcgKzEwOCw3IEBAIGJ0dmFsaWRhdGUoT2lkIG9wY2xhc3NvaWQpCiAJCQkJ CQkJCQkJCUJPT0xPSUQsIEJPT0xPSUQpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBCVEVRVUFM SU1BR0VfUFJPQzoKLQkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1cmUocHJvY2Zvcm0t PmFtcHJvYywgQk9PTE9JRCwgdHJ1ZSwKKwkJCQlvayA9IGNoZWNrX2FtcHJvY19zaWduYXR1 cmUocHJvY2Zvcm0tPmFtcHJvYywgQk9PTE9JRCwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJ CTEsIDEsIE9JRE9JRCk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIEJUT1BUSU9OU19QUk9DOgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWxpZGF0ZS5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWxpZGF0ZS5jCmluZGV4IDg1MGMzYjY3 NWQ2Li5mN2EzOTdjYjhjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lz dC9zcGd2YWxpZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndmFs aWRhdGUuYwpAQCAtMTA5LDcgKzEwOSw3IEBAIHNwZ3ZhbGlkYXRlKE9pZCBvcGNsYXNzb2lk KQogCQlzd2l0Y2ggKHByb2Nmb3JtLT5hbXByb2NudW0pCiAJCXsKIAkJCWNhc2UgU1BHSVNU X0NPTkZJR19QUk9DOgotCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9y bS0+YW1wcm9jLCBWT0lET0lELCB0cnVlLAorCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25h dHVyZShwcm9jZm9ybS0+YW1wcm9jLCBWT0lET0lELCBmYWxzZSwgdHJ1ZSwKIAkJCQkJCQkJ CQkJMiwgMiwgSU5URVJOQUxPSUQsIElOVEVSTkFMT0lEKTsKIAkJCQljb25maWdJbi5hdHRU eXBlID0gcHJvY2Zvcm0tPmFtcHJvY2xlZnR0eXBlOwogCQkJCW1lbXNldCgmY29uZmlnT3V0 LCAwLCBzaXplb2YoY29uZmlnT3V0KSk7CkBAIC0xNjQsMTEgKzE2NCwxMSBAQCBzcGd2YWxp ZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCWNhc2UgU1BHSVNUX0NIT09TRV9QUk9DOgogCQkJ Y2FzZSBTUEdJU1RfUElDS1NQTElUX1BST0M6CiAJCQljYXNlIFNQR0lTVF9JTk5FUl9DT05T SVNURU5UX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3Jt LT5hbXByb2MsIFZPSURPSUQsIHRydWUsCisJCQkJb2sgPSBjaGVja19hbXByb2Nfc2lnbmF0 dXJlKHByb2Nmb3JtLT5hbXByb2MsIFZPSURPSUQsIGZhbHNlLCB0cnVlLAogCQkJCQkJCQkJ CQkyLCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwogCQkJCWJyZWFrOwogCQkJY2Fz ZSBTUEdJU1RfTEVBRl9DT05TSVNURU5UX1BST0M6Ci0JCQkJb2sgPSBjaGVja19hbXByb2Nf c2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIHRydWUsCisJCQkJb2sgPSBj aGVja19hbXByb2Nfc2lnbmF0dXJlKHByb2Nmb3JtLT5hbXByb2MsIEJPT0xPSUQsIGZhbHNl LCB0cnVlLAogCQkJCQkJCQkJCQkyLCAyLCBJTlRFUk5BTE9JRCwgSU5URVJOQUxPSUQpOwog CQkJCWJyZWFrOwogCQkJY2FzZSBTUEdJU1RfQ09NUFJFU1NfUFJPQzoKQEAgLTE3Nyw3ICsx NzcsNyBAQCBzcGd2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQkJb2sgPSBmYWxzZTsK IAkJCQllbHNlCiAJCQkJCW9rID0gY2hlY2tfYW1wcm9jX3NpZ25hdHVyZShwcm9jZm9ybS0+ YW1wcm9jLAotCQkJCQkJCQkJCQkJY29uZmlnT3V0TGVhZlR5cGUsIHRydWUsCisJCQkJCQkJ CQkJCQljb25maWdPdXRMZWFmVHlwZSwgZmFsc2UsIHRydWUsCiAJCQkJCQkJCQkJCQkxLCAx LCBwcm9jZm9ybS0+YW1wcm9jbGVmdHR5cGUpOwogCQkJCWJyZWFrOwogCQkJY2FzZSBTUEdJ U1RfT1BUSU9OU19QUk9DOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211 bHRpcmFuZ2V0eXBlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBl cy5jCmluZGV4IDhmMTJjOTUzY2FkLi4yYWY3YWQ4M2Q4MiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L211bHRpcmFuZ2V0eXBlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9tdWx0aXJhbmdldHlwZXMuYwpAQCAtMTIyNSw2ICsxMjI1LDc3IEBAIG11bHRp cmFuZ2VfbWludXNfaW50ZXJuYWwoT2lkIG1sdHJuZ3R5cG9pZCwgVHlwZUNhY2hlRW50cnkg KnJhbmdldHlwLAogCXJldHVybiBtYWtlX211bHRpcmFuZ2UobWx0cm5ndHlwb2lkLCByYW5n ZXR5cCwgcmFuZ2VfY291bnQzLCByYW5nZXMzKTsKIH0KIAorLyoKKyAqIG11bHRpcmFuZ2Ug bWludXMgYnV0IHJldHVybmluZyB0aGUgcmVzdWx0IGFzIGEgU1JGLAorICogd2l0aCBubyBy b3dzIGlmIHRoZSByZXN1bHQgd291bGQgYmUgZW1wdHkuCisgKi8KK0RhdHVtCittdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbihQR19GVU5DVElPTl9BUkdTKQoreworCUZ1bmNDYWxsQ29u dGV4dCAqZnVuY2N0eDsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwlpZiAoIVNS Rl9JU19GSVJTVENBTEwoKSkKKwl7CisJCS8qIFdlIG5ldmVyIGhhdmUgbW9yZSB0aGFuIG9u ZSByZXN1bHQgKi8KKwkJZnVuY2N0eCA9IFNSRl9QRVJDQUxMX1NFVFVQKCk7CisJCVNSRl9S RVRVUk5fRE9ORShmdW5jY3R4KTsKKwl9CisJZWxzZQorCXsKKwkJTXVsdGlyYW5nZVR5cGUg Km1yMTsKKwkJTXVsdGlyYW5nZVR5cGUgKm1yMjsKKwkJT2lkCQkJbWx0cm5ndHlwb2lkOwor CQlUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGU7CisJCVR5cGVDYWNoZUVudHJ5ICpyYW5nZXR5 cDsKKwkJaW50MzIJCXJhbmdlX2NvdW50MTsKKwkJaW50MzIJCXJhbmdlX2NvdW50MjsKKwkJ UmFuZ2VUeXBlICoqcmFuZ2VzMTsKKwkJUmFuZ2VUeXBlICoqcmFuZ2VzMjsKKwkJTXVsdGly YW5nZVR5cGUgKm1yOworCisJCWZ1bmNjdHggPSBTUkZfRklSU1RDQUxMX0lOSVQoKTsKKwor CQkvKgorCQkgKiBzd2l0Y2ggdG8gbWVtb3J5IGNvbnRleHQgYXBwcm9wcmlhdGUgZm9yIG11 bHRpcGxlIGZ1bmN0aW9uIGNhbGxzCisJCSAqLworCQlvbGRjb250ZXh0ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKGZ1bmNjdHgtPm11bHRpX2NhbGxfbWVtb3J5X2N0eCk7CisKKwkJLyog Z2V0IGFyZ3MsIGRldG9hc3RpbmcgaW50byBtdWx0aS1jYWxsIG1lbW9yeSBjb250ZXh0ICov CisJCW1yMSA9IFBHX0dFVEFSR19NVUxUSVJBTkdFX1AoMCk7CisJCW1yMiA9IFBHX0dFVEFS R19NVUxUSVJBTkdFX1AoMSk7CisKKwkJbWx0cm5ndHlwb2lkID0gTXVsdGlyYW5nZVR5cGVH ZXRPaWQobXIxKTsKKwkJdHlwY2FjaGUgPSBsb29rdXBfdHlwZV9jYWNoZShtbHRybmd0eXBv aWQsIFRZUEVDQUNIRV9NVUxUSVJBTkdFX0lORk8pOworCQlpZiAodHlwY2FjaGUtPnJuZ3R5 cGUgPT0gTlVMTCkKKwkJCWVsb2coRVJST1IsICJ0eXBlICV1IGlzIG5vdCBhIG11bHRpcmFu Z2UgdHlwZSIsIG1sdHJuZ3R5cG9pZCk7CisJCXJhbmdldHlwID0gdHlwY2FjaGUtPnJuZ3R5 cGU7CisKKwkJaWYgKE11bHRpcmFuZ2VJc0VtcHR5KG1yMSkgfHwgTXVsdGlyYW5nZUlzRW1w dHkobXIyKSkKKwkJCW1yID0gbXIxOworCQllbHNlCisJCXsKKwkJCW11bHRpcmFuZ2VfZGVz ZXJpYWxpemUocmFuZ2V0eXAsIG1yMSwgJnJhbmdlX2NvdW50MSwgJnJhbmdlczEpOworCQkJ bXVsdGlyYW5nZV9kZXNlcmlhbGl6ZShyYW5nZXR5cCwgbXIyLCAmcmFuZ2VfY291bnQyLCAm cmFuZ2VzMik7CisKKwkJCW1yID0gbXVsdGlyYW5nZV9taW51c19pbnRlcm5hbChtbHRybmd0 eXBvaWQsCisJCQkJCQkJCQkJICAgcmFuZ2V0eXAsCisJCQkJCQkJCQkJICAgcmFuZ2VfY291 bnQxLAorCQkJCQkJCQkJCSAgIHJhbmdlczEsCisJCQkJCQkJCQkJICAgcmFuZ2VfY291bnQy LAorCQkJCQkJCQkJCSAgIHJhbmdlczIpOworCQl9CisKKwkJTWVtb3J5Q29udGV4dFN3aXRj aFRvKG9sZGNvbnRleHQpOworCisJCWZ1bmNjdHggPSBTUkZfUEVSQ0FMTF9TRVRVUCgpOwor CQlpZiAoTXVsdGlyYW5nZUlzRW1wdHkobXIpKQorCQkJU1JGX1JFVFVSTl9ET05FKGZ1bmNj dHgpOworCQllbHNlCisJCQlTUkZfUkVUVVJOX05FWFQoZnVuY2N0eCwgTXVsdGlyYW5nZVR5 cGVQR2V0RGF0dW0obXIpKTsKKwl9Cit9CisKIC8qIG11bHRpcmFuZ2UgaW50ZXJzZWN0aW9u ICovCiBEYXR1bQogbXVsdGlyYW5nZV9pbnRlcnNlY3QoUEdfRlVOQ1RJT05fQVJHUykKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yYW5nZXR5cGVzLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jCmluZGV4IDJkOTRhNmI4Nzc0Li4yYWIyN2Ji NzU3MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JhbmdldHlwZXMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmFuZ2V0eXBlcy5jCkBAIC0zMSw2ICszMSw3 IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImNvbW1vbi9oYXNoZm4u aCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIK ICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIK QEAgLTM5LDYgKzQwLDcgQEAKICNpbmNsdWRlICJvcHRpbWl6ZXIvY2xhdXNlcy5oIgogI2lu Y2x1ZGUgIm9wdGltaXplci9jb3N0LmgiCiAjaW5jbHVkZSAib3B0aW1pemVyL29wdGltaXpl ci5oIgorI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2Nh Y2hlLmgiCkBAIC0xMjEzLDYgKzEyMTUsMTY3IEBAIHJhbmdlX3NwbGl0X2ludGVybmFsKFR5 cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgY29uc3QgUmFuZ2VUeXBlICpyMSwgY29uc3QgUmFu Z2VUCiAJcmV0dXJuIGZhbHNlOwogfQogCisvKiBzdWJ0cmFjdGlvbiBidXQgcmV0dXJuaW5n IGFuIGFycmF5IHRvIGFjY29tbW9kYXRlIHNwbGl0cyAqLworRGF0dW0KK3JhbmdlX3dpdGhv dXRfcG9ydGlvbihQR19GVU5DVElPTl9BUkdTKQoreworCXR5cGVkZWYgc3RydWN0IHsKKwkJ UmFuZ2VUeXBlICAqcnNbMl07CisJCWludAkJCW47CisJfSByYW5nZV93aXRob3V0X3BvcnRp b25fZmN0eDsKKworCUZ1bmNDYWxsQ29udGV4dCAqZnVuY2N0eDsKKwlyYW5nZV93aXRob3V0 X3BvcnRpb25fZmN0eCAqZmN0eDsKKwlNZW1vcnlDb250ZXh0IG9sZGNvbnRleHQ7CisKKwkv KiBzdHVmZiBkb25lIG9ubHkgb24gdGhlIGZpcnN0IGNhbGwgb2YgdGhlIGZ1bmN0aW9uICov CisJaWYgKFNSRl9JU19GSVJTVENBTEwoKSkKKwl7CisJCVJhbmdlVHlwZQkgICAqcjE7CisJ CVJhbmdlVHlwZQkgICAqcjI7CisJCU9pZAkJCQlybmd0eXBpZDsKKwkJVHlwZUNhY2hlRW50 cnkgKnR5cGNhY2hlOworCisJCS8qIGNyZWF0ZSBhIGZ1bmN0aW9uIGNvbnRleHQgZm9yIGNy b3NzLWNhbGwgcGVyc2lzdGVuY2UgKi8KKwkJZnVuY2N0eCA9IFNSRl9GSVJTVENBTExfSU5J VCgpOworCisJCS8qCisJCSAqIHN3aXRjaCB0byBtZW1vcnkgY29udGV4dCBhcHByb3ByaWF0 ZSBmb3IgbXVsdGlwbGUgZnVuY3Rpb24gY2FsbHMKKwkJICovCisJCW9sZGNvbnRleHQgPSBN ZW1vcnlDb250ZXh0U3dpdGNoVG8oZnVuY2N0eC0+bXVsdGlfY2FsbF9tZW1vcnlfY3R4KTsK KworCQlyMSA9IFBHX0dFVEFSR19SQU5HRV9QKDApOworCQlyMiA9IFBHX0dFVEFSR19SQU5H RV9QKDEpOworCisJCS8qIERpZmZlcmVudCB0eXBlcyBzaG91bGQgYmUgcHJldmVudGVkIGJ5 IEFOWVJBTkdFIG1hdGNoaW5nIHJ1bGVzICovCisJCWlmIChSYW5nZVR5cGVHZXRPaWQocjEp ICE9IFJhbmdlVHlwZUdldE9pZChyMikpCisJCQllbG9nKEVSUk9SLCAicmFuZ2UgdHlwZXMg ZG8gbm90IG1hdGNoIik7CisKKwkJLyogYWxsb2NhdGUgbWVtb3J5IGZvciB1c2VyIGNvbnRl eHQgKi8KKwkJZmN0eCA9IChyYW5nZV93aXRob3V0X3BvcnRpb25fZmN0eCAqKSBwYWxsb2Mo c2l6ZW9mKHJhbmdlX3dpdGhvdXRfcG9ydGlvbl9mY3R4KSk7CisKKwkJLyoKKwkJICogSW5p dGlhbGl6ZSBzdGF0ZS4KKwkJICogV2UgY2FuJ3Qgc3RvcmUgdGhlIHJhbmdlIHR5cGNhY2hl IGluIGZuX2V4dHJhIGJlY2F1c2UgdGhlIGNhbGxlcgorCQkgKiB1c2VzIHRoYXQgZm9yIHRo ZSBTUkYgc3RhdGUuCisJCSAqLworCQlybmd0eXBpZCA9IFJhbmdlVHlwZUdldE9pZChyMSk7 CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUocm5ndHlwaWQsIFRZUEVDQUNIRV9S QU5HRV9JTkZPKTsKKwkJaWYgKHR5cGNhY2hlLT5ybmdlbGVtdHlwZSA9PSBOVUxMKQorCQkJ ZWxvZyhFUlJPUiwgInR5cGUgJXUgaXMgbm90IGEgcmFuZ2UgdHlwZSIsIHJuZ3R5cGlkKTsK KwkJcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKHR5cGNhY2hlLCByMSwgcjIsIGZj dHgtPnJzLCAmZmN0eC0+bik7CisKKwkJZnVuY2N0eC0+dXNlcl9mY3R4ID0gZmN0eDsKKwkJ TWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNvbnRleHQpOworCX0KKworCS8qIHN0dWZmIGRv bmUgb24gZXZlcnkgY2FsbCBvZiB0aGUgZnVuY3Rpb24gKi8KKwlmdW5jY3R4ID0gU1JGX1BF UkNBTExfU0VUVVAoKTsKKwlmY3R4ID0gZnVuY2N0eC0+dXNlcl9mY3R4OworCisJaWYgKGZ1 bmNjdHgtPmNhbGxfY250ciA8IGZjdHgtPm4pCisJeworCQkvKgorCQkgKiBXZSBtdXN0IGtl ZXAgdGhlc2Ugb24gc2VwYXJhdGUgbGluZXMKKwkJICogYmVjYXVzZSBTUkZfUkVUVVJOX05F WFQgZG9lcyBjYWxsX2NudHIrKzoKKwkJICovCisJCVJhbmdlVHlwZSAqcmV0ID0gZmN0eC0+ cnNbZnVuY2N0eC0+Y2FsbF9jbnRyXTsKKwkJU1JGX1JFVFVSTl9ORVhUKGZ1bmNjdHgsIFJh bmdlVHlwZVBHZXREYXR1bShyZXQpKTsKKwl9CisJZWxzZQorCQkvKiBkbyB3aGVuIHRoZXJl IGlzIG5vIG1vcmUgbGVmdCAqLworCQlTUkZfUkVUVVJOX0RPTkUoZnVuY2N0eCk7Cit9CisK Ky8qCisgKiByYW5nZV93aXRob3V0X3BvcnRpb25faW50ZXJuYWwgLSBTZXRzIG91dHB1dHMg YW5kIG91dHB1dG4gdG8gdGhlIHJhbmdlcworICogcmVtYWluaW5nIGFuZCB0aGVpciBjb3Vu dCAocmVzcGVjdGl2ZWx5KSBhZnRlciBzdWJ0cmFjdGluZyByMiBmcm9tIHIxLgorICogVGhl IGFycmF5IHNob3VsZCBuZXZlciBjb250YWluIGVtcHR5IHJhbmdlcy4KKyAqIFRoZSBvdXRw dXRzIHdpbGwgYmUgb3JkZXJlZC4gV2UgZXhwZWN0IHRoYXQgb3V0cHV0cyBpcyBhbiBhcnJh eSBvZgorICogUmFuZ2VUeXBlIHBvaW50ZXJzLCBhbHJlYWR5IGFsbG9jYXRlZCB3aXRoIHR3 byBzbG90cy4KKyAqLwordm9pZAorcmFuZ2Vfd2l0aG91dF9wb3J0aW9uX2ludGVybmFsKFR5 cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgUmFuZ2VUeXBlICpyMSwKKwkJCQkJCQkgICBSYW5n ZVR5cGUgKnIyLCBSYW5nZVR5cGUgKipvdXRwdXRzLCBpbnQgKm91dHB1dG4pCit7CisJaW50 CQkJY21wX2wxbDIsCisJCQkJY21wX2wxdTIsCisJCQkJY21wX3UxbDIsCisJCQkJY21wX3Ux dTI7CisJUmFuZ2VCb3VuZAlsb3dlcjEsCisJCQkJbG93ZXIyOworCVJhbmdlQm91bmQJdXBw ZXIxLAorCQkJCXVwcGVyMjsKKwlib29sCQllbXB0eTEsCisJCQkJZW1wdHkyOworCisJcmFu Z2VfZGVzZXJpYWxpemUodHlwY2FjaGUsIHIxLCAmbG93ZXIxLCAmdXBwZXIxLCAmZW1wdHkx KTsKKwlyYW5nZV9kZXNlcmlhbGl6ZSh0eXBjYWNoZSwgcjIsICZsb3dlcjIsICZ1cHBlcjIs ICZlbXB0eTIpOworCisJaWYgKGVtcHR5MSkKKwl7CisJCS8qIGlmIHIxIGlzIGVtcHR5IHRo ZW4gcjEgLSByMiBpcyBlbXB0eSwgc28gcmV0dXJuIHplcm8gcmVzdWx0cyAqLworCQkqb3V0 cHV0biA9IDA7CisJCXJldHVybjsKKwl9CisJZWxzZSBpZiAoZW1wdHkyKQorCXsKKwkJLyog cjIgaXMgZW1wdHkgc28gdGhlIHJlc3VsdCBpcyBqdXN0IHIxICh3aGljaCB3ZSBrbm93IGlz IG5vdCBlbXB0eSkgKi8KKwkJb3V0cHV0c1swXSA9IHIxOworCQkqb3V0cHV0biA9IDE7CisJ CXJldHVybjsKKwl9CisKKwkvKgorCSAqIFVzZSB0aGUgc2FtZSBsb2dpYyBhcyByYW5nZV9t aW51c19pbnRlcm5hbCwKKwkgKiBidXQgc3VwcG9ydCB0aGUgc3BsaXQgY2FzZQorCSAqLwor CWNtcF9sMWwyID0gcmFuZ2VfY21wX2JvdW5kcyh0eXBjYWNoZSwgJmxvd2VyMSwgJmxvd2Vy Mik7CisJY21wX2wxdTIgPSByYW5nZV9jbXBfYm91bmRzKHR5cGNhY2hlLCAmbG93ZXIxLCAm dXBwZXIyKTsKKwljbXBfdTFsMiA9IHJhbmdlX2NtcF9ib3VuZHModHlwY2FjaGUsICZ1cHBl cjEsICZsb3dlcjIpOworCWNtcF91MXUyID0gcmFuZ2VfY21wX2JvdW5kcyh0eXBjYWNoZSwg JnVwcGVyMSwgJnVwcGVyMik7CisKKwlpZiAoY21wX2wxbDIgPCAwICYmIGNtcF91MXUyID4g MCkKKwl7CisJCWxvd2VyMi5pbmNsdXNpdmUgPSAhbG93ZXIyLmluY2x1c2l2ZTsKKwkJbG93 ZXIyLmxvd2VyID0gZmFsc2U7CS8qIGl0IHdpbGwgYmVjb21lIHRoZSB1cHBlciBib3VuZCAq LworCQlvdXRwdXRzWzBdID0gbWFrZV9yYW5nZSh0eXBjYWNoZSwgJmxvd2VyMSwgJmxvd2Vy MiwgZmFsc2UsIE5VTEwpOworCisJCXVwcGVyMi5pbmNsdXNpdmUgPSAhdXBwZXIyLmluY2x1 c2l2ZTsKKwkJdXBwZXIyLmxvd2VyID0gdHJ1ZTsJLyogaXQgd2lsbCBiZWNvbWUgdGhlIGxv d2VyIGJvdW5kICovCisJCW91dHB1dHNbMV0gPSBtYWtlX3JhbmdlKHR5cGNhY2hlLCAmdXBw ZXIyLCAmdXBwZXIxLCBmYWxzZSwgTlVMTCk7CisKKwkJKm91dHB1dG4gPSAyOworCX0KKwll bHNlIGlmIChjbXBfbDF1MiA+IDAgfHwgY21wX3UxbDIgPCAwKQorCXsKKwkJb3V0cHV0c1sw XSA9IHIxOworCQkqb3V0cHV0biA9IDE7CisJfQorCWVsc2UgaWYgKGNtcF9sMWwyID49IDAg JiYgY21wX3UxdTIgPD0gMCkKKwl7CisJCSpvdXRwdXRuID0gMDsKKwl9CisJZWxzZSBpZiAo Y21wX2wxbDIgPD0gMCAmJiBjbXBfdTFsMiA+PSAwICYmIGNtcF91MXUyIDw9IDApCisJewor CQlsb3dlcjIuaW5jbHVzaXZlID0gIWxvd2VyMi5pbmNsdXNpdmU7CisJCWxvd2VyMi5sb3dl ciA9IGZhbHNlOwkvKiBpdCB3aWxsIGJlY29tZSB0aGUgdXBwZXIgYm91bmQgKi8KKwkJb3V0 cHV0c1swXSA9IG1ha2VfcmFuZ2UodHlwY2FjaGUsICZsb3dlcjEsICZsb3dlcjIsIGZhbHNl LCBOVUxMKTsKKwkJKm91dHB1dG4gPSAxOworCX0KKwllbHNlIGlmIChjbXBfbDFsMiA+PSAw ICYmIGNtcF91MXUyID49IDAgJiYgY21wX2wxdTIgPD0gMCkKKwl7CisJCXVwcGVyMi5pbmNs dXNpdmUgPSAhdXBwZXIyLmluY2x1c2l2ZTsKKwkJdXBwZXIyLmxvd2VyID0gdHJ1ZTsJLyog aXQgd2lsbCBiZWNvbWUgdGhlIGxvd2VyIGJvdW5kICovCisJCW91dHB1dHNbMF0gPSBtYWtl X3JhbmdlKHR5cGNhY2hlLCAmdXBwZXIyLCAmdXBwZXIxLCBmYWxzZSwgTlVMTCk7CisJCSpv dXRwdXRuID0gMTsKKwl9CisJZWxzZQorCXsKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQg Y2FzZSBpbiByYW5nZV93aXRob3V0X3BvcnRpb24iKTsKKwl9Cit9CisKIC8qIHJhbmdlIC0+ IHJhbmdlIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgKi8KIAogRGF0dW0KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2FjY2Vzcy9hbXZhbGlkYXRlLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvYW12 YWxpZGF0ZS5oCmluZGV4IDQyNGFiNjNmYTVhLi42MTAzOTU0MmRhYyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvYWNjZXNzL2FtdmFsaWRhdGUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nl c3MvYW12YWxpZGF0ZS5oCkBAIC0yOCw4ICsyOCw4IEBAIHR5cGVkZWYgc3RydWN0IE9wRmFt aWx5T3BGdW5jR3JvdXAKIAogLyogRnVuY3Rpb25zIGluIGFjY2Vzcy9pbmRleC9hbXZhbGlk YXRlLmMgKi8KIGV4dGVybiBMaXN0ICppZGVudGlmeV9vcGZhbWlseV9ncm91cHMoQ2F0Q0xp c3QgKm9wcmxpc3QsIENhdENMaXN0ICpwcm9jbGlzdCk7Ci1leHRlcm4gYm9vbCBjaGVja19h bXByb2Nfc2lnbmF0dXJlKE9pZCBmdW5jaWQsIE9pZCByZXN0eXBlLCBib29sIGV4YWN0LAot CQkJCQkJCQkgICBpbnQgbWluYXJncywgaW50IG1heGFyZ3MsLi4uKTsKK2V4dGVybiBib29s IGNoZWNrX2FtcHJvY19zaWduYXR1cmUoT2lkIGZ1bmNpZCwgT2lkIHJlc3R5cGUsIGJvb2wg cmV0c2V0LAorCQkJCQkJCQkgICBib29sIGV4YWN0LCBpbnQgbWluYXJncywgaW50IG1heGFy Z3MsLi4uKTsKIGV4dGVybiBib29sIGNoZWNrX2Ftb3B0c3Byb2Nfc2lnbmF0dXJlKE9pZCBm dW5jaWQpOwogZXh0ZXJuIGJvb2wgY2hlY2tfYW1vcF9zaWduYXR1cmUoT2lkIG9wbm8sIE9p ZCByZXN0eXBlLAogCQkJCQkJCQkgT2lkIGxlZnR0eXBlLCBPaWQgcmlnaHR0eXBlKTsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0LmggYi9zcmMvaW5jbHVkZS9hY2Nl c3MvZ2lzdC5oCmluZGV4IDIyZGQwNGMxNDE4Li4xNjM1YWIwMGFkMiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvYWNjZXNzL2dpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lz dC5oCkBAIC00MCw3ICs0MCw5IEBACiAjZGVmaW5lIEdJU1RfT1BUSU9OU19QUk9DCQkJCTEw CiAjZGVmaW5lIEdJU1RfU09SVFNVUFBPUlRfUFJPQwkJCTExCiAjZGVmaW5lIEdJU1RfU1RS QVROVU1fUFJPQwkJCQkxMgotI2RlZmluZSBHSVNUTlByb2NzCQkJCQkxMgorI2RlZmluZSBH SVNUX0lOVEVSU0VDVF9QUk9DCQkJCTEzCisjZGVmaW5lIEdJU1RfV0lUSE9VVF9QT1JUSU9O X1BST0MJCTE0CisjZGVmaW5lIEdJU1ROUHJvY3MJCQkJCTE0CiAKIC8qCiAgKiBQYWdlIG9w YXF1ZSBkYXRhIGluIGEgR2lTVCBpbmRleCBwYWdlLgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19hbXBy b2MuZGF0CmluZGV4IDM1MjU1OGMxZjA2Li5mMGFkODQ1NjFjYiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19hbXByb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfYW1wcm9jLmRhdApAQCAtNTEwLDYgKzUxMCw5IEBACiB7IGFtcHJvY2ZhbWlseSA9 PiAnZ2lzdC9ib3hfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2JveCcsCiAgIGFtcHJvY3Jp Z2h0dHlwZSA9PiAnYm94JywgYW1wcm9jbnVtID0+ICcxMicsCiAgIGFtcHJvYyA9PiAnZ2lz dF9zdHJhdG51bV9pZGVudGl0eScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L2JveF9v cHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYm94JywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ICdi b3gnLCBhbXByb2NudW0gPT4gJzEzJywKKyAgYW1wcm9jID0+ICdib3hfaW50ZXJzZWN0KGJv eCxib3gpJyB9LAogeyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvcG9seV9vcHMnLCBhbXByb2Ns ZWZ0dHlwZSA9PiAncG9seWdvbicsCiAgIGFtcHJvY3JpZ2h0dHlwZSA9PiAncG9seWdvbics IGFtcHJvY251bSA9PiAnMScsCiAgIGFtcHJvYyA9PiAnZ2lzdF9wb2x5X2NvbnNpc3RlbnQn IH0sCkBAIC02MTAsNiArNjEzLDEyIEBACiB7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9yYW5n ZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55cmFuZ2UnLAogICBhbXByb2NyaWdodHR5 cGUgPT4gJ2FueXJhbmdlJywgYW1wcm9jbnVtID0+ICcxMicsCiAgIGFtcHJvYyA9PiAnZ2lz dF9zdHJhdG51bV9pZGVudGl0eScgfSwKK3sgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L3Jhbmdl X29wcycsIGFtcHJvY2xlZnR0eXBlID0+ICdhbnlyYW5nZScsCisgIGFtcHJvY3JpZ2h0dHlw ZSA9PiAnYW55cmFuZ2UnLCBhbXByb2NudW0gPT4gJzEzJywKKyAgYW1wcm9jID0+ICdyYW5n ZV9pbnRlcnNlY3QoYW55cmFuZ2UsYW55cmFuZ2UpJyB9LAoreyBhbXByb2NmYW1pbHkgPT4g J2dpc3QvcmFuZ2Vfb3BzJywgYW1wcm9jbGVmdHR5cGUgPT4gJ2FueXJhbmdlJywKKyAgYW1w cm9jcmlnaHR0eXBlID0+ICdhbnlyYW5nZScsIGFtcHJvY251bSA9PiAnMTQnLAorICBhbXBy b2MgPT4gJ3JhbmdlX3dpdGhvdXRfcG9ydGlvbihhbnlyYW5nZSxhbnlyYW5nZSknIH0sCiB7 IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9uZXR3b3JrX29wcycsIGFtcHJvY2xlZnR0eXBlID0+ ICdpbmV0JywKICAgYW1wcm9jcmlnaHR0eXBlID0+ICdpbmV0JywgYW1wcm9jbnVtID0+ICcx JywKICAgYW1wcm9jID0+ICdpbmV0X2dpc3RfY29uc2lzdGVudCcgfSwKQEAgLTY1MCw2ICs2 NTksMTIgQEAKIHsgYW1wcm9jZmFtaWx5ID0+ICdnaXN0L211bHRpcmFuZ2Vfb3BzJywgYW1w cm9jbGVmdHR5cGUgPT4gJ2FueW11bHRpcmFuZ2UnLAogICBhbXByb2NyaWdodHR5cGUgPT4g J2FueW11bHRpcmFuZ2UnLCBhbXByb2NudW0gPT4gJzEyJywKICAgYW1wcm9jID0+ICdnaXN0 X3N0cmF0bnVtX2lkZW50aXR5JyB9LAoreyBhbXByb2NmYW1pbHkgPT4gJ2dpc3QvbXVsdGly YW5nZV9vcHMnLCBhbXByb2NsZWZ0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsCisgIGFtcHJv Y3JpZ2h0dHlwZSA9PiAnYW55bXVsdGlyYW5nZScsIGFtcHJvY251bSA9PiAnMTMnLAorICBh bXByb2MgPT4gJ211bHRpcmFuZ2VfaW50ZXJzZWN0KGFueW11bHRpcmFuZ2UsYW55bXVsdGly YW5nZSknIH0sCit7IGFtcHJvY2ZhbWlseSA9PiAnZ2lzdC9tdWx0aXJhbmdlX29wcycsIGFt cHJvY2xlZnR0eXBlID0+ICdhbnltdWx0aXJhbmdlJywKKyAgYW1wcm9jcmlnaHR0eXBlID0+ ICdhbnltdWx0aXJhbmdlJywgYW1wcm9jbnVtID0+ICcxNCcsCisgIGFtcHJvYyA9PiAnbXVs dGlyYW5nZV93aXRob3V0X3BvcnRpb24oYW55bXVsdGlyYW5nZSxhbnltdWx0aXJhbmdlKScg fSwKIAogIyBnaW4KIHsgYW1wcm9jZmFtaWx5ID0+ICdnaW4vYXJyYXlfb3BzJywgYW1wcm9j bGVmdHR5cGUgPT4gJ2FueWFycmF5JywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4 IDE3N2Q4MWE4OTFjLi43MzY3Y2UxNDY1OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0 CkBAIC0xMDU2MSw2ICsxMDU2MSwxMCBAQAogeyBvaWQgPT4gJzM4NjknLAogICBwcm9uYW1l ID0+ICdyYW5nZV9taW51cycsIHByb3JldHR5cGUgPT4gJ2FueXJhbmdlJywKICAgcHJvYXJn dHlwZXMgPT4gJ2FueXJhbmdlIGFueXJhbmdlJywgcHJvc3JjID0+ICdyYW5nZV9taW51cycg fSwKK3sgb2lkID0+ICc4NDA4JywgZGVzY3IgPT4gJ3JlbW92ZSBwb3J0aW9uIGZyb20gcmFu Z2UnLAorICBwcm9uYW1lID0+ICdyYW5nZV93aXRob3V0X3BvcnRpb24nLCBwcm9yb3dzID0+ ICcyJywKKyAgcHJvcmV0c2V0ID0+ICd0JywgcHJvcmV0dHlwZSA9PiAnYW55cmFuZ2UnLAor ICBwcm9hcmd0eXBlcyA9PiAnYW55cmFuZ2UgYW55cmFuZ2UnLCBwcm9zcmMgPT4gJ3Jhbmdl X3dpdGhvdXRfcG9ydGlvbicgfSwKIHsgb2lkID0+ICczODcwJywgZGVzY3IgPT4gJ2xlc3Mt ZXF1YWwtZ3JlYXRlcicsCiAgIHByb25hbWUgPT4gJ3JhbmdlX2NtcCcsIHByb3JldHR5cGUg PT4gJ2ludDQnLAogICBwcm9hcmd0eXBlcyA9PiAnYW55cmFuZ2UgYW55cmFuZ2UnLCBwcm9z cmMgPT4gJ3JhbmdlX2NtcCcgfSwKQEAgLTEwODQ4LDYgKzEwODUyLDEwIEBACiB7IG9pZCA9 PiAnNDI3MScsCiAgIHByb25hbWUgPT4gJ211bHRpcmFuZ2VfbWludXMnLCBwcm9yZXR0eXBl ID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJndHlwZXMgPT4gJ2FueW11bHRpcmFuZ2Ug YW55bXVsdGlyYW5nZScsIHByb3NyYyA9PiAnbXVsdGlyYW5nZV9taW51cycgfSwKK3sgb2lk ID0+ICc4NDA2JywgZGVzY3IgPT4gJ3JlbW92ZSBwb3J0aW9uIGZyb20gbXVsdGlyYW5nZScs CisgIHByb25hbWUgPT4gJ211bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uJywgcHJvcm93cyA9 PiAnMScsCisgIHByb3JldHNldCA9PiAndCcsIHByb3JldHR5cGUgPT4gJ2FueW11bHRpcmFu Z2UnLAorICBwcm9hcmd0eXBlcyA9PiAnYW55bXVsdGlyYW5nZSBhbnltdWx0aXJhbmdlJywg cHJvc3JjID0+ICdtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbicgfSwKIHsgb2lkID0+ICc0 MjcyJywKICAgcHJvbmFtZSA9PiAnbXVsdGlyYW5nZV9pbnRlcnNlY3QnLCBwcm9yZXR0eXBl ID0+ICdhbnltdWx0aXJhbmdlJywKICAgcHJvYXJndHlwZXMgPT4gJ2FueW11bHRpcmFuZ2Ug YW55bXVsdGlyYW5nZScsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5 cGVzLmggYi9zcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5cGVzLmgKaW5kZXggMmI1NzQ4NzNj ZWYuLmUxYjI1NmI2NWY0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9yYW5nZXR5 cGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvcmFuZ2V0eXBlcy5oCkBAIC0xNjQsNSAr MTY0LDcgQEAgZXh0ZXJuIFJhbmdlVHlwZSAqbWFrZV9lbXB0eV9yYW5nZShUeXBlQ2FjaGVF bnRyeSAqdHlwY2FjaGUpOwogZXh0ZXJuIGJvb2wgcmFuZ2Vfc3BsaXRfaW50ZXJuYWwoVHlw ZUNhY2hlRW50cnkgKnR5cGNhY2hlLCBjb25zdCBSYW5nZVR5cGUgKnIxLAogCQkJCQkJCQkg Y29uc3QgUmFuZ2VUeXBlICpyMiwgUmFuZ2VUeXBlICoqb3V0cHV0MSwKIAkJCQkJCQkJIFJh bmdlVHlwZSAqKm91dHB1dDIpOworZXh0ZXJuIHZvaWQgcmFuZ2Vfd2l0aG91dF9wb3J0aW9u X2ludGVybmFsKFR5cGVDYWNoZUVudHJ5ICp0eXBjYWNoZSwgUmFuZ2VUeXBlICpyMSwKKwkJ CQkJCQkJCVJhbmdlVHlwZSAqcjIsIFJhbmdlVHlwZSAqKm91dHB1dHMsIGludCAqb3V0cHV0 bik7CiAKICNlbmRpZgkJCQkJCQkvKiBSQU5HRVRZUEVTX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvbXVsdGlyYW5nZXR5cGVzLm91dAppbmRleCBjNjM2M2ViZWIy NC4uMTFhYTI4MmZmMzUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv bXVsdGlyYW5nZXR5cGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL211 bHRpcmFuZ2V0eXBlcy5vdXQKQEAgLTIyMDAsNiArMjIwMCwxMjIgQEAgU0VMRUNUIG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdl KG51bXJhbmdlKC0yLDAKICB7WzEsMiksWzQsNSl9CiAoMSByb3cpCiAKKy0tIHdpdGhvdXRf cG9ydGlvbgorU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFu Z2UoKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKCksIG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSwyKSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93cykKKworU0VMRUNUIG11bHRpcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRp cmFuZ2UoKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5n ZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5n ZSgzLDQpKSwgbnVtbXVsdGlyYW5nZSgpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlv biAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMiksWzMsNCl9CisoMSBy b3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdl KG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsK KyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyB7WzEsMil9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpLCBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDMsNCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMil9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBu dW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIsNCl9CisoMSByb3cp CisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsMykpKTsKKyBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7 WzEsMiksWzMsNCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdlKG51bXJh bmdlKDAsOCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsNCkpLCBudW1tdWx0aXJhbmdl KG51bXJhbmdlKDAsMikpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzIsNCl9CisoMSByb3cpCisKK1NFTEVDVCBt dWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsMiksIG51bXJhbmdlKDMsNCkpKTsKKyBtdWx0 aXJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB7WzIsMyksWzQsOCl9CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsOCkpLCBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDIsMyksIG51bXJhbmdlKDUsbnVsbCkpKTsKKyBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMiksWzMsNSl9 CisoMSByb3cpCisKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0 aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKC0yLDApKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQorCitTRUxF Q1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgx LDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDQpKSk7Cisg bXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUp KSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgzLDUpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEg cm93KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5n ZShudW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5n ZSgwLDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0 X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDMpLCBudW1yYW5nZSg0LDUpKSwg bnVtbXVsdGlyYW5nZShudW1yYW5nZSgyLDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3Bv cnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1sxLDIpfQorKDEgcm93 KQorCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShu dW1yYW5nZSgxLDIpLCBudW1yYW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSg4 LDkpKSk7CisgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisge1sxLDIpLFs0LDUpfQorKDEgcm93KQorCitTRUxFQ1QgbXVsdGly YW5nZV93aXRob3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpLCBudW1y YW5nZSg0LDUpKSwgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgtMiwwKSwgbnVtcmFuZ2UoOCw5 KSkpOworIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHtbMSwyKSxbNCw1KX0KKygxIHJvdykKKwogLS0gaW50ZXJzZWN0aW9u CiBTRUxFQ1QgbnVtbXVsdGlyYW5nZSgpICogbnVtbXVsdGlyYW5nZSgpOwogID9jb2x1bW4/ IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9yYW5nZXR5cGVzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcmFuZ2V0eXBlcy5vdXQKaW5kZXggYTdj YzIyMGJmMGQuLmFiMjMwOWU4YzFkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3JhbmdldHlwZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cmFuZ2V0eXBlcy5vdXQKQEAgLTQ4MSw2ICs0ODEsNjAgQEAgc2VsZWN0IHJhbmdlX21pbnVz KG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsK ICBlbXB0eQogKDEgcm93KQogCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKCdlbXB0 eSc6Om51bXJhbmdlLCBudW1yYW5nZSgyLjAsIDMuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9y dGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCitzZWxlY3QgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgJ2VtcHR5Jzo6bnVtcmFu Z2UpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgWzEuMSwyLjIpCisoMSByb3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24o bnVtcmFuZ2UoMS4xLCAyLjIpLCBudW1yYW5nZSgyLjAsIDMuMCkpOworIHJhbmdlX3dpdGhv dXRfcG9ydGlvbiAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjApCisoMSBy b3cpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIp LCBudW1yYW5nZSgyLjIsIDMuMCkpOworIHJhbmdlX3dpdGhvdXRfcG9ydGlvbiAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgWzEuMSwyLjIpCisoMSByb3cpCisKK3NlbGVjdCByYW5n ZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJyksIG51bXJhbmdlKDIu MCwgMy4wKSk7CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBbMS4xLDIuMCkKKygxIHJvdykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1yYW5nZSgxLjAsIDMuMCksIG51bXJhbmdlKDEuNSwgMi4wKSk7CisgcmFuZ2Vf d2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBbMS4wLDEuNSkK KyBbMi4wLDMuMCkKKygyIHJvd3MpCisKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24o bnVtcmFuZ2UoMTAuMSwxMi4yLCdbXScpLCBudW1yYW5nZSgxMTAuMCwxMjAuMiwnKF0nKSk7 CisgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBb MTAuMSwxMi4yXQorKDEgcm93KQorCitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51 bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2UoMC4wLDEyMC4yLCcoXScpKTsKKyBy YW5nZV93aXRob3V0X3BvcnRpb24gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKDAgcm93 cykKKworc2VsZWN0IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjAsMy4wLCdb XScpLCBudW1yYW5nZSgxLjUsMi4wLCcoXScpKTsKKyByYW5nZV93aXRob3V0X3BvcnRpb24g CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFsxLjAsMS41XQorICgyLjAsMy4wXQorKDIg cm93cykKKwogc2VsZWN0IG51bXJhbmdlKDQuNSwgNS41LCAnW10nKSAmJiBudW1yYW5nZSg1 LjUsIDYuNSk7CiAgP2NvbHVtbj8gCiAtLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9tdWx0aXJhbmdldHlwZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvbXVsdGlyYW5nZXR5cGVzLnNxbAppbmRleCA0MWQ1NTI0Mjg1YS4uMGJmYTcxY2FjYTAg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL211bHRpcmFuZ2V0eXBlcy5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvbXVsdGlyYW5nZXR5cGVzLnNxbApAQCAtNDE0 LDYgKzQxNCwyOCBAQCBTRUxFQ1QgbnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDMpLCBudW1y YW5nZSg0LDUpKSAtIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiw5KQogU0VMRUNUIG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdl KG51bXJhbmdlKDgsOSkpOwogU0VMRUNUIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwg bnVtcmFuZ2UoNCw1KSkgLSBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApLCBudW1yYW5n ZSg4LDkpKTsKIAorLS0gd2l0aG91dF9wb3J0aW9uCitTRUxFQ1QgbXVsdGlyYW5nZV93aXRo b3V0X3BvcnRpb24obnVtbXVsdGlyYW5nZSgpLCBudW1tdWx0aXJhbmdlKCkpOworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UoKSwgbnVtbXVsdGly YW5nZShudW1yYW5nZSgxLDIpKSk7CitTRUxFQ1QgbXVsdGlyYW5nZV93aXRob3V0X3BvcnRp b24obnVtbXVsdGlyYW5nZShudW1yYW5nZSgxLDIpKSwgbnVtbXVsdGlyYW5nZSgpKTsKK1NF TEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdl KDEsMiksIG51bXJhbmdlKDMsNCkpLCBudW1tdWx0aXJhbmdlKCkpOworU0VMRUNUIG11bHRp cmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51 bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91 dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMiw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51 bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMyw0 KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2Uo bnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSkpOworU0VMRUNU IG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0 KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiwzKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vf d2l0aG91dF9wb3J0aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMCw4KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0 aW9uKG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSw0KSksIG51bW11bHRpcmFuZ2UobnVtcmFu Z2UoMCwyKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoMSw4KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMCwyKSwgbnVt cmFuZ2UoMyw0KSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bW11 bHRpcmFuZ2UobnVtcmFuZ2UoMSw4KSksIG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMiwzKSwg bnVtcmFuZ2UoNSxudWxsKSkpOworU0VMRUNUIG11bHRpcmFuZ2Vfd2l0aG91dF9wb3J0aW9u KG51bW11bHRpcmFuZ2UobnVtcmFuZ2UoMSwyKSwgbnVtcmFuZ2UoNCw1KSksIG51bW11bHRp cmFuZ2UobnVtcmFuZ2UoLTIsMCkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRfcG9y dGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBudW1t dWx0aXJhbmdlKG51bXJhbmdlKDIsNCkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhvdXRf cG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkpLCBu dW1tdWx0aXJhbmdlKG51bXJhbmdlKDMsNSkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dpdGhv dXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdlKDQsNSkp LCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDAsOSkpKTsKK1NFTEVDVCBtdWx0aXJhbmdlX3dp dGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMyksIG51bXJhbmdlKDQs NSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDIsOSkpKTsKK1NFTEVDVCBtdWx0aXJhbmdl X3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJhbmdl KDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKDgsOSkpKTsKK1NFTEVDVCBtdWx0aXJh bmdlX3dpdGhvdXRfcG9ydGlvbihudW1tdWx0aXJhbmdlKG51bXJhbmdlKDEsMiksIG51bXJh bmdlKDQsNSkpLCBudW1tdWx0aXJhbmdlKG51bXJhbmdlKC0yLDApLCBudW1yYW5nZSg4LDkp KSk7CisKIC0tIGludGVyc2VjdGlvbgogU0VMRUNUIG51bW11bHRpcmFuZ2UoKSAqIG51bW11 bHRpcmFuZ2UoKTsKIFNFTEVDVCBudW1tdWx0aXJhbmdlKCkgKiBudW1tdWx0aXJhbmdlKG51 bXJhbmdlKDEsMikpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcmFuZ2V0 eXBlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9yYW5nZXR5cGVzLnNxbAppbmRleCBh NWVjZGY1MzcyZi4uN2ZjODA1ZDlmZmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3JhbmdldHlwZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3JhbmdldHlw ZXMuc3FsCkBAIC0xMDcsNiArMTA3LDE2IEBAIHNlbGVjdCBudW1yYW5nZSgxLjEsIDIuMiwn W10nKSAtIG51bXJhbmdlKDIuMCwgMy4wKTsKIHNlbGVjdCByYW5nZV9taW51cyhudW1yYW5n ZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDExMC4wLDEyMC4yLCcoXScpKTsKIHNlbGVj dCByYW5nZV9taW51cyhudW1yYW5nZSgxMC4xLDEyLjIsJ1tdJyksIG51bXJhbmdlKDAuMCwx MjAuMiwnKF0nKSk7CiAKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24oJ2VtcHR5Jzo6 bnVtcmFuZ2UsIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9w b3J0aW9uKG51bXJhbmdlKDEuMSwgMi4yKSwgJ2VtcHR5Jzo6bnVtcmFuZ2UpOworc2VsZWN0 IHJhbmdlX3dpdGhvdXRfcG9ydGlvbihudW1yYW5nZSgxLjEsIDIuMiksIG51bXJhbmdlKDIu MCwgMy4wKSk7CitzZWxlY3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMSwg Mi4yKSwgbnVtcmFuZ2UoMi4yLCAzLjApKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRp b24obnVtcmFuZ2UoMS4xLCAyLjIsJ1tdJyksIG51bXJhbmdlKDIuMCwgMy4wKSk7CitzZWxl Y3QgcmFuZ2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEuMCwgMy4wKSwgbnVtcmFuZ2Uo MS41LCAyLjApKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFuZ2UoMTAu MSwxMi4yLCdbXScpLCBudW1yYW5nZSgxMTAuMCwxMjAuMiwnKF0nKSk7CitzZWxlY3QgcmFu Z2Vfd2l0aG91dF9wb3J0aW9uKG51bXJhbmdlKDEwLjEsMTIuMiwnW10nKSwgbnVtcmFuZ2Uo MC4wLDEyMC4yLCcoXScpKTsKK3NlbGVjdCByYW5nZV93aXRob3V0X3BvcnRpb24obnVtcmFu Z2UoMS4wLDMuMCwnW10nKSwgbnVtcmFuZ2UoMS41LDIuMCwnKF0nKSk7CisKIHNlbGVjdCBu dW1yYW5nZSg0LjUsIDUuNSwgJ1tdJykgJiYgbnVtcmFuZ2UoNS41LCA2LjUpOwogc2VsZWN0 IG51bXJhbmdlKDEuMCwgMi4wKSA8PCBudW1yYW5nZSgzLjAsIDQuMCk7CiBzZWxlY3QgbnVt cmFuZ2UoMS4wLCAzLjAsJ1tdJykgPDwgbnVtcmFuZ2UoMy4wLCA0LjAsJ1tdJyk7Ci0tIAoy LjQyLjAKCg== --------------rOiwMPZjbSgQ0WsI4nnNtOso Content-Type: text/x-patch; charset=UTF-8; name="v31-0004-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Disposition: attachment; filename="v31-0004-Add-UPDATE-DELETE-FOR-PORTION-OF.patch" Content-Transfer-Encoding: base64 RnJvbSA5ZmRkNDIzZGY1Yzk2YzdjMzY3MmMyNjNiYzA1OGIzNzY0ZDkzZGQwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IEZyaSwgMjUgSnVuIDIwMjEgMTg6NTQ6MzUgLTA3 MDAKU3ViamVjdDogW1BBVENIIHYzMSA0LzZdIEFkZCBVUERBVEUvREVMRVRFIEZPUiBQT1JU SU9OIE9GCgotIEFkZGVkIGJpc29uIHN1cHBvcnQgZm9yIEZPUiBQT1JUSU9OIE9GIHN5bnRh eC4gVGhlIGJvdW5kcyBtdXN0IGJlCiAgY29uc3RhbnQsIHNvIHdlIGZvcmJpZCBjb2x1bW4g cmVmZXJlbmNlcywgc3VicXVlcmllcywgZXRjLiBCdXQgd2UKICBwZXJtaXQgdGhlIG1hZ2lj IFVOQk9VTkRFRCBrZXl3b3JkIGFzIHRoZSBGUk9NIG9yIHRoZSBUTyAob3IgYm90aCkKICB0 byBwZXJmb3JtIGFuIHVuYm91bmRlZCB1cGRhdGUvZGVsZXRlLiBXZSBhbHNvIGFjY2VwdCBm dW5jdGlvbnMgbGlrZQogIE5PVygpLgotIEFkZGVkIGxvZ2ljIHRvIGV4ZWN1dG9yIHRvIGlu c2VydCBuZXcgcm93cyBmb3IgdGhlICJsZWZ0b3ZlciIgcGFydCBvZgogIGEgcmVjb3JkIHRv dWNoZWQgYnkgYSBGT1IgUE9SVElPTiBPRiBxdWVyeS4KLSBBZGRlZCB0Z190ZW1wb3JhbCBk ZXNjcmlwdG9yIHRvIHRoZSBUcmlnZ2VyRGF0YSBzdHJ1Y3QgdGhhdCB3ZSBwYXNzIHRvCiAg dHJpZ2dlciBmdW5jdGlvbnMuIE91ciB0cmlnZ2VycyB1c2UgdGhpcyB0byBsZWFybiB3aGF0 IGJvdW5kcyB3ZXJlCiAgZ2l2ZW4gaW4gdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVzZS4KLSBE b2N1bWVudGVkIEZPUiBQT1JUSU9OIE9GLgotIERvY3VtZW50ZWQgdGdfdGVtcG9yYWwgc3Ry dWN0LgotIEFkZGVkIHRlc3RzLgotLS0KIC4uLi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9z dGdyZXNfZmR3Lm91dCAgICB8ICAgNSArCiBjb250cmliL3Bvc3RncmVzX2Zkdy9zcWwvcG9z dGdyZXNfZmR3LnNxbCAgICAgfCAgIDQgKwogY29udHJpYi9zZXBnc3FsL3Byb2MuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBjb250cmliL3VuYWNjZW50L3VuYWNjZW50 LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQogZG9jL3NyYy9zZ21sL3JlZi9kZWxl dGUuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDY5ICsrCiBkb2Mvc3JjL3NnbWwvcmVmL3Vw ZGF0ZS5zZ21sICAgICAgICAgICAgICAgICAgfCAgODcgKysrCiBkb2Mvc3JjL3NnbWwvdHJp Z2dlci5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgNjAgKy0KIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R2YWxpZGF0ZS5jICAgICAgICB8ICAzNCArLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvZXhwbGFpbi5jICAgICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvdHJpZ2dlci5jICAgICAgICAgICAgICAgIHwgIDQ5ICsrCiBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgICAgICAgIHwgMzAwICsrKysrKyst CiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgMjQg Kwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vY3JlYXRlcGxhbi5jICAgICAgIHwgICA4 ICstCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAg IDEgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYyAgICAgICAgIHwg ICA0ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jICAgICAgICAgICAgICAgICAg fCAyNDIgKysrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAg ICAgICAgIHwgIDU2ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAgICAg ICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYyAg ICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAg ICAgICAgICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAg ICAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMg ICAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVIYW5k bGVyLmMgICAgICAgICAgfCAgNDAgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdn ZXJzLmMgICAgICAgICAgIHwgIDc0ICsrCiBzcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lz Y2FjaGUuYyAgICAgICAgICAgfCAgNTcgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51 bS5oICAgICAgICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJp Z2dlci5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNu b2Rlcy5oICAgICAgICAgICAgICAgICB8ICAyNiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgNDYgKy0KIHNyYy9pbmNsdWRlL25vZGVzL3Bh dGhub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9w bGFubm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgIDI2ICsKIHNyYy9pbmNsdWRlL29wdGlt aXplci9wYXRobm9kZS5oICAgICAgICAgICAgICB8ICAgMyArLQogc3JjL2luY2x1ZGUvcGFy c2VyL2FuYWx5emUuaCAgICAgICAgICAgICAgICAgIHwgICAzICstCiBzcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQgIHwgNjg1ICsrKysrKysrKysr KysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAg IHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQgICAg ICB8ICAxOCArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VwZGF0YWJsZV92aWV3cy5v dXQgfCAgMzIgKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQg ICAgIHwgMTQwICsrKysKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAg ICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yu c3FsICAgICAgIHwgNTMxICsrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9v cHJfc2FuaXR5LnNxbCAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHJpdmlsZWdlcy5zcWwgICAgICAgICAgIHwgIDE4ICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3VwZGF0YWJsZV92aWV3cy5zcWwgICAgICB8ICAxNCArCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC93aXRob3V0X292ZXJsYXBzLnNxbCAgICAgfCAgODggKysrCiA1MSBmaWxlcyBjaGFuZ2Vk LCAyNzMxIGluc2VydGlvbnMoKyksIDY0IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvZm9yX3BvcnRpb25fb2Yuc3Fs CgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvZXhwZWN0ZWQvcG9zdGdyZXNf ZmR3Lm91dCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5v dXQKaW5kZXggYWNiYmYzYjU2YzguLjdmNTE1YjNkMDkxIDEwMDY0NAotLS0gYS9jb250cmli L3Bvc3RncmVzX2Zkdy9leHBlY3RlZC9wb3N0Z3Jlc19mZHcub3V0CisrKyBiL2NvbnRyaWIv cG9zdGdyZXNfZmR3L2V4cGVjdGVkL3Bvc3RncmVzX2Zkdy5vdXQKQEAgLTYzMzQsNiArNjMz NCwxMSBAQCBERUxFVEUgRlJPTSBmdDIKIAogREVMRVRFIEZST00gZnQyIFdIRVJFIGZ0Mi5j MSA+IDIwMDA7CiBBTFRFUiBTRVJWRVIgbG9vcGJhY2sgT1BUSU9OUyAoQUREIGV4dGVuc2lv bnMgJ3Bvc3RncmVzX2ZkdycpOworLS0gVGVzdCBVUERBVEUvREVMRVRFIHdpdGggRk9SIFBP UlRJT04gT0YKK1VQREFURSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJPTSAnYScgVE8gJ2In IFNFVCBjMSA9IDE7CitFUlJPUjogIGZvcmVpZ24gdGFibGVzIGRvbid0IHN1cHBvcnQgRk9S IFBPUlRJT04gT0YKK0RFTEVURSBGUk9NIGZ0MiBGT1IgUE9SVElPTiBPRiBjMyBGUk9NICdh JyBUTyAnYic7CitFUlJPUjogIGZvcmVpZ24gdGFibGVzIGRvbid0IHN1cHBvcnQgRk9SIFBP UlRJT04gT0YKIC0tIFRlc3QgdGhhdCB0cmlnZ2VyIG9uIHJlbW90ZSB0YWJsZSB3b3JrcyBh cyBleHBlY3RlZAogQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gIlMgMSIuRl9CUlRSSUco KSBSRVRVUk5TIHRyaWdnZXIgQVMgJCQKIEJFR0lOCmRpZmYgLS1naXQgYS9jb250cmliL3Bv c3RncmVzX2Zkdy9zcWwvcG9zdGdyZXNfZmR3LnNxbCBiL2NvbnRyaWIvcG9zdGdyZXNfZmR3 L3NxbC9wb3N0Z3Jlc19mZHcuc3FsCmluZGV4IGUzZDE0N2RlNmRhLi41YWNjZTNhNWFmYyAx MDA2NDQKLS0tIGEvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwK KysrIGIvY29udHJpYi9wb3N0Z3Jlc19mZHcvc3FsL3Bvc3RncmVzX2Zkdy5zcWwKQEAgLTE1 NjYsNiArMTU2NiwxMCBAQCBERUxFVEUgRlJPTSBmdDIKIERFTEVURSBGUk9NIGZ0MiBXSEVS RSBmdDIuYzEgPiAyMDAwOwogQUxURVIgU0VSVkVSIGxvb3BiYWNrIE9QVElPTlMgKEFERCBl eHRlbnNpb25zICdwb3N0Z3Jlc19mZHcnKTsKIAorLS0gVGVzdCBVUERBVEUvREVMRVRFIHdp dGggRk9SIFBPUlRJT04gT0YKK1VQREFURSBmdDIgRk9SIFBPUlRJT04gT0YgYzMgRlJPTSAn YScgVE8gJ2InIFNFVCBjMSA9IDE7CitERUxFVEUgRlJPTSBmdDIgRk9SIFBPUlRJT04gT0Yg YzMgRlJPTSAnYScgVE8gJ2InOworCiAtLSBUZXN0IHRoYXQgdHJpZ2dlciBvbiByZW1vdGUg dGFibGUgd29ya3MgYXMgZXhwZWN0ZWQKIENSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OICJT IDEiLkZfQlJUUklHKCkgUkVUVVJOUyB0cmlnZ2VyIEFTICQkCiBCRUdJTgpkaWZmIC0tZ2l0 IGEvY29udHJpYi9zZXBnc3FsL3Byb2MuYyBiL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKaW5k ZXggNDg5OWJjMmEzZTMuLjIwMTIwZmQ1MzFmIDEwMDY0NAotLS0gYS9jb250cmliL3NlcGdz cWwvcHJvYy5jCisrKyBiL2NvbnRyaWIvc2VwZ3NxbC9wcm9jLmMKQEAgLTE2MSw3ICsxNjEs NyBAQCBzZXBnc3FsX3Byb2NfZHJvcChPaWQgZnVuY3Rpb25JZCkKIAkgKiBjaGVjayBkYl9z Y2hlbWE6e3JlbW92ZV9uYW1lfSBwZXJtaXNzaW9uCiAJICovCiAJb2JqZWN0LmNsYXNzSWQg PSBOYW1lc3BhY2VSZWxhdGlvbklkOwotCW9iamVjdC5vYmplY3RJZCA9IGdldF9mdW5jX25h bWVzcGFjZShmdW5jdGlvbklkKTsKKwlvYmplY3Qub2JqZWN0SWQgPSBnZXRfZnVuY19uYW1l c3BhY2UoZnVuY3Rpb25JZCwgdHJ1ZSk7CiAJb2JqZWN0Lm9iamVjdFN1YklkID0gMDsKIAlh dWRpdF9uYW1lID0gZ2V0T2JqZWN0SWRlbnRpdHkoJm9iamVjdCwgZmFsc2UpOwogCmRpZmYg LS1naXQgYS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMgYi9jb250cmliL3VuYWNjZW50 L3VuYWNjZW50LmMKaW5kZXggNzA3OTYyMzA1ZjguLjNiNzY0NmVjNzJhIDEwMDY0NAotLS0g YS9jb250cmliL3VuYWNjZW50L3VuYWNjZW50LmMKKysrIGIvY29udHJpYi91bmFjY2VudC91 bmFjY2VudC5jCkBAIC00NDksNyArNDQ5LDcgQEAgdW5hY2NlbnRfZGljdChQR19GVU5DVElP Tl9BUkdTKQogCQkgKiBVc2UgdGhlICJ1bmFjY2VudCIgZGljdGlvbmFyeSB0aGF0IGlzIGlu IHRoZSBzYW1lIHNjaGVtYSB0aGF0IHRoaXMKIAkJICogZnVuY3Rpb24gaXMgaW4uCiAJCSAq LwotCQlPaWQJCQlwcm9jbnNwaWQgPSBnZXRfZnVuY19uYW1lc3BhY2UoZmNpbmZvLT5mbGlu Zm8tPmZuX29pZCk7CisJCU9pZAkJCXByb2Nuc3BpZCA9IGdldF9mdW5jX25hbWVzcGFjZShm Y2luZm8tPmZsaW5mby0+Zm5fb2lkLCB0cnVlKTsKIAkJY29uc3QgY2hhciAqZGljdG5hbWUg PSAidW5hY2NlbnQiOwogCiAJCWRpY3RPaWQgPSBHZXRTeXNDYWNoZU9pZDIoVFNESUNUTkFN RU5TUCwgQW51bV9wZ190c19kaWN0X29pZCwKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggMWEwOWFk MGZiZjcuLjNjNzU0M2IyMmExIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtODMzLDcgKzgzMyw3 IEBACiAgICAgICAgPHN0cnVjdGZpZWxkPmFtb3BwdXJwb3NlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Y2hhcjwvdHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgotICAgICAgIE9w ZXJhdG9yIHB1cnBvc2UsIGVpdGhlciA8bGl0ZXJhbD5zPC9saXRlcmFsPiBmb3Igc2VhcmNo IG9yCisgICAgICAgT3BlcmF0b3IgcHVycG9zZSwgZWl0aGVyIDxsaXRlcmFsPnM8L2xpdGVy YWw+IGZvciBzZWFyY2gsIG9yCiAgICAgICAgPGxpdGVyYWw+bzwvbGl0ZXJhbD4gZm9yIG9y ZGVyaW5nCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CkBAIC04NjUsNyAr ODY1LDcgQEAKICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgogICAgICAgIFRoZSBCLXRy ZWUgb3BlcmF0b3IgZmFtaWx5IHRoaXMgZW50cnkgc29ydHMgYWNjb3JkaW5nIHRvLCBpZiBh bgotICAgICAgIG9yZGVyaW5nIG9wZXJhdG9yOyB6ZXJvIGlmIGEgc2VhcmNoIG9wZXJhdG9y IG9yIHBvcnRpb24gb3BlcmF0b3IKKyAgICAgICBvcmRlcmluZyBvcGVyYXRvcjsgemVybyBp ZiBhIHNlYXJjaCBvcGVyYXRvcgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93 PgogICAgIDwvdGJvZHk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbAppbmRleCAxYjgxYjRlN2Q3NC4u MWM3Mjc1MzQxZWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbApAQCAtMjMsNiArMjMsNyBAQCBQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIDxzeW5vcHNpcz4KIFsgV0lUSCBbIFJFQ1VSU0lW RSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj53aXRoX3F1ZXJ5PC9yZXBsYWNl YWJsZT4gWywgLi4uXSBdCiBERUxFVEUgRlJPTSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgWyBBUyBd IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5hbGlhczwvcmVwbGFjZWFibGU+IF0K KyAgICBbIEZPUiBQT1JUSU9OIE9GIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5y YW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IEZST00gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxlPiBUTyA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBV U0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZnJvbV9pdGVtPC9yZXBsYWNl YWJsZT4gWywgLi4uXSBdCiAgICAgWyBXSEVSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29uZGl0aW9uPC9yZXBsYWNlYWJsZT4gfCBXSEVSRSBDVVJSRU5UIE9GIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jdXJzb3JfbmFtZTwvcmVwbGFjZWFibGU+IF0K ICAgICBbIFJFVFVSTklORyAqIHwgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm91 dHB1dF9leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gWyBbIEFTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm91dHB1dF9uYW1lPC9yZXBsYWNlYWJsZT4gXSBbLCAuLi5dIF0K QEAgLTU0LDYgKzU1LDM5IEBAIERFTEVURSBGUk9NIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqCiAgICBjaXJj dW1zdGFuY2VzLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBJZiB0aGUgdGFibGUgaGFz IGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sCisgICB5b3UgbWF5IHN1cHBseSBhIDxs aXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsIGFuZCB5b3VyIGRlbGV0 ZSB3aWxsCisgICBvbmx5IGFmZmVjdCByb3dzIHRoYXQgb3ZlcmxhcCB0aGUgZ2l2ZW4gaW50 ZXJ2YWwuIEZ1cnRoZXJtb3JlLCBpZiBhIHJvdydzIHNwYW4KKyAgIGV4dGVuZHMgb3V0c2lk ZSB0aGUgPGxpdGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcywgdGhlbiB5 b3VyIGRlbGV0ZQorICAgd2lsbCBvbmx5IGNoYW5nZSB0aGUgc3BhbiB3aXRoaW4gdGhvc2Ug Ym91bmRzLiBJbiBlZmZlY3QgeW91IGFyZSBkZWxldGluZyBhbnkKKyAgIG1vbWVudCB0YXJn ZXRlZCBieSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYW5kIG5vIG1vbWVu dHMgb3V0c2lkZS4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgU3BlY2lmaWNhbGx5LCBh ZnRlciA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGRlbGV0ZXMgdGhl IGV4aXN0aW5nIHJvdywKKyAgIGl0IHdpbGwgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPgor ICAgbmV3IHJvd3Mgd2hvc2UgcmFuZ2Ugb3Igc3RhcnQvZW5kIGNvbHVtbihzKSByZWNlaXZl IHRoZSByZW1haW5pbmcgc3BhbiBvdXRzaWRlCisgICB0aGUgdGFyZ2V0ZWQgYm91bmRzLCBj b250YWluaW5nIHRoZSBvcmlnaW5hbCB2YWx1ZXMgaW4gb3RoZXIgY29sdW1ucy4KKyAgIFRo ZXJlIHdpbGwgYmUgemVybyB0byB0d28gaW5zZXJ0ZWQgcmVjb3JkcywKKyAgIGRlcGVuZGlu ZyBvbiB3aGV0aGVyIHRoZSBvcmlnaW5hbCBzcGFuIGV4dGVuZGVkIGJlZm9yZSB0aGUgdGFy Z2V0ZWQKKyAgIDxsaXRlcmFsPkZST008L2xpdGVyYWw+LCBhZnRlciB0aGUgdGFyZ2V0ZWQg PGxpdGVyYWw+VE88L2xpdGVyYWw+LCBib3RoLCBvciBuZWl0aGVyLgorICA8L3BhcmE+CisK KyAgPHBhcmE+CisgICBUaGVzZSBzZWNvbmRhcnkgaW5zZXJ0cyBmaXJlIDxsaXRlcmFsPklO U0VSVDwvbGl0ZXJhbD4gdHJpZ2dlcnMuIEZpcnN0CisgICA8bGl0ZXJhbD5CRUZPUkUgREVM RVRFPC9saXRlcmFsPiB0cmlnZ2VycyBmaXJzdCwgdGhlbgorICAgPGxpdGVyYWw+QkVGT1JF IElOU0VSVDwvbGl0ZXJhbD4sIHRoZW4gPGxpdGVyYWw+QUZURVIgSU5TRVJUPC9saXRlcmFs PiwKKyAgIHRoZW4gPGxpdGVyYWw+QUZURVIgREVMRVRFPC9saXRlcmFsPi4KKyAgPC9wYXJh PgorCisgIDxwYXJhPgorICAgVGhlc2Ugc2Vjb25kYXJ5IGluc2VydHMgZG8gbm90IHJlcXVp cmUgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIHRhYmxlLgor ICAgVGhpcyBpcyBiZWNhdXNlIGNvbmNlcHR1YWxseSBubyBuZXcgaW5mb3JtYXRpb24gaGFz IGJlZW4gYWRkZWQuIFRoZSBpbnNlcnRlZCByb3dzIG9ubHkgcHJlc2VydmUKKyAgIGV4aXN0 aW5nIGRhdGEgYWJvdXQgdGhlIHVudGFyZ2V0ZWQgdGltZSBwZXJpb2QuIE5vdGUgdGhpcyBt YXkgcmVzdWx0IGluIHVzZXJzIGZpcmluZyA8bGl0ZXJhbD5JTlNFUlQ8L2xpdGVyYWw+Cisg ICB0cmlnZ2VycyB3aG8gZG9uJ3QgaGF2ZSBpbnNlcnQgcHJpdmlsZWdlcywgc28gYmUgY2Fy ZWZ1bCBhYm91dCA8bGl0ZXJhbD5TRUNVUklUWSBERUZJTkVSPC9saXRlcmFsPiB0cmlnZ2Vy IGZ1bmN0aW9ucyEKKyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgVGhlIG9wdGlvbmFsIDxs aXRlcmFsPlJFVFVSTklORzwvbGl0ZXJhbD4gY2xhdXNlIGNhdXNlcyA8Y29tbWFuZD5ERUxF VEU8L2NvbW1hbmQ+CiAgICB0byBjb21wdXRlIGFuZCByZXR1cm4gdmFsdWUocykgYmFzZWQg b24gZWFjaCByb3cgYWN0dWFsbHkgZGVsZXRlZC4KQEAgLTExNiw2ICsxNTAsNDEgQEAgREVM RVRFIEZST00gWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxl X25hbWU8L3JlcGxhY2VhYmxlPiBbICoKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0 ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSByYW5nZSBjb2x1 bW4gb3IgcGVyaW9kIHRvIHVzZSB3aGVuIHBlcmZvcm1pbmcgYSB0ZW1wb3JhbCBkZWxldGUu CisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnN0YXJ0X3RpbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhlIGVhcmxpZXN0IHRpbWUgKGluY2x1c2l2ZSkgdG8g Y2hhbmdlIGluIGEgdGVtcG9yYWwgZGVsZXRlLgorICAgICAgVGhpcyBtdXN0IGJlIGEgdmFs dWUgbWF0Y2hpbmcgdGhlIGJhc2UgdHlwZSBvZiB0aGUgcmFuZ2Ugb3IgcGVyaW9kIGZyb20K KyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9vcl9wZXJpb2Rf bmFtZTwvcmVwbGFjZWFibGU+LiBBCisgICAgICA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBo ZXJlIGluZGljYXRlcyBhIGRlbGV0ZSB3aG9zZSBiZWdpbm5pbmcgaXMKKyAgICAgIHVuYm91 bmRlZCAoYXMgd2l0aCByYW5nZSB0eXBlcykuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNlYWJs ZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBsYXRl c3QgdGltZSAoZXhjbHVzaXZlKSB0byBjaGFuZ2UgaW4gYSB0ZW1wb3JhbCBkZWxldGUuCisg ICAgICBUaGlzIG11c3QgYmUgYSB2YWx1ZSBtYXRjaGluZyB0aGUgYmFzZSB0eXBlIG9mIHRo ZSByYW5nZSBvciBwZXJpb2QgZnJvbQorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJsZT4uIEEKKyAgICAgIDxs aXRlcmFsPk5VTEw8L2xpdGVyYWw+IGhlcmUgaW5kaWNhdGVzIGEgZGVsZXRlIHdob3NlIGVu ZCBpcyB1bmJvdW5kZWQKKyAgICAgIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxp c3RlbnRyeT4KICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZnJv bV9pdGVtPC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvdXBk YXRlLnNnbWwKaW5kZXggMmFiMjRiMDUyM2UuLjcxYTAyNjk3ZjJkIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvdXBk YXRlLnNnbWwKQEAgLTIzLDYgKzIzLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiA8 c3lub3BzaXM+CiBbIFdJVEggWyBSRUNVUlNJVkUgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+d2l0aF9xdWVyeTwvcmVwbGFjZWFibGU+IFssIC4uLl0gXQogVVBEQVRFIFsg T05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAqIF0gWyBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmFsaWFzPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgRk9SIFBPUlRJT04gT0YgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJhbmdlX29yX3BlcmlvZF9uYW1lPC9yZXBsYWNlYWJs ZT4gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmZvcl9wb3J0aW9uX29mX3Rhcmdl dDwvcmVwbGFjZWFibGU+IF0KICAgICBTRVQgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiA9IHsgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiB8IERFRkFVTFQgfSB8CiAg ICAgICAgICAgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8 L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgPSBbIFJPVyBdICggeyA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IHwgREVGQVVMVCB9IFss IC4uLl0gKSB8CiAgICAgICAgICAgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgPSAoIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zdWItU0VMRUNUPC9yZXBsYWNlYWJsZT4gKQpAQCAtNTEsNiAr NTIsNDEgQEAgVVBEQVRFIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWwogICAgY2lyY3Vtc3RhbmNlcy4K ICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgSWYgdGhlIHRhYmxlIGhhcyBhIHJhbmdlIG9y IG11bHRpcmFuZ2UgY29sdW1uLAorICAgeW91IG1heSBzdXBwbHkgYSA8bGl0ZXJhbD5GT1Ig UE9SVElPTiBPRjwvbGl0ZXJhbD4gY2xhdXNlLCBhbmQgeW91ciB1cGRhdGUgd2lsbAorICAg b25seSBhZmZlY3Qgcm93cyB0aGF0IG92ZXJsYXAgdGhlIGdpdmVuIGludGVydmFsLiBGdXJ0 aGVybW9yZSwgaWYgYSByb3cncyBzcGFuCisgICBleHRlbmRzIG91dHNpZGUgdGhlIDxsaXRl cmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMsIHRoZW4geW91ciB1cGRhdGUK KyAgIHdpbGwgb25seSBjaGFuZ2UgdGhlIHNwYW4gd2l0aGluIHRob3NlIGJvdW5kcy4gSW4g ZWZmZWN0IHlvdSBhcmUgdXBkYXRpbmcgYW55CisgICBtb21lbnQgdGFyZ2V0ZWQgYnkgPGxp dGVyYWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGFuZCBubyBtb21lbnRzIG91dHNpZGUu CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFNwZWNpZmljYWxseSwgd2hlbiA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHVwZGF0ZXMgdGhlIGV4aXN0aW5nIHJv dywKKyAgIGl0IHdpbGwgYWxzbyBjaGFuZ2UgdGhlIHJhbmdlIG9yIHN0YXJ0L2VuZCBjb2x1 bW4ocykgc28gdGhhdCB0aGVpciBpbnRlcnZhbAorICAgbm8gbG9uZ2VyIGV4dGVuZHMgYmV5 b25kIHRoZSB0YXJnZXRlZCA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwvbGl0ZXJhbD4gYm91 bmRzLgorICAgVGhlbiA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IHdp bGwgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPgorICAgbmV3IHJvd3Mgd2hvc2UgcmFuZ2Ug b3Igc3RhcnQvZW5kIGNvbHVtbihzKSByZWNlaXZlIHRoZSByZW1haW5pbmcgc3BhbiBvdXRz aWRlCisgICB0aGUgdGFyZ2V0ZWQgYm91bmRzLCBjb250YWluaW5nIHRoZSB1bi11cGRhdGVk IHZhbHVlcyBpbiBvdGhlciBjb2x1bW5zLgorICAgVGhlcmUgd2lsbCBiZSB6ZXJvIHRvIHR3 byBpbnNlcnRlZCByZWNvcmRzLAorICAgZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIG9yaWdp bmFsIHNwYW4gZXh0ZW5kZWQgYmVmb3JlIHRoZSB0YXJnZXRlZAorICAgPGxpdGVyYWw+RlJP TTwvbGl0ZXJhbD4sIGFmdGVyIHRoZSB0YXJnZXRlZCA8bGl0ZXJhbD5UTzwvbGl0ZXJhbD4s IGJvdGgsIG9yIG5laXRoZXIuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZXNlIHNl Y29uZGFyeSBpbnNlcnRzIGZpcmUgPGxpdGVyYWw+SU5TRVJUPC9saXRlcmFsPiB0cmlnZ2Vy cy4gRmlyc3QKKyAgIDxsaXRlcmFsPkJFRk9SRSBVUERBVEU8L2xpdGVyYWw+IHRyaWdnZXJz IGZpcnN0LCB0aGVuCisgICA8bGl0ZXJhbD5CRUZPUkUgSU5TRVJUPC9saXRlcmFsPiwgdGhl biA8bGl0ZXJhbD5BRlRFUiBJTlNFUlQ8L2xpdGVyYWw+LAorICAgdGhlbiA8bGl0ZXJhbD5B RlRFUiBVUERBVEU8L2xpdGVyYWw+LgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGVz ZSBzZWNvbmRhcnkgaW5zZXJ0cyBkbyBub3QgcmVxdWlyZSA8bGl0ZXJhbD5JTlNFUlQ8L2xp dGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgdGFibGUuCisgICBUaGlzIGlzIGJlY2F1c2UgY29u Y2VwdHVhbGx5IG5vIG5ldyBpbmZvcm1hdGlvbiBoYXMgYmVlbiBhZGRlZC4gVGhlIGluc2Vy dGVkIHJvd3Mgb25seSBwcmVzZXJ2ZQorICAgZXhpc3RpbmcgZGF0YSBhYm91dCB0aGUgdW50 YXJnZXRlZCB0aW1lIHBlcmlvZC4gTm90ZSB0aGlzIG1heSByZXN1bHQgaW4gdXNlcnMgZmly aW5nIDxsaXRlcmFsPklOU0VSVDwvbGl0ZXJhbD4KKyAgIHRyaWdnZXJzIHdobyBkb24ndCBo YXZlIGluc2VydCBwcml2aWxlZ2VzLCBzbyBiZSBjYXJlZnVsIGFib3V0IDxsaXRlcmFsPlNF Q1VSSVRZIERFRklORVI8L2xpdGVyYWw+IHRyaWdnZXIgZnVuY3Rpb25zIQorICA8L3BhcmE+ CisKICAgPHBhcmE+CiAgICBUaGUgb3B0aW9uYWwgPGxpdGVyYWw+UkVUVVJOSU5HPC9saXRl cmFsPiBjbGF1c2UgY2F1c2VzIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4KICAgIHRvIGNv bXB1dGUgYW5kIHJldHVybiB2YWx1ZShzKSBiYXNlZCBvbiBlYWNoIHJvdyBhY3R1YWxseSB1 cGRhdGVkLgpAQCAtMTE0LDYgKzE1MCw1NyBAQCBVUERBVEUgWyBPTkxZIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBb CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVu dHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yYW5nZV9v cl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGUgcmFuZ2UgY29sdW1uIG9yIHBlcmlvZCB0byB1c2Ugd2hl biBwZXJmb3JtaW5nIGEgdGVtcG9yYWwgdXBkYXRlLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5mb3JfcG9ydGlvbl9vZl90 YXJnZXQ8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJh PgorICAgICAgVGhlIGludGVydmFsIHRvIHVwZGF0ZS4gSWYgeW91IGFyZSB0YXJnZXRpbmcg YSByYW5nZSBjb2x1bW4gb3IgPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiwKKyAgICAgIHlv dSBtYXkgZ2l2ZSB0aGlzIGluIHRoZSBmb3JtIDxsaXRlcmFsPkZST008L2xpdGVyYWw+Cisg ICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RhcnRfdGltZTwvcmVwbGFj ZWFibGU+IDxsaXRlcmFsPlRPPC9saXRlcmFsPgorICAgICAgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmVuZF90aW1lPC9yZXBsYWNlYWJsZT4uCisgICAgICBPdGhlcndpc2Ug eW91IG11c3QgdXNlCisgICAgICA8bGl0ZXJhbD4oPC9saXRlcmFsPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT48bGl0ZXJhbD4pPC9s aXRlcmFsPgorICAgICAgd2hlcmUgdGhlIGV4cHJlc3Npb24geWllbGRzIGEgdmFsdWUgZm9y IHRoZSBzYW1lIHR5cGUgYXMKKyAgICAgIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5yYW5nZV9vcl9wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+LgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5 PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdGFydF90aW1l PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIFRoZSBlYXJsaWVzdCB0aW1lIChpbmNsdXNpdmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBv cmFsIHVwZGF0ZS4KKyAgICAgIFRoaXMgbXVzdCBiZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBi YXNlIHR5cGUgb2YgdGhlIHJhbmdlIG9yIHBlcmlvZCBmcm9tCisgICAgICA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3JfcGVyaW9kX25hbWU8L3JlcGxhY2VhYmxl Pi4gQQorICAgICAgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYW4g dXBkYXRlIHdob3NlIGJlZ2lubmluZyBpcworICAgICAgdW5ib3VuZGVkIChhcyB3aXRoIHJh bmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZW5kX3RpbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGxhdGVzdCB0aW1lIChleGNsdXNp dmUpIHRvIGNoYW5nZSBpbiBhIHRlbXBvcmFsIHVwZGF0ZS4KKyAgICAgIFRoaXMgbXVzdCBi ZSBhIHZhbHVlIG1hdGNoaW5nIHRoZSBiYXNlIHR5cGUgb2YgdGhlIHJhbmdlIG9yIHBlcmlv ZCBmcm9tCisgICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmFuZ2Vfb3Jf cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPi4gQQorICAgICAgPGxpdGVyYWw+TlVMTDwvbGl0 ZXJhbD4gaGVyZSBpbmRpY2F0ZXMgYW4gdXBkYXRlIHdob3NlIGVuZCBpcyB1bmJvdW5kZWQK KyAgICAgIChhcyB3aXRoIHJhbmdlIHR5cGVzKS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8 dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxh Y2VhYmxlPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvdHJpZ2dlci5zZ21sIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbAppbmRleCBhNTM5 MGZmNjQ0My4uNTM4YTFlMDc4ZGMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC90cmlnZ2Vy LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3RyaWdnZXIuc2dtbApAQCAtNTM1LDE3ICs1MzUs MTggQEAgQ0FMTEVEX0FTX1RSSUdHRVIoZmNpbmZvKQogPHByb2dyYW1saXN0aW5nPgogdHlw ZWRlZiBzdHJ1Y3QgVHJpZ2dlckRhdGEKIHsKLSAgICBOb2RlVGFnICAgICAgICAgIHR5cGU7 Ci0gICAgVHJpZ2dlckV2ZW50ICAgICB0Z19ldmVudDsKLSAgICBSZWxhdGlvbiAgICAgICAg IHRnX3JlbGF0aW9uOwotICAgIEhlYXBUdXBsZSAgICAgICAgdGdfdHJpZ3R1cGxlOwotICAg IEhlYXBUdXBsZSAgICAgICAgdGdfbmV3dHVwbGU7Ci0gICAgVHJpZ2dlciAgICAgICAgICp0 Z190cmlnZ2VyOwotICAgIFR1cGxlVGFibGVTbG90ICAqdGdfdHJpZ3Nsb3Q7Ci0gICAgVHVw bGVUYWJsZVNsb3QgICp0Z19uZXdzbG90OwotICAgIFR1cGxlc3RvcmVzdGF0ZSAqdGdfb2xk dGFibGU7Ci0gICAgVHVwbGVzdG9yZXN0YXRlICp0Z19uZXd0YWJsZTsKLSAgICBjb25zdCBC aXRtYXBzZXQgKnRnX3VwZGF0ZWRjb2xzOworICAgIE5vZGVUYWcgICAgICAgICAgICB0eXBl OworICAgIFRyaWdnZXJFdmVudCAgICAgICB0Z19ldmVudDsKKyAgICBSZWxhdGlvbiAgICAg ICAgICAgdGdfcmVsYXRpb247CisgICAgSGVhcFR1cGxlICAgICAgICAgIHRnX3RyaWd0dXBs ZTsKKyAgICBIZWFwVHVwbGUgICAgICAgICAgdGdfbmV3dHVwbGU7CisgICAgVHJpZ2dlciAg ICAgICAgICAgKnRnX3RyaWdnZXI7CisgICAgVHVwbGVUYWJsZVNsb3QgICAgKnRnX3RyaWdz bG90OworICAgIFR1cGxlVGFibGVTbG90ICAgICp0Z19uZXdzbG90OworICAgIFR1cGxlc3Rv cmVzdGF0ZSAgICp0Z19vbGR0YWJsZTsKKyAgICBUdXBsZXN0b3Jlc3RhdGUgICAqdGdfbmV3 dGFibGU7CisgICAgY29uc3QgQml0bWFwc2V0ICAgKnRnX3VwZGF0ZWRjb2xzOworICAgIEZv clBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbDsKIH0gVHJpZ2dlckRhdGE7CiA8L3Byb2dy YW1saXN0aW5nPgogCkBAIC04MTMsNiArODE0LDQzIEBAIHR5cGVkZWYgc3RydWN0IFRyaWdn ZXIKICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHN0cnVjdGZpZWxk PnRnX3RlbXBvcmFsPC9zdHJ1Y3RmaWVsZD48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+Cisg ICAgICAgPHBhcmE+CisgICAgICAgIFNldCBmb3IgPGxpdGVyYWw+VVBEQVRFPC9saXRlcmFs PiBhbmQgPGxpdGVyYWw+REVMRVRFPC9saXRlcmFsPiBxdWVyaWVzCisgICAgICAgIHRoYXQg dXNlIDxsaXRlcmFsPkZPUiBQT1JUSU9OIE9GPC9saXRlcmFsPiwgb3RoZXJ3aXNlIDxzeW1i b2w+TlVMTDwvc3ltYm9sPi4KKyAgICAgICAgQ29udGFpbnMgYSBwb2ludGVyIHRvIGEgc3Ry dWN0dXJlIG9mIHR5cGUKKyAgICAgICAgPHN0cnVjdG5hbWU+Rm9yUG9ydGlvbk9mU3RhdGU8 L3N0cnVjdG5hbWU+LCBkZWZpbmVkIGluCisgICAgICAgIDxmaWxlbmFtZT5ub2Rlcy9leGVj bm9kZXMuaDwvZmlsZW5hbWU+OgorCis8cHJvZ3JhbWxpc3Rpbmc+Cit0eXBlZGVmIHN0cnVj dCBGb3JQb3J0aW9uT2ZTdGF0ZQoreworICAgIE5vZGVUYWcgdHlwZTsKKworICAgIGNoYXIg ICAqZnBfcmFuZ2VOYW1lOyAgICAgICAvKiB0aGUgY29sdW1uL1BFUklPRCBuYW1lZCBpbiBG T1IgUE9SVElPTiBPRiAqLworICAgIE9pZCAgICAgZnBfcmFuZ2VUeXBlOyAgICAgICAvKiB0 aGUgdHlwZSBvZiB0aGUgRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiAqLworICAgIGJvb2wg ICAgZnBfaGFzUGVyaW9kOyAgICAgICAvKiB0cnVlIGlmZiB0aGlzIGlzIGEgUEVSSU9EIG5v dCBhIHJhbmdlICovCisgICAgY2hhciAgICpmcF9wZXJpb2RTdGFydE5hbWU7IC8qIHRoZSBQ RVJJT0QncyBzdGFydCBjb2x1bW4gKi8KKyAgICBjaGFyICAgKmZwX3BlcmlvZEVuZE5hbWU7 ICAgLyogdGhlIFBFUklPRCdzIGVuZCBjb2x1bW4gKi8KKyAgICBEYXR1bSAgIGZwX3Rhcmdl dFJhbmdlOyAgICAgLyogdGhlIHJhbmdlIGZyb20gRk9SIFBPUlRJT04gT0YgKi8KK30gRm9y UG9ydGlvbk9mU3RhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgICAgd2hlcmUgPHN0 cnVjdGZpZWxkPmZwX3JhbmdlTmFtZTwvc3RydWN0ZmllbGQ+IGlzIHRoZSBwZXJpb2Qgb3Ig cmFuZ2UKKyAgICAgICBjb2x1bW4gbmFtZWQgaW4gdGhlIDxsaXRlcmFsPkZPUiBQT1JUSU9O IE9GPC9saXRlcmFsPiBjbGF1c2UsCisgICAgICAgPHN0cnVjdGZpZWxkPmZwX3JhbmdlVHlw ZTwvc3RydWN0ZmllbGQ+IGlzIGl0cyByYW5nZSB0eXBlLAorICAgICAgIDxzdHJ1Y3RmaWVs ZD5mcF9oYXNQZXJpb2Q8L3N0cnVjdGZpZWxkPiBpbmRpY2F0ZXMgd2hldGhlciBhIHBlcmlv ZCB3YXMgdXNlZAorICAgICAgIG9yIGEgcmFuZ2UgY29sdW1uLCA8c3RydWN0ZmllbGQ+ZnBf cGVyaW9kU3RhcnROYW1lPC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAgPHN0cnVjdGZpZWxk PmZwX3BlcmlvZEVuZE5hbWU8L3N0cnVjdGZpZWxkPiBhcmUgdGhlIG5hbWVzIG9mIHRoZSBw ZXJpb2QncworICAgICAgIHN0YXJ0IGFuZCBlbmQgY29sdW1ucyAob3IgPHN5bWJvbD5OVUxM PC9zeW1ib2w+IGlmIGEgcmFuZ2UgY29sdW1uIHdhcyB1c2VkKSwKKyAgICAgICBhbmQgPHN0 cnVjdGZpZWxkPmZwX3RhcmdldFJhbmdlPC9zdHJ1Y3RmaWVsZD4gaXMgYSByYW5nZXR5cGUg dmFsdWUgY3JlYXRlZAorICAgICAgIGJ5IGV2YWx1YXRpbmcgdGhlIDxsaXRlcmFsPkZPUiBQ T1JUSU9OIE9GPC9saXRlcmFsPiBib3VuZHMuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CiAgICAgPC92YXJpYWJsZWxpc3Q+CiAg ICA8L3BhcmE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R2 YWxpZGF0ZS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHZhbGlkYXRlLmMKaW5k ZXggMGEyMzk1ZmJhZjYuLjRlYjZmZjQyODM2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvZ2lzdC9naXN0dmFsaWRhdGUuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lz dC9naXN0dmFsaWRhdGUuYwpAQCAtMjAxLDcgKzIwMSw3IEBAIGdpc3R2YWxpZGF0ZShPaWQg b3BjbGFzc29pZCkKIAkJfQogCiAJCS8qIEdpU1Qgc3VwcG9ydHMgT1JERVIgQlkgb3BlcmF0 b3JzICovCi0JCWlmIChvcHJmb3JtLT5hbW9wcHVycG9zZSAhPSBBTU9QX1NFQVJDSCkKKwkJ aWYgKG9wcmZvcm0tPmFtb3BwdXJwb3NlID09IEFNT1BfT1JERVIpCiAJCXsKIAkJCS8qIC4u LiBidXQgbXVzdCBoYXZlIG1hdGNoaW5nIGRpc3RhbmNlIHByb2MgKi8KIAkJCWlmICghT2lk SXNWYWxpZChnZXRfb3BmYW1pbHlfcHJvYyhvcGZhbWlseW9pZCwKQEAgLTIyOCwyNCArMjI4 LDM4IEBAIGdpc3R2YWxpZGF0ZShPaWQgb3BjbGFzc29pZCkKIAkJCQlyZXN1bHQgPSBmYWxz ZTsKIAkJCX0KIAkJfQotCQllbHNlCisJCWVsc2UgaWYgKG9wcmZvcm0tPmFtb3BwdXJwb3Nl ID09IEFNT1BfU0VBUkNIKQogCQl7CiAJCQkvKiBTZWFyY2ggb3BlcmF0b3JzIG11c3QgYWx3 YXlzIHJldHVybiBib29sICovCiAJCQlvcF9yZXR0eXBlID0gQk9PTE9JRDsKIAkJfQotCi0J CS8qIENoZWNrIG9wZXJhdG9yIHNpZ25hdHVyZSAqLwotCQlpZiAoIWNoZWNrX2Ftb3Bfc2ln bmF0dXJlKG9wcmZvcm0tPmFtb3BvcHIsIG9wX3JldHR5cGUsCi0JCQkJCQkJCSAgb3ByZm9y bS0+YW1vcGxlZnR0eXBlLAotCQkJCQkJCQkgIG9wcmZvcm0tPmFtb3ByaWdodHR5cGUpKQor CQllbHNlCiAJCXsKKwkJCS8qIE5vdGhpbmcgZWxzZSBpdCBjb3VsZCBiZSAqLwogCQkJZXJl cG9ydChJTkZPLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfT0JKRUNUX0RFRklO SVRJT04pLAotCQkJCQkgZXJybXNnKCJvcGVyYXRvciBmYW1pbHkgXCIlc1wiIG9mIGFjY2Vz cyBtZXRob2QgJXMgY29udGFpbnMgb3BlcmF0b3IgJXMgd2l0aCB3cm9uZyBzaWduYXR1cmUi LAotCQkJCQkJCW9wZmFtaWx5bmFtZSwgImdpc3QiLAotCQkJCQkJCWZvcm1hdF9vcGVyYXRv cihvcHJmb3JtLT5hbW9wb3ByKSkpKTsKKwkJCQkJIGVycm1zZygib3BlcmF0b3IgZmFtaWx5 IFwiJXNcIiBvZiBhY2Nlc3MgbWV0aG9kICVzIGNvbnRhaW5zIHVua25vd24gcHVycG9zZSAl YyBmb3Igb3BlcmF0b3IgJXMiLAorCQkJCQkJIG9wZmFtaWx5bmFtZSwgImdpc3QiLCBvcHJm b3JtLT5hbW9wcHVycG9zZSwKKwkJCQkJCSBmb3JtYXRfb3BlcmF0b3Iob3ByZm9ybS0+YW1v cG9wcikpKSk7CisJCQlvcF9yZXR0eXBlID0gSW52YWxpZE9pZDsKIAkJCXJlc3VsdCA9IGZh bHNlOwogCQl9CisKKwkJLyogQ2hlY2sgb3BlcmF0b3Igc2lnbmF0dXJlICovCisJCWlmIChP aWRJc1ZhbGlkKG9wX3JldHR5cGUpKQorCQl7CisJCQlpZiAoIWNoZWNrX2Ftb3Bfc2lnbmF0 dXJlKG9wcmZvcm0tPmFtb3BvcHIsIG9wX3JldHR5cGUsCisJCQkJCQkJCQkgIG9wcmZvcm0t PmFtb3BsZWZ0dHlwZSwKKwkJCQkJCQkJCSAgb3ByZm9ybS0+YW1vcHJpZ2h0dHlwZSkpCisJ CQl7CisJCQkJZXJlcG9ydChJTkZPLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElE X09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkJCSBlcnJtc2coIm9wZXJhdG9yIGZhbWlseSBc IiVzXCIgb2YgYWNjZXNzIG1ldGhvZCAlcyBjb250YWlucyBvcGVyYXRvciAlcyB3aXRoIHdy b25nIHNpZ25hdHVyZSIsCisJCQkJCQkJCW9wZmFtaWx5bmFtZSwgImdpc3QiLAorCQkJCQkJ CQlmb3JtYXRfb3BlcmF0b3Iob3ByZm9ybS0+YW1vcG9wcikpKSk7CisJCQkJcmVzdWx0ID0g ZmFsc2U7CisJCQl9CisJCX0KIAl9CiAKIAkvKiBOb3cgY2hlY2sgZm9yIGluY29uc2lzdGVu dCBncm91cHMgb2Ygb3BlcmF0b3JzL2Z1bmN0aW9ucyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFp bi5jCmluZGV4IDkyNmQ3MGFmYWY4Li5lYjU0NjkyZTdkMyAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4 cGxhaW4uYwpAQCAtMzk2Myw3ICszOTYzLDcgQEAgRXhwbGFpblRhcmdldFJlbChQbGFuICpw bGFuLCBJbmRleCBydGksIEV4cGxhaW5TdGF0ZSAqZXMpCiAKIAkJCQkJCW9iamVjdG5hbWUg PSBnZXRfZnVuY19uYW1lKGZ1bmNpZCk7CiAJCQkJCQlpZiAoZXMtPnZlcmJvc2UpCi0JCQkJ CQkJbmFtZXNwYWNlID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAoZ2V0X2Z1bmNfbmFt ZXNwYWNlKGZ1bmNpZCkpOworCQkJCQkJCW5hbWVzcGFjZSA9IGdldF9uYW1lc3BhY2VfbmFt ZV9vcl90ZW1wKGdldF9mdW5jX25hbWVzcGFjZShmdW5jaWQsIHRydWUpKTsKIAkJCQkJfQog CQkJCX0KIAkJCQlvYmplY3R0YWcgPSAiRnVuY3Rpb24gTmFtZSI7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3RhYmxlY21kcy5jCmluZGV4IDgwN2I4N2MwNjc4Li4yOWI2ODgzY2E2MCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTEyNTE2LDYgKzEyNTE2LDcgQEAgdmFsaWRhdGVG b3JlaWduS2V5Q29uc3RyYWludChjaGFyICpjb25uYW1lLAogCQl0cmlnZGF0YS50Z190cmln dHVwbGUgPSBFeGVjRmV0Y2hTbG90SGVhcFR1cGxlKHNsb3QsIGZhbHNlLCBOVUxMKTsKIAkJ dHJpZ2RhdGEudGdfdHJpZ3Nsb3QgPSBzbG90OwogCQl0cmlnZGF0YS50Z190cmlnZ2VyID0g JnRyaWc7CisJCXRyaWdkYXRhLnRnX3RlbXBvcmFsID0gTlVMTDsKIAogCQlmY2luZm8tPmNv bnRleHQgPSAoTm9kZSAqKSAmdHJpZ2RhdGE7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwpp bmRleCAzNWViNzE4MGY3ZS4uNTVhZmUwMTk0YjMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RyaWdnZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2Vy LmMKQEAgLTQ3LDYgKzQ3LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL2xtZ3IuaCIKICNpbmNs dWRlICJ1dGlscy9hY2wuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1 ZGUgInV0aWxzL2RhdHVtLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNs dWRlICJ1dGlscy9ndWNfaG9va3MuaCIKICNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgpAQCAt MjYzMSw2ICsyNjMyLDcgQEAgRXhlY0JTRGVsZXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUs IFJlc3VsdFJlbEluZm8gKnJlbGluZm8pCiAJTG9jVHJpZ2dlckRhdGEudGdfZXZlbnQgPSBU UklHR0VSX0VWRU5UX0RFTEVURSB8CiAJCVRSSUdHRVJfRVZFTlRfQkVGT1JFOwogCUxvY1Ry aWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxv Y1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0gcmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwog CWZvciAoaSA9IDA7IGkgPCB0cmlnZGVzYy0+bnVtdHJpZ2dlcnM7IGkrKykKIAl7CiAJCVRy aWdnZXIgICAgKnRyaWdnZXIgPSAmdHJpZ2Rlc2MtPnRyaWdnZXJzW2ldOwpAQCAtMjczMCw2 ICsyNzMyLDcgQEAgRXhlY0JSRGVsZXRlVHJpZ2dlcnMoRVN0YXRlICplc3RhdGUsIEVQUVN0 YXRlICplcHFzdGF0ZSwKIAkJVFJJR0dFUl9FVkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5U X0JFRk9SRTsKIAlMb2NUcmlnZ2VyRGF0YS50Z19yZWxhdGlvbiA9IHJlbGluZm8tPnJpX1Jl bGF0aW9uRGVzYzsKKwlMb2NUcmlnZ2VyRGF0YS50Z190ZW1wb3JhbCA9IHJlbGluZm8tPnJp X2ZvclBvcnRpb25PZjsKIAlmb3IgKGkgPSAwOyBpIDwgdHJpZ2Rlc2MtPm51bXRyaWdnZXJz OyBpKyspCiAJewogCQlIZWFwVHVwbGUJbmV3dHVwbGU7CkBAIC0yODIxLDYgKzI4MjQsNyBA QCBFeGVjSVJEZWxldGVUcmlnZ2VycyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAq cmVsaW5mbywKIAkJVFJJR0dFUl9FVkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5UX0lOU1RF QUQ7CiAJTG9jVHJpZ2dlckRhdGEudGdfcmVsYXRpb24gPSByZWxpbmZvLT5yaV9SZWxhdGlv bkRlc2M7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQ b3J0aW9uT2Y7CiAKIAlFeGVjRm9yY2VTdG9yZUhlYXBUdXBsZSh0cmlndHVwbGUsIHNsb3Qs IGZhbHNlKTsKIApAQCAtMjg4NCw2ICsyODg4LDcgQEAgRXhlY0JTVXBkYXRlVHJpZ2dlcnMo RVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlbGluZm8pCiAJCVRSSUdHRVJfRVZF TlRfQkVGT1JFOwogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVsaW5mby0+cmlf UmVsYXRpb25EZXNjOwogCUxvY1RyaWdnZXJEYXRhLnRnX3VwZGF0ZWRjb2xzID0gdXBkYXRl ZENvbHM7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQ b3J0aW9uT2Y7CiAJZm9yIChpID0gMDsgaSA8IHRyaWdkZXNjLT5udW10cmlnZ2VyczsgaSsr KQogCXsKIAkJVHJpZ2dlciAgICAqdHJpZ2dlciA9ICZ0cmlnZGVzYy0+dHJpZ2dlcnNbaV07 CkBAIC0zMDE5LDYgKzMwMjQsNyBAQCBFeGVjQlJVcGRhdGVUcmlnZ2VycyhFU3RhdGUgKmVz dGF0ZSwgRVBRU3RhdGUgKmVwcXN0YXRlLAogCQlUUklHR0VSX0VWRU5UX1JPVyB8CiAJCVRS SUdHRVJfRVZFTlRfQkVGT1JFOwogCUxvY1RyaWdnZXJEYXRhLnRnX3JlbGF0aW9uID0gcmVs aW5mby0+cmlfUmVsYXRpb25EZXNjOworCUxvY1RyaWdnZXJEYXRhLnRnX3RlbXBvcmFsID0g cmVsaW5mby0+cmlfZm9yUG9ydGlvbk9mOwogCXVwZGF0ZWRDb2xzID0gRXhlY0dldEFsbFVw ZGF0ZWRDb2xzKHJlbGluZm8sIGVzdGF0ZSk7CiAJTG9jVHJpZ2dlckRhdGEudGdfdXBkYXRl ZGNvbHMgPSB1cGRhdGVkQ29sczsKIAlmb3IgKGkgPSAwOyBpIDwgdHJpZ2Rlc2MtPm51bXRy aWdnZXJzOyBpKyspCkBAIC0zMTY4LDYgKzMxNzQsNyBAQCBFeGVjSVJVcGRhdGVUcmlnZ2Vy cyhFU3RhdGUgKmVzdGF0ZSwgUmVzdWx0UmVsSW5mbyAqcmVsaW5mbywKIAkJVFJJR0dFUl9F VkVOVF9ST1cgfAogCQlUUklHR0VSX0VWRU5UX0lOU1RFQUQ7CiAJTG9jVHJpZ2dlckRhdGEu dGdfcmVsYXRpb24gPSByZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJTG9jVHJpZ2dlckRh dGEudGdfdGVtcG9yYWwgPSByZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2Y7CiAKIAlFeGVjRm9y Y2VTdG9yZUhlYXBUdXBsZSh0cmlndHVwbGUsIG9sZHNsb3QsIGZhbHNlKTsKIApAQCAtMzYz NCw2ICszNjQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQWZ0ZXJUcmlnZ2VyU2hhcmVkRGF0YQog CU9pZAkJCWF0c190Z29pZDsJCS8qIHRoZSB0cmlnZ2VyJ3MgSUQgKi8KIAlPaWQJCQlhdHNf cmVsaWQ7CQkvKiB0aGUgcmVsYXRpb24gaXQncyBvbiAqLwogCUNvbW1hbmRJZAlhdHNfZmly aW5nX2lkOwkvKiBJRCBmb3IgZmlyaW5nIGN5Y2xlICovCisJRm9yUG9ydGlvbk9mU3RhdGUg KmZvcl9wb3J0aW9uX29mOwkvKiB0aGUgRk9SIFBPUlRJT04gT0YgY2xhdXNlICovCiAJc3Ry dWN0IEFmdGVyVHJpZ2dlcnNUYWJsZURhdGEgKmF0c190YWJsZTsJLyogdHJhbnNpdGlvbiB0 YWJsZSBhY2Nlc3MgKi8KIAlCaXRtYXBzZXQgICphdHNfbW9kaWZpZWRjb2xzOwkvKiBtb2Rp ZmllZCBjb2x1bW5zICovCiB9IEFmdGVyVHJpZ2dlclNoYXJlZERhdGE7CkBAIC0zOTA3LDYg KzM5MTUsNyBAQCBzdGF0aWMgU2V0Q29uc3RyYWludFN0YXRlIFNldENvbnN0cmFpbnRTdGF0 ZUNyZWF0ZShpbnQgbnVtYWxsb2MpOwogc3RhdGljIFNldENvbnN0cmFpbnRTdGF0ZSBTZXRD b25zdHJhaW50U3RhdGVDb3B5KFNldENvbnN0cmFpbnRTdGF0ZSBvcmlnc3RhdGUpOwogc3Rh dGljIFNldENvbnN0cmFpbnRTdGF0ZSBTZXRDb25zdHJhaW50U3RhdGVBZGRJdGVtKFNldENv bnN0cmFpbnRTdGF0ZSBzdGF0ZSwKIAkJCQkJCQkJCQkJCQlPaWQgdGdvaWQsIGJvb2wgdGdp c2RlZmVycmVkKTsKK3N0YXRpYyBGb3JQb3J0aW9uT2ZTdGF0ZSAqQ29weUZvclBvcnRpb25P ZlN0YXRlKEZvclBvcnRpb25PZlN0YXRlICpzcmMpOwogc3RhdGljIHZvaWQgY2FuY2VsX3By aW9yX3N0bXRfdHJpZ2dlcnMoT2lkIHJlbGlkLCBDbWRUeXBlIGNtZFR5cGUsIGludCB0Z2V2 ZW50KTsKIAogCkBAIC00MTE2LDYgKzQxMjUsNyBAQCBhZnRlclRyaWdnZXJBZGRFdmVudChB ZnRlclRyaWdnZXJFdmVudExpc3QgKmV2ZW50cywKIAkJCW5ld3NoYXJlZC0+YXRzX3JlbGlk ID09IGV2dHNoYXJlZC0+YXRzX3JlbGlkICYmCiAJCQluZXdzaGFyZWQtPmF0c19ldmVudCA9 PSBldnRzaGFyZWQtPmF0c19ldmVudCAmJgogCQkJbmV3c2hhcmVkLT5hdHNfdGFibGUgPT0g ZXZ0c2hhcmVkLT5hdHNfdGFibGUgJiYKKwkJCW5ld3NoYXJlZC0+Zm9yX3BvcnRpb25fb2Yg PT0gZXZ0c2hhcmVkLT5mb3JfcG9ydGlvbl9vZiAmJgogCQkJbmV3c2hhcmVkLT5hdHNfZmly aW5nX2lkID09IDApCiAJCQlicmVhazsKIAl9CkBAIC00NDgwLDYgKzQ0OTAsNyBAQCBBZnRl clRyaWdnZXJFeGVjdXRlKEVTdGF0ZSAqZXN0YXRlLAogCUxvY1RyaWdnZXJEYXRhLnRnX3Jl bGF0aW9uID0gcmVsOwogCWlmIChUUklHR0VSX0ZPUl9VUERBVEUoTG9jVHJpZ2dlckRhdGEu dGdfdHJpZ2dlci0+dGd0eXBlKSkKIAkJTG9jVHJpZ2dlckRhdGEudGdfdXBkYXRlZGNvbHMg PSBldnRzaGFyZWQtPmF0c19tb2RpZmllZGNvbHM7CisJTG9jVHJpZ2dlckRhdGEudGdfdGVt cG9yYWwgPSBldnRzaGFyZWQtPmZvcl9wb3J0aW9uX29mOwogCiAJTWVtb3J5Q29udGV4dFJl c2V0KHBlcl90dXBsZV9jb250ZXh0KTsKIApAQCAtNjAxNiw2ICs2MDI3LDQzIEBAIEFmdGVy VHJpZ2dlclBlbmRpbmdPblJlbChPaWQgcmVsaWQpCiAJcmV0dXJuIGZhbHNlOwogfQogCisv KiAtLS0tLS0tLS0tCisgKiBGb3JQb3J0aW9uT2ZTdGF0ZSgpCisgKgorICogQ29weXMgYSBG b3JQb3J0aW9uT2ZTdGF0ZSBpbnRvIHRoZSBjdXJyZW50IG1lbW9yeSBjb250ZXh0LgorICov CitzdGF0aWMgRm9yUG9ydGlvbk9mU3RhdGUgKgorQ29weUZvclBvcnRpb25PZlN0YXRlKEZv clBvcnRpb25PZlN0YXRlICpzcmMpCit7CisJRm9yUG9ydGlvbk9mU3RhdGUgKmRzdCA9IE5V TEw7CisJaWYgKHNyYykgeworCQlNZW1vcnlDb250ZXh0IG9sZGN0eDsKKwkJUmFuZ2VUeXBl ICpyOworCQlUeXBlQ2FjaGVFbnRyeSAqdHlwY2FjaGU7CisKKwkJLyoKKwkJICogTmVlZCB0 byBsaWZ0IHRoZSBGT1IgUE9SVElPTiBPRiBkZXRhaWxzIGludG8gYSBoaWdoZXIgbWVtb3J5 IGNvbnRleHQKKwkJICogYmVjYXVzZSBjYXNjYWRpbmcgZm9yZWlnbiBrZXkgdXBkYXRlL2Rl bGV0ZXMgY2FuIGNhdXNlIHRyaWdnZXJzIHRvIGZpcmUKKwkJICogdHJpZ2dlcnMsIGFuZCB0 aGUgQWZ0ZXJUcmlnZ2VyRXZlbnRzIHdpbGwgb3V0bGl2ZSB0aGUgRlBPCisJCSAqIGRldGFp bHMgb2YgdGhlIG9yaWdpbmFsIHF1ZXJ5LgorCQkgKi8KKwkJb2xkY3R4ID0gTWVtb3J5Q29u dGV4dFN3aXRjaFRvKFRvcFRyYW5zYWN0aW9uQ29udGV4dCk7CisJCWRzdCA9IG1ha2VOb2Rl KEZvclBvcnRpb25PZlN0YXRlKTsKKwkJZHN0LT5mcF9yYW5nZU5hbWUgPSBwc3RyZHVwKHNy Yy0+ZnBfcmFuZ2VOYW1lKTsKKwkJZHN0LT5mcF9yYW5nZVR5cGUgPSBzcmMtPmZwX3Jhbmdl VHlwZTsKKwkJZHN0LT5mcF9oYXNQZXJpb2QgPSBzcmMtPmZwX2hhc1BlcmlvZDsKKwkJZHN0 LT5mcF9yYW5nZUF0dG5vID0gc3JjLT5mcF9yYW5nZUF0dG5vOworCQlkc3QtPmZwX3Blcmlv ZFN0YXJ0QXR0bm8gPSBzcmMtPmZwX3BlcmlvZFN0YXJ0QXR0bm87CisJCWRzdC0+ZnBfcGVy aW9kRW5kQXR0bm8gPSBzcmMtPmZwX3BlcmlvZEVuZEF0dG5vOworCisJCXIgPSBEYXR1bUdl dFJhbmdlVHlwZVAoc3JjLT5mcF90YXJnZXRSYW5nZSk7CisJCXR5cGNhY2hlID0gbG9va3Vw X3R5cGVfY2FjaGUoUmFuZ2VUeXBlR2V0T2lkKHIpLCBUWVBFQ0FDSEVfUkFOR0VfSU5GTyk7 CisJCWRzdC0+ZnBfdGFyZ2V0UmFuZ2UgPSBkYXR1bUNvcHkoc3JjLT5mcF90YXJnZXRSYW5n ZSwgdHlwY2FjaGUtPnR5cGJ5dmFsLCB0eXBjYWNoZS0+dHlwbGVuKTsKKwkJTWVtb3J5Q29u dGV4dFN3aXRjaFRvKG9sZGN0eCk7CisJfQorCXJldHVybiBkc3Q7Cit9CisKIC8qIC0tLS0t LS0tLS0KICAqIEFmdGVyVHJpZ2dlclNhdmVFdmVudCgpCiAgKgpAQCAtNjQzMSw2ICs2NDc5 LDcgQEAgQWZ0ZXJUcmlnZ2VyU2F2ZUV2ZW50KEVTdGF0ZSAqZXN0YXRlLCBSZXN1bHRSZWxJ bmZvICpyZWxpbmZvLAogCQllbHNlCiAJCQluZXdfc2hhcmVkLmF0c190YWJsZSA9IE5VTEw7 CiAJCW5ld19zaGFyZWQuYXRzX21vZGlmaWVkY29scyA9IGFmdGVyVHJpZ2dlckNvcHlCaXRt YXAobW9kaWZpZWRDb2xzKTsKKwkJbmV3X3NoYXJlZC5mb3JfcG9ydGlvbl9vZiA9IENvcHlG b3JQb3J0aW9uT2ZTdGF0ZShyZWxpbmZvLT5yaV9mb3JQb3J0aW9uT2YpOwogCiAJCWFmdGVy VHJpZ2dlckFkZEV2ZW50KCZhZnRlclRyaWdnZXJzLnF1ZXJ5X3N0YWNrW2FmdGVyVHJpZ2dl cnMucXVlcnlfZGVwdGhdLmV2ZW50cywKIAkJCQkJCQkgJm5ld19ldmVudCwgJm5ld19zaGFy ZWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggN2ViMWY3ZDAyMDkuLjhkYzc5 OGViZGY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKQEAgLTEyNDgsNiArMTI0OCw3 IEBAIEluaXRSZXN1bHRSZWxJbmZvKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJ cmVzdWx0UmVsSW5mby0+cmlfcHJvamVjdFJldHVybmluZyA9IE5VTEw7CiAJcmVzdWx0UmVs SW5mby0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzID0gTklMOwogCXJlc3VsdFJlbElu Zm8tPnJpX29uQ29uZmxpY3QgPSBOVUxMOworCXJlc3VsdFJlbEluZm8tPnJpX2ZvclBvcnRp b25PZiA9IE5VTEw7CiAJcmVzdWx0UmVsSW5mby0+cmlfUmV0dXJuaW5nU2xvdCA9IE5VTEw7 CiAJcmVzdWx0UmVsSW5mby0+cmlfVHJpZ09sZFNsb3QgPSBOVUxMOwogCXJlc3VsdFJlbElu Zm8tPnJpX1RyaWdOZXdTbG90ID0gTlVMTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1v ZGlmeVRhYmxlLmMKaW5kZXggNGFiZmU4MmY3ZmIuLjUwYjczYWNlN2UzIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYwpAQCAtNTQsOCArNTQsMTAgQEAKICNp bmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5jbHVkZSAicmV3cml0ZS9yZXdy aXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgorI2luY2x1ZGUgInV0 aWxzL2FycmF5LmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1 dGlscy9kYXR1bS5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUg InV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKIApAQCAtMTMzLDYg KzEzNSwxMCBAQCBzdGF0aWMgYm9vbCBFeGVjT25Db25mbGljdFVwZGF0ZShNb2RpZnlUYWJs ZUNvbnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCSBUdXBsZVRhYmxlU2xvdCAqZXhjbHVkZWRT bG90LAogCQkJCQkJCQkgYm9vbCBjYW5TZXRUYWcsCiAJCQkJCQkJCSBUdXBsZVRhYmxlU2xv dCAqKnJldHVybmluZyk7CitzdGF0aWMgdm9pZCBFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJz KE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKKwkJCQkJCQkJCSAgRVN0YXRlICplc3Rh dGUsCisJCQkJCQkJCQkgIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCisJCQkJCQkJ CQkgIEl0ZW1Qb2ludGVyIHR1cGxlaWQpOwogc3RhdGljIFR1cGxlVGFibGVTbG90ICpFeGVj UHJlcGFyZVR1cGxlUm91dGluZyhNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlLAogCQkJCQkJ CQkJCQkgICBFU3RhdGUgKmVzdGF0ZSwKIAkJCQkJCQkJCQkJICAgUGFydGl0aW9uVHVwbGVS b3V0aW5nICpwcm91dGUsCkBAIC0xNTUsNiArMTYxLDcgQEAgc3RhdGljIFR1cGxlVGFibGVT bG90ICpFeGVjTWVyZ2VNYXRjaGVkKE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIHN0 YXRpYyBUdXBsZVRhYmxlU2xvdCAqRXhlY01lcmdlTm90TWF0Y2hlZChNb2RpZnlUYWJsZUNv bnRleHQgKmNvbnRleHQsCiAJCQkJCQkJCQkJICAgUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVs SW5mbywKIAkJCQkJCQkJCQkgICBib29sIGNhblNldFRhZyk7CitzdGF0aWMgdm9pZCBFeGVj U2V0dXBUcmFuc2l0aW9uQ2FwdHVyZVN0YXRlKE1vZGlmeVRhYmxlU3RhdGUgKm10c3RhdGUs IEVTdGF0ZSAqZXN0YXRlKTsKIAogCiAvKgpAQCAtMTIwMCw2ICsxMjA3LDE2OSBAQCBFeGVj SW5zZXJ0KE1vZGlmeVRhYmxlQ29udGV4dCAqY29udGV4dCwKIAlyZXR1cm4gcmVzdWx0Owog fQogCisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJRXhlY0ZvclBvcnRpb25PZkxlZnRvdmVycworICoK KyAqCQlJbnNlcnQgdHVwbGVzIGZvciB0aGUgdW50b3VjaGVkIHBvcnRpb24gb2YgYSByb3cg aW4gYSBGT1IKKyAqCQlQT1JUSU9OIE9GIFVQREFURS9ERUxFVEUKKyAqIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqLworc3RhdGljIHZvaWQKK0V4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoTW9kaWZ5VGFi bGVDb250ZXh0ICpjb250ZXh0LAorCQkJCQkJICBFU3RhdGUgKmVzdGF0ZSwKKwkJCQkJCSAg UmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKKwkJCQkJCSAgSXRlbVBvaW50ZXIgdHVw bGVpZCkKK3sKKwlNb2RpZnlUYWJsZVN0YXRlICptdHN0YXRlID0gY29udGV4dC0+bXRzdGF0 ZTsKKwlNb2RpZnlUYWJsZSAqbm9kZSA9IChNb2RpZnlUYWJsZSAqKSBtdHN0YXRlLT5wcy5w bGFuOworCUZvclBvcnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiA9IChGb3JQb3J0aW9uT2ZF eHByICopIG5vZGUtPmZvclBvcnRpb25PZjsKKwlBdHRyTnVtYmVyCXJhbmdlQXR0bm87CisJ RGF0dW0Jb2xkUmFuZ2U7CisJYm9vbCBpc051bGwgPSBmYWxzZTsKKwlUeXBlQ2FjaGVFbnRy eSAqdHlwY2FjaGU7CisJRm9yUG9ydGlvbk9mU3RhdGUgKmZwb1N0YXRlID0gcmVzdWx0UmVs SW5mby0+cmlfZm9yUG9ydGlvbk9mOworCVR1cGxlVGFibGVTbG90ICpvbGR0dXBsZVNsb3Qg PSBmcG9TdGF0ZS0+ZnBfRXhpc3Rpbmc7CisJVHVwbGVUYWJsZVNsb3QgKmxlZnRvdmVyU2xv dCA9IGZwb1N0YXRlLT5mcF9MZWZ0b3ZlcjsKKwlUdXBsZUNvbnZlcnNpb25NYXAgKm1hcCA9 IE5VTEw7CisJSGVhcFR1cGxlIG9sZHR1cGxlID0gTlVMTDsKKwlDbWRUeXBlCW9sZE9wZXJh dGlvbjsKKwlUcmFuc2l0aW9uQ2FwdHVyZVN0YXRlICpvbGRUY3M7CisJRm1nckluZm8gZmxp bmZvOworCVJldHVyblNldEluZm8gcnNpOworCWJvb2wgZGlkSW5pdCA9IGZhbHNlOworCWJv b2wgc2hvdWxkRnJlZSA9IGZhbHNlOworCUxPQ0FMX0ZDSU5GTyhmY2luZm8sIDIpOworCisJ LyoKKwkgKiBHZXQgdGhlIHJhbmdlIG9mIHRoZSBvbGQgcHJlLVVQREFURS9ERUxFVEUgdHVw bGUsCisJICogc28gd2UgY2FuIGludGVyc2VjdCBpdCB3aXRoIHRoZSBGT1IgUE9SVElPTiBP RiB0YXJnZXQKKwkgKiBhbmQgc2VlIGlmIHRoZXJlIGFyZSBhbnkgImxlZnRvdmVycyIgdG8g aW5zZXJ0LgorCSAqCisJICogV2UgaGF2ZSBhbHJlYWR5IGxvY2tlZCB0aGUgdHVwbGUgaW4g RXhlY1VwZGF0ZS9FeGVjRGVsZXRlCisJICogYW5kIGl0IGhhcyBwYXNzZWQgRXZhbFBsYW5R dWFsLgorCSAqIE1ha2Ugc3VyZSB3ZSdyZSBsb29raW5nIGF0IHRoZSBtb3N0IHJlY2VudCB2 ZXJzaW9uLgorCSAqIE90aGVyd2lzZSBjb25jdXJyZW50IHVwZGF0ZXMgb2YgdGhlIHNhbWUg dHVwbGUgaW4gUkVBRCBDT01NSVRURUQKKwkgKiBjb3VsZCBpbnNlcnQgY29uZmxpY3Rpbmcg ImxlZnRvdmVycyIuCisJICovCisJaWYgKCF0YWJsZV90dXBsZV9mZXRjaF9yb3dfdmVyc2lv bihyZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2MsIHR1cGxlaWQsIFNuYXBzaG90QW55 LCBvbGR0dXBsZVNsb3QpKQorCQllbG9nKEVSUk9SLCAiZmFpbGVkIHRvIGZldGNoIHR1cGxl IGZvciBGT1IgUE9SVElPTiBPRiIpOworCisJLyoKKwkgKiBHZXQgdGhlIG9sZCByYW5nZSBv ZiB0aGUgcmVjb3JkIGJlaW5nIHVwZGF0ZWQuCisJICogTXVzdCByZWFkIHdpdGggdGhlIGF0 dG5vIG9mIHRoZSBsZWFmIHBhcnRpdGlvbiBiZWluZyB1cGRhdGVkCisJICovCisKKwlyYW5n ZUF0dG5vID0gZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm87CisJaWYgKHJlc3Vs dFJlbEluZm8tPnJpX1Jvb3RSZXN1bHRSZWxJbmZvKQorCQltYXAgPSBFeGVjR2V0Q2hpbGRU b1Jvb3RNYXAocmVzdWx0UmVsSW5mbyk7CisJaWYgKG1hcCAhPSBOVUxMKQorCQlyYW5nZUF0 dG5vID0gbWFwLT5hdHRyTWFwLT5hdHRudW1zW3JhbmdlQXR0bm8gLSAxXTsKKwlvbGRSYW5n ZSA9IHNsb3RfZ2V0YXR0cihvbGR0dXBsZVNsb3QsIHJhbmdlQXR0bm8sICZpc051bGwpOwor CisJaWYgKGlzTnVsbCkKKwkJZWxvZyhFUlJPUiwgImZvdW5kIGEgTlVMTCByYW5nZSBpbiBh IHRlbXBvcmFsIHRhYmxlIik7CisKKwkvKgorCSAqIEdldCB0aGUgcmFuZ2UncyB0eXBlIGNh Y2hlIGVudHJ5LiBUaGlzIGlzIHdvcnRoIGNhY2hpbmcgZm9yIHRoZSB3aG9sZSBVUERBVEUK KwkgKiBhcyByYW5nZSBmdW5jdGlvbnMgZG8uCisJICovCisKKwl0eXBjYWNoZSA9IGZwb1N0 YXRlLT5mcF9sZWZ0b3ZlcnN0eXBjYWNoZTsKKwlpZiAodHlwY2FjaGUgPT0gTlVMTCkKKwl7 CisJCXR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2FjaGUoZm9yUG9ydGlvbk9mLT5yYW5nZVR5 cGUsIDApOworCQlmcG9TdGF0ZS0+ZnBfbGVmdG92ZXJzdHlwY2FjaGUgPSB0eXBjYWNoZTsK Kwl9CisKKwkvKgorCSAqIEdldCB0aGUgcmFuZ2VzIHRvIHRoZSBsZWZ0L3JpZ2h0IG9mIHRo ZSB0YXJnZXRlZCByYW5nZS4KKwkgKiBXZSBjYWxsIGEgU0VUT0Ygc3VwcG9ydCBmdW5jdGlv biBhbmQgaW5zZXJ0IGFzIG1hbnkgbGVmdG92ZXJzCisJICogYXMgaXQgZ2l2ZXMgdXMuIEFs dGhvdWdoIHJhbmdldHlwZXMgaGF2ZSAwLzEvMiBsZWZ0b3ZlcnMsCisJICogbXVsdGlyYW5n ZXMgaGF2ZSAwLzEsIGFuZCBvdGhlciB0eXBlcyBtYXkgaGF2ZSBtb3JlLgorCSAqLworCisJ Zm1ncl9pbmZvKGZvclBvcnRpb25PZi0+d2l0aG91dFBvcnRpb25Qcm9jLCAmZmxpbmZvKTsK Kwlyc2kudHlwZSA9IFRfUmV0dXJuU2V0SW5mbzsKKwlyc2kuZWNvbnRleHQgPSBtdHN0YXRl LT5wcy5wc19FeHByQ29udGV4dDsKKwlyc2kuZXhwZWN0ZWREZXNjID0gTlVMTDsKKwlyc2ku YWxsb3dlZE1vZGVzID0gKGludCkgKFNGUk1fVmFsdWVQZXJDYWxsKTsKKwlyc2kucmV0dXJu TW9kZSA9IFNGUk1fVmFsdWVQZXJDYWxsOworCXJzaS5zZXRSZXN1bHQgPSBOVUxMOworCXJz aS5zZXREZXNjID0gTlVMTDsKKworCUluaXRGdW5jdGlvbkNhbGxJbmZvRGF0YSgqZmNpbmZv LCAmZmxpbmZvLCAyLCBJbnZhbGlkT2lkLCBOVUxMLCAoTm9kZSAqKSAmcnNpKTsKKwlmY2lu Zm8tPmFyZ3NbMF0udmFsdWUgPSBvbGRSYW5nZTsKKwlmY2luZm8tPmFyZ3NbMF0uaXNudWxs ID0gZmFsc2U7CisJZmNpbmZvLT5hcmdzWzFdLnZhbHVlID0gZnBvU3RhdGUtPmZwX3Rhcmdl dFJhbmdlOworCWZjaW5mby0+YXJnc1sxXS5pc251bGwgPSBmYWxzZTsKKworCXdoaWxlICh0 cnVlKQorCXsKKwkJRGF0dW0gbGVmdG92ZXIgPSBGdW5jdGlvbkNhbGxJbnZva2UoZmNpbmZv KTsKKworCQkvKiBBcmUgd2UgZG9uZT8gKi8KKwkJaWYgKHJzaS5pc0RvbmUgPT0gRXhwckVu ZFJlc3VsdCkKKwkJCWJyZWFrOworCisJCWlmIChmY2luZm8tPmlzbnVsbCkKKwkJCWVsb2co RVJST1IsICJHb3QgYSBudWxsIGZyb20gd2l0aG91dF9wb3J0aW9uIGZ1bmN0aW9uIik7CisK KwkJaWYgKCFkaWRJbml0KQorCQl7CisJCQkvKgorCQkJICogTWFrZSBhIGNvcHkgb2YgdGhl IHByZS1VUERBVEUgcm93LgorCQkJICogVGhlbiB3ZSdsbCBvdmVyd3JpdGUgdGhlIHJhbmdl IGNvbHVtbiBiZWxvdy4KKwkJCSAqIENvbnZlcnQgb2xkdHVwbGUgdG8gdGhlIGJhc2UgdGFi bGUncyBmb3JtYXQgaWYgbmVjZXNzYXJ5LgorCQkJICogV2UgbmVlZCB0byBpbnNlcnQgbGVm dG92ZXJzIHRocm91Z2ggdGhlIHJvb3QgcGFydGl0aW9uCisJCQkgKiBzbyB0aGV5IGdldCBy b3V0ZWQgY29ycmVjdGx5LgorCQkJICovCisJCQlpZiAobWFwICE9IE5VTEwpCisJCQkJbGVm dG92ZXJTbG90ID0gZXhlY3V0ZV9hdHRyX21hcF9zbG90KG1hcC0+YXR0ck1hcCwKKwkJCQkJ CQkJCQkJCQkgb2xkdHVwbGVTbG90LAorCQkJCQkJCQkJCQkJCSBsZWZ0b3ZlclNsb3QpOwor CQkJZWxzZQorCQkJeworCQkJCW9sZHR1cGxlID0gRXhlY0ZldGNoU2xvdEhlYXBUdXBsZShv bGR0dXBsZVNsb3QsIGZhbHNlLCAmc2hvdWxkRnJlZSk7CisJCQkJRXhlY0ZvcmNlU3RvcmVI ZWFwVHVwbGUob2xkdHVwbGUsIGxlZnRvdmVyU2xvdCwgZmFsc2UpOworCQkJfQorCisJCQkv KiBTYXZlIHNvbWUgbXRzdGF0ZSB0aGluZ3Mgc28gd2UgY2FuIHJlc3RvcmUgdGhlbSBiZWxv dy4gKi8KKwkJCS8vIFRPRE86IERvIHdlIG5lZWQgYSBtb3JlIHN5c3RlbWF0aWMgd2F5IG9m IGRvaW5nIHRoaXMsCisJCQkvLyBlLmcuIGEgbmV3IG10c3RhdGUgb3IgZXZlbiBhIHNlcGFy YXRlIEZvclBvcnRpb25PZkxlZnRvdmVycyBub2RlPworCQkJb2xkT3BlcmF0aW9uID0gbXRz dGF0ZS0+b3BlcmF0aW9uOworCQkJbXRzdGF0ZS0+b3BlcmF0aW9uID0gQ01EX0lOU0VSVDsK KwkJCW9sZFRjcyA9IG10c3RhdGUtPm10X3RyYW5zaXRpb25fY2FwdHVyZTsKKworCQkJZGlk SW5pdCA9IHRydWU7CisJCX0KKworCQkvKiBzdG9yZSB0aGUgbmV3IHJhbmdlICovCisJCWxl ZnRvdmVyU2xvdC0+dHRzX3ZhbHVlc1tmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRu byAtIDFdID0gbGVmdG92ZXI7CisJCWxlZnRvdmVyU2xvdC0+dHRzX2lzbnVsbFtmb3JQb3J0 aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gZmFsc2U7CisJCUV4ZWNNYXRlcmlh bGl6ZVNsb3QobGVmdG92ZXJTbG90KTsKKworCQkvKgorCQkgKiBJZiB0aGVyZSBhcmUgcGFy dGl0aW9ucywgd2UgbXVzdCBpbnNlcnQgaW50byB0aGUgcm9vdCB0YWJsZSwKKwkJICogc28g d2UgZ2V0IHR1cGxlIHJvdXRpbmcuIFdlIGFscmVhZHkgc2V0IHVwIGxlZnRvdmVyU2xvdAor CQkgKiB3aXRoIHRoZSByb290IHR1cGxlIGRlc2NyaXB0b3IuCisJCSAqLworCQlpZiAocmVz dWx0UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm8pCisJCQlyZXN1bHRSZWxJbmZvID0g cmVzdWx0UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm87CisKKwkJRXhlY1NldHVwVHJh bnNpdGlvbkNhcHR1cmVTdGF0ZShtdHN0YXRlLCBlc3RhdGUpOworCQlFeGVjSW5zZXJ0KGNv bnRleHQsIHJlc3VsdFJlbEluZm8sIGxlZnRvdmVyU2xvdCwgbm9kZS0+Y2FuU2V0VGFnLCBO VUxMLCBOVUxMKTsKKwl9CisKKwlpZiAoZGlkSW5pdCkKKwl7CisJCW10c3RhdGUtPm9wZXJh dGlvbiA9IG9sZE9wZXJhdGlvbjsKKwkJbXRzdGF0ZS0+bXRfdHJhbnNpdGlvbl9jYXB0dXJl ID0gb2xkVGNzOworCisJCWlmIChzaG91bGRGcmVlKQorCQkJaGVhcF9mcmVldHVwbGUob2xk dHVwbGUpOworCX0KK30KKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCUV4ZWNCYXRjaEluc2VydAog ICoKQEAgLTEzNTIsNyArMTUyMiw4IEBAIEV4ZWNEZWxldGVBY3QoTW9kaWZ5VGFibGVDb250 ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogICoKICAqIENs b3Npbmcgc3RlcHMgb2YgdHVwbGUgZGVsZXRpb247IHRoaXMgaW52b2tlcyBBRlRFUiBGT1Ig RUFDSCBST1cgdHJpZ2dlcnMsCiAgKiBpbmNsdWRpbmcgdGhlIFVQREFURSB0cmlnZ2VycyBp ZiB0aGUgZGVsZXRpb24gaXMgYmVpbmcgZG9uZSBhcyBwYXJ0IG9mIGEKLSAqIGNyb3NzLXBh cnRpdGlvbiB0dXBsZSBtb3ZlLgorICogY3Jvc3MtcGFydGl0aW9uIHR1cGxlIG1vdmUuIEl0 IGFsc28gaW5zZXJ0cyBsZWZ0b3ZlcnMgZnJvbSBhIEZPUiBQT1JUSU9OIE9GCisgKiBkZWxl dGUuCiAgKi8KIHN0YXRpYyB2b2lkCiBFeGVjRGVsZXRlRXBpbG9ndWUoTW9kaWZ5VGFibGVD b250ZXh0ICpjb250ZXh0LCBSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLApAQCAtMTM4 NSw2ICsxNTU2LDExIEBAIEV4ZWNEZWxldGVFcGlsb2d1ZShNb2RpZnlUYWJsZUNvbnRleHQg KmNvbnRleHQsIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCWFyX2RlbGV0ZV90 cmlnX3RjcyA9IE5VTEw7CiAJfQogCisJLyogQ29tcHV0ZSBsZWZ0b3ZlcnMgaW4gRk9SIFBP UlRJT04gT0YgKi8KKwkvLyBUT0RPOiBTa2lwIHRoaXMgZm9yIEZEVyBkZWxldGVzPworCWlm ICgoKE1vZGlmeVRhYmxlICopIGNvbnRleHQtPm10c3RhdGUtPnBzLnBsYW4pLT5mb3JQb3J0 aW9uT2YpCisJCUV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMoY29udGV4dCwgZXN0YXRlLCBy ZXN1bHRSZWxJbmZvLCB0dXBsZWlkKTsKKwogCS8qIEFGVEVSIFJPVyBERUxFVEUgVHJpZ2dl cnMgKi8KIAlFeGVjQVJEZWxldGVUcmlnZ2Vycyhlc3RhdGUsIHJlc3VsdFJlbEluZm8sIHR1 cGxlaWQsIG9sZHR1cGxlLAogCQkJCQkJIGFyX2RlbGV0ZV90cmlnX3RjcywgY2hhbmdpbmdQ YXJ0KTsKQEAgLTE3NjUsNyArMTk0MSwxMSBAQCBFeGVjQ3Jvc3NQYXJ0aXRpb25VcGRhdGUo TW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCWlmIChyZXN1bHRSZWxJbmZvID09IG10 c3RhdGUtPnJvb3RSZXN1bHRSZWxJbmZvKQogCQlFeGVjUGFydGl0aW9uQ2hlY2tFbWl0RXJy b3IocmVzdWx0UmVsSW5mbywgc2xvdCwgZXN0YXRlKTsKIAotCS8qIEluaXRpYWxpemUgdHVw bGUgcm91dGluZyBpbmZvIGlmIG5vdCBhbHJlYWR5IGRvbmUuICovCisJLyoKKwkgKiBJbml0 aWFsaXplIHR1cGxlIHJvdXRpbmcgaW5mbyBpZiBub3QgYWxyZWFkeSBkb25lLgorCSAqIE5v dGUgd2hhdGV2ZXIgd2UgZG8gaGVyZSBtdXN0IGJlIGRvbmUgaW4gRXhlY0luaXRNb2RpZnlU YWJsZQorCSAqIGZvciBGT1IgUE9SVElPTiBPRiBhcyB3ZWxsLgorCSAqLwogCWlmIChtdHN0 YXRlLT5tdF9wYXJ0aXRpb25fdHVwbGVfcm91dGluZyA9PSBOVUxMKQogCXsKIAkJUmVsYXRp b24Jcm9vdFJlbCA9IG10c3RhdGUtPnJvb3RSZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRl c2M7CkBAIC0yMTMxLDYgKzIzMTEsMTEgQEAgRXhlY1VwZGF0ZUVwaWxvZ3VlKE1vZGlmeVRh YmxlQ29udGV4dCAqY29udGV4dCwgVXBkYXRlQ29udGV4dCAqdXBkYXRlQ3h0LAogCQkJCQkJ CQkJCQkgICBOVUxMLCBOSUwsCiAJCQkJCQkJCQkJCSAgICh1cGRhdGVDeHQtPnVwZGF0ZUlu ZGV4ZXMgPT0gVFVfU3VtbWFyaXppbmcpKTsKIAorCS8qIENvbXB1dGUgbGVmdG92ZXJzIGlu IEZPUiBQT1JUSU9OIE9GICovCisJLy8gVE9ETzogU2tpcCB0aGlzIGZvciBGRFcgdXBkYXRl cz8KKwlpZiAoKChNb2RpZnlUYWJsZSAqKSBjb250ZXh0LT5tdHN0YXRlLT5wcy5wbGFuKS0+ Zm9yUG9ydGlvbk9mKQorCQlFeGVjRm9yUG9ydGlvbk9mTGVmdG92ZXJzKGNvbnRleHQsIGNv bnRleHQtPmVzdGF0ZSwgcmVzdWx0UmVsSW5mbywgdHVwbGVpZCk7CisKIAkvKiBBRlRFUiBS T1cgVVBEQVRFIFRyaWdnZXJzICovCiAJRXhlY0FSVXBkYXRlVHJpZ2dlcnMoY29udGV4dC0+ ZXN0YXRlLCByZXN1bHRSZWxJbmZvLAogCQkJCQkJIE5VTEwsIE5VTEwsCkBAIC00NDcwLDYg KzQ2NTUsMTE3IEBAIEV4ZWNJbml0TW9kaWZ5VGFibGUoTW9kaWZ5VGFibGUgKm5vZGUsIEVT dGF0ZSAqZXN0YXRlLCBpbnQgZWZsYWdzKQogCQl9CiAJfQogCisJLyoKKwkgKiBJZiBuZWVk ZWQsIGluaXRpYWxpemUgdGhlIHRhcmdldCByYW5nZSBmb3IgRk9SIFBPUlRJT04gT0YuCisJ ICovCisJaWYgKG5vZGUtPmZvclBvcnRpb25PZikKKwl7CisJCVR1cGxlRGVzYyB0dXBEZXNj OworCQlGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2Y7CisJCURhdHVtCXRhcmdldFJh bmdlOworCQlib29sCWlzTnVsbDsKKwkJRXhwckNvbnRleHQgKmVjb250ZXh0OworCQlFeHBy U3RhdGUgKmV4cHJTdGF0ZTsKKwkJRm9yUG9ydGlvbk9mU3RhdGUgKmZwb1N0YXRlOworCisJ CXJlc3VsdFJlbEluZm8gPSBtdHN0YXRlLT5yZXN1bHRSZWxJbmZvOworCQlpZiAocmVzdWx0 UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm8pCisJCQlyZXN1bHRSZWxJbmZvID0gcmVz dWx0UmVsSW5mby0+cmlfUm9vdFJlc3VsdFJlbEluZm87CisKKwkJdHVwRGVzYyA9IHJlc3Vs dFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYy0+cmRfYXR0OworCQlmb3JQb3J0aW9uT2YgPSAo Rm9yUG9ydGlvbk9mRXhwciAqKSBub2RlLT5mb3JQb3J0aW9uT2Y7CisKKwkJLyogRXZhbCB0 aGUgRk9SIFBPUlRJT04gT0YgdGFyZ2V0ICovCisJCWlmIChtdHN0YXRlLT5wcy5wc19FeHBy Q29udGV4dCA9PSBOVUxMKQorCQkJRXhlY0Fzc2lnbkV4cHJDb250ZXh0KGVzdGF0ZSwgJm10 c3RhdGUtPnBzKTsKKwkJZWNvbnRleHQgPSBtdHN0YXRlLT5wcy5wc19FeHByQ29udGV4dDsK KworCQlleHByU3RhdGUgPSBFeGVjUHJlcGFyZUV4cHIoKEV4cHIgKikgZm9yUG9ydGlvbk9m LT50YXJnZXRSYW5nZSwgZXN0YXRlKTsKKwkJdGFyZ2V0UmFuZ2UgPSBFeGVjRXZhbEV4cHIo ZXhwclN0YXRlLCBlY29udGV4dCwgJmlzTnVsbCk7CisJCWlmIChpc051bGwpCisJCQllbG9n KEVSUk9SLCAiR290IGEgTlVMTCBGT1IgUE9SVElPTiBPRiB0YXJnZXQgcmFuZ2UiKTsKKwor CQkvKiBDcmVhdGUgc3RhdGUgZm9yIEZPUiBQT1JUSU9OIE9GIG9wZXJhdGlvbiAqLworCisJ CWZwb1N0YXRlID0gbWFrZU5vZGUoRm9yUG9ydGlvbk9mU3RhdGUpOworCQlmcG9TdGF0ZS0+ ZnBfcmFuZ2VOYW1lID0gZm9yUG9ydGlvbk9mLT5yYW5nZV9uYW1lOworCQlmcG9TdGF0ZS0+ ZnBfcmFuZ2VUeXBlID0gZm9yUG9ydGlvbk9mLT5yYW5nZVR5cGU7CisJCWZwb1N0YXRlLT5m cF9yYW5nZUF0dG5vID0gZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm87CisJCWZw b1N0YXRlLT5mcF90YXJnZXRSYW5nZSA9IHRhcmdldFJhbmdlOworCisJCS8qIEluaXRpYWxp emUgc2xvdCBmb3IgdGhlIGV4aXN0aW5nIHR1cGxlICovCisKKwkJZnBvU3RhdGUtPmZwX0V4 aXN0aW5nID0KKwkJCXRhYmxlX3Nsb3RfY3JlYXRlKHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0 aW9uRGVzYywKKwkJCQkJCQkgICZtdHN0YXRlLT5wcy5zdGF0ZS0+ZXNfdHVwbGVUYWJsZSk7 CisKKwkJLyogQ3JlYXRlIHRoZSB0dXBsZSBzbG90IGZvciBJTlNFUlRpbmcgdGhlIGxlZnRv dmVycyAqLworCisJCWZwb1N0YXRlLT5mcF9MZWZ0b3ZlciA9CisJCQlFeGVjSW5pdEV4dHJh VHVwbGVTbG90KG10c3RhdGUtPnBzLnN0YXRlLCB0dXBEZXNjLCAmVFRTT3BzVmlydHVhbCk7 CisKKwkJLyoKKwkJICogV2UgbXVzdCBhdHRhY2ggdGhlIEZvclBvcnRpb25PZlN0YXRlIHRv IGFsbCByZXN1bHQgcmVscywKKwkJICogaW4gY2FzZSBvZiBhIGNyb3NzLXBhcnRpdGlvbiB1 cGRhdGUgb3IgdHJpZ2dlcnMgZmlyaW5nCisJCSAqIG9uIHBhcnRpdGlvbnMuCisJCSAqLwor CQlmb3IgKGkgPSAwOyBpIDwgbnJlbHM7IGkrKykKKwkJeworCQkJRm9yUG9ydGlvbk9mU3Rh dGUJKmxlYWZTdGF0ZTsKKwkJCXJlc3VsdFJlbEluZm8gPSAmbXRzdGF0ZS0+cmVzdWx0UmVs SW5mb1tpXTsKKworCQkJbGVhZlN0YXRlID0gbWFrZU5vZGUoRm9yUG9ydGlvbk9mU3RhdGUp OworCQkJbGVhZlN0YXRlLT5mcF9yYW5nZU5hbWUgPSBmcG9TdGF0ZS0+ZnBfcmFuZ2VOYW1l OworCQkJbGVhZlN0YXRlLT5mcF9yYW5nZVR5cGUgPSBmcG9TdGF0ZS0+ZnBfcmFuZ2VUeXBl OworCQkJbGVhZlN0YXRlLT5mcF9yYW5nZUF0dG5vID0gZnBvU3RhdGUtPmZwX3JhbmdlQXR0 bm87CisJCQlsZWFmU3RhdGUtPmZwX3RhcmdldFJhbmdlID0gZnBvU3RhdGUtPmZwX3Rhcmdl dFJhbmdlOworCQkJbGVhZlN0YXRlLT5mcF9MZWZ0b3ZlciA9IGZwb1N0YXRlLT5mcF9MZWZ0 b3ZlcjsKKwkJCS8qIEVhY2ggcGFydGl0aW9uIG5lZWRzIGEgc2xvdCBtYXRjaGluZyBpdHMg dHVwbGUgZGVzY3JpcHRvciAqLworCQkJbGVhZlN0YXRlLT5mcF9FeGlzdGluZyA9CisJCQkJ dGFibGVfc2xvdF9jcmVhdGUocmVzdWx0UmVsSW5mby0+cmlfUmVsYXRpb25EZXNjLAorCQkJ CQkJCQkgICZtdHN0YXRlLT5wcy5zdGF0ZS0+ZXNfdHVwbGVUYWJsZSk7CisKKwkJCXJlc3Vs dFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZiA9IGxlYWZTdGF0ZTsKKwkJfQorCisJCS8qIE1h a2Ugc3VyZSB0aGUgcm9vdCByZWxhdGlvbiBoYXMgdGhlIEZPUiBQT1JUSU9OIE9GIGNsYXVz ZSB0b28uICovCisJCWlmIChub2RlLT5yb290UmVsYXRpb24gPiAwKQorCQkJbXRzdGF0ZS0+ cm9vdFJlc3VsdFJlbEluZm8tPnJpX2ZvclBvcnRpb25PZiA9IGZwb1N0YXRlOworCisJCWlm IChyZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFICYm CisJCQkJbXRzdGF0ZS0+bXRfcGFydGl0aW9uX3R1cGxlX3JvdXRpbmcgPT0gTlVMTCkKKwkJ eworCQkJLyoKKwkJCSAqIFdlIHdpbGwgbmVlZCB0dXBsZSByb3V0aW5nIHRvIGluc2VydCBs ZWZ0b3ZlcnMuCisJCQkgKiBTaW5jZSB3ZSBhcmUgaW5pdGlhbGl6aW5nIHRoaW5ncyBiZWZv cmUgRXhlY0Nyb3NzUGFydGl0aW9uVXBkYXRlIHJ1bnMsCisJCQkgKiB3ZSBtdXN0IGRvIGV2 ZXJ5dGhpbmcgaXQgbmVlZHMgYXMgd2VsbC4KKwkJCSAqLworCQkJaWYgKG10c3RhdGUtPm10 X3BhcnRpdGlvbl90dXBsZV9yb3V0aW5nID09IE5VTEwpCisJCQl7CisJCQkJUmVsYXRpb24J cm9vdFJlbCA9IG10c3RhdGUtPnJvb3RSZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2M7 CisJCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJCQkvKiBUaGluZ3MgYnVpbHQgaGVy ZSBoYXZlIHRvIGxhc3QgZm9yIHRoZSBxdWVyeSBkdXJhdGlvbi4gKi8KKwkJCQlvbGRjeHQg PSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0YXRlLT5lc19xdWVyeV9jeHQpOworCisJCQkJ bXRzdGF0ZS0+bXRfcGFydGl0aW9uX3R1cGxlX3JvdXRpbmcgPQorCQkJCQlFeGVjU2V0dXBQ YXJ0aXRpb25UdXBsZVJvdXRpbmcoZXN0YXRlLCByb290UmVsKTsKKworCQkJCS8qCisJCQkJ ICogQmVmb3JlIGEgcGFydGl0aW9uJ3MgdHVwbGUgY2FuIGJlIHJlLXJvdXRlZCwgaXQgbXVz dCBmaXJzdCBiZQorCQkJCSAqIGNvbnZlcnRlZCB0byB0aGUgcm9vdCdzIGZvcm1hdCwgc28g d2UnbGwgbmVlZCBhIHNsb3QgZm9yIHN0b3JpbmcKKwkJCQkgKiBzdWNoIHR1cGxlcy4KKwkJ CQkgKi8KKwkJCQlBc3NlcnQobXRzdGF0ZS0+bXRfcm9vdF90dXBsZV9zbG90ID09IE5VTEwp OworCQkJCW10c3RhdGUtPm10X3Jvb3RfdHVwbGVfc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRl KHJvb3RSZWwsIE5VTEwpOworCisJCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7 CisJCQl9CisJCX0KKworCQkvKiBEb24ndCBmcmVlIHRoZSBFeHByQ29udGV4dCBoZXJlIGJl Y2F1c2UgdGhlIHJlc3VsdCBtdXN0IGxhc3QgZm9yIHRoZSB3aG9sZSBxdWVyeSAqLworCX0K KwogCS8qCiAJICogSWYgd2UgaGF2ZSBhbnkgc2Vjb25kYXJ5IHJlbGF0aW9ucyBpbiBhbiBV UERBVEUgb3IgREVMRVRFLCB0aGV5IG5lZWQgdG8KIAkgKiBiZSB0cmVhdGVkIGxpa2Ugbm9u LWxvY2tlZCByZWxhdGlvbnMgaW4gU0VMRUNUIEZPUiBVUERBVEUsIGkuZS4sIHRoZQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYwppbmRleCA1YjcwMjgwOWFlYy4uM2ZhZTcyOTUwMTMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5k L25vZGVzL25vZGVGdW5jcy5jCkBAIC0yNDU2LDYgKzI0NTYsMTQgQEAgZXhwcmVzc2lvbl90 cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQog CQkJYnJlYWs7CisJCWNhc2UgVF9Gb3JQb3J0aW9uT2ZFeHByOgorCQkJeworCQkJCUZvclBv cnRpb25PZkV4cHIgKmZvclBvcnRpb25PZiA9IChGb3JQb3J0aW9uT2ZFeHByICopIG5vZGU7 CisKKwkJCQlpZiAoV0FMSyhmb3JQb3J0aW9uT2YtPnRhcmdldFJhbmdlKSkKKwkJCQkJcmV0 dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX1BhcnRpdGlvblBydW5lU3Rl cE9wOgogCQkJewogCQkJCVBhcnRpdGlvblBydW5lU3RlcE9wICpvcHN0ZXAgPSAoUGFydGl0 aW9uUHJ1bmVTdGVwT3AgKikgbm9kZTsKQEAgLTI1OTYsNiArMjYwNCw4IEBAIHF1ZXJ5X3Ry ZWVfd2Fsa2VyX2ltcGwoUXVlcnkgKnF1ZXJ5LAogCQlyZXR1cm4gdHJ1ZTsKIAlpZiAoV0FM SyhxdWVyeS0+bWVyZ2VBY3Rpb25MaXN0KSkKIAkJcmV0dXJuIHRydWU7CisJaWYgKFdBTEso cXVlcnktPmZvclBvcnRpb25PZikpCisJCXJldHVybiB0cnVlOwogCWlmIChXQUxLKHF1ZXJ5 LT5yZXR1cm5pbmdMaXN0KSkKIAkJcmV0dXJuIHRydWU7CiAJaWYgKFdBTEsocXVlcnktPmpv aW50cmVlKSkKQEAgLTM0NDMsNiArMzQ1MywxOSBAQCBleHByZXNzaW9uX3RyZWVfbXV0YXRv cl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CiAJCQl9 CiAJCQlicmVhazsKKwkJY2FzZSBUX0ZvclBvcnRpb25PZkV4cHI6CisJCQl7CisJCQkJRm9y UG9ydGlvbk9mRXhwciAqZnBvID0gKEZvclBvcnRpb25PZkV4cHIgKikgbm9kZTsKKwkJCQlG b3JQb3J0aW9uT2ZFeHByICpuZXdub2RlOworCisJCQkJRkxBVENPUFkobmV3bm9kZSwgZnBv LCBGb3JQb3J0aW9uT2ZFeHByKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+cmFuZ2VWYXIsIGZw by0+cmFuZ2VWYXIsIFZhciAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+dGFyZ2V0UmFuZ2Us IGZwby0+dGFyZ2V0UmFuZ2UsIE5vZGUgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnJhbmdl VGFyZ2V0TGlzdCwgZnBvLT5yYW5nZVRhcmdldExpc3QsIExpc3QgKik7CisKKwkJCQlyZXR1 cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUGFydGl0 aW9uUHJ1bmVTdGVwT3A6CiAJCQl7CiAJCQkJUGFydGl0aW9uUHJ1bmVTdGVwT3AgKm9wc3Rl cCA9IChQYXJ0aXRpb25QcnVuZVN0ZXBPcCAqKSBub2RlOwpAQCAtMzYyMSw2ICszNjQ0LDcg QEAgcXVlcnlfdHJlZV9tdXRhdG9yX2ltcGwoUXVlcnkgKnF1ZXJ5LAogCU1VVEFURShxdWVy eS0+d2l0aENoZWNrT3B0aW9ucywgcXVlcnktPndpdGhDaGVja09wdGlvbnMsIExpc3QgKik7 CiAJTVVUQVRFKHF1ZXJ5LT5vbkNvbmZsaWN0LCBxdWVyeS0+b25Db25mbGljdCwgT25Db25m bGljdEV4cHIgKik7CiAJTVVUQVRFKHF1ZXJ5LT5tZXJnZUFjdGlvbkxpc3QsIHF1ZXJ5LT5t ZXJnZUFjdGlvbkxpc3QsIExpc3QgKik7CisJTVVUQVRFKHF1ZXJ5LT5mb3JQb3J0aW9uT2Ys IHF1ZXJ5LT5mb3JQb3J0aW9uT2YsIEZvclBvcnRpb25PZkV4cHIgKik7CiAJTVVUQVRFKHF1 ZXJ5LT5yZXR1cm5pbmdMaXN0LCBxdWVyeS0+cmV0dXJuaW5nTGlzdCwgTGlzdCAqKTsKIAlN VVRBVEUocXVlcnktPmpvaW50cmVlLCBxdWVyeS0+am9pbnRyZWUsIEZyb21FeHByICopOwog CU1VVEFURShxdWVyeS0+c2V0T3BlcmF0aW9ucywgcXVlcnktPnNldE9wZXJhdGlvbnMsIE5v ZGUgKik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVw bGFuLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKaW5kZXgg NWY0NzlmYzU2YzEuLmI0NmJkMGFmMDgyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9jcmVhdGVwbGFuLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vY3JlYXRlcGxhbi5jCkBAIC0zMTIsNyArMzEyLDggQEAgc3RhdGljIE1vZGlmeVRhYmxl ICptYWtlX21vZGlmeXRhYmxlKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpzdWJwbGFuLAog CQkJCQkJCQkJIExpc3QgKnVwZGF0ZUNvbG5vc0xpc3RzLAogCQkJCQkJCQkJIExpc3QgKndp dGhDaGVja09wdGlvbkxpc3RzLCBMaXN0ICpyZXR1cm5pbmdMaXN0cywKIAkJCQkJCQkJCSBM aXN0ICpyb3dNYXJrcywgT25Db25mbGljdEV4cHIgKm9uY29uZmxpY3QsCi0JCQkJCQkJCQkg TGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgaW50IGVwcVBhcmFtKTsKKwkJCQkJCQkJCSBMaXN0 ICptZXJnZUFjdGlvbkxpc3RzLCBGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YsCisJ CQkJCQkJCQkgaW50IGVwcVBhcmFtKTsKIHN0YXRpYyBHYXRoZXJNZXJnZSAqY3JlYXRlX2dh dGhlcl9tZXJnZV9wbGFuKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkgR2F0aGVy TWVyZ2VQYXRoICpiZXN0X3BhdGgpOwogCkBAIC0yODM2LDYgKzI4MzcsNyBAQCBjcmVhdGVf bW9kaWZ5dGFibGVfcGxhbihQbGFubmVySW5mbyAqcm9vdCwgTW9kaWZ5VGFibGVQYXRoICpi ZXN0X3BhdGgpCiAJCQkJCQkJYmVzdF9wYXRoLT5yb3dNYXJrcywKIAkJCQkJCQliZXN0X3Bh dGgtPm9uY29uZmxpY3QsCiAJCQkJCQkJYmVzdF9wYXRoLT5tZXJnZUFjdGlvbkxpc3RzLAor CQkJCQkJCWJlc3RfcGF0aC0+Zm9yUG9ydGlvbk9mLAogCQkJCQkJCWJlc3RfcGF0aC0+ZXBx UGFyYW0pOwogCiAJY29weV9nZW5lcmljX3BhdGhfaW5mbygmcGxhbi0+cGxhbiwgJmJlc3Rf cGF0aC0+cGF0aCk7CkBAIC03MDMxLDcgKzcwMzMsOCBAQCBtYWtlX21vZGlmeXRhYmxlKFBs YW5uZXJJbmZvICpyb290LCBQbGFuICpzdWJwbGFuLAogCQkJCSBMaXN0ICp1cGRhdGVDb2xu b3NMaXN0cywKIAkJCQkgTGlzdCAqd2l0aENoZWNrT3B0aW9uTGlzdHMsIExpc3QgKnJldHVy bmluZ0xpc3RzLAogCQkJCSBMaXN0ICpyb3dNYXJrcywgT25Db25mbGljdEV4cHIgKm9uY29u ZmxpY3QsCi0JCQkJIExpc3QgKm1lcmdlQWN0aW9uTGlzdHMsIGludCBlcHFQYXJhbSkKKwkJ CQkgTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgRm9yUG9ydGlvbk9mRXhwciAqZm9yUG9ydGlv bk9mLAorCQkJCSBpbnQgZXBxUGFyYW0pCiB7CiAJTW9kaWZ5VGFibGUgKm5vZGUgPSBtYWtl Tm9kZShNb2RpZnlUYWJsZSk7CiAJTGlzdAkgICAqZmR3X3ByaXZhdGVfbGlzdDsKQEAgLTcw OTcsNiArNzEwMCw3IEBAIG1ha2VfbW9kaWZ5dGFibGUoUGxhbm5lckluZm8gKnJvb3QsIFBs YW4gKnN1YnBsYW4sCiAJCW5vZGUtPmV4Y2xSZWxUbGlzdCA9IG9uY29uZmxpY3QtPmV4Y2xS ZWxUbGlzdDsKIAl9CiAJbm9kZS0+dXBkYXRlQ29sbm9zTGlzdHMgPSB1cGRhdGVDb2xub3NM aXN0czsKKwlub2RlLT5mb3JQb3J0aW9uT2YgPSAoTm9kZSAqKSBmb3JQb3J0aW9uT2Y7CiAJ bm9kZS0+d2l0aENoZWNrT3B0aW9uTGlzdHMgPSB3aXRoQ2hlY2tPcHRpb25MaXN0czsKIAlu b2RlLT5yZXR1cm5pbmdMaXN0cyA9IHJldHVybmluZ0xpc3RzOwogCW5vZGUtPnJvd01hcmtz ID0gcm93TWFya3M7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9w bGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXgg NTU2NDgyNmNiNGEuLjlmYWJmODAwYTlmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4v cGxhbm5lci5jCkBAIC0xOTU5LDYgKzE5NTksNyBAQCBncm91cGluZ19wbGFubmVyKFBsYW5u ZXJJbmZvICpyb290LCBkb3VibGUgdHVwbGVfZnJhY3Rpb24pCiAJCQkJCQkJCQkJcm93TWFy a3MsCiAJCQkJCQkJCQkJcGFyc2UtPm9uQ29uZmxpY3QsCiAJCQkJCQkJCQkJbWVyZ2VBY3Rp b25MaXN0cywKKwkJCQkJCQkJCQlwYXJzZS0+Zm9yUG9ydGlvbk9mLAogCQkJCQkJCQkJCWFz c2lnbl9zcGVjaWFsX2V4ZWNfcGFyYW0ocm9vdCkpOwogCQl9CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL3BhdGhub2RlLmMgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvdXRpbC9wYXRobm9kZS5jCmluZGV4IDBhN2U1YzI2NzhmLi43NTNlNTJlMzQ2MCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvcGF0aG5vZGUuYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9wYXRobm9kZS5jCkBAIC0zNzI1LDcgKzM3 MjUsOCBAQCBjcmVhdGVfbW9kaWZ5dGFibGVfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVs T3B0SW5mbyAqcmVsLAogCQkJCQkJTGlzdCAqdXBkYXRlQ29sbm9zTGlzdHMsCiAJCQkJCQlM aXN0ICp3aXRoQ2hlY2tPcHRpb25MaXN0cywgTGlzdCAqcmV0dXJuaW5nTGlzdHMsCiAJCQkJ CQlMaXN0ICpyb3dNYXJrcywgT25Db25mbGljdEV4cHIgKm9uY29uZmxpY3QsCi0JCQkJCQlM aXN0ICptZXJnZUFjdGlvbkxpc3RzLCBpbnQgZXBxUGFyYW0pCisJCQkJCQlMaXN0ICptZXJn ZUFjdGlvbkxpc3RzLCBGb3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YsCisJCQkJCQlp bnQgZXBxUGFyYW0pCiB7CiAJTW9kaWZ5VGFibGVQYXRoICpwYXRobm9kZSA9IG1ha2VOb2Rl KE1vZGlmeVRhYmxlUGF0aCk7CiAKQEAgLTM3OTEsNiArMzc5Miw3IEBAIGNyZWF0ZV9tb2Rp Znl0YWJsZV9wYXRoKFBsYW5uZXJJbmZvICpyb290LCBSZWxPcHRJbmZvICpyZWwsCiAJcGF0 aG5vZGUtPnJldHVybmluZ0xpc3RzID0gcmV0dXJuaW5nTGlzdHM7CiAJcGF0aG5vZGUtPnJv d01hcmtzID0gcm93TWFya3M7CiAJcGF0aG5vZGUtPm9uY29uZmxpY3QgPSBvbmNvbmZsaWN0 OworCXBhdGhub2RlLT5mb3JQb3J0aW9uT2YgPSBmb3JQb3J0aW9uT2Y7CiAJcGF0aG5vZGUt PmVwcVBhcmFtID0gZXBxUGFyYW07CiAJcGF0aG5vZGUtPm1lcmdlQWN0aW9uTGlzdHMgPSBt ZXJnZUFjdGlvbkxpc3RzOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCA0MGVhMTllNmYx MC4uYjY3OGE0YTRjNjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMjQsNyArMjQsMTAg QEAKIAogI2luY2x1ZGUgInBvc3RncmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MvZ2lzdC5o IgorI2luY2x1ZGUgImFjY2Vzcy9zdHJhdG51bS5oIgogI2luY2x1ZGUgImFjY2Vzcy9zeXNh dHRyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2RlZnJlbS5oIgpAQCAtNDcsOSArNTAsMTEgQEAKICNpbmNsdWRlICJwYXJzZXIv cGFyc2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdGFyZ2V0LmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vy LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNldHJlZS5oIgogI2luY2x1ZGUgInV0aWxzL2Jh Y2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRl ICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRl ICJ1dGlscy9zeXNjYWNoZS5oIgogCkBAIC01OCwxMCArNjMsMTYgQEAKIHBvc3RfcGFyc2Vf YW5hbHl6ZV9ob29rX3R5cGUgcG9zdF9wYXJzZV9hbmFseXplX2hvb2sgPSBOVUxMOwogCiBz dGF0aWMgUXVlcnkgKnRyYW5zZm9ybU9wdGlvbmFsU2VsZWN0SW50byhQYXJzZVN0YXRlICpw c3RhdGUsIE5vZGUgKnBhcnNlVHJlZSk7CitzdGF0aWMgTm9kZSAqYWRkRm9yUG9ydGlvbk9m V2hlcmVDb25kaXRpb25zKFF1ZXJ5ICpxcnksIEZvclBvcnRpb25PZkNsYXVzZSAqZm9yUG9y dGlvbk9mLAorCQkJCQkJCQkJCQlOb2RlICp3aGVyZUNsYXVzZSk7CiBzdGF0aWMgUXVlcnkg KnRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWxldGVTdG10ICpz dG10KTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtSW5zZXJ0U3RtdChQYXJzZVN0YXRlICpw c3RhdGUsIEluc2VydFN0bXQgKnN0bXQpOwogc3RhdGljIE9uQ29uZmxpY3RFeHByICp0cmFu c2Zvcm1PbkNvbmZsaWN0Q2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJ CSBPbkNvbmZsaWN0Q2xhdXNlICpvbkNvbmZsaWN0Q2xhdXNlKTsKK3N0YXRpYyBGb3JQb3J0 aW9uT2ZFeHByICp0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0 YXRlLAorCQkJCQkJCQkJCQkJCSBpbnQgcnRpbmRleCwKKwkJCQkJCQkJCQkJCQkgRm9yUG9y dGlvbk9mQ2xhdXNlICpmb3JQb3J0aW9uT2ZDbGF1c2UsCisJCQkJCQkJCQkJCQkJIGJvb2wg aXNVcGRhdGUpOwogc3RhdGljIGludAljb3VudF9yb3dleHByX2NvbHVtbnMoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBOb2RlICpleHByKTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtU2VsZWN0 U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpOwogc3RhdGljIFF1 ZXJ5ICp0cmFuc2Zvcm1WYWx1ZXNDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RT dG10ICpzdG10KTsKQEAgLTQ3Niw2ICs0ODcsMjAgQEAgc3RtdF9yZXF1aXJlc19wYXJzZV9h bmFseXNpcyhSYXdTdG10ICpwYXJzZVRyZWUpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3Rh dGljIE5vZGUgKgorYWRkRm9yUG9ydGlvbk9mV2hlcmVDb25kaXRpb25zKFF1ZXJ5ICpxcnks IEZvclBvcnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9mLCBOb2RlICp3aGVyZUNsYXVzZSkK K3sKKwlpZiAoZm9yUG9ydGlvbk9mKQorCXsKKwkJaWYgKHdoZXJlQ2xhdXNlKQorCQkJcmV0 dXJuIChOb2RlICopIG1ha2VCb29sRXhwcihBTkRfRVhQUiwgbGlzdF9tYWtlMihxcnktPmZv clBvcnRpb25PZi0+b3ZlcmxhcHNFeHByLCB3aGVyZUNsYXVzZSksIC0xKTsKKwkJZWxzZQor CQkJcmV0dXJuIHFyeS0+Zm9yUG9ydGlvbk9mLT5vdmVybGFwc0V4cHI7CisJfQorCWVsc2UK KwkJcmV0dXJuIHdoZXJlQ2xhdXNlOworfQorCiAvKgogICogYW5hbHl6ZV9yZXF1aXJlc19z bmFwc2hvdAogICoJCVJldHVybnMgdHJ1ZSBpZiBhIHNuYXBzaG90IG11c3QgYmUgc2V0IGJl Zm9yZSBkb2luZyBwYXJzZSBhbmFseXNpcwpAQCAtNTA5LDYgKzUzNCw3IEBAIHRyYW5zZm9y bURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWxldGVTdG10ICpzdG10KQogewog CVF1ZXJ5CSAgICpxcnkgPSBtYWtlTm9kZShRdWVyeSk7CiAJUGFyc2VOYW1lc3BhY2VJdGVt ICpuc2l0ZW07CisJTm9kZQkgICAqd2hlcmVDbGF1c2U7CiAJTm9kZQkgICAqcXVhbDsKIAog CXFyeS0+Y29tbWFuZFR5cGUgPSBDTURfREVMRVRFOwpAQCAtNTQ3LDcgKzU3MywxMSBAQCB0 cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3Rt dCkKIAluc2l0ZW0tPnBfbGF0ZXJhbF9vbmx5ID0gZmFsc2U7CiAJbnNpdGVtLT5wX2xhdGVy YWxfb2sgPSB0cnVlOwogCi0JcXVhbCA9IHRyYW5zZm9ybVdoZXJlQ2xhdXNlKHBzdGF0ZSwg c3RtdC0+d2hlcmVDbGF1c2UsCisJaWYgKHN0bXQtPmZvclBvcnRpb25PZikKKwkJcXJ5LT5m b3JQb3J0aW9uT2YgPSB0cmFuc2Zvcm1Gb3JQb3J0aW9uT2ZDbGF1c2UocHN0YXRlLCBxcnkt PnJlc3VsdFJlbGF0aW9uLCBzdG10LT5mb3JQb3J0aW9uT2YsIGZhbHNlKTsKKworCXdoZXJl Q2xhdXNlID0gYWRkRm9yUG9ydGlvbk9mV2hlcmVDb25kaXRpb25zKHFyeSwgc3RtdC0+Zm9y UG9ydGlvbk9mLCBzdG10LT53aGVyZUNsYXVzZSk7CisJcXVhbCA9IHRyYW5zZm9ybVdoZXJl Q2xhdXNlKHBzdGF0ZSwgd2hlcmVDbGF1c2UsCiAJCQkJCQkJCUVYUFJfS0lORF9XSEVSRSwg IldIRVJFIik7CiAKIAlxcnktPnJldHVybmluZ0xpc3QgPSB0cmFuc2Zvcm1SZXR1cm5pbmdM aXN0KHBzdGF0ZSwgc3RtdC0+cmV0dXJuaW5nTGlzdCwKQEAgLTExODMsNyArMTIxMyw3IEBA IHRyYW5zZm9ybU9uQ29uZmxpY3RDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkgKiBO b3cgdHJhbnNmb3JtIHRoZSBVUERBVEUgc3ViZXhwcmVzc2lvbnMuCiAJCSAqLwogCQlvbkNv bmZsaWN0U2V0ID0KLQkJCXRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QocHN0YXRlLCBvbkNv bmZsaWN0Q2xhdXNlLT50YXJnZXRMaXN0KTsKKwkJCXRyYW5zZm9ybVVwZGF0ZVRhcmdldExp c3QocHN0YXRlLCBvbkNvbmZsaWN0Q2xhdXNlLT50YXJnZXRMaXN0LCBOVUxMKTsKIAogCQlv bkNvbmZsaWN0V2hlcmUgPSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShwc3RhdGUsCiAJCQkJCQkJ CQkJCSAgIG9uQ29uZmxpY3RDbGF1c2UtPndoZXJlQ2xhdXNlLApAQCAtMTIxMyw2ICsxMjQz LDE4NyBAQCB0cmFuc2Zvcm1PbkNvbmZsaWN0Q2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwK IAlyZXR1cm4gcmVzdWx0OwogfQogCisvKgorICogdHJhbnNmb3JtRm9yUG9ydGlvbk9mQ2xh dXNlCisgKgorICoJICBUcmFuc2Zvcm1zIGEgRm9yUG9ydGlvbk9mQ2xhdXNlIGluIGFuIFVQ REFURS9ERUxFVEUgc3RhdGVtZW50LgorICoKKyAqCSAgLSBMb29rIHVwIHRoZSByYW5nZS9w ZXJpb2QgcmVxdWVzdGVkLgorICoJICAtIEJ1aWxkIGEgY29tcGF0aWJsZSByYW5nZSB2YWx1 ZSBmcm9tIHRoZSBGUk9NIGFuZCBUTyBleHByZXNzaW9ucy4KKyAqCSAgLSBCdWlsZCBhbiAi b3ZlcmxhcHMiIGV4cHJlc3Npb24gZm9yIGZpbHRlcmluZy4KKyAqCSAgLSBGb3IgVVBEQVRF cywgYnVpbGQgYW4gImludGVyc2VjdHMiIGV4cHJlc3Npb24gdGhlIHJld3JpdGVyIGNhbiBh ZGQKKyAqCQl0byB0aGUgdGFyZ2V0TGlzdCB0byBjaGFuZ2UgdGhlIHRlbXBvcmFsIGJvdW5k cy4KKyAqLworc3RhdGljIEZvclBvcnRpb25PZkV4cHIgKgordHJhbnNmb3JtRm9yUG9ydGlv bk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQlpbnQgcnRpbmRleCwKKwkJ CQkJCQlGb3JQb3J0aW9uT2ZDbGF1c2UgKmZvclBvcnRpb25PZiwKKwkJCQkJCQlib29sIGlz VXBkYXRlKQoreworCVJlbGF0aW9uIHRhcmdldHJlbCA9IHBzdGF0ZS0+cF90YXJnZXRfcmVs YXRpb247CisJUlRFUGVybWlzc2lvbkluZm8gKnRhcmdldF9wZXJtaW5mbyA9IHBzdGF0ZS0+ cF90YXJnZXRfbnNpdGVtLT5wX3Blcm1pbmZvOworCWNoYXIgKnJhbmdlX25hbWUgPSBmb3JQ b3J0aW9uT2YtPnJhbmdlX25hbWU7CisJY2hhciAqcmFuZ2VfdHlwZV9uYW1lc3BhY2UgPSBO VUxMOworCWNoYXIgKnJhbmdlX3R5cGVfbmFtZSA9IE5VTEw7CisJaW50IHJhbmdlX2F0dG5v ID0gSW52YWxpZEF0dHJOdW1iZXI7CisJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cjsKKwlPaWQJ b3BjbGFzczsKKwlPaWQgb3BmYW1pbHk7CisJT2lkIG9wY2ludHlwZTsKKwlPaWQgZnVuY2lk ID0gSW52YWxpZE9pZDsKKwlTdHJhdGVneU51bWJlciBzdHJhdDsKKwlPaWQJb3BpZDsKKwlG b3JQb3J0aW9uT2ZFeHByICpyZXN1bHQ7CisJVmFyICpyYW5nZVZhcjsKKwlOb2RlICp0YXJn ZXRFeHByOworCisJLyogV2UgZG9uJ3Qgc3VwcG9ydCBGT1IgUE9SVElPTiBPRiBGRFcgcXVl cmllcy4gKi8KKwlpZiAodGFyZ2V0cmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9G T1JFSUdOX1RBQkxFKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJmb3JlaWduIHRhYmxlcyBk b24ndCBzdXBwb3J0IEZPUiBQT1JUSU9OIE9GIikpKTsKKworCXJlc3VsdCA9IG1ha2VOb2Rl KEZvclBvcnRpb25PZkV4cHIpOworCisJLyogTG9vayB1cCB0aGUgRk9SIFBPUlRJT04gT0Yg bmFtZSByZXF1ZXN0ZWQuICovCisJcmFuZ2VfYXR0bm8gPSBhdHRuYW1lQXR0TnVtKHRhcmdl dHJlbCwgcmFuZ2VfbmFtZSwgZmFsc2UpOworCWlmIChyYW5nZV9hdHRubyA9PSBJbnZhbGlk QXR0ck51bWJlcikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9DT0xVTU4pLAorCQkJCSBlcnJtc2coImNvbHVtbiBvciBwZXJpb2QgXCIlc1wi IG9mIHJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQlyYW5nZV9uYW1l LAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFyZ2V0cmVsKSksCisJCQkJIHBh cnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGZvclBvcnRpb25PZi0+bG9jYXRpb24pKSk7CisJ YXR0ciA9IFR1cGxlRGVzY0F0dHIodGFyZ2V0cmVsLT5yZF9hdHQsIHJhbmdlX2F0dG5vIC0g MSk7CisKKwlyYW5nZVZhciA9IG1ha2VWYXIoCisJCQlydGluZGV4LAorCQkJcmFuZ2VfYXR0 bm8sCisJCQlhdHRyLT5hdHR0eXBpZCwKKwkJCWF0dHItPmF0dHR5cG1vZCwKKwkJCWF0dHIt PmF0dGNvbGxhdGlvbiwKKwkJCTApOworCXJhbmdlVmFyLT5sb2NhdGlvbiA9IGZvclBvcnRp b25PZi0+bG9jYXRpb247CisJcmVzdWx0LT5yYW5nZVZhciA9IHJhbmdlVmFyOworCXJlc3Vs dC0+cmFuZ2VUeXBlID0gYXR0ci0+YXR0dHlwaWQ7CisJaWYgKCFnZXRfdHlwbmFtZV9hbmRf bmFtZXNwYWNlKGF0dHItPmF0dHR5cGlkLCAmcmFuZ2VfdHlwZV9uYW1lLCAmcmFuZ2VfdHlw ZV9uYW1lc3BhY2UpKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig dHlwZSAldSIsIGF0dHItPmF0dHR5cGlkKTsKKworCisJaWYgKGZvclBvcnRpb25PZi0+dGFy Z2V0KQorCQkvKgorCQkgKiBXZSB3ZXJlIGFscmVhZHkgZ2l2ZW4gYW4gZXhwcmVzc2lvbiBm b3IgdGhlIHRhcmdldCwKKwkJICogc28gd2UgZG9uJ3QgaGF2ZSB0byBidWlsZCBhbnl0aGlu Zy4KKwkJICovCisJCXRhcmdldEV4cHIgPSBmb3JQb3J0aW9uT2YtPnRhcmdldDsKKwllbHNl CisJeworCQkvKiBNYWtlIHN1cmUgaXQncyBhIHJhbmdlIGNvbHVtbiAqLworCQlpZiAoIXR5 cGVfaXNfcmFuZ2UoYXR0ci0+YXR0dHlwaWQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0NPTFVNTl9SRUZFUkVOQ0UpLAorCQkJCQkgZXJy bXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSByYW5nZSB0 eXBlIiwKKwkJCQkJCQlyYW5nZV9uYW1lLAorCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25O YW1lKHRhcmdldHJlbCkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZm9y UG9ydGlvbk9mLT5sb2NhdGlvbikpKTsKKworCQkvKgorCQkgKiBCdWlsZCBhIHJhbmdlIGZy b20gdGhlIEZST00gLi4uIFRPIC4uLi4gYm91bmRzLgorCQkgKiBUaGlzIHNob3VsZCBnaXZl IGEgY29uc3RhbnQgcmVzdWx0LCBzbyB3ZSBhY2NlcHQgZnVuY3Rpb25zIGxpa2UgTk9XKCkK KwkJICogYnV0IG5vdCBjb2x1bW4gcmVmZXJlbmNlcywgc3VicXVlcmllcywgZXRjLgorCQkg KgorCQkgKiBJdCBhbHNvIHBlcm1pdHMgVU5CT1VOREVEIGluIGVpdGhlciBwbGFjZS4KKwkJ ICovCisJCXRhcmdldEV4cHIgPSAoTm9kZSAqKSBtYWtlRnVuY0NhbGwoCisJCQkJbGlzdF9t YWtlMihtYWtlU3RyaW5nKHJhbmdlX3R5cGVfbmFtZXNwYWNlKSwgbWFrZVN0cmluZyhyYW5n ZV90eXBlX25hbWUpKSwKKwkJCQlsaXN0X21ha2UyKGZvclBvcnRpb25PZi0+dGFyZ2V0X3N0 YXJ0LCBmb3JQb3J0aW9uT2YtPnRhcmdldF9lbmQpLAorCQkJCUNPRVJDRV9FWFBMSUNJVF9D QUxMLAorCQkJCWZvclBvcnRpb25PZi0+bG9jYXRpb24pOworCX0KKwlyZXN1bHQtPnRhcmdl dFJhbmdlID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHRhcmdldEV4cHIsIEVYUFJfS0lORF9V UERBVEVfUE9SVElPTik7CisKKwkvKgorCSAqIEJ1aWxkIG92ZXJsYXBzRXhwciB0byB1c2Ug aW4gdGhlIHdoZXJlQ2xhdXNlLgorCSAqIFRoaXMgbWVhbnMgd2Ugb25seSBoaXQgcm93cyBt YXRjaGluZyB0aGUgRlJPTSAmIFRPIGJvdW5kcy4KKwkgKiBXZSBtdXN0IGxvb2sgdXAgdGhl IG92ZXJsYXBzIG9wZXJhdG9yICh1c3VhbGx5ICImJiIpLgorCSAqLworCW9wY2xhc3MgPSBH ZXREZWZhdWx0T3BDbGFzcyhhdHRyLT5hdHR0eXBpZCwgR0lTVF9BTV9PSUQpOworCXN0cmF0 ID0gUlRPdmVybGFwU3RyYXRlZ3lOdW1iZXI7CisJR2V0T3BlcmF0b3JGcm9tV2VsbEtub3du U3RyYXRlZ3kob3BjbGFzcywgSW52YWxpZE9pZCwgJm9waWQsICZzdHJhdCk7CisJcmVzdWx0 LT5vdmVybGFwc0V4cHIgPSAoTm9kZSAqKSBtYWtlU2ltcGxlQV9FeHByKEFFWFBSX09QLCBn ZXRfb3BuYW1lKG9waWQpLAorCQkJKE5vZGUgKikgY29weU9iamVjdChyYW5nZVZhciksIHRh cmdldEV4cHIsCisJCQlmb3JQb3J0aW9uT2YtPmxvY2F0aW9uKTsKKworCS8qCisJICogTG9v ayB1cCB0aGUgd2l0aG91dFBvcnRpb25PcGVyIHNvIHdlIGNhbiBjb21wdXRlIHRoZSBsZWZ0 b3ZlcnMuCisJICogTGVmdG92ZXJzIHdpbGwgYmUgb2xkX3JhbmdlIEAtIHRhcmdldF9yYW5n ZQorCSAqIChvbmUgcGVyIGVsZW1lbnQgb2YgdGhlIHJlc3VsdCkuCisJICovCisJZnVuY2lk ID0gSW52YWxpZE9pZDsKKwlpZiAoZ2V0X29wY2xhc3Nfb3BmYW1pbHlfYW5kX2lucHV0X3R5 cGUob3BjbGFzcywgJm9wZmFtaWx5LCAmb3BjaW50eXBlKSkKKwkJZnVuY2lkID0gZ2V0X29w ZmFtaWx5X3Byb2Mob3BmYW1pbHksIG9wY2ludHlwZSwgb3BjaW50eXBlLCBHSVNUX1dJVEhP VVRfUE9SVElPTl9QUk9DKTsKKworCWlmICghT2lkSXNWYWxpZChmdW5jaWQpKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJ CQllcnJtc2coImNvdWxkIG5vdCBpZGVudGlmeSBhIHdpdGhvdXRfb3ZlcmxhcHMgc3VwcG9y dCBmdW5jdGlvbiBmb3IgdHlwZSAlcyIsIGZvcm1hdF90eXBlX2JlKG9wY2ludHlwZSkpLAor CQkJCWVycmhpbnQoIkRlZmluZSBhIHdpdGhvdXRfb3ZlcmxhcHMgc3VwcG9ydCBmdW5jdGlv biBmb3Igb3BlcmF0b3IgY2xhc3MgXCIlZFwiIGZvciBhY2Nlc3MgbWV0aG9kIFwiJXNcIi4i LAorCQkJCQkgb3BjbGFzcywgImdpc3QiKSk7CisKKwlyZXN1bHQtPndpdGhvdXRQb3J0aW9u UHJvYyA9IGZ1bmNpZDsKKworCWlmIChpc1VwZGF0ZSkKKwl7CisJCS8qCisJCSAqIE5vdyBt YWtlIHN1cmUgd2UgdXBkYXRlIHRoZSBzdGFydC9lbmQgdGltZSBvZiB0aGUgcmVjb3JkLgor CQkgKiBGb3IgYSByYW5nZSBjb2wgKHIpIHRoaXMgaXMgYHIgPSByICogdGFyZ2V0UmFuZ2Vg LgorCQkgKi8KKwkJT2lkIGZ1bmNuYW1lc3BhY2U7CisJCWNoYXIgKmZ1bmNuYW1lOworCQlj aGFyICpmdW5jbmFtZXNwYWNlbmFtZTsKKwkJRXhwciAqcmFuZ2VUTEVFeHByOworCQlUYXJn ZXRFbnRyeSAqdGxlOworCisJCWZ1bmNpZCA9IGdldF9vcGZhbWlseV9wcm9jKG9wZmFtaWx5 LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwgR0lTVF9JTlRFUlNFQ1RfUFJPQyk7CisJCWlmICgh T2lkSXNWYWxpZChmdW5jaWQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShF UlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQllcnJtc2coImNvdWxkIG5vdCBpZGVu dGlmeSBhbiBpbnRlcnNlY3Qgc3VwcG9ydCBmdW5jdGlvbiBmb3IgdHlwZSAlcyIsIGZvcm1h dF90eXBlX2JlKG9wY2ludHlwZSkpLAorCQkJCQllcnJoaW50KCJEZWZpbmUgYW4gaW50ZXJz ZWN0IHN1cHBvcnQgZnVuY3Rpb24gZm9yIG9wZXJhdG9yIGNsYXNzIFwiJWRcIiBmb3IgYWNj ZXNzIG1ldGhvZCBcIiVzXCIuIiwKKwkJCQkJCSBvcGNsYXNzLCAiZ2lzdCIpKTsKKworCQkv LyBUT0RPOiBkbyB3ZSByZWFsbHkgbmVlZCB0byBnbyB0aHJvdWdoIHRoZSBuYW1lIGhlcmU/ CisJCWZ1bmNuYW1lID0gZ2V0X2Z1bmNfbmFtZShmdW5jaWQpOworCQlpZiAoIWZ1bmNuYW1l KQorCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIGZ1bmN0aW9uICV1 IiwgZnVuY2lkKTsKKwkJZnVuY25hbWVzcGFjZSA9IGdldF9mdW5jX25hbWVzcGFjZShmdW5j aWQsIGZhbHNlKTsKKwkJZnVuY25hbWVzcGFjZW5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUo ZnVuY25hbWVzcGFjZSk7CisJCWlmICghZnVuY25hbWVzcGFjZW5hbWUpCisJCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgbmFtZXNwYWNlICV1IiwgZnVuY25hbWVz cGFjZSk7CisKKwkJcmFuZ2VUTEVFeHByID0gKEV4cHIgKikgbWFrZUZ1bmNDYWxsKAorCQkJ CWxpc3RfbWFrZTIobWFrZVN0cmluZyhmdW5jbmFtZXNwYWNlbmFtZSksIG1ha2VTdHJpbmco ZnVuY25hbWUpKSwKKwkJCQlsaXN0X21ha2UyKGNvcHlPYmplY3QocmFuZ2VWYXIpLCB0YXJn ZXRFeHByKSwKKwkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJCQlmb3JQb3J0aW9uT2Yt PmxvY2F0aW9uKTsKKwkJcmFuZ2VUTEVFeHByID0gKEV4cHIgKikgdHJhbnNmb3JtRXhwcihw c3RhdGUsIChOb2RlICopIHJhbmdlVExFRXhwciwgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9O KTsKKworCQkvKiBNYWtlIGEgVExFIHRvIHNldCB0aGUgcmFuZ2UgY29sdW1uICovCisJCXJl c3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gTklMOworCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnko cmFuZ2VUTEVFeHByLCByYW5nZV9hdHRubywgcmFuZ2VfbmFtZSwgZmFsc2UpOworCQlyZXN1 bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IGxhcHBlbmQocmVzdWx0LT5yYW5nZVRhcmdldExpc3Qs IHRsZSk7CisKKwkJLyogTWFyayB0aGUgcmFuZ2UgY29sdW1uIGFzIHJlcXVpcmluZyB1cGRh dGUgcGVybWlzc2lvbnMgKi8KKwkJdGFyZ2V0X3Blcm1pbmZvLT51cGRhdGVkQ29scyA9IGJt c19hZGRfbWVtYmVyKHRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMsCisJCQkJCQkJCQkJ CQkJICByYW5nZV9hdHRubyAtIEZpcnN0TG93SW52YWxpZEhlYXBBdHRyaWJ1dGVOdW1iZXIp OworCX0KKwllbHNlCisJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0gTklMOworCisJcmVz dWx0LT5yYW5nZV9uYW1lID0gcmFuZ2VfbmFtZTsKKworCXJldHVybiByZXN1bHQ7Cit9CiAK IC8qCiAgKiBCdWlsZE9uQ29uZmxpY3RFeGNsdWRlZFRhcmdldGxpc3QKQEAgLTI0MTksNiAr MjYzMCw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRh dGVTdG10ICpzdG10KQogewogCVF1ZXJ5CSAgICpxcnkgPSBtYWtlTm9kZShRdWVyeSk7CiAJ UGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW07CisJTm9kZQkgICAqd2hlcmVDbGF1c2U7CiAJ Tm9kZQkgICAqcXVhbDsKIAogCXFyeS0+Y29tbWFuZFR5cGUgPSBDTURfVVBEQVRFOwpAQCAt MjQzNiw2ICsyNjQ4LDEwIEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCQkJCQkJCQkJCSBzdG10LT5yZWxhdGlvbi0+aW5o LAogCQkJCQkJCQkJCSB0cnVlLAogCQkJCQkJCQkJCSBBQ0xfVVBEQVRFKTsKKworCWlmIChz dG10LT5mb3JQb3J0aW9uT2YpCisJCXFyeS0+Zm9yUG9ydGlvbk9mID0gdHJhbnNmb3JtRm9y UG9ydGlvbk9mQ2xhdXNlKHBzdGF0ZSwgcXJ5LT5yZXN1bHRSZWxhdGlvbiwgc3RtdC0+Zm9y UG9ydGlvbk9mLCB0cnVlKTsKKwogCW5zaXRlbSA9IHBzdGF0ZS0+cF90YXJnZXRfbnNpdGVt OwogCiAJLyogc3VicXVlcmllcyBpbiBGUk9NIGNhbm5vdCBhY2Nlc3MgdGhlIHJlc3VsdCBy ZWxhdGlvbiAqLwpAQCAtMjQ1Miw3ICsyNjY4LDggQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0bXQpCiAJbnNpdGVtLT5wX2xhdGVy YWxfb25seSA9IGZhbHNlOwogCW5zaXRlbS0+cF9sYXRlcmFsX29rID0gdHJ1ZTsKIAotCXF1 YWwgPSB0cmFuc2Zvcm1XaGVyZUNsYXVzZShwc3RhdGUsIHN0bXQtPndoZXJlQ2xhdXNlLAor CXdoZXJlQ2xhdXNlID0gYWRkRm9yUG9ydGlvbk9mV2hlcmVDb25kaXRpb25zKHFyeSwgc3Rt dC0+Zm9yUG9ydGlvbk9mLCBzdG10LT53aGVyZUNsYXVzZSk7CisJcXVhbCA9IHRyYW5zZm9y bVdoZXJlQ2xhdXNlKHBzdGF0ZSwgd2hlcmVDbGF1c2UsCiAJCQkJCQkJCUVYUFJfS0lORF9X SEVSRSwgIldIRVJFIik7CiAKIAlxcnktPnJldHVybmluZ0xpc3QgPSB0cmFuc2Zvcm1SZXR1 cm5pbmdMaXN0KHBzdGF0ZSwgc3RtdC0+cmV0dXJuaW5nTGlzdCwKQEAgLTI0NjIsNyArMjY3 OSw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVT dG10ICpzdG10KQogCSAqIE5vdyB3ZSBhcmUgZG9uZSB3aXRoIFNFTEVDVC1saWtlIHByb2Nl c3NpbmcsIGFuZCBjYW4gZ2V0IG9uIHdpdGgKIAkgKiB0cmFuc2Zvcm1pbmcgdGhlIHRhcmdl dCBsaXN0IHRvIG1hdGNoIHRoZSBVUERBVEUgdGFyZ2V0IGNvbHVtbnMuCiAJICovCi0JcXJ5 LT50YXJnZXRMaXN0ID0gdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChwc3RhdGUsIHN0bXQt PnRhcmdldExpc3QpOworCXFyeS0+dGFyZ2V0TGlzdCA9IHRyYW5zZm9ybVVwZGF0ZVRhcmdl dExpc3QocHN0YXRlLCBzdG10LT50YXJnZXRMaXN0LCBxcnktPmZvclBvcnRpb25PZik7CiAK IAlxcnktPnJ0YWJsZSA9IHBzdGF0ZS0+cF9ydGFibGU7CiAJcXJ5LT5ydGVwZXJtaW5mb3Mg PSBwc3RhdGUtPnBfcnRlcGVybWluZm9zOwpAQCAtMjQ4MSw3ICsyNjk4LDcgQEAgdHJhbnNm b3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0bXQpCiAg KgloYW5kbGUgU0VUIGNsYXVzZSBpbiBVUERBVEUvTUVSR0UvSU5TRVJUIC4uLiBPTiBDT05G TElDVCBVUERBVEUKICAqLwogTGlzdCAqCi10cmFuc2Zvcm1VcGRhdGVUYXJnZXRMaXN0KFBh cnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3JpZ1RsaXN0KQordHJhbnNmb3JtVXBkYXRlVGFy Z2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKm9yaWdUbGlzdCwgRm9yUG9ydGlv bk9mRXhwciAqZm9yUG9ydGlvbk9mKQogewogCUxpc3QJICAgKnRsaXN0ID0gTklMOwogCVJU RVBlcm1pc3Npb25JbmZvICp0YXJnZXRfcGVybWluZm87CkBAIC0yNTM0LDYgKzI3NTEsMjEg QEAgdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg Km9yaWdUbGlzdCkKIAkJCQkJIGVycmhpbnQoIlNFVCB0YXJnZXQgY29sdW1ucyBjYW5ub3Qg YmUgcXVhbGlmaWVkIHdpdGggdGhlIHJlbGF0aW9uIG5hbWUuIikgOiAwLAogCQkJCQkgcGFy c2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgb3JpZ1RhcmdldC0+bG9jYXRpb24pKSk7CiAKKwkJ LyoKKwkJICogSWYgdGhpcyBpcyBhIEZPUiBQT1JUSU9OIE9GIHVwZGF0ZSwKKwkJICogZm9y YmlkIGRpcmVjdGx5IHNldHRpbmcgdGhlIHJhbmdlIGNvbHVtbiwKKwkJICogc2luY2UgdGhh dCB3b3VsZCBjb25mbGljdCB3aXRoIHRoZSBpbXBsaWNpdCB1cGRhdGVzLgorCQkgKi8KKwkJ aWYgKGZvclBvcnRpb25PZiAhPSBOVUxMKQorCQl7CisJCQlpZiAoYXR0cm5vID09IGZvclBv cnRpb25PZi0+cmFuZ2VWYXItPnZhcmF0dG5vKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkgZXJybXNnKCJjYW4n dCBkaXJlY3RseSBhc3NpZ24gdG8gXCIlc1wiIGluIGEgRk9SIFBPUlRJT04gT0YgdXBkYXRl IiwKKwkJCQkJCQkJb3JpZ1RhcmdldC0+bmFtZSksCisJCQkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgb3JpZ1RhcmdldC0+bG9jYXRpb24pKSk7CisJCX0KKwogCQl1cGRhdGVU YXJnZXRMaXN0RW50cnkocHN0YXRlLCB0bGUsIG9yaWdUYXJnZXQtPm5hbWUsCiAJCQkJCQkJ ICBhdHRybm8sCiAJCQkJCQkJICBvcmlnVGFyZ2V0LT5pbmRpcmVjdGlvbiwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CmluZGV4IDQ3ZWM3MWE5YWIyLi5hNzgzZDlkZjMwNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC0yNTgsNiArMjU4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0 KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlSYW5nZVZh ciAgICpyYW5nZTsKIAlJbnRvQ2xhdXNlICppbnRvOwogCVdpdGhDbGF1c2UgKndpdGg7CisJ Rm9yUG9ydGlvbk9mQ2xhdXNlICpmb3Jwb3J0aW9ub2Y7CiAJSW5mZXJDbGF1c2UJKmluZmVy OwogCU9uQ29uZmxpY3RDbGF1c2UgKm9uY29uZmxpY3Q7CiAJQV9JbmRpY2VzICAqYWluZDsK QEAgLTU1Miw2ICs1NTMsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxl Y3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUg PHJhbmdlPglyZWxhdGlvbl9leHByCiAldHlwZSA8cmFuZ2U+CWV4dGVuZGVkX3JlbGF0aW9u X2V4cHIKICV0eXBlIDxyYW5nZT4JcmVsYXRpb25fZXhwcl9vcHRfYWxpYXMKKyV0eXBlIDxm b3Jwb3J0aW9ub2Y+IGZvcl9wb3J0aW9uX29mX2NsYXVzZQogJXR5cGUgPG5vZGU+CXRhYmxl c2FtcGxlX2NsYXVzZSBvcHRfcmVwZWF0YWJsZV9jbGF1c2UKICV0eXBlIDx0YXJnZXQ+CXRh cmdldF9lbCBzZXRfdGFyZ2V0IGluc2VydF9jb2x1bW5faXRlbQogCkBAIC03NDgsNyArNzUw LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5h bWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAogCVBBUkFMTEVMIFBBUkFNRVRF UiBQQVJTRVIgUEFSVElBTCBQQVJUSVRJT04gUEFTU0lORyBQQVNTV09SRAogCVBFUklPRCBQ TEFDSU5HIFBMQU5TIFBPTElDWQotCVBPU0lUSU9OIFBSRUNFRElORyBQUkVDSVNJT04gUFJF U0VSVkUgUFJFUEFSRSBQUkVQQVJFRCBQUklNQVJZCisJUE9SVElPTiBQT1NJVElPTiBQUkVD RURJTkcgUFJFQ0lTSU9OIFBSRVNFUlZFIFBSRVBBUkUgUFJFUEFSRUQgUFJJTUFSWQogCVBS SU9SIFBSSVZJTEVHRVMgUFJPQ0VEVVJBTCBQUk9DRURVUkUgUFJPQ0VEVVJFUyBQUk9HUkFN IFBVQkxJQ0FUSU9OCiAKIAlRVU9URQpAQCAtODY2LDYgKzg2OCwxNyBAQCBzdGF0aWMgTm9k ZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogICoganNvbl9wcmVkaWNhdGVfdHlwZV9jb25zdHJhaW50IGFu ZCBqc29uX2tleV91bmlxdWVuZXNzX2NvbnN0cmFpbnRfb3B0CiAgKiBwcm9kdWN0aW9ucyAo c2VlIGNvbW1lbnRzIHRoZXJlKS4KICAqLworLyoKKyAqIFdlIG5lZWQgdG8gaGFuZGxlIHRo aXMgc2hpZnQvcmVkdWNlIGNvbmZsaWN0OgorICogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSBJTlRFUlZBTCBZRUFSIFRPIE1PTlRIIFRPIGZvby4KKyAqIFRoaXMgaXMgYmFzaWNh bGx5IHRoZSBjbGFzc2ljICJkYW5nbGluZyBlbHNlIiBwcm9ibGVtLCBhbmQgd2Ugd2FudCBh CisgKiBzaW1pbGFyIHJlc29sdXRpb246IHRyZWF0IHRoZSBUTyBhcyBwYXJ0IG9mIHRoZSBJ TlRFUlZBTCwgbm90IGFzIHBhcnQgb2YKKyAqIHRoZSBGUk9NIC4uLiBUTyAuLi4uIFVzZXJz IGNhbiBhZGQgcGFyZW50aGVzZXMgaWYgdGhhdCdzIGEgcHJvYmxlbS4KKyAqIFRPIGp1c3Qg bmVlZHMgdG8gYmUgaGlnaGVyIHByZWNlZGVuY2UgdGhhbiBZRUFSX1AgZXRjLgorICogVE9E TzogSSBuZWVkIHRvIGZpZ3VyZSBvdXQgYSAlcHJlYyBzb2x1dGlvbiBiZWZvcmUgdGhpcyBn ZXRzIGNvbW1pdHRlZCEKKyAqLworJW5vbmFzc29jIFlFQVJfUCBNT05USF9QIERBWV9QIEhP VVJfUCBNSU5VVEVfUAorJW5vbmFzc29jIFRPCiAlbm9uYXNzb2MJVU5CT1VOREVECQkvKiBp ZGVhbGx5IHdvdWxkIGhhdmUgc2FtZSBwcmVjZWRlbmNlIGFzIElERU5UICovCiAlbm9uYXNz b2MJSURFTlQgUEFSVElUSU9OIFJBTkdFIFJPV1MgR1JPVVBTIFBSRUNFRElORyBGT0xMT1dJ TkcgQ1VCRSBST0xMVVAKIAkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBWQUxVRV9QIFdJ VEggV0lUSE9VVApAQCAtMTIyNDUsMTQgKzEyMjU4LDE2IEBAIHJldHVybmluZ19jbGF1c2U6 CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIERlbGV0ZVN0bXQ6IG9wdF93aXRoX2Ns YXVzZSBERUxFVEVfUCBGUk9NIHJlbGF0aW9uX2V4cHJfb3B0X2FsaWFzCisJCQlmb3JfcG9y dGlvbl9vZl9jbGF1c2UKIAkJCXVzaW5nX2NsYXVzZSB3aGVyZV9vcl9jdXJyZW50X2NsYXVz ZSByZXR1cm5pbmdfY2xhdXNlCiAJCQkJewogCQkJCQlEZWxldGVTdG10ICpuID0gbWFrZU5v ZGUoRGVsZXRlU3RtdCk7CiAKIAkJCQkJbi0+cmVsYXRpb24gPSAkNDsKLQkJCQkJbi0+dXNp bmdDbGF1c2UgPSAkNTsKLQkJCQkJbi0+d2hlcmVDbGF1c2UgPSAkNjsKLQkJCQkJbi0+cmV0 dXJuaW5nTGlzdCA9ICQ3OworCQkJCQluLT5mb3JQb3J0aW9uT2YgPSAkNTsKKwkJCQkJbi0+ dXNpbmdDbGF1c2UgPSAkNjsKKwkJCQkJbi0+d2hlcmVDbGF1c2UgPSAkNzsKKwkJCQkJbi0+ cmV0dXJuaW5nTGlzdCA9ICQ4OwogCQkJCQluLT53aXRoQ2xhdXNlID0gJDE7CiAJCQkJCSQk ID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC0xMjMxNSw2ICsxMjMzMCw3IEBAIG9wdF9ub3dh aXRfb3Jfc2tpcDoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogVXBkYXRlU3RtdDog b3B0X3dpdGhfY2xhdXNlIFVQREFURSByZWxhdGlvbl9leHByX29wdF9hbGlhcworCQkJZm9y X3BvcnRpb25fb2ZfY2xhdXNlCiAJCQlTRVQgc2V0X2NsYXVzZV9saXN0CiAJCQlmcm9tX2Ns YXVzZQogCQkJd2hlcmVfb3JfY3VycmVudF9jbGF1c2UKQEAgLTEyMzIzLDEwICsxMjMzOSwx MSBAQCBVcGRhdGVTdG10OiBvcHRfd2l0aF9jbGF1c2UgVVBEQVRFIHJlbGF0aW9uX2V4cHJf b3B0X2FsaWFzCiAJCQkJCVVwZGF0ZVN0bXQgKm4gPSBtYWtlTm9kZShVcGRhdGVTdG10KTsK IAogCQkJCQluLT5yZWxhdGlvbiA9ICQzOwotCQkJCQluLT50YXJnZXRMaXN0ID0gJDU7Ci0J CQkJCW4tPmZyb21DbGF1c2UgPSAkNjsKLQkJCQkJbi0+d2hlcmVDbGF1c2UgPSAkNzsKLQkJ CQkJbi0+cmV0dXJuaW5nTGlzdCA9ICQ4OworCQkJCQluLT5mb3JQb3J0aW9uT2YgPSAkNDsK KwkJCQkJbi0+dGFyZ2V0TGlzdCA9ICQ2OworCQkJCQluLT5mcm9tQ2xhdXNlID0gJDc7CisJ CQkJCW4tPndoZXJlQ2xhdXNlID0gJDg7CisJCQkJCW4tPnJldHVybmluZ0xpc3QgPSAkOTsK IAkJCQkJbi0+d2l0aENsYXVzZSA9ICQxOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJ fQpAQCAtMTM3NjQsNiArMTM3ODEsMjcgQEAgcmVsYXRpb25fZXhwcl9vcHRfYWxpYXM6IHJl bGF0aW9uX2V4cHIJCQkJCSVwcmVjIFVNSU5VUwogCQkJCX0KIAkJOwogCitmb3JfcG9ydGlv bl9vZl9jbGF1c2U6CisJCQlGT1IgUE9SVElPTiBPRiBDb2xJZCAnKCcgYV9leHByICcpJwor CQkJCXsKKwkJCQkJRm9yUG9ydGlvbk9mQ2xhdXNlICpuID0gbWFrZU5vZGUoRm9yUG9ydGlv bk9mQ2xhdXNlKTsKKwkJCQkJbi0+cmFuZ2VfbmFtZSA9ICQ0OworCQkJCQluLT5sb2NhdGlv biA9IEA0OworCQkJCQluLT50YXJnZXQgPSAkNjsKKwkJCQkJJCQgPSBuOworCQkJCX0KKwkJ CXwgRk9SIFBPUlRJT04gT0YgQ29sSWQgRlJPTSBhX2V4cHIgVE8gYV9leHByCisJCQkJewor CQkJCQlGb3JQb3J0aW9uT2ZDbGF1c2UgKm4gPSBtYWtlTm9kZShGb3JQb3J0aW9uT2ZDbGF1 c2UpOworCQkJCQluLT5yYW5nZV9uYW1lID0gJDQ7CisJCQkJCW4tPmxvY2F0aW9uID0gQDQ7 CisJCQkJCW4tPnRhcmdldF9zdGFydCA9ICQ2OworCQkJCQluLT50YXJnZXRfZW5kID0gJDg7 CisJCQkJCSQkID0gbjsKKwkJCQl9CisJCQl8IC8qRU1QVFkqLwkJCQkJeyAkJCA9IE5VTEw7 IH0KKwkJOworCiAvKgogICogVEFCTEVTQU1QTEUgZGVjb3JhdGlvbiBpbiBhIEZST00gaXRl bQogICovCkBAIC0xNzM2Niw2ICsxNzQwNCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJ CXwgUEVSSU9ECiAJCQl8IFBMQU5TCiAJCQl8IFBPTElDWQorCQkJfCBQT1JUSU9OCiAJCQl8 IFBSRUNFRElORwogCQkJfCBQUkVQQVJFCiAJCQl8IFBSRVBBUkVECkBAIC0xNzk3MSw2ICsx ODAxMCw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgUExBQ0lORwogCQkJfCBQTEFO UwogCQkJfCBQT0xJQ1kKKwkJCXwgUE9SVElPTgogCQkJfCBQT1NJVElPTgogCQkJfCBQUkVD RURJTkcKIAkJCXwgUFJFUEFSRQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2FnZy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IGJlZTdk ODM0NmEzLi4wMGVkYWY4M2JhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNTc2 LDYgKzU3NiwxMyBAQCBjaGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoK IAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX1VQREFU RV9QT1JUSU9OOgorCQkJaWYgKGlzQWdnKQorCQkJCWVyciA9IF8oImFnZ3JlZ2F0ZSBmdW5j dGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb25zIik7 CisJCQllbHNlCisJCQkJZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFs bG93ZWQgaW4gRk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbnMiKTsKKworCQkJYnJlYWs7CiAK IAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2Ug aGVyZSwgc28gdGhhdCB0aGUKQEAgLTk2Nyw2ICs5NzQsOSBAQCB0cmFuc2Zvcm1XaW5kb3dG dW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQljYXNl IEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsK KwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJT046CisJCQllcnIgPSBfKCJ3aW5kb3cg ZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9u cyIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5 IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9jb2xsYXRlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfY29sbGF0ZS5jCmluZGV4IDQ0NTI5YmI0OWU2Li4xNGZmYjdiYTY0OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvbGxhdGUuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfY29sbGF0ZS5jCkBAIC00ODQsNiArNDg0LDcgQEAgYXNzaWduX2Nv bGxhdGlvbnNfd2Fsa2VyKE5vZGUgKm5vZGUsIGFzc2lnbl9jb2xsYXRpb25zX2NvbnRleHQg KmNvbnRleHQpCiAJCWNhc2UgVF9Kb2luRXhwcjoKIAkJY2FzZSBUX0Zyb21FeHByOgogCQlj YXNlIFRfT25Db25mbGljdEV4cHI6CisJCWNhc2UgVF9Gb3JQb3J0aW9uT2ZFeHByOgogCQlj YXNlIFRfU29ydEdyb3VwQ2xhdXNlOgogCQljYXNlIFRfTWVyZ2VBY3Rpb246CiAJCQkodm9p ZCkgZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKaW5kZXggZDQ0YjFmMmFiMmYuLjE3OGYwMzYwY2IyIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMKQEAgLTU3Myw2ICs1NzMsOSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VT dGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX1BBUlRJ VElPTl9CT1VORDoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2UgY29sdW1uIHJlZmVyZW5jZSBp biBwYXJ0aXRpb24gYm91bmQgZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQ Ul9LSU5EX1VQREFURV9QT1JUSU9OOgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBjb2x1bW4g cmVmZXJlbmNlIGluIEZPUiBQT1JUSU9OIE9GIGV4cHJlc3Npb24iKTsKKwkJCWJyZWFrOwog CiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNl IGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0xODQ2LDYgKzE4NDksOSBAQCB0cmFuc2Zvcm1TdWJM aW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBS X0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVl cnkgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNh c2UgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OOgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBz dWJxdWVyeSBpbiBGT1IgUE9SVElPTiBPRiBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAog CQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBo ZXJlLCBzbyB0aGF0IHRoZQpAQCAtMzEzNyw2ICszMTQzLDggQEAgUGFyc2VFeHByS2luZE5h bWUoUGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJCXJldHVybiAiVVBEQVRFIjsKIAkJY2Fz ZSBFWFBSX0tJTkRfTUVSR0VfV0hFTjoKIAkJCXJldHVybiAiTUVSR0UgV0hFTiI7CisJCWNh c2UgRVhQUl9LSU5EX1VQREFURV9QT1JUSU9OOgorCQkJcmV0dXJuICJGT1IgUE9SVElPTiBP RiI7CiAJCWNhc2UgRVhQUl9LSU5EX0dST1VQX0JZOgogCQkJcmV0dXJuICJHUk9VUCBCWSI7 CiAJCWNhc2UgRVhQUl9LSU5EX09SREVSX0JZOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMK aW5kZXggMGNiYzk1MGM5NWMuLjZiYWEzYjYwNzIzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKQEAgLTI2NTcsNiArMjY1Nyw5IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQ YXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCWNh c2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFr OworCQljYXNlIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTjoKKwkJCWVyciA9IF8oInNldC1y ZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBGT1IgUE9SVElPTiBPRiBl eHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRl bnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX21lcmdlLmMKaW5kZXggMDRlZDVlNjZkZGEuLjJkOWVjOTRkMWY3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYworKysgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpAQCAtMzc3LDcgKzM3Nyw3IEBAIHRyYW5zZm9y bU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE1lcmdlU3RtdCAqc3RtdCkKIAkJCQkJ cHN0YXRlLT5wX2lzX2luc2VydCA9IGZhbHNlOwogCQkJCQlhY3Rpb24tPnRhcmdldExpc3Qg PQogCQkJCQkJdHJhbnNmb3JtVXBkYXRlVGFyZ2V0TGlzdChwc3RhdGUsCi0JCQkJCQkJCQkJ CQkgIG1lcmdlV2hlbkNsYXVzZS0+dGFyZ2V0TGlzdCk7CisJCQkJCQkJCQkJCQkgIG1lcmdl V2hlbkNsYXVzZS0+dGFyZ2V0TGlzdCwgTlVMTCk7CiAJCQkJfQogCQkJCWJyZWFrOwogCQkJ Y2FzZSBDTURfREVMRVRFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdy aXRlSGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCmlu ZGV4IDlmZDA1YjE1ZTczLi40NDE1OTg1MjA1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmV3cml0ZS9yZXdyaXRlSGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL3Jld3JpdGUvcmV3 cml0ZUhhbmRsZXIuYwpAQCAtMzY3Nyw2ICszNjc3LDMwIEBAIHJld3JpdGVUYXJnZXRWaWV3 KFF1ZXJ5ICpwYXJzZXRyZWUsIFJlbGF0aW9uIHZpZXcpCiAJCQkJCQkJCQkgICZwYXJzZXRy ZWUtPmhhc1N1YkxpbmtzKTsKIAl9CiAKKwlpZiAocGFyc2V0cmVlLT5mb3JQb3J0aW9uT2Yg JiYgcGFyc2V0cmVlLT5jb21tYW5kVHlwZSA9PSBDTURfVVBEQVRFKQorCXsKKwkJLyoKKwkJ ICogTGlrZSB0aGUgSU5TRVJUL1VQREFURSBjb2RlIGFib3ZlLCB1cGRhdGUgdGhlIHJlc25v cyBpbiB0aGUKKwkJICogYXV4aWxpYXJ5IFVQREFURSB0YXJnZXRsaXN0IHRvIHJlZmVyIHRv IGNvbHVtbnMgb2YgdGhlIGJhc2UKKwkJICogcmVsYXRpb24uCisJCSAqLworCQlmb3JlYWNo KGxjLCBwYXJzZXRyZWUtPmZvclBvcnRpb25PZi0+cmFuZ2VUYXJnZXRMaXN0KQorCQl7CisJ CQlUYXJnZXRFbnRyeSAqdGxlID0gKFRhcmdldEVudHJ5ICopIGxmaXJzdChsYyk7CisJCQlU YXJnZXRFbnRyeSAqdmlld190bGU7CisKKwkJCWlmICh0bGUtPnJlc2p1bmspCisJCQkJY29u dGludWU7CisKKwkJCXZpZXdfdGxlID0gZ2V0X3RsZV9ieV9yZXNubyh2aWV3X3RhcmdldGxp c3QsIHRsZS0+cmVzbm8pOworCQkJaWYgKHZpZXdfdGxlICE9IE5VTEwgJiYgIXZpZXdfdGxl LT5yZXNqdW5rICYmIElzQSh2aWV3X3RsZS0+ZXhwciwgVmFyKSkKKwkJCQl0bGUtPnJlc25v ID0gKChWYXIgKikgdmlld190bGUtPmV4cHIpLT52YXJhdHRubzsKKwkJCWVsc2UKKwkJCQll bG9nKEVSUk9SLCAiYXR0cmlidXRlIG51bWJlciAlZCBub3QgZm91bmQgaW4gdmlldyB0YXJn ZXRsaXN0IiwKKwkJCQkJIHRsZS0+cmVzbm8pOworCQl9CisJfQorCiAJLyoKIAkgKiBGb3Ig VVBEQVRFL0RFTEVURS9NRVJHRSwgcHVsbCB1cCBhbnkgV0hFUkUgcXVhbHMgZnJvbSB0aGUg dmlldy4gIFdlCiAJICoga25vdyB0aGF0IGFueSBWYXJzIGluIHRoZSBxdWFscyBtdXN0IHJl ZmVyZW5jZSB0aGUgb25lIGJhc2UgcmVsYXRpb24sCkBAIC00MDE2LDYgKzQwNDAsMjIgQEAg UmV3cml0ZVF1ZXJ5KFF1ZXJ5ICpwYXJzZXRyZWUsIExpc3QgKnJld3JpdGVfZXZlbnRzLCBp bnQgb3JpZ19ydF9sZW5ndGgpCiAJCWVsc2UgaWYgKGV2ZW50ID09IENNRF9VUERBVEUpCiAJ CXsKIAkJCUFzc2VydChwYXJzZXRyZWUtPm92ZXJyaWRlID09IE9WRVJSSURJTkdfTk9UX1NF VCk7CisJCQkvKgorCQkJICogVXBkYXRlIEZPUiBQT1JUSU9OIE9GIGNvbHVtbihzKSBhdXRv bWF0aWNhbGx5LiBEb24ndAorCQkJICogZG8gdGhpcyB1bnRpbCB3ZSdyZSBkb25lIHJld3Jp dGluZyBhIHZpZXcgdXBkYXRlLCBzbworCQkJICogdGhhdCB3ZSBkb24ndCBhZGQgdGhlIHNh bWUgdXBkYXRlIG9uIHRoZSByZWN1cnNpb24uCisJCQkgKi8KKwkJCWlmIChwYXJzZXRyZWUt PmZvclBvcnRpb25PZiAmJgorCQkJCXJ0X2VudHJ5X3JlbGF0aW9uLT5yZF9yZWwtPnJlbGtp bmQgIT0gUkVMS0lORF9WSUVXKQorCQkJeworCQkJCUxpc3RDZWxsICp0bDsKKwkJCQlmb3Jl YWNoKHRsLCBwYXJzZXRyZWUtPmZvclBvcnRpb25PZi0+cmFuZ2VUYXJnZXRMaXN0KQorCQkJ CXsKKwkJCQkJVGFyZ2V0RW50cnkgKnRsZSA9IChUYXJnZXRFbnRyeSAqKSBsZmlyc3QodGwp OworCQkJCQlwYXJzZXRyZWUtPnRhcmdldExpc3QgPSBsYXBwZW5kKHBhcnNldHJlZS0+dGFy Z2V0TGlzdCwgdGxlKTsKKwkJCQl9CisJCQl9CisKIAkJCXBhcnNldHJlZS0+dGFyZ2V0TGlz dCA9CiAJCQkJcmV3cml0ZVRhcmdldExpc3RJVShwYXJzZXRyZWUtPnRhcmdldExpc3QsCiAJ CQkJCQkJCQlwYXJzZXRyZWUtPmNvbW1hbmRUeXBlLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcmlf dHJpZ2dlcnMuYwppbmRleCA2MDM2M2NkNmY2Mi4uMTIzZWFhODE4ZGIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9yaV90cmlnZ2Vycy5jCkBAIC0yMjgsNiArMjI4LDcgQEAgc3RhdGljIGJv b2wgcmlfUGVyZm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJ CQkJCQkJUklfUXVlcnlLZXkgKnFrZXksIFNQSVBsYW5QdHIgcXBsYW4sCiAJCQkJCQkJUmVs YXRpb24gZmtfcmVsLCBSZWxhdGlvbiBwa19yZWwsCiAJCQkJCQkJVHVwbGVUYWJsZVNsb3Qg Km9sZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAorCQkJCQkJCWludCBmb3JQb3J0 aW9uT2ZQYXJhbSwgRGF0dW0gZm9yUG9ydGlvbk9mLAogCQkJCQkJCWJvb2wgZGV0ZWN0TmV3 Um93cywgaW50IGV4cGVjdF9PSyk7CiBzdGF0aWMgdm9pZCByaV9FeHRyYWN0VmFsdWVzKFJl bGF0aW9uIHJlbCwgVHVwbGVUYWJsZVNsb3QgKnNsb3QsCiAJCQkJCQkJIGNvbnN0IFJJX0Nv bnN0cmFpbnRJbmZvICpyaWluZm8sIGJvb2wgcmVsX2lzX3BrLApAQCAtMjM2LDYgKzIzNywx MSBAQCBzdGF0aWMgdm9pZCByaV9SZXBvcnRWaW9sYXRpb24oY29uc3QgUklfQ29uc3RyYWlu dEluZm8gKnJpaW5mbywKIAkJCQkJCQkgICBSZWxhdGlvbiBwa19yZWwsIFJlbGF0aW9uIGZr X3JlbCwKIAkJCQkJCQkgICBUdXBsZVRhYmxlU2xvdCAqdmlvbGF0b3JzbG90LCBUdXBsZURl c2MgdHVwZGVzYywKIAkJCQkJCQkgICBpbnQgcXVlcnlubywgYm9vbCBwYXJ0Z29uZSkgcGdf YXR0cmlidXRlX25vcmV0dXJuKCk7CitzdGF0aWMgYm9vbCBmcG9fdGFyZ2V0c19wa19yYW5n ZShjb25zdCBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVtcG9yYWwsCisJCQkJCQkJCSBjb25z dCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvKTsKK3N0YXRpYyBEYXR1bSByZXN0cmljdF9j YXNjYWRpbmdfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFsLAor CQkJCQkJCQkJICBjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLAorCQkJCQkJCQkJ ICBUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdCk7CiAKIAogLyoKQEAgLTQ1MCw2ICs0NTYsNyBA QCBSSV9GS2V5X2NoZWNrKFRyaWdnZXJEYXRhICp0cmlnZGF0YSkKIAlyaV9QZXJmb3JtQ2hl Y2socmlpbmZvLCAmcWtleSwgcXBsYW4sCiAJCQkJCWZrX3JlbCwgcGtfcmVsLAogCQkJCQlO VUxMLCBuZXdzbG90LAorCQkJCQktMSwgKERhdHVtKSAwLAogCQkJCQlwa19yZWwtPnJkX3Jl bC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFLAogCQkJCQlTUElfT0tf U0VMRUNUKTsKIApAQCAtNjE1LDYgKzYyMiw3IEBAIHJpX0NoZWNrX1BrX01hdGNoKFJlbGF0 aW9uIHBrX3JlbCwgUmVsYXRpb24gZmtfcmVsLAogCXJlc3VsdCA9IHJpX1BlcmZvcm1DaGVj ayhyaWluZm8sICZxa2V5LCBxcGxhbiwKIAkJCQkJCQkgZmtfcmVsLCBwa19yZWwsCiAJCQkJ CQkJIG9sZHNsb3QsIE5VTEwsCisJCQkJCQkJIC0xLCAoRGF0dW0pIDAsCiAJCQkJCQkJIHRy dWUsCS8qIHRyZWF0IGxpa2UgdXBkYXRlICovCiAJCQkJCQkJIFNQSV9PS19TRUxFQ1QpOwog CkBAIC03MTQsNiArNzIyLDggQEAgcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRyaWdkYXRh LCBib29sIGlzX25vX2FjdGlvbikKIAlUdXBsZVRhYmxlU2xvdCAqb2xkc2xvdDsKIAlSSV9R dWVyeUtleSBxa2V5OwogCVNQSVBsYW5QdHIJcXBsYW47CisJaW50CQkJdGFyZ2V0UmFuZ2VQ YXJhbSA9IC0xOworCURhdHVtCQl0YXJnZXRSYW5nZSA9IChEYXR1bSkgMDsKIAogCXJpaW5m byA9IHJpX0ZldGNoQ29uc3RyYWludEluZm8odHJpZ2RhdGEtPnRnX3RyaWdnZXIsCiAJCQkJ CQkJCQl0cmlnZGF0YS0+dGdfcmVsYXRpb24sIHRydWUpOwpAQCAtODA0LDkgKzgxNCwxNiBA QCByaV9yZXN0cmljdChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfbm9fYWN0aW9u KQogCS8qCiAJICogV2UgaGF2ZSBhIHBsYW4gbm93LiBSdW4gaXQgdG8gY2hlY2sgZm9yIGV4 aXN0aW5nIHJlZmVyZW5jZXMuCiAJICovCisJaWYgKHRyaWdkYXRhLT50Z190ZW1wb3JhbCkK Kwl7CisJCXRhcmdldFJhbmdlUGFyYW0gPSByaWluZm8tPm5rZXlzIC0gMTsKKwkJdGFyZ2V0 UmFuZ2UgPSByZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UodHJpZ2RhdGEtPnRnX3RlbXBvcmFs LCByaWluZm8sIG9sZHNsb3QpOworCX0KKwogCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZx a2V5LCBxcGxhbiwKIAkJCQkJZmtfcmVsLCBwa19yZWwsCiAJCQkJCW9sZHNsb3QsIE5VTEws CisJCQkJCXRhcmdldFJhbmdlUGFyYW0sIHRhcmdldFJhbmdlLAogCQkJCQl0cnVlLAkJLyog bXVzdCBkZXRlY3QgbmV3IHJvd3MgKi8KIAkJCQkJU1BJX09LX1NFTEVDVCk7CiAKQEAgLTkx Myw2ICs5MzAsNyBAQCBSSV9GS2V5X2Nhc2NhZGVfZGVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ cmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLAogCQkJCQlma19yZWwsIHBr X3JlbCwKIAkJCQkJb2xkc2xvdCwgTlVMTCwKKwkJCQkJLTEsIChEYXR1bSkgMCwKIAkJCQkJ dHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCiAJCQkJCVNQSV9PS19ERUxFVEUp OwogCkBAIC0xMDM0LDYgKzEwNTIsNyBAQCBSSV9GS2V5X2Nhc2NhZGVfdXBkKFBHX0ZVTkNU SU9OX0FSR1MpCiAJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywgJnFrZXksIHFwbGFuLAogCQkJ CQlma19yZWwsIHBrX3JlbCwKIAkJCQkJb2xkc2xvdCwgbmV3c2xvdCwKKwkJCQkJLTEsIChE YXR1bSkgMCwKIAkJCQkJdHJ1ZSwJCS8qIG11c3QgZGV0ZWN0IG5ldyByb3dzICovCiAJCQkJ CVNQSV9PS19VUERBVEUpOwogCkBAIC0xMjY2LDYgKzEyODUsNyBAQCByaV9zZXQoVHJpZ2dl ckRhdGEgKnRyaWdkYXRhLCBib29sIGlzX3NldF9udWxsLCBpbnQgdGdraW5kKQogCXJpX1Bl cmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwKIAkJCQkJZmtfcmVsLCBwa19yZWws CiAJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCS0xLCAoRGF0dW0pIDAsCiAJCQkJCXRydWUs CQkvKiBtdXN0IGRldGVjdCBuZXcgcm93cyAqLwogCQkJCQlTUElfT0tfVVBEQVRFKTsKIApA QCAtMjQxOCw2ICsyNDM4LDcgQEAgcmlfUGVyZm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFp bnRJbmZvICpyaWluZm8sCiAJCQkJUklfUXVlcnlLZXkgKnFrZXksIFNQSVBsYW5QdHIgcXBs YW4sCiAJCQkJUmVsYXRpb24gZmtfcmVsLCBSZWxhdGlvbiBwa19yZWwsCiAJCQkJVHVwbGVU YWJsZVNsb3QgKm9sZHNsb3QsIFR1cGxlVGFibGVTbG90ICpuZXdzbG90LAorCQkJCWludCBm b3JQb3J0aW9uT2ZQYXJhbSwgRGF0dW0gZm9yUG9ydGlvbk9mLAogCQkJCWJvb2wgZGV0ZWN0 TmV3Um93cywgaW50IGV4cGVjdF9PSykKIHsKIAlSZWxhdGlvbglxdWVyeV9yZWwsCkBAIC0y NDczLDYgKzI0OTQsMTIgQEAgcmlfUGVyZm9ybUNoZWNrKGNvbnN0IFJJX0NvbnN0cmFpbnRJ bmZvICpyaWluZm8sCiAJCXJpX0V4dHJhY3RWYWx1ZXMoc291cmNlX3JlbCwgb2xkc2xvdCwg cmlpbmZvLCBzb3VyY2VfaXNfcGssCiAJCQkJCQkgdmFscywgbnVsbHMpOwogCX0KKwkvKiBB ZGQgb25lIG1vcmUgcXVlcnkgcGFyYW0gaWYgd2UgYXJlIHVzaW5nIEZPUiBQT1JUSU9OIE9G ICovCisJaWYgKGZvclBvcnRpb25PZikKKwl7CisJCXZhbHNbZm9yUG9ydGlvbk9mUGFyYW1d ID0gZm9yUG9ydGlvbk9mOworCQludWxsc1tmb3JQb3J0aW9uT2ZQYXJhbV0gPSAnICc7CisJ fQogCiAJLyoKIAkgKiBJbiBSRUFEIENPTU1JVFRFRCBtb2RlLCB3ZSBqdXN0IG5lZWQgdG8g dXNlIGFuIHVwLXRvLWRhdGUgcmVndWxhcgpAQCAtMzEzOCwzICszMTY1LDUwIEBAIFJJX0ZL ZXlfdHJpZ2dlcl90eXBlKE9pZCB0Z2ZvaWQpCiAKIAlyZXR1cm4gUklfVFJJR0dFUl9OT05F OwogfQorCisvKgorICogZnBvX3RhcmdldHNfcGtfcmFuZ2UKKyAqCisgKiBSZXR1cm5zIHRy dWUgaWZmIHRoZSBwcmltYXJ5IGtleSByZWZlcmVuY2VkIGJ5IHJpaW5mbyBpbmNsdWRlcyB0 aGUgcmFuZ2UKKyAqIGNvbHVtbiB0YXJnZXRlZCBieSB0aGUgRk9SIFBPUlRJT04gT0YgY2xh dXNlIChhY2NvcmRpbmcgdG8gdGdfdGVtcG9yYWwpLgorICovCitzdGF0aWMgYm9vbAorZnBv X3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBvcmFs LCBjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvKQoreworCWlmICh0Z190ZW1wb3Jh bCA9PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gcmlpbmZvLT5wa19hdHRu dW1zW3JpaW5mby0+bmtleXMgLSAxXSA9PSB0Z190ZW1wb3JhbC0+ZnBfcmFuZ2VBdHRubzsK K30KKworLyoKKyAqIHJlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZSAtCisgKgorICogUmV0dXJu cyBhIERhdHVtIG9mIFJhbmdlVHlwZVAgaG9sZGluZyB0aGUgYXBwcm9wcmlhdGUgdGltZXNw YW4KKyAqIHRvIHRhcmdldCBjaGlsZCByZWNvcmRzIHdoZW4gd2UgQ0FTQ0FERS9TRVQgTlVM TC9TRVQgREVGQVVMVC4KKyAqCisgKiBJbiBhIG5vcm1hbCBVUERBVEUvREVMRVRFIHRoaXMg c2hvdWxkIGJlIHRoZSBwYXJlbnQncyBvd24gdmFsaWQgdGltZSwKKyAqIGJ1dCBpZiB0aGVy ZSB3YXMgYSBGT1IgUE9SVElPTiBPRiBjbGF1c2UsIHRoZW4gd2Ugc2hvdWxkIHVzZSB0aGF0 IHRvCisgKiB0cmltIGRvd24gdGhlIHBhcmVudCdzIHNwYW4gZnVydGhlci4KKyAqLworc3Rh dGljIERhdHVtCityZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9m U3RhdGUgKnRnX3RlbXBvcmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLCBU dXBsZVRhYmxlU2xvdCAqb2xkc2xvdCkKK3sKKwlEYXR1bQlwa1JlY29yZFJhbmdlOworCWJv b2wJaXNudWxsOworCisJcGtSZWNvcmRSYW5nZSA9IHNsb3RfZ2V0YXR0cihvbGRzbG90LCBy aWluZm8tPnBrX2F0dG51bXNbcmlpbmZvLT5ua2V5cyAtIDFdLCAmaXNudWxsKTsKKwlpZiAo aXNudWxsKQorCQllbG9nKEVSUk9SLCAiYXBwbGljYXRpb24gdGltZSBzaG91bGQgbm90IGJl IG51bGwiKTsKKworCWlmIChmcG9fdGFyZ2V0c19wa19yYW5nZSh0Z190ZW1wb3JhbCwgcmlp bmZvKSkKKwl7CisJCVJhbmdlVHlwZSAqcjEgPSBEYXR1bUdldFJhbmdlVHlwZVAocGtSZWNv cmRSYW5nZSk7CisJCVJhbmdlVHlwZSAqcjIgPSBEYXR1bUdldFJhbmdlVHlwZVAodGdfdGVt cG9yYWwtPmZwX3RhcmdldFJhbmdlKTsKKwkJT2lkIHJuZ3R5cGlkID0gUmFuZ2VUeXBlR2V0 T2lkKHIxKTsKKwkJVHlwZUNhY2hlRW50cnkgKnR5cGNhY2hlID0gbG9va3VwX3R5cGVfY2Fj aGUocm5ndHlwaWQsIFRZUEVDQUNIRV9SQU5HRV9JTkZPKTsKKwkJcmV0dXJuIFJhbmdlVHlw ZVBHZXREYXR1bShyYW5nZV9pbnRlcnNlY3RfaW50ZXJuYWwodHlwY2FjaGUsIHIxLCByMikp OworCX0KKwllbHNlCisJCXJldHVybiBwa1JlY29yZFJhbmdlOworfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGls cy9jYWNoZS9sc3lzY2FjaGUuYwppbmRleCA2NDE4ZDFjNmViYS4uZTlhM2MxNDZkMTEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0xNjA3LDcgKzE2MDcsNyBA QCBnZXRfZnVuY19uYW1lKE9pZCBmdW5jaWQpCiAgKgkJUmV0dXJucyB0aGUgcGdfbmFtZXNw YWNlIE9JRCBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBmdW5jdGlvbi4KICAqLwogT2lkCi1n ZXRfZnVuY19uYW1lc3BhY2UoT2lkIGZ1bmNpZCkKK2dldF9mdW5jX25hbWVzcGFjZShPaWQg ZnVuY2lkLCBib29sIG1pc3Npbmdfb2spCiB7CiAJSGVhcFR1cGxlCXRwOwogCkBAIC0xNjIx LDYgKzE2MjEsOCBAQCBnZXRfZnVuY19uYW1lc3BhY2UoT2lkIGZ1bmNpZCkKIAkJUmVsZWFz ZVN5c0NhY2hlKHRwKTsKIAkJcmV0dXJuIHJlc3VsdDsKIAl9CisJZWxzZSBpZiAoIW1pc3Np bmdfb2spCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBmdW5jdGlv biAldSIsIGZ1bmNpZCk7CiAJZWxzZQogCQlyZXR1cm4gSW52YWxpZE9pZDsKIH0KQEAgLTIx NDQsNiArMjE0Niw1OSBAQCBnZXRfdHlwaXNkZWZpbmVkKE9pZCB0eXBpZCkKIAkJcmV0dXJu IGZhbHNlOwogfQogCisvKgorICogZ2V0X3R5cG5hbWUKKyAqCisgKgkgIFJldHVybnMgdGhl IG5hbWUgb2YgYSBnaXZlbiB0eXBlCisgKgorICogUmV0dXJucyBhIHBhbGxvYydkIGNvcHkg b2YgdGhlIHN0cmluZywgb3IgTlVMTCBpZiBubyBzdWNoIHR5cGUuCisgKi8KK2NoYXIgKgor Z2V0X3R5cG5hbWUoT2lkIHR5cGlkKQoreworCUhlYXBUdXBsZSAgIHRwOworCisJdHAgPSBT ZWFyY2hTeXNDYWNoZTEoVFlQRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh0eXBpZCkpOworCWlm IChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwl7CisJCUZvcm1fcGdfdHlwZSB0eXB0dXAgPSAo Rm9ybV9wZ190eXBlKSBHRVRTVFJVQ1QodHApOworCQljaGFyCSAgICpyZXN1bHQ7CisKKwkJ cmVzdWx0ID0gcHN0cmR1cChOYW1lU3RyKHR5cHR1cC0+dHlwbmFtZSkpOworCQlSZWxlYXNl U3lzQ2FjaGUodHApOworCQlyZXR1cm4gcmVzdWx0OworCX0KKwllbHNlCisJCXJldHVybiBO VUxMOworfQorCisvKgorICogZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZQorICoKKyAqCSAg UmV0dXJucyB0aGUgbmFtZSBhbmQgbmFtZXNwYWNlIG9mIGEgZ2l2ZW4gdHlwZQorICoKKyAq IFJldHVybnMgdHJ1ZSBpZiBvbmUgZm91bmQsIG9yIGZhbHNlIGlmIG5vdC4KKyAqLworYm9v bAorZ2V0X3R5cG5hbWVfYW5kX25hbWVzcGFjZShPaWQgdHlwaWQsIGNoYXIgKip0eXBuYW1l LCBjaGFyICoqdHlwbmFtZXNwYWNlKQoreworCUhlYXBUdXBsZQl0cDsKKworCXRwID0gU2Vh cmNoU3lzQ2FjaGUxKFRZUEVPSUQsIE9iamVjdElkR2V0RGF0dW0odHlwaWQpKTsKKwlpZiAo SGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3R5cGUgdHlwdHVwID0gKEZv cm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKworCQkqdHlwbmFtZSA9IHBzdHJkdXAoTmFt ZVN0cih0eXB0dXAtPnR5cG5hbWUpKTsKKwkJKnR5cG5hbWVzcGFjZSA9IGdldF9uYW1lc3Bh Y2VfbmFtZSh0eXB0dXAtPnR5cG5hbWVzcGFjZSk7CisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7 CisJCS8qICp0eXBuYW1lc3BhY2UgaXMgTlVMTCBpZiBpdCB3YXNuJ3QgZm91bmQ6ICovCisJ CXJldHVybiAqdHlwbmFtZXNwYWNlOworCX0KKwllbHNlCisJCXJldHVybiBmYWxzZTsKK30K KwogLyoKICAqIGdldF90eXBsZW4KICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3Mvc3RyYXRudW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zdHJhdG51bS5oCmluZGV4IDhh NDdkM2M5ZWM4Li5iODAxZWYxZTNjMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNz L3N0cmF0bnVtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3N0cmF0bnVtLmgKQEAgLTc5 LDcgKzc5LDcgQEAgdHlwZWRlZiB1aW50MTYgU3RyYXRlZ3lOdW1iZXI7CiAjZGVmaW5lIFJU T2xkQmVsb3dTdHJhdGVneU51bWJlcgkJMjkJLyogZm9yIG9sZCBzcGVsbGluZyBvZiA8PHwg Ki8KICNkZWZpbmUgUlRPbGRBYm92ZVN0cmF0ZWd5TnVtYmVyCQkzMAkvKiBmb3Igb2xkIHNw ZWxsaW5nIG9mIHw+PiAqLwogCi0jZGVmaW5lIFJUTWF4U3RyYXRlZ3lOdW1iZXIJCQkJMzAK KyNkZWZpbmUgUlRNYXhTdHJhdGVneU51bWJlcgkJCQkzMgogCiAKICNlbmRpZgkJCQkJCQkv KiBTVFJBVE5VTV9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90cmln Z2VyLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy90cmlnZ2VyLmgKaW5kZXggOGE1YTlmZTY0 MjIuLjNkMTU2NDgzMzI1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy90cmln Z2VyLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdHJpZ2dlci5oCkBAIC00MSw2ICs0 MSw3IEBAIHR5cGVkZWYgc3RydWN0IFRyaWdnZXJEYXRhCiAJVHVwbGVzdG9yZXN0YXRlICp0 Z19vbGR0YWJsZTsKIAlUdXBsZXN0b3Jlc3RhdGUgKnRnX25ld3RhYmxlOwogCWNvbnN0IEJp dG1hcHNldCAqdGdfdXBkYXRlZGNvbHM7CisJRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBv cmFsOwogfSBUcmlnZ2VyRGF0YTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXgg OTI1OTM1MjY3MjUuLjVjMGU1YjEyZWE3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rl cy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAt NDIsMTIgKzQyLDE0IEBACiAjaW5jbHVkZSAic3RvcmFnZS9jb25kaXRpb25fdmFyaWFibGUu aCIKICNpbmNsdWRlICJ1dGlscy9oc2VhcmNoLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnll bnZpcm9ubWVudC5oIgorI2luY2x1ZGUgInV0aWxzL3JhbmdldHlwZXMuaCIKICNpbmNsdWRl ICJ1dGlscy9yZWx0cmlnZ2VyLmgiCiAjaW5jbHVkZSAidXRpbHMvc2hhcmVkdHVwbGVzdG9y ZS5oIgogI2luY2x1ZGUgInV0aWxzL3NuYXBzaG90LmgiCiAjaW5jbHVkZSAidXRpbHMvc29y dHN1cHBvcnQuaCIKICNpbmNsdWRlICJ1dGlscy90dXBsZXNvcnQuaCIKICNpbmNsdWRlICJ1 dGlscy90dXBsZXN0b3JlLmgiCisjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUuaCIKIAogc3Ry dWN0IFBsYW5TdGF0ZTsJCQkJLyogZm9yd2FyZCByZWZlcmVuY2VzIGluIHRoaXMgZmlsZSAq Lwogc3RydWN0IFBhcmFsbGVsSGFzaEpvaW5TdGF0ZTsKQEAgLTQyOCw2ICs0MzAsMjcgQEAg dHlwZWRlZiBzdHJ1Y3QgTWVyZ2VBY3Rpb25TdGF0ZQogCUV4cHJTdGF0ZSAgKm1hc193aGVu cXVhbDsJLyogV0hFTiBbTk9UXSBNQVRDSEVEIEFORCBjb25kaXRpb25zICovCiB9IE1lcmdl QWN0aW9uU3RhdGU7CiAKKy8qCisgKiBGb3JQb3J0aW9uT2ZTdGF0ZQorICoKKyAqIEV4ZWN1 dG9yIHN0YXRlIG9mIGEgRk9SIFBPUlRJT04gT0Ygb3BlcmF0aW9uLgorICovCit0eXBlZGVm IHN0cnVjdCBGb3JQb3J0aW9uT2ZTdGF0ZQoreworCU5vZGVUYWcJCXR5cGU7CisKKwljaGFy ICAgKmZwX3JhbmdlTmFtZTsJCS8qIHRoZSBjb2x1bW4vUEVSSU9EIG5hbWVkIGluIEZPUiBQ T1JUSU9OIE9GICovCisJT2lkCQlmcF9yYW5nZVR5cGU7CQkvKiB0aGUgdHlwZSBvZiB0aGUg Rk9SIFBPUlRJT04gT0YgZXhwcmVzc2lvbiAqLworCWJvb2wJZnBfaGFzUGVyaW9kOwkJLyog dHJ1ZSBpZmYgdGhpcyBpcyBhIFBFUklPRCBub3QgYSByYW5nZSAqLworCWludAkJZnBfcmFu Z2VBdHRubzsJCS8qIHRoZSBhdHRubyBvZiB0aGUgcmFuZ2UgY29sdW1uIChvciAwIGZvciBh IFBFUklPRCkgKi8KKwlpbnQJCWZwX3BlcmlvZFN0YXJ0QXR0bm87CS8qIHRoZSBhdHRubyBv ZiB0aGUgUEVSSU9EIHN0YXJ0IGNvbHVtbiAob3IgMCBmb3IgYSByYW5nZSkgKi8KKwlpbnQJ CWZwX3BlcmlvZEVuZEF0dG5vOwkJLyogdGhlIGF0dG5vIG9mIHRoZSBQRVJJT0QgZW5kIGNv bHVtbiAob3IgMCBmb3IgYSByYW5nZSkgKi8KKwlEYXR1bQlmcF90YXJnZXRSYW5nZTsJCS8q IHRoZSByYW5nZSBmcm9tIEZPUiBQT1JUSU9OIE9GICovCisJVHlwZUNhY2hlRW50cnkgKmZw X2xlZnRvdmVyc3R5cGNhY2hlOwkvKiB0eXBlIGNhY2hlIGVudHJ5IG9mIHRoZSByYW5nZSAq LworCVR1cGxlVGFibGVTbG90ICpmcF9FeGlzdGluZzsJCS8qIHNsb3QgdG8gc3RvcmUgZXhp c3RpbmcgdGFyZ2V0IHR1cGxlIGluICovCisJVHVwbGVUYWJsZVNsb3QgKmZwX0xlZnRvdmVy OwkJLyogc2xvdCB0byBzdG9yZSBsZWZ0b3ZlciAqLworfSBGb3JQb3J0aW9uT2ZTdGF0ZTsK KwogLyoKICAqIFJlc3VsdFJlbEluZm8KICAqCkBAIC01NDgsNiArNTcxLDkgQEAgdHlwZWRl ZiBzdHJ1Y3QgUmVzdWx0UmVsSW5mbwogCUxpc3QJICAgKnJpX21hdGNoZWRNZXJnZUFjdGlv bjsKIAlMaXN0CSAgICpyaV9ub3RNYXRjaGVkTWVyZ2VBY3Rpb247CiAKKwkvKiBGT1IgUE9S VElPTiBPRiBldmFsdWF0aW9uIHN0YXRlICovCisJRm9yUG9ydGlvbk9mU3RhdGUgKnJpX2Zv clBvcnRpb25PZjsKKwogCS8qIHBhcnRpdGlvbiBjaGVjayBleHByZXNzaW9uIHN0YXRlIChO VUxMIGlmIG5vdCBzZXQgdXAgeWV0KSAqLwogCUV4cHJTdGF0ZSAgKnJpX1BhcnRpdGlvbkNo ZWNrRXhwcjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGQ0M2MwODE3ZmJkLi4y NmYxOTYyODc4YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTQyLDYgKzE0Miw5 IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24g cGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCisJLyogRk9SIFBPUlRJT04g T0YgY2xhdXNlIGZvciBVUERBVEUvREVMRVRFICovCisJRm9yUG9ydGlvbk9mRXhwciAqZm9y UG9ydGlvbk9mOworCiAJLyogaGFzIGFnZ3JlZ2F0ZXMgaW4gdGxpc3Qgb3IgaGF2aW5nUXVh bCAqLwogCWJvb2wJCWhhc0FnZ3MgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUp OwogCS8qIGhhcyB3aW5kb3cgZnVuY3Rpb25zIGluIHRsaXN0ICovCkBAIC0xNTQyLDYgKzE1 NDUsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgUm93TWFya0NsYXVzZQogCWJvb2wJCXB1c2hlZERv d247CQkvKiBwdXNoZWQgZG93biBmcm9tIGhpZ2hlciBxdWVyeSBsZXZlbD8gKi8KIH0gUm93 TWFya0NsYXVzZTsKIAorLyoKKyAqIEZvclBvcnRpb25PZkNsYXVzZQorICoJCXJlcHJlc2Vu dGF0aW9uIG9mIEZPUiBQT1JUSU9OIE9GIDxwZXJpb2QtbmFtZT4gRlJPTSA8dHM+IFRPIDx0 ZT4KKyAqCQlvciBGT1IgUE9SVElPTiBPRiA8cGVyaW9kLW5hbWU+ICg8dGFyZ2V0PikKKyAq LwordHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlvbk9mQ2xhdXNlCit7CisJTm9kZVRhZwkJdHlw ZTsKKwljaGFyCSAgICpyYW5nZV9uYW1lOworCWludAkJCWxvY2F0aW9uOworCU5vZGUJICAg KnRhcmdldDsKKwlOb2RlCSAgICp0YXJnZXRfc3RhcnQ7CisJTm9kZQkgICAqdGFyZ2V0X2Vu ZDsKK30gRm9yUG9ydGlvbk9mQ2xhdXNlOworCiAvKgogICogV2l0aENsYXVzZSAtCiAgKgkg ICByZXByZXNlbnRhdGlvbiBvZiBXSVRIIGNsYXVzZQpAQCAtMTkwNSwxMiArMTkyMywxMyBA QCB0eXBlZGVmIHN0cnVjdCBJbnNlcnRTdG10CiAgKi8KIHR5cGVkZWYgc3RydWN0IERlbGV0 ZVN0bXQKIHsKLQlOb2RlVGFnCQl0eXBlOwotCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyog cmVsYXRpb24gdG8gZGVsZXRlIGZyb20gKi8KLQlMaXN0CSAgICp1c2luZ0NsYXVzZTsJLyog b3B0aW9uYWwgdXNpbmcgY2xhdXNlIGZvciBtb3JlIHRhYmxlcyAqLwotCU5vZGUJICAgKndo ZXJlQ2xhdXNlOwkvKiBxdWFsaWZpY2F0aW9ucyAqLwotCUxpc3QJICAgKnJldHVybmluZ0xp c3Q7CS8qIGxpc3Qgb2YgZXhwcmVzc2lvbnMgdG8gcmV0dXJuICovCi0JV2l0aENsYXVzZSAq d2l0aENsYXVzZTsJCS8qIFdJVEggY2xhdXNlICovCisJTm9kZVRhZwkJCQl0eXBlOworCVJh bmdlVmFyCQkgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBkZWxldGUgZnJvbSAqLwor CUZvclBvcnRpb25PZkNsYXVzZSAqZm9yUG9ydGlvbk9mOwkvKiBGT1IgUE9SVElPTiBPRiBj bGF1c2UgKi8KKwlMaXN0CQkJICAgKnVzaW5nQ2xhdXNlOwkvKiBvcHRpb25hbCB1c2luZyBj bGF1c2UgZm9yIG1vcmUgdGFibGVzICovCisJTm9kZQkJCSAgICp3aGVyZUNsYXVzZTsJLyog cXVhbGlmaWNhdGlvbnMgKi8KKwlMaXN0CQkJICAgKnJldHVybmluZ0xpc3Q7CS8qIGxpc3Qg b2YgZXhwcmVzc2lvbnMgdG8gcmV0dXJuICovCisJV2l0aENsYXVzZQkJICAgKndpdGhDbGF1 c2U7CQkvKiBXSVRIIGNsYXVzZSAqLwogfSBEZWxldGVTdG10OwogCiAvKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCkBAIC0xOTE5LDEzICsxOTM4LDE0IEBAIHR5cGVkZWYgc3RydWN0IERl bGV0ZVN0bXQKICAqLwogdHlwZWRlZiBzdHJ1Y3QgVXBkYXRlU3RtdAogewotCU5vZGVUYWcJ CXR5cGU7Ci0JUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byB1cGRhdGUg Ki8KLQlMaXN0CSAgICp0YXJnZXRMaXN0OwkJLyogdGhlIHRhcmdldCBsaXN0IChvZiBSZXNU YXJnZXQpICovCi0JTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICov Ci0JTGlzdAkgICAqZnJvbUNsYXVzZTsJCS8qIG9wdGlvbmFsIGZyb20gY2xhdXNlIGZvciBt b3JlIHRhYmxlcyAqLwotCUxpc3QJICAgKnJldHVybmluZ0xpc3Q7CS8qIGxpc3Qgb2YgZXhw cmVzc2lvbnMgdG8gcmV0dXJuICovCi0JV2l0aENsYXVzZSAqd2l0aENsYXVzZTsJCS8qIFdJ VEggY2xhdXNlICovCisJTm9kZVRhZwkJCQl0eXBlOworCVJhbmdlVmFyCQkgICAqcmVsYXRp b247CQkvKiByZWxhdGlvbiB0byB1cGRhdGUgKi8KKwlGb3JQb3J0aW9uT2ZDbGF1c2UgKmZv clBvcnRpb25PZjsJLyogRk9SIFBPUlRJT04gT0YgY2xhdXNlICovCisJTGlzdAkJCSAgICp0 YXJnZXRMaXN0OwkJLyogdGhlIHRhcmdldCBsaXN0IChvZiBSZXNUYXJnZXQpICovCisJTm9k ZQkJCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KKwlMaXN0CQkJICAg KmZyb21DbGF1c2U7CQkvKiBvcHRpb25hbCBmcm9tIGNsYXVzZSBmb3IgbW9yZSB0YWJsZXMg Ki8KKwlMaXN0CQkJICAgKnJldHVybmluZ0xpc3Q7CS8qIGxpc3Qgb2YgZXhwcmVzc2lvbnMg dG8gcmV0dXJuICovCisJV2l0aENsYXVzZQkJICAgKndpdGhDbGF1c2U7CQkvKiBXSVRIIGNs YXVzZSAqLwogfSBVcGRhdGVTdG10OwogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhdGhub2Rlcy5oCmluZGV4IDUzNDY5MmJlZTE4Li4yY2Q4YzM4OTYyYiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTIzNjQsNiArMjM2NCw3IEBAIHR5cGVkZWYgc3Ry dWN0IE1vZGlmeVRhYmxlUGF0aAogCUxpc3QJICAgKnJldHVybmluZ0xpc3RzOyAvKiBwZXIt dGFyZ2V0LXRhYmxlIFJFVFVSTklORyB0bGlzdHMgKi8KIAlMaXN0CSAgICpyb3dNYXJrczsJ CS8qIFBsYW5Sb3dNYXJrcyAobm9uLWxvY2tpbmcgb25seSkgKi8KIAlPbkNvbmZsaWN0RXhw ciAqb25jb25mbGljdDsgLyogT04gQ09ORkxJQ1QgY2xhdXNlLCBvciBOVUxMICovCisJRm9y UG9ydGlvbk9mRXhwciAqZm9yUG9ydGlvbk9mOwkvKiBGT1IgUE9SVElPTiBPRiBjbGF1c2Ug Zm9yIFVQREFURS9ERUxFVEUgKi8KIAlpbnQJCQllcHFQYXJhbTsJCS8qIElEIG9mIFBhcmFt IGZvciBFdmFsUGxhblF1YWwgcmUtZXZhbCAqLwogCUxpc3QJICAgKm1lcmdlQWN0aW9uTGlz dHM7CS8qIHBlci10YXJnZXQtdGFibGUgbGlzdHMgb2YgYWN0aW9ucyBmb3IKIAkJCQkJCQkJ CSAqIE1FUkdFICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCmluZGV4IDdmM2RiNTEwNWRiLi41 OWY1ZjI4ZWZkYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKQEAgLTI0Myw2ICsyNDMsNyBA QCB0eXBlZGVmIHN0cnVjdCBNb2RpZnlUYWJsZQogCUxpc3QJICAgKnJvd01hcmtzOwkJLyog UGxhblJvd01hcmtzIChub24tbG9ja2luZyBvbmx5KSAqLwogCWludAkJCWVwcVBhcmFtOwkJ LyogSUQgb2YgUGFyYW0gZm9yIEV2YWxQbGFuUXVhbCByZS1ldmFsICovCiAJT25Db25mbGlj dEFjdGlvbiBvbkNvbmZsaWN0QWN0aW9uOwkvKiBPTiBDT05GTElDVCBhY3Rpb24gKi8KKwlO b2RlCSAgICpmb3JQb3J0aW9uT2Y7CS8qIEZPUiBQT1JUSU9OIE9GIGNsYXVzZSBmb3IgVVBE QVRFL0RFTEVURSAqLwogCUxpc3QJICAgKmFyYml0ZXJJbmRleGVzOyAvKiBMaXN0IG9mIE9O IENPTkZMSUNUIGFyYml0ZXIgaW5kZXggT0lEcyAgKi8KIAlMaXN0CSAgICpvbkNvbmZsaWN0 U2V0OwkvKiBJTlNFUlQgT04gQ09ORkxJQ1QgRE8gVVBEQVRFIHRhcmdldGxpc3QgKi8KIAlM aXN0CSAgICpvbkNvbmZsaWN0Q29sczsgLyogdGFyZ2V0IGNvbHVtbiBudW1iZXJzIGZvciBv bkNvbmZsaWN0U2V0ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IGU1N2Q2OWY3MmUy Li5kMWNhOWYzN2YzMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTIwODksNCArMjA4 OSwzMCBAQCB0eXBlZGVmIHN0cnVjdCBPbkNvbmZsaWN0RXhwcgogCUxpc3QJICAgKmV4Y2xS ZWxUbGlzdDsJLyogdGxpc3Qgb2YgdGhlIEVYQ0xVREVEIHBzZXVkbyByZWxhdGlvbiAqLwog fSBPbkNvbmZsaWN0RXhwcjsKIAorLyotLS0tLS0tLS0tCisgKiBGb3JQb3J0aW9uT2ZFeHBy IC0gcmVwcmVzZW50cyBhIEZPUiBQT1JUSU9OIE9GIC4uLiBleHByZXNzaW9uCisgKgorICog V2Ugc2V0IHVwIGFuIGV4cHJlc3Npb24gdG8gbWFrZSBhIHJhbmdlIGZyb20gdGhlIEZST00v VE8gYm91bmRzLAorICogc28gdGhhdCB3ZSBjYW4gdXNlIHJhbmdlIG9wZXJhdG9ycyB3aXRo IGl0LgorICoKKyAqIFRoZW4gd2Ugc2V0IHVwIGFuIG92ZXJsYXBzIGV4cHJlc3Npb24gYmV0 d2VlbiB0aGF0IGFuZCB0aGUgcmFuZ2UgY29sdW1uLAorICogc28gdGhhdCB3ZSBjYW4gZmlu ZCB0aGUgcm93cyB3ZSBuZWVkIHRvIHVwZGF0ZS9kZWxldGUuCisgKgorICogSW4gdGhlIGV4 ZWN1dG9yIHdlJ2xsIGFsc28gYnVpbGQgYW4gaW50ZXJzZWN0IGV4cHJlc3Npb24gYmV0d2Vl biB0aGUKKyAqIHRhcmdldGVkIHJhbmdlIGFuZCB0aGUgcmFuZ2UgY29sdW1uLCBzbyB0aGF0 IHdlIGNhbiB1cGRhdGUgdGhlIHN0YXJ0L2VuZAorICogYm91bmRzIG9mIHRoZSBVUERBVEUn ZCByZWNvcmQuCisgKi0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgRm9yUG9ydGlv bk9mRXhwcgoreworCU5vZGVUYWcJCXR5cGU7CisJVmFyCQkgICAqcmFuZ2VWYXI7CQkJLyog UmFuZ2UgY29sdW1uICovCisJY2hhcgkgICAqcmFuZ2VfbmFtZTsJCQkvKiBSYW5nZSBuYW1l ICovCisJTm9kZQkgICAqdGFyZ2V0UmFuZ2U7CQkvKiBGT1IgUE9SVElPTiBPRiBib3VuZHMg YXMgYSByYW5nZSAqLworCU9pZAkJCXJhbmdlVHlwZTsJCQkvKiB0eXBlIG9mIHRhcmdldFJh bmdlICovCisJTm9kZQkgICAqb3ZlcmxhcHNFeHByOwkJLyogcmFuZ2UgJiYgdGFyZ2V0UmFu Z2UgKi8KKwlMaXN0CSAgICpyYW5nZVRhcmdldExpc3Q7CS8qIExpc3Qgb2YgVGFyZ2V0RW50 cnlzIHRvIHNldCB0aGUgdGltZSBjb2x1bW4ocykgKi8KKwlPaWQJCQl3aXRob3V0UG9ydGlv blByb2M7CS8qIHByb2MgZm9yIG9sZF9yYW5nZSBALSB0YXJnZXRfcmFuZ2UgKi8KK30gRm9y UG9ydGlvbk9mRXhwcjsKKwogI2VuZGlmCQkJCQkJCS8qIFBSSU1OT0RFU19IICovCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGF0aG5vZGUuaCBiL3NyYy9pbmNsdWRl L29wdGltaXplci9wYXRobm9kZS5oCmluZGV4IDk5YzJmOTU1YWFiLi4xZGE0MGJjMjAzYyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgKKysrIGIvc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3BhdGhub2RlLmgKQEAgLTI4Myw3ICsyODMsOCBAQCBleHRl cm4gTW9kaWZ5VGFibGVQYXRoICpjcmVhdGVfbW9kaWZ5dGFibGVfcGF0aChQbGFubmVySW5m byAqcm9vdCwKIAkJCQkJCQkJCQkJCUxpc3QgKnVwZGF0ZUNvbG5vc0xpc3RzLAogCQkJCQkJ CQkJCQkJTGlzdCAqd2l0aENoZWNrT3B0aW9uTGlzdHMsIExpc3QgKnJldHVybmluZ0xpc3Rz LAogCQkJCQkJCQkJCQkJTGlzdCAqcm93TWFya3MsIE9uQ29uZmxpY3RFeHByICpvbmNvbmZs aWN0LAotCQkJCQkJCQkJCQkJTGlzdCAqbWVyZ2VBY3Rpb25MaXN0cywgaW50IGVwcVBhcmFt KTsKKwkJCQkJCQkJCQkJCUxpc3QgKm1lcmdlQWN0aW9uTGlzdHMsCisJCQkJCQkJCQkJCQlG b3JQb3J0aW9uT2ZFeHByICpmb3JQb3J0aW9uT2YsIGludCBlcHFQYXJhbSk7CiBleHRlcm4g TGltaXRQYXRoICpjcmVhdGVfbGltaXRfcGF0aChQbGFubmVySW5mbyAqcm9vdCwgUmVsT3B0 SW5mbyAqcmVsLAogCQkJCQkJCQkJUGF0aCAqc3VicGF0aCwKIAkJCQkJCQkJCU5vZGUgKmxp bWl0T2Zmc2V0LCBOb2RlICpsaW1pdENvdW50LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv cGFyc2VyL2FuYWx5emUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKaW5kZXgg MjhiNjZmY2NiNDMuLjZjNzBkYWUxNDUyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJz ZXIvYW5hbHl6ZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9hbmFseXplLmgKQEAgLTQz LDcgKzQzLDggQEAgZXh0ZXJuIExpc3QgKnRyYW5zZm9ybUluc2VydFJvdyhQYXJzZVN0YXRl ICpwc3RhdGUsIExpc3QgKmV4cHJsaXN0LAogCQkJCQkJCQlMaXN0ICpzdG10Y29scywgTGlz dCAqaWNvbHVtbnMsIExpc3QgKmF0dHJub3MsCiAJCQkJCQkJCWJvb2wgc3RyaXBfaW5kaXJl Y3Rpb24pOwogZXh0ZXJuIExpc3QgKnRyYW5zZm9ybVVwZGF0ZVRhcmdldExpc3QoUGFyc2VT dGF0ZSAqcHN0YXRlLAotCQkJCQkJCQkJICAgTGlzdCAqb3JpZ1RsaXN0KTsKKwkJCQkJCQkJ CSAgIExpc3QgKm9yaWdUbGlzdCwKKwkJCQkJCQkJCSAgIEZvclBvcnRpb25PZkV4cHIgKmZv clBvcnRpb25PZik7CiBleHRlcm4gTGlzdCAqdHJhbnNmb3JtUmV0dXJuaW5nTGlzdChQYXJz ZVN0YXRlICpwc3RhdGUsIExpc3QgKnJldHVybmluZ0xpc3QsCiAJCQkJCQkJCQlQYXJzZUV4 cHJLaW5kIGV4cHJLaW5kKTsKIGV4dGVybiBRdWVyeSAqdHJhbnNmb3JtVG9wTGV2ZWxTdG10 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmF3U3RtdCAqcGFyc2VUcmVlKTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xp c3QuaAppbmRleCBkNDViMGIzODg0Mi4uYTVjYzE4Y2QzNTcgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmgKQEAgLTMzMSw2ICszMzEsNyBAQCBQR19LRVlXT1JEKCJwZXJpb2QiLCBQRVJJT0QsIFVO UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBsYWNpbmciLCBQ TEFDSU5HLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxh bnMiLCBQTEFOUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgicG9saWN5IiwgUE9MSUNZLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQ R19LRVlXT1JEKCJwb3J0aW9uIiwgUE9SVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgicG9zaXRpb24iLCBQT1NJVElPTiwgQ09MX05BTUVfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInByZWNlZGluZyIsIFBSRUNFRElORywg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicHJlY2lzaW9u IiwgUFJFQ0lTSU9OLCBDT0xfTkFNRV9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oCmluZGV4IDViNzgxZDg3YTlkLi45MjdmOTFiMzE5MSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC01Niw2ICs1Niw3IEBAIHR5cGVkZWYgZW51bSBQYXJz ZUV4cHJLaW5kCiAJRVhQUl9LSU5EX1VQREFURV9TT1VSQ0UsCS8qIFVQREFURSBhc3NpZ25t ZW50IHNvdXJjZSBpdGVtICovCiAJRVhQUl9LSU5EX1VQREFURV9UQVJHRVQsCS8qIFVQREFU RSBhc3NpZ25tZW50IHRhcmdldCBpdGVtICovCiAJRVhQUl9LSU5EX01FUkdFX1dIRU4sCQkv KiBNRVJHRSBXSEVOIFtOT1RdIE1BVENIRUQgY29uZGl0aW9uICovCisJRVhQUl9LSU5EX1VQ REFURV9QT1JUSU9OLAkvKiBVUERBVEUgRk9SIFBPUlRJT04gT0YgaXRlbSAqLwogCUVYUFJf S0lORF9HUk9VUF9CWSwJCQkvKiBHUk9VUCBCWSAqLwogCUVYUFJfS0lORF9PUkRFUl9CWSwJ CQkvKiBPUkRFUiBCWSAqLwogCUVYUFJfS0lORF9ESVNUSU5DVF9PTiwJCS8qIERJU1RJTkNU IE9OICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3Ny Yy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCmluZGV4IGU0YTIwMGIwMGVjLi40OGRmMTA3 YzFjZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKKysrIGIv c3JjL2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKQEAgLTExOSw3ICsxMTksNyBAQCBleHRl cm4gT2lkCWdldF9uZWdhdG9yKE9pZCBvcG5vKTsKIGV4dGVybiBSZWdQcm9jZWR1cmUgZ2V0 X29wcnJlc3QoT2lkIG9wbm8pOwogZXh0ZXJuIFJlZ1Byb2NlZHVyZSBnZXRfb3Byam9pbihP aWQgb3Bubyk7CiBleHRlcm4gY2hhciAqZ2V0X2Z1bmNfbmFtZShPaWQgZnVuY2lkKTsKLWV4 dGVybiBPaWQJZ2V0X2Z1bmNfbmFtZXNwYWNlKE9pZCBmdW5jaWQpOworZXh0ZXJuIE9pZAln ZXRfZnVuY19uYW1lc3BhY2UoT2lkIGZ1bmNpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVy biBPaWQJZ2V0X2Z1bmNfcmV0dHlwZShPaWQgZnVuY2lkKTsKIGV4dGVybiBpbnQJZ2V0X2Z1 bmNfbmFyZ3MoT2lkIGZ1bmNpZCk7CiBleHRlcm4gT2lkCWdldF9mdW5jX3NpZ25hdHVyZShP aWQgZnVuY2lkLCBPaWQgKiphcmd0eXBlcywgaW50ICpuYXJncyk7CkBAIC0xNDIsNiArMTQy LDggQEAgZXh0ZXJuIGNoYXIgZ2V0X3JlbF9wZXJzaXN0ZW5jZShPaWQgcmVsaWQpOwogZXh0 ZXJuIE9pZAlnZXRfdHJhbnNmb3JtX2Zyb21zcWwoT2lkIHR5cGlkLCBPaWQgbGFuZ2lkLCBM aXN0ICp0cmZ0eXBlcyk7CiBleHRlcm4gT2lkCWdldF90cmFuc2Zvcm1fdG9zcWwoT2lkIHR5 cGlkLCBPaWQgbGFuZ2lkLCBMaXN0ICp0cmZ0eXBlcyk7CiBleHRlcm4gYm9vbCBnZXRfdHlw aXNkZWZpbmVkKE9pZCB0eXBpZCk7CitleHRlcm4gY2hhciAqZ2V0X3R5cG5hbWUoT2lkIHR5 cGlkKTsKK2V4dGVybiBib29sIGdldF90eXBuYW1lX2FuZF9uYW1lc3BhY2UoT2lkIHR5cGlk LCBjaGFyICoqdHlwbmFtZSwgY2hhciAqKnR5cG5hbWVzcGFjZSk7CiBleHRlcm4gaW50MTYg Z2V0X3R5cGxlbihPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wgZ2V0X3R5cGJ5dmFsKE9pZCB0 eXBpZCk7CiBleHRlcm4gdm9pZCBnZXRfdHlwbGVuYnl2YWwoT2lkIHR5cGlkLCBpbnQxNiAq dHlwbGVuLCBib29sICp0eXBieXZhbCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvZm9yX3BvcnRpb25fb2Yub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi41YzBhNWNmNGIxYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CkBAIC0wLDAgKzEsNjg1IEBACistLSBU ZXN0cyBmb3IgVVBEQVRFL0RFTEVURSBGT1IgUE9SVElPTiBPRgorLS0gV29ya3Mgb24gbm9u LVBLIGNvbHVtbnMKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQg aW50NHJhbmdlLAorICB2YWxpZF9hdCB0c3JhbmdlLAorICBuYW1lIHRleHQgTk9UIE5VTEwK Kyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVFUworKCdbMSwyKScs ICdbMjAxOC0wMS0wMiwyMDIwLTAxLTAxKScsICdvbmUnKTsKK1VQREFURSBmb3JfcG9ydGlv bl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBU TyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ2Zvbyc7CitERUxFVEUgRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTE1 JyBUTyBOVUxMOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0OworICBpZCAg IHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAg ICAgICB8IG5hbWUgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0KKyBbMSwyKSB8IFsiTW9uIEphbiAx NSAwMDowMDowMCAyMDE4IiwiVHVlIEphbiAwMSAwMDowMDowMCAyMDE5IikgfCBmb28KKyBb MSwyKSB8IFsiVHVlIEphbiAwMiAwMDowMDowMCAyMDE4IiwiTW9uIEphbiAxNSAwMDowMDow MCAyMDE4IikgfCBvbmUKKyBbMSwyKSB8IFsiVHVlIEphbiAwMSAwMDowMDowMCAyMDE5Iiwi VHVlIEphbiAxNSAwMDowMDowMCAyMDE5IikgfCBvbmUKKygzIHJvd3MpCisKKy0tIFdvcmtz IG9uIG1vcmUgdGhhbiBvbmUgcmFuZ2UKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVz dDsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdl LAorICB2YWxpZDFfYXQgdHNyYW5nZSwKKyAgdmFsaWQyX2F0IHRzcmFuZ2UsCisgIG5hbWUg dGV4dCBOT1QgTlVMTAorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QgVkFM VUVTCisoJ1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJywgJ1syMDE1LTAxLTAx LDIwMjUtMDEtMDEpJywgJ29uZScpOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkMV9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyBOVUxMCitTRVQg bmFtZSA9ICdmb28nOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0OworICBp ZCAgIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZDFfYXQgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQyX2F0ICAgICAgICAgICAg ICAgICAgICAgICAgfCBuYW1lIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLQorIFsxLDIpIHwg WyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiLCJTYXQgRmViIDAzIDAwOjAwOjAwIDIwMTgi KSB8IFsiVGh1IEphbiAwMSAwMDowMDowMCAyMDE1IiwiV2VkIEphbiAwMSAwMDowMDowMCAy MDI1IikgfCBmb28KKyBbMSwyKSB8IFsiVHVlIEphbiAwMiAwMDowMDowMCAyMDE4IiwiTW9u IEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBbIlRodSBKYW4gMDEgMDA6MDA6MDAgMjAxNSIs IldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpIHwgb25lCisoMiByb3dzKQorCitVUERBVEUg Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWQyX2F0IEZST00gJzIw MTgtMDEtMTUnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ2Jhcic7CitTRUxFQ1QgKiBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3Q7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHZh bGlkMV9hdCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB2YWxpZDJfYXQgICAgICAgICAgICAgICAgICAgICAgICB8IG5hbWUgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tCisgWzEsMikgfCBbIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIsIlNh dCBGZWIgMDMgMDA6MDA6MDAgMjAxOCIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgi LCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKSB8IGJhcgorIFsxLDIpIHwgWyJNb24gSmFu IDE1IDAwOjAwOjAwIDIwMTgiLCJTYXQgRmViIDAzIDAwOjAwOjAwIDIwMTgiKSB8IFsiVGh1 IEphbiAwMSAwMDowMDowMCAyMDE1IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBm b28KKyBbMSwyKSB8IFsiVHVlIEphbiAwMiAwMDowMDowMCAyMDE4IiwiTW9uIEphbiAxNSAw MDowMDowMCAyMDE4IikgfCBbIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIsIldlZCBKYW4g MDEgMDA6MDA6MDAgMjAyNSIpIHwgYmFyCisgWzEsMikgfCBbIlR1ZSBKYW4gMDIgMDA6MDA6 MDAgMjAxOCIsIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIpIHwgWyJUaHUgSmFuIDAxIDAw OjAwOjAwIDIwMTUiLCJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiKSB8IG9uZQorKDQgcm93 cykKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0Yg dmFsaWQxX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7CitTRUxFQ1QgKiBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3Q7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHZh bGlkMV9hdCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB2YWxpZDJfYXQgICAgICAgICAgICAgICAgICAgICAgICB8IG5hbWUgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tCisgWzEsMikgfCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIk1v biBKYW4gMTUgMDA6MDA6MDAgMjAxOCIpIHwgWyJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgi LCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKSB8IGJhcgorIFsxLDIpIHwgWyJUdWUgSmFu IDAyIDAwOjAwOjAwIDIwMTgiLCJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiKSB8IFsiVGh1 IEphbiAwMSAwMDowMDowMCAyMDE1IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBv bmUKKyBbMSwyKSB8IFsiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IiwiU2F0IEphbiAyMCAw MDowMDowMCAyMDE4IikgfCBbIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIsIldlZCBKYW4g MDEgMDA6MDA6MDAgMjAyNSIpIHwgYmFyCisgWzEsMikgfCBbIk1vbiBKYW4gMTUgMDA6MDA6 MDAgMjAxOCIsIlNhdCBKYW4gMjAgMDA6MDA6MDAgMjAxOCIpIHwgWyJUaHUgSmFuIDAxIDAw OjAwOjAwIDIwMTUiLCJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiKSB8IGZvbworKDQgcm93 cykKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0Yg dmFsaWQyX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7CitTRUxFQ1QgKiBGUk9NIGZv cl9wb3J0aW9uX29mX3Rlc3Q7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHZh bGlkMV9hdCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB2YWxpZDJfYXQgICAgICAgICAgICAgICAgICAgICAgICB8IG5hbWUgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tCisgWzEsMikgfCBbIlR1ZSBKYW4gMDIgMDA6MDA6MDAgMjAxOCIsIk1v biBKYW4gMTUgMDA6MDA6MDAgMjAxOCIpIHwgWyJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUi LCJNb24gSmFuIDE1IDAwOjAwOjAwIDIwMTgiKSB8IG9uZQorIFsxLDIpIHwgWyJNb24gSmFu IDE1IDAwOjAwOjAwIDIwMTgiLCJTYXQgSmFuIDIwIDAwOjAwOjAwIDIwMTgiKSB8IFsiVGh1 IEphbiAwMSAwMDowMDowMCAyMDE1IiwiTW9uIEphbiAxNSAwMDowMDowMCAyMDE4IikgfCBm b28KKyBbMSwyKSB8IFsiVHVlIEphbiAwMiAwMDowMDowMCAyMDE4IiwiTW9uIEphbiAxNSAw MDowMDowMCAyMDE4IikgfCBbIk1vbiBKYW4gMTUgMDA6MDA6MDAgMjAxOCIsIlNhdCBKYW4g MjAgMDA6MDA6MDAgMjAxOCIpIHwgYmFyCisgWzEsMikgfCBbIk1vbiBKYW4gMTUgMDA6MDA6 MDAgMjAxOCIsIlNhdCBKYW4gMjAgMDA6MDA6MDAgMjAxOCIpIHwgWyJNb24gSmFuIDE1IDAw OjAwOjAwIDIwMTgiLCJTYXQgSmFuIDIwIDAwOjAwOjAwIDIwMTgiKSB8IGJhcgorKDQgcm93 cykKKworLS0gVGVzdCB3aXRoIE5VTExzIGluIHRoZSBzY2FsYXIvcmFuZ2Uga2V5IGNvbHVt bnMuCistLSBUaGlzIHdvbid0IGhhcHBlbiBpZiB0aGVyZSBpcyBhIFBSSU1BUlkgS0VZIG9y IFVOSVFVRSBjb25zdHJhaW50CistLSBidXQgRk9SIFBPUlRJT04gT0Ygc2hvdWxkbid0IHJl cXVpcmUgdGhhdC4KK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBV TkxPR0dFRCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlLAor ICB2YWxpZF9hdCB0c3JhbmdlLAorICBuYW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3Jf cG9ydGlvbl9vZl90ZXN0IFZBTFVFUworICAoJ1sxLDIpJywgTlVMTCwgJzEgbnVsbCcpLAor ICAoJ1sxLDIpJywgJygsKScsICcxIHVuYm91bmRlZCcpLAorICAoJ1sxLDIpJywgJ2VtcHR5 JywgJzEgZW1wdHknKSwKKyAgKE5VTEwsIE5VTEwsIE5VTEwpLAorICAoTlVMTCwgdHNyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDE5LTAxLTAxJyksICdudWxsIGtleScpOworVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxM IFRPIE5VTEwKKyAgU0VUIG5hbWUgPSAnTlVMTCB0byBOVUxMJzsKK1NFTEVDVCAqIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdDsKKyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgICAg dmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgbmFtZSAgICAgCistLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLQorIFsxLDIpIHwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEgbnVsbAorIFsxLDIpIHwg ZW1wdHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IDEgZW1wdHkKKyAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyBbMSwyKSB8ICgsKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBOVUxMIHRvIE5VTEwK KyAgICAgICB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4IiwiVHVlIEphbiAwMSAwMDow MDowMCAyMDE5IikgfCBOVUxMIHRvIE5VTEwKKyg1IHJvd3MpCisKK0RST1AgVEFCTEUgZm9y X3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0ICgK KyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCB0c3JhbmdlIE5PVCBOVUxM LAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisJQ09OU1RSQUlOVCBmb3JfcG9ydGlvbl9vZl9w ayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5T RVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdAorVkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4 LTAxLTAyLDIwMTgtMDItMDMpJywgJ29uZScpLAorKCdbMSwyKScsICdbMjAxOC0wMi0wMywy MDE4LTAzLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDMtMDMsMjAxOC0wNC0w NCknLCAnb25lJyksCisoJ1syLDMpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDEtMDUpJywgJ3R3 bycpLAorKCdbMyw0KScsICdbMjAxOC0wMS0wMSwpJywgJ3RocmVlJyksCisoJ1s0LDUpJywg JygsMjAxOC0wNC0wMSknLCAnZm91cicpLAorKCdbNSw2KScsICcoLCknLCAnZml2ZScpCis7 CistLQorLS0gVVBEQVRFIHRlc3RzCistLQorLS0gU2V0dGluZyB3aXRoIGEgbWlzc2luZyBj b2x1bW4gZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiBpbnZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5VTEwKK1NFVCBuYW1lID0gJ2Zv bycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgY29sdW1uIG9yIHBlcmlvZCAiaW52 YWxpZF9hdCIgb2YgcmVsYXRpb24gImZvcl9wb3J0aW9uX29mX3Rlc3QiIGRvZXMgbm90IGV4 aXN0CitMSU5FIDI6IEZPUiBQT1JUSU9OIE9GIGludmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0w MScgVE8gTlVMTAorICAgICAgICAgICAgICAgICAgICAgICBeCistLSBTZXR0aW5nIHRoZSBy YW5nZSBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5VTEwKK1NFVCB2YWxpZF9hdCA9ICdb MTk5MC0wMS0wMSwxOTk5LTAxLTAxKScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAg Y2FuJ3QgZGlyZWN0bHkgYXNzaWduIHRvICJ2YWxpZF9hdCIgaW4gYSBGT1IgUE9SVElPTiBP RiB1cGRhdGUKK0xJTkUgMzogU0VUIHZhbGlkX2F0ID0gJ1sxOTkwLTAxLTAxLDE5OTktMDEt MDEpJworICAgICAgICAgICAgXgorLS0gVGhlIHdyb25nIHR5cGUgZmFpbHMKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIDEgVE8g NAorU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgZnVu Y3Rpb24gcGdfY2F0YWxvZy50c3JhbmdlKGludGVnZXIsIGludGVnZXIpIGRvZXMgbm90IGV4 aXN0CitMSU5FIDI6IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gMSBUTyA0CisgICAg ICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBObyBmdW5jdGlvbiBtYXRjaGVzIHRoZSBn aXZlbiBuYW1lIGFuZCBhcmd1bWVudCB0eXBlcy4gWW91IG1pZ2h0IG5lZWQgdG8gYWRkIGV4 cGxpY2l0IHR5cGUgY2FzdHMuCistLSBTZXR0aW5nIHdpdGggdGltZXN0YW1wcyByZXZlcnNl ZCBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDE4LTAxLTAxJworU0VUIG5hbWUgPSAn dGhyZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKK0VSUk9SOiAgcmFuZ2UgbG93ZXIgYm91 bmQgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gcmFuZ2UgdXBwZXIgYm91bmQKKy0t IFNldHRpbmcgd2l0aCBhIHN1YnF1ZXJ5IGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAoU0VMRUNUICcyMDE4LTAxLTAx JykgVE8gJzIwMTgtMDYtMDEnCitTRVQgbmFtZSA9ICdub3BlJworV0hFUkUgaWQgPSAnWzMs NCknOworRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIEZPUiBQT1JUSU9OIE9GIGV4 cHJlc3Npb24KK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAoU0VMRUNU ICcyMDE4LTAxLTAxJykgVE8gJzIwMTgtLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgorLS0gU2V0dGluZyB3aXRoIGEgY29sdW1uIGZhaWxzCitVUERBVEUg Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBsb3dl cih2YWxpZF9hdCkgVE8gTlVMTAorU0VUIG5hbWUgPSAnbm9wZScKK1dIRVJFIGlkID0gJ1sz LDQpJzsKK0VSUk9SOiAgY2Fubm90IHVzZSBjb2x1bW4gcmVmZXJlbmNlIGluIEZPUiBQT1JU SU9OIE9GIGV4cHJlc3Npb24KK0xJTkUgMjogRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSBsb3dlcih2YWxpZF9hdCkgVE8gTlVMTAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KKy0tIFNldHRpbmcgd2l0aCB0aW1lc3RhbXBzIGVxdWFsIGRv ZXMgbm90aGluZworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJworU0VUIG5hbWUg PSAndGhyZWVeMCcKK1dIRVJFIGlkID0gJ1szLDQpJzsKKy0tIFVwZGF0aW5nIGEgZmluaXRl L29wZW4gcG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0CitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0w MScgVE8gTlVMTAorU0VUIG5hbWUgPSAndGhyZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsK Ky0tIFVwZGF0aW5nIGEgZmluaXRlL29wZW4gcG9ydGlvbiB3aXRoIGFuIG9wZW4vZmluaXRl IHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0wMy0wMScKK1NFVCBuYW1lID0gJ3RocmVlXjIn CitXSEVSRSBpZCA9ICdbMyw0KSc7CistLSBVcGRhdGluZyBhbiBvcGVuL2Zpbml0ZSBwb3J0 aW9uIHdpdGggYW4gb3Blbi9maW5pdGUgdGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAyLTAx JworU0VUIG5hbWUgPSAnZm91cl4xJworV0hFUkUgaWQgPSAnWzQsNSknOworLS0gVXBkYXRp bmcgYW4gb3Blbi9maW5pdGUgcG9ydGlvbiB3aXRoIGEgZmluaXRlL29wZW4gdGFyZ2V0CitV UERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxNy0wMS0wMScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm91cl4yJworV0hFUkUgaWQg PSAnWzQsNSknOworLS0gVXBkYXRpbmcgYSBmaW5pdGUvZmluaXRlIHBvcnRpb24gd2l0aCBh biBleGFjdCBmaXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE3LTAxLTAxJyBUTyAnMjAxOC0wMi0wMScKK1NFVCBuYW1l ID0gJ2ZvdXJeMycKK1dIRVJFIGlkID0gJ1s0LDUpJzsKKy0tIFVwZGF0aW5nIGFuIGVuY2xv c2VkIHNwYW4KK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NIE5VTEwgVE8gTlVMTAorU0VUIG5hbWUgPSAndHdvXjInCitXSEVSRSBp ZCA9ICdbMiwzKSc7CistLSBVcGRhdGluZyBhbiBvcGVuL29wZW4gcG9ydGlvbiB3aXRoIGEg ZmluaXRlL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAxJyBUTyAnMjAxOS0wMS0wMScK K1NFVCBuYW1lID0gJ2ZpdmVeMicKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIFVwZGF0aW5n IGFuIGVuY2xvc2VkIHNwYW4gd2l0aCBzZXBhcmF0ZSBwcm90cnVkaW5nIHNwYW5zCitVUERB VEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxNy0wMS0wMScgVE8gJzIwMjAtMDEtMDEnCitTRVQgbmFtZSA9ICdmaXZlXjMnCitXSEVS RSBpZCA9ICdbNSw2KSc7CistLSBVcGRhdGluZyBtdWx0aXBsZSBlbmNsb3NlZCBzcGFucwor VVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gTlVMTCBUTyBOVUxMCitTRVQgbmFtZSA9ICdvbmVeMicKK1dIRVJFIGlkID0gJ1sxLDIp JzsKKy0tIFVwZGF0aW5nIHdpdGggYSBzaGlmdC9yZWR1Y2UgY29uZmxpY3QKK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdAorICBGUk9NICcy MDE4LTAzLTAxJyBBVCBUSU1FIFpPTkUgSU5URVJWQUwgJzEnIEhPVVIgVE8gTUlOVVRFCisg IFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUgPSAnb25lXjMnCitXSEVSRSBpZCA9ICdbMSwy KSc7CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQKKyAgRlJPTSAnMjAxOC0wMy0wMScgQVQgVElNRSBaT05FIElOVEVSVkFMICcyJyBIT1VS CisgIFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUgPSAnb25lXjQnCitXSEVSRSBpZCA9ICdb MSwyKSc7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICInMjAxOS0wMS0wMSci CitMSU5FIDQ6ICAgVE8gJzIwMTktMDEtMDEnCisgICAgICAgICAgICAgXgorVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gKCcy MDE4LTAzLTAxJyBBVCBUSU1FIFpPTkUgSU5URVJWQUwgJzInIEhPVVIpCisgIFRPICcyMDE5 LTAxLTAxJworU0VUIG5hbWUgPSAnb25lXjQnCitXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBX aXRoIGEgZGlyZWN0IHRhcmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0ICh0c3JhbmdlKCcyMDE4LTAzLTEwJywgJzIwMTgtMDMtMTcn KSkKK1NFVCBuYW1lID0gJ29uZV41JworV0hFUkUgaWQgPSAnWzEsMiknOworLS0gVXBkYXRp bmcgdGhlIG5vbi1yYW5nZSBwYXJ0IG9mIHRoZSBQSzoKK1VQREFURSBmb3JfcG9ydGlvbl9v Zl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAyLTE1JyBUTyBO VUxMCitTRVQgaWQgPSAnWzYsNyknCitXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBVUERBVEUg d2l0aCBubyBXSEVSRSBjbGF1c2UKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDMwLTAxLTAxJyBUTyBOVUxMCitTRVQgbmFt ZSA9IG5hbWUgfHwgJyonOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgICAg dmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIG5hbWUgICAKKy0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KKyBbMSwyKSB8IFsiVHVlIEphbiAwMiAwMDowMDowMCAyMDE4Iiwi U2F0IEZlYiAwMyAwMDowMDowMCAyMDE4IikgfCBvbmVeMgorIFsxLDIpIHwgWyJTYXQgRmVi IDAzIDAwOjAwOjAwIDIwMTgiLCJUaHUgRmViIDE1IDAwOjAwOjAwIDIwMTgiKSB8IG9uZV4y CisgWzIsMykgfCBbIk1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIsIkZyaSBKYW4gMDUgMDA6 MDA6MDAgMjAxOCIpIHwgdHdvXjIKKyBbMyw0KSB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAy MDE4IiwiVGh1IE1hciAwMSAwMDowMDowMCAyMDE4IikgfCB0aHJlZV4yCisgWzMsNCkgfCBb IlRodSBNYXIgMDEgMDA6MDA6MDAgMjAxOCIsIkZyaSBKdW4gMDEgMDA6MDA6MDAgMjAxOCIp IHwgdGhyZWUKKyBbMyw0KSB8IFsiRnJpIEp1biAwMSAwMDowMDowMCAyMDE4IiwiVHVlIEph biAwMSAwMDowMDowMCAyMDMwIikgfCB0aHJlZV4xCisgWzMsNCkgfCBbIlR1ZSBKYW4gMDEg MDA6MDA6MDAgMjAzMCIsKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdGhyZWVeMSoK KyBbNCw1KSB8ICgsIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAxNyIpICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCBmb3VyXjEKKyBbNCw1KSB8IFsiU3VuIEphbiAwMSAwMDowMDowMCAy MDE3IiwiVGh1IEZlYiAwMSAwMDowMDowMCAyMDE4IikgfCBmb3VyXjMKKyBbNCw1KSB8IFsi VGh1IEZlYiAwMSAwMDowMDowMCAyMDE4IiwiU3VuIEFwciAwMSAwMDowMDowMCAyMDE4Iikg fCBmb3VyXjIKKyBbNSw2KSB8ICgsIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAxNyIpICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCBmaXZlCisgWzUsNikgfCBbIlN1biBKYW4gMDEgMDA6 MDA6MDAgMjAxNyIsIk1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIpIHwgZml2ZV4zCisgWzUs NikgfCBbIk1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAg MjAxOSIpIHwgZml2ZV4zCisgWzUsNikgfCBbIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAxOSIs IldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyMCIpIHwgZml2ZV4zCisgWzUsNikgfCBbIldlZCBK YW4gMDEgMDA6MDA6MDAgMjAyMCIsIlR1ZSBKYW4gMDEgMDA6MDA6MDAgMjAzMCIpIHwgZml2 ZQorIFs1LDYpIHwgWyJUdWUgSmFuIDAxIDAwOjAwOjAwIDIwMzAiLCkgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IGZpdmUqCisgWzYsNykgfCBbIlRodSBGZWIgMTUgMDA6MDA6MDAg MjAxOCIsIlRodSBNYXIgMDEgMDg6MDE6MDAgMjAxOCIpIHwgb25lXjIKKyBbNiw3KSB8IFsi VGh1IE1hciAwMSAwODowMTowMCAyMDE4IiwiVGh1IE1hciAwMSAxMDowMDowMCAyMDE4Iikg fCBvbmVeMworIFs2LDcpIHwgWyJUaHUgTWFyIDAxIDEwOjAwOjAwIDIwMTgiLCJTYXQgTWFy IDAzIDAwOjAwOjAwIDIwMTgiKSB8IG9uZV40CisgWzYsNykgfCBbIlNhdCBNYXIgMDMgMDA6 MDA6MDAgMjAxOCIsIlNhdCBNYXIgMTAgMDA6MDA6MDAgMjAxOCIpIHwgb25lXjQKKyBbNiw3 KSB8IFsiU2F0IE1hciAxMCAwMDowMDowMCAyMDE4IiwiU2F0IE1hciAxNyAwMDowMDowMCAy MDE4IikgfCBvbmVeNQorIFs2LDcpIHwgWyJTYXQgTWFyIDE3IDAwOjAwOjAwIDIwMTgiLCJX ZWQgQXByIDA0IDAwOjAwOjAwIDIwMTgiKSB8IG9uZV40CisoMjIgcm93cykKKworLS0KKy0t IERFTEVURSB0ZXN0cworLS0KKy0tIERlbGV0aW5nIHdpdGggYSBtaXNzaW5nIGNvbHVtbiBm YWlscworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0Yg aW52YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNSw2 KSc7CitFUlJPUjogIGNvbHVtbiBvciBwZXJpb2QgImludmFsaWRfYXQiIG9mIHJlbGF0aW9u ICJmb3JfcG9ydGlvbl9vZl90ZXN0IiBkb2VzIG5vdCBleGlzdAorTElORSAyOiBGT1IgUE9S VElPTiBPRiBpbnZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPIE5VTEwKKyAgICAgICAg ICAgICAgICAgICAgICAgXgorLS0gRGVsZXRpbmcgd2l0aCB0aW1lc3RhbXBzIHJldmVyc2Vk IGZhaWxzCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyAnMjAxOC0wMS0wMScKK1dIRVJFIGlk ID0gJ1szLDQpJzsKK0VSUk9SOiAgcmFuZ2UgbG93ZXIgYm91bmQgbXVzdCBiZSBsZXNzIHRo YW4gb3IgZXF1YWwgdG8gcmFuZ2UgdXBwZXIgYm91bmQKKy0tIERlbGV0aW5nIHdpdGggdGlt ZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhpbmcKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPICcy MDE4LTA0LTAxJworV0hFUkUgaWQgPSAnWzMsNCknOworLS0gRGVsZXRpbmcgd2l0aCBhIGNs b3NlZC9jbG9zZWQgdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyAnMjAyMC0wNi0w MScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIERlbGV0aW5nIHdpdGggYSBjbG9zZWQvb3Bl biB0YXJnZXQKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRPIE5VTEwKK1dIRVJFIGlkID0gJ1sz LDQpJzsKKy0tIERlbGV0aW5nIHdpdGggYW4gb3Blbi9jbG9zZWQgdGFyZ2V0CitERUxFVEUg RlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N IE5VTEwgVE8gJzIwMTgtMDItMDgnCitXSEVSRSBpZCA9ICdbMSwyKSc7CistLSBEZWxldGlu ZyB3aXRoIGFuIG9wZW4vb3BlbiB0YXJnZXQKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29m X3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCitXSEVS RSBpZCA9ICdbNiw3KSc7CistLSBERUxFVEUgd2l0aCBubyBXSEVSRSBjbGF1c2UKK0RFTEVU RSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMjUtMDEtMDEnIFRPIE5VTEw7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29m X3Rlc3QgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICAgICB8ICBuYW1lICAgCist LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0KKyBbMSwyKSB8IFsiVGh1IEZlYiAwOCAwMDowMDowMCAy MDE4IiwiVGh1IEZlYiAxNSAwMDowMDowMCAyMDE4IikgfCBvbmVeMgorIFsyLDMpIHwgWyJN b24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiLCJGcmkgSmFuIDA1IDAwOjAwOjAwIDIwMTgiKSB8 IHR3b14yCisgWzMsNCkgfCBbIk1vbiBKYW4gMDEgMDA6MDA6MDAgMjAxOCIsIlRodSBNYXIg MDEgMDA6MDA6MDAgMjAxOCIpIHwgdGhyZWVeMgorIFszLDQpIHwgWyJUaHUgTWFyIDAxIDAw OjAwOjAwIDIwMTgiLCJTdW4gQXByIDAxIDAwOjAwOjAwIDIwMTgiKSB8IHRocmVlCisgWzQs NSkgfCAoLCJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciKSAgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgZm91cl4xCisgWzQsNSkgfCBbIlN1biBKYW4gMDEgMDA6MDA6MDAgMjAxNyIs IlRodSBGZWIgMDEgMDA6MDA6MDAgMjAxOCIpIHwgZm91cl4zCisgWzQsNSkgfCBbIlRodSBG ZWIgMDEgMDA6MDA6MDAgMjAxOCIsIlN1biBBcHIgMDEgMDA6MDA6MDAgMjAxOCIpIHwgZm91 cl4yCisgWzUsNikgfCAoLCJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciKSAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgZml2ZQorIFs1LDYpIHwgWyJTdW4gSmFuIDAxIDAwOjAwOjAw IDIwMTciLCJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiKSB8IGZpdmVeMworIFs1LDYpIHwg WyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiLCJGcmkgSnVuIDAxIDAwOjAwOjAwIDIwMTgi KSB8IGZpdmVeMworIFs1LDYpIHwgWyJNb24gSnVuIDAxIDAwOjAwOjAwIDIwMjAiLCJXZWQg SmFuIDAxIDAwOjAwOjAwIDIwMjUiKSB8IGZpdmUKKygxMSByb3dzKQorCistLSBVUERBVEUg Li4uIFJFVFVSTklORyByZXR1cm5zIG9ubHkgdGhlIHVwZGF0ZWQgdmFsdWVzIChub3QgdGhl IGluc2VydGVkIHNpZGUgdmFsdWVzKQorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDItMDEnIFRPICcyMDE4LTAyLTE1 JworU0VUIG5hbWUgPSAndGhyZWVeMycKK1dIRVJFIGlkID0gJ1szLDQpJworUkVUVVJOSU5H ICo7CisgIGlkICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAg ICAgICAgICAgICAgICAgIHwgIG5hbWUgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsz LDQpIHwgWyJUaHUgRmViIDAxIDAwOjAwOjAwIDIwMTgiLCJUaHUgRmViIDE1IDAwOjAwOjAw IDIwMTgiKSB8IHRocmVlXjMKKygxIHJvdykKKworLS0gdGVzdCB0aGF0IHdlIHJ1biB0cmln Z2VycyBvbiB0aGUgVVBEQVRFL0RFTEVURWQgcm93IGFuZCB0aGUgSU5TRVJUZWQgcm93cwor Q1JFQVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKQorUkVUVVJOUyB0cmln Z2VyCitBUworJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJSAlICUgb2YgJScsIFRHX1dI RU4sIFRHX09QLCBORVcudmFsaWRfYXQsIE9MRC52YWxpZF9hdDsKKyAgSUYgVEdfT1AgPSAn REVMRVRFJyBUSEVOCisgICAgUkVUVVJOIE9MRDsKKyAgRUxTRQorICAgIFJFVFVSTiBORVc7 CisgIEVORCBJRjsKK0VORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIFRSSUdH RVIgdHJnX2Zvcl9wb3J0aW9uX29mX2JlZm9yZQorICBCRUZPUkUgSU5TRVJUIE9SIFVQREFU RSBPUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgRUFDSCBST1cKKyAg RVhFQ1VURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCk7CitDUkVBVEUgVFJJ R0dFUiB0cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXIKKyAgQUZURVIgSU5TRVJUIE9SIFVQREFU RSBPUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgRUFDSCBST1cKKyAg RVhFQ1VURSBGVU5DVElPTiBmb3JfcG9ydGlvbl9vZl90cmlnZ2VyKCk7CitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAyMS0w MS0wMScgVE8gJzIwMjItMDEtMDEnCitTRVQgbmFtZSA9ICdmaXZlXjQnCitXSEVSRSBpZCA9 ICdbNSw2KSc7CitOT1RJQ0U6ICBCRUZPUkUgVVBEQVRFIFsiRnJpIEphbiAwMSAwMDowMDow MCAyMDIxIiwiU2F0IEphbiAwMSAwMDowMDowMCAyMDIyIikgb2YgWyJNb24gSnVuIDAxIDAw OjAwOjAwIDIwMjAiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKQorTk9USUNFOiAgQkVG T1JFIElOU0VSVCBbIk1vbiBKdW4gMDEgMDA6MDA6MDAgMjAyMCIsIkZyaSBKYW4gMDEgMDA6 MDA6MDAgMjAyMSIpIG9mIDxOVUxMPgorTk9USUNFOiAgQkVGT1JFIElOU0VSVCBbIlNhdCBK YW4gMDEgMDA6MDA6MDAgMjAyMiIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpIG9mIDxO VUxMPgorTk9USUNFOiAgQUZURVIgSU5TRVJUIFsiTW9uIEp1biAwMSAwMDowMDowMCAyMDIw IiwiRnJpIEphbiAwMSAwMDowMDowMCAyMDIxIikgb2YgPE5VTEw+CitOT1RJQ0U6ICBBRlRF UiBJTlNFUlQgWyJTYXQgSmFuIDAxIDAwOjAwOjAwIDIwMjIiLCJXZWQgSmFuIDAxIDAwOjAw OjAwIDIwMjUiKSBvZiA8TlVMTD4KK05PVElDRTogIEFGVEVSIFVQREFURSBbIkZyaSBKYW4g MDEgMDA6MDA6MDAgMjAyMSIsIlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAyMiIpIG9mIFsiTW9u IEp1biAwMSAwMDowMDowMCAyMDIwIiwiV2VkIEphbiAwMSAwMDowMDowMCAyMDI1IikKK0RF TEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMjMtMDEtMDEnIFRPICcyMDI0LTAxLTAxJworV0hFUkUgaWQgPSAnWzUsNikn OworTk9USUNFOiAgQkVGT1JFIERFTEVURSA8TlVMTD4gb2YgWyJTYXQgSmFuIDAxIDAwOjAw OjAwIDIwMjIiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKQorTk9USUNFOiAgQkVGT1JF IElOU0VSVCBbIlNhdCBKYW4gMDEgMDA6MDA6MDAgMjAyMiIsIlN1biBKYW4gMDEgMDA6MDA6 MDAgMjAyMyIpIG9mIDxOVUxMPgorTk9USUNFOiAgQkVGT1JFIElOU0VSVCBbIk1vbiBKYW4g MDEgMDA6MDA6MDAgMjAyNCIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpIG9mIDxOVUxM PgorTk9USUNFOiAgQUZURVIgSU5TRVJUIFsiU2F0IEphbiAwMSAwMDowMDowMCAyMDIyIiwi U3VuIEphbiAwMSAwMDowMDowMCAyMDIzIikgb2YgPE5VTEw+CitOT1RJQ0U6ICBBRlRFUiBJ TlNFUlQgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMjQiLCJXZWQgSmFuIDAxIDAwOjAwOjAw IDIwMjUiKSBvZiA8TlVMTD4KK05PVElDRTogIEFGVEVSIERFTEVURSA8TlVMTD4gb2YgWyJT YXQgSmFuIDAxIDAwOjAwOjAwIDIwMjIiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjUiKQor U0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgbmFtZSAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCisgWzEs MikgfCBbIlRodSBGZWIgMDggMDA6MDA6MDAgMjAxOCIsIlRodSBGZWIgMTUgMDA6MDA6MDAg MjAxOCIpIHwgb25lXjIKKyBbMiwzKSB8IFsiTW9uIEphbiAwMSAwMDowMDowMCAyMDE4Iiwi RnJpIEphbiAwNSAwMDowMDowMCAyMDE4IikgfCB0d29eMgorIFszLDQpIHwgWyJNb24gSmFu IDAxIDAwOjAwOjAwIDIwMTgiLCJUaHUgRmViIDAxIDAwOjAwOjAwIDIwMTgiKSB8IHRocmVl XjIKKyBbMyw0KSB8IFsiVGh1IEZlYiAwMSAwMDowMDowMCAyMDE4IiwiVGh1IEZlYiAxNSAw MDowMDowMCAyMDE4IikgfCB0aHJlZV4zCisgWzMsNCkgfCBbIlRodSBGZWIgMTUgMDA6MDA6 MDAgMjAxOCIsIlRodSBNYXIgMDEgMDA6MDA6MDAgMjAxOCIpIHwgdGhyZWVeMgorIFszLDQp IHwgWyJUaHUgTWFyIDAxIDAwOjAwOjAwIDIwMTgiLCJTdW4gQXByIDAxIDAwOjAwOjAwIDIw MTgiKSB8IHRocmVlCisgWzQsNSkgfCAoLCJTdW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciKSAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgZm91cl4xCisgWzQsNSkgfCBbIlN1biBKYW4g MDEgMDA6MDA6MDAgMjAxNyIsIlRodSBGZWIgMDEgMDA6MDA6MDAgMjAxOCIpIHwgZm91cl4z CisgWzQsNSkgfCBbIlRodSBGZWIgMDEgMDA6MDA6MDAgMjAxOCIsIlN1biBBcHIgMDEgMDA6 MDA6MDAgMjAxOCIpIHwgZm91cl4yCisgWzUsNikgfCAoLCJTdW4gSmFuIDAxIDAwOjAwOjAw IDIwMTciKSAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgZml2ZQorIFs1LDYpIHwgWyJT dW4gSmFuIDAxIDAwOjAwOjAwIDIwMTciLCJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiKSB8 IGZpdmVeMworIFs1LDYpIHwgWyJNb24gSmFuIDAxIDAwOjAwOjAwIDIwMTgiLCJGcmkgSnVu IDAxIDAwOjAwOjAwIDIwMTgiKSB8IGZpdmVeMworIFs1LDYpIHwgWyJNb24gSnVuIDAxIDAw OjAwOjAwIDIwMjAiLCJGcmkgSmFuIDAxIDAwOjAwOjAwIDIwMjEiKSB8IGZpdmUKKyBbNSw2 KSB8IFsiRnJpIEphbiAwMSAwMDowMDowMCAyMDIxIiwiU2F0IEphbiAwMSAwMDowMDowMCAy MDIyIikgfCBmaXZlXjQKKyBbNSw2KSB8IFsiU2F0IEphbiAwMSAwMDowMDowMCAyMDIyIiwi U3VuIEphbiAwMSAwMDowMDowMCAyMDIzIikgfCBmaXZlCisgWzUsNikgfCBbIk1vbiBKYW4g MDEgMDA6MDA6MDAgMjAyNCIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyNSIpIHwgZml2ZQor KDE2IHJvd3MpCisKK0RST1AgRlVOQ1RJT04gZm9yX3BvcnRpb25fb2ZfdHJpZ2dlciBDQVND QURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMKK0RFVEFJ TDogIGRyb3AgY2FzY2FkZXMgdG8gdHJpZ2dlciB0cmdfZm9yX3BvcnRpb25fb2ZfYmVmb3Jl IG9uIHRhYmxlIGZvcl9wb3J0aW9uX29mX3Rlc3QKK2Ryb3AgY2FzY2FkZXMgdG8gdHJpZ2dl ciB0cmdfZm9yX3BvcnRpb25fb2ZfYWZ0ZXIgb24gdGFibGUgZm9yX3BvcnRpb25fb2ZfdGVz dAorLS0gVHJpZ2dlcnMgd2l0aCBhIGN1c3RvbSB0cmFuc2l0aW9uIHRhYmxlIG5hbWU6CitE Uk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRp b25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgZGF0ZXJhbmdlLAor ICBuYW1lIHRleHQKKyk7CitJTlNFUlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0IFZBTFVF UyAoJ1sxLDIpJywgJ1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpJywgJ29uZScpOworQ1JFQVRF IEZVTkNUSU9OIGR1bXBfdHJpZ2dlcigpCitSRVRVUk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxw Z3NxbCBBUworJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnVEdfT1AgPSAlJywgVEdfT1A7 CisgIElGIFRHX09QID0gJ0lOU0VSVCcgVEhFTgorICAgIFJBSVNFIE5PVElDRSAndHJpZ2dl ciA9ICUsIFRHX0xFVkVMID0gJSwgTkVXIHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBU R19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG5ld190YWJsZTo6dGV4dCwgJywgJyBPUkRF UiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOworICBFTFNJRiBUR19PUCA9ICdVUERBVEUnIFRI RU4KKyAgICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIgPSAlLCBUR19MRVZFTCA9ICUsIE9MRCB0 YWJsZSA9ICUsIE5FVyB0YWJsZSA9ICUnLAorICAgICAgVEdfTkFNRSwgVEdfTEVWRUwsCisg ICAgICAoU0VMRUNUIHN0cmluZ19hZ2cob2xkX3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZ IGlkKSBGUk9NIG9sZF90YWJsZSksCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cobmV3X3Rh YmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG5ld190YWJsZSk7CisgIEVMU0lG IFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJBSVNFIE5PVElDRSAndHJpZ2dlciA9ICUs IFRHX0xFVkVMID0gJSwgT0xEIHRhYmxlID0gJScsCisgICAgICBUR19OQU1FLCBUR19MRVZF TCwgKFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBp ZCkgRlJPTSBvbGRfdGFibGUpOworICBFTkQgSUY7CisgIFJFVFVSTiBOVUxMOworRU5EOwor JCQ7CitDUkVBVEUgVFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X2luc2VydF90cmlnCitB RlRFUiBJTlNFUlQgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgTkVXIFRB QkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBf dHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9pbnNlcnRf dHJpZ19zdG10CitBRlRFUiBJTlNFUlQgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJF TkNJTkcgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNV VEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRp b25fb2ZfdGVzdF91cGRhdGVfdHJpZworQUZURVIgVVBEQVRFIE9OIGZvcl9wb3J0aW9uX29m X3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUgTkVXIFRBQkxFIEFT IG5ld190YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dl cigpOworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZ19z dG10CitBRlRFUiBVUERBVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcg T0xEIFRBQkxFIEFTIG9sZF90YWJsZSBORVcgVEFCTEUgQVMgbmV3X3RhYmxlCitGT1IgRUFD SCBTVEFURU1FTlQgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7CitDUkVBVEUg VFJJR0dFUiBmb3JfcG9ydGlvbl9vZl90ZXN0X2RlbGV0ZV90cmlnCitBRlRFUiBERUxFVEUg T04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFTIG9sZF90 YWJsZQorRk9SIEVBQ0ggUk9XIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOwor Q1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZ19zdG10CitB RlRFUiBERUxFVEUgT04gZm9yX3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRB QkxFIEFTIG9sZF90YWJsZQorRk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJF IGR1bXBfdHJpZ2dlcigpOworQkVHSU47CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAor ICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0w MS0wMScKKyAgU0VUIG5hbWUgPSAnMjAxOC0wMS0xNV90b18yMDE5LTAxLTAxJzsKK05PVElD RTogIFRHX09QID0gSU5TRVJUCitOT1RJQ0U6ICB0cmlnZ2VyID0gZm9yX3BvcnRpb25fb2Zf dGVzdF9pbnNlcnRfdHJpZywgVEdfTEVWRUwgPSBST1csIE5FVyB0YWJsZSA9ICgiWzEsMiki LCJbMDEtMDEtMjAxOCwwMS0xNS0yMDE4KSIsb25lKSwgKCJbMSwyKSIsIlswMS0wMS0yMDE5 LDAxLTAxLTIwMjApIixvbmUpCitOT1RJQ0U6ICBUR19PUCA9IElOU0VSVAorTk9USUNFOiAg dHJpZ2dlciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWcsIFRHX0xFVkVMID0g Uk9XLCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAxLTIwMTgsMDEtMTUtMjAxOCkiLG9u ZSksICgiWzEsMikiLCJbMDEtMDEtMjAxOSwwMS0wMS0yMDIwKSIsb25lKQorTk9USUNFOiAg VEdfT1AgPSBVUERBVEUKK05PVElDRTogIHRyaWdnZXIgPSBmb3JfcG9ydGlvbl9vZl90ZXN0 X3VwZGF0ZV90cmlnLCBUR19MRVZFTCA9IFJPVywgT0xEIHRhYmxlID0gKCJbMSwyKSIsIlsw MS0wMS0yMDE4LDAxLTAxLTIwMjApIixvbmUpLCBORVcgdGFibGUgPSAoIlsxLDIpIiwiWzAx LTE1LTIwMTgsMDEtMDEtMjAxOSkiLDIwMTgtMDEtMTVfdG9fMjAxOS0wMS0wMSkKK05PVElD RTogIFRHX09QID0gVVBEQVRFCitOT1RJQ0U6ICB0cmlnZ2VyID0gZm9yX3BvcnRpb25fb2Zf dGVzdF91cGRhdGVfdHJpZ19zdG10LCBUR19MRVZFTCA9IFNUQVRFTUVOVCwgT0xEIHRhYmxl ID0gKCJbMSwyKSIsIlswMS0wMS0yMDE4LDAxLTAxLTIwMjApIixvbmUpLCBORVcgdGFibGUg PSAoIlsxLDIpIiwiWzAxLTE1LTIwMTgsMDEtMDEtMjAxOSkiLDIwMTgtMDEtMTVfdG9fMjAx OS0wMS0wMSkKK1JPTExCQUNLOworQkVHSU47CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9v Zl90ZXN0CisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyAnMjAxOC0w MS0yMSc7CitOT1RJQ0U6ICBUR19PUCA9IElOU0VSVAorTk9USUNFOiAgdHJpZ2dlciA9IGZv cl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWcsIFRHX0xFVkVMID0gUk9XLCBORVcgdGFi bGUgPSAoIlsxLDIpIiwiWzAxLTIxLTIwMTgsMDEtMDEtMjAyMCkiLG9uZSkKK05PVElDRTog IFRHX09QID0gREVMRVRFCitOT1RJQ0U6ICB0cmlnZ2VyID0gZm9yX3BvcnRpb25fb2ZfdGVz dF9kZWxldGVfdHJpZywgVEdfTEVWRUwgPSBST1csIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJb MDEtMDEtMjAxOCwwMS0wMS0yMDIwKSIsb25lKQorTk9USUNFOiAgVEdfT1AgPSBERUxFVEUK K05PVElDRTogIHRyaWdnZXIgPSBmb3JfcG9ydGlvbl9vZl90ZXN0X2RlbGV0ZV90cmlnX3N0 bXQsIFRHX0xFVkVMID0gU1RBVEVNRU5ULCBPTEQgdGFibGUgPSAoIlsxLDIpIiwiWzAxLTAx LTIwMTgsMDEtMDEtMjAyMCkiLG9uZSkKK1JPTExCQUNLOworQkVHSU47CitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwg VE8gJzIwMTgtMDEtMDInCisgIFNFVCBuYW1lID0gJ05VTExfdG9fMjAxOC0wMS0wMSc7CitO T1RJQ0U6ICBUR19PUCA9IElOU0VSVAorTk9USUNFOiAgdHJpZ2dlciA9IGZvcl9wb3J0aW9u X29mX3Rlc3RfaW5zZXJ0X3RyaWcsIFRHX0xFVkVMID0gUk9XLCBORVcgdGFibGUgPSAoIlsx LDIpIiwiWzAxLTAyLTIwMTgsMDEtMDEtMjAyMCkiLG9uZSkKK05PVElDRTogIFRHX09QID0g VVBEQVRFCitOT1RJQ0U6ICB0cmlnZ2VyID0gZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVf dHJpZywgVEdfTEVWRUwgPSBST1csIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJbMDEtMDEtMjAx OCwwMS0wMS0yMDIwKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlswMS0wMS0yMDE4 LDAxLTAyLTIwMTgpIixOVUxMX3RvXzIwMTgtMDEtMDEpCitOT1RJQ0U6ICBUR19PUCA9IFVQ REFURQorTk9USUNFOiAgdHJpZ2dlciA9IGZvcl9wb3J0aW9uX29mX3Rlc3RfdXBkYXRlX3Ry aWdfc3RtdCwgVEdfTEVWRUwgPSBTVEFURU1FTlQsIE9MRCB0YWJsZSA9ICgiWzEsMikiLCJb MDEtMDEtMjAxOCwwMS0wMS0yMDIwKSIsb25lKSwgTkVXIHRhYmxlID0gKCJbMSwyKSIsIlsw MS0wMS0yMDE4LDAxLTAyLTIwMTgpIixOVUxMX3RvXzIwMTgtMDEtMDEpCitST0xMQkFDSzsK Ky0tIFRlc3Qgd2l0aCBtdWx0aXJhbmdlcworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29m X3Rlc3QyICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCBkYXRlbXVs dGlyYW5nZSBOT1QgTlVMTCwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorCUNPTlNUUkFJTlQg Zm9yX3BvcnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitW QUxVRVMKKygnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDIn LCAnMjAxOC0wMi0wMyknKSwgZGF0ZXJhbmdlKCcyMDE4LTAyLTA0JywgJzIwMTgtMDMtMDMn KSksICdvbmUnKSwKKygnWzEsMiknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDMtMDMnLCAnMjAxOC0wNC0wNCknKSksICdvbmUnKSwKKygnWzIsMyknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wNS0wMSknKSksICd0d28nKSwK KygnWzMsNCknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCBudWxs KSksICd0aHJlZScpOworOworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTEw JywgJzIwMTgtMDItMTAnKSwgZGF0ZXJhbmdlKCcyMDE4LTAzLTA1JywgJzIwMTgtMDUtMDEn KSkpCitTRVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKK0RFTEVURSBG Uk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTE1JywgJzIwMTgtMDItMTUnKSwgZGF0 ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgtMDMtMTUnKSkpCitXSEVSRSBpZCA9ICdbMiwz KSc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFs aWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBuYW1lICAKKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IHtbMDEtMDItMjAx OCwwMS0xMC0yMDE4KSxbMDItMTAtMjAxOCwwMy0wMy0yMDE4KX0gICAgICAgICAgICAgICAg ICAgICAgICAgfCBvbmUKKyBbMSwyKSB8IHtbMDEtMTAtMjAxOCwwMi0wMy0yMDE4KSxbMDIt MDQtMjAxOCwwMi0xMC0yMDE4KX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBvbmVeMQor IFsxLDIpIHwge1swMy0wMy0yMDE4LDAzLTA1LTIwMTgpfSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IG9uZQorIFsxLDIpIHwge1swMy0wNS0y MDE4LDA0LTA0LTIwMTgpfSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IG9uZV4xCisgWzIsMykgfCB7WzAxLTAxLTIwMTgsMDEtMTUtMjAxOCks WzAyLTE1LTIwMTgsMDMtMDEtMjAxOCksWzAzLTE1LTIwMTgsMDUtMDEtMjAxOCl9IHwgdHdv CisgWzMsNCkgfCB7WzAxLTAxLTIwMTgsKX0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgdGhyZWUKKyg2IHJvd3MpCisKK0RS T1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CistLSBUZXN0IHdpdGggYSBjdXN0b20g cmFuZ2UgdHlwZQorQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1k YXRlKTsKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MiAoCisgIGlkIGludDRy YW5nZSBOT1QgTlVMTCwKKyAgdmFsaWRfYXQgbXlkYXRlcmFuZ2UgTk9UIE5VTEwsCisgIG5h bWUgdGV4dCBOT1QgTlVMTCwKKwlDT05TVFJBSU5UIGZvcl9wb3J0aW9uX29mX3Rlc3QyX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitJTlNF UlQgSU5UTyBmb3JfcG9ydGlvbl9vZl90ZXN0MgorVkFMVUVTCisoJ1sxLDIpJywgJ1syMDE4 LTAxLTAyLDIwMTgtMDItMDMpJywgJ29uZScpLAorKCdbMSwyKScsICdbMjAxOC0wMi0wMywy MDE4LTAzLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDMtMDMsMjAxOC0wNC0w NCknLCAnb25lJyksCisoJ1syLDMpJywgJ1syMDE4LTAxLTAxLDIwMTgtMDUtMDEpJywgJ3R3 bycpLAorKCdbMyw0KScsICdbMjAxOC0wMS0wMSwpJywgJ3RocmVlJyk7Cis7CitVUERBVEUg Zm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMTAnIFRPICcyMDE4LTAyLTEwJworU0VUIG5hbWUgPSAnb25lXjEnCitXSEVSRSBp ZCA9ICdbMSwyKSc7CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTgtMDItMTUnCitX SEVSRSBpZCA9ICdbMiwzKSc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Qy IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LQorIFsxLDIpIHwgWzAxLTAyLTIwMTgsMDEtMTAtMjAxOCkgfCBvbmUKKyBbMSwyKSB8IFsw MS0xMC0yMDE4LDAyLTAzLTIwMTgpIHwgb25lXjEKKyBbMSwyKSB8IFswMi0wMy0yMDE4LDAy LTEwLTIwMTgpIHwgb25lXjEKKyBbMSwyKSB8IFswMi0xMC0yMDE4LDAzLTAzLTIwMTgpIHwg b25lCisgWzEsMikgfCBbMDMtMDMtMjAxOCwwNC0wNC0yMDE4KSB8IG9uZQorIFsyLDMpIHwg WzAxLTAxLTIwMTgsMDEtMTUtMjAxOCkgfCB0d28KKyBbMiwzKSB8IFswMi0xNS0yMDE4LDA1 LTAxLTIwMTgpIHwgdHdvCisgWzMsNCkgfCBbMDEtMDEtMjAxOCwpICAgICAgICAgICB8IHRo cmVlCisoOCByb3dzKQorCitEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworRFJP UCBUWVBFIG15ZGF0ZXJhbmdlOworLS0gVGVzdCBGT1IgUE9SVElPTiBPRiBhZ2FpbnN0IGEg cGFydGl0aW9uZWQgdGFibGUuCistLSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIGhhcyB0aGUg c2FtZSBhdHRudW1zIGFzIHRoZSByb290CistLSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIGhh cyB0aGUgZGlmZmVyZW50IGF0dG51bXMgZnJvbSB0aGUgcm9vdAorLS0gdGVtcG9yYWxfcGFy dGl0aW9uZWRfNSBoYXMgdGhlIGRpZmZlcmVudCBhdHRudW1zIHRvbywgYnV0IHJldmVyc2Vk CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgKAorCWlkIGludDRyYW5nZSwK Kwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX3Bhcml0aW9uZWRfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF8xIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFM VUVTIElOICgnWzEsMiknLCAnWzIsMyknKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF8zIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVT IElOICgnWzMsNCknLCAnWzQsNSknKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF81IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgVkFMVUVTIElO ICgnWzUsNiknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVk IERFVEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfMzsKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgRFJPUCBDT0xVTU4gaWQsIERST1AgQ09MVU1OIHZh bGlkX2F0OworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBBREQgQ09MVU1O IGlkIGludDRyYW5nZSBOT1QgTlVMTCwgQUREIENPTFVNTiB2YWxpZF9hdCBkYXRlcmFuZ2Ug Tk9UIE5VTEw7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBBVFRBQ0ggUEFS VElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzMgRk9SIFZBTFVFUyBJTiAoJ1szLDQpJywg J1s0LDUpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBERVRBQ0ggUEFS VElUSU9OIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzU7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF81IERST1AgQ09MVU1OIGlkLCBEUk9QIENPTFVNTiB2YWxpZF9hdDsKK0FM VEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgQUREIENPTFVNTiB2YWxpZF9hdCBk YXRlcmFuZ2UgTk9UIE5VTEwsIEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgQVRUQUNIIFBBUlRJVElPTiB0ZW1w b3JhbF9wYXJ0aXRpb25lZF81IEZPUiBWQUxVRVMgSU4gKCdbNSw2KScsICdbNiw3KScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQgVkFMVUVTCisgICgnWzEsMiknLCBk YXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnb25lJyksCisgICgnWzMs NCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAndGhyZWUnKSwK KyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdm aXZlJyk7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkOworICBpZCAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBuYW1lICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tCisgWzEsMikgfCBbMDEtMDEtMjAwMCwwMS0wMS0yMDEw KSB8IG9uZQorIFszLDQpIHwgWzAxLTAxLTIwMDAsMDEtMDEtMjAxMCkgfCB0aHJlZQorIFs1 LDYpIHwgWzAxLTAxLTIwMDAsMDEtMDEtMjAxMCkgfCBmaXZlCisoMyByb3dzKQorCistLSBV cGRhdGUgd2l0aG91dCBtb3Zpbmcgd2l0aGluIHBhcnRpdGlvbiAxCitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMy0w MScgVE8gJzIwMDAtMDQtMDEnCisgIFNFVCBuYW1lID0gJ29uZV4xJworICBXSEVSRSBpZCA9 ICdbMSwyKSc7CistLSBVcGRhdGUgd2l0aG91dCBtb3Zpbmcgd2l0aGluIHBhcnRpdGlvbiAz CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wMy0wMScgVE8gJzIwMDAtMDQtMDEnCisgIFNFVCBuYW1lID0gJ3RocmVl XjEnCisgIFdIRVJFIGlkID0gJ1szLDQpJzsKKy0tIFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3 aXRoaW4gcGFydGl0aW9uIDUKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAzLTAxJyBUTyAnMjAwMC0wNC0wMScKKyAg U0VUIG5hbWUgPSAnZml2ZV4xJworICBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBNb3ZlIGZy b20gcGFydGl0aW9uIDEgdG8gcGFydGl0aW9uIDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRp b25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAw MC0wNy0wMScKKyAgU0VUIG5hbWUgPSAnb25lXjInLAorICAgICAgaWQgPSAnWzQsNSknCisg IFdIRVJFIGlkID0gJ1sxLDIpJzsKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gMyB0byBwYXJ0 aXRpb24gMQorVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9 ICd0aHJlZV4yJywKKyAgICAgIGlkID0gJ1syLDMpJworICBXSEVSRSBpZCA9ICdbMyw0KSc7 CistLSBNb3ZlIGZyb20gcGFydGl0aW9uIDUgdG8gcGFydGl0aW9uIDMKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2 LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAgU0VUIG5hbWUgPSAnZml2ZV4yJywKKyAgICAgIGlk ID0gJ1szLDQpJworICBXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBVcGRhdGUgYWxsIHBhcnRp dGlvbnMgYXQgb25jZSAoZWFjaCB3aXRoIGxlZnRvdmVycykKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWQgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgfCAgbmFtZSAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLQorIFsxLDIpIHwgWzAxLTAxLTIwMDAsMDMtMDEtMjAw MCkgfCBvbmUKKyBbMSwyKSB8IFswMy0wMS0yMDAwLDA0LTAxLTIwMDApIHwgb25lXjEKKyBb MSwyKSB8IFswNC0wMS0yMDAwLDA2LTAxLTIwMDApIHwgb25lCisgWzEsMikgfCBbMDctMDEt MjAwMCwwMS0wMS0yMDEwKSB8IG9uZQorIFsyLDMpIHwgWzA2LTAxLTIwMDAsMDctMDEtMjAw MCkgfCB0aHJlZV4yCisgWzMsNCkgfCBbMDEtMDEtMjAwMCwwMy0wMS0yMDAwKSB8IHRocmVl CisgWzMsNCkgfCBbMDMtMDEtMjAwMCwwNC0wMS0yMDAwKSB8IHRocmVlXjEKKyBbMyw0KSB8 IFswNC0wMS0yMDAwLDA2LTAxLTIwMDApIHwgdGhyZWUKKyBbMyw0KSB8IFswNi0wMS0yMDAw LDA3LTAxLTIwMDApIHwgZml2ZV4yCisgWzMsNCkgfCBbMDctMDEtMjAwMCwwMS0wMS0yMDEw KSB8IHRocmVlCisgWzQsNSkgfCBbMDYtMDEtMjAwMCwwNy0wMS0yMDAwKSB8IG9uZV4yCisg WzUsNikgfCBbMDEtMDEtMjAwMCwwMy0wMS0yMDAwKSB8IGZpdmUKKyBbNSw2KSB8IFswMy0w MS0yMDAwLDA0LTAxLTIwMDApIHwgZml2ZV4xCisgWzUsNikgfCBbMDQtMDEtMjAwMCwwNi0w MS0yMDAwKSB8IGZpdmUKKyBbNSw2KSB8IFswNy0wMS0yMDAwLDAxLTAxLTIwMTApIHwgZml2 ZQorKDE1IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfMSBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8ICBuYW1lICAgCistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCisgWzEsMikgfCBbMDEtMDEtMjAwMCwwMy0wMS0yMDAwKSB8IG9uZQorIFsxLDIpIHwg WzAzLTAxLTIwMDAsMDQtMDEtMjAwMCkgfCBvbmVeMQorIFsxLDIpIHwgWzA0LTAxLTIwMDAs MDYtMDEtMjAwMCkgfCBvbmUKKyBbMSwyKSB8IFswNy0wMS0yMDAwLDAxLTAxLTIwMTApIHwg b25lCisgWzIsMykgfCBbMDYtMDEtMjAwMCwwNy0wMS0yMDAwKSB8IHRocmVlXjIKKyg1IHJv d3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgIG5hbWUgICB8ICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgCistLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdGhy ZWUgICB8IFszLDQpIHwgWzAxLTAxLTIwMDAsMDMtMDEtMjAwMCkKKyB0aHJlZV4xIHwgWzMs NCkgfCBbMDMtMDEtMjAwMCwwNC0wMS0yMDAwKQorIHRocmVlICAgfCBbMyw0KSB8IFswNC0w MS0yMDAwLDA2LTAxLTIwMDApCisgZml2ZV4yICB8IFszLDQpIHwgWzA2LTAxLTIwMDAsMDct MDEtMjAwMCkKKyB0aHJlZSAgIHwgWzMsNCkgfCBbMDctMDEtMjAwMCwwMS0wMS0yMDEwKQor IG9uZV4yICAgfCBbNCw1KSB8IFswNi0wMS0yMDAwLDA3LTAxLTIwMDApCisoNiByb3dzKQor CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICBuYW1lICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgIGlkICAgCist LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBmaXZlICAgfCBb MDEtMDEtMjAwMCwwMy0wMS0yMDAwKSB8IFs1LDYpCisgZml2ZV4xIHwgWzAzLTAxLTIwMDAs MDQtMDEtMjAwMCkgfCBbNSw2KQorIGZpdmUgICB8IFswNC0wMS0yMDAwLDA2LTAxLTIwMDAp IHwgWzUsNikKKyBmaXZlICAgfCBbMDctMDEtMjAwMCwwMS0wMS0yMDEwKSB8IFs1LDYpCiso NCByb3dzKQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggOWQwNDdiMjFiODguLjli NjcyMmM0ZDU4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9z YW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5v dXQKQEAgLTE5NDQsNiArMTk0NCw3IEBAIFdIRVJFIGExLmFtb3BmYW1pbHkgPSAwIE9SIGEx LmFtb3BsZWZ0dHlwZSA9IDAgT1IgYTEuYW1vcHJpZ2h0dHlwZSA9IDAKIFNFTEVDVCBhMS5h bW9wZmFtaWx5LCBhMS5hbW9wc3RyYXRlZ3kKIEZST00gcGdfYW1vcCBhcyBhMQogV0hFUkUg Tk9UICgoYTEuYW1vcHB1cnBvc2UgPSAncycgQU5EIGExLmFtb3Bzb3J0ZmFtaWx5ID0gMCkg T1IKKyAgICAgICAgICAgKGExLmFtb3BwdXJwb3NlID0gJ3AnIEFORCBhMS5hbW9wc29ydGZh bWlseSA9IDApIE9SCiAgICAgICAgICAgIChhMS5hbW9wcHVycG9zZSA9ICdvJyBBTkQgYTEu YW1vcHNvcnRmYW1pbHkgPD4gMCkpOwogIGFtb3BmYW1pbHkgfCBhbW9wc3RyYXRlZ3kgCiAt LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHJpdmlsZWdlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3ByaXZpbGVnZXMub3V0CmluZGV4IGViNGI3NjJlYTEwLi42ZDUwMjA4YjBjOCAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wcml2aWxlZ2VzLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3ByaXZpbGVnZXMub3V0CkBAIC05ODUsNiArOTg1 LDI0IEBAIEVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImIiIG9mIHJlbGF0aW9uICJl cnJ0c3RfcGFydF8yIiB2aW9sYXRlcyBub3QtbnVsbCBjCiBERVRBSUw6ICBGYWlsaW5nIHJv dyBjb250YWlucyAoYSwgYiwgYykgPSAoYWFhYSwgbnVsbCwgY2NjKS4KIFNFVCBTRVNTSU9O IEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwogRFJPUCBUQUJMRSBlcnJ0c3Q7 CistLSB0ZXN0IGNvbHVtbi1sZXZlbCBwcml2aWxlZ2VzIG9uIHRoZSByYW5nZS9QRVJJT0Qg dXNlZCBpbiBGT1IgUE9SVElPTiBPRgorU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdy ZXNzX3ByaXZfdXNlcjE7CitDUkVBVEUgVEFCTEUgdDEgKAorICBjMSBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IHRzcmFuZ2UsCisJQ09OU1RSQUlOVCB0MXBrIFBSSU1BUlkgS0VZIChjMSwg dmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitHUkFOVCBTRUxFQ1QgT04gdDEgVE8g cmVncmVzc19wcml2X3VzZXIyOworR1JBTlQgU0VMRUNUIE9OIHQxIFRPIHJlZ3Jlc3NfcHJp dl91c2VyMzsKK0dSQU5UIFVQREFURSAoYzEpIE9OIHQxIFRPIHJlZ3Jlc3NfcHJpdl91c2Vy MjsKK0dSQU5UIFVQREFURSAoYzEsIHZhbGlkX2F0KSBPTiB0MSBUTyByZWdyZXNzX3ByaXZf dXNlcjM7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMjsK K1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAxLTAxJyBU TyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMpJzsKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHRhYmxlIHQxCitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3Nf cHJpdl91c2VyMzsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMpJzsKK1NFVCBTRVNT SU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOworRFJPUCBUQUJMRSB0MTsK IC0tIHRlc3QgY29sdW1uLWxldmVsIHByaXZpbGVnZXMgd2hlbiBpbnZvbHZlZCB3aXRoIERF TEVURQogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CiBB TFRFUiBUQUJMRSBhdGVzdDYgQUREIENPTFVNTiB0aHJlZSBpbnRlZ2VyOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC91cGRhdGFibGVfdmlld3Mub3V0CmluZGV4IDcxM2Jm ODRjNzAyLi4xMTBmMzgxYmZjZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC91cGRhdGFibGVfdmlld3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvdXBkYXRhYmxlX3ZpZXdzLm91dApAQCAtMzU2OCw2ICszNTY4LDM4IEBAIHNlbGVjdCAq IGZyb20gdXZfaW9jdV90YWI7CiAKIGRyb3AgdmlldyB1dl9pb2N1X3ZpZXc7CiBkcm9wIHRh YmxlIHV2X2lvY3VfdGFiOworLS0gQ2hlY2sgVVBEQVRFIEZPUiBQT1JUSU9OIE9GIHdvcmtz IGNvcnJlY3RseQorY3JlYXRlIHRhYmxlIHV2X2Zwb190YWIgKGlkIGludDRyYW5nZSwgdmFs aWRfYXQgdHNyYW5nZSwgYiBmbG9hdCwKKyAgICBjb25zdHJhaW50IHBrX3V2X2Zwb190YWIg cHJpbWFyeSBrZXkgKGlkLCB2YWxpZF9hdCB3aXRob3V0IG92ZXJsYXBzKSk7CitpbnNlcnQg aW50byB1dl9mcG9fdGFiIHZhbHVlcyAoJ1sxLDFdJywgJ1syMDIwLTAxLTAxLCAyMDMwLTAx LTAxKScsIDApOworY3JlYXRlIHZpZXcgdXZfZnBvX3ZpZXcgYXMKKyAgICBzZWxlY3QgYiwg YisxIGFzIGMsIHZhbGlkX2F0LCBpZCwgJzIuMCc6OnRleHQgYXMgdHdvIGZyb20gdXZfZnBv X3RhYjsKK2luc2VydCBpbnRvIHV2X2Zwb192aWV3IChpZCwgdmFsaWRfYXQsIGIpIHZhbHVl cyAoJ1sxLDFdJywgJ1syMDEwLTAxLTAxLCAyMDIwLTAxLTAxKScsIDEpOworc2VsZWN0ICog ZnJvbSB1dl9mcG9fdmlldzsKKyBiIHwgYyB8ICAgICAgICAgICAgICAgICAgICAgICAgdmFs aWRfYXQgICAgICAgICAgICAgICAgICAgICAgICAgfCAgaWQgICB8IHR3byAKKy0tLSstLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0rLS0tLS0KKyAwIHwgMSB8IFsiV2VkIEphbiAwMSAwMDowMDowMCAyMDIw IiwiVHVlIEphbiAwMSAwMDowMDowMCAyMDMwIikgfCBbMSwyKSB8IDIuMAorIDEgfCAyIHwg WyJGcmkgSmFuIDAxIDAwOjAwOjAwIDIwMTAiLCJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAi KSB8IFsxLDIpIHwgMi4wCisoMiByb3dzKQorCit1cGRhdGUgdXZfZnBvX3ZpZXcgZm9yIHBv cnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8gJzIwMjAtMDEtMDEnIHNl dCBiID0gMiB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192aWV3 OworIGIgfCBjIHwgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAg ICAgICAgICAgICAgICB8ICBpZCAgIHwgdHdvIAorLS0tKy0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LQorIDAgfCAxIHwgWyJXZWQgSmFuIDAxIDAwOjAwOjAwIDIwMjAiLCJUdWUgSmFuIDAxIDAw OjAwOjAwIDIwMzAiKSB8IFsxLDIpIHwgMi4wCisgMiB8IDMgfCBbIlRodSBKYW4gMDEgMDA6 MDA6MDAgMjAxNSIsIldlZCBKYW4gMDEgMDA6MDA6MDAgMjAyMCIpIHwgWzEsMikgfCAyLjAK KyAxIHwgMiB8IFsiRnJpIEphbiAwMSAwMDowMDowMCAyMDEwIiwiVGh1IEphbiAwMSAwMDow MDowMCAyMDE1IikgfCBbMSwyKSB8IDIuMAorKDMgcm93cykKKworZGVsZXRlIGZyb20gdXZf ZnBvX3ZpZXcgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNy0wMS0wMScgdG8g JzIwMjItMDEtMDEnIHdoZXJlIGlkID0gJ1sxLDFdJzsKK3NlbGVjdCAqIGZyb20gdXZfZnBv X3ZpZXc7CisgYiB8IGMgfCAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIGlkICAgfCB0d28gCistLS0rLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tCisgMSB8IDIgfCBbIkZyaSBKYW4gMDEgMDA6MDA6MDAgMjAxMCIsIlRodSBKYW4g MDEgMDA6MDA6MDAgMjAxNSIpIHwgWzEsMikgfCAyLjAKKyAwIHwgMSB8IFsiU2F0IEphbiAw MSAwMDowMDowMCAyMDIyIiwiVHVlIEphbiAwMSAwMDowMDowMCAyMDMwIikgfCBbMSwyKSB8 IDIuMAorIDIgfCAzIHwgWyJUaHUgSmFuIDAxIDAwOjAwOjAwIDIwMTUiLCJTdW4gSmFuIDAx IDAwOjAwOjAwIDIwMTciKSB8IFsxLDIpIHwgMi4wCisoMyByb3dzKQorCiAtLSBUZXN0IHdo b2xlLXJvdyByZWZlcmVuY2VzIHRvIHRoZSB2aWV3CiBjcmVhdGUgdGFibGUgdXZfaW9jdV90 YWIgKGEgaW50IHVuaXF1ZSwgYiB0ZXh0KTsKIGNyZWF0ZSB2aWV3IHV2X2lvY3VfdmlldyBh cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJs YXBzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5v dXQKaW5kZXggNDdiNGZmMDU2NzkuLmFiMTI1NjI2NTM0IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKQEAgLTM2MCw2ICszNjAs MzYgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkK ICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdb Nyw4KScsICdmb28nKSwKICAgKCdbMiwzKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0wMScsICcy MDEwLTAxLTAxJyksICdbOSwxMCknLCAnYmFyJykKIDsKK1VQREFURSB0ZW1wb3JhbDMgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wNS0wMScgVE8gJzIwMDAtMDctMDEn CisgIFNFVCBuYW1lID0gbmFtZSB8fCAnMSc7CitVUERBVEUgdGVtcG9yYWwzIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDQtMDEnIFRPICcyMDAwLTA2LTAxJworICBT RVQgbmFtZSA9IG5hbWUgfHwgJzInCisgIFdIRVJFIGlkID0gJ1syLDMpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgIGlkMiAgIHwgbmFtZSAgCistLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwgWzIwMDAtMDEt MDEsMjAwMC0wNS0wMSkgfCBbNyw4KSAgfCBmb28KKyBbMSwyKSB8IFsyMDAwLTA1LTAxLDIw MDAtMDctMDEpIHwgWzcsOCkgIHwgZm9vMQorIFsxLDIpIHwgWzIwMDAtMDctMDEsMjAxMC0w MS0wMSkgfCBbNyw4KSAgfCBmb28KKyBbMiwzKSB8IFsyMDAwLTAxLTAxLDIwMDAtMDQtMDEp IHwgWzksMTApIHwgYmFyCisgWzIsMykgfCBbMjAwMC0wNC0wMSwyMDAwLTA1LTAxKSB8IFs5 LDEwKSB8IGJhcjIKKyBbMiwzKSB8IFsyMDAwLTA1LTAxLDIwMDAtMDYtMDEpIHwgWzksMTAp IHwgYmFyMTIKKyBbMiwzKSB8IFsyMDAwLTA2LTAxLDIwMDAtMDctMDEpIHwgWzksMTApIHwg YmFyMQorIFsyLDMpIHwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkgfCBbOSwxMCkgfCBiYXIK Kyg4IHJvd3MpCisKKy0tIGNvbmZsaWN0aW5nIGlkIG9ubHk6CitJTlNFUlQgSU5UTyB0ZW1w b3JhbDMgKGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdbMSwyKScs IGRhdGVyYW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJyksICdbOCw5KScsICdmb28z Jyk7CitFUlJPUjogIGNvbmZsaWN0aW5nIGtleSB2YWx1ZSB2aW9sYXRlcyBleGNsdXNpb24g Y29uc3RyYWludCAidGVtcG9yYWwzX3BrIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQp PShbMSwyKSwgWzIwMDUtMDEtMDEsMjAwNi0wMS0wMSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0 aW5nIGtleSAoaWQsIHZhbGlkX2F0KT0oWzEsMiksIFsyMDAwLTA3LTAxLDIwMTAtMDEtMDEp KS4KKy0tIGNvbmZsaWN0aW5nIGlkMiBvbmx5OgorSU5TRVJUIElOVE8gdGVtcG9yYWwzIChp ZCwgdmFsaWRfYXQsIGlkMiwgbmFtZSkKKyAgVkFMVUVTCisgICgnWzMsNCknLCBkYXRlcmFu Z2UoJzIwMDUtMDEtMDEnLCAnMjAxMC0wMS0wMScpLCAnWzksMTApJywgJ2JhcjMnKTsKK0VS Uk9SOiAgY29uZmxpY3Rpbmcga2V5IHZhbHVlIHZpb2xhdGVzIGV4Y2x1c2lvbiBjb25zdHJh aW50ICJ0ZW1wb3JhbDNfdW5pcSIKK0RFVEFJTDogIEtleSAoaWQyLCB2YWxpZF9hdCk9KFs5 LDEwKSwgWzIwMDUtMDEtMDEsMjAxMC0wMS0wMSkpIGNvbmZsaWN0cyB3aXRoIGV4aXN0aW5n IGtleSAoaWQyLCB2YWxpZF9hdCk9KFs5LDEwKSwgWzIwMDAtMDctMDEsMjAxMC0wMS0wMSkp LgogRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAtLQogLS0gdGVzdCBjaGFuZ2luZyB0aGUgUEsn cyBkZXBlbmRlbmNpZXMKQEAgLTQxMiw2ICs0NDIsMzYgQEAgU0VMRUNUICogRlJPTSB0cDIg T1JERVIgQlkgaWQsIHZhbGlkX2F0OwogIFszLDQpIHwgWzIwMDAtMDEtMDEsMjAxMC0wMS0w MSkgfCB0aHJlZQogKDEgcm93KQogCitVUERBVEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisg IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAy LTE1JworICBTRVQgbmFtZSA9ICdvbmUyJworICBXSEVSRSBpZCA9ICdbMSwyKSc7CitVUERB VEUgIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMDAtMDItMjAnIFRPICcyMDAwLTAyLTI1JworICBTRVQgaWQgPSAnWzQsNSknCisg IFdIRVJFIG5hbWUgPSAnb25lJzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMi0wMS0wMScgVE8gJzIwMDMtMDEt MDEnCisgIFNFVCBpZCA9ICdbMiwzKScKKyAgV0hFUkUgbmFtZSA9ICd0aHJlZSc7CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDAwLTAxLTE1JyBUTyAnMjAwMC0wMi0xNScKKyAgV0hFUkUgaWQgPSAnWzMs NCknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IG5hbWUgIAor LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0KKyBbMSwyKSB8IFsy MDAwLTAxLTAxLDIwMDAtMDEtMTUpIHwgb25lCisgWzEsMikgfCBbMjAwMC0wMS0xNSwyMDAw LTAyLTAxKSB8IG9uZTIKKyBbMSwyKSB8IFsyMDAwLTAyLTAxLDIwMDAtMDItMTUpIHwgb25l MgorIFsxLDIpIHwgWzIwMDAtMDItMTUsMjAwMC0wMi0yMCkgfCBvbmUKKyBbMSwyKSB8IFsy MDAwLTAyLTI1LDIwMDAtMDMtMDEpIHwgb25lCisgWzIsMykgfCBbMjAwMi0wMS0wMSwyMDAz LTAxLTAxKSB8IHRocmVlCisgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDAwLTAxLTE1KSB8IHRo cmVlCisgWzMsNCkgfCBbMjAwMC0wMi0xNSwyMDAyLTAxLTAxKSB8IHRocmVlCisgWzMsNCkg fCBbMjAwMy0wMS0wMSwyMDEwLTAxLTAxKSB8IHRocmVlCisgWzQsNSkgfCBbMjAwMC0wMi0y MCwyMDAwLTAyLTI1KSB8IG9uZQorKDEwIHJvd3MpCisKIERST1AgVEFCTEUgdGVtcG9yYWxf cGFydGl0aW9uZWQ7CiAtLSB0ZW1wb3JhbCBVTklRVUU6CiBDUkVBVEUgVEFCTEUgdGVtcG9y YWxfcGFydGl0aW9uZWQgKApAQCAtNDQ3LDYgKzUwNywzNiBAQCBTRUxFQ1QgKiBGUk9NIHRw MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAgWzMsNCkgfCBbMjAwMC0wMS0wMSwyMDEwLTAx LTAxKSB8IHRocmVlCiAoMSByb3cpCiAKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQK KyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8gJzIwMDAt MDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKK1VQ REFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNFVCBpZCA9ICdbNCw1KScK KyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRpb25lZAor ICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAnMjAwMy0w MS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1lID0gJ3RocmVlJzsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVSRSBpZCA9ICdb Myw0KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgbmFtZSAg CistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsxLDIpIHwg WzIwMDAtMDEtMDEsMjAwMC0wMS0xNSkgfCBvbmUKKyBbMSwyKSB8IFsyMDAwLTAxLTE1LDIw MDAtMDItMDEpIHwgb25lMgorIFsxLDIpIHwgWzIwMDAtMDItMDEsMjAwMC0wMi0xNSkgfCBv bmUyCisgWzEsMikgfCBbMjAwMC0wMi0xNSwyMDAwLTAyLTIwKSB8IG9uZQorIFsxLDIpIHwg WzIwMDAtMDItMjUsMjAwMC0wMy0wMSkgfCBvbmUKKyBbMiwzKSB8IFsyMDAyLTAxLTAxLDIw MDMtMDEtMDEpIHwgdGhyZWUKKyBbMyw0KSB8IFsyMDAwLTAxLTAxLDIwMDAtMDEtMTUpIHwg dGhyZWUKKyBbMyw0KSB8IFsyMDAwLTAyLTE1LDIwMDItMDEtMDEpIHwgdGhyZWUKKyBbMyw0 KSB8IFsyMDAzLTAxLTAxLDIwMTAtMDEtMDEpIHwgdGhyZWUKKyBbNCw1KSB8IFsyMDAwLTAy LTIwLDIwMDAtMDItMjUpIHwgb25lCisoMTAgcm93cykKKwogRFJPUCBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZDsKIC0tCiAtLSB0ZXN0IEZLIGRlcGVuZGVuY2llcwpAQCAtNzk0LDYg Kzg4NCwxOCBAQCBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJF IGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCist LSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBv cmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8g JzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7Cist LSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEw JworU0VUIGlkID0gJ1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19ybmcycm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5n IEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2 LTAyLTAxJykKQEAgLTgzMCw2ICs5MzIsMTggQEAgVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQg aWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKIEVSUk9SOiAgdXBkYXRlIG9yIGRl bGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25z dHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtf cm5nMnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAx LTAxLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBv cmFsX2ZrX3JuZzJybmciLgorLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMg b2theToKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0gJ1s3LDgpJworV0hF UkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitVUERB VEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAx LTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1 LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5n IiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5n X2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQs IHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCBy ZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgogLS0gdGhlbiBk ZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBz dWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzMsNCknOwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC04NTcsOSArOTcxLDIyIEBAIERFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0g ZGF0ZXJhbmdlKCcyMDE4LTAyLTAxCiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyk7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBv cmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMg c3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KKy0t IGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDIn IFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVz dCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUg aWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1w b3JhbF9ybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2Zr X3JuZzJybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgorREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCiAt LSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsg ZGVsZXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMyw0KSc7CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAn WzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAy LTAxJyk7CistLSBjbGVhbiB1cDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcg V0hFUkUgcGFyZW50X2lkID0gJ1s1LDYpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBX SEVSRSBpZCBJTiAoJ1s1LDYpJyk7CiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0 ZXMgUkVTVFJJQ1QKIC0tCkBAIC04ODMsOSArMTAxMCwyMiBAQCBERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxOC0wMi0wMQogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScp OwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9ybmciIHZp b2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3JuZzJybmdfZmsi IG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVy ZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIuCistLSBkZWxldGluZyBh biB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5n CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0w MS0wMycKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZh aWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYp JzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2 aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2Zr IiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZh bGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZl cmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciLgogLS0gdGhlbiBkZWxl dGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNj ZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMs NCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0g Y2xlYW4gdXA6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVu dF9pZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4g KCdbNSw2KScpOwogLS0KIC0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAtLQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggZTQ4Y2I0YjdhMzguLjRiZGJl YjcyZWMwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTQ4LDcgKzQ4 LDcgQEAgdGVzdDogY3JlYXRlX2luZGV4IGNyZWF0ZV9pbmRleF9zcGdpc3QgY3JlYXRlX3Zp ZXcgaW5kZXhfaW5jbHVkaW5nIGluZGV4X2luY2x1ZGkKICMgLS0tLS0tLS0tLQogIyBBbm90 aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IGNyZWF0 ZV9hZ2dyZWdhdGUgY3JlYXRlX2Z1bmN0aW9uX3NxbCBjcmVhdGVfY2FzdCBjb25zdHJhaW50 cyB0cmlnZ2VycyBzZWxlY3QgaW5oZXJpdCB0eXBlZF90YWJsZSB2YWN1dW0gZHJvcF9pZl9l eGlzdHMgdXBkYXRhYmxlX3ZpZXdzIHJvbGVhdHRyaWJ1dGVzIGNyZWF0ZV9hbSBoYXNoX2Z1 bmMgZXJyb3JzIGluZmluaXRlX3JlY3Vyc2UKK3Rlc3Q6IGNyZWF0ZV9hZ2dyZWdhdGUgY3Jl YXRlX2Z1bmN0aW9uX3NxbCBjcmVhdGVfY2FzdCBjb25zdHJhaW50cyB0cmlnZ2VycyBzZWxl Y3QgaW5oZXJpdCB0eXBlZF90YWJsZSB2YWN1dW0gZHJvcF9pZl9leGlzdHMgdXBkYXRhYmxl X3ZpZXdzIHJvbGVhdHRyaWJ1dGVzIGNyZWF0ZV9hbSBoYXNoX2Z1bmMgZXJyb3JzIGluZmlu aXRlX3JlY3Vyc2UgZm9yX3BvcnRpb25fb2YKIAogIyAtLS0tLS0tLS0tCiAjIHNhbml0eV9j aGVjayBkb2VzIGEgdmFjdXVtLCBhZmZlY3RpbmcgdGhlIHNvcnQgb3JkZXIgb2YgU0VMRUNU ICoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTgwMmI1YzY3ZmYKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwKQEAgLTAs MCArMSw1MzEgQEAKKy0tIFRlc3RzIGZvciBVUERBVEUvREVMRVRFIEZPUiBQT1JUSU9OIE9G CisKKy0tIFdvcmtzIG9uIG5vbi1QSyBjb2x1bW5zCitDUkVBVEUgVEFCTEUgZm9yX3BvcnRp b25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwKKyAg bmFtZSB0ZXh0IE5PVCBOVUxMCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVz dCBWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgtMDEtMDIsMjAyMC0wMS0wMSknLCAnb25lJyk7 CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ2Zvbyc7 CisKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMTUnIFRPIE5VTEw7CisKK1NFTEVDVCAqIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdDsKKworLS0gV29ya3Mgb24gbW9yZSB0aGFuIG9uZSByYW5nZQor RFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0OworQ1JFQVRFIFRBQkxFIGZvcl9wb3J0 aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkMV9hdCB0c3JhbmdlLAor ICB2YWxpZDJfYXQgdHNyYW5nZSwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMCispOworSU5TRVJU IElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMKKygnWzEsMiknLCAnWzIwMTgtMDEt MDIsMjAxOC0wMi0wMyknLCAnWzIwMTUtMDEtMDEsMjAyNS0wMS0wMSknLCAnb25lJyk7CisK K1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZDFfYXQg RlJPTSAnMjAxOC0wMS0xNScgVE8gTlVMTAorU0VUIG5hbWUgPSAnZm9vJzsKK1NFTEVDVCAq IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDsKKworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rl c3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkMl9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyBOVUxM CitTRVQgbmFtZSA9ICdiYXInOworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 OworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2 YWxpZDFfYXQgRlJPTSAnMjAxOC0wMS0yMCcgVE8gTlVMTDsKK1NFTEVDVCAqIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdDsKKworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAor Rk9SIFBPUlRJT04gT0YgdmFsaWQyX2F0IEZST00gJzIwMTgtMDEtMjAnIFRPIE5VTEw7CitT RUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CisKKy0tIFRlc3Qgd2l0aCBOVUxM cyBpbiB0aGUgc2NhbGFyL3JhbmdlIGtleSBjb2x1bW5zLgorLS0gVGhpcyB3b24ndCBoYXBw ZW4gaWYgdGhlcmUgaXMgYSBQUklNQVJZIEtFWSBvciBVTklRVUUgY29uc3RyYWludAorLS0g YnV0IEZPUiBQT1JUSU9OIE9GIHNob3VsZG4ndCByZXF1aXJlIHRoYXQuCitEUk9QIFRBQkxF IGZvcl9wb3J0aW9uX29mX3Rlc3Q7CitDUkVBVEUgVU5MT0dHRUQgVEFCTEUgZm9yX3BvcnRp b25fb2ZfdGVzdCAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfYXQgdHNyYW5nZSwKKyAg bmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMK KyAgKCdbMSwyKScsIE5VTEwsICcxIG51bGwnKSwKKyAgKCdbMSwyKScsICcoLCknLCAnMSB1 bmJvdW5kZWQnKSwKKyAgKCdbMSwyKScsICdlbXB0eScsICcxIGVtcHR5JyksCisgIChOVUxM LCBOVUxMLCBOVUxMKSwKKyAgKE5VTEwsIHRzcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOS0w MS0wMScpLCAnbnVsbCBrZXknKTsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBOVUxMCisgIFNFVCBuYW1lID0g J05VTEwgdG8gTlVMTCc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3Q7CisK K0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDsKK0NSRUFURSBUQUJMRSBmb3JfcG9y dGlvbl9vZl90ZXN0ICgKKyAgaWQgaW50NHJhbmdlIE5PVCBOVUxMLAorICB2YWxpZF9hdCB0 c3JhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQgTk9UIE5VTEwsCisJQ09OU1RSQUlOVCBm b3JfcG9ydGlvbl9vZl9wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZF UkxBUFMpCispOworSU5TRVJUIElOVE8gZm9yX3BvcnRpb25fb2ZfdGVzdAorVkFMVUVTCiso J1sxLDIpJywgJ1syMDE4LTAxLTAyLDIwMTgtMDItMDMpJywgJ29uZScpLAorKCdbMSwyKScs ICdbMjAxOC0wMi0wMywyMDE4LTAzLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgt MDMtMDMsMjAxOC0wNC0wNCknLCAnb25lJyksCisoJ1syLDMpJywgJ1syMDE4LTAxLTAxLDIw MTgtMDEtMDUpJywgJ3R3bycpLAorKCdbMyw0KScsICdbMjAxOC0wMS0wMSwpJywgJ3RocmVl JyksCisoJ1s0LDUpJywgJygsMjAxOC0wNC0wMSknLCAnZm91cicpLAorKCdbNSw2KScsICco LCknLCAnZml2ZScpCis7CisKKy0tCistLSBVUERBVEUgdGVzdHMKKy0tCisKKy0tIFNldHRp bmcgd2l0aCBhIG1pc3NpbmcgY29sdW1uIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2Zf dGVzdAorRk9SIFBPUlRJT04gT0YgaW52YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBO VUxMCitTRVQgbmFtZSA9ICdmb28nCitXSEVSRSBpZCA9ICdbNSw2KSc7CisKKy0tIFNldHRp bmcgdGhlIHJhbmdlIGZhaWxzCitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wNi0wMScgVE8gTlVMTAorU0VUIHZhbGlk X2F0ID0gJ1sxOTkwLTAxLTAxLDE5OTktMDEtMDEpJworV0hFUkUgaWQgPSAnWzUsNiknOwor CistLSBUaGUgd3JvbmcgdHlwZSBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gMSBUTyA0CitTRVQgbmFtZSA9ICdub3Bl JworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBTZXR0aW5nIHdpdGggdGltZXN0YW1wcyBy ZXZlcnNlZCBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDYtMDEnIFRPICcyMDE4LTAxLTAxJworU0VUIG5h bWUgPSAndGhyZWVeMScKK1dIRVJFIGlkID0gJ1szLDQpJzsKKworLS0gU2V0dGluZyB3aXRo IGEgc3VicXVlcnkgZmFpbHMKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NIChTRUxFQ1QgJzIwMTgtMDEtMDEnKSBUTyAnMjAxOC0w Ni0wMScKK1NFVCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFNl dHRpbmcgd2l0aCBhIGNvbHVtbiBmYWlscworVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gbG93ZXIodmFsaWRfYXQpIFRPIE5VTEwK K1NFVCBuYW1lID0gJ25vcGUnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIFNldHRpbmcg d2l0aCB0aW1lc3RhbXBzIGVxdWFsIGRvZXMgbm90aGluZworVVBEQVRFIGZvcl9wb3J0aW9u X29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDQtMDEnIFRP ICcyMDE4LTA0LTAxJworU0VUIG5hbWUgPSAndGhyZWVeMCcKK1dIRVJFIGlkID0gJ1szLDQp JzsKKworLS0gVXBkYXRpbmcgYSBmaW5pdGUvb3BlbiBwb3J0aW9uIHdpdGggYSBmaW5pdGUv b3BlbiB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitTRVQgbmFtZSA9ICd0aHJl ZV4xJworV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBVcGRhdGluZyBhIGZpbml0ZS9vcGVu IHBvcnRpb24gd2l0aCBhbiBvcGVuL2Zpbml0ZSB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlv bl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgt MDMtMDEnCitTRVQgbmFtZSA9ICd0aHJlZV4yJworV0hFUkUgaWQgPSAnWzMsNCknOworCist LSBVcGRhdGluZyBhbiBvcGVuL2Zpbml0ZSBwb3J0aW9uIHdpdGggYW4gb3Blbi9maW5pdGUg dGFyZ2V0CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSBOVUxMIFRPICcyMDE4LTAyLTAxJworU0VUIG5hbWUgPSAnZm91cl4xJwor V0hFUkUgaWQgPSAnWzQsNSknOworCistLSBVcGRhdGluZyBhbiBvcGVuL2Zpbml0ZSBwb3J0 aW9uIHdpdGggYSBmaW5pdGUvb3BlbiB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90 ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE3LTAxLTAxJyBUTyBOVUxM CitTRVQgbmFtZSA9ICdmb3VyXjInCitXSEVSRSBpZCA9ICdbNCw1KSc7CisKKy0tIFVwZGF0 aW5nIGEgZmluaXRlL2Zpbml0ZSBwb3J0aW9uIHdpdGggYW4gZXhhY3QgZml0CitVUERBVEUg Zm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx Ny0wMS0wMScgVE8gJzIwMTgtMDItMDEnCitTRVQgbmFtZSA9ICdmb3VyXjMnCitXSEVSRSBp ZCA9ICdbNCw1KSc7CisKKy0tIFVwZGF0aW5nIGFuIGVuY2xvc2VkIHNwYW4KK1VQREFURSBm b3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwg VE8gTlVMTAorU0VUIG5hbWUgPSAndHdvXjInCitXSEVSRSBpZCA9ICdbMiwzKSc7CisKKy0t IFVwZGF0aW5nIGFuIG9wZW4vb3BlbiBwb3J0aW9uIHdpdGggYSBmaW5pdGUvZmluaXRlIHRh cmdldAorVVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDEtMDEnIFRPICcyMDE5LTAxLTAxJworU0VUIG5hbWUgPSAnZml2 ZV4yJworV0hFUkUgaWQgPSAnWzUsNiknOworCistLSBVcGRhdGluZyBhbiBlbmNsb3NlZCBz cGFuIHdpdGggc2VwYXJhdGUgcHJvdHJ1ZGluZyBzcGFucworVVBEQVRFIGZvcl9wb3J0aW9u X29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTctMDEtMDEnIFRP ICcyMDIwLTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV4zJworV0hFUkUgaWQgPSAnWzUsNikn OworCistLSBVcGRhdGluZyBtdWx0aXBsZSBlbmNsb3NlZCBzcGFucworVVBEQVRFIGZvcl9w b3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gTlVMTCBUTyBO VUxMCitTRVQgbmFtZSA9ICdvbmVeMicKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworLS0gVXBk YXRpbmcgd2l0aCBhIHNoaWZ0L3JlZHVjZSBjb25mbGljdAorVVBEQVRFIGZvcl9wb3J0aW9u X29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZST00gJzIwMTgtMDMtMDEn IEFUIFRJTUUgWk9ORSBJTlRFUlZBTCAnMScgSE9VUiBUTyBNSU5VVEUKKyAgVE8gJzIwMTkt MDEtMDEnCitTRVQgbmFtZSA9ICdvbmVeMycKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworVVBE QVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0CisgIEZS T00gJzIwMTgtMDMtMDEnIEFUIFRJTUUgWk9ORSBJTlRFUlZBTCAnMicgSE9VUgorICBUTyAn MjAxOS0wMS0wMScKK1NFVCBuYW1lID0gJ29uZV40JworV0hFUkUgaWQgPSAnWzEsMiknOwor CitVUERBVEUgZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQK KyAgRlJPTSAoJzIwMTgtMDMtMDEnIEFUIFRJTUUgWk9ORSBJTlRFUlZBTCAnMicgSE9VUikK KyAgVE8gJzIwMTktMDEtMDEnCitTRVQgbmFtZSA9ICdvbmVeNCcKK1dIRVJFIGlkID0gJ1sx LDIpJzsKKworLS0gV2l0aCBhIGRpcmVjdCB0YXJnZXQKK1VQREFURSBmb3JfcG9ydGlvbl9v Zl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAodHNyYW5nZSgnMjAxOC0wMy0xMCcs ICcyMDE4LTAzLTE3JykpCitTRVQgbmFtZSA9ICdvbmVeNScKK1dIRVJFIGlkID0gJ1sxLDIp JzsKKworLS0gVXBkYXRpbmcgdGhlIG5vbi1yYW5nZSBwYXJ0IG9mIHRoZSBQSzoKK1VQREFU RSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE4LTAyLTE1JyBUTyBOVUxMCitTRVQgaWQgPSAnWzYsNyknCitXSEVSRSBpZCA9ICdbMSwy KSc7CisKKy0tIFVQREFURSB3aXRoIG5vIFdIRVJFIGNsYXVzZQorVVBEQVRFIGZvcl9wb3J0 aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMzAtMDEtMDEn IFRPIE5VTEwKK1NFVCBuYW1lID0gbmFtZSB8fCAnKic7CisKK1NFTEVDVCAqIEZST00gZm9y X3BvcnRpb25fb2ZfdGVzdCBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSBERUxF VEUgdGVzdHMKKy0tCisKKy0tIERlbGV0aW5nIHdpdGggYSBtaXNzaW5nIGNvbHVtbiBmYWls cworREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgaW52 YWxpZF9hdCBGUk9NICcyMDE4LTA2LTAxJyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbNSw2KSc7 CisKKy0tIERlbGV0aW5nIHdpdGggdGltZXN0YW1wcyByZXZlcnNlZCBmYWlscworREVMRVRF IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOC0wNi0wMScgVE8gJzIwMTgtMDEtMDEnCitXSEVSRSBpZCA9ICdbMyw0KSc7CisK Ky0tIERlbGV0aW5nIHdpdGggdGltZXN0YW1wcyBlcXVhbCBkb2VzIG5vdGhpbmcKK0RFTEVU RSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTgtMDQtMDEnIFRPICcyMDE4LTA0LTAxJworV0hFUkUgaWQgPSAnWzMsNCknOwor CistLSBEZWxldGluZyB3aXRoIGEgY2xvc2VkL2Nsb3NlZCB0YXJnZXQKK0RFTEVURSBGUk9N IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDYtMDEnIFRPICcyMDIwLTA2LTAxJworV0hFUkUgaWQgPSAnWzUsNiknOworCistLSBE ZWxldGluZyB3aXRoIGEgY2xvc2VkL29wZW4gdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9y dGlvbl9vZl90ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTA0LTAx JyBUTyBOVUxMCitXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0tIERlbGV0aW5nIHdpdGggYW4g b3Blbi9jbG9zZWQgdGFyZ2V0CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDItMDgnCitXSEVS RSBpZCA9ICdbMSwyKSc7CisKKy0tIERlbGV0aW5nIHdpdGggYW4gb3Blbi9vcGVuIHRhcmdl dAorREVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSBOVUxMIFRPIE5VTEwKK1dIRVJFIGlkID0gJ1s2LDcpJzsKKworLS0gREVM RVRFIHdpdGggbm8gV0hFUkUgY2xhdXNlCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90 ZXN0CitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDI1LTAxLTAxJyBUTyBOVUxM OworCitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworCistLSBVUERBVEUgLi4uIFJFVFVSTklORyByZXR1cm5zIG9ubHkgdGhlIHVw ZGF0ZWQgdmFsdWVzIChub3QgdGhlIGluc2VydGVkIHNpZGUgdmFsdWVzKQorVVBEQVRFIGZv cl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDItMDEnIFRPICcyMDE4LTAyLTE1JworU0VUIG5hbWUgPSAndGhyZWVeMycKK1dIRVJFIGlk ID0gJ1szLDQpJworUkVUVVJOSU5HICo7CisKKy0tIHRlc3QgdGhhdCB3ZSBydW4gdHJpZ2dl cnMgb24gdGhlIFVQREFURS9ERUxFVEVkIHJvdyBhbmQgdGhlIElOU0VSVGVkIHJvd3MKKwor Q1JFQVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKQorUkVUVVJOUyB0cmln Z2VyCitBUworJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJSAlICUgb2YgJScsIFRHX1dI RU4sIFRHX09QLCBORVcudmFsaWRfYXQsIE9MRC52YWxpZF9hdDsKKyAgSUYgVEdfT1AgPSAn REVMRVRFJyBUSEVOCisgICAgUkVUVVJOIE9MRDsKKyAgRUxTRQorICAgIFJFVFVSTiBORVc7 CisgIEVORCBJRjsKK0VORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgVFJJ R0dFUiB0cmdfZm9yX3BvcnRpb25fb2ZfYmVmb3JlCisgIEJFRk9SRSBJTlNFUlQgT1IgVVBE QVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVwor ICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKK0NSRUFURSBU UklHR0VSIHRyZ19mb3JfcG9ydGlvbl9vZl9hZnRlcgorICBBRlRFUiBJTlNFUlQgT1IgVVBE QVRFIE9SIERFTEVURSBPTiBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBFQUNIIFJPVwor ICBFWEVDVVRFIEZVTkNUSU9OIGZvcl9wb3J0aW9uX29mX3RyaWdnZXIoKTsKKworVVBEQVRF IGZvcl9wb3J0aW9uX29mX3Rlc3QKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MjEtMDEtMDEnIFRPICcyMDIyLTAxLTAxJworU0VUIG5hbWUgPSAnZml2ZV40JworV0hFUkUg aWQgPSAnWzUsNiknOworCitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0CitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDIzLTAxLTAxJyBUTyAnMjAyNC0wMS0wMScK K1dIRVJFIGlkID0gJ1s1LDYpJzsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90 ZXN0IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK0RST1AgRlVOQ1RJT04gZm9yX3BvcnRpb25f b2ZfdHJpZ2dlciBDQVNDQURFOworCistLSBUcmlnZ2VycyB3aXRoIGEgY3VzdG9tIHRyYW5z aXRpb24gdGFibGUgbmFtZToKKworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0Owor Q1JFQVRFIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2F0IGRhdGVyYW5nZSwKKyAgbmFtZSB0ZXh0CispOworSU5TRVJUIElOVE8gZm9y X3BvcnRpb25fb2ZfdGVzdCBWQUxVRVMgKCdbMSwyKScsICdbMjAxOC0wMS0wMSwyMDIwLTAx LTAxKScsICdvbmUnKTsKKworQ1JFQVRFIEZVTkNUSU9OIGR1bXBfdHJpZ2dlcigpCitSRVRV Uk5TIFRSSUdHRVIgTEFOR1VBR0UgcGxwZ3NxbCBBUworJCQKK0JFR0lOCisgIFJBSVNFIE5P VElDRSAnVEdfT1AgPSAlJywgVEdfT1A7CisgIElGIFRHX09QID0gJ0lOU0VSVCcgVEhFTgor ICAgIFJBSVNFIE5PVElDRSAndHJpZ2dlciA9ICUsIFRHX0xFVkVMID0gJSwgTkVXIHRhYmxl ID0gJScsCisgICAgICBUR19OQU1FLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG5l d190YWJsZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBuZXdfdGFibGUpOworICBF TFNJRiBUR19PUCA9ICdVUERBVEUnIFRIRU4KKyAgICBSQUlTRSBOT1RJQ0UgJ3RyaWdnZXIg PSAlLCBUR19MRVZFTCA9ICUsIE9MRCB0YWJsZSA9ICUsIE5FVyB0YWJsZSA9ICUnLAorICAg ICAgVEdfTkFNRSwgVEdfTEVWRUwsCisgICAgICAoU0VMRUNUIHN0cmluZ19hZ2cob2xkX3Rh YmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBGUk9NIG9sZF90YWJsZSksCisgICAgICAo U0VMRUNUIHN0cmluZ19hZ2cobmV3X3RhYmxlOjp0ZXh0LCAnLCAnIE9SREVSIEJZIGlkKSBG Uk9NIG5ld190YWJsZSk7CisgIEVMU0lGIFRHX09QID0gJ0RFTEVURScgVEhFTgorICAgIFJB SVNFIE5PVElDRSAndHJpZ2dlciA9ICUsIFRHX0xFVkVMID0gJSwgT0xEIHRhYmxlID0gJScs CisgICAgICBUR19OQU1FLCBUR19MRVZFTCwgKFNFTEVDVCBzdHJpbmdfYWdnKG9sZF90YWJs ZTo6dGV4dCwgJywgJyBPUkRFUiBCWSBpZCkgRlJPTSBvbGRfdGFibGUpOworICBFTkQgSUY7 CisgIFJFVFVSTiBOVUxMOworRU5EOworJCQ7CisKK0NSRUFURSBUUklHR0VSIGZvcl9wb3J0 aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWcKK0FGVEVSIElOU0VSVCBPTiBmb3JfcG9ydGlvbl9v Zl90ZXN0CitSRUZFUkVOQ0lORyBORVcgVEFCTEUgQVMgbmV3X3RhYmxlCitGT1IgRUFDSCBS T1cgRVhFQ1VURSBQUk9DRURVUkUgZHVtcF90cmlnZ2VyKCk7CisKK0NSRUFURSBUUklHR0VS IGZvcl9wb3J0aW9uX29mX3Rlc3RfaW5zZXJ0X3RyaWdfc3RtdAorQUZURVIgSU5TRVJUIE9O IGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE5FVyBUQUJMRSBBUyBuZXdfdGFi bGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIo KTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25fb2ZfdGVzdF91cGRhdGVfdHJpZwor QUZURVIgVVBEQVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rlc3QKK1JFRkVSRU5DSU5HIE9MRCBU QUJMRSBBUyBvbGRfdGFibGUgTkVXIFRBQkxFIEFTIG5ld190YWJsZQorRk9SIEVBQ0ggUk9X IEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOworCitDUkVBVEUgVFJJR0dFUiBm b3JfcG9ydGlvbl9vZl90ZXN0X3VwZGF0ZV90cmlnX3N0bXQKK0FGVEVSIFVQREFURSBPTiBm b3JfcG9ydGlvbl9vZl90ZXN0CitSRUZFUkVOQ0lORyBPTEQgVEFCTEUgQVMgb2xkX3RhYmxl IE5FVyBUQUJMRSBBUyBuZXdfdGFibGUKK0ZPUiBFQUNIIFNUQVRFTUVOVCBFWEVDVVRFIFBS T0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9yX3BvcnRpb25f b2ZfdGVzdF9kZWxldGVfdHJpZworQUZURVIgREVMRVRFIE9OIGZvcl9wb3J0aW9uX29mX3Rl c3QKK1JFRkVSRU5DSU5HIE9MRCBUQUJMRSBBUyBvbGRfdGFibGUKK0ZPUiBFQUNIIFJPVyBF WEVDVVRFIFBST0NFRFVSRSBkdW1wX3RyaWdnZXIoKTsKKworQ1JFQVRFIFRSSUdHRVIgZm9y X3BvcnRpb25fb2ZfdGVzdF9kZWxldGVfdHJpZ19zdG10CitBRlRFUiBERUxFVEUgT04gZm9y X3BvcnRpb25fb2ZfdGVzdAorUkVGRVJFTkNJTkcgT0xEIFRBQkxFIEFTIG9sZF90YWJsZQor Rk9SIEVBQ0ggU1RBVEVNRU5UIEVYRUNVVEUgUFJPQ0VEVVJFIGR1bXBfdHJpZ2dlcigpOwor CitCRUdJTjsKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0CisgIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMTUnIFRPICcyMDE5LTAxLTAxJworICBTRVQgbmFt ZSA9ICcyMDE4LTAxLTE1X3RvXzIwMTktMDEtMDEnOworUk9MTEJBQ0s7CisKK0JFR0lOOwor REVMRVRFIEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdAorICBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NIE5VTEwgVE8gJzIwMTgtMDEtMjEnOworUk9MTEJBQ0s7CisKK0JFR0lOOwor VVBEQVRFIGZvcl9wb3J0aW9uX29mX3Rlc3QKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSBOVUxMIFRPICcyMDE4LTAxLTAyJworICBTRVQgbmFtZSA9ICdOVUxMX3RvXzIwMTgt MDEtMDEnOworUk9MTEJBQ0s7CisKKy0tIFRlc3Qgd2l0aCBtdWx0aXJhbmdlcworCitDUkVB VEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2UgTk9UIE5V TEwsCisgIHZhbGlkX2F0IGRhdGVtdWx0aXJhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRleHQg Tk9UIE5VTEwsCisJQ09OU1RSQUlOVCBmb3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5TRVJUIElOVE8g Zm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUworKCdbMSwyKScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzKScpLCBkYXRlcmFuZ2UoJzIw MTgtMDItMDQnLCAnMjAxOC0wMy0wMycpKSwgJ29uZScpLAorKCdbMSwyKScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMy0wMycsICcyMDE4LTA0LTA0KScpKSwgJ29uZScp LAorKCdbMiwzKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDE4LTA1LTAxKScpKSwgJ3R3bycpLAorKCdbMyw0KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsIG51bGwpKSwgJ3RocmVlJyk7Cis7CisKK1VQREFURSBmb3Jf cG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0xMCcsICcyMDE4LTAyLTEwJyksIGRhdGVyYW5nZSgn MjAxOC0wMy0wNScsICcyMDE4LTA1LTAxJykpKQorU0VUIG5hbWUgPSAnb25lXjEnCitXSEVS RSBpZCA9ICdbMSwyKSc7CisKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitG T1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTE1JywgJzIwMTgtMDItMTUnKSwgZGF0ZXJhbmdlKCcyMDE4LTAzLTAxJywgJzIwMTgt MDMtMTUnKSkpCitXSEVSRSBpZCA9ICdbMiwzKSc7CisKK1NFTEVDVCAqIEZST00gZm9yX3Bv cnRpb25fb2ZfdGVzdDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCitEUk9QIFRBQkxFIGZv cl9wb3J0aW9uX29mX3Rlc3QyOworCistLSBUZXN0IHdpdGggYSBjdXN0b20gcmFuZ2UgdHlw ZQorCitDUkVBVEUgVFlQRSBteWRhdGVyYW5nZSBBUyByYW5nZShzdWJ0eXBlPWRhdGUpOwor CitDUkVBVEUgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDIgKAorICBpZCBpbnQ0cmFuZ2Ug Tk9UIE5VTEwsCisgIHZhbGlkX2F0IG15ZGF0ZXJhbmdlIE5PVCBOVUxMLAorICBuYW1lIHRl eHQgTk9UIE5VTEwsCisJQ09OU1RSQUlOVCBmb3JfcG9ydGlvbl9vZl90ZXN0Ml9wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworSU5TRVJUIElO VE8gZm9yX3BvcnRpb25fb2ZfdGVzdDIKK1ZBTFVFUworKCdbMSwyKScsICdbMjAxOC0wMS0w MiwyMDE4LTAyLTAzKScsICdvbmUnKSwKKygnWzEsMiknLCAnWzIwMTgtMDItMDMsMjAxOC0w My0wMyknLCAnb25lJyksCisoJ1sxLDIpJywgJ1syMDE4LTAzLTAzLDIwMTgtMDQtMDQpJywg J29uZScpLAorKCdbMiwzKScsICdbMjAxOC0wMS0wMSwyMDE4LTA1LTAxKScsICd0d28nKSwK KygnWzMsNCknLCAnWzIwMTgtMDEtMDEsKScsICd0aHJlZScpOworOworCitVUERBVEUgZm9y X3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgt MDEtMTAnIFRPICcyMDE4LTAyLTEwJworU0VUIG5hbWUgPSAnb25lXjEnCitXSEVSRSBpZCA9 ICdbMSwyKSc7CisKK0RFTEVURSBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTE1JyBUTyAnMjAxOC0wMi0xNScKK1dI RVJFIGlkID0gJ1syLDMpJzsKKworU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0 MiBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKK0RST1AgVEFCTEUgZm9yX3BvcnRpb25fb2Zf dGVzdDI7CitEUk9QIFRZUEUgbXlkYXRlcmFuZ2U7CisKKy0tIFRlc3QgRk9SIFBPUlRJT04g T0YgYWdhaW5zdCBhIHBhcnRpdGlvbmVkIHRhYmxlLgorLS0gdGVtcG9yYWxfcGFydGl0aW9u ZWRfMSBoYXMgdGhlIHNhbWUgYXR0bnVtcyBhcyB0aGUgcm9vdAorLS0gdGVtcG9yYWxfcGFy dGl0aW9uZWRfMyBoYXMgdGhlIGRpZmZlcmVudCBhdHRudW1zIGZyb20gdGhlIHJvb3QKKy0t IHRlbXBvcmFsX3BhcnRpdGlvbmVkXzUgaGFzIHRoZSBkaWZmZXJlbnQgYXR0bnVtcyB0b28s IGJ1dCByZXZlcnNlZAorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQgKAor CWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBkYXRlcmFuZ2UsCisgIG5hbWUgdGV4dCwKKwlD T05TVFJBSU5UIHRlbXBvcmFsX3Bhcml0aW9uZWRfdXEgVU5JUVVFIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUykKKykgUEFSVElUSU9OIEJZIExJU1QgKGlkKTsKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8xIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZCBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzIsMyknKTsKK0NSRUFURSBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF8zIFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRp b25lZCBGT1IgVkFMVUVTIElOICgnWzMsNCknLCAnWzQsNSknKTsKK0NSRUFURSBUQUJMRSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF81IFBBUlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZCBGT1IgVkFMVUVTIElOICgnWzUsNiknLCAnWzYsNyknKTsKKworQUxURVIgVEFCTEUgdGVt cG9yYWxfcGFydGl0aW9uZWQgREVUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF8zOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBEUk9QIENPTFVNTiBp ZCwgRFJPUCBDT0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF8zIEFERCBDT0xVTU4gaWQgaW50NHJhbmdlIE5PVCBOVUxMLCBBREQgQ09MVU1OIHZh bGlkX2F0IGRhdGVyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRp dGlvbmVkIEFUVEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfMyBGT1IgVkFM VUVTIElOICgnWzMsNCknLCAnWzQsNSknKTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFy dGl0aW9uZWQgREVUQUNIIFBBUlRJVElPTiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81OworQUxU RVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBEUk9QIENPTFVNTiBpZCwgRFJPUCBD T0xVTU4gdmFsaWRfYXQ7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF81IEFE RCBDT0xVTU4gdmFsaWRfYXQgZGF0ZXJhbmdlIE5PVCBOVUxMLCBBREQgQ09MVU1OIGlkIGlu dDRyYW5nZSBOT1QgTlVMTDsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEFU VEFDSCBQQVJUSVRJT04gdGVtcG9yYWxfcGFydGl0aW9uZWRfNSBGT1IgVkFMVUVTIElOICgn WzUsNiknLCAnWzYsNyknKTsKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWQg VkFMVUVTCisgICgnWzEsMiknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAxMC0wMS0w MScpLCAnb25lJyksCisgICgnWzMsNCknLCBkYXRlcmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAx MC0wMS0wMScpLCAndGhyZWUnKSwKKyAgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAwMC0wMS0w MScsICcyMDEwLTAxLTAxJyksICdmaXZlJyk7CisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWQ7CisKKy0tIFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRoaW4gcGFydGl0 aW9uIDEKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDAwLTAzLTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VUIG5hbWUgPSAn b25lXjEnCisgIFdIRVJFIGlkID0gJ1sxLDIpJzsKKworLS0gVXBkYXRlIHdpdGhvdXQgbW92 aW5nIHdpdGhpbiBwYXJ0aXRpb24gMworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDMtMDEnIFRPICcyMDAwLTA0LTAx JworICBTRVQgbmFtZSA9ICd0aHJlZV4xJworICBXSEVSRSBpZCA9ICdbMyw0KSc7CisKKy0t IFVwZGF0ZSB3aXRob3V0IG1vdmluZyB3aXRoaW4gcGFydGl0aW9uIDUKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTAz LTAxJyBUTyAnMjAwMC0wNC0wMScKKyAgU0VUIG5hbWUgPSAnZml2ZV4xJworICBXSEVSRSBp ZCA9ICdbNSw2KSc7CisKKy0tIE1vdmUgZnJvbSBwYXJ0aXRpb24gMSB0byBwYXJ0aXRpb24g MworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMDAtMDYtMDEnIFRPICcyMDAwLTA3LTAxJworICBTRVQgbmFtZSA9ICdvbmVe MicsCisgICAgICBpZCA9ICdbNCw1KScKKyAgV0hFUkUgaWQgPSAnWzEsMiknOworCistLSBN b3ZlIGZyb20gcGFydGl0aW9uIDMgdG8gcGFydGl0aW9uIDEKK1VQREFURSB0ZW1wb3JhbF9w YXJ0aXRpb25lZCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBU TyAnMjAwMC0wNy0wMScKKyAgU0VUIG5hbWUgPSAndGhyZWVeMicsCisgICAgICBpZCA9ICdb MiwzKScKKyAgV0hFUkUgaWQgPSAnWzMsNCknOworCistLSBNb3ZlIGZyb20gcGFydGl0aW9u IDUgdG8gcGFydGl0aW9uIDMKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZCBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAwLTA2LTAxJyBUTyAnMjAwMC0wNy0wMScKKyAg U0VUIG5hbWUgPSAnZml2ZV4yJywKKyAgICAgIGlkID0gJ1szLDQpJworICBXSEVSRSBpZCA9 ICdbNSw2KSc7CisKKy0tIFVwZGF0ZSBhbGwgcGFydGl0aW9ucyBhdCBvbmNlIChlYWNoIHdp dGggbGVmdG92ZXJzKQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfMSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkXzMgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF81IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworRFJPUCBUQUJM RSB0ZW1wb3JhbF9wYXJ0aXRpb25lZDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL29wcl9zYW5pdHkuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvb3ByX3Nhbml0eS5z cWwKaW5kZXggMmZlN2I2ZGNjNDkuLjJkZmZlN2M1YjZhIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9vcHJfc2FuaXR5LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9vcHJfc2FuaXR5LnNxbApAQCAtMTI0MSw2ICsxMjQxLDcgQEAgV0hFUkUgYTEuYW1vcGZh bWlseSA9IDAgT1IgYTEuYW1vcGxlZnR0eXBlID0gMCBPUiBhMS5hbW9wcmlnaHR0eXBlID0g MAogU0VMRUNUIGExLmFtb3BmYW1pbHksIGExLmFtb3BzdHJhdGVneQogRlJPTSBwZ19hbW9w IGFzIGExCiBXSEVSRSBOT1QgKChhMS5hbW9wcHVycG9zZSA9ICdzJyBBTkQgYTEuYW1vcHNv cnRmYW1pbHkgPSAwKSBPUgorICAgICAgICAgICAoYTEuYW1vcHB1cnBvc2UgPSAncCcgQU5E IGExLmFtb3Bzb3J0ZmFtaWx5ID0gMCkgT1IKICAgICAgICAgICAgKGExLmFtb3BwdXJwb3Nl ID0gJ28nIEFORCBhMS5hbW9wc29ydGZhbWlseSA8PiAwKSk7CiAKIC0tIGFtb3BtZXRob2Qg bXVzdCBtYXRjaCBvd25pbmcgb3BmYW1pbHkncyBvcGZtZXRob2QKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3ByaXZpbGVnZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHJpdmlsZWdlcy5zcWwKaW5kZXggZWViNGMwMDI5MjYuLjY5ZmI4MzQ3ZDI1IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wcml2aWxlZ2VzLnNxbApAQCAtNzEzLDYgKzcxMywyNCBAQCBV UERBVEUgZXJydHN0IFNFVCBhID0gJ2FhYWEnLCBiID0gTlVMTCBXSEVSRSBhID0gJ2FhYSc7 CiBTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jlc3NfcHJpdl91c2VyMTsKIERST1Ag VEFCTEUgZXJydHN0OwogCistLSB0ZXN0IGNvbHVtbi1sZXZlbCBwcml2aWxlZ2VzIG9uIHRo ZSByYW5nZS9QRVJJT0QgdXNlZCBpbiBGT1IgUE9SVElPTiBPRgorU0VUIFNFU1NJT04gQVVU SE9SSVpBVElPTiByZWdyZXNzX3ByaXZfdXNlcjE7CitDUkVBVEUgVEFCTEUgdDEgKAorICBj MSBpbnQ0cmFuZ2UsCisgIHZhbGlkX2F0IHRzcmFuZ2UsCisJQ09OU1RSQUlOVCB0MXBrIFBS SU1BUlkgS0VZIChjMSwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitHUkFOVCBT RUxFQ1QgT04gdDEgVE8gcmVncmVzc19wcml2X3VzZXIyOworR1JBTlQgU0VMRUNUIE9OIHQx IFRPIHJlZ3Jlc3NfcHJpdl91c2VyMzsKK0dSQU5UIFVQREFURSAoYzEpIE9OIHQxIFRPIHJl Z3Jlc3NfcHJpdl91c2VyMjsKK0dSQU5UIFVQREFURSAoYzEsIHZhbGlkX2F0KSBPTiB0MSBU TyByZWdyZXNzX3ByaXZfdXNlcjM7CitTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OIHJlZ3Jl c3NfcHJpdl91c2VyMjsKK1VQREFURSB0MSBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDAwLTAxLTAxJyBUTyAnMjAwMS0wMS0wMScgU0VUIGMxID0gJ1syLDMpJzsKK1NFVCBT RVNTSU9OIEFVVEhPUklaQVRJT04gcmVncmVzc19wcml2X3VzZXIzOworVVBEQVRFIHQxIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMDEnIFRPICcyMDAxLTAxLTAx JyBTRVQgYzEgPSAnWzIsMyknOworU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNz X3ByaXZfdXNlcjE7CitEUk9QIFRBQkxFIHQxOworCiAtLSB0ZXN0IGNvbHVtbi1sZXZlbCBw cml2aWxlZ2VzIHdoZW4gaW52b2x2ZWQgd2l0aCBERUxFVEUKIFNFVCBTRVNTSU9OIEFVVEhP UklaQVRJT04gcmVncmVzc19wcml2X3VzZXIxOwogQUxURVIgVEFCTEUgYXRlc3Q2IEFERCBD T0xVTU4gdGhyZWUgaW50ZWdlcjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3VwZGF0YWJsZV92aWV3cy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC91cGRhdGFibGVf dmlld3Muc3FsCmluZGV4IGFmZGYzMzFmZWQ2Li5lMGZkZWU5ODgwOSAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvdXBkYXRhYmxlX3ZpZXdzLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC91cGRhdGFibGVfdmlld3Muc3FsCkBAIC0xODI3LDYgKzE4MjcsMjAg QEAgc2VsZWN0ICogZnJvbSB1dl9pb2N1X3RhYjsKIGRyb3AgdmlldyB1dl9pb2N1X3ZpZXc7 CiBkcm9wIHRhYmxlIHV2X2lvY3VfdGFiOwogCistLSBDaGVjayBVUERBVEUgRk9SIFBPUlRJ T04gT0Ygd29ya3MgY29ycmVjdGx5CitjcmVhdGUgdGFibGUgdXZfZnBvX3RhYiAoaWQgaW50 NHJhbmdlLCB2YWxpZF9hdCB0c3JhbmdlLCBiIGZsb2F0LAorICAgIGNvbnN0cmFpbnQgcGtf dXZfZnBvX3RhYiBwcmltYXJ5IGtleSAoaWQsIHZhbGlkX2F0IHdpdGhvdXQgb3ZlcmxhcHMp KTsKK2luc2VydCBpbnRvIHV2X2Zwb190YWIgdmFsdWVzICgnWzEsMV0nLCAnWzIwMjAtMDEt MDEsIDIwMzAtMDEtMDEpJywgMCk7CitjcmVhdGUgdmlldyB1dl9mcG9fdmlldyBhcworICAg IHNlbGVjdCBiLCBiKzEgYXMgYywgdmFsaWRfYXQsIGlkLCAnMi4wJzo6dGV4dCBhcyB0d28g ZnJvbSB1dl9mcG9fdGFiOworCitpbnNlcnQgaW50byB1dl9mcG9fdmlldyAoaWQsIHZhbGlk X2F0LCBiKSB2YWx1ZXMgKCdbMSwxXScsICdbMjAxMC0wMS0wMSwgMjAyMC0wMS0wMSknLCAx KTsKK3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7Cit1cGRhdGUgdXZfZnBvX3ZpZXcgZm9y IHBvcnRpb24gb2YgdmFsaWRfYXQgZnJvbSAnMjAxNS0wMS0wMScgdG8gJzIwMjAtMDEtMDEn IHNldCBiID0gMiB3aGVyZSBpZCA9ICdbMSwxXSc7CitzZWxlY3QgKiBmcm9tIHV2X2Zwb192 aWV3OworZGVsZXRlIGZyb20gdXZfZnBvX3ZpZXcgZm9yIHBvcnRpb24gb2YgdmFsaWRfYXQg ZnJvbSAnMjAxNy0wMS0wMScgdG8gJzIwMjItMDEtMDEnIHdoZXJlIGlkID0gJ1sxLDFdJzsK K3NlbGVjdCAqIGZyb20gdXZfZnBvX3ZpZXc7CisKIC0tIFRlc3Qgd2hvbGUtcm93IHJlZmVy ZW5jZXMgdG8gdGhlIHZpZXcKIGNyZWF0ZSB0YWJsZSB1dl9pb2N1X3RhYiAoYSBpbnQgdW5p cXVlLCBiIHRleHQpOwogY3JlYXRlIHZpZXcgdXZfaW9jdV92aWV3IGFzCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCmluZGV4IDhjYjYzODQzMzEzLi4x MGMzNjk3MzYzYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9v dmVybGFwcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFw cy5zcWwKQEAgLTI1Nyw2ICsyNTcsMjAgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWwzIChpZCwg dmFsaWRfYXQsIGlkMiwgbmFtZSkKICAgKCdbMSwyKScsIGRhdGVyYW5nZSgnMjAwMC0wMS0w MScsICcyMDEwLTAxLTAxJyksICdbNyw4KScsICdmb28nKSwKICAgKCdbMiwzKScsIGRhdGVy YW5nZSgnMjAwMC0wMS0wMScsICcyMDEwLTAxLTAxJyksICdbOSwxMCknLCAnYmFyJykKIDsK K1VQREFURSB0ZW1wb3JhbDMgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0w NS0wMScgVE8gJzIwMDAtMDctMDEnCisgIFNFVCBuYW1lID0gbmFtZSB8fCAnMSc7CitVUERB VEUgdGVtcG9yYWwzIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMDAtMDQtMDEn IFRPICcyMDAwLTA2LTAxJworICBTRVQgbmFtZSA9IG5hbWUgfHwgJzInCisgIFdIRVJFIGlk ID0gJ1syLDMpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWwzIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIGNvbmZsaWN0aW5nIGlkIG9ubHk6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbDMg KGlkLCB2YWxpZF9hdCwgaWQyLCBuYW1lKQorICBWQUxVRVMKKyAgKCdbMSwyKScsIGRhdGVy YW5nZSgnMjAwNS0wMS0wMScsICcyMDA2LTAxLTAxJyksICdbOCw5KScsICdmb28zJyk7Cist LSBjb25mbGljdGluZyBpZDIgb25seToKK0lOU0VSVCBJTlRPIHRlbXBvcmFsMyAoaWQsIHZh bGlkX2F0LCBpZDIsIG5hbWUpCisgIFZBTFVFUworICAoJ1szLDQpJywgZGF0ZXJhbmdlKCcy MDA1LTAxLTAxJywgJzIwMTAtMDEtMDEnKSwgJ1s5LDEwKScsICdiYXIzJyk7CiBEUk9QIFRB QkxFIHRlbXBvcmFsMzsKIAogLS0KQEAgLTI5NSw2ICszMDksMjIgQEAgSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCiBTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK IFNFTEVDVCAqIEZST00gdHAxIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIFNFTEVDVCAqIEZS T00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0 aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8g JzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlkID0gJ1sxLDIp JzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNFVCBpZCA9ICdb NCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRp b25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAn MjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1lID0gJ3RocmVl JzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVSRSBp ZCA9ICdbMyw0KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CiAK IC0tIHRlbXBvcmFsIFVOSVFVRToKQEAgLTMxMyw2ICszNDMsMjIgQEAgSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWQgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCiBTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK IFNFTEVDVCAqIEZST00gdHAxIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIFNFTEVDVCAqIEZS T00gdHAyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0 aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAwMC0wMS0xNScgVE8g JzIwMDAtMDItMTUnCisgIFNFVCBuYW1lID0gJ29uZTInCisgIFdIRVJFIGlkID0gJ1sxLDIp JzsKK1VQREFURSAgdGVtcG9yYWxfcGFydGl0aW9uZWQKKyAgRk9SIFBPUlRJT04gT0YgdmFs aWRfYXQgRlJPTSAnMjAwMC0wMi0yMCcgVE8gJzIwMDAtMDItMjUnCisgIFNFVCBpZCA9ICdb NCw1KScKKyAgV0hFUkUgbmFtZSA9ICdvbmUnOworVVBEQVRFICB0ZW1wb3JhbF9wYXJ0aXRp b25lZAorICBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDAyLTAxLTAxJyBUTyAn MjAwMy0wMS0wMScKKyAgU0VUIGlkID0gJ1syLDMpJworICBXSEVSRSBuYW1lID0gJ3RocmVl JzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkCisgIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMDAtMDEtMTUnIFRPICcyMDAwLTAyLTE1JworICBXSEVSRSBp ZCA9ICdbMyw0KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWQ7CiAK IC0tCkBAIC02MzAsNiArNjc2LDE2IEBAIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRf YXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwogLS0gY2hhbmdp bmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQg PSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJl bmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9 ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0 IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3JuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsOCknCitX SEVSRSBpZCA9ICdbNSw2KSc7CiAtLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJl Y29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxf cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAx JykKQEAgLTY2NCw2ICs3MjAsMTYgQEAgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CiAtLSBjaGFuZ2lu ZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9 ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworLS0gY2hhbmdpbmcgYW4gdW5yZWZlcmVu Y2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4LTAxLTAzJworU0VUIGlkID0g J1s3LDgpJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQg ZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1NFVCBpZCA9ICdbNyw4KScKK1dI RVJFIGlkID0gJ1s1LDYpJzsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVj b3JkIGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1w b3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIFVQREFURSB0ZW1wb3JhbF9y bmcgU0VUIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEn KQpAQCAtNjkxLDkgKzc1NywyMCBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLCBkYXRlcgogREVM RVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQg PSBkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOwogLS0gYSBQSyBkZWxl dGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CiBERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CistLSBkZWxldGluZyBhbiB1bnJl ZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycK K1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgor REVMRVRFIEZST00gdGVtcG9yYWxfcm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dIRVJFIGlkID0gJ1s1LDYpJzsKIC0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBk ZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDIt MDEnKTsKKy0tIGNsZWFuIHVwOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBX SEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdI RVJFIGlkIElOICgnWzUsNiknKTsKIAogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxl dGVzIFJFU1RSSUNUCkBAIC03MTcsOSArNzk0LDIwIEBAIElOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScs IGRhdGVyCiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFO RCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CiAt LSBhIFBLIGRlbGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoK IERFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlk X2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKKy0tIGRlbGV0 aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcy MDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBh cnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcKK0ZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAn WzUsNiknOwogLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRo ZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgV0hFUkUgaWQgPSAnWzMsNCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdI RVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpOworLS0gY2xlYW4gdXA6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIHBhcmVudF9pZCA9ICdbNSw2KSc7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmcgV0hFUkUgaWQgSU4gKCdbNSw2KScpOwogCiAtLQogLS0gdGVzdCBPTiBVUERB VEUvREVMRVRFIG9wdGlvbnMKLS0gCjIuNDIuMAoK --------------rOiwMPZjbSgQ0WsI4nnNtOso Content-Type: text/x-patch; charset=UTF-8; name="v31-0005-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.patch" Content-Disposition: attachment; filename*0="v31-0005-Add-CASCADE-SET-NULL-SET-DEFAULT-for-temporal-fo.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBjMmM0MjllZTgzMWI0NGMyZDBhZjg5Y2YzZGMxOTBlNTdmNWU3ODA1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgMyBKdW4gMjAyMyAyMTo0MToxMSAtMDQw MApTdWJqZWN0OiBbUEFUQ0ggdjMxIDUvNl0gQWRkIENBU0NBREUvU0VUIE5VTEwvU0VUIERF RkFVTFQgZm9yIHRlbXBvcmFsIGZvcmVpZ24KIGtleXMKCi0tLQogZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICAxNCArLQogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19jb25zdHJhaW50LmMgICAgICAgICAgIHwgICAyMCArLQogc3JjL2JhY2tl bmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgICA4MSArLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJzLmMgICAgICAgICAgIHwgIDU4MiArKysrKyst CiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCAgICAgICAgICAgfCAgICA3 ICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAgICAgICAgICAgfCAg IDIyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVfaW5kZXgub3V0ICAgICB8 ICAgMTggKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0ICAg ICB8IDE1NTEgKysrKysrKysrKysrKysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhv dXRfb3ZlcmxhcHMuc3FsICAgICB8ICA5MDIgKysrKysrKysrLQogOSBmaWxlcyBjaGFuZ2Vk LCAzMDg0IGluc2VydGlvbnMoKyksIDExMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdGFibGUuc2dtbAppbmRleCA4NGE1MjBlOTgzZi4uMzIzYTRhNzEyYjAgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbApAQCAtMTI3MCw3ICsxMjcwLDkgQEAgV0lU SCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0 ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgICAgIDwvcGFyYT4KIAogICAgICAgICAg PHBhcmE+Ci0gICAgICAgICAgSW4gYSB0ZW1wb3JhbCBmb3JlaWduIGtleSwgdGhpcyBvcHRp b24gaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24g a2V5LCB0aGUgZGVsZXRlL3VwZGF0ZSB3aWxsIHVzZQorICAgICAgICAgIDxsaXRlcmFsPkZP UiBQT1JUSU9OIE9GPC9saXRlcmFsPiBzZW1hbnRpY3MgdG8gY29uc3RyYWluIHRoZQorICAg ICAgICAgIGVmZmVjdCB0byB0aGUgYm91bmRzIGJlaW5nIGRlbGV0ZWQvdXBkYXRlZCBpbiB0 aGUgcmVmZXJlbmNlZCByb3cuCiAgICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlzdGl0 ZW0+CiAgICAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0xMjg1LDcgKzEyODcsMTAgQEAgV0lU SCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0 ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgICAgIDwvcGFyYT4KIAogICAgICAgICAg PHBhcmE+Ci0gICAgICAgICAgSW4gYSB0ZW1wb3JhbCBmb3JlaWduIGtleSwgdGhpcyBvcHRp b24gaXMgbm90IHN1cHBvcnRlZC4KKyAgICAgICAgICBJbiBhIHRlbXBvcmFsIGZvcmVpZ24g a2V5LCB0aGUgY2hhbmdlIHdpbGwgdXNlIDxsaXRlcmFsPkZPUiBQT1JUSU9OCisgICAgICAg ICAgT0Y8L2xpdGVyYWw+IHNlbWFudGljcyB0byBjb25zdHJhaW4gdGhlIGVmZmVjdCB0byB0 aGUgYm91bmRzIGJlaW5nCisgICAgICAgICAgZGVsZXRlZC91cGRhdGVkIGluIHRoZSByZWZl cmVuY2VkIHJvdy4gVGhlIGNvbHVtbiBtYWtlZCB3aXRoCisgICAgICAgICAgPGxpdGVyYWw+ UEVSSU9EPC9saXRlcmFsPiB3aWxsIG5vdCBiZSBzZXQgdG8gbnVsbC4KICAgICAgICAgIDwv cGFyYT4KICAgICAgICAgPC9saXN0aXRlbT4KICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAg LTEzMDIsNyArMTMwNywxMCBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAg ICAgPC9wYXJhPgogCiAgICAgICAgICA8cGFyYT4KLSAgICAgICAgICBJbiBhIHRlbXBvcmFs IGZvcmVpZ24ga2V5LCB0aGlzIG9wdGlvbiBpcyBub3Qgc3VwcG9ydGVkLgorICAgICAgICAg IEluIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXksIHRoZSBjaGFuZ2Ugd2lsbCB1c2UgPGxpdGVy YWw+Rk9SIFBPUlRJT04KKyAgICAgICAgICBPRjwvbGl0ZXJhbD4gc2VtYW50aWNzIHRvIGNv bnN0cmFpbiB0aGUgZWZmZWN0IHRvIHRoZSBib3VuZHMgYmVpbmcKKyAgICAgICAgICBkZWxl dGVkL3VwZGF0ZWQgaW4gdGhlIHJlZmVyZW5jZWQgcm93LiBUaGUgY29sdW1uIG1hcmtlZCB3 aXRoCisgICAgICAgICAgPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiB3aXRoIG5vdCBiZSBz ZXQgdG8gYSBkZWZhdWx0IHZhbHVlLgogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xp c3RpdGVtPgogICAgICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jb25zdHJhaW50LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nv bnN0cmFpbnQuYwppbmRleCBhY2FjY2QyNmZkYi4uOTdmNDU3NmEyZTggMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY29uc3RyYWludC5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfY29uc3RyYWludC5jCkBAIC0xNjUxLDcgKzE2NTEsNyBAQCBEZWNvbnN0 cnVjdEZrQ29uc3RyYWludFJvdyhIZWFwVHVwbGUgdHVwbGUsIGludCAqbnVtZmtzLAogfQog CiAvKgotICogRmluZEZrUGVyaW9kT3BlcnMgLQorICogRmluZEZrUGVyaW9kT3BlcnNBbmRQ cm9jcyAtCiAgKgogICogTG9va3MgdXAgdGhlIG9wZXJhdG9yIG9pZHMgdXNlZCBmb3IgdGhl IFBFUklPRCBwYXJ0IG9mIGEgdGVtcG9yYWwgZm9yZWlnbiBrZXkuCiAgKiBUaGUgb3BjbGFz cyBzaG91bGQgYmUgdGhlIG9wY2xhc3Mgb2YgdGhhdCBQRVJJT0QgZWxlbWVudC4KQEAgLTE2 NjAsMTEgKzE2NjAsMTQgQEAgRGVjb25zdHJ1Y3RGa0NvbnN0cmFpbnRSb3coSGVhcFR1cGxl IHR1cGxlLCBpbnQgKm51bWZrcywKICAqIGFnZ2VkY29udGFpbmVkYnlvcGVyb2lkIGlzIGFs c28gYSBDb250YWluZWRCeSBvcGVyYXRvciwKICAqIGJ1dCBvbmUgd2hvc2UgcmhzIGlzIGEg bXVsdGlyYW5nZS4KICAqIFRoYXQgd2F5IGZvcmVpZ24ga2V5cyBjYW4gY29tcGFyZSBma2F0 dHIgPEAgcmFuZ2VfYWdnKHBrYXR0cikuCisgKiBpbnRlcnNlY3Rwcm9jb2lkIGlzIHVzZWQg dG8gbGltaXQgdGhlIGVmZmVjdCBvZiBDQVNDQURFL1NFVCBOVUxML1NFVCBERUZBVUxUCisg KiB3aGVuIHRoZSBQSyByZWNvcmQgaXMgY2hhbmdlZCB3aXRoIEZPUiBQT1JUSU9OIE9GLgog ICovCiB2b2lkCi1GaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKLQkJCQkgIE9pZCAq Y29udGFpbmVkYnlvcGVyb2lkLAotCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9p ZCkKK0ZpbmRGS1BlcmlvZE9wZXJzQW5kUHJvY3MoT2lkIG9wY2xhc3MsCisJCQkJCQkgIE9p ZCAqY29udGFpbmVkYnlvcGVyb2lkLAorCQkJCQkJICBPaWQgKmFnZ2VkY29udGFpbmVkYnlv cGVyb2lkLAorCQkJCQkJICBPaWQgKmludGVyc2VjdHByb2NvaWQpCiB7CiAJT2lkCQlvcGZh bWlseSA9IEludmFsaWRPaWQ7CiAJT2lkCQlvcGNpbnR5cGUgPSBJbnZhbGlkT2lkOwpAQCAt MTcwNSw2ICsxNzA4LDE1IEBAIEZpbmRGS1BlcmlvZE9wZXJzKE9pZCBvcGNsYXNzLAogCQkJ CQkJCQkJIEFOWU1VTFRJUkFOR0VPSUQsCiAJCQkJCQkJCQkgYWdnZWRjb250YWluZWRieW9w ZXJvaWQsCiAJCQkJCQkJCQkgJnN0cmF0KTsKKworCS8qCisJICogSWYgdGhlIGNvbW1hbmQg dXNlcyBGT1IgUE9SVElPTiBPRiwKKwkgKiB3ZSB3aWxsIGFsc28gbmVlZCBhbiBpbnRlcnNl Y3Qgc3VwcG9ydCBwcm9jLgorCSAqIElmIHRoaXMgaXMgbWlzc2luZyB3ZSBkb24ndCBuZWVk IHRvIGNvbXBsYWluIGhlcmUsCisJICogYmVjYXVzZSBGT1IgUE9SVElPTiBPRiB3aWxsIG5v dCBiZSBhbGxvd2VkLgorCSAqLworCWlmIChvcGZhbWlseSAhPSBJbnZhbGlkT2lkICYmIG9w Y2ludHlwZSAhPSBJbnZhbGlkT2lkKQorCQkqaW50ZXJzZWN0cHJvY29pZCA9IGdldF9vcGZh bWlseV9wcm9jKG9wZmFtaWx5LCBvcGNpbnR5cGUsIG9wY2ludHlwZSwgR0lTVF9JTlRFUlNF Q1RfUFJPQyk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDI5 YjY4ODNjYTYwLi42OTk3NTg0OGQ1NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMK QEAgLTUxMCw3ICs1MTAsNyBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBhZGRGa1JlY3Vyc2VS ZWZlcmVuY2VkKExpc3QgKip3cXVldWUsIENvbnN0cmFpbnQgKmZrY29uc3RyYQogCQkJCQkJ CQkJCQlib29sIG9sZF9jaGVja19vaywKIAkJCQkJCQkJCQkJT2lkIHBhcmVudERlbFRyaWdn ZXIsIE9pZCBwYXJlbnRVcGRUcmlnZ2VyLAogCQkJCQkJCQkJCQlib29sIHdpdGhfcGVyaW9k KTsKLXN0YXRpYyB2b2lkIHZhbGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMoaW50IG51bWZr cywgY29uc3QgaW50MTYgKmZrYXR0bnVtcywKK3N0YXRpYyB2b2lkIHZhbGlkYXRlRmtPbkRl bGV0ZVNldENvbHVtbnMoaW50IG51bWZrcywgY29uc3QgaW50MTYgKmZrYXR0bnVtcywgY29u c3QgaW50MTYgZmtwZXJpb2RhdHRudW0sCiAJCQkJCQkJCQkJIGludCBudW1ma3NldGNvbHMs IGNvbnN0IGludDE2ICpma3NldGNvbHNhdHRudW1zLAogCQkJCQkJCQkJCSBMaXN0ICpma3Nl dGNvbHMpOwogc3RhdGljIHZvaWQgYWRkRmtSZWN1cnNlUmVmZXJlbmNpbmcoTGlzdCAqKndx dWV1ZSwgQ29uc3RyYWludCAqZmtjb25zdHJhaW50LApAQCAtOTgxNyw2ICs5ODE3LDcgQEAg QVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJ bmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAlpbnQxNgkJZmtkZWxzZXRjb2xzW0lOREVYX01B WF9LRVlTXSA9IHswfTsKIAlib29sCQl3aXRoX3BlcmlvZDsKIAlib29sCQlwa193aXRoX3Bl cmlvZDsKKwlpbnQxNgkJZmtwZXJpb2RhdHRudW0gPSBJbnZhbGlkT2lkOwogCWludAkJCWk7 CiAJaW50CQkJbnVtZmtzLAogCQkJCW51bXBrcywKQEAgLTk5MTIsMTUgKzk5MTMsMTkgQEAg QVRBZGRGb3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJ bmZvICp0YWIsIFJlbGF0aW9uIHJlbCwKIAkJCQkJCQkJCSBma2NvbnN0cmFpbnQtPmZrX2F0 dHJzLAogCQkJCQkJCQkJIGZrYXR0bnVtLCBma3R5cG9pZCk7CiAJd2l0aF9wZXJpb2QgPSBm a2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kIHx8IGZrY29uc3RyYWludC0+cGtfd2l0aF9w ZXJpb2Q7Ci0JaWYgKHdpdGhfcGVyaW9kICYmICFma2NvbnN0cmFpbnQtPmZrX3dpdGhfcGVy aW9kKQotCQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9G T1JFSUdOX0tFWSksCi0JCQkJZXJybXNnKCJmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0 aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZSIpKSk7 CisJaWYgKHdpdGhfcGVyaW9kKQorCXsKKwkJaWYgKCFma2NvbnN0cmFpbnQtPmZrX3dpdGhf cGVyaW9kKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZB TElEX0ZPUkVJR05fS0VZKSwKKwkJCQkJZXJybXNnKCJmb3JlaWduIGtleSB1c2VzIFBFUklP RCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJs ZSIpKSk7CisJCWZrcGVyaW9kYXR0bnVtID0gZmthdHRudW1bbnVtZmtzIC0gMV07CisJfQog CiAJbnVtZmtkZWxzZXRjb2xzID0gdHJhbnNmb3JtQ29sdW1uTmFtZUxpc3QoUmVsYXRpb25H ZXRSZWxpZChyZWwpLAogCQkJCQkJCQkJCQkgIGZrY29uc3RyYWludC0+ZmtfZGVsX3NldF9j b2xzLAogCQkJCQkJCQkJCQkgIGZrZGVsc2V0Y29scywgTlVMTCk7Ci0JdmFsaWRhdGVGa09u RGVsZXRlU2V0Q29sdW1ucyhudW1ma3MsIGZrYXR0bnVtLAorCXZhbGlkYXRlRmtPbkRlbGV0 ZVNldENvbHVtbnMobnVtZmtzLCBma2F0dG51bSwgZmtwZXJpb2RhdHRudW0sCiAJCQkJCQkJ CSBudW1ma2RlbHNldGNvbHMsIGZrZGVsc2V0Y29scywKIAkJCQkJCQkJIGZrY29uc3RyYWlu dC0+ZmtfZGVsX3NldF9jb2xzKTsKIApAQCAtMTAyNTgsOCArMTAyNjMsMTIgQEAgQVRBZGRG b3JlaWduS2V5Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0 YWIsIFJlbGF0aW9uIHJlbCwKIAl7CiAJCU9pZAkJCXBlcmlvZG9wZXJvaWQ7CiAJCU9pZAkJ CWFnZ2VkcGVyaW9kb3Blcm9pZDsKKwkJT2lkCQkJaW50ZXJzZWN0cHJvY29pZDsKIAotCQlG aW5kRktQZXJpb2RPcGVycyhvcGNsYXNzZXNbbnVtcGtzIC0gMV0sICZwZXJpb2RvcGVyb2lk LCAmYWdnZWRwZXJpb2RvcGVyb2lkKTsKKwkJRmluZEZLUGVyaW9kT3BlcnNBbmRQcm9jcyhv cGNsYXNzZXNbbnVtcGtzIC0gMV0sCisJCQkJCQkJCSAgJnBlcmlvZG9wZXJvaWQsCisJCQkJ CQkJCSAgJmFnZ2VkcGVyaW9kb3Blcm9pZCwKKwkJCQkJCQkJICAmaW50ZXJzZWN0cHJvY29p ZCk7CiAJfQogCiAJLyoKQEAgLTEwMzEzLDYgKzEwMzIyLDcgQEAgQVRBZGRGb3JlaWduS2V5 Q29uc3RyYWludChMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0 aW9uIHJlbCwKICAqLwogdm9pZAogdmFsaWRhdGVGa09uRGVsZXRlU2V0Q29sdW1ucyhpbnQg bnVtZmtzLCBjb25zdCBpbnQxNiAqZmthdHRudW1zLAorCQkJCQkJCSBjb25zdCBpbnQxNiBm a3BlcmlvZGF0dG51bSwKIAkJCQkJCQkgaW50IG51bWZrc2V0Y29scywgY29uc3QgaW50MTYg KmZrc2V0Y29sc2F0dG51bXMsCiAJCQkJCQkJIExpc3QgKmZrc2V0Y29scykKIHsKQEAgLTEw MzIzLDYgKzEwMzMzLDEzIEBAIHZhbGlkYXRlRmtPbkRlbGV0ZVNldENvbHVtbnMoaW50IG51 bWZrcywgY29uc3QgaW50MTYgKmZrYXR0bnVtcywKIAogCQlmb3IgKGludCBqID0gMDsgaiA8 IG51bWZrczsgaisrKQogCQl7CisJCQlpZiAoZmtwZXJpb2RhdHRudW0gPT0gc2V0Y29sX2F0 dG51bSkKKwkJCXsKKwkJCQljaGFyCSAgICpjb2wgPSBzdHJWYWwobGlzdF9udGgoZmtzZXRj b2xzLCBpKSk7CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVf SU5WQUxJRF9DT0xVTU5fUkVGRVJFTkNFKSwKKwkJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVz XCIgcmVmZXJlbmNlZCBpbiBPTiBERUxFVEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUgUEVSSU9E IiwgY29sKSkpOworCQkJfQogCQkJaWYgKGZrYXR0bnVtc1tqXSA9PSBzZXRjb2xfYXR0bnVt KQogCQkJewogCQkJCXNlZW4gPSB0cnVlOwpAQCAtMTI2MjksMTYgKzEyNjQ2LDYgQEAgY3Jl YXRlRm9yZWlnbktleUFjdGlvblRyaWdnZXJzKFJlbGF0aW9uIHJlbCwgT2lkIHJlZlJlbE9p ZCwgQ29uc3RyYWludCAqZmtjb25zdHIKIAlma190cmlnZ2VyLT50cmFuc2l0aW9uUmVscyA9 IE5JTDsKIAlma190cmlnZ2VyLT5jb25zdHJyZWwgPSBOVUxMOwogCi0JLyogRm9yYmlkIHNv bWUgYWN0aW9ucyB3aXRoIFBFUklPRCBlbGVtZW50cyBmb3Igbm93OiAqLwotCWlmIChma2Nv bnN0cmFpbnQtPmZrX3dpdGhfcGVyaW9kICYmICgKLQkJZmtjb25zdHJhaW50LT5ma19kZWxf YWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9DQVNDQURFIHx8Ci0JCWZrY29uc3RyYWludC0+ ZmtfZGVsX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fU0VUTlVMTCB8fAotCQlma2NvbnN0 cmFpbnQtPmZrX2RlbF9hY3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX1NFVERFRkFVTFQpKQot CQllcmVwb3J0KEVSUk9SLAotCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQ UE9SVEVEKSwKLQkJCQkgZXJybXNnKCJpbnZhbGlkICVzIGFjdGlvbiBmb3IgZm9yZWlnbiBr ZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QiLAotCQkJCQkJIk9OIERFTEVURSIpKSk7Ci0K IAlzd2l0Y2ggKGZrY29uc3RyYWludC0+ZmtfZGVsX2FjdGlvbikKIAl7CiAJCWNhc2UgRktD T05TVFJfQUNUSU9OX05PQUNUSU9OOgpAQCAtMTI2NTQsMTcgKzEyNjYxLDI2IEBAIGNyZWF0 ZUZvcmVpZ25LZXlBY3Rpb25UcmlnZ2VycyhSZWxhdGlvbiByZWwsIE9pZCByZWZSZWxPaWQs IENvbnN0cmFpbnQgKmZrY29uc3RyCiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX0NBU0NBREU6 CiAJCQlma190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQlma190cmlnZ2VyLT5p bml0ZGVmZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVt RnVuY05hbWUoIlJJX0ZLZXlfY2FzY2FkZV9kZWwiKTsKKwkJCWlmIChma2NvbnN0cmFpbnQt PmZrX3dpdGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVu Y05hbWUoIlJJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfZGVsIik7CisJCQllbHNlCisJCQkJZmtf dHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9jYXNjYWRlX2Rl bCIpOwogCQkJYnJlYWs7CiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX1NFVE5VTEw6CiAJCQlm a190cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQlma190cmlnZ2VyLT5pbml0ZGVm ZXJyZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05h bWUoIlJJX0ZLZXlfc2V0bnVsbF9kZWwiKTsKKwkJCWlmIChma2NvbnN0cmFpbnQtPmZrX3dp dGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUo IlJJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsIik7CisJCQllbHNlCisJCQkJZmtfdHJpZ2dl ci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRudWxsX2RlbCIpOwog CQkJYnJlYWs7CiAJCWNhc2UgRktDT05TVFJfQUNUSU9OX1NFVERFRkFVTFQ6CiAJCQlma190 cmlnZ2VyLT5kZWZlcnJhYmxlID0gZmFsc2U7CiAJCQlma190cmlnZ2VyLT5pbml0ZGVmZXJy ZWQgPSBmYWxzZTsKLQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUo IlJJX0ZLZXlfc2V0ZGVmYXVsdF9kZWwiKTsKKwkJCWlmIChma2NvbnN0cmFpbnQtPmZrX3dp dGhfcGVyaW9kKQorCQkJCWZrX3RyaWdnZXItPmZ1bmNuYW1lID0gU3lzdGVtRnVuY05hbWUo IlJJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfZGVsIik7CisJCQllbHNlCisJCQkJZmtfdHJp Z2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgiUklfRktleV9zZXRkZWZhdWx0X2Rl bCIpOwogCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIEZLIGFjdGlvbiB0eXBlOiAlZCIsCkBAIC0xMjcwMCwxNiArMTI3MTYsNiBAQCBjcmVh dGVGb3JlaWduS2V5QWN0aW9uVHJpZ2dlcnMoUmVsYXRpb24gcmVsLCBPaWQgcmVmUmVsT2lk LCBDb25zdHJhaW50ICpma2NvbnN0cgogCWZrX3RyaWdnZXItPnRyYW5zaXRpb25SZWxzID0g TklMOwogCWZrX3RyaWdnZXItPmNvbnN0cnJlbCA9IE5VTEw7CiAKLQkvKiBGb3JiaWQgc29t ZSBhY3Rpb25zIHdpdGggUEVSSU9EIGVsZW1lbnRzIGZvciBub3c6ICovCi0JaWYgKGZrY29u c3RyYWludC0+Zmtfd2l0aF9wZXJpb2QgJiYgKAotCQlma2NvbnN0cmFpbnQtPmZrX3VwZF9h Y3Rpb24gPT0gRktDT05TVFJfQUNUSU9OX0NBU0NBREUgfHwKLQkJZmtjb25zdHJhaW50LT5m a191cGRfYWN0aW9uID09IEZLQ09OU1RSX0FDVElPTl9TRVROVUxMIHx8Ci0JCWZrY29uc3Ry YWludC0+ZmtfdXBkX2FjdGlvbiA9PSBGS0NPTlNUUl9BQ1RJT05fU0VUREVGQVVMVCkpCi0J CWVyZXBvcnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQ T1JURUQpLAotCQkJCSBlcnJtc2coImludmFsaWQgJXMgYWN0aW9uIGZvciBmb3JlaWduIGtl eSBjb25zdHJhaW50IHVzaW5nIFBFUklPRCIsCi0JCQkJCQkiT04gVVBEQVRFIikpKTsKLQog CXN3aXRjaCAoZmtjb25zdHJhaW50LT5ma191cGRfYWN0aW9uKQogCXsKIAkJY2FzZSBGS0NP TlNUUl9BQ1RJT05fTk9BQ1RJT046CkBAIC0xMjcyNSwxNyArMTI3MzEsMjYgQEAgY3JlYXRl Rm9yZWlnbktleUFjdGlvblRyaWdnZXJzKFJlbGF0aW9uIHJlbCwgT2lkIHJlZlJlbE9pZCwg Q29uc3RyYWludCAqZmtjb25zdHIKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fQ0FTQ0FERToK IAkJCWZrX3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3RyaWdnZXItPmlu aXRkZWZlcnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1G dW5jTmFtZSgiUklfRktleV9jYXNjYWRlX3VwZCIpOworCQkJaWYgKGZrY29uc3RyYWludC0+ Zmtfd2l0aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5j TmFtZSgiUklfRktleV9wZXJpb2RfY2FzY2FkZV91cGQiKTsKKwkJCWVsc2UKKwkJCQlma190 cmlnZ2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X2Nhc2NhZGVfdXBk Iik7CiAJCQlicmVhazsKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fU0VUTlVMTDoKIAkJCWZr X3RyaWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZl cnJlZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFt ZSgiUklfRktleV9zZXRudWxsX3VwZCIpOworCQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0 aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgi UklfRktleV9wZXJpb2Rfc2V0bnVsbF91cGQiKTsKKwkJCWVsc2UKKwkJCQlma190cmlnZ2Vy LT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldG51bGxfdXBkIik7CiAJ CQlicmVhazsKIAkJY2FzZSBGS0NPTlNUUl9BQ1RJT05fU0VUREVGQVVMVDoKIAkJCWZrX3Ry aWdnZXItPmRlZmVycmFibGUgPSBmYWxzZTsKIAkJCWZrX3RyaWdnZXItPmluaXRkZWZlcnJl ZCA9IGZhbHNlOwotCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgi UklfRktleV9zZXRkZWZhdWx0X3VwZCIpOworCQkJaWYgKGZrY29uc3RyYWludC0+Zmtfd2l0 aF9wZXJpb2QpCisJCQkJZmtfdHJpZ2dlci0+ZnVuY25hbWUgPSBTeXN0ZW1GdW5jTmFtZSgi UklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQiKTsKKwkJCWVsc2UKKwkJCQlma190cmln Z2VyLT5mdW5jbmFtZSA9IFN5c3RlbUZ1bmNOYW1lKCJSSV9GS2V5X3NldGRlZmF1bHRfdXBk Iik7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6 ZWQgRksgYWN0aW9uIHR5cGU6ICVkIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9yaV90cmlnZ2Vycy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JpX3RyaWdnZXJz LmMKaW5kZXggMTIzZWFhODE4ZGIuLmQ2ZmUyZTZmMjc5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvcmlfdHJpZ2dlcnMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvcmlfdHJpZ2dlcnMuYwpAQCAtODAsNiArODAsMTIgQEAKICNkZWZpbmUgUklfUExBTl9T RVROVUxMX09OVVBEQVRFCQk3CiAjZGVmaW5lIFJJX1BMQU5fU0VUREVGQVVMVF9PTkRFTEVU RQkJOAogI2RlZmluZSBSSV9QTEFOX1NFVERFRkFVTFRfT05VUERBVEUJCTkKKyNkZWZpbmUg UklfUExBTl9QRVJJT0RfQ0FTQ0FERV9PTkRFTEVURQkJMTAKKyNkZWZpbmUgUklfUExBTl9Q RVJJT0RfQ0FTQ0FERV9PTlVQREFURQkJMTEKKyNkZWZpbmUgUklfUExBTl9QRVJJT0RfU0VU TlVMTF9PTlVQREFURQkJMTIKKyNkZWZpbmUgUklfUExBTl9QRVJJT0RfU0VUTlVMTF9PTkRF TEVURQkJMTMKKyNkZWZpbmUgUklfUExBTl9QRVJJT0RfU0VUREVGQVVMVF9PTlVQREFURQkx NAorI2RlZmluZSBSSV9QTEFOX1BFUklPRF9TRVRERUZBVUxUX09OREVMRVRFCTE1CiAKICNk ZWZpbmUgTUFYX1FVT1RFRF9OQU1FX0xFTiAgKE5BTUVEQVRBTEVOKjIrMykKICNkZWZpbmUg TUFYX1FVT1RFRF9SRUxfTkFNRV9MRU4gIChNQVhfUVVPVEVEX05BTUVfTEVOKjIpCkBAIC0x MjksNiArMTM1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUklfQ29uc3RyYWludEluZm8KIAlPaWQJ CQlmZl9lcV9vcHJzW1JJX01BWF9OVU1LRVlTXTsgLyogZXF1YWxpdHkgb3BlcmF0b3JzIChG SyA9IEZLKSAqLwogCU9pZAkJCXBlcmlvZF9jb250YWluZWRfYnlfb3BlcjsJLyogYW55cmFu Z2UgPEAgYW55cmFuZ2UgKi8KIAlPaWQJCQlhZ2dlZF9wZXJpb2RfY29udGFpbmVkX2J5X29w ZXI7CS8qIGZrYXR0ciA8QCByYW5nZV9hZ2cocGthdHRyKSAqLworCU9pZAkJCXBlcmlvZF9p bnRlcnNlY3RfcHJvYzsJLyogYW55cmFuZ2UgKiBhbnlyYW5nZSAob3IgbXVsdGlyYW5nZSkg Ki8KIAlkbGlzdF9ub2RlCXZhbGlkX2xpbms7CQkvKiBMaW5rIGluIGxpc3Qgb2YgdmFsaWQg ZW50cmllcyAqLwogfSBSSV9Db25zdHJhaW50SW5mbzsKIApAQCAtMTkyLDYgKzE5OSw3IEBA IHN0YXRpYyBib29sIHJpX0NoZWNrX1BrX01hdGNoKFJlbGF0aW9uIHBrX3JlbCwgUmVsYXRp b24gZmtfcmVsLAogCQkJCQkJCSAgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbyk7 CiBzdGF0aWMgRGF0dW0gcmlfcmVzdHJpY3QoVHJpZ2dlckRhdGEgKnRyaWdkYXRhLCBib29s IGlzX25vX2FjdGlvbik7CiBzdGF0aWMgRGF0dW0gcmlfc2V0KFRyaWdnZXJEYXRhICp0cmln ZGF0YSwgYm9vbCBpc19zZXRfbnVsbCwgaW50IHRna2luZCk7CitzdGF0aWMgRGF0dW0gdHJp X3NldChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tp bmQpOwogc3RhdGljIHZvaWQgcXVvdGVPbmVOYW1lKGNoYXIgKmJ1ZmZlciwgY29uc3QgY2hh ciAqbmFtZSk7CiBzdGF0aWMgdm9pZCBxdW90ZVJlbGF0aW9uTmFtZShjaGFyICpidWZmZXIs IFJlbGF0aW9uIHJlbCk7CiBzdGF0aWMgdm9pZCByaV9HZW5lcmF0ZVF1YWwoU3RyaW5nSW5m byBidWYsCkBAIC0yMzksNyArMjQ3LDcgQEAgc3RhdGljIHZvaWQgcmlfUmVwb3J0VmlvbGF0 aW9uKGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJCQkJCQkJICAgaW50IHF1 ZXJ5bm8sIGJvb2wgcGFydGdvbmUpIHBnX2F0dHJpYnV0ZV9ub3JldHVybigpOwogc3RhdGlj IGJvb2wgZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRn X3RlbXBvcmFsLAogCQkJCQkJCQkgY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbyk7 Ci1zdGF0aWMgRGF0dW0gcmVzdHJpY3RfY2FzY2FkaW5nX3JhbmdlKGNvbnN0IEZvclBvcnRp b25PZlN0YXRlICp0Z190ZW1wb3JhbCwKK3N0YXRpYyBEYXR1bSByZXN0cmljdF9jYXNjYWRp bmdfcmFuZ2UoUmVsYXRpb24gcmVsLCBjb25zdCBGb3JQb3J0aW9uT2ZTdGF0ZSAqdGdfdGVt cG9yYWwsCiAJCQkJCQkJCQkgIGNvbnN0IFJJX0NvbnN0cmFpbnRJbmZvICpyaWluZm8sCiAJ CQkJCQkJCQkgIFR1cGxlVGFibGVTbG90ICpvbGRzbG90KTsKIApAQCAtODE3LDcgKzgyNSw3 IEBAIHJpX3Jlc3RyaWN0KFRyaWdnZXJEYXRhICp0cmlnZGF0YSwgYm9vbCBpc19ub19hY3Rp b24pCiAJaWYgKHRyaWdkYXRhLT50Z190ZW1wb3JhbCkKIAl7CiAJCXRhcmdldFJhbmdlUGFy YW0gPSByaWluZm8tPm5rZXlzIC0gMTsKLQkJdGFyZ2V0UmFuZ2UgPSByZXN0cmljdF9jYXNj YWRpbmdfcmFuZ2UodHJpZ2RhdGEtPnRnX3RlbXBvcmFsLCByaWluZm8sIG9sZHNsb3QpOwor CQl0YXJnZXRSYW5nZSA9IHJlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZShwa19yZWwsIHRyaWdk YXRhLT50Z190ZW1wb3JhbCwgcmlpbmZvLCBvbGRzbG90KTsKIAl9CiAKIAlyaV9QZXJmb3Jt Q2hlY2socmlpbmZvLCAmcWtleSwgcXBsYW4sCkBAIC0xMzE1LDYgKzEzMjMsNTM1IEBAIHJp X3NldChUcmlnZ2VyRGF0YSAqdHJpZ2RhdGEsIGJvb2wgaXNfc2V0X251bGwsIGludCB0Z2tp bmQpCiAJfQogfQogCisvKgorICogUklfRktleV9wZXJpb2RfY2FzY2FkZV9kZWwgLQorICoK KyAqIENhc2NhZGVkIGRlbGV0ZSBmb3JlaWduIGtleSByZWZlcmVuY2VzIGF0IGRlbGV0ZSBl dmVudCBvbiB0ZW1wb3JhbCBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlfcGVyaW9k X2Nhc2NhZGVfZGVsKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJVHJpZ2dlckRhdGEgKnRyaWdk YXRhID0gKFRyaWdnZXJEYXRhICopIGZjaW5mby0+Y29udGV4dDsKKwljb25zdCBSSV9Db25z dHJhaW50SW5mbyAqcmlpbmZvOworCVJlbGF0aW9uCWZrX3JlbDsKKwlSZWxhdGlvbglwa19y ZWw7CisJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3Q7CisJUklfUXVlcnlLZXkgcWtleTsKKwlT UElQbGFuUHRyICBxcGxhbjsKKwlEYXR1bSB0YXJnZXRSYW5nZTsKKworCS8qIENoZWNrIHRo YXQgdGhpcyBpcyBhIHZhbGlkIHRyaWdnZXIgY2FsbCBvbiB0aGUgcmlnaHQgdGltZSBhbmQg ZXZlbnQuICovCisJcmlfQ2hlY2tUcmlnZ2VyKGZjaW5mbywgIlJJX0ZLZXlfcGVyaW9kX2Nh c2NhZGVfZGVsIiwgUklfVFJJR1RZUEVfREVMRVRFKTsKKworCXJpaW5mbyA9IHJpX0ZldGNo Q29uc3RyYWludEluZm8odHJpZ2RhdGEtPnRnX3RyaWdnZXIsCisJCQkJCQkJCQl0cmlnZGF0 YS0+dGdfcmVsYXRpb24sIHRydWUpOworCisJLyoKKwkgKiBHZXQgdGhlIHJlbGF0aW9uIGRl c2NyaXB0b3JzIG9mIHRoZSBGSyBhbmQgUEsgdGFibGVzIGFuZCB0aGUgb2xkIHR1cGxlLgor CSAqCisJICogZmtfcmVsIGlzIG9wZW5lZCBpbiBSb3dFeGNsdXNpdmVMb2NrIG1vZGUgc2lu Y2UgdGhhdCdzIHdoYXQgb3VyCisJICogZXZlbnR1YWwgREVMRVRFIHdpbGwgZ2V0IG9uIGl0 LgorCSAqLworCWZrX3JlbCA9IHRhYmxlX29wZW4ocmlpbmZvLT5ma19yZWxpZCwgUm93RXhj bHVzaXZlTG9jayk7CisJcGtfcmVsID0gdHJpZ2RhdGEtPnRnX3JlbGF0aW9uOworCW9sZHNs b3QgPSB0cmlnZGF0YS0+dGdfdHJpZ3Nsb3Q7CisKKwkvKgorCSAqIERvbid0IGRlbGV0ZSB0 aGFuIG1vcmUgdGhhbiB0aGUgUEsncyBkdXJhdGlvbiwKKwkgKiB0cmltbWVkIGJ5IGFuIG9y aWdpbmFsIEZPUiBQT1JUSU9OIE9GIGlmIG5lY2Vzc2FyeS4KKwkgKi8KKwl0YXJnZXRSYW5n ZSA9IHJlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZShwa19yZWwsIHRyaWdkYXRhLT50Z190ZW1w b3JhbCwgcmlpbmZvLCBvbGRzbG90KTsKKworCWlmIChTUElfY29ubmVjdCgpICE9IFNQSV9P S19DT05ORUNUKQorCQllbG9nKEVSUk9SLCAiU1BJX2Nvbm5lY3QgZmFpbGVkIik7CisKKwkv KiBGZXRjaCBvciBwcmVwYXJlIGEgc2F2ZWQgcGxhbiBmb3IgdGhlIGNhc2NhZGVkIGRlbGV0 ZSAqLworCXJpX0J1aWxkUXVlcnlLZXkoJnFrZXksIHJpaW5mbywgUklfUExBTl9QRVJJT0Rf Q0FTQ0FERV9PTkRFTEVURSk7CisKKwlpZiAoKHFwbGFuID0gcmlfRmV0Y2hQcmVwYXJlZFBs YW4oJnFrZXkpKSA9PSBOVUxMKQorCXsKKwkJU3RyaW5nSW5mb0RhdGEgcXVlcnlidWY7CisJ CWNoYXIJCWZrcmVsbmFtZVtNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTl07CisJCWNoYXIJCWF0 dG5hbWVbTUFYX1FVT1RFRF9OQU1FX0xFTl07CisJCWNoYXIJCXBhcmFtbmFtZVsxNl07CisJ CWNvbnN0IGNoYXIgKnF1ZXJ5c2VwOworCQlPaWQJCQlxdWVyeW9pZHNbUklfTUFYX05VTUtF WVMgKyAxXTsKKwkJY29uc3QgY2hhciAqZmtfb25seTsKKworCQkvKiAtLS0tLS0tLS0tCisJ CSAqIFRoZSBxdWVyeSBzdHJpbmcgYnVpbHQgaXMKKwkJICogIERFTEVURSBGUk9NIFtPTkxZ XSA8Zmt0YWJsZT4KKwkJICogIEZPUiBQT1JUSU9OIE9GICRma2F0dCAoJHtuKzF9KQorCQkg KiAgV0hFUkUgJDEgPSBma2F0dDEgW0FORCAuLi5dCisJCSAqIFRoZSB0eXBlIGlkJ3MgZm9y IHRoZSAkIHBhcmFtZXRlcnMgYXJlIHRob3NlIG9mIHRoZQorCQkgKiBjb3JyZXNwb25kaW5n IFBLIGF0dHJpYnV0ZXMuCisJCSAqIC0tLS0tLS0tLS0KKwkJICovCisJCWluaXRTdHJpbmdJ bmZvKCZxdWVyeWJ1Zik7CisJCWZrX29ubHkgPSBma19yZWwtPnJkX3JlbC0+cmVsa2luZCA9 PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFID8KKwkJCSIiIDogIk9OTFkgIjsKKwkJcXVv dGVSZWxhdGlvbk5hbWUoZmtyZWxuYW1lLCBma19yZWwpOworCQlxdW90ZU9uZU5hbWUoYXR0 bmFtZSwgUklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW3JpaW5mby0+bmtl eXMgLSAxXSkpOworCisJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiREVMRVRFIEZS T00gJXMlcyBGT1IgUE9SVElPTiBPRiAlcyAoJCVkKSIsCisJCQkJCQkgZmtfb25seSwgZmty ZWxuYW1lLCBhdHRuYW1lLCByaWluZm8tPm5rZXlzICsgMSk7CisJCXF1ZXJ5c2VwID0gIldI RVJFIjsKKwkJZm9yIChpbnQgaSA9IDA7IGkgPCByaWluZm8tPm5rZXlzOyBpKyspCisJCXsK KwkJCU9pZCBwa190eXBlID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1z W2ldKTsKKwkJCU9pZCBwa19jb2xsID0gUklBdHRDb2xsYXRpb24ocGtfcmVsLCByaWluZm8t PnBrX2F0dG51bXNbaV0pOworCQkJT2lkIGZrX3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCBy aWluZm8tPmZrX2F0dG51bXNbaV0pOworCQkJT2lkIGZrX2NvbGwgPSBSSUF0dENvbGxhdGlv bihma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tpXSk7CisKKwkJCXF1b3RlT25lTmFtZShh dHRuYW1lLAorCQkJCQkJIFJJQXR0TmFtZShma19yZWwsIHJpaW5mby0+ZmtfYXR0bnVtc1tp XSkpOworCQkJc3ByaW50ZihwYXJhbW5hbWUsICIkJWQiLCBpICsgMSk7CisJCQlyaV9HZW5l cmF0ZVF1YWwoJnF1ZXJ5YnVmLCBxdWVyeXNlcCwKKwkJCQkJCQlwYXJhbW5hbWUsIHBrX3R5 cGUsCisJCQkJCQkJcmlpbmZvLT5wZl9lcV9vcHJzW2ldLAorCQkJCQkJCWF0dG5hbWUsIGZr X3R5cGUpOworCQkJaWYgKHBrX2NvbGwgIT0gZmtfY29sbCAmJiAhZ2V0X2NvbGxhdGlvbl9p c2RldGVybWluaXN0aWMocGtfY29sbCkpCisJCQkJcmlfR2VuZXJhdGVRdWFsQ29sbGF0aW9u KCZxdWVyeWJ1ZiwgcGtfY29sbCk7CisJCQlxdWVyeXNlcCA9ICJBTkQiOworCQkJcXVlcnlv aWRzW2ldID0gcGtfdHlwZTsKKwkJfQorCisJCS8qIFNldCBhIHBhcmFtIGZvciBGT1IgUE9S VElPTiBPRiBUTy9GUk9NICovCisJCXF1ZXJ5b2lkc1tyaWluZm8tPm5rZXlzXSA9IFJJQXR0 VHlwZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWluZm8tPm5rZXlzIC0gMV0pOwor CisJCS8qIFByZXBhcmUgYW5kIHNhdmUgdGhlIHBsYW4gKi8KKwkJcXBsYW4gPSByaV9QbGFu Q2hlY2socXVlcnlidWYuZGF0YSwgcmlpbmZvLT5ua2V5cyArIDEsIHF1ZXJ5b2lkcywKKwkJ CQkJCQkgJnFrZXksIGZrX3JlbCwgcGtfcmVsKTsKKwl9CisKKwkvKgorCSAqIFdlIGhhdmUg YSBwbGFuIG5vdy4gQnVpbGQgdXAgdGhlIGFyZ3VtZW50cyBmcm9tIHRoZSBrZXkgdmFsdWVz IGluIHRoZQorCSAqIGRlbGV0ZWQgUEsgdHVwbGUgYW5kIGRlbGV0ZSB0aGUgcmVmZXJlbmNp bmcgcm93cworCSAqLworCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwK KwkJCQkJZmtfcmVsLCBwa19yZWwsCisJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCXJpaW5m by0+bmtleXMsIHRhcmdldFJhbmdlLAorCQkJCQl0cnVlLAkgICAvKiBtdXN0IGRldGVjdCBu ZXcgcm93cyAqLworCQkJCQlTUElfT0tfREVMRVRFKTsKKworCWlmIChTUElfZmluaXNoKCkg IT0gU1BJX09LX0ZJTklTSCkKKwkJZWxvZyhFUlJPUiwgIlNQSV9maW5pc2ggZmFpbGVkIik7 CisKKwl0YWJsZV9jbG9zZShma19yZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJu IFBvaW50ZXJHZXREYXR1bShOVUxMKTsKK30KKworLyoKKyAqIFJJX0ZLZXlfcGVyaW9kX2Nh c2NhZGVfdXBkIC0KKyAqCisgKiBDYXNjYWRlZCB1cGRhdGUgZm9yZWlnbiBrZXkgcmVmZXJl bmNlcyBhdCB1cGRhdGUgZXZlbnQgb24gdGVtcG9yYWwgUEsgdGFibGUuCisgKi8KK0RhdHVt CitSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX3VwZChQR19GVU5DVElPTl9BUkdTKQoreworCVRy aWdnZXJEYXRhICp0cmlnZGF0YSA9IChUcmlnZ2VyRGF0YSAqKSBmY2luZm8tPmNvbnRleHQ7 CisJY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbzsKKwlSZWxhdGlvbglma19yZWw7 CisJUmVsYXRpb24JcGtfcmVsOworCVR1cGxlVGFibGVTbG90ICpvbGRzbG90OworCVR1cGxl VGFibGVTbG90ICpuZXdzbG90OworCVJJX1F1ZXJ5S2V5IHFrZXk7CisJU1BJUGxhblB0ciAg cXBsYW47CisJRGF0dW0gdGFyZ2V0UmFuZ2U7CisKKwkvKiBDaGVjayB0aGF0IHRoaXMgaXMg YSB2YWxpZCB0cmlnZ2VyIGNhbGwgb24gdGhlIHJpZ2h0IHRpbWUgYW5kIGV2ZW50LiAqLwor CXJpX0NoZWNrVHJpZ2dlcihmY2luZm8sICJSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX3VwZCIs IFJJX1RSSUdUWVBFX1VQREFURSk7CisKKwlyaWluZm8gPSByaV9GZXRjaENvbnN0cmFpbnRJ bmZvKHRyaWdkYXRhLT50Z190cmlnZ2VyLAorCQkJCQkJCQkJdHJpZ2RhdGEtPnRnX3JlbGF0 aW9uLCB0cnVlKTsKKworCS8qCisJICogR2V0IHRoZSByZWxhdGlvbiBkZXNjcmlwdG9ycyBv ZiB0aGUgRksgYW5kIFBLIHRhYmxlcyBhbmQgdGhlIG5ldyBhbmQKKwkgKiBvbGQgdHVwbGUu CisJICoKKwkgKiBma19yZWwgaXMgb3BlbmVkIGluIFJvd0V4Y2x1c2l2ZUxvY2sgbW9kZSBz aW5jZSB0aGF0J3Mgd2hhdCBvdXIKKwkgKiBldmVudHVhbCBVUERBVEUgd2lsbCBnZXQgb24g aXQuCisJICovCisJZmtfcmVsID0gdGFibGVfb3BlbihyaWluZm8tPmZrX3JlbGlkLCBSb3dF eGNsdXNpdmVMb2NrKTsKKwlwa19yZWwgPSB0cmlnZGF0YS0+dGdfcmVsYXRpb247CisJbmV3 c2xvdCA9IHRyaWdkYXRhLT50Z19uZXdzbG90OworCW9sZHNsb3QgPSB0cmlnZGF0YS0+dGdf dHJpZ3Nsb3Q7CisKKwkvKgorCSAqIERvbid0IGRlbGV0ZSB0aGFuIG1vcmUgdGhhbiB0aGUg UEsncyBkdXJhdGlvbiwKKwkgKiB0cmltbWVkIGJ5IGFuIG9yaWdpbmFsIEZPUiBQT1JUSU9O IE9GIGlmIG5lY2Vzc2FyeS4KKwkgKi8KKwl0YXJnZXRSYW5nZSA9IHJlc3RyaWN0X2Nhc2Nh ZGluZ19yYW5nZShwa19yZWwsIHRyaWdkYXRhLT50Z190ZW1wb3JhbCwgcmlpbmZvLCBvbGRz bG90KTsKKworCWlmIChTUElfY29ubmVjdCgpICE9IFNQSV9PS19DT05ORUNUKQorCQllbG9n KEVSUk9SLCAiU1BJX2Nvbm5lY3QgZmFpbGVkIik7CisKKwkvKiBGZXRjaCBvciBwcmVwYXJl IGEgc2F2ZWQgcGxhbiBmb3IgdGhlIGNhc2NhZGVkIHVwZGF0ZSAqLworCXJpX0J1aWxkUXVl cnlLZXkoJnFrZXksIHJpaW5mbywgUklfUExBTl9QRVJJT0RfQ0FTQ0FERV9PTlVQREFURSk7 CisKKwlpZiAoKHFwbGFuID0gcmlfRmV0Y2hQcmVwYXJlZFBsYW4oJnFrZXkpKSA9PSBOVUxM KQorCXsKKwkJU3RyaW5nSW5mb0RhdGEgcXVlcnlidWY7CisJCVN0cmluZ0luZm9EYXRhIHF1 YWxidWY7CisJCWNoYXIJCWZrcmVsbmFtZVtNQVhfUVVPVEVEX1JFTF9OQU1FX0xFTl07CisJ CWNoYXIJCWF0dG5hbWVbTUFYX1FVT1RFRF9OQU1FX0xFTl07CisJCWNoYXIJCXBhcmFtbmFt ZVsxNl07CisJCWNvbnN0IGNoYXIgKnF1ZXJ5c2VwOworCQljb25zdCBjaGFyICpxdWFsc2Vw OworCQlPaWQJCSBxdWVyeW9pZHNbMiAqIFJJX01BWF9OVU1LRVlTICsgMV07CisJCWNvbnN0 IGNoYXIgKmZrX29ubHk7CisKKwkJLyogLS0tLS0tLS0tLQorCQkgKiBUaGUgcXVlcnkgc3Ry aW5nIGJ1aWx0IGlzCisJCSAqICBVUERBVEUgW09OTFldIDxma3RhYmxlPgorCQkgKgkJICBG T1IgUE9SVElPTiBPRiAkZmthdHQgKCR7Mm4rMX0pCisJCSAqCQkgIFNFVCBma2F0dDEgPSAk MSwgWywgLi4uXQorCQkgKgkJICBXSEVSRSAkbiA9IGZrYXR0MSBbQU5EIC4uLl0KKwkJICog VGhlIHR5cGUgaWQncyBmb3IgdGhlICQgcGFyYW1ldGVycyBhcmUgdGhvc2Ugb2YgdGhlCisJ CSAqIGNvcnJlc3BvbmRpbmcgUEsgYXR0cmlidXRlcy4gIE5vdGUgdGhhdCB3ZSBhcmUgYXNz dW1pbmcKKwkJICogdGhlcmUgaXMgYW4gYXNzaWdubWVudCBjYXN0IGZyb20gdGhlIFBLIHRv IHRoZSBGSyB0eXBlOworCQkgKiBlbHNlIHRoZSBwYXJzZXIgd2lsbCBmYWlsLgorCQkgKiAt LS0tLS0tLS0tCisJCSAqLworCQlpbml0U3RyaW5nSW5mbygmcXVlcnlidWYpOworCQlpbml0 U3RyaW5nSW5mbygmcXVhbGJ1Zik7CisJCWZrX29ubHkgPSBma19yZWwtPnJkX3JlbC0+cmVs a2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFID8KKwkJCSIiIDogIk9OTFkgIjsK KwkJcXVvdGVSZWxhdGlvbk5hbWUoZmtyZWxuYW1lLCBma19yZWwpOworCQlxdW90ZU9uZU5h bWUoYXR0bmFtZSwgUklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW3JpaW5m by0+bmtleXMgLSAxXSkpOworCisJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLCAiVVBE QVRFICVzJXMgRk9SIFBPUlRJT04gT0YgJXMgKCQlZCkgU0VUIiwKKwkJCQkJCSBma19vbmx5 LCBma3JlbG5hbWUsIGF0dG5hbWUsIDIgKiByaWluZm8tPm5rZXlzICsgMSk7CisKKwkJcXVl cnlzZXAgPSAiIjsKKwkJcXVhbHNlcCA9ICJXSEVSRSI7CisJCWZvciAoaW50IGkgPSAwLCBq ID0gcmlpbmZvLT5ua2V5czsgaSA8IHJpaW5mby0+bmtleXM7IGkrKywgaisrKQorCQl7CisJ CQlPaWQgcGtfdHlwZSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tp XSk7CisJCQlPaWQgcGtfY29sbCA9IFJJQXR0Q29sbGF0aW9uKHBrX3JlbCwgcmlpbmZvLT5w a19hdHRudW1zW2ldKTsKKwkJCU9pZCBma190eXBlID0gUklBdHRUeXBlKGZrX3JlbCwgcmlp bmZvLT5ma19hdHRudW1zW2ldKTsKKwkJCU9pZCBma19jb2xsID0gUklBdHRDb2xsYXRpb24o ZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0pOworCisJCQlxdW90ZU9uZU5hbWUoYXR0 bmFtZSwKKwkJCQkJCSBSSUF0dE5hbWUoZmtfcmVsLCByaWluZm8tPmZrX2F0dG51bXNbaV0p KTsKKwkJCS8qCisJCQkgKiBEb24ndCBzZXQgdGhlIHRlbXBvcmFsIGNvbHVtbihzKS4KKwkJ CSAqIEZPUiBQT1JUSU9OIE9GIHdpbGwgdGFrZSBjYXJlIG9mIHRoYXQuCisJCQkgKi8KKwkJ CWlmIChpIDwgcmlpbmZvLT5ua2V5cyAtIDEpCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmcXVl cnlidWYsCisJCQkJCQkJCSAiJXMgJXMgPSAkJWQiLAorCQkJCQkJCQkgcXVlcnlzZXAsIGF0 dG5hbWUsIGkgKyAxKTsKKworCQkJc3ByaW50ZihwYXJhbW5hbWUsICIkJWQiLCBqICsgMSk7 CisJCQlyaV9HZW5lcmF0ZVF1YWwoJnF1YWxidWYsIHF1YWxzZXAsCisJCQkJCQkJcGFyYW1u YW1lLCBwa190eXBlLAorCQkJCQkJCXJpaW5mby0+cGZfZXFfb3Byc1tpXSwKKwkJCQkJCQlh dHRuYW1lLCBma190eXBlKTsKKwkJCWlmIChwa19jb2xsICE9IGZrX2NvbGwgJiYgIWdldF9j b2xsYXRpb25faXNkZXRlcm1pbmlzdGljKHBrX2NvbGwpKQorCQkJCXJpX0dlbmVyYXRlUXVh bENvbGxhdGlvbigmcXVlcnlidWYsIHBrX2NvbGwpOworCQkJcXVlcnlzZXAgPSAiLCI7CisJ CQlxdWFsc2VwID0gIkFORCI7CisJCQlxdWVyeW9pZHNbaV0gPSBwa190eXBlOworCQkJcXVl cnlvaWRzW2pdID0gcGtfdHlwZTsKKwkJfQorCQlhcHBlbmRCaW5hcnlTdHJpbmdJbmZvKCZx dWVyeWJ1ZiwgcXVhbGJ1Zi5kYXRhLCBxdWFsYnVmLmxlbik7CisKKwkJLyogU2V0IGEgcGFy YW0gZm9yIEZPUiBQT1JUSU9OIE9GIFRPL0ZST00gKi8KKwkJcXVlcnlvaWRzWzIgKiByaWlu Zm8tPm5rZXlzXSA9IFJJQXR0VHlwZShwa19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tyaWlu Zm8tPm5rZXlzIC0gMV0pOworCisJCS8qIFByZXBhcmUgYW5kIHNhdmUgdGhlIHBsYW4gKi8K KwkJcXBsYW4gPSByaV9QbGFuQ2hlY2socXVlcnlidWYuZGF0YSwgMiAqIHJpaW5mby0+bmtl eXMgKyAxLCBxdWVyeW9pZHMsCisJCQkJCQkJICZxa2V5LCBma19yZWwsIHBrX3JlbCk7CisJ fQorCisJLyoKKwkgKiBXZSBoYXZlIGEgcGxhbiBub3cuIFJ1biBpdCB0byB1cGRhdGUgdGhl IGV4aXN0aW5nIHJlZmVyZW5jZXMuCisJICovCisJcmlfUGVyZm9ybUNoZWNrKHJpaW5mbywg JnFrZXksIHFwbGFuLAorCQkJCQlma19yZWwsIHBrX3JlbCwKKwkJCQkJb2xkc2xvdCwgbmV3 c2xvdCwKKwkJCQkJcmlpbmZvLT5ua2V5cyAqIDIsIHRhcmdldFJhbmdlLAorCQkJCQl0cnVl LAkJLyogbXVzdCBkZXRlY3QgbmV3IHJvd3MgKi8KKwkJCQkJU1BJX09LX1VQREFURSk7CisK KwlpZiAoU1BJX2ZpbmlzaCgpICE9IFNQSV9PS19GSU5JU0gpCisJCWVsb2coRVJST1IsICJT UElfZmluaXNoIGZhaWxlZCIpOworCisJdGFibGVfY2xvc2UoZmtfcmVsLCBSb3dFeGNsdXNp dmVMb2NrKTsKKworCXJldHVybiBQb2ludGVyR2V0RGF0dW0oTlVMTCk7Cit9CisKKy8qCisg KiBSSV9GS2V5X3BlcmlvZF9zZXRudWxsX2RlbCAtCisgKgorICogU2V0IGZvcmVpZ24ga2V5 IHJlZmVyZW5jZXMgdG8gTlVMTCB2YWx1ZXMgYXQgZGVsZXRlIGV2ZW50IG9uIFBLIHRhYmxl LgorICovCitEYXR1bQorUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwkvKiBDaGVjayB0aGF0IHRoaXMgaXMgYSB2YWxpZCB0cmlnZ2VyIGNhbGwg b24gdGhlIHJpZ2h0IHRpbWUgYW5kIGV2ZW50LiAqLworCXJpX0NoZWNrVHJpZ2dlcihmY2lu Zm8sICJSSV9GS2V5X3BlcmlvZF9zZXRudWxsX2RlbCIsIFJJX1RSSUdUWVBFX0RFTEVURSk7 CisKKwkvKiBTaGFyZSBjb2RlIHdpdGggVVBEQVRFIGNhc2UgKi8KKwlyZXR1cm4gdHJpX3Nl dCgoVHJpZ2dlckRhdGEgKikgZmNpbmZvLT5jb250ZXh0LCB0cnVlLCBSSV9UUklHVFlQRV9E RUxFVEUpOworfQorCisvKgorICogUklfRktleV9wZXJpb2Rfc2V0bnVsbF91cGQgLQorICoK KyAqIFNldCBmb3JlaWduIGtleSByZWZlcmVuY2VzIHRvIE5VTEwgYXQgdXBkYXRlIGV2ZW50 IG9uIFBLIHRhYmxlLgorICovCitEYXR1bQorUklfRktleV9wZXJpb2Rfc2V0bnVsbF91cGQo UEdfRlVOQ1RJT05fQVJHUykKK3sKKwkvKiBDaGVjayB0aGF0IHRoaXMgaXMgYSB2YWxpZCB0 cmlnZ2VyIGNhbGwgb24gdGhlIHJpZ2h0IHRpbWUgYW5kIGV2ZW50LiAqLworCXJpX0NoZWNr VHJpZ2dlcihmY2luZm8sICJSSV9GS2V5X3BlcmlvZF9zZXRudWxsX3VwZCIsIFJJX1RSSUdU WVBFX1VQREFURSk7CisKKwkvKiBTaGFyZSBjb2RlIHdpdGggREVMRVRFIGNhc2UgKi8KKwly ZXR1cm4gdHJpX3NldCgoVHJpZ2dlckRhdGEgKikgZmNpbmZvLT5jb250ZXh0LCB0cnVlLCBS SV9UUklHVFlQRV9VUERBVEUpOworfQorCisvKgorICogUklfRktleV9wZXJpb2Rfc2V0ZGVm YXVsdF9kZWwgLQorICoKKyAqIFNldCBmb3JlaWduIGtleSByZWZlcmVuY2VzIHRvIGRlZmF1 bHRzIGF0IGRlbGV0ZSBldmVudCBvbiBQSyB0YWJsZS4KKyAqLworRGF0dW0KK1JJX0ZLZXlf cGVyaW9kX3NldGRlZmF1bHRfZGVsKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJLyogQ2hlY2sg dGhhdCB0aGlzIGlzIGEgdmFsaWQgdHJpZ2dlciBjYWxsIG9uIHRoZSByaWdodCB0aW1lIGFu ZCBldmVudC4gKi8KKwlyaV9DaGVja1RyaWdnZXIoZmNpbmZvLCAiUklfRktleV9wZXJpb2Rf c2V0ZGVmYXVsdF9kZWwiLCBSSV9UUklHVFlQRV9ERUxFVEUpOworCisJLyogU2hhcmUgY29k ZSB3aXRoIFVQREFURSBjYXNlICovCisJcmV0dXJuIHRyaV9zZXQoKFRyaWdnZXJEYXRhICop IGZjaW5mby0+Y29udGV4dCwgZmFsc2UsIFJJX1RSSUdUWVBFX0RFTEVURSk7Cit9CisKKy8q CisgKiBSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X3VwZCAtCisgKgorICogU2V0IGZvcmVp Z24ga2V5IHJlZmVyZW5jZXMgdG8gZGVmYXVsdHMgYXQgdXBkYXRlIGV2ZW50IG9uIFBLIHRh YmxlLgorICovCitEYXR1bQorUklfRktleV9wZXJpb2Rfc2V0ZGVmYXVsdF91cGQoUEdfRlVO Q1RJT05fQVJHUykKK3sKKwkvKiBDaGVjayB0aGF0IHRoaXMgaXMgYSB2YWxpZCB0cmlnZ2Vy IGNhbGwgb24gdGhlIHJpZ2h0IHRpbWUgYW5kIGV2ZW50LiAqLworCXJpX0NoZWNrVHJpZ2dl cihmY2luZm8sICJSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X3VwZCIsIFJJX1RSSUdUWVBF X1VQREFURSk7CisKKwkvKiBTaGFyZSBjb2RlIHdpdGggREVMRVRFIGNhc2UgKi8KKwlyZXR1 cm4gdHJpX3NldCgoVHJpZ2dlckRhdGEgKikgZmNpbmZvLT5jb250ZXh0LCBmYWxzZSwgUklf VFJJR1RZUEVfVVBEQVRFKTsKK30KKworLyoKKyAqIHRyaV9zZXQgLQorICoKKyAqIENvbW1v biBjb2RlIGZvciB0ZW1wb3JhbCBPTiBERUxFVEUgU0VUIE5VTEwsIE9OIERFTEVURSBTRVQg REVGQVVMVCwgT04KKyAqIFVQREFURSBTRVQgTlVMTCwgYW5kIE9OIFVQREFURSBTRVQgREVG QVVMVC4KKyAqLworc3RhdGljIERhdHVtCit0cmlfc2V0KFRyaWdnZXJEYXRhICp0cmlnZGF0 YSwgYm9vbCBpc19zZXRfbnVsbCwgaW50IHRna2luZCkKK3sKKwljb25zdCBSSV9Db25zdHJh aW50SW5mbyAqcmlpbmZvOworCVJlbGF0aW9uCWZrX3JlbDsKKwlSZWxhdGlvbglwa19yZWw7 CisJVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3Q7CisJUklfUXVlcnlLZXkgcWtleTsKKwlTUElQ bGFuUHRyCXFwbGFuOworCURhdHVtCQl0YXJnZXRSYW5nZTsKKwlpbnQzMgkJcXVlcnlubzsK KworCXJpaW5mbyA9IHJpX0ZldGNoQ29uc3RyYWludEluZm8odHJpZ2RhdGEtPnRnX3RyaWdn ZXIsCisJCQkJCQkJCQl0cmlnZGF0YS0+dGdfcmVsYXRpb24sIHRydWUpOworCisJLyoKKwkg KiBHZXQgdGhlIHJlbGF0aW9uIGRlc2NyaXB0b3JzIG9mIHRoZSBGSyBhbmQgUEsgdGFibGVz IGFuZCB0aGUgb2xkIHR1cGxlLgorCSAqCisJICogZmtfcmVsIGlzIG9wZW5lZCBpbiBSb3dF eGNsdXNpdmVMb2NrIG1vZGUgc2luY2UgdGhhdCdzIHdoYXQgb3VyCisJICogZXZlbnR1YWwg VVBEQVRFIHdpbGwgZ2V0IG9uIGl0LgorCSAqLworCWZrX3JlbCA9IHRhYmxlX29wZW4ocmlp bmZvLT5ma19yZWxpZCwgUm93RXhjbHVzaXZlTG9jayk7CisJcGtfcmVsID0gdHJpZ2RhdGEt PnRnX3JlbGF0aW9uOworCW9sZHNsb3QgPSB0cmlnZGF0YS0+dGdfdHJpZ3Nsb3Q7CisKKwkv KgorCSAqIERvbid0IFNFVCBOVUxML0RFRkFVTFQgdGhhbiBtb3JlIHRoYW4gdGhlIFBLJ3Mg ZHVyYXRpb24sCisJICogdHJpbW1lZCBieSBhbiBvcmlnaW5hbCBGT1IgUE9SVElPTiBPRiBp ZiBuZWNlc3NhcnkuCisJICovCisJdGFyZ2V0UmFuZ2UgPSByZXN0cmljdF9jYXNjYWRpbmdf cmFuZ2UocGtfcmVsLCB0cmlnZGF0YS0+dGdfdGVtcG9yYWwsIHJpaW5mbywgb2xkc2xvdCk7 CisKKwlpZiAoU1BJX2Nvbm5lY3QoKSAhPSBTUElfT0tfQ09OTkVDVCkKKwkJZWxvZyhFUlJP UiwgIlNQSV9jb25uZWN0IGZhaWxlZCIpOworCisJLyoKKwkgKiBGZXRjaCBvciBwcmVwYXJl IGEgc2F2ZWQgcGxhbiBmb3IgdGhlIHRyaWdnZXIuCisJICovCisJc3dpdGNoICh0Z2tpbmQp CisJeworCQljYXNlIFJJX1RSSUdUWVBFX1VQREFURToKKwkJCXF1ZXJ5bm8gPSBpc19zZXRf bnVsbAorCQkJCT8gUklfUExBTl9QRVJJT0RfU0VUTlVMTF9PTlVQREFURQorCQkJCTogUklf UExBTl9QRVJJT0RfU0VUREVGQVVMVF9PTlVQREFURTsKKwkJCWJyZWFrOworCQljYXNlIFJJ X1RSSUdUWVBFX0RFTEVURToKKwkJCXF1ZXJ5bm8gPSBpc19zZXRfbnVsbAorCQkJCT8gUklf UExBTl9QRVJJT0RfU0VUTlVMTF9PTkRFTEVURQorCQkJCTogUklfUExBTl9QRVJJT0RfU0VU REVGQVVMVF9PTkRFTEVURTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJZWxvZyhFUlJP UiwgImludmFsaWQgdGdraW5kIHBhc3NlZCB0byByaV9zZXQiKTsKKwl9CisKKwlyaV9CdWls ZFF1ZXJ5S2V5KCZxa2V5LCByaWluZm8sIHF1ZXJ5bm8pOworCisJaWYgKChxcGxhbiA9IHJp X0ZldGNoUHJlcGFyZWRQbGFuKCZxa2V5KSkgPT0gTlVMTCkKKwl7CisJCVN0cmluZ0luZm9E YXRhIHF1ZXJ5YnVmOworCQlTdHJpbmdJbmZvRGF0YSBxdWFsYnVmOworCQljaGFyCQlma3Jl bG5hbWVbTUFYX1FVT1RFRF9SRUxfTkFNRV9MRU5dOworCQljaGFyCQlhdHRuYW1lW01BWF9R VU9URURfTkFNRV9MRU5dOworCQljaGFyCQlwYXJhbW5hbWVbMTZdOworCQljb25zdCBjaGFy ICpxdWVyeXNlcDsKKwkJY29uc3QgY2hhciAqcXVhbHNlcDsKKwkJT2lkCQkJcXVlcnlvaWRz W1JJX01BWF9OVU1LRVlTICsgMV07IC8qICsxIGZvciBGT1IgUE9SVElPTiBPRiAqLworCQlj b25zdCBjaGFyICpma19vbmx5OworCQlpbnQJCQludW1fY29sc190b19zZXQ7CisJCWNvbnN0 IGludDE2ICpzZXRfY29sczsKKworCQlzd2l0Y2ggKHRna2luZCkKKwkJeworCQkJY2FzZSBS SV9UUklHVFlQRV9VUERBVEU6CisJCQkJLyogLTEgc28gd2UgbGV0IEZPUiBQT1JUSU9OIE9G IHNldCB0aGUgcmFuZ2UuICovCisJCQkJbnVtX2NvbHNfdG9fc2V0ID0gcmlpbmZvLT5ua2V5 cyAtIDE7CisJCQkJc2V0X2NvbHMgPSByaWluZm8tPmZrX2F0dG51bXM7CisJCQkJYnJlYWs7 CisJCQljYXNlIFJJX1RSSUdUWVBFX0RFTEVURToKKwkJCQkvKgorCQkJCSAqIElmIGNvbmZk ZWxzZXRjb2xzIGFyZSBwcmVzZW50LCB0aGVuIHdlIG9ubHkgdXBkYXRlIHRoZQorCQkJCSAq IGNvbHVtbnMgc3BlY2lmaWVkIGluIHRoYXQgYXJyYXksIG90aGVyd2lzZSB3ZSB1cGRhdGUg YWxsCisJCQkJICogdGhlIHJlZmVyZW5jaW5nIGNvbHVtbnMuCisJCQkJICovCisJCQkJaWYg KHJpaW5mby0+bmRlbHNldGNvbHMgIT0gMCkKKwkJCQl7CisJCQkJCW51bV9jb2xzX3RvX3Nl dCA9IHJpaW5mby0+bmRlbHNldGNvbHM7CisJCQkJCXNldF9jb2xzID0gcmlpbmZvLT5jb25m ZGVsc2V0Y29sczsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJLyogLTEgc28gd2Ug bGV0IEZPUiBQT1JUSU9OIE9GIHNldCB0aGUgcmFuZ2UuICovCisJCQkJCW51bV9jb2xzX3Rv X3NldCA9IHJpaW5mby0+bmtleXMgLSAxOworCQkJCQlzZXRfY29scyA9IHJpaW5mby0+Zmtf YXR0bnVtczsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQlkZWZhdWx0OgorCQkJCWVsb2coRVJS T1IsICJpbnZhbGlkIHRna2luZCBwYXNzZWQgdG8gcmlfc2V0Iik7CisJCX0KKworCQkvKiAt LS0tLS0tLS0tCisJCSAqIFRoZSBxdWVyeSBzdHJpbmcgYnVpbHQgaXMKKwkJICoJVVBEQVRF IFtPTkxZXSA8Zmt0YWJsZT4KKwkJICoJCQlGT1IgUE9SVElPTiBPRiAkZmthdHQgKCR7bisx fSkKKwkJICoJCQlTRVQgZmthdHQxID0ge05VTEx8REVGQVVMVH0gWywgLi4uXQorCQkgKgkJ CVdIRVJFICQxID0gZmthdHQxIFtBTkQgLi4uXQorCQkgKiBUaGUgdHlwZSBpZCdzIGZvciB0 aGUgJCBwYXJhbWV0ZXJzIGFyZSB0aG9zZSBvZiB0aGUKKwkJICogY29ycmVzcG9uZGluZyBQ SyBhdHRyaWJ1dGVzLgorCQkgKiAtLS0tLS0tLS0tCisJCSAqLworCQlpbml0U3RyaW5nSW5m bygmcXVlcnlidWYpOworCQlpbml0U3RyaW5nSW5mbygmcXVhbGJ1Zik7CisJCWZrX29ubHkg PSBma19yZWwtPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxF ID8KKwkJCSIiIDogIk9OTFkgIjsKKwkJcXVvdGVSZWxhdGlvbk5hbWUoZmtyZWxuYW1lLCBm a19yZWwpOworCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwgUklBdHROYW1lKGZrX3JlbCwgcmlp bmZvLT5ma19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXSkpOworCisJCWFwcGVuZFN0cmlu Z0luZm8oJnF1ZXJ5YnVmLCAiVVBEQVRFICVzJXMgRk9SIFBPUlRJT04gT0YgJXMgKCQlZCkg U0VUIiwKKwkJCQkJCSBma19vbmx5LCBma3JlbG5hbWUsIGF0dG5hbWUsIHJpaW5mby0+bmtl eXMgKyAxKTsKKworCQkvKgorCQkgKiBBZGQgYXNzaWdubWVudCBjbGF1c2VzCisJCSAqLwor CQlxdWVyeXNlcCA9ICIiOworCQlmb3IgKGludCBpID0gMDsgaSA8IG51bV9jb2xzX3RvX3Nl dDsgaSsrKQorCQl7CisJCQlxdW90ZU9uZU5hbWUoYXR0bmFtZSwgUklBdHROYW1lKGZrX3Jl bCwgc2V0X2NvbHNbaV0pKTsKKwkJCWFwcGVuZFN0cmluZ0luZm8oJnF1ZXJ5YnVmLAorCQkJ CQkJCSAiJXMgJXMgPSAlcyIsCisJCQkJCQkJIHF1ZXJ5c2VwLCBhdHRuYW1lLAorCQkJCQkJ CSBpc19zZXRfbnVsbCA/ICJOVUxMIiA6ICJERUZBVUxUIik7CisJCQlxdWVyeXNlcCA9ICIs IjsKKwkJfQorCisJCS8qCisJCSAqIEFkZCBXSEVSRSBjbGF1c2UKKwkJICovCisJCXF1YWxz ZXAgPSAiV0hFUkUiOworCQlmb3IgKGludCBpID0gMDsgaSA8IHJpaW5mby0+bmtleXM7IGkr KykKKwkJeworCQkJT2lkCXBrX3R5cGUgPSBSSUF0dFR5cGUocGtfcmVsLCByaWluZm8tPnBr X2F0dG51bXNbaV0pOworCQkJT2lkCWZrX3R5cGUgPSBSSUF0dFR5cGUoZmtfcmVsLCByaWlu Zm8tPmZrX2F0dG51bXNbaV0pOworCQkJT2lkCXBrX2NvbGwgPSBSSUF0dENvbGxhdGlvbihw a19yZWwsIHJpaW5mby0+cGtfYXR0bnVtc1tpXSk7CisJCQlPaWQJZmtfY29sbCA9IFJJQXR0 Q29sbGF0aW9uKGZrX3JlbCwgcmlpbmZvLT5ma19hdHRudW1zW2ldKTsKKworCQkJcXVvdGVP bmVOYW1lKGF0dG5hbWUsCisJCQkJCQkgUklBdHROYW1lKGZrX3JlbCwgcmlpbmZvLT5ma19h dHRudW1zW2ldKSk7CisKKwkJCXNwcmludGYocGFyYW1uYW1lLCAiJCVkIiwgaSArIDEpOwor CQkJcmlfR2VuZXJhdGVRdWFsKCZxdWVyeWJ1ZiwgcXVhbHNlcCwKKwkJCQkJCQlwYXJhbW5h bWUsIHBrX3R5cGUsCisJCQkJCQkJcmlpbmZvLT5wZl9lcV9vcHJzW2ldLAorCQkJCQkJCWF0 dG5hbWUsIGZrX3R5cGUpOworCQkJaWYgKHBrX2NvbGwgIT0gZmtfY29sbCAmJiAhZ2V0X2Nv bGxhdGlvbl9pc2RldGVybWluaXN0aWMocGtfY29sbCkpCisJCQkJcmlfR2VuZXJhdGVRdWFs Q29sbGF0aW9uKCZxdWVyeWJ1ZiwgcGtfY29sbCk7CisJCQlxdWFsc2VwID0gIkFORCI7CisJ CQlxdWVyeW9pZHNbaV0gPSBwa190eXBlOworCQl9CisKKwkJLyogU2V0IGEgcGFyYW0gZm9y IEZPUiBQT1JUSU9OIE9GIFRPL0ZST00gKi8KKwkJcXVlcnlvaWRzW3JpaW5mby0+bmtleXNd ID0gUklBdHRUeXBlKHBrX3JlbCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMg LSAxXSk7CisKKwkJLyogUHJlcGFyZSBhbmQgc2F2ZSB0aGUgcGxhbiAqLworCQlxcGxhbiA9 IHJpX1BsYW5DaGVjayhxdWVyeWJ1Zi5kYXRhLCByaWluZm8tPm5rZXlzICsgMSwgcXVlcnlv aWRzLAorCQkJCQkJCSAmcWtleSwgZmtfcmVsLCBwa19yZWwpOworCX0KKworCS8qCisJICog V2UgaGF2ZSBhIHBsYW4gbm93LiBSdW4gaXQgdG8gdXBkYXRlIHRoZSBleGlzdGluZyByZWZl cmVuY2VzLgorCSAqLworCXJpX1BlcmZvcm1DaGVjayhyaWluZm8sICZxa2V5LCBxcGxhbiwK KwkJCQkJZmtfcmVsLCBwa19yZWwsCisJCQkJCW9sZHNsb3QsIE5VTEwsCisJCQkJCXJpaW5m by0+bmtleXMsIHRhcmdldFJhbmdlLAorCQkJCQl0cnVlLAkJLyogbXVzdCBkZXRlY3QgbmV3 IHJvd3MgKi8KKwkJCQkJU1BJX09LX1VQREFURSk7CisKKwlpZiAoU1BJX2ZpbmlzaCgpICE9 IFNQSV9PS19GSU5JU0gpCisJCWVsb2coRVJST1IsICJTUElfZmluaXNoIGZhaWxlZCIpOwor CisJdGFibGVfY2xvc2UoZmtfcmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCWlmIChpc19z ZXRfbnVsbCkKKwkJcmV0dXJuIFBvaW50ZXJHZXREYXR1bShOVUxMKTsKKwllbHNlCisJewor CQkvKgorCQkgKiBJZiB3ZSBqdXN0IGRlbGV0ZWQgb3IgdXBkYXRlZCB0aGUgUEsgcm93IHdo b3NlIGtleSB3YXMgZXF1YWwgdG8gdGhlCisJCSAqIEZLIGNvbHVtbnMnIGRlZmF1bHQgdmFs dWVzLCBhbmQgYSByZWZlcmVuY2luZyByb3cgZXhpc3RzIGluIHRoZSBGSworCQkgKiB0YWJs ZSwgd2Ugd291bGQgaGF2ZSB1cGRhdGVkIHRoYXQgcm93IHRvIHRoZSBzYW1lIHZhbHVlcyBp dCBhbHJlYWR5CisJCSAqIGhhZCAtLS0gYW5kIFJJX0ZLZXlfZmtfdXBkX2NoZWNrX3JlcXVp cmVkIHdvdWxkIGhlbmNlIGJlbGlldmUgbm8KKwkJICogY2hlY2sgaXMgbmVjZXNzYXJ5LiAg U28gd2UgbmVlZCB0byBkbyBhbm90aGVyIGxvb2t1cCBub3cgYW5kIGluCisJCSAqIGNhc2Ug YSByZWZlcmVuY2Ugc3RpbGwgZXhpc3RzLCBhYm9ydCB0aGUgb3BlcmF0aW9uLiAgVGhhdCBp cworCQkgKiBhbHJlYWR5IGltcGxlbWVudGVkIGluIHRoZSBOTyBBQ1RJT04gdHJpZ2dlciwg c28ganVzdCBydW4gaXQuIChUaGlzCisJCSAqIHJlY2hlY2sgaXMgb25seSBuZWVkZWQgaW4g dGhlIFNFVCBERUZBVUxUIGNhc2UsIHNpbmNlIENBU0NBREUgd291bGQKKwkJICogcmVtb3Zl IHN1Y2ggcm93cyBpbiBjYXNlIG9mIGEgREVMRVRFIG9wZXJhdGlvbiBvciB3b3VsZCBjaGFu Z2UgdGhlCisJCSAqIEZLIGtleSB2YWx1ZXMgaW4gY2FzZSBvZiBhbiBVUERBVEUsIHdoaWxl IFNFVCBOVUxMIGlzIGNlcnRhaW4gdG8KKwkJICogcmVzdWx0IGluIHJvd3MgdGhhdCBzYXRp c2Z5IHRoZSBGSyBjb25zdHJhaW50LikKKwkJICovCisJCXJldHVybiByaV9yZXN0cmljdCh0 cmlnZGF0YSwgdHJ1ZSk7CisJfQorfQorCiAvKgogICogUklfRktleV9wa191cGRfY2hlY2tf cmVxdWlyZWQgLQogICoKQEAgLTIyOTMsOSArMjgzMCwxMCBAQCByaV9Mb2FkQ29uc3RyYWlu dEluZm8oT2lkIGNvbnN0cmFpbnRPaWQpCiAJaWYgKHJpaW5mby0+aGFzcGVyaW9kKQogCXsK IAkJT2lkCW9wY2xhc3MgPSBnZXRfaW5kZXhfY29sdW1uX29wY2xhc3MoY29uRm9ybS0+Y29u aW5kaWQsIHJpaW5mby0+bmtleXMpOwotCQlGaW5kRktQZXJpb2RPcGVycyhvcGNsYXNzLAot CQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfY29udGFpbmVkX2J5X29wZXIsCi0JCQkJCQkgICZy aWluZm8tPmFnZ2VkX3BlcmlvZF9jb250YWluZWRfYnlfb3Blcik7CisJCUZpbmRGS1Blcmlv ZE9wZXJzQW5kUHJvY3Mob3BjbGFzcywKKwkJCQkJCQkJICAmcmlpbmZvLT5wZXJpb2RfY29u dGFpbmVkX2J5X29wZXIsCisJCQkJCQkJCSAgJnJpaW5mby0+YWdnZWRfcGVyaW9kX2NvbnRh aW5lZF9ieV9vcGVyLAorCQkJCQkJCQkgICZyaWluZm8tPnBlcmlvZF9pbnRlcnNlY3RfcHJv Yyk7CiAJfQogCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CkBAIC0yNDUwLDggKzI5ODgsOCBA QCByaV9QZXJmb3JtQ2hlY2soY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAlp bnQJCQlzcGlfcmVzdWx0OwogCU9pZAkJCXNhdmVfdXNlcmlkOwogCWludAkJCXNhdmVfc2Vj X2NvbnRleHQ7Ci0JRGF0dW0JCXZhbHNbUklfTUFYX05VTUtFWVMgKiAyXTsKLQljaGFyCQlu dWxsc1tSSV9NQVhfTlVNS0VZUyAqIDJdOworCURhdHVtCQl2YWxzW1JJX01BWF9OVU1LRVlT ICogMiArIDFdOworCWNoYXIJCW51bGxzW1JJX01BWF9OVU1LRVlTICogMiArIDFdOwogCiAJ LyoKIAkgKiBVc2UgdGhlIHF1ZXJ5IHR5cGUgY29kZSB0byBkZXRlcm1pbmUgd2hldGhlciB0 aGUgcXVlcnkgaXMgcnVuIGFnYWluc3QKQEAgLTI0ODYsOCArMzAyNCwxMCBAQCByaV9QZXJm b3JtQ2hlY2soY29uc3QgUklfQ29uc3RyYWludEluZm8gKnJpaW5mbywKIAkJcmlfRXh0cmFj dFZhbHVlcyhzb3VyY2VfcmVsLCBuZXdzbG90LCByaWluZm8sIHNvdXJjZV9pc19waywKIAkJ CQkJCSB2YWxzLCBudWxscyk7CiAJCWlmIChvbGRzbG90KQorCQl7CiAJCQlyaV9FeHRyYWN0 VmFsdWVzKHNvdXJjZV9yZWwsIG9sZHNsb3QsIHJpaW5mbywgc291cmNlX2lzX3BrLAogCQkJ CQkJCSB2YWxzICsgcmlpbmZvLT5ua2V5cywgbnVsbHMgKyByaWluZm8tPm5rZXlzKTsKKwkJ fQogCX0KIAllbHNlCiAJewpAQCAtMzE1Niw2ICszNjk2LDEyIEBAIFJJX0ZLZXlfdHJpZ2dl cl90eXBlKE9pZCB0Z2ZvaWQpCiAJCWNhc2UgRl9SSV9GS0VZX1NFVERFRkFVTFRfVVBEOgog CQljYXNlIEZfUklfRktFWV9OT0FDVElPTl9ERUw6CiAJCWNhc2UgRl9SSV9GS0VZX05PQUNU SU9OX1VQRDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVSSU9EX0NBU0NBREVfREVMOgorCQljYXNl IEZfUklfRktFWV9QRVJJT0RfQ0FTQ0FERV9VUEQ6CisJCWNhc2UgRl9SSV9GS0VZX1BFUklP RF9TRVROVUxMX0RFTDoKKwkJY2FzZSBGX1JJX0ZLRVlfUEVSSU9EX1NFVE5VTExfVVBEOgor CQljYXNlIEZfUklfRktFWV9QRVJJT0RfU0VUREVGQVVMVF9ERUw6CisJCWNhc2UgRl9SSV9G S0VZX1BFUklPRF9TRVRERUZBVUxUX1VQRDoKIAkJCXJldHVybiBSSV9UUklHR0VSX1BLOwog CiAJCWNhc2UgRl9SSV9GS0VZX0NIRUNLX0lOUzoKQEAgLTMxODQsMzAgKzM3MzAsMzAgQEAg ZnBvX3RhcmdldHNfcGtfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRnX3RlbXBv cmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW4KIC8qCiAgKiByZXN0cmljdF9jYXNjYWRpbmdf cmFuZ2UgLQogICoKLSAqIFJldHVybnMgYSBEYXR1bSBvZiBSYW5nZVR5cGVQIGhvbGRpbmcg dGhlIGFwcHJvcHJpYXRlIHRpbWVzcGFuCi0gKiB0byB0YXJnZXQgY2hpbGQgcmVjb3JkcyB3 aGVuIHdlIENBU0NBREUvU0VUIE5VTEwvU0VUIERFRkFVTFQuCisgKiBSZXR1cm5zIGEgRGF0 dW0gaG9sZGluZyB0aGUgYXBwcm9wcmlhdGUgdGltZXNwYW4KKyAqIHRvIHRhcmdldCByZWZl cmVuY2luZyByZWNvcmRzIHdoZW4gd2UgQ0FTQ0FERS9TRVQgTlVMTC9TRVQgREVGQVVMVC4K ICAqCi0gKiBJbiBhIG5vcm1hbCBVUERBVEUvREVMRVRFIHRoaXMgc2hvdWxkIGJlIHRoZSBw YXJlbnQncyBvd24gdmFsaWQgdGltZSwKKyAqIEluIGEgbm9ybWFsIFVQREFURS9ERUxFVEUg dGhpcyBzaG91bGQgYmUgdGhlIHJlZmVyZW5jZWQgcm93J3Mgb3duIHZhbGlkIHRpbWUsCiAg KiBidXQgaWYgdGhlcmUgd2FzIGEgRk9SIFBPUlRJT04gT0YgY2xhdXNlLCB0aGVuIHdlIHNo b3VsZCB1c2UgdGhhdCB0bwotICogdHJpbSBkb3duIHRoZSBwYXJlbnQncyBzcGFuIGZ1cnRo ZXIuCisgKiB0cmltIGRvd24gdGhlIHNwYW4gZnVydGhlci4KICAqLwogc3RhdGljIERhdHVt Ci1yZXN0cmljdF9jYXNjYWRpbmdfcmFuZ2UoY29uc3QgRm9yUG9ydGlvbk9mU3RhdGUgKnRn X3RlbXBvcmFsLCBjb25zdCBSSV9Db25zdHJhaW50SW5mbyAqcmlpbmZvLCBUdXBsZVRhYmxl U2xvdCAqb2xkc2xvdCkKK3Jlc3RyaWN0X2Nhc2NhZGluZ19yYW5nZShSZWxhdGlvbiByZWws IGNvbnN0IEZvclBvcnRpb25PZlN0YXRlICp0Z190ZW1wb3JhbCwgY29uc3QgUklfQ29uc3Ry YWludEluZm8gKnJpaW5mbywgVHVwbGVUYWJsZVNsb3QgKm9sZHNsb3QpCiB7CiAJRGF0dW0J cGtSZWNvcmRSYW5nZTsKIAlib29sCWlzbnVsbDsKKwlpbnQJCWF0dG5vID0gcmlpbmZvLT5w a19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAxXTsKIAotCXBrUmVjb3JkUmFuZ2UgPSBzbG90 X2dldGF0dHIob2xkc2xvdCwgcmlpbmZvLT5wa19hdHRudW1zW3JpaW5mby0+bmtleXMgLSAx XSwgJmlzbnVsbCk7CisJcGtSZWNvcmRSYW5nZSA9IHNsb3RfZ2V0YXR0cihvbGRzbG90LCBh dHRubywgJmlzbnVsbCk7CiAJaWYgKGlzbnVsbCkKIAkJZWxvZyhFUlJPUiwgImFwcGxpY2F0 aW9uIHRpbWUgc2hvdWxkIG5vdCBiZSBudWxsIik7CiAKIAlpZiAoZnBvX3RhcmdldHNfcGtf cmFuZ2UodGdfdGVtcG9yYWwsIHJpaW5mbykpCiAJewotCQlSYW5nZVR5cGUgKnIxID0gRGF0 dW1HZXRSYW5nZVR5cGVQKHBrUmVjb3JkUmFuZ2UpOwotCQlSYW5nZVR5cGUgKnIyID0gRGF0 dW1HZXRSYW5nZVR5cGVQKHRnX3RlbXBvcmFsLT5mcF90YXJnZXRSYW5nZSk7Ci0JCU9pZCBy bmd0eXBpZCA9IFJhbmdlVHlwZUdldE9pZChyMSk7Ci0JCVR5cGVDYWNoZUVudHJ5ICp0eXBj YWNoZSA9IGxvb2t1cF90eXBlX2NhY2hlKHJuZ3R5cGlkLCBUWVBFQ0FDSEVfUkFOR0VfSU5G Tyk7Ci0JCXJldHVybiBSYW5nZVR5cGVQR2V0RGF0dW0ocmFuZ2VfaW50ZXJzZWN0X2ludGVy bmFsKHR5cGNhY2hlLCByMSwgcjIpKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKHJpaW5mby0+cGVy aW9kX2ludGVyc2VjdF9wcm9jKSkKKwkJCWVsb2coRVJST1IsICJpbnZhbGlkIGludGVyc2Vj dCBzdXBwb3J0IGZ1bmN0aW9uIik7CisKKwkJcmV0dXJuIE9pZEZ1bmN0aW9uQ2FsbDIocmlp bmZvLT5wZXJpb2RfaW50ZXJzZWN0X3Byb2MsIHBrUmVjb3JkUmFuZ2UsIHRnX3RlbXBvcmFs LT5mcF90YXJnZXRSYW5nZSk7CiAJfQogCWVsc2UKIAkJcmV0dXJuIHBrUmVjb3JkUmFuZ2U7 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NvbnN0cmFpbnQuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY29uc3RyYWludC5oCmluZGV4IDk0ZDMxMjBjZmFmLi4z ZTEwOWUxZDU4NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJh aW50LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jb25zdHJhaW50LmgKQEAgLTI4 NCw5ICsyODQsMTAgQEAgZXh0ZXJuIHZvaWQgRGVjb25zdHJ1Y3RGa0NvbnN0cmFpbnRSb3co SGVhcFR1cGxlIHR1cGxlLCBpbnQgKm51bWZrcywKIAkJCQkJCQkJCSAgIEF0dHJOdW1iZXIg KmNvbmtleSwgQXR0ck51bWJlciAqY29uZmtleSwKIAkJCQkJCQkJCSAgIE9pZCAqcGZfZXFf b3BycywgT2lkICpwcF9lcV9vcHJzLCBPaWQgKmZmX2VxX29wcnMsCiAJCQkJCQkJCQkgICBp bnQgKm51bV9ma19kZWxfc2V0X2NvbHMsIEF0dHJOdW1iZXIgKmZrX2RlbF9zZXRfY29scyk7 Ci1leHRlcm4gdm9pZCBGaW5kRktQZXJpb2RPcGVycyhPaWQgb3BjbGFzcywKLQkJCQkJCQkg IE9pZCAqY29udGFpbmVkYnlvcGVyb2lkLAotCQkJCQkJCSAgT2lkICphZ2dlZGNvbnRhaW5l ZGJ5b3Blcm9pZCk7CitleHRlcm4gdm9pZCBGaW5kRktQZXJpb2RPcGVyc0FuZFByb2NzKE9p ZCBvcGNsYXNzLAorCQkJCQkJCQkJICBPaWQgKmNvbnRhaW5lZGJ5b3Blcm9pZCwKKwkJCQkJ CQkJCSAgT2lkICphZ2dlZGNvbnRhaW5lZGJ5b3Blcm9pZCwKKwkJCQkJCQkJCSAgT2lkICpp bnRlcnNlY3Rwcm9jb2lkKTsKIAogZXh0ZXJuIGJvb2wgY2hlY2tfZnVuY3Rpb25hbF9ncm91 cGluZyhPaWQgcmVsaWQsCiAJCQkJCQkJCQkgIEluZGV4IHZhcm5vLCBJbmRleCB2YXJsZXZl bHN1cCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDczNjdjZTE0NjU4Li4zZDA4 ZGNkNThlYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAor KysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0zOTQ1LDYgKzM5NDUs MjggQEAKICAgcHJvcmV0dHlwZSA9PiAndHJpZ2dlcicsIHByb2FyZ3R5cGVzID0+ICcnLAog ICBwcm9zcmMgPT4gJ1JJX0ZLZXlfbm9hY3Rpb25fdXBkJyB9LAogCisjIFRlbXBvcmFsIHJl ZmVyZW50aWFsIGludGVncml0eSBjb25zdHJhaW50IHRyaWdnZXJzCit7IG9pZCA9PiAnNjEy NCcsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3JpdHkgT04gREVMRVRF IENBU0NBREUnLAorICBwcm9uYW1lID0+ICdSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX2RlbCcs IHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcmV0dHlwZSA9PiAndHJpZ2dlcicsCisgIHByb2Fy Z3R5cGVzID0+ICcnLCBwcm9zcmMgPT4gJ1JJX0ZLZXlfcGVyaW9kX2Nhc2NhZGVfZGVsJyB9 LAoreyBvaWQgPT4gJzYxMjUnLCBkZXNjciA9PiAndGVtcG9yYWwgcmVmZXJlbnRpYWwgaW50 ZWdyaXR5IE9OIFVQREFURSBDQVNDQURFJywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJp b2RfY2FzY2FkZV91cGQnLCBwcm92b2xhdGlsZSA9PiAndicsIHByb3JldHR5cGUgPT4gJ3Ry aWdnZXInLAorICBwcm9hcmd0eXBlcyA9PiAnJywgcHJvc3JjID0+ICdSSV9GS2V5X3Blcmlv ZF9jYXNjYWRlX3VwZCcgfSwKK3sgb2lkID0+ICc2MTI4JywgZGVzY3IgPT4gJ3RlbXBvcmFs IHJlZmVyZW50aWFsIGludGVncml0eSBPTiBERUxFVEUgU0VUIE5VTEwnLAorICBwcm9uYW1l ID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRudWxsX2RlbCcsIHByb3ZvbGF0aWxlID0+ICd2Jywg cHJvcmV0dHlwZSA9PiAndHJpZ2dlcicsCisgIHByb2FyZ3R5cGVzID0+ICcnLCBwcm9zcmMg PT4gJ1JJX0ZLZXlfcGVyaW9kX3NldG51bGxfZGVsJyB9LAoreyBvaWQgPT4gJzYxMjknLCBk ZXNjciA9PiAndGVtcG9yYWwgcmVmZXJlbnRpYWwgaW50ZWdyaXR5IE9OIFVQREFURSBTRVQg TlVMTCcsCisgIHByb25hbWUgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldG51bGxfdXBkJywgcHJv dm9sYXRpbGUgPT4gJ3YnLCBwcm9yZXR0eXBlID0+ICd0cmlnZ2VyJywKKyAgcHJvYXJndHlw ZXMgPT4gJycsIHByb3NyYyA9PiAnUklfRktleV9wZXJpb2Rfc2V0bnVsbF91cGQnIH0sCit7 IG9pZCA9PiAnNjEzMCcsIGRlc2NyID0+ICd0ZW1wb3JhbCByZWZlcmVudGlhbCBpbnRlZ3Jp dHkgT04gREVMRVRFIFNFVCBERUZBVUxUJywKKyAgcHJvbmFtZSA9PiAnUklfRktleV9wZXJp b2Rfc2V0ZGVmYXVsdF9kZWwnLCBwcm92b2xhdGlsZSA9PiAndicsCisgIHByb3JldHR5cGUg PT4gJ3RyaWdnZXInLCBwcm9hcmd0eXBlcyA9PiAnJywKKyAgcHJvc3JjID0+ICdSSV9GS2V5 X3BlcmlvZF9zZXRkZWZhdWx0X2RlbCcgfSwKK3sgb2lkID0+ICc2MTMxJywgZGVzY3IgPT4g J3RlbXBvcmFsIHJlZmVyZW50aWFsIGludGVncml0eSBPTiBVUERBVEUgU0VUIERFRkFVTFQn LAorICBwcm9uYW1lID0+ICdSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X3VwZCcsIHByb3Zv bGF0aWxlID0+ICd2JywKKyAgcHJvcmV0dHlwZSA9PiAndHJpZ2dlcicsIHByb2FyZ3R5cGVz ID0+ICcnLAorICBwcm9zcmMgPT4gJ1JJX0ZLZXlfcGVyaW9kX3NldGRlZmF1bHRfdXBkJyB9 LAorCiB7IG9pZCA9PiAnMTY2NicsCiAgIHByb25hbWUgPT4gJ3ZhcmJpdGVxJywgcHJvbGVh a3Byb29mID0+ICd0JywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCiAgIHByb2FyZ3R5cGVzID0+ ICd2YXJiaXQgdmFyYml0JywgcHJvc3JjID0+ICdiaXRlcScgfSwKZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYnRyZWVfaW5kZXgub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9idHJlZV9pbmRleC5vdXQKaW5kZXggODMxMWEwM2MzZGYuLmYxNmRj MjhiNGQ0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2J0cmVlX2lu ZGV4Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2J0cmVlX2luZGV4Lm91 dApAQCAtMjA2LDE0ICsyMDYsMTcgQEAgc2VsZWN0IHByb25hbWUgZnJvbSBwZ19wcm9jIHdo ZXJlIHByb25hbWUgbGlrZSBFJ1JJXFxfRktleSVkZWwnIG9yZGVyIGJ5IDE7CiAoMyByb3dz KQogCiBzZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJvbmFtZSBsaWtlIEUn UklcXF9GS2V5JWRlbCcgb3JkZXIgYnkgMTsKLSAgICAgICAgcHJvbmFtZSAgICAgICAgIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICBwcm9uYW1lICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgUklfRktleV9jYXNjYWRl X2RlbAogIFJJX0ZLZXlfbm9hY3Rpb25fZGVsCisgUklfRktleV9wZXJpb2RfY2FzY2FkZV9k ZWwKKyBSSV9GS2V5X3BlcmlvZF9zZXRkZWZhdWx0X2RlbAorIFJJX0ZLZXlfcGVyaW9kX3Nl dG51bGxfZGVsCiAgUklfRktleV9yZXN0cmljdF9kZWwKICBSSV9GS2V5X3NldGRlZmF1bHRf ZGVsCiAgUklfRktleV9zZXRudWxsX2RlbAotKDUgcm93cykKKyg4IHJvd3MpCiAKIGV4cGxh aW4gKGNvc3RzIG9mZikKIHNlbGVjdCBwcm9uYW1lIGZyb20gcGdfcHJvYyB3aGVyZSBwcm9u YW1lIGlsaWtlICcwMCVmb28nIG9yZGVyIGJ5IDE7CkBAIC0yNTIsMTQgKzI1NSwxNyBAQCBz ZWxlY3QgcHJvbmFtZSBmcm9tIHBnX3Byb2Mgd2hlcmUgcHJvbmFtZSBsaWtlIEUnUklcXF9G S2V5JWRlbCcgb3JkZXIgYnkgMTsKICg2IHJvd3MpCiAKIHNlbGVjdCBwcm9uYW1lIGZyb20g cGdfcHJvYyB3aGVyZSBwcm9uYW1lIGxpa2UgRSdSSVxcX0ZLZXklZGVsJyBvcmRlciBieSAx OwotICAgICAgICBwcm9uYW1lICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAgICAgICAgICAgIHByb25hbWUgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICBSSV9GS2V5X2Nhc2NhZGVfZGVsCiAgUklfRktleV9ub2FjdGlvbl9k ZWwKKyBSSV9GS2V5X3BlcmlvZF9jYXNjYWRlX2RlbAorIFJJX0ZLZXlfcGVyaW9kX3NldGRl ZmF1bHRfZGVsCisgUklfRktleV9wZXJpb2Rfc2V0bnVsbF9kZWwKICBSSV9GS2V5X3Jlc3Ry aWN0X2RlbAogIFJJX0ZLZXlfc2V0ZGVmYXVsdF9kZWwKICBSSV9GS2V5X3NldG51bGxfZGVs Ci0oNSByb3dzKQorKDggcm93cykKIAogZXhwbGFpbiAoY29zdHMgb2ZmKQogc2VsZWN0IHBy b25hbWUgZnJvbSBwZ19wcm9jIHdoZXJlIHByb25hbWUgaWxpa2UgJzAwJWZvbycgb3JkZXIg YnkgMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9v dmVybGFwcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3Zlcmxh cHMub3V0CmluZGV4IGFiMTI1NjI2NTM0Li43M2M2NjlhYzhhZCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CkBAIC0yLDcgKzIs NyBAQAogLS0KIC0tIFdlIGxlYXZlIGJlaGluZCBzZXZlcmFsIHRhYmxlcyB0byB0ZXN0IHBn X2R1bXAgZXRjOgogLS0gdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ybmcyLAotLS0gdGVtcG9y YWxfZmtfcm5nMnJuZy4KKy0tIHRlbXBvcmFsX2ZrX3JuZzJybmcsIHRlbXBvcmFsX2ZrMl9y bmcycm5nLgogU0VUIGRhdGVzdHlsZSBUTyBJU08sIFlNRDsKIC0tCiAtLSB0ZXN0IGlucHV0 IHBhcnNlcgpAQCAtODk2LDYgKzg5NiwyMSBAQCBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBp ZCA9ICdbNSw2KSc7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBv cmFsX3JuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtf cm5nMnJuZ19mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBL ZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMg c3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCkn KSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIw MTYtMDItMDEsMjAxNi0wMy0wMSkKKyBbNSw2KSB8IFsyMDE4LTAxLTAxLDIwMTgtMDEtMDIp CisgWzUsNikgfCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKQorIFs3LDgpIHwgWzIwMTgtMDEt MDIsMjAxOC0wMS0wMykKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IFsyMDE4 LTAxLTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKwogLS0gdGhlbiBkZWxldGUg dGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVk czoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMsNCkn OwogVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYt MDEtMDEnLCAnMjAxNi0wMi0wMScpCkBAIC05NDQsNiArOTU5LDIxIEBAIFNFVCBpZCA9ICdb Nyw4KScKIFdIRVJFIGlkID0gJ1s1LDYpJzsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBv biB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50 ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5nMnJu ZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIw MTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2Zr X3JuZzJybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4gKCdb NSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgWzUsNikgfCBbMjAxNi0wMi0wMSwyMDE2LTAzLTAxKQorIFs1LDYpIHwgWzIwMTgtMDEt MDEsMjAxOC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisgWzcs OCkgfCBbMjAxOC0wMS0wMiwyMDE4LTAxLTAzKQorKDQgcm93cykKKworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFszLDQpIHwgWzIwMTgtMDEtMDUsMjAxOC0wMS0xMCkgfCBbNSw2KQorKDEgcm93KQorCiAt LSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsg dXBkYXRlIHN1Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMyw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRh dGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTk4MSwxMiArMTAxMSwy MiBAQCBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAx OC0wMS0xMCcKIFdIRVJFIGlkID0gJ1s1LDYpJzsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0 ZSBvbiB0YWJsZSAidGVtcG9yYWxfcm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcm5n MnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAz LDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X2ZrX3JuZzJybmciLgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgaW4g KCdbNSw2KScsICdbNyw4KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE4LTAxLTAyKQorIFs1LDYpIHwgWzIwMTgt MDEtMDMsMjAxOC0wMi0wMSkKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf Zmtfcm5nMnJuZyBXSEVSRSBpZCBpbiAoJ1szLDQpJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IFsy MDE4LTAxLTA1LDIwMTgtMDEtMTApIHwgWzUsNikKKygxIHJvdykKKwogLS0gdGhlbiBkZWxl dGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNj ZWVkczoKIERFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzMs NCknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQg dmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwotLS0g Y2xlYW4gdXA6Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIHBhcmVu dF9pZCA9ICdbNSw2KSc7Ci1ERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgSU4g KCdbNSw2KScpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNU CiAtLQpAQCAtMTAyMCwzOSArMTA2MCwyMDYgQEAgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCiBXSEVSRSBpZCA9ICdbNSw2KSc7 CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3JuZyIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIg b24gdGFibGUgInRlbXBvcmFsX2ZrX3JuZzJybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxp ZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJl bmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19ybmcycm5nIi4KK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICAKKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFs1LDYpIHwgWzIwMTgtMDEtMDEsMjAx OC0wMS0wMikKKyBbNSw2KSB8IFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpCisoMiByb3dzKQor CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0 KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAg ICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tCisgWzMsNCkgfCBbMjAxOC0wMS0wNSwyMDE4LTAxLTEwKSB8IFs1LDYp CisoMSByb3cpCisKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFu ZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVMRVRFIEZST00gdGVtcG9y YWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNiknOwotREVMRVRFIEZST00g dGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIC0tCi0tLSB0ZXN0IE9OIFVQ REFURS9ERUxFVEUgb3B0aW9ucworLS0gcm5nMnJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUg b3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCist LSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBOVUxMCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQg dXBkYXRlcyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxU CistLSByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0g cmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVy ZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNl ZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0g cmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSBy ZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJl ZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVG QVVMVCBzdWJzZXQpCiAtLQogLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FE RQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKIElO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwotSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAo J1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcp Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcy cm5nCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmssCiAJQUREIENP TlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawogCQlGT1JFSUdOIEtFWSAocGFyZW50 X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nCiAJCU9O IERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOwotRVJST1I6ICBpbnZhbGlkIE9O IERFTEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9E CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBb MTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEwMCwxMDEp IHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9u LUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hF UkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsy MDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzcsOCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbNyw4KQorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs IGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBp ZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8 IFs5LDEwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkK KygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURF CistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2 LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lk IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzYsNykKKyBbMTAwLDEw MSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMiByb3dzKQorCistLSBu b24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9hdCB8IHBh cmVudF9pZCAKKy0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0g RksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxf cm5nIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sy MDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIw MjEtMDEtMDEpIHwgWzgsOSkKKygxIHJvdykKKworLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBOVUxMCi1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7CistLQorVFJVTkNBVEUgdGVtcG9yYWxfcm5n LCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19ybmcycm5nCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmss CiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawogCQlGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nCiAJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7Ci1FUlJPUjog IGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1 c2luZyBQRVJJT0QKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBv cmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAn MjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAg ICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkg fCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzEw MCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KQorKDMgcm93cykKKwor LS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgCisgWzEwMCwxMDEpIHwgWzIwMTktMDEt MDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KSB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5n ZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf Zmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAx KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOwor VVBEQVRFIHRlbXBvcmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMjAwLDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsyMDAs MjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5n MnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOworLS0gbGVm dG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdI RVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBb MjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEt MDEsMjAyMC0wMS0wMSkgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAx KSB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9N IHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRf aWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCAKKyBbMTAwLDEwMSkg fCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IAorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkp JywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOSkn IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJl bnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbMjAwLDIw MSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCistLQog LS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FU RSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CiBJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVyYW5nZShu dWxsLCBudWxsKSk7Ci1JTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzEyLDEzKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx JykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1sxMiwxMyknKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScpOwogQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcm5nMnJuZwogICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdb LTEsLTFdJywKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19maywKQEAg LTEwNjAsNyArMTI2Nyw0MzIgQEAgQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJuZwog CQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nCiAJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VU IERFRkFVTFQ7Ci1FUlJPUjogIGludmFsaWQgT04gREVMRVRFIGFjdGlvbiBmb3IgZm9yZWln biBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIw MjAtMDEtMDEpIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVt cG9yYWxfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwg Wy0xLDApCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkK KyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSwwKQorKDMgcm93 cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBv cmFsX3JuZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAw LDIwMSkgfCBbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKQorIFsyMDAsMjAxKSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0 ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVAorLS0KK1RSVU5DQVRFIHRl bXBvcmFsX3JuZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGws IG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJyksICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2 LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBb MTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQor CistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwg ICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwy MDIwLTAxLTAxKSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEt MDEpIHwgWy0xLDApCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4 LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRf aWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t CisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkKKyBbMjAw LDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dzKQorCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBj b2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5n MnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9E IHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKwkJT04gREVMRVRFIENB U0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAg ICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3 LDgpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp IHwgWzYsNykgICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToK K1VQREFURSB0ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0g J1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAg ICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs3LDgpICAgICAg fCBbNiw3KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzcsOCkg ICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb Nyw4KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIw MCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkp JywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDEwKScg V0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFs aWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisg WzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbOSwxMCkgICAgIHwgWzgs OSkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAg fCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcy LCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAw LDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQor KDIgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9y bmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9y bmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor IGlkIHwgdmFsaWRfYXQgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisoMCByb3dzKQorCistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBX SEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAs MjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpICAgICAgfCBbOCw5 KQorKDEgcm93KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5V TEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1w b3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sx MDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3 KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKwlEUk9Q IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBh cmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcy CisJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3Zl cnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0g J1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m azJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAx OS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9u LUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBp ZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRf aWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkg fCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkg fCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkg fCAgICAgICAgICAgIHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5j ZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScs ICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdI RVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlk X2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsy MDAsMjAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkp CisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5V TEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1w b3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sx MDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3 KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEt MDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIw MTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkg fCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkg fCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93 cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdI RVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9p ZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8 ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8 ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwy MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4 LTAxLTAxLDIwMjAtMDEtMDEpIHwgICAgICAgICAgICB8IAorIFsyMDAsMjAxKSB8IFsyMDIw LTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCist LQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIg Y29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRl bXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgn WzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2 LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBF UklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworCURST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFy ZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIK KwkJT04gREVMRVRFIFNFVCBOVUxMICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBOVUxMOwor RVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBTRVQg YWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmsyX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmss CisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJF TkNFUyB0ZW1wb3JhbF9ybmcyCisJCU9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lkMSkg T04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAg ICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAw LDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8ICAgICAgICAgICAgfCBbNiw3KQor IFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykgICAgICB8IFs2 LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IFsyMDE4LTAxLTAxLDIw MTktMDEtMDEpIHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMTktMDEt MDEsMjAyMC0wMS0wMSkgfCAgICAgICAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKSB8ICAgICAgICAgICAgfCBbNiw3KQorKDMgcm93cykKKwor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCAgICAgICAg ICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4 LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUg dGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0x LC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9y bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9y bmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFd JywKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAor CURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKwlBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lk MSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFs X3JuZzIKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsK Ky0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEn IFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3 KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8 IFstMSwwKQorIFsxMDAsMTAxKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzYsNykg ICAgICB8IFs2LDcpCisoMyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0 ZW1wb3JhbF9ybmcyIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSww KSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8 IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0 d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAo aWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5n ZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0g J1s5LDEwKScsIGlkMiA9ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQxIHwg cGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4LTAxLTAxLDIwMjAt MDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0g dGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29s cykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYs NyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVS RSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQy IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBb Niw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAx KSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1 cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKyBbMTAwLDEwMSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAg fCBbLTEsMCkKKyBbMTAwLDEwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFstMSww KSAgICAgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZh bGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwy MDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5 KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IFsyMDE4 LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8 IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dz KQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3 byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDcpJywg ZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr Ml9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRo ZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKyAg QUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFy ZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIK KwkJT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZB VUxUOworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVU RSBTRVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVt cG9yYWxfZmsyX3JuZzJybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFV TFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19m aywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZzIKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIChwYXJlbnRf aWQxKSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRl czoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw3KSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpICAgICAgfCBbNiw3 KQorIFsxMDAsMTAxKSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWy0xLDApICAgICB8 IFs2LDcpCisgWzEwMCwxMDEpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbNiw3KSAg ICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgWzIwMTgt MDEtMDEsMjAxOS0wMS0wMSkgfCBbLTEsMCkgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCBb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAx KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWy0xLDApICAgICB8IFs2LDcpCisoMyBy b3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAn WzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgs OSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWy0xLC0xXScsICdbOCw5KScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBw YXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAg ICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgWzIwMCwyMDEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbLTEsMCkg ICAgIHwgWzgsOSkKKyBbMjAwLDIwMSkgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4 LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKwogLS0KIC0tIHRlc3QgRk9SRUlHTiBLRVks IG11bHRpcmFuZ2UgcmVmZXJlbmNlcyBtdWx0aXJhbmdlCiAtLQpAQCAtMTM0NSw2ICsxOTc3 LDIyIEBAIFVQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJwogV0hFUkUg aWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykpOwogRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRl IG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0 cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nIgogREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2 KSwge1syMDE4LTAxLTAxLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9t IHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0tIGNoYW5naW5nIGFuIHVu cmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAyJywgJzIwMTgtMDEtMDMnKSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdb NSw2KSc7CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3Jh bF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScK K1dIRVJFIGlkID0gJ1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyIKK0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAx OC0wMS0wMSwyMDE4LTAxLTAyKSxbMjAxOC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHN0aWxs IHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCist LSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsg dXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxp ZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAy LTAxJykpCitXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiAtLQogLS0gdGVz dCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgUkVTVFJJQ1QKIC0tCkBAIC0xMzc3LDYgKzIwMjUs MjIgQEAgVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBp ZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiBFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUg b24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3Ry YWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24gdGFibGUgInRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYp LCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20g dGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0gY2hhbmdpbmcgYW4gdW5y ZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDInLCAnMjAxOC0wMS0wMycpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1 LDYpJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFs X21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJykpKQorU0VUIGlkID0gJ1s3LDgpJwor V0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxl ICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwge1syMDE4 LTAxLTAxLDIwMTgtMDEtMDIpLFsyMDE4LTAxLTAzLDIwMTgtMDItMDEpfSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIi4KKy0t IHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyB1 cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIHZhbGlk X2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDIt MDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIC0tCiAtLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBOTyBBQ1RJT04KIC0tCkBAIC0xNDAwLDYgKzIwNjQs MTkgQEAgREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBB TkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXQKIERFTEVURSBGUk9NIHRlbXBvcmFs X21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiBFUlJPUjogIHVw ZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX21sdHJuZyIgdmlvbGF0ZXMgZm9y ZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZ19mayIgb24g dGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciCiBERVRBSUw6ICBLZXkgKGlkLCB2 YWxpZF9hdCk9KFs1LDYpLCB7WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSl9KSBpcyBzdGlsbCBy ZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmciLgorLS0g ZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRl bXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAxLTAzJykpKQorV0hFUkUgaWQgPSAn WzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1dIRVJFIGlkID0g J1s1LDYpJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAidGVtcG9yYWxf bWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9ma19t bHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIK K0RFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAxOC0wMS0wMSwyMDE4 LTAxLTAyKSxbMjAxOC0wMS0wMywyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQg ZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSB0aGVuIGRlbGV0 ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2Nl ZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMyw0KSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUs NiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJykpOwogLS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVz IFJFU1RSSUNUCiAtLQpAQCAtMTQyMyw2ICsyMTAwLDYzOCBAQCBERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdAogREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wMi0wMScpKTsKIEVSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJs ZSAidGVtcG9yYWxfbWx0cm5nIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfbWx0 cm5nMm1sdHJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIHtbMjAx OC0wMS0wMSwyMDE4LTAyLTAxKX0pIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAi dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyIuCistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5j ZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAy JywgJzIwMTgtMDEtMDMnKSkpCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBkZWxldGluZyBq dXN0IGEgcGFydCBmYWlsczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w NScsICcyMDE4LTAxLTEwJykpKQorV0hFUkUgaWQgPSAnWzUsNiknOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9tbHRybmciIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsiIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIgorREVUQUlMOiAgS2V5IChpZCwgdmFs aWRfYXQpPShbNSw2KSwge1syMDE4LTAxLTAxLDIwMTgtMDEtMDIpLFsyMDE4LTAxLTAzLDIw MTgtMDItMDEpfSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIi4KKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVj b3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7Cist LQorLS0gbWx0cm5nMm1sdHJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9ucworLS0K Ky0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLSBy ZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQg REVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVu Y2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBk ZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgdXBkYXRl cyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5V TEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRl bGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBzdWJzZXQp CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQorLS0KK1RSVU5D QVRFIHRlbXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFs aWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisJCU9OIERFTEVURSBDQVND QURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlk ID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAg ICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwy MDIxLTAxLTAxKX0gfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAx LTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbNyw4KQorKDIgcm93cykKKworLS0g bm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4 KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg ICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9IHwgWzcsOCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAg ICAgICAgICAgICAgICAgICAgICAgIHwgWzcsOCkKKygyIHJvd3MpCisKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcg U0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAn MjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJt bHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7Cisg ICAgaWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsy MDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCBbOSwxMCkKKyBbMjAwLDIw MSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0t CistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLQorVFJVTkNBVEUg dGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEn LCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFs aWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAt MDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykKKygxIHJvdykKKworLS0gbm9uLUZQTyBkZWxl dGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sx MDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworIGlkIHwgdmFsaWRfYXQgfCBwYXJl bnRfaWQgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEp IHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMSByb3cpCisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRFIHRl bXBvcmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisJCU9OIERFTEVURSBTRVQgTlVMTCBP TiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQgPSAn WzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAg ICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEt MDEtMDEpfSB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEp fSAgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDIgcm93cykKKworLS0gbm9uLUZQTyB1 cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUg aWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7 WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgCisg WzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAg ICAgICAgICB8IAorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJv d3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSks ICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzksMTApJyBX SEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdb MjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAg IHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAx LTAxLDIwMjAtMDEtMDEpfSB8IAorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAx LTAxKX0gfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBk ZWxldGVzIFNFVCBOVUxMCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1wb3Jh bF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAs MTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUg aWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7 WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYs NykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAg ICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCAKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEs MjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgCisoMiByb3dzKQorCist LSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgICAgICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAs MjAxKSB8IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAKKyBbMjAwLDIwMSkgfCB7WzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KK1RSVU5DQVRFIHRlbXBv cmFsX21sdHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlbXVsdGlyYW5n ZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkg VkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxU ICdbLTEsLTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrCisJ CUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNF UyB0ZW1wb3JhbF9tbHRybmcKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUIE9OIFVQREFURSBT RVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBv cmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZCA9ICdbNyw4KScg V0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAg ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9 IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAg ICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBub24tRlBPIHVw ZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAg ICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtb MjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbLTEs MCkKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJl ZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9 ICdbOSwxMCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkg fCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgWy0xLDApCisgWzIwMCwyMDEpIHwge1sy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVz dCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCitUUlVOQ0FURSB0ZW1w b3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0w MS0wMScpKSkgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAg ICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAy MS0wMS0wMSl9IHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0w MSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBu b24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAx OC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbLTEsMCkK KyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAg ICAgICAgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAw LDIwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUg aWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICB2YWxp ZF9hdCAgICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0wMSwy MDIwLTAxLTAxKX0gfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0w MS0wMSl9IHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQg dXBkYXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9y YWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywg J1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdf ZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKwkJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisJCU9OIERFTEVURSBDQVNDQURFIE9O IFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUg dGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEgPSAn WzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAg ICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAx LDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBb Niw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAg ICAgICAgICAgICAgICAgfCBbNyw4KSAgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5v bi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbNyw4 KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAg ICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAx OS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzcsOCkgICAgICB8IFs2LDcp CisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAg ICAgICAgICAgICB8IFs3LDgpICAgICAgfCBbNiw3KQorKDIgcm93cykKKworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0w MScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAo J1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcyIFNFVCBpZDEgPSAnWzksMTApJyBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRf aWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAx LTAxLDIwMjAtMDEtMDEpfSB8IFs5LDEwKSAgICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8IHtb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3Mp CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2Nh bGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlk MiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRy bmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2Uo JzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAg ICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisoMSByb3cpCisKKy0tIG5vbi1GUE8gZGVs ZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2F0IHwg cGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorKDAgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgs OSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQx ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlk X2F0ICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwg WzgsOSkKKygxIHJvdykKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNF VCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5n MiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9t bHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3 KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcK KwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmssCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKwkJRk9SRUlHTiBL RVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJF TkNFUyB0ZW1wb3JhbF9tbHRybmcyCisJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUg U0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3Jh bF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkMSA9ICdbNyw4KScg V0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAg ICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0w MS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzYsNykgICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRl OgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQx ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAg ICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIw MjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IHtb MjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgIHwgCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkg VkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScs ICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbOSwxMCkn IFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgICB2YWxpZF9hdCAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBbMjAwLDIwMSkgfCB7WzIwMTgtMDEtMDEsMjAyMC0wMS0wMSl9IHwgICAg ICAgICAgICB8IAorIFsyMDAsMjAxKSB8IHtbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBb OCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRl bXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3 KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAs MTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVz OgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAg ICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIw MTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3 KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgCisoMiByb3dzKQorCistLSBub24tRlBPIGRl bGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAg ICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVu dF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEs MjAyMS0wMS0wMSl9IHwgICAgICAgICAgICB8IAorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIHwg CisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn WzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lk MSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScp OworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAg fCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwg e1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkg fCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiBy b3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3 byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0KK1RSVU5DQVRFIHRlbXBvcmFs X21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdb Niw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp LCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNhbid0IHNldCB0 aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisJCUZPUkVJ R04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJF RkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorCQlPTiBERUxFVEUgU0VUIE5VTEwgKHZhbGlk X2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJl ZmVyZW5jZWQgaW4gT04gREVMRVRFIFNFVCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0g b2s6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZworCURST1AgQ09O U1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50 X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBv cmFsX21sdHJuZzIKKwkJT04gREVMRVRFIFNFVCBOVUxMIChwYXJlbnRfaWQxKSBPTiBVUERB VEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEg PSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAg ICAgfCAgICAgICAgICAgICAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAy MC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkg fCB7WzIwMTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgICAgICAgICB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBPIGRlbGV0ZToKK0RF TEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwx MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAg ICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBw YXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSl9IHwgICAgICAgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIw MjAtMDEtMDEpfSAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgfCBbNiw3 KQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSkn KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBB TkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IHtbMjAxOC0wMS0wMSwyMDIwLTAxLTAxKX0gfCAgICAgICAgICAgIHwgWzgsOSkKKyBbMjAw LDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8IFs4LDkp CisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERF RkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcy LCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21s dHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbLTEsLTFd JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg KGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1st MSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMiBTRVQgREVGQVVMVCAnWy0xLC0x XScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrLAor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2ZrCisJCUZPUkVJ R04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJF RkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorCQlPTiBERUxFVEUgU0VUIERFRkFVTFQgT04g VVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERB VEUgdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFNFVCBpZDEg PSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgICAgICAg ICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJlbnRfaWQxIHwgcGFy ZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwx MDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEp fSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0wMSwyMDIw LTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEsMCkgICAgIHwgWy0xLDAp CisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcyIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAg ICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAgICAgfCBwYXJl bnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCB7WzIw MTktMDEtMDEsMjAyMC0wMS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDAp ICAgICB8IFstMSwwKQorKDIgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgs OSknLCAnWzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzks MTApJywgaWQyID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0 cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKyAgICBpZCAgICAgfCAgICAgICAgIHZhbGlkX2F0ICAgICAgICAgIHwgcGFyZW50X2lk MSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IHtbMjAxOC0wMS0w MSwyMDIwLTAxLTAxKX0gfCBbLTEsMCkgICAgIHwgWy0xLDApCisgWzIwMCwyMDEpIHwge1sy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykK KworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28g c2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYs NyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlk MSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlk ICAgICB8ICAgICAgICAgICAgICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgICAgICAgICAg ICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwge1syMDE4LTAxLTAxLDIwMTktMDEtMDEpLFsy MDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAx KSB8IHtbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAg fCBbLTEsMCkgICAgIHwgWy0xLDApCisoMiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAg ICAgICAgICAgICB2YWxpZF9hdCAgICAgICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEg fCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBb MTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSl9IHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAxKSB8IHtbMjAxOS0wMS0w MSwyMDIwLTAxLTAxKX0gICAgICAgICAgICAgICAgICAgICAgICAgfCBbLTEsMCkgICAgIHwg Wy0xLDApCisoMiByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcy IChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdb OCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgs OSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAg ICAgICAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwy MDEpIHwge1syMDE4LTAxLTAxLDIwMjAtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBbLTEsMCkK KyBbMjAwLDIwMSkgfCB7WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWzgsOSkgICAgICB8 IFs4LDkpCisoMiByb3dzKQorCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0K K1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbLTEsLTFdJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51 bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworLS0g ZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIg VEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVu dF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf bWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lk MiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKwkJ T04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxU OworRVJST1I6ICBjb2x1bW4gInZhbGlkX2F0IiByZWZlcmVuY2VkIGluIE9OIERFTEVURSBT RVQgYWN0aW9uIGNhbm5vdCBiZSBQRVJJT0QKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERF RkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJu Z19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZzIKKwkJT04gREVMRVRFIFNF VCBERUZBVUxUIChwYXJlbnRfaWQxKSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0w MS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCAgICAgICAgICAgICAgICAg ICAgIHZhbGlkX2F0ICAgICAgICAgICAgICAgICAgICAgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAx KSB8IHtbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSxbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0g fCBbNiw3KSAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCB7WzIwMTktMDEtMDEsMjAyMC0w MS0wMSl9ICAgICAgICAgICAgICAgICAgICAgICAgIHwgWy0xLDApICAgICB8IFs2LDcpCiso MiByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21s dHJuZzIgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgICAgICAgICAgICAgICAgICAgICB2YWxpZF9hdCAgICAg ICAgICAgICAgICAgICAgICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCB7WzIwMTgtMDEtMDEs MjAxOS0wMS0wMSksWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSl9IHwgWy0xLDApICAgICB8IFs2 LDcpCisgWzEwMCwxMDEpIHwge1syMDE5LTAxLTAxLDIwMjAtMDEtMDEpfSAgICAgICAgICAg ICAgICAgICAgICAgICB8IFstMSwwKSAgICAgfCBbNiw3KQorKDIgcm93cykKKworLS0gRksg YWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRy bmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIg KGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScsICdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbOCw5KScsICdbOCw5KScpOworREVMRVRF IEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8ICAgICAgICAgdmFsaWRfYXQgICAgICAgICAgfCBwYXJlbnRf aWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzIwMCwyMDEpIHwge1syMDE4LTAx LTAxLDIwMjAtMDEtMDEpfSB8IFstMSwwKSAgICAgfCBbOCw5KQorIFsyMDAsMjAxKSB8IHtb MjAyMC0wMS0wMSwyMDIxLTAxLTAxKX0gfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3Mp CisKKy0tIEZLIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZQorQ1JFQVRFIFRZUEUgbXlkYXRl cmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9y bmczICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfYXQgbXlkYXRlcmFuZ2UsCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ybmczX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmszX3JuZzJybmcgKAor CWlkIGludDRyYW5nZSwKKwl2YWxpZF9hdCBteWRhdGVyYW5nZSwKKwlwYXJlbnRfaWQgaW50 NHJhbmdlLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrM19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmczIChpZCwgUEVSSU9EIHZhbGlkX2F0 KSBPTiBERUxFVEUgQ0FTQ0FERQorKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzMgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBteWRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmszX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbNSw2KScsIG15ZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ybmczIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRP ICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbOCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrM19ybmcycm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKyAgaWQgICB8ICAgICAgICB2 YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAx KSB8IFs4LDkpCisgWzUsNikgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCiso MiByb3dzKQorCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nOworRFJPUCBUQUJM RSB0ZW1wb3JhbF9ybmczOworRFJPUCBUWVBFIG15ZGF0ZXJhbmdlOwogLS0KIC0tIHRlc3Qg Rk9SRUlHTiBLRVksIGJveCByZWZlcmVuY2VzIGJveAogLS0gKG5vdCBhbGxvd2VkOiBQRVJJ T0QgcGFydCBtdXN0IGJlIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSkKQEAgLTE0NjAsOCArMjc2 OSw4IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKAogICBuYW1l IHRleHQsCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJpdGlvbmVkX3JuZ19wayBQUklNQVJZ IEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCiApIFBBUlRJVElPTiBCWSBM SVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdHAxIHBhcnRpdGlvbiBPRiB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywg J1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJyk7Ci1DUkVBVEUgVEFCTEUgdHAyIHBhcnRp dGlvbiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMp JywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScpOwor Q1JFQVRFIFRBQkxFIHRwMSBQQVJUSVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdb OSwxMCknLCAnWzExLDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdb MTksMjApJywgJ1syMSwyMiknLCAnWzIzLDI0KScpOworQ1JFQVRFIFRBQkxFIHRwMiBQQVJU SVRJT04gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwx KScsICdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sx MiwxMyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdb MjIsMjMpJywgJ1syNCwyNSknKTsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyAoaWQsIHZhbGlkX2F0LCBuYW1lKSBWQUxVRVMKICAgKCdbMSwyKScsIGRhdGVyYW5n ZSgnMjAwMC0wMS0wMScsICcyMDAwLTAyLTAxJyksICdvbmUnKSwKICAgKCdbMSwyKScsIGRh dGVyYW5nZSgnMjAwMC0wMi0wMScsICcyMDAwLTAzLTAxJyksICdvbmUnKSwKQEAgLTE0NzQs OCArMjc4Myw4IEBAIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nICgKIAlDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlSRUZFUkVOQ0VT IHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIFBFUklPRCB2YWxpZF9hdCkKICkgUEFS VElUSU9OIEJZIExJU1QgKGlkKTsKLUNSRUFURSBUQUJMRSB0ZmtwMSBwYXJ0aXRpb24gT0Yg dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzEsMikn LCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCknLCAnWzksMTApJywgJ1sxMSwxMiknKTsKLUNS RUFURSBUQUJMRSB0ZmtwMiBwYXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyBGT1IgVkFMVUVTIElOICgnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgs OSknLCAnWzEwLDExKScsICdbMTIsMTMpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDEgUEFSVElU SU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAo J1sxLDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIp JywgJ1sxMywxNCknLCAnWzE1LDE2KScsICdbMTcsMTgpJywgJ1sxOSwyMCknLCAnWzIxLDIy KScsICdbMjMsMjQpJyk7CitDUkVBVEUgVEFCTEUgdGZrcDIgUEFSVElUSU9OIE9GIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1swLDEpJywgJ1sy LDMpJywgJ1s0LDUpJywgJ1s2LDcpJywgJ1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScs ICdbMTQsMTUpJywgJ1sxNiwxNyknLCAnWzE4LDE5KScsICdbMjAsMjEpJywgJ1syMiwyMykn LCAnWzI0LDI1KScpOwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jaW5nIGluc2Vy dHMKIC0tCkBAIC0xNTE3LDcgKzI4MjYsNyBAQCBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMi0wMScsICcyMDE2LTAz LQogLS0gc2hvdWxkIGZhaWw6CiBVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNF VCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKICAg V0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDE4LTAyLTAxJyk7Ci1FUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUg InRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfcGFydGl0 aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleSIgb24gdGFibGUgInRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciCitFUlJPUjogIHVwZGF0ZSBvciBkZWxl dGUgb24gdGFibGUgInRwMSIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19wYXJlbnRfaWRfdmFsaWRfYXRfZmtleTEi IG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgogREVUQUlMOiAg S2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlz IHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyIuCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5P IEFDVElPTgpAQCAtMTUyOSw3ICsyODM4LDcgQEAgSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAo J1sKIERFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdb NSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywgJzIwMTgtMDMt MDEnKTsKIC0tIHNob3VsZCBmYWlsOgogREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwotRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9u IHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXkiIG9uIHRh YmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgorRVJST1I6ICB1cGRhdGUg b3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0 X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKIERF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmciLgogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBSRVNUUklDVApAQCAtMTU1MSw3ICsyODYwLDcgQEAgVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDItMDEnLCAn MjAxNi0wMy0KIC0tIHNob3VsZCBmYWlsOgogVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyBTRVQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIwMTYtMDEtMDEnLCAnMjAxNi0wMi0w MScpCiAgIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwotRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9u IHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2ZrZXkiIG9uIHRh YmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgorRVJST1I6ICB1cGRhdGUg b3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFp bnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0 X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyIKIERF VEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAxLDIwMTgtMDIt MDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX3BhcnRpdGlv bmVkX2ZrX3JuZzJybmciLgogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVs ZXRlcyBSRVNUUklDVApAQCAtMTU2Myw0OCArMjg3MiwyMzQgQEAgSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1sKIERFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVS RSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZXJhbmdlKCcyMDE4LTAyLTAxJywg JzIwMTgtMDMtMDEnKTsKIC0tIHNob3VsZCBmYWlsOgogREVMRVRFIEZST00gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOwotRVJST1I6ICB1cGRhdGUgb3Ig ZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQg InRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lkX3ZhbGlkX2F0X2Zr ZXkiIG9uIHRhYmxlICJ0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIgorRVJST1I6 ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0cDEiIHZpb2xhdGVzIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgInRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfcGFyZW50X2lk X3ZhbGlkX2F0X2ZrZXkxIiBvbiB0YWJsZSAidGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZyIKIERFVEFJTDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAx LDIwMTgtMDItMDEpKSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmciLgogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVy ZW5jZWQgdXBkYXRlcyBDQVNDQURFCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVu dF9pZCkgVkFMVUVTICgnWzQsNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzYsNyknKTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcKIAlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZ19maywKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nX2ZrCiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJ UkVGRVJFTkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcKIAkJT04gREVMRVRFIENBU0NB REUgT04gVVBEQVRFIENBU0NBREU7Ci1FUlJPUjogIGludmFsaWQgT04gREVMRVRFIGFjdGlv biBmb3IgZm9yZWlnbiBrZXkgY29uc3RyYWludCB1c2luZyBQRVJJT0QKK1VQREFURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAx OS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAn WzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1s0LDUpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAg IHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzQsNSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzQs NSkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs2LDcpCisgWzQsNSkgfCBbMjAyMC0w MS0wMSwyMDIxLTAxLTAxKSB8IFs2LDcpCisoMyByb3dzKQorCitVUERBVEUgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1s0LDUpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50 X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisg WzQsNSkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFs3LDgpCisgWzQsNSkgfCBbMjAx OC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs3LDgpCisgWzQsNSkgfCBbMjAyMC0wMS0wMSwyMDIx LTAxLTAxKSB8IFs3LDgpCisoMyByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRl cmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMTAsMTEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1sxNSwxNiknKTsKK1VQREFURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgU0VUIGlk ID0gJ1sxNiwxNyknIFdIRVJFIGlkID0gJ1sxNSwxNiknIEFORCB2YWxpZF9hdCBAPiAnMjAx OS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwLDExKSc7CisgICBpZCAgICB8ICAgICAgICB2YWxp ZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAsMTEpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0w MSkgfCBbMTYsMTcpCisgWzEwLDExKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzE1 LDE2KQorKDIgcm93cykKKwogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVs ZXRlcyBDQVNDQURFCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzUsNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAn WzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQgPSAnWzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1s1LDYpJzsKKyAgaWQgICB8ICAgICAgICB2YWxpZF9h dCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzUsNikgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8IFs4 LDkpCisgWzUsNikgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFs4LDkpCisoMiByb3dz KQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAn WzgsOSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1s1LDYpJzsKKyBpZCB8IHZhbGlkX2F0IHwgcGFyZW50X2lkIAorLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisoMCByb3dzKQorCitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzE3LDE4KScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxNywx OCknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1sxNywxOCknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyBXSEVSRSBpZCA9ICdbMTcsMTgpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworICAgaWQgICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzExLDEyKSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwg WzE3LDE4KQorKDEgcm93KQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBOVUxMCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n LCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s5LDEwKScsIGRh dGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s5LDEwKScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5n MnJuZwogCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n X2ZrLAogCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdf ZmsKIAkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZwogCQlPTiBERUxFVEUgU0VUIE5VTEwg T04gVVBEQVRFIFNFVCBOVUxMOwotRVJST1I6ICBpbnZhbGlkIE9OIERFTEVURSBhY3Rpb24g Zm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUgaWQgPSAn WzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbNiw3KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLQorIFs2LDcpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbNiw3KSB8 IFsyMDE4LTAxLTAxLDIwMTktMDEtMDEpIHwgWzksMTApCisgWzYsNykgfCBbMjAyMC0wMS0w MSwyMDIxLTAxLTAxKSB8IFs5LDEwKQorKDMgcm93cykKKworVVBEQVRFIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUgaWQgPSAnWzksMTApJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBp ZCA9ICdbNiw3KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFs2LDcpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbNiw3KSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgCisgWzYsNykgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8 IAorKDMgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxOCwxOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3Ju ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTgsMTkpJywgZGF0ZXJhbmdlKCcyMDIwLTAx LTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEyLDEz KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTgsMTkpJyk7 CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbMTksMjApJyBX SEVSRSBpZCA9ICdbMTgsMTkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRl OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJF IGlkID0gJ1sxMiwxMyknOworICAgaWQgICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tCisgWzEyLDEzKSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwgCisgWzEyLDEz KSB8IFsyMDIwLTAxLTAxLDIwMjEtMDEtMDEpIHwgWzE4LDE5KQorKDIgcm93cykKKwogLS0K IC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTAogLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZywgdGVtcG9yYWxfcGFydGl0aW9uZWRf Zmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzcsOCknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzExLDEyKScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbMTEsMTIp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVS RSBpZCA9ICdbNyw4KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBh cmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LQorIFs3LDgpIHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCAKKyBbNyw4KSB8IFsyMDE4 LTAxLTAxLDIwMTktMDEtMDEpIHwgWzExLDEyKQorIFs3LDgpIHwgWzIwMjAtMDEtMDEsMjAy MS0wMS0wMSkgfCBbMTEsMTIpCisoMyByb3dzKQorCitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzExLDEyKSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzcsOCknOworICBp ZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbNyw4KSB8IFsyMDE5LTAx LTAxLDIwMjAtMDEtMDEpIHwgCisgWzcsOCkgfCBbMjAxOC0wMS0wMSwyMDE5LTAxLTAxKSB8 IAorIFs3LDgpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCAKKygzIHJvd3MpCisKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxV RVMgKCdbMjAsMjEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzIwLDIxKScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMywxNCknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzIwLDIxKScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1syMCwyMSknIEFORCB2YWxpZF9h dCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEzLDE0KSc7CisgICBpZCAgICB8ICAg ICAgICB2YWxpZF9hdCAgICAgICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTMsMTQpIHwgWzIwMTgtMDEtMDEs MjAyMC0wMS0wMSkgfCAKKyBbMTMsMTQpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBb MjAsMjEpCisoMiByb3dzKQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCB1 cGRhdGVzIFNFVCBERUZBVUxUCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nLCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1swLDEpJywg ZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlv bmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTIsMTMpJywgZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgn WzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzEyLDEz KScpOwogQUxURVIgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZwotICBB TFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIg Q09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAnWzAsMSknLAogCURST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrLAogCUFERCBDT05TVFJBSU5U IHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdfZmsKIAkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQogCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZwogCQlPTiBERUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZB VUxUOwotRVJST1I6ICBpbnZhbGlkIE9OIERFTEVURSBhY3Rpb24gZm9yIGZvcmVpZ24ga2V5 IGNvbnN0cmFpbnQgdXNpbmcgUEVSSU9ECitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzgsOSknOworICBpZCAgIHwgICAgICAgIHZhbGlkX2F0ICAgICAgICAgfCBwYXJlbnRfaWQg CistLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbOCw5 KSB8IFsyMDE5LTAxLTAxLDIwMjAtMDEtMDEpIHwgWzAsMSkKKyBbOCw5KSB8IFsyMDE4LTAx LTAxLDIwMTktMDEtMDEpIHwgWzEyLDEzKQorIFs4LDkpIHwgWzIwMjAtMDEtMDEsMjAyMS0w MS0wMSkgfCBbMTIsMTMpCisoMyByb3dzKQorCitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIFNFVCBpZCA9ICdbMTMsMTQpJyBXSEVSRSBpZCA9ICdbMTIsMTMpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb OCw5KSc7CisgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVudF9pZCAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFs4LDkp IHwgWzIwMTktMDEtMDEsMjAyMC0wMS0wMSkgfCBbMCwxKQorIFs4LDkpIHwgWzIwMTgtMDEt MDEsMjAxOS0wMS0wMSkgfCBbMCwxKQorIFs4LDkpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0w MSkgfCBbMCwxKQorKDMgcm93cykKKworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwyMyknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjIsMjMpJywgZGF0ZXJhbmdl KCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzE0LDE1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb MjIsMjMpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdb MjMsMjQpJyBXSEVSRSBpZCA9ICdbMjIsMjMpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEt MDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOworICAgaWQgICAgfCAgICAgICAgdmFsaWRfYXQg ICAgICAgICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzE0LDE1KSB8IFsyMDE4LTAxLTAxLDIwMjAtMDEtMDEpIHwg WzAsMSkKKyBbMTQsMTUpIHwgWzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMjIsMjMpCiso MiByb3dzKQorCiAtLQogLS0gcGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNF VCBERUZBVUxUCiAtLQorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1swLDEpJywgZGF0ZXJhbmdl KG51bGwsIG51bGwpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAo aWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMTQsMTUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9m a19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzksMTApJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxNCwxNSknKTsKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzE0 LDE1KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzksMTApJzsKKyAgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAg ICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbOSwxMCkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFswLDEpCisg WzksMTApIHwgWzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbMTQsMTUpCisgWzksMTApIHwg WzIwMjAtMDEtMDEsMjAyMS0wMS0wMSkgfCBbMTQsMTUpCisoMyByb3dzKQorCitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgV0hFUkUgaWQgPSAnWzE0LDE1KSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzksMTApJzsKKyAgIGlkICAgfCAgICAgICAgdmFsaWRfYXQgICAgICAgICB8IHBhcmVu dF9pZCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbOSwxMCkgfCBbMjAxOS0wMS0wMSwyMDIwLTAxLTAxKSB8IFswLDEpCisgWzksMTApIHwg WzIwMTgtMDEtMDEsMjAxOS0wMS0wMSkgfCBbMCwxKQorIFs5LDEwKSB8IFsyMDIwLTAxLTAx LDIwMjEtMDEtMDEpIHwgWzAsMSkKKygzIHJvd3MpCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbMjQsMjUpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzI0LDI1KScs IGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1sxNSwxNiknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzI0LDI1KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIFdIRVJFIGlkID0gJ1syNCwyNSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6 OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzE1LDE2KSc7CisgICBpZCAgICB8ICAgICAgICB2YWxpZF9hdCAgICAg ICAgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0KKyBbMTUsMTYpIHwgWzIwMTgtMDEtMDEsMjAyMC0wMS0wMSkgfCBbMCwx KQorIFsxNSwxNikgfCBbMjAyMC0wMS0wMSwyMDIxLTAxLTAxKSB8IFsyNCwyNSkKKygyIHJv d3MpCisKIERST1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZzsKIERS T1AgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nOwogUkVTRVQgZGF0ZXN0eWxlOwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNxbAppbmRleCAxMGMz Njk3MzYzYS4uMGNiNDI2NTczMjMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3dpdGhv dXRfb3ZlcmxhcHMuc3FsCkBAIC0yLDcgKzIsNyBAQAogLS0KIC0tIFdlIGxlYXZlIGJlaGlu ZCBzZXZlcmFsIHRhYmxlcyB0byB0ZXN0IHBnX2R1bXAgZXRjOgogLS0gdGVtcG9yYWxfcm5n LCB0ZW1wb3JhbF9ybmcyLAotLS0gdGVtcG9yYWxfZmtfcm5nMnJuZy4KKy0tIHRlbXBvcmFs X2ZrX3JuZzJybmcsIHRlbXBvcmFsX2ZrMl9ybmcycm5nLgogCiBTRVQgZGF0ZXN0eWxlIFRP IElTTywgWU1EOwogCkBAIC02ODYsNiArNjg2LDggQEAgVVBEQVRFIHRlbXBvcmFsX3JuZwog Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEt MTAnCiBTRVQgaWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCBpbiAoJ1s1LDYpJywgJ1s3LDgpJykgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdI RVJFIGlkIGluICgnWzMsNCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAtLSB0aGVuIGRl bGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1 Y2NlZWRzOgogREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdb Myw0KSc7CiBVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVyYW5nZSgn MjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykKQEAgLTczMCw2ICs3MzIsOCBAQCBVUERBVEUg dGVtcG9yYWxfcm5nCiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1 JyBUTyAnMjAxOC0wMS0xMCcKIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAn WzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2Ft ZSBQSyB1cGRhdGUgc3VjY2VlZHM6CiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5n IFdIRVJFIGlkID0gJ1szLDQpJzsKIFVQREFURSB0ZW1wb3JhbF9ybmcgU0VUIHZhbGlkX2F0 ID0gZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIwMTYtMDItMDEnKQpAQCAtNzY1LDEyICs3 NjksMTEgQEAgV0hFUkUgaWQgPSAnWzUsNiknOwogREVMRVRFIEZST00gdGVtcG9yYWxfcm5n CiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0w MS0xMCcKIFdIRVJFIGlkID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcm5n IFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdbMyw0 KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3Rp bmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxFVEUg RlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVURSBG Uk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgotREVM RVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUsNikn OwotREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsKIAog LS0KIC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFJFU1RSSUNUCkBAIC04MDIsNDEg KzgwNSwxMzEgQEAgV0hFUkUgaWQgPSAnWzUsNiknOwogREVMRVRFIEZST00gdGVtcG9yYWxf cm5nCiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAx OC0wMS0xMCcKIFdIRVJFIGlkID0gJ1s1LDYpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf cm5nIFdIRVJFIGlkIGluICgnWzUsNiknLCAnWzcsOCknKSBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgaW4gKCdb Myw0KScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIC0tIHRoZW4gZGVsZXRlIHRoZSBvYmpl Y3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CiBERUxF VEUgRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKIERFTEVU RSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0g ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKLS0tIGNsZWFuIHVwOgot REVMRVRFIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBwYXJlbnRfaWQgPSAnWzUs NiknOwotREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIFdIRVJFIGlkIElOICgnWzUsNiknKTsK IAogLS0KLS0tIHRlc3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCistLSBybmcycm5nIHRl c3QgT04gVVBEQVRFL0RFTEVURSBvcHRpb25zCiAtLQorLS0gVE9DOgorLS0gcmVmZXJlbmNl ZCB1cGRhdGVzIENBU0NBREUKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCistLSBy ZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQg TlVMTAorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSByZWZlcmVuY2Vk IGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFICh0 d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNj YWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFy IGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29s cykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBT RVQgTlVMTCBzdWJzZXQpCistLSByZWZlcmVuY2VkIHVwZGF0ZXMgU0VUIERFRkFVTFQgKHR3 byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdv IHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28g c2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKIAorLS0KIC0tIHRlc3QgRksgcmVm ZXJlbmNlZCB1cGRhdGVzIENBU0NBREUKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3JuZywg dGVtcG9yYWxfZmtfcm5nMnJuZzsKIElOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlk X2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s0LDUpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19y bmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3JuZzJybmdfZmssCiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19m awogCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVS RU5DRVMgdGVtcG9yYWxfcm5nCiAJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVND QURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcm5n IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3Ju ZyBTRVQgaWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIw MjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK1VQREFU RSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAnWzgsOSknIEFO RCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CiAKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFCist LQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb MTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYs NyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9y YWxfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CistLSBub24tRlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVS RSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jv c3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQp IFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hF UkUgaWQgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEp JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQg dXBkYXRlcyBTRVQgTlVMTAotSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s5LDEwKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpOwotSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0 LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s5LDEwKScpOworLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5n LCB0ZW1wb3JhbF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFs aWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19ybmcycm5nCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3JuZzJybmdfZmss CiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcm5nMnJuZ19mawogCQlGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVSRU5DRVMgdGVtcG9yYWxf cm5nCiAJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZCA9 ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9m a19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdb Nyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor LS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZh bGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX3Ju ZyBTRVQgaWQgPSAnWzksMTApJyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKIAorLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMCistLQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9ybmcsIHRlbXBvcmFsX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nIEZPUiBQ T1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBX SEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcg V0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24t RlBPIGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZyBXSEVSRSBpZCA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFM VUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSwgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcgV0hFUkUgaWQgPSAnWzgs OSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisKKy0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQg REVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nLCB0ZW1wb3JhbF9ma19ybmcy cm5nOwogSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1stMSwtMV0nLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOwotSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKLUlOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Ju ZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTIsMTMpJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAw LDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNykn KTsKIEFMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcKICAgQUxURVIgQ09MVU1OIHBh cmVudF9pZCBTRVQgREVGQVVMVCAnWy0xLC0xXScsCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3JuZzJybmdfZmssCkBAIC04NDQsNiArOTM3LDI1MiBAQCBBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19ybmcycm5nCiAJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2 YWxpZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcKIAkJT04gREVMRVRFIFNFVCBE RUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBp ZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUg aWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVw ZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9ybmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3JuZzJybmcgV0hFUkUgaWQg PSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdv IHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSwgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nIFNFVCBpZCA9ICdbOSwx MCknIFdIRVJFIGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sy MDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZl cmVuY2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3Ju ZywgdGVtcG9yYWxfZmtfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQs IHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyks ICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9ybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScg VE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5n IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n IChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Ju ZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMjAw LDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJl bmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9ybmcycm5nOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3 KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFy ZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcm5nMnJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19m aywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maworCQlGT1JFSUdO IEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZF UkVOQ0VTIHRlbXBvcmFsX3JuZzIKKwkJT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENB U0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9y bmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBv cmFsX3JuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9h dCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAn MjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScs IGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5 KScpOworVVBEQVRFIHRlbXBvcmFsX3JuZzIgU0VUIGlkMSA9ICdbOSwxMCknIFdIRVJFIGlk MSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVs ZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3Jh bF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Ju ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9h dCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJh bmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsy X3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7 CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNj YWxhciBjb2xzKQorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3JuZzIsIHRlbXBvcmFsX2ZrMl9y bmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0 KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywg ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcp Jyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcm5nMnJuZworCURST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcm5nMnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwg UEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKwkJT04gREVM RVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknIFdI RVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5n IFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9u LUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s3LDgpJyBX SEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScs IGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBT RVQgaWQxID0gJ1s5LDEwKScgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0K Ky0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNv bHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJu ZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFM VUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOwor LS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcy IEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAx LTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJf cm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBp ZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVS RSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9z cyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQx LCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVy YW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikg VkFMVUVTICgnWzIwMCwyMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdI RVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwy MDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQp CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9ybmcyLCB0ZW1wb3JhbF9mazJfcm5nMnJuZzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzYsNyknLCAnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbNiw3KScsICdbNiw3KScpOworLS0g ZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIg VEFCTEUgdGVtcG9yYWxfZmsyX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxf ZmsyX3JuZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdf ZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxp ZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisJCU9OIERFTEVURSBTRVQgTlVM TCAodmFsaWRfYXQpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIG9rOgorQUxURVIgVEFCTEUg dGVtcG9yYWxfZmsyX3JuZzJybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Ju ZzJybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcyCisJCU9OIERFTEVURSBTRVQgTlVMTCAocGFy ZW50X2lkMSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0 IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNykn OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAw LDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx JykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIx LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywgZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4LDkpJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ybmcyIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBTRVQgREVGQVVMVCAo dHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9y YWxfZmsyX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVyYW5nZShudWxs LCBudWxsKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYs NyknKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9ybmcycm5nCisgIEFMVEVSIENPTFVN TiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1OIHBh cmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9mazJfcm5nMnJuZ19maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcm5n MnJuZ19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9E IHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3JuZzIKKwkJT04gREVMRVRFIFNF VCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3JuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsOCknLCBp ZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQg aWQxID0gJ1s3LDgpJywgaWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlk X2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwgJ1s4LDkpJywgJ1s4 LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfcm5nMiBTRVQgaWQxID0gJ1s5LDEwKScsIGlkMiA9 ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUg aWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0 IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQor LS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAo J1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVyYW5nZShudWxsLCBudWxsKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcp JywgJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVy cyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBGT1IgUE9SVElP TiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUg aWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hF UkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBP IHVwZGF0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzIgV0hFUkUgaWQxID0gJ1s2LDcp JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3JuZzJybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3JuZzIgKGlkMSwgaWQy LCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcy cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sy MDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbOCw5 KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAn WzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJFIGlkID0gJ1syMDAsMjAxKScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VUIERFRkFVTFQgc3Vic2V0KQorLS0K KworVFJVTkNBVEUgdGVtcG9yYWxfcm5nMiwgdGVtcG9yYWxfZmsyX3JuZzJybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9ybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1st MSwtMV0nLCAnWzYsNyknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdb Niw3KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmsyX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwg cGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBmYWlscyBiZWNhdXNl IHlvdSBjYW4ndCBzZXQgdGhlIFBFUklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcm5nMnJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrLAor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9ybmcycm5nX2ZrCisJCUZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5D RVMgdGVtcG9yYWxfcm5nMgorCQlPTiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0KSBP TiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr Ml9ybmcycm5nCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEs LTFdJywKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmssCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3JuZzJybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBh cmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0 ZW1wb3JhbF9ybmcyCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCAocGFyZW50X2lkMSkgT04g VVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9ybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00g dGVtcG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2 YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScs ICdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsICdbOCw5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbLTEsLTFdJywgJ1s4LDkpJywgZGF0ZXJhbmdlKG51bGwsIG51bGwpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJyksICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcm5nMiBXSEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9ybmcycm5nIFdIRVJF IGlkID0gJ1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogCiAtLQogLS0gdGVz dCBGT1JFSUdOIEtFWSwgbXVsdGlyYW5nZSByZWZlcmVuY2VzIG11bHRpcmFuZ2UKQEAgLTEw OTcsNiArMTQzNiwyMCBAQCBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMAogLS0gY2hhbmdp bmcgdGhlIHNjYWxhciBwYXJ0IGZhaWxzOgogVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQg aWQgPSAnWzcsOCknCiBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CistLSBj aGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRlbXBvcmFs X21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAxLTAzJykpKQorU0VUIGlkID0gJ1s3LDgpJwor V0hFUkUgaWQgPSAnWzUsNiknOworLS0gY2hhbmdpbmcganVzdCBhIHBhcnQgZmFpbHM6CitV UERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkpCitTRVQg aWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSB0aGVuIGRlbGV0ZSB0aGUg b2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgor REVMRVRFIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0 KSc7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCB2YWxpZF9hdCA9IGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxNi0wMS0wMScsICcyMDE2LTAyLTAxJykpCitXSEVSRSBpZCA9 ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiAKIC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQg dXBkYXRlcyBSRVNUUklDVApAQCAtMTEyNyw2ICsxNDgwLDIwIEBAIFdIRVJFIGlkID0gJ1s1 LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAxOC0wCiAtLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQgZmFpbHM6CiBVUERB VEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScKIFdIRVJFIGlkID0gJ1s1LDYp JyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEn LCAnMjAxOC0wMi0wMScpKTsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlz IG9rYXk6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAyJywgJzIwMTgtMDEtMDMn KSkpCitTRVQgaWQgPSAnWzcsOCknCitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSBjaGFuZ2lu ZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUn LCAnMjAxOC0wMS0xMCcpKSkKK1NFVCBpZCA9ICdbNyw4KScKK1dIRVJFIGlkID0gJ1s1LDYp JzsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3JkIGFuZCB0aGUgc2Ft ZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcy bWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VU IHZhbGlkX2F0ID0gZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE2LTAxLTAxJywgJzIw MTYtMDItMDEnKSkKK1dIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRlbXVs dGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpKTsKIAogLS0K IC0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIE5PIEFDVElPTgpAQCAtMTE1MCw2ICsx NTE3LDE3IEBAIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMyw0KScsCiBERUxFVEUgRlJPTSB0ZW1w b3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9IGRhdGVtdWx0 aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJykpOwogLS0gYSBQ SyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CiBERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9h dCA9IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JykpOworLS0gZGVsZXRpbmcgYW4gdW5yZWZlcmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX21sdHJuZworRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMicsICcyMDE4LTAxLTAzJykpKQorV0hF UkUgaWQgPSAnWzUsNiknOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQgZmFpbHM6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDUnLCAnMjAxOC0wMS0xMCcpKSkKK1dI RVJFIGlkID0gJ1s1LDYpJzsKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVj b3JkIGFuZCB0aGUgc2FtZSBQSyBkZWxldGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1szLDQpJzsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSk7CiAK IC0tCiAtLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBSRVNUUklDVApAQCAtMTE3Myw2 ICsxNTUxLDQxNyBAQCBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMsNCknLAogREVMRVRFIEZST00g dGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFsaWRfYXQgPSBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpKTsKIC0t IGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgog REVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s1LDYpJyBBTkQgdmFs aWRfYXQgPSBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAxOC0w Mi0wMScpKTsKKy0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChk YXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDInLCAnMjAxOC0wMS0wMycpKSkK K1dIRVJFIGlkID0gJ1s1LDYpJzsKKy0tIGRlbGV0aW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgor REVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAo ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnKSkp CitXSEVSRSBpZCA9ICdbNSw2KSc7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZL IHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00g dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMyw0KSc7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9tbHRybmcgV0hFUkUgaWQgPSAnWzUsNiknIEFORCB2YWxpZF9hdCA9 IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJykp OworCistLQorLS0gbWx0cm5nMm1sdHJuZyB0ZXN0IE9OIFVQREFURS9ERUxFVEUgb3B0aW9u cworLS0KKy0tIFRPQzoKKy0tIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCistLSByZWZl cmVuY2VkIGRlbGV0ZXMgQ0FTQ0FERQorLS0gcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxM CistLSByZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tIHJlZmVyZW5jZWQgdXBkYXRl cyBTRVQgREVGQVVMVAorLS0gcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCistLSBy ZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJl bmNlZCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5jZWQg dXBkYXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0gcmVmZXJlbmNlZCBkZWxl dGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVuY2VkIGRlbGV0ZXMg U0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0gcmVmZXJl bmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLSByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHJlZmVyZW5j ZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzLCBTRVQgREVGQVVMVCBz dWJzZXQpCisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBkYXRlcyBDQVNDQURFCist LQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVT ICgnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChp ZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScp OworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCURST1AgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworCQlPTiBE RUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3Ro IHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEn KSkpIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitVUERBVEUgdGVtcG9y YWxfbWx0cm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFM VUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDEp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQgaWQgPSAnWzksMTAp JyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCBkZWxldGVzIENBU0NBREUKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21s dHJuZywgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxp ZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEt MDEnKSkpIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9N IHRlbXBvcmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1s dHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCistLQorCitUUlVO Q0FURSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzYsNykn LCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScpOworQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZworCURST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X21sdHJuZzJtbHRybmdfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX21sdHJuZworCQlPTiBERUxFVEUgU0VU IE5VTEwgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VU IGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRy bmcgU0VUIGlkID0gJ1s3LDgpJyBXSEVSRSBpZCA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb OCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAx LTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRy bmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4 LDkpJyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nIFNFVCBpZCA9ICdbOSwxMCknIFdIRVJF IGlkID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9ma19tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1syMDAs MjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyByZWZlcmVu Y2VkIGRlbGV0ZXMgU0VUIE5VTEwKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZywg dGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMg KCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAo ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5n Mm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK Ky0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJF IGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu ZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX21sdHJuZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0t IHRlc3QgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCistLQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9tbHRybmcsIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWy0xLC0xXScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZW11 bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQg REVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX21sdHJu ZzJtbHRybmdfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJu Z19maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJF RkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nCisJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBV UERBVEUgU0VUIERFRkFVTFQ7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykpKSBTRVQgaWQgPSAn WzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf bWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZyBTRVQg aWQgPSAnWzcsOCknIFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAo J1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQs IHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsK K1VQREFURSB0ZW1wb3JhbF9tbHRybmcgU0VUIGlkID0gJ1s5LDEwKScgV0hFUkUgaWQgPSAn WzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVs ZXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nLCB0ZW1w b3JhbF9ma19tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChp ZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UobnVsbCwgbnVsbCkpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX21s dHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEw MSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpKSwgJ1s2LDcpJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX21sdHJuZyBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRp cmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlk ID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBX SEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nIFdIRVJFIGlkID0gJ1s2 LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0 d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nIChpZCwg dmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0 cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0 ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmtfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZyBXSEVSRSBpZCA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9 ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksg cmVmZXJlbmNlZCB1cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJ T0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorCQlPTiBERUxF VEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FERTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNp ZGVzOgorVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg KGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0wMS0wMScsICcyMDIwLTAxLTAxJykp KSBTRVQgaWQxID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBv cmFsX21sdHJuZzIgU0VUIGlkMSA9ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEw MCwxMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2 YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGlyYW5nZShkYXRl cmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4 LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEt MDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSks ICdbOCw5KScsICdbOCw5KScpOworVVBEQVRFIHRlbXBvcmFsX21sdHJuZzIgU0VUIGlkMSA9 ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMp CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5n Mm1sdHJuZzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxp ZF9hdCkgVkFMVUVTICgnWzYsNyknLCAnWzYsNyknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMTAwLDEwMSknLCBkYXRlbXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s2LDcpJywgJ1s2LDcpJyk7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgRk9S IFBPUlRJT04gT0YgdmFsaWRfYXQgKGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOS0w MS0wMScsICcyMDIwLTAxLTAxJykpKSBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSkn IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfbWx0cm5nMiBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBW QUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAx OC0wMS0wMScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJu ZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRl bXVsdGlyYW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBw YXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywg J1s4LDkpJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHJlZmVyZW5jZWQgdXBk YXRlcyBTRVQgTlVMTCAodHdvIHNjYWxhciBjb2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9y YWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywg J1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlk LCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEp JywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJu ZzJtbHRybmcKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdf ZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmdfZmsKKwkJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9tbHRybmcyCisJCU9OIERFTEVURSBTRVQgTlVMTCBP TiBVUERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFU RSB0ZW1wb3JhbF9tbHRybmcyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IChkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMTktMDEtMDEnLCAnMjAyMC0wMS0wMScpKSkgU0VUIGlkMSA9 ICdbNyw4KScgV0hFUkUgaWQxID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzEwMCwxMDEpJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcy IFNFVCBpZDEgPSAnWzcsOCknIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAn WzgsOSknKTsKK1VQREFURSB0ZW1wb3JhbF9tbHRybmcyIFNFVCBpZDEgPSAnWzksMTApJyBX SEVSRSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0g J1syMDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQorLS0gdGVzdCBGSyBy ZWZlcmVuY2VkIGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxV RVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRy bmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBP RiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIw MjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkg aWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4 LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBp ZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEs IHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVy YW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQg dmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBO VUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX21sdHJuZzIsIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdb Niw3KScsICdbNiw3KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sx MDAsMTAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJykpLCAnWzYsNyknLCAnWzYsNyknKTsKKy0tIGZhaWxzIGJlY2F1c2UgeW91IGNh bid0IHNldCB0aGUgUEVSSU9EIGNvbHVtbjoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0 cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nX2Zr CisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRf YXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorCQlPTiBERUxFVEUgU0VUIE5V TEwgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIE5VTEw7CistLSBvazoKK0FMVEVSIFRBQkxF IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9tbHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorCQlP TiBERUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5n MiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcy MDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAs MTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAx KScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf bWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScs IGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRf YXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAxKScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzgs OSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJuZzIgV0hFUkUgaWQx ID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMjAwLDIw MSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNl ZCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FU RSB0ZW1wb3JhbF9tbHRybmcyLCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZzsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgn Wy0xLC0xXScsICdbLTEsLTFdJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51 bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRf YXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdl KCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lk MikgVkFMVUVTICgnWzEwMCwxMDEpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKSksICdbNiw3KScsICdbNiw3KScpOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9p ZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMiBT RVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9t bHRybmcybWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJ T0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorCQlPTiBERUxF VEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9u IGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAt MDEtMDEnKSkpIFNFVCBpZDEgPSAnWzcsOCknLCBpZDIgPSAnWzcsOCknIFdIRVJFIGlkMSA9 ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdI RVJFIGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQ TyB1cGRhdGU6CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s3LDgpJywg aWQyID0gJ1s3LDgpJyBXSEVSRSBpZDEgPSAnWzYsNyknOworU0VMRUNUICogRlJPTSB0ZW1w b3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBpZCA9ICdbMTAwLDEwMSknIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlk MSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCAnWzgsOSknLCBkYXRlbXVsdGly YW5nZShkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMSknLCBkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKSwgJ1s4LDkpJywgJ1s4LDkp Jyk7CitVUERBVEUgdGVtcG9yYWxfbWx0cm5nMiBTRVQgaWQxID0gJ1s5LDEwKScsIGlkMiA9 ICdbOSwxMCknIFdIRVJFIGlkMSA9ICdbOCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcg V0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBj b2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfbWx0cm5nMiwgdGVtcG9yYWxfZmsyX21s dHJuZzJtbHRybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwg dmFsaWRfYXQpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIGRhdGVtdWx0aXJhbmdl KGRhdGVyYW5nZShudWxsLCBudWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbNiw3KScsICdbNiw3KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAxKScsIGRhdGVtdWx0aXJh bmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJykpLCAnWzYsNyknLCAn WzYsNyknKTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVt cG9yYWxfbWx0cm5nMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2Uo ZGF0ZXJhbmdlKCcyMDE5LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdb Niw3KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJF IGlkID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1 cGRhdGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3 KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlk ID0gJ1sxMDAsMTAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3 byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEs IGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFu Z2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfbWx0cm5nMiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5 KScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJykpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n IChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAs MjAxKScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJykpLCAnWzgsOSknLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX21sdHJu ZzIgV0hFUkUgaWQxID0gJ1s4LDkpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpk YXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZyBXSEVSRSBp ZCA9ICdbMjAwLDIwMSknIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3Qg RksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNF VCBERUZBVUxUIHN1YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX21sdHJuZzIsIHRl bXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDcpJywgZGF0 ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKG51bGwsIG51bGwpKSk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgJ1s2 LDcpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDEpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSks ICdbNiw3KScsICdbNiw3KScpOworLS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRo ZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAor CURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maywKKwlBREQg Q09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfbWx0cm5nMm1sdHJuZ19maworCQlGT1JFSUdOIEtF WSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVO Q0VTIHRlbXBvcmFsX21sdHJuZzIKKwkJT04gREVMRVRFIFNFVCBERUZBVUxUICh2YWxpZF9h dCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfbWx0cm5nMm1sdHJuZworICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVG QVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcy bWx0cm5nX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5n X2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFs aWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfbWx0cm5nMgorCQlPTiBERUxFVEUgU0VU IERFRkFVTFQgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRv dmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCAoZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE5LTAx LTAxJywgJzIwMjAtMDEtMDEnKSkpIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdbNiw3KSc7CitTRUxFQ1QgKiBGUk9N IHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sxMDAsMTAxKScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9tbHRybmcyIChpZDEsIGlkMiwgdmFsaWRfYXQpIFZB TFVFUyAoJ1s4LDkpJywgJ1s4LDkpJywgZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfbWx0cm5n MiAoaWQxLCBpZDIsIHZhbGlkX2F0KSBWQUxVRVMgKCdbOCw5KScsICdbOCw5KScsIGRhdGVt dWx0aXJhbmdlKGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJykpKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX21sdHJuZzIgKGlkMSwgaWQyLCB2YWxpZF9hdCkgVkFMVUVT ICgnWy0xLC0xXScsICdbOCw5KScsIGRhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZShudWxsLCBu dWxsKSkpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDEpJywg ZGF0ZW11bHRpcmFuZ2UoZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSks ICdbOCw5KScsICdbOCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfbWx0cm5nMiBXSEVS RSBpZDEgPSAnWzgsOSknIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9tbHRybmcybWx0cm5nIFdIRVJFIGlkID0gJ1sy MDAsMjAxKScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLSBGSyB3aXRoIGEgY3VzdG9t IHJhbmdlIHR5cGUKKworQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlw ZT1kYXRlKTsKKworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3JuZzMgKAorCWlkIGludDRyYW5n ZSwKKwl2YWxpZF9hdCBteWRhdGVyYW5nZSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX3JuZzNf cGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0NS RUFURSBUQUJMRSB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoCisJaWQgaW50NHJhbmdlLAorCXZh bGlkX2F0IG15ZGF0ZXJhbmdlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazNfcm5nMnJuZ19wayBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmszX3JuZzJybmdfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VT IHRlbXBvcmFsX3JuZzMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpIE9OIERFTEVURSBDQVNDQURF CispOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcm5nMyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMg KCdbOCw5KScsIG15ZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazNfcm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRf aWQpIFZBTFVFUyAoJ1s1LDYpJywgbXlkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0w MS0wMScpLCAnWzgsOSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3JuZzMgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJF IGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmszX3JuZzJybmcgV0hF UkUgaWQgPSAnWzUsNiknOworCitEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrM19ybmcycm5nOwor RFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOworRFJPUCBUWVBFIG15ZGF0ZXJhbmdlOwogCiAt LQogLS0gdGVzdCBGT1JFSUdOIEtFWSwgYm94IHJlZmVyZW5jZXMgYm94CkBAIC0xMjA1LDgg KzE5OTQsOCBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nICgKICAg bmFtZSB0ZXh0LAogCUNPTlNUUkFJTlQgdGVtcG9yYWxfcGFyaXRpb25lZF9ybmdfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQogKSBQQVJUSVRJT04g QlkgTElTVCAoaWQpOwotQ1JFQVRFIFRBQkxFIHRwMSBwYXJ0aXRpb24gT0YgdGVtcG9yYWxf cGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2 KScsICdbNyw4KScsICdbOSwxMCknLCAnWzExLDEyKScpOwotQ1JFQVRFIFRBQkxFIHRwMiBw YXJ0aXRpb24gT0YgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBWQUxVRVMgSU4gKCdb MiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwxMykn KTsKK0NSRUFURSBUQUJMRSB0cDEgUEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVk X3JuZyBGT1IgVkFMVUVTIElOICgnWzEsMiknLCAnWzMsNCknLCAnWzUsNiknLCAnWzcsOCkn LCAnWzksMTApJywgJ1sxMSwxMiknLCAnWzEzLDE0KScsICdbMTUsMTYpJywgJ1sxNywxOCkn LCAnWzE5LDIwKScsICdbMjEsMjIpJywgJ1syMywyNCknKTsKK0NSRUFURSBUQUJMRSB0cDIg UEFSVElUSU9OIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBGT1IgVkFMVUVTIElOICgn WzAsMSknLCAnWzIsMyknLCAnWzQsNSknLCAnWzYsNyknLCAnWzgsOSknLCAnWzEwLDExKScs ICdbMTIsMTMpJywgJ1sxNCwxNSknLCAnWzE2LDE3KScsICdbMTgsMTkpJywgJ1syMCwyMSkn LCAnWzIyLDIzKScsICdbMjQsMjUpJyk7CiBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgKGlkLCB2YWxpZF9hdCwgbmFtZSkgVkFMVUVTCiAgICgnWzEsMiknLCBkYXRl cmFuZ2UoJzIwMDAtMDEtMDEnLCAnMjAwMC0wMi0wMScpLCAnb25lJyksCiAgICgnWzEsMikn LCBkYXRlcmFuZ2UoJzIwMDAtMDItMDEnLCAnMjAwMC0wMy0wMScpLCAnb25lJyksCkBAIC0x MjIwLDggKzIwMDksOCBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyAoCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5n X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJF TkNFUyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCiAp IFBBUlRJVElPTiBCWSBMSVNUIChpZCk7Ci1DUkVBVEUgVEFCTEUgdGZrcDEgcGFydGl0aW9u IE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1sx LDIpJywgJ1szLDQpJywgJ1s1LDYpJywgJ1s3LDgpJywgJ1s5LDEwKScsICdbMTEsMTIpJyk7 Ci1DUkVBVEUgVEFCTEUgdGZrcDIgcGFydGl0aW9uIE9GIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmcgRk9SIFZBTFVFUyBJTiAoJ1syLDMpJywgJ1s0LDUpJywgJ1s2LDcpJywg J1s4LDkpJywgJ1sxMCwxMSknLCAnWzEyLDEzKScpOworQ1JFQVRFIFRBQkxFIHRma3AxIFBB UlRJVElPTiBPRiB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMg SU4gKCdbMSwyKScsICdbMyw0KScsICdbNSw2KScsICdbNyw4KScsICdbOSwxMCknLCAnWzEx LDEyKScsICdbMTMsMTQpJywgJ1sxNSwxNiknLCAnWzE3LDE4KScsICdbMTksMjApJywgJ1sy MSwyMiknLCAnWzIzLDI0KScpOworQ1JFQVRFIFRBQkxFIHRma3AyIFBBUlRJVElPTiBPRiB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIEZPUiBWQUxVRVMgSU4gKCdbMCwxKScs ICdbMiwzKScsICdbNCw1KScsICdbNiw3KScsICdbOCw5KScsICdbMTAsMTEpJywgJ1sxMiwx MyknLCAnWzE0LDE1KScsICdbMTYsMTcpJywgJ1sxOCwxOSknLCAnWzIwLDIxKScsICdbMjIs MjMpJywgJ1syNCwyNSknKTsKIAogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jaW5n IGluc2VydHMKQEAgLTEzMTQsNDggKzIxMDMsMTI1IEBAIERFTEVURSBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbNSw2KScgQU5EIHZhbGlkX2F0ID0gZGF0 ZXJhbmdlCiAtLSBwYXJ0aXRpb25lZCBGSyByZWZlcmVuY2VkIHVwZGF0ZXMgQ0FTQ0FERQog LS0KIAorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9wYXJ0 aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1s2LDcpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzQsNSkn LCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzYsNyknKTsKIEFM VEVSIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcKIAlEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19maywKIAlBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nX2ZrCiAJCUZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcKIAkJT04gREVMRVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7 CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsOCkn IFdIRVJFIGlkID0gJ1s2LDcpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9u ZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNCw1KSc7CitVUERBVEUgdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFNFVCBpZCA9ICdbNyw4KScgV0hFUkUgaWQgPSAnWzYsNyknOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0g J1s0LDUpJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZh bGlkX2F0KSBWQUxVRVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIw MjAtMDEtMDEnKSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzE1LDE2KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtf cm5nMnJuZyAoaWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMCwxMSknLCBk YXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE1LDE2KScpOworVVBE QVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzE2LDE3KScgV0hFUkUg aWQgPSAnWzE1LDE2KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9 ICdbMTAsMTEpJzsKIAogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRl cyBDQVNDQURFCiAtLQogCitUUlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRl bXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzgsOSknLCBkYXRlcmFu Z2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbNSw2KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdb OCw5KScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVS RSBpZCA9ICdbOCw5KSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2Zr X3JuZzJybmcgV0hFUkUgaWQgPSAnWzUsNiknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIFdIRVJFIGlkID0gJ1s4LDkpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNSw2KSc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzE3LDE4KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1sxNywxOCknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTEsMTIpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1sxNywxOCknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMTcsMTgpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMSwxMiknOworCiAtLQogLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBOVUxMCiAtLQogCitUUlVOQ0FURSB0ZW1w b3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmc7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkg VkFMVUVTICgnWzksMTApJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwg dmFsaWRfYXQsIHBhcmVudF9pZCkgVkFMVUVTICgnWzYsNyknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzksMTApJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9wYXJ0aXRpb25lZF9ma19ybmcycm5nCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmdfZmssCiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFy dGl0aW9uZWRfZmtfcm5nMnJuZ19mawogCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCiAJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAJ CU9OIERFTEVURSBTRVQgTlVMTCBPTiBVUERBVEUgU0VUIE5VTEw7CitVUERBVEUgdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzEwLDExKScgV0hFUkUgaWQgPSAn WzksMTApJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJu ZyBXSEVSRSBpZCA9ICdbNiw3KSc7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5n IFNFVCBpZCA9ICdbMTAsMTEpJyBXSEVSRSBpZCA9ICdbOSwxMCknOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1s2LDcpJzsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBW QUxVRVMgKCdbMTgsMTkpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEn KSk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzE4LDE5KScsIGRhdGVyYW5nZSgnMjAyMC0wMS0wMScsICcyMDIxLTAx LTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyAo aWQsIHZhbGlkX2F0LCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMiwxMyknLCBkYXRlcmFuZ2Uo JzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE4LDE5KScpOworVVBEQVRFIHRlbXBv cmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzE5LDIwKScgV0hFUkUgaWQgPSAnWzE4 LDE5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbMTIsMTMp JzsKIAogLS0KIC0tIHBhcnRpdGlvbmVkIEZLIHJlZmVyZW5jZWQgZGVsZXRlcyBTRVQgTlVM TAogLS0KIAorVFJVTkNBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nLCB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sxMSwxMiknLCBkYXRlcmFuZ2UoJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRp dGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdb Nyw4KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyksICdbMTEsMTIp Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlk ID0gJ1sxMSwxMiknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19y bmcycm5nIFdIRVJFIGlkID0gJ1s3LDgpJzsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRp dGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMTEsMTIpJzsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbNyw4KSc7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgn WzIwLDIxKScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVF UyAoJ1syMCwyMSknLCBkYXRlcmFuZ2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxp ZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTMsMTQpJywgZGF0ZXJhbmdlKCcyMDE4LTAx LTAxJywgJzIwMjEtMDEtMDEnKSwgJ1syMCwyMSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BhcnRpdGlvbmVkX3JuZyBXSEVSRSBpZCA9ICdbMjAsMjEpJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25l ZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxMywxNCknOworCiAtLQogLS0gcGFydGl0aW9u ZWQgRksgcmVmZXJlbmNlZCB1cGRhdGVzIFNFVCBERUZBVUxUCiAtLQogCitUUlVOQ0FURSB0 ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJy bmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlkLCB2YWxpZF9h dCkgVkFMVUVTICgnWzAsMSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1sx MiwxMyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbOCw5KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyksICdbMTIsMTMpJyk7CiBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ma19ybmcycm5nCi0gIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQg J1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkIFNFVCBERUZBVUxUICdbMCwx KScsCiAJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmdf ZmssCiAJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZ19m awogCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCiAJCVJFRkVS RU5DRVMgdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nCiAJCU9OIERFTEVURSBTRVQgREVGQVVM VCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9uZWRf cm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIw LTAxLTAxJyBTRVQgaWQgPSAnWzEzLDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAn WzgsOSknOworVVBEQVRFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBTRVQgaWQgPSAnWzEz LDE0KScgV0hFUkUgaWQgPSAnWzEyLDEzKSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bh cnRpdGlvbmVkX2ZrX3JuZzJybmcgV0hFUkUgaWQgPSAnWzgsOSknOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syMiwy MyknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyAoaWQsIHZhbGlkX2F0KSBWQUxVRVMgKCdb MjIsMjMpJywgZGF0ZXJhbmdlKCcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKSk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIChpZCwgdmFsaWRfYXQs IHBhcmVudF9pZCkgVkFMVUVTICgnWzE0LDE1KScsIGRhdGVyYW5nZSgnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyksICdbMjIsMjMpJyk7CitVUERBVEUgdGVtcG9yYWxfcGFydGl0aW9u ZWRfcm5nIFNFVCBpZCA9ICdbMjMsMjQpJyBXSEVSRSBpZCA9ICdbMjIsMjMpJyBBTkQgdmFs aWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9w YXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlkID0gJ1sxNCwxNSknOwogCiAtLQogLS0g cGFydGl0aW9uZWQgRksgcmVmZXJlbmNlZCBkZWxldGVzIFNFVCBERUZBVUxUCiAtLQogCitU UlVOQ0FURSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcsIHRlbXBvcmFsX3BhcnRpdGlvbmVk X2ZrX3JuZzJybmc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ybmcgKGlk LCB2YWxpZF9hdCkgVkFMVUVTICgnWzAsMSknLCBkYXRlcmFuZ2UobnVsbCwgbnVsbCkpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZB TFVFUyAoJ1sxNCwxNSknLCBkYXRlcmFuZ2UoJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScp KTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2 YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbOSwxMCknLCBkYXRlcmFuZ2UoJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpLCAnWzE0LDE1KScpOworREVMRVRFIEZST00gdGVtcG9y YWxfcGFydGl0aW9uZWRfcm5nIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTkt MDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZCA9ICdbMTQsMTUpJzsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfZmtfcm5nMnJuZyBXSEVSRSBpZCA9ICdbOSwx MCknOworREVMRVRFIEZST00gdGVtcG9yYWxfcGFydGl0aW9uZWRfcm5nIFdIRVJFIGlkID0g J1sxNCwxNSknOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcy cm5nIFdIRVJFIGlkID0gJ1s5LDEwKSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wYXJ0aXRp b25lZF9ybmcgKGlkLCB2YWxpZF9hdCkgVkFMVUVTICgnWzI0LDI1KScsIGRhdGVyYW5nZSgn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJykpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGFy dGl0aW9uZWRfcm5nIChpZCwgdmFsaWRfYXQpIFZBTFVFUyAoJ1syNCwyNSknLCBkYXRlcmFu Z2UoJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BhcnRpdGlvbmVkX2ZrX3JuZzJybmcgKGlkLCB2YWxpZF9hdCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTUsMTYpJywgZGF0ZXJhbmdlKCcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKSwg J1syNCwyNSknKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZyBXSEVS RSBpZCA9ICdbMjQsMjUpJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOwor U0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wYXJ0aXRpb25lZF9ma19ybmcycm5nIFdIRVJFIGlk ID0gJ1sxNSwxNiknOworCiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX2ZrX3Ju ZzJybmc7CiBEUk9QIFRBQkxFIHRlbXBvcmFsX3BhcnRpdGlvbmVkX3JuZzsKIAotLSAKMi40 Mi4wCgo= --------------rOiwMPZjbSgQ0WsI4nnNtOso Content-Type: text/x-patch; charset=UTF-8; name="v31-0006-Add-PERIODs.patch" Content-Disposition: attachment; filename="v31-0006-Add-PERIODs.patch" Content-Transfer-Encoding: base64 RnJvbSA4ZTNhZTc2Y2UyM2QyZDc1ZWVkMTdkNTAwOGUyZDJkNjQ5YzkzM2ZlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiUGF1bCBBLiBKdW5nd2lydGgiIDxwakBpbGx1bWlu YXRlZGNvbXB1dGluZy5jb20+CkRhdGU6IFNhdCwgOSBKYW4gMjAyMSAyMTo1OTo0MyAtMDgw MApTdWJqZWN0OiBbUEFUQ0ggdjMxIDYvNl0gQWRkIFBFUklPRHMKCi0gQWRkZWQgcGFyc2lu ZyBmb3IgU1FMOjIwMTEgc3ludGF4IHRvIGRlZmluZSBhbiBhcHBsaWNhdGlvbi10aW1lIFBF UklPRCBvbiBhCiAgdGFibGUgKGluIGJvdGggQ1JFQVRFIFRBQkxFIGFuZCBBTFRFUiBUQUJM RSkuIE1ha2Ugc3VyZSB3ZSBjcmVhdGUgdGhlIFBFUklPRAogIGFmdGVyIGNvbHVtbnMgYXJl IGtub3duIChzaW5jZSBQRVJJT0RzIGNhbiByZWZlciB0byB0aGVtKSBidXQgYmVmb3JlCiAg Y29uc3RyYWludHMgYXJlIGhhbmRsZWQgKHNpbmNlIFBFUklPRHMgY2FuIGFwcGVhciBpbiB0 aGVtKS4KLSBBZGRlZCBBTFRFUiBUQUJMRSBEUk9QIHN1cHBvcnQgZm9yIFBFUklPRHMuCi0g Q3JlYXRlZCBwb3N0Z3Jlcy5wZ19wZXJpb2QgdGFibGUuCi0gQ3JlYXRlZCBpbmZvcm1hdGlv bl9zY2hlbWEucGVyaW9kcyB2aWV3LgotIEFkZGVkIHBnX2R1bXAgc3VwcG9ydC4KLSBBZGRl ZCB0ZXN0cyBhbmQgZG9jdW1lbnRhdGlvbi4KLSBBdXRvbWF0aWNhbGx5IGRlZmluZSBhIGNv bnN0cmFpbnQgZm9yIGVhY2ggUEVSSU9EIHJlcXVpcmluZyB0aGUgc3RhcnQgY29sdW1uCiAg dG8gYmUgbGVzcyB0aGFuIHRoZSBlbmQgY29sdW1uLgotIFdoZW4gY3JlYXRpbmcgYSBQRVJJ T0QsIGNob29zZSBhbiBhcHByb3ByaWF0ZSByYW5nZSB0eXBlIHdlIGNhbiB1c2UgdG8KICBp bXBsZW1lbnQgUEVSSU9ELXJlbGF0ZWQgb3BlcmF0aW9ucy4gWW91IGNhbiBjaG9vc2Ugb25l IGV4cGxpY2l0bHkgaWYgdGhlcmUKICBpcyBhbWJpZ3VpdHkgKGR1ZSB0byBtdWx0aXBsZSBy YW5nZSB0eXBlcyBjcmVhdGVkIG92ZXIgdGhlIHNhbWUgYmFzZSB0eXBlKS4KLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTEyICsrCiBk b2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDU4ICsK IGRvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbCAgICAgICAgICB8ICAgNjMg KwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl90YWJsZS5zZ21sICAgICAgICAgICAgIHwgICAy NSArCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAgfCAg ICAyICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgICAgICAgICAgICB8 ICAgNTkgKy0KIGRvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwgICAgICAgICAgICAgICAg ICB8ICAgIDMgKy0KIGRvYy9zcmMvc2dtbC9yZWYvdXBkYXRlLnNnbWwgICAgICAgICAgICAg ICAgICB8ICAgIDMgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAg ICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyAgICAgICAg ICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAg ICAgICAgICAgICAgfCAgIDE3ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAg ICAgICAgICAgICAgICB8ICAgNzUgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlv bl9zY2hlbWEuc3FsICAgIHwgICAyMyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5i dWlsZCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL29iamVj dGFkZHJlc3MuYyAgICAgICAgICAgfCAgIDczICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdf cGVyaW9kLmMgICAgICAgICAgICAgICB8ICAxMzIgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cv c3FsX2ZlYXR1cmVzLnR4dCAgICAgICAgICB8ICAgIDIgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL2FsdGVyLmMgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvY29tbWVudC5jICAgICAgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kcm9wY21kcy5jICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8ICAgIDQgKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2VjbGFiZWwuYyAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICAgICAgfCAgODYzICsrKysrKysr Ky0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYyAgICAgICAgICAgICAgICAgICB8ICAg IDQgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jICAgICAgICB8 ICAgNDIgKy0KIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAg ICB8ICAgIDMgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyAgICAgICAgICAgICAg ICAgIHwgICA5OSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAg ICAgICAgIHwgICA0NSArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMg ICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5j ICAgICAgICAgICAgfCAgMTQ3ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvTWFrZWZpbGUg ICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZXJpb2Qu YyAgICAgICAgICAgICAgICB8ICAgNTYgKwogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5 c2NhY2hlLmMgICAgICAgICAgIHwgICA4NyArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw X2FyY2hpdmVyLmMgICAgICAgICAgfCAgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMgICAgICAgICAgICAgICAgICAgICB8ICAxNzUgKy0KIHNyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKwogc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmluL3BzcWwvZGVz Y3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDM2ICsKIHNyYy9pbmNsdWRlL2Nh dGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9kZXBlbmRlbmN5LmggICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL2hlYXAuaCAgICAgICAgICAgICAgICAgICAgfCAgICA0ICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oICAgICAgICAgICAgICAgIHwgICAgMSAtCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3BlcmlvZC5oICAgICAgICAgICAgICAgfCAgIDU4ICsKIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcmFuZ2UuaCAgICAgICAgICAgICAgICB8ICAgIDIgKwog c3JjL2luY2x1ZGUvY29tbWFuZHMvdGFibGVjbWRzLmggICAgICAgICAgICAgIHwgICAgNCAr LQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICA0 MCArLQogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg ICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAg fCAgICAyICstCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRpbGNtZC5oICAgICAgICAg ICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oICAgICAgICAgICAg ICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMvcGVyaW9kLmggICAgICAgICAgICAg ICAgICAgIHwgICAyMSArCiAuLi4vdGVzdF9kZGxfZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNl LmMgICAgICAgfCAgICA2ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yX3BvcnRp b25fb2Yub3V0ICB8ICAgMzggKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0 ZWQub3V0ICAgICAgIHwgICAgNCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZXJp b2RzLm91dCAgICAgICAgIHwgIDI2NyArKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3dpdGhv dXRfb3ZlcmxhcHMub3V0ICAgICB8IDE0NTIgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgICAgICAgICAgICB8ICAgIDIgKy0KIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbCAgICAgICB8ICAgMzIgKwogc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcGVyaW9kcy5zcWwgICAgICAgICAgICAgIHwgIDE3OCArKwog c3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9vdmVybGFwcy5zcWwgICAgIHwgIDk0OCAr KysrKysrKysrKwogNjEgZmlsZXMgY2hhbmdlZCwgNTI3MSBpbnNlcnRpb25zKCspLCA1NiBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3BlcmlvZC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bl cmlvZC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wZXJp b2QuaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL3V0aWxzL3BlcmlvZC5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZXJpb2RzLm91 dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BlcmlvZHMuc3Fs CgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAppbmRleCAzYzc1NDNiMjJhMS4uZjc2YzM4NDdhMTUgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCkBAIC0yMzAsNiArMjMwLDExIEBACiAgICAgICA8ZW50cnk+aW5mb3Jt YXRpb24gYWJvdXQgcGFydGl0aW9uIGtleSBvZiB0YWJsZXM8L2VudHJ5PgogICAgICA8L3Jv dz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ct cGctcGVyaW9kIj48c3RydWN0bmFtZT5wZ19wZXJpb2Q8L3N0cnVjdG5hbWU+PC9saW5rPjwv ZW50cnk+CisgICAgICA8ZW50cnk+cGVyaW9kczwvZW50cnk+CisgICAgIDwvcm93PgorCiAg ICAgIDxyb3c+CiAgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1wb2xp Y3kiPjxzdHJ1Y3RuYW1lPnBnX3BvbGljeTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4K ICAgICAgIDxlbnRyeT5yb3ctc2VjdXJpdHkgcG9saWNpZXM8L2VudHJ5PgpAQCAtNTc0MSw2 ICs1NzQ2LDExMyBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9u IGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgIGFyZSBz aW1wbGUgcmVmZXJlbmNlcy4KICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4K KworICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90YWJsZT4KKyA8L3NlY3QxPgor CisKKyA8c2VjdDEgaWQ9ImNhdGFsb2ctcGctcGVyaW9kIj4KKyAgPHRpdGxlPjxzdHJ1Y3Ru YW1lPnBnX3BlcmlvZDwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9u ZT0iY2F0YWxvZy1wZy1wZXJpb2QiPgorICAgPHByaW1hcnk+cGdfcGVyaW9kPC9wcmltYXJ5 PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9nIDxzdHJ1Y3Ru YW1lPnBnX3BlcmlvZDwvc3RydWN0bmFtZT4gc3RvcmVzCisgICBpbmZvcm1hdGlvbiBhYm91 dCBzeXN0ZW0gYW5kIGFwcGxpY2F0aW9uIHRpbWUgcGVyaW9kcy4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgUGVyaW9kcyBhcmUgZGVzY3JpYmVkIGluIDx4cmVmIGxpbmtlbmQ9ImRk bC1wZXJpb2RzIi8+LgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxzdHJ1 Y3RuYW1lPnBnX3BlcmlvZDwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisKKyAgIDx0 Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jv dz4KKyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ b2lkPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlk ZW50aWZpZXIKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGVybmFtZTwv c3RydWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBQZXJpb2QgbmFtZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAg IDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1 Y3RmaWVsZD5wZXJyZWxpZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAg ICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNsYXNzIj48c3RydWN0 bmFtZT5wZ19jbGFzczwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0 cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSB0 YWJsZSB0aGlzIHBlcmlvZCBiZWxvbmdzIHRvCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPnBlcnN0YXJ0PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MjwvdHlwZT4KKyAg ICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF0dHJpYnV0ZSI+ PHN0cnVjdG5hbWU+cGdfYXR0cmlidXRlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZp ZWxkPmF0dG51bTwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgVGhlIG51bWJlciBvZiB0aGUgc3RhcnQgY29sdW1uCisgICAgICA8L3BhcmE+ PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnBlcmVuZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDI8 L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1h dHRyaWJ1dGUiPjxzdHJ1Y3RuYW1lPnBnX2F0dHJpYnV0ZTwvc3RydWN0bmFtZT48L2xpbms+ LjxzdHJ1Y3RmaWVsZD5hdHRudW08L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFRoZSBudW1iZXIgb2YgdGhlIGVuZCBjb2x1bW4KKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+cGVycmFuZ2U8L3N0cnVjdGZpZWxkPiA8 dHlwZT5pbnQyPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNh dGFsb2ctcGctYXR0cmlidXRlIj48c3RydWN0bmFtZT5wZ19hdHRyaWJ1dGU8L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+YXR0bnVtPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgbnVtYmVyIG9mIHRoZSA8bGl0ZXJh bD5HRU5FUkFURUQ8L2xpdGVyYWw+IGNvbHVtbiB0aGF0IGltcGxlbWVudHMgdGhlIDxsaXRl cmFsPlBFUklPRDwvbGl0ZXJhbD4uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9y b3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnBlcmNvbnN0cmFpbnQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAg ICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1jb25zdHJhaW50Ij48 c3RydWN0bmFtZT5wZ19jb25zdHJhaW50PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZp ZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+Cisg ICAgICAgVGhlIE9JRCBvZiB0aGUgcGVyaW9kJ3MgPGxpdGVyYWw+Q0hFQ0s8L2xpdGVyYWw+ IGNvbnN0cmFpbnQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAg IDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCA4NjE2YThl OWNjOS4uNjI2OWZiNzliNGIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTEzNzUsNiArMTM3NSw2NCBAQCBDUkVB VEUgVEFCTEUgY2lyY2xlcyAoCiAgIDwvc2VjdDI+CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBp ZD0iZGRsLXBlcmlvZHMiPgorICA8dGl0bGU+UGVyaW9kczwvdGl0bGU+CisKKyAgPHBhcmE+ CisgICBQZXJpb2RzIGFyZSBkZWZpbml0aW9ucyBvbiBhIHRhYmxlIHRoYXQgYXNzb2NpYXRl IGEgcGVyaW9kIG5hbWUgd2l0aCBhIHN0YXJ0CisgICBjb2x1bW4gYW5kIGFuIGVuZCBjb2x1 bW4uICBCb3RoIGNvbHVtbnMgbXVzdCBiZSBvZiBleGFjdGx5IHRoZSBzYW1lIHR5cGUKKyAg IChpbmNsdWRpbmcgY29sbGF0aW9uKSwgaGF2ZSBhIGJ0cmVlIG9wZXJhdG9yIGNsYXNzLCBh bmQgdGhlIHN0YXJ0IGNvbHVtbgorICAgdmFsdWUgbXVzdCBiZSBzdHJpY3RseSBsZXNzIHRo YW4gdGhlIGVuZCBjb2x1bW4gdmFsdWUuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRo ZXJlIGFyZSB0d28gdHlwZXMgb2YgcGVyaW9kczogYXBwbGljYXRpb24gYW5kIHN5c3RlbS4g IFN5c3RlbSBwZXJpb2RzIGFyZQorICAgZGlzdGluZ3Vpc2hlZCBieSB0aGVpciBuYW1lIHdo aWNoIG11c3QgYmUgPGxpdGVyYWw+U1lTVEVNX1RJTUU8L2xpdGVyYWw+LiAgQW55CisgICBv dGhlciBuYW1lIGlzIGFuIGFwcGxpY2F0aW9uIHBlcmlvZC4KKyAgPC9wYXJhPgorCisgIDxz ZWN0MiBpZD0iZGRsLXBlcmlvZHMtYXBwbGljYXRpb24tcGVyaW9kcyI+CisgIDx0aXRsZT5B cHBsaWNhdGlvbiBQZXJpb2RzPC90aXRsZT4KKworICAgPGluZGV4dGVybT4KKyAgICA8cHJp bWFyeT5wZXJpb2Q8L3ByaW1hcnk+CisgICAgPHNlY29uZGFyeT5hcHBsaWNhdGlvbjwvc2Vj b25kYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxwYXJhPgorICAgIEFwcGxpY2F0aW9u IHBlcmlvZHMgYXJlIGRlZmluZWQgb24gYSB0YWJsZSB1c2luZyB0aGUgZm9sbG93aW5nIHN5 bnRheDoKKyAgIDwvcGFyYT4KKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRBQkxFIGJp bGxpbmdfYWRkcmVzc2VzICgKKyAgY3VzdG9tZXJfaWQgaW50ZWdlciwKKyAgYWRkcmVzc19p ZCBpbnRlZ2VyLAorICB2YWxpZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RvIGRhdGUsCisgIDxl bXBoYXNpcz5QRVJJT0QgRk9SIHZhbGlkaXR5ICh2YWxpZF9mcm9tLCB2YWxpZF90byk8L2Vt cGhhc2lzPgorKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisKKyAgIDxwYXJhPgorICAgIEFwcGxp Y2F0aW9uIHBlcmlvZHMgY2FuIGJlIHVzZWQgdG8gZGVmaW5lIHRlbXBvcmFsIHByaW1hcnkg YW5kIGZvcmVpZ24ga2V5cy4KKyAgICBBbnkgdGFibGUgd2l0aCBhIHRlbXBvcmFsIHByaW1h cnkga2V5IGlzIGEgdGVtcG9yYWwgdGFibGUgYW5kIHN1cHBvcnRzIHRlbXBvcmFsIHVwZGF0 ZSBhbmQgZGVsZXRlIGNvbW1hbmRzLgorICAgPC9wYXJhPgorICA8L3NlY3QyPgorCisgIDxz ZWN0MiBpZD0iZGRsLXBlcmlvZHMtc3lzdGVtLXBlcmlvZHMiPgorICAgPHRpdGxlPlN5c3Rl bSBQZXJpb2RzPC90aXRsZT4KKworICAgPGluZGV4dGVybT4KKyAgICA8cHJpbWFyeT5wZXJp b2Q8L3ByaW1hcnk+CisgICAgPHNlY29uZGFyeT5zeXN0ZW08L3NlY29uZGFyeT4KKyAgIDwv aW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBQZXJpb2RzIGZvciA8bGl0ZXJhbD5TWVNU RU1fVElNRTwvbGl0ZXJhbD4gYXJlIGN1cnJlbnRseSBub3QgaW1wbGVtZW50ZWQuCisgICA8 L3BhcmE+CisgIDwvc2VjdDI+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLXN5c3Rl bS1jb2x1bW5zIj4KICAgPHRpdGxlPlN5c3RlbSBDb2x1bW5zPC90aXRsZT4KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sIGIvZG9jL3NyYy9z Z21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21sCmluZGV4IDllNjZiZTRlODNkLi41NThjYzdi M2YxNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3NjaGVtYS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbApAQCAtNDE3MSw2 ICs0MTcxLDY5IEBAIE9SREVSIEJZIGMub3JkaW5hbF9wb3NpdGlvbjsKICAgPC90YWJsZT4K ICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJpbmZvc2NoZW1hLXBlcmlvZHMiPgorICA8dGl0 bGU+PGxpdGVyYWw+cGVyaW9kczwvbGl0ZXJhbD48L3RpdGxlPgorCisgIDxwYXJhPgorICAg VGhlIHZpZXcgPGxpdGVyYWw+cGFyYW1ldGVyczwvbGl0ZXJhbD4gY29udGFpbnMgaW5mb3Jt YXRpb24gYWJvdXQgdGhlCisgICBwZXJpb2RzIG9mIGFsbCB0YWJsZXMgaW4gdGhlIGN1cnJl bnQgZGF0YWJhc2UuICBUaGUgc3RhcnQgYW5kIGVuZCBjb2x1bW4KKyAgIG5hbWVzIGFyZSBv bmx5IHNob3duIGlmIHRoZSBjdXJyZW50IHVzZXIgaGFzIGFjY2VzcyB0byB0aGVtIChieSB3 YXkgb2YgYmVpbmcKKyAgIHRoZSBvd25lciBvciBoYXZpbmcgc29tZSBwcml2aWxlZ2UpLgor ICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAgPHRpdGxlPjxsaXRlcmFsPnBlcmlvZHM8L2xp dGVyYWw+IENvbHVtbnM8L3RpdGxlPgorCisgICA8dGdyb3VwIGNvbHM9IjMiPgorICAgIDx0 aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT5OYW1lPC9lbnRyeT4KKyAgICAgIDxl bnRyeT5EYXRhIFR5cGU8L2VudHJ5PgorICAgICAgPGVudHJ5PkRlc2NyaXB0aW9uPC9lbnRy eT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD50YWJsZV9jYXRhbG9nPC9saXRlcmFsPjwvZW50 cnk+CisgICAgICA8ZW50cnk+PHR5cGU+c3FsX2lkZW50aWZpZXI8L3R5cGU+PC9lbnRyeT4K KyAgICAgIDxlbnRyeT5OYW1lIG9mIHRoZSBkYXRhYmFzZSBjb250YWluaW5nIHRoZSBwZXJp b2QgKGFsd2F5cyB0aGUgY3VycmVudCBkYXRhYmFzZSk8L2VudHJ5PgorICAgICA8L3Jvdz4K KworICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnRhYmxlX3NjaGVtYTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBl PjwvZW50cnk+CisgICAgICA8ZW50cnk+TmFtZSBvZiB0aGUgc2NoZW1hIGNvbnRhaW5pbmcg dGhlIHBlcmlvZDwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnk+PGxpdGVyYWw+dGFibGVfbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVu dHJ5Pjx0eXBlPnNxbF9pZGVudGlmaWVyPC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+ TmFtZSBvZiB0aGUgdGFibGUgY29udGFpbmluZyB0aGUgcGVyaW9kPC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5wZXJpb2RfbmFt ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBlPnNxbF9pZGVudGlmaWVy PC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+TmFtZSBvZiB0aGUgcGVyaW9kPC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5z dGFydF9jb2x1bW5fbmFtZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0eXBl PnNxbF9pZGVudGlmaWVyPC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+TmFtZSBvZiB0 aGUgc3RhcnQgY29sdW1uIGZvciB0aGUgcGVyaW9kPC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5lbmRfY29sdW1uX25hbWU8L2xp dGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48dHlwZT5zcWxfaWRlbnRpZmllcjwvdHlw ZT48L2VudHJ5PgorICAgICAgPGVudHJ5Pk5hbWUgb2YgdGhlIGVuZCBjb2x1bW4gZm9yIHRo ZSBwZXJpb2Q8L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICA8L3Rib2R5PgorICAgPC90Z3Jv dXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iaW5mb3NjaGVtYS1y ZWZlcmVudGlhbC1jb25zdHJhaW50cyI+CiAgIDx0aXRsZT48bGl0ZXJhbD5yZWZlcmVudGlh bF9jb25zdHJhaW50czwvbGl0ZXJhbD48L3RpdGxlPgogCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Rh YmxlLnNnbWwKaW5kZXggOTZlM2Q3NzYwNTEuLmFjZDExOTIyYTRjIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3RhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl90YWJsZS5zZ21sCkBAIC02MSw2ICs2MSw4IEBAIEFMVEVSIFRBQkxFIFsgSUYg RVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPgogICAgIEFMVEVSIENPTlNUUkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbnN0cmFpbnRfbmFtZTwvcmVwbGFjZWFibGU+IFsgREVGRVJSQUJMRSB8IE5PVCBE RUZFUlJBQkxFIF0gWyBJTklUSUFMTFkgREVGRVJSRUQgfCBJTklUSUFMTFkgSU1NRURJQVRF IF0KICAgICBWQUxJREFURSBDT05TVFJBSU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb25zdHJhaW50X25hbWU8L3JlcGxhY2VhYmxlPgogICAgIERST1AgQ09OU1RSQUlO VCBbIElGIEVYSVNUUyBdICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29uc3Ry YWludF9uYW1lPC9yZXBsYWNlYWJsZT4gWyBSRVNUUklDVCB8IENBU0NBREUgXQorICAgIEFE RCBQRVJJT0QgRk9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFt ZTwvcmVwbGFjZWFibGU+ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN0YXJ0 X2NvbHVtbjwvcmVwbGFjZWFibGU+LCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZW5kX2NvbHVtbjwvcmVwbGFjZWFibGU+ICkgWyBXSVRIICggPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnBlcmlvZF9vcHRpb248L3JlcGxhY2VhYmxlPiA9IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXQor ICAgIERST1AgUEVSSU9EIEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVy aW9kX25hbWU8L3JlcGxhY2VhYmxlPiBbIFJFU1RSSUNUIHwgQ0FTQ0FERSBdCiAgICAgRElT QUJMRSBUUklHR0VSIFsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJf bmFtZTwvcmVwbGFjZWFibGU+IHwgQUxMIHwgVVNFUiBdCiAgICAgRU5BQkxFIFRSSUdHRVIg WyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNl YWJsZT4gfCBBTEwgfCBVU0VSIF0KICAgICBFTkFCTEUgUkVQTElDQSBUUklHR0VSIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50cmlnZ2VyX25hbWU8L3JlcGxhY2VhYmxlPgpA QCAtNTg1LDYgKzU4NywyOSBAQCBXSVRIICggTU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFsPC9yZXBsYWNlYWJsZT4sIFJFTQogICAgIDwv bGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0i c3FsLWFsdGVydGFibGUtZGVzYy1hZGQtcGVyaW9kIj4KKyAgICA8dGVybT48bGl0ZXJhbD5B REQgUEVSSU9EIEZPUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8 cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBhZGRzIGEgbmV3IHBlcmlvZCB0byBhIHRhYmxlIHVz aW5nIHRoZSBzYW1lIHN5bnRheCBhcworICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0 ZXRhYmxlIi8+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtYWx0ZXJ0YWJsZS1kZXNjLWRy b3AtcGVyaW9kIj4KKyAgICA8dGVybT48bGl0ZXJhbD5EUk9QIFBFUklPRCBGT1I8L2xpdGVy YWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZv cm0gZHJvcHMgdGhlIHNwZWNpZmllZCBwZXJpb2Qgb24gYSB0YWJsZS4gIFRoZSBzdGFydCBh bmQgZW5kCisgICAgICBjb2x1bW5zIHdpbGwgbm90IGJlIGRyb3BwZWQgYnkgdGhpcyBjb21t YW5kIGJ1dCB0aGUKKyAgICAgIDxsaXRlcmFsPkNIRUNLPC9saXRlcmFsPiBjb25zdHJhaW50 IHdpbGwgYmUuICBZb3Ugd2lsbCBuZWVkIHRvIHNheQorICAgICAgPGxpdGVyYWw+Q0FTQ0FE RTwvbGl0ZXJhbD4gaWYgYW55dGhpbmcgb3V0c2lkZSB0aGUgdGFibGUgZGVwZW5kcyBvbiB0 aGUKKyAgICAgIGNvbHVtbi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWFsdGVydGFibGUt ZGVzYy1kaXNhYmxlLWVuYWJsZS10cmlnZ2VyIj4KICAgICA8dGVybT48bGl0ZXJhbD5ESVNB QkxFPC9saXRlcmFsPi88bGl0ZXJhbD5FTkFCTEUgWyBSRVBMSUNBIHwgQUxXQVlTIF0gVFJJ R0dFUjwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQu c2dtbAppbmRleCA1YjQzYzU2YjEzMy4uNDljMmRmOTk0NDkgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVu dC5zZ21sCkBAIC00NCw2ICs0NCw3IEBAIENPTU1FTlQgT04KICAgT1BFUkFUT1IgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9wZXJhdG9yX25hbWU8L3JlcGxhY2VhYmxlPiAo PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmxlZnRfdHlwZTwvcmVwbGFjZWFibGU+ LCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmlnaHRfdHlwZTwvcmVwbGFjZWFi bGU+KSB8CiAgIE9QRVJBVE9SIENMQVNTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IFVTSU5HIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5pbmRleF9tZXRob2Q8L3JlcGxhY2VhYmxlPiB8CiAgIE9QRVJBVE9SIEZB TUlMWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxh Y2VhYmxlPiBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+aW5kZXhfbWV0 aG9kPC9yZXBsYWNlYWJsZT4gfAorICBQRVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnJlbGF0aW9uX25hbWU8L3JlcGxhY2VhYmxlPi48cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFBPTElDWSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cG9saWN5X25hbWU8L3JlcGxhY2VhYmxlPiBP TiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IHwKICAgWyBQUk9DRURVUkFMIF0gTEFOR1VBR0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBQUk9DRURVUkUgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnByb2NlZHVyZV9uYW1lPC9yZXBsYWNlYWJs ZT4gWyAoIFsgWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJnbW9kZTwvcmVw bGFjZWFibGU+IF0gWyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+YXJnbmFtZTwv cmVwbGFjZWFibGU+IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmFyZ3R5cGU8 L3JlcGxhY2VhYmxlPiBbLCAuLi5dIF0gKSBdIHwKQEAgLTM0MSw2ICszNDIsNyBAQCBDT01N RU5UIE9OIE9QRVJBVE9SIF4gKHRleHQsIHRleHQpIElTICdQZXJmb3JtcyBpbnRlcnNlY3Rp b24gb2YgdHdvIHRleHRzJzsKIENPTU1FTlQgT04gT1BFUkFUT1IgLSAoTk9ORSwgaW50ZWdl cikgSVMgJ1VuYXJ5IG1pbnVzJzsKIENPTU1FTlQgT04gT1BFUkFUT1IgQ0xBU1MgaW50NG9w cyBVU0lORyBidHJlZSBJUyAnNCBieXRlIGludGVnZXIgb3BlcmF0b3JzIGZvciBidHJlZXMn OwogQ09NTUVOVCBPTiBPUEVSQVRPUiBGQU1JTFkgaW50ZWdlcl9vcHMgVVNJTkcgYnRyZWUg SVMgJ2FsbCBpbnRlZ2VyIG9wZXJhdG9ycyBmb3IgYnRyZWVzJzsKK0NPTU1FTlQgT04gUEVS SU9EIG15X3RhYmxlLm15X2NvbHVtbiBJUyAnU2FsZXMgcHJvbW90aW9uIHZhbGlkaXR5JzsK IENPTU1FTlQgT04gUE9MSUNZIG15X3BvbGljeSBPTiBteXRhYmxlIElTICdGaWx0ZXIgcm93 cyBieSB1c2Vycyc7CiBDT01NRU5UIE9OIFBST0NFRFVSRSBteV9wcm9jIChpbnRlZ2VyLCBp bnRlZ2VyKSBJUyAnUnVucyBhIHJlcG9ydCc7CiBDT01NRU5UIE9OIFBVQkxJQ0FUSU9OIGFs bHRhYmxlcyBJUyAnUHVibGlzaGVzIGFsbCBvcGVyYXRpb25zIG9uIGFsbCB0YWJsZXMnOwpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKaW5kZXggMzIzYTRhNzEyYjAuLmUwNWUz OTkxYzMxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwKQEAgLTIzLDYgKzIz LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiA8c3lub3BzaXM+CiBDUkVBVEUgWyBb IEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRB QkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gKCBbCiAgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgU1RPUkFHRSB7IFBMQUlO IHwgRVhURVJOQUwgfCBFWFRFTkRFRCB8IE1BSU4gfCBERUZBVUxUIH0gXSBbIENPTVBSRVNT SU9OIDxyZXBsYWNlYWJsZT5jb21wcmVzc2lvbl9tZXRob2Q8L3JlcGxhY2VhYmxlPiBdIFsg Q09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFi bGU+IFsgLi4uIF0gXQorICAgIHwgPHJlcGxhY2VhYmxlPnBlcmlvZF9kZWZpbml0aW9uPC9y ZXBsYWNlYWJsZT4KICAgICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBs YWNlYWJsZT4KICAgICB8IExJS0UgPHJlcGxhY2VhYmxlPnNvdXJjZV90YWJsZTwvcmVwbGFj ZWFibGU+IFsgPHJlcGxhY2VhYmxlPmxpa2Vfb3B0aW9uPC9yZXBsYWNlYWJsZT4gLi4uIF0g fQogICAgIFssIC4uLiBdCkBAIC0zNyw2ICszOCw3IEBAIENSRUFURSBbIFsgR0xPQkFMIHwg TE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVOTE9HR0VEIF0gVEFCTEUgWyBJRiBO T1QgRVhJCiBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JBUlkgfCBURU1Q IH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4KICAgICBPRiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAo CiAgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBs YWNlYWJsZT4gWyBXSVRIIE9QVElPTlMgXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsgLi4uIF0gXQorICAgIHwg PHJlcGxhY2VhYmxlPnBlcmlvZF9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4KICAgICB8IDxy ZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gfQogICAgIFssIC4u LiBdCiApIF0KQEAgLTQ5LDYgKzUxLDcgQEAgQ1JFQVRFIFsgWyBHTE9CQUwgfCBMT0NBTCBd IHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJMRSBbIElGIE5PVCBFWEkK IENSRUFURSBbIFsgR0xPQkFMIHwgTE9DQUwgXSB7IFRFTVBPUkFSWSB8IFRFTVAgfSB8IFVO TE9HR0VEIF0gVEFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPgogICAgIFBBUlRJVElPTiBPRiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGFyZW50X3RhYmxlPC9yZXBsYWNlYWJs ZT4gWyAoCiAgIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gWyBXSVRIIE9QVElPTlMgXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2x1bW5fY29uc3RyYWludDwvcmVwbGFjZWFibGU+IFsgLi4uIF0gXQor ICAgIHwgPHJlcGxhY2VhYmxlPnBlcmlvZF9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4KICAg ICB8IDxyZXBsYWNlYWJsZT50YWJsZV9jb25zdHJhaW50PC9yZXBsYWNlYWJsZT4gfQogICAg IFssIC4uLiBdCiApIF0geyBGT1IgVkFMVUVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5wYXJ0aXRpb25fYm91bmRfc3BlYzwvcmVwbGFjZWFibGU+IHwgREVGQVVMVCB9CkBA IC03Myw2ICs3NiwxMSBAQCBDUkVBVEUgWyBbIEdMT0JBTCB8IExPQ0FMIF0geyBURU1QT1JB UlkgfCBURU1QIH0gfCBVTkxPR0dFRCBdIFRBQkxFIFsgSUYgTk9UIEVYSQogICAgIFsgT04g REVMRVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rp b248L3JlcGxhY2VhYmxlPiBdIFsgT04gVVBEQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yZWZlcmVudGlhbF9hY3Rpb248L3JlcGxhY2VhYmxlPiBdIH0KIFsgREVGRVJS QUJMRSB8IE5PVCBERUZFUlJBQkxFIF0gWyBJTklUSUFMTFkgREVGRVJSRUQgfCBJTklUSUFM TFkgSU1NRURJQVRFIF0KIAorPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnBlcmlvZF9kZWZpbml0aW9uPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CisK K1BFUklPRCBGT1IgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25h bWU8L3JlcGxhY2VhYmxlPiB8IFNZU1RFTV9USU1FIH0gKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiwgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gKQorWyBXSVRIICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBlcmlvZF9vcHRpb248L3JlcGxhY2Vh YmxlPiA9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFi bGU+IFssIC4uLiBdICkgXQorCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dGFibGVfY29uc3RyYWludDwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgog CiBbIENPTlNUUkFJTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbnN0cmFp bnRfbmFtZTwvcmVwbGFjZWFibGU+IF0KQEAgLTgxLDcgKzg5LDcgQEAgQ1JFQVRFIFsgWyBH TE9CQUwgfCBMT0NBTCBdIHsgVEVNUE9SQVJZIHwgVEVNUCB9IHwgVU5MT0dHRUQgXSBUQUJM RSBbIElGIE5PVCBFWEkKICAgVU5JUVVFIFsgTlVMTFMgWyBOT1QgXSBESVNUSU5DVCBdICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJs ZT4gWywgLi4uIF0gWywgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9u YW1lPC9yZXBsYWNlYWJsZT4gV0lUSE9VVCBPVkVSTEFQUyBdICkgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2VhYmxlPiB8CiAgIFBS SU1BUlkgS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gV0lUSE9VVCBPVkVSTEFQUyBdICkgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3JlcGxhY2Vh YmxlPiB8CiAgIEVYQ0xVREUgWyBVU0lORyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+aW5kZXhfbWV0aG9kPC9yZXBsYWNlYWJsZT4gXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5leGNsdWRlX2VsZW1lbnQ8L3JlcGxhY2VhYmxlPiBXSVRIIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vcGVyYXRvcjwvcmVwbGFjZWFibGU+IFssIC4uLiBd ICkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmluZGV4X3BhcmFtZXRlcnM8L3Jl cGxhY2VhYmxlPiBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBy ZWRpY2F0ZTwvcmVwbGFjZWFibGU+ICkgXSB8Ci0gIEZPUkVJR04gS0VZICggPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4u IF0gWywgUEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFt ZTwvcmVwbGFjZWFibGU+IF0gKSBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9E IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFi bGU+IF0gKSBdCisgIEZPUkVJR04gS0VZICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIHsgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4g fCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2Vh YmxlPiB9IF0gKSBSRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5y ZWZ0YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gWywgUEVSSU9EIHsgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxl PiB9IF0gKSBdCiAgICAgWyBNQVRDSCBGVUxMIHwgTUFUQ0ggUEFSVElBTCB8IE1BVENIIFNJ TVBMRSBdIFsgT04gREVMRVRFIDxyZXBsYWNlYWJsZQogY2xhc3M9InBhcmFtZXRlciI+cmVm ZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4gXSBbIE9OIFVQREFURSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNlYWJsZT4g XSB9CiBbIERFRkVSUkFCTEUgfCBOT1QgREVGRVJSQUJMRSBdIFsgSU5JVElBTExZIERFRkVS UkVEIHwgSU5JVElBTExZIElNTUVESUFURSBdCkBAIC0xNDAsNiArMTQ4LDE0IEBAIFdJVEgg KCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVy YWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICBuYW1lIGFzIGFueSBleGlzdGluZyBkYXRhIHR5 cGUgaW4gdGhlIHNhbWUgc2NoZW1hLgogICA8L3BhcmE+CiAKKyAgPHBhcmE+CisgICBQZXJp b2RzIG15IGJlIGRlZmluZWQgb24gdGFibGVzLCBzcGVjaWZ5aW5nIHRoYXQgdHdvIGV4aXN0 aW5nIGNvbHVtbnMKKyAgIHJlcHJlc2VudCBzdGFydCBhbmQgZW5kIHZhbHVlcyBmb3IgdGhl IHBlcmlvZC4gIFBlcmlvZHMgbWF5IGhhdmUgYW55IG5hbWUKKyAgIHRoYXQgZG9lc24ndCBj b25mbGljdCB3aXRoIGEgY29sdW1uIG5hbWUsIGJ1dCB0aGUgbmFtZQorICAgPGxpdGVyYWw+ U1lTVEVNX1RJTUU8L2xpdGVyYWw+IGlzIHNwZWNpYWwsIHVzZWQgZm9yIHZlcnNpb25pbmcg dGFibGVzLgorICAgU3lzdGVtIHBlcmlvZHMgYXJlIG5vdCB5ZXQgaW1wbGVtZW50ZWQuICBT ZWUgPHhyZWYgbGlua2VuZD0iZGRsLXBlcmlvZHMiLz4gZm9yIG1vcmUgZGV0YWlscy4KKyAg PC9wYXJhPgorCiAgIDxwYXJhPgogICAgVGhlIG9wdGlvbmFsIGNvbnN0cmFpbnQgY2xhdXNl cyBzcGVjaWZ5IGNvbnN0cmFpbnRzICh0ZXN0cykgdGhhdAogICAgbmV3IG9yIHVwZGF0ZWQg cm93cyBtdXN0IHNhdGlzZnkgZm9yIGFuIGluc2VydCBvciB1cGRhdGUgb3BlcmF0aW9uCkBA IC04MDAsNiArODE2LDM3IEBAIFdJVEggKCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiwgUkVNCiAgICAgPC9s aXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJz cWwtY3JlYXRldGFibGUtcGFybXMtcGVyaW9kIj4KKyAgICA8dGVybT48bGl0ZXJhbD5QRVJJ T0QgRk9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVw bGFjZWFibGU+ICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4sIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5f bmFtZTwvcmVwbGFjZWFibGU+ICkgWyBXSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnBlcmlvZF9vcHRpb248L3JlcGxhY2VhYmxlPiA9IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXTwvbGl0ZXJh bD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEEgcGVyaW9k IGRlZmluaXRpb24gZ2l2ZXMgc2VtYW50aWMgbWVhbmluZyB0byB0d28gZXhpc3RpbmcgY29s dW1ucyBvZgorICAgICAgdGhlIHRhYmxlLiAgSXQgZGVmaW5lcyBhICJzdGFydCBjb2x1bW4i IGFuZCBhbiAiZW5kIGNvbHVtbiIgd2hlcmUgdGhlCisgICAgICBzdGFydCB2YWx1ZSBpcyBz dHJpY3RseSBsZXNzIHRoYW4gdGhlIGVuZCB2YWx1ZS4gIEEKKyAgICAgIDxsaXRlcmFsPkNI RUNLPC9saXRlcmFsPiBjb25zdHJhaW50IGlzIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCB0byBl bmZvcmNlCisgICAgICB0aGlzLiBZb3UgY2FuIHNwZWNpZnkgdGhlIG5hbWUgb2YgdGhhdCBj b25zdHJhaW50IHdpdGggdGhlCisgICAgICA8bGl0ZXJhbD5jaGVja19jb25zdHJhaW50X25h bWU8L2xpdGVyYWw+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0 aW9uPC9yZXBsYWNlYWJsZT4uCisgICAgIDwvcGFyYT4KKworICAgICA8cGFyYT4KKyAgICAg IEJvdGggY29sdW1ucyBtdXN0IGhhdmUgZXhhY3RseSB0aGUgc2FtZSB0eXBlIGFuZCBtdXN0 IGhhdmUgYSByYW5nZSB0eXBlCisgICAgICBkZWZpbmVkIGZyb20gdGhlaXIgYmFzZSB0eXBl LiAgSWYgdGhlcmUgYXJlIHNldmVyYWwgcmFuZ2UgdHlwZXMgZm9yIHRoYXQKKyAgICAgIGJh c2UgdHlwZSwgeW91IG11c3Qgc3BlY2lmeSB3aGljaCBvbmUgeW91IHdhbnQgYnkgdXNpbmcg dGhlCisgICAgICA8bGl0ZXJhbD5yYW5nZXR5cGU8L2xpdGVyYWw+IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9uPC9yZXBsYWNlYWJsZT4uCisgICAgICBB bnkgYmFzZSB0eXBlIGlzIGFsbG93ZWQsIGFzIGxvbmcgYXMgaXQgaGFzIGEgcmFuZ2UgdHlw ZSwgYWx0aG91Z2ggaXQgaXMKKyAgICAgIGV4cGVjdGVkIHRoYXQgbW9zdCBwZXJpb2RzIHdp bGwgdXNlIHRlbXBvcmFsIHR5cGVzIGxpa2UgPGxpdGVyYWw+dGltZXN0YW1wdHo8L2xpdGVy YWw+CisgICAgICBvciA8bGl0ZXJhbD5kYXRlPC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgor CisgICAgIDxwYXJhPgorICAgICAgQSBoaWRkZW4gPGxpdGVyYWw+R0VORVJBVEVEPC9saXRl cmFsPiBjb2x1bW4gaXMgdXNlZCB0byBpbXBsZW1lbnQgdGhlIHBlcmlvZCwKKyAgICAgIHdp dGggdGhlIHNhbWUgbmFtZSBhcyB0aGUgcGVyaW9kLiAgSWYgc3VjaCBhIGNvbHVtbiBhbHJl YWR5IGV4aXN0cywgeW91CisgICAgICBjYW4gdXNlIHRoZSA8bGl0ZXJhbD5jb2xleGlzdHM8 L2xpdGVyYWw+IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wZXJpb2Rfb3B0aW9u PC9yZXBsYWNlYWJsZT4KKyAgICAgIHdpdGggdmFsdWUgPGxpdGVyYWw+dHJ1ZTwvbGl0ZXJh bD4gdG8gYXZvaWQgY3JlYXRpbmcgaXQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVt PgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVh dGV0YWJsZS1wYXJtcy1jb25zdHJhaW50Ij4KICAgICA8dGVybT48bGl0ZXJhbD5DT05TVFJB SU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25zdHJhaW50X25hbWU8L3Jl cGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtMTE1Miw4 ICsxMTk5LDggQEAgV0lUSCAoIE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+LCBSRU0KICAgIDx2YXJsaXN0ZW50 cnkgaWQ9InNxbC1jcmVhdGV0YWJsZS1wYXJtcy1yZWZlcmVuY2VzIj4KICAgICA8dGVybT48 bGl0ZXJhbD5SRUZFUkVOQ0VTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZ0 YWJsZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cmVmY29sdW1uPC9yZXBsYWNlYWJsZT4gKSBdIFsgTUFUQ0ggPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm1hdGNodHlwZTwvcmVwbGFjZWFibGU+IF0gWyBPTiBERUxFVEUgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFj ZWFibGU+IF0gWyBPTiBVUERBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJl ZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF08L2xpdGVyYWw+IChjb2x1bW4gY29u c3RyYWludCk8L3Rlcm0+CiAKLSAgIDx0ZXJtPjxsaXRlcmFsPkZPUkVJR04gS0VZICggPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4g WywgLi4uIF0gWywgUEVSSU9EIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1 bW5fbmFtZTwvcmVwbGFjZWFibGU+IF0gKQotICAgIFJFRkVSRU5DRVMgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2VhYmxlPiBbLCAuLi4g XSBbLCBQRVJJT0QgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1l PC9yZXBsYWNlYWJsZT4gXSApIF0KKyAgIDx0ZXJtPjxsaXRlcmFsPkZPUkVJR04gS0VZICgg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJs ZT4gWywgLi4uIF0gWywgUEVSSU9EIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbHVtbl9uYW1lPC9yZXBsYWNlYWJsZT4gfCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cGVyaW9kX25hbWU8L3JlcGxhY2VhYmxlPiB9IF0gKQorICAgIFJFRkVSRU5DRVMg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJlZnRhYmxlPC9yZXBsYWNlYWJsZT4g WyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yZWZjb2x1bW48L3JlcGxhY2Vh YmxlPiBbLCAuLi4gXSBbLCBQRVJJT0QgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiB8IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5wZXJpb2RfbmFtZTwvcmVwbGFjZWFibGU+IH0gXSApIF0KICAgICBbIE1BVENI IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5tYXRjaHR5cGU8L3JlcGxhY2VhYmxl PiBdCiAgICAgWyBPTiBERUxFVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJl ZmVyZW50aWFsX2FjdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIE9OIFVQREFURSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cmVmZXJlbnRpYWxfYWN0aW9uPC9yZXBsYWNl YWJsZT4gXTwvbGl0ZXJhbD4KQEAgLTExNzMsNyArMTIyMCw3IEBAIFdJVEggKCBNT0RVTFVT IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3JlcGxh Y2VhYmxlPiwgUkVNCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KLSAgICAgIElmIHRo ZSBsYXN0IGNvbHVtbiBpcyBtYXJrZWQgd2l0aCA8bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+ LAorICAgICAgSWYgdGhlIGxhc3Qga2V5IHBhcnQgaXMgbWFya2VkIHdpdGggPGxpdGVyYWw+ UEVSSU9EPC9saXRlcmFsPiwKICAgICAgIGl0IGlzIHRyZWF0ZWQgaW4gYSBzcGVjaWFsIHdh eS4KICAgICAgIFdoaWxlIHRoZSBub24tPGxpdGVyYWw+UEVSSU9EPC9saXRlcmFsPiBjb2x1 bW5zIGFyZSBjb21wYXJlZCBmb3IgZXF1YWxpdHkKICAgICAgIChhbmQgdGhlcmUgbXVzdCBi ZSBhdCBsZWFzdCBvbmUgb2YgdGhlbSksCkBAIC0xMTg0LDcgKzEyMzEsOSBAQCBXSVRIICgg TU9EVUxVUyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bnVtZXJpY19saXRlcmFs PC9yZXBsYWNlYWJsZT4sIFJFTQogICAgICAgd2hvc2UgY29tYmluZWQgPGxpdGVyYWw+UEVS SU9EPC9saXRlcmFsPiB2YWx1ZXMgY29tcGxldGVseSBjb3ZlcgogICAgICAgdGhlIHJlZmVy ZW5jaW5nIHJlY29yZCdzLgogICAgICAgSW4gb3RoZXIgd29yZHMsIHRoZSByZWZlcmVuY2Ug bXVzdCBoYXZlIGEgcmVmZXJlbnQgZm9yIGl0cyBlbnRpcmUgZHVyYXRpb24uCi0gICAgICBU aGlzIGNvbHVtbiBtdXN0IGJlIGEgcmFuZ2Ugb3IgbXVsdGlyYW5nZSB0eXBlLgorICAgICAg VGhpcyBwYXJ0IG11c3QgYmUgZWl0aGVyIGEgCisgICAgICA8bGluayBsaW5rZW5kPSJzcWwt Y3JlYXRldGFibGUtcGFybXMtcGVyaW9kIj48bGl0ZXJhbD5QRVJJT0Q8L2xpdGVyYWw+PC9s aW5rPgorICAgICAgb3IgYSBjb2x1bW4gd2l0aCBhIHJhbmdlIG9yIG11bHRpcmFuZ2UgdHlw ZS4KICAgICAgIEluIGFkZGl0aW9uIHRoZSByZWZlcmVuY2VkIHRhYmxlIG11c3QgaGF2ZSBh IHByaW1hcnkga2V5CiAgICAgICBvciB1bmlxdWUgY29uc3RyYWludCBkZWNsYXJlZCB3aXRo IDxsaXRlcmFsPldJVEhPVVQgT1ZFUkxBUFM8L2xpdGVyYWw+LgogICAgICAgRmluYWxseSwg aWYgb25lIHNpZGUgb2YgdGhlIGZvcmVpZ24ga2V5IHVzZXMgPGxpdGVyYWw+UEVSSU9EPC9s aXRlcmFsPiwKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZGVsZXRlLnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sCmluZGV4IDFjNzI3NTM0MWVhLi5iMzg4YmU3 NTA4YyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kZWxldGUuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2RlbGV0ZS5zZ21sCkBAIC01Niw3ICs1Niw4IEBAIERFTEVURSBG Uk9NIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1l PC9yZXBsYWNlYWJsZT4gWyAqCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KLSAgIElmIHRoZSB0 YWJsZSBoYXMgYSByYW5nZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwKKyAgIElmIHRoZSB0YWJs ZSBoYXMgYSByYW5nZSBvciBtdWx0aXJhbmdlIGNvbHVtbiwgb3IgYQorICAgPGxpbmsgbGlu a2VuZD0iZGRsLXBlcmlvZHMtYXBwbGljYXRpb24tcGVyaW9kcyI+PGxpdGVyYWw+UEVSSU9E PC9saXRlcmFsPjwvbGluaz4sCiAgICB5b3UgbWF5IHN1cHBseSBhIDxsaXRlcmFsPkZPUiBQ T1JUSU9OIE9GPC9saXRlcmFsPiBjbGF1c2UsIGFuZCB5b3VyIGRlbGV0ZSB3aWxsCiAgICBv bmx5IGFmZmVjdCByb3dzIHRoYXQgb3ZlcmxhcCB0aGUgZ2l2ZW4gaW50ZXJ2YWwuIEZ1cnRo ZXJtb3JlLCBpZiBhIHJvdydzIHNwYW4KICAgIGV4dGVuZHMgb3V0c2lkZSB0aGUgPGxpdGVy YWw+Rk9SIFBPUlRJT04gT0Y8L2xpdGVyYWw+IGJvdW5kcywgdGhlbiB5b3VyIGRlbGV0ZQpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi91cGRhdGUuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvdXBkYXRlLnNnbWwKaW5kZXggNzFhMDI2OTdmMmQuLmExYjg4NTcxZDBhIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3VwZGF0ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvdXBkYXRlLnNnbWwKQEAgLTUzLDcgKzUzLDggQEAgVVBEQVRFIFsgT05MWSBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4g WyAqIF0gWwogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBJZiB0aGUgdGFibGUgaGFzIGEg cmFuZ2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sCisgICBJZiB0aGUgdGFibGUgaGFzIGEgcmFu Z2Ugb3IgbXVsdGlyYW5nZSBjb2x1bW4sIG9yIGEKKyAgIDxsaW5rIGxpbmtlbmQ9ImRkbC1w ZXJpb2RzLWFwcGxpY2F0aW9uLXBlcmlvZHMiPjxsaXRlcmFsPlBFUklPRDwvbGl0ZXJhbD48 L2xpbms+LAogICAgeW91IG1heSBzdXBwbHkgYSA8bGl0ZXJhbD5GT1IgUE9SVElPTiBPRjwv bGl0ZXJhbD4gY2xhdXNlLCBhbmQgeW91ciB1cGRhdGUgd2lsbAogICAgb25seSBhZmZlY3Qg cm93cyB0aGF0IG92ZXJsYXAgdGhlIGdpdmVuIGludGVydmFsLiBGdXJ0aGVybW9yZSwgaWYg YSByb3cncyBzcGFuCiAgICBleHRlbmRzIG91dHNpZGUgdGhlIDxsaXRlcmFsPkZPUiBQT1JU SU9OIE9GPC9saXRlcmFsPiBib3VuZHMsIHRoZW4geW91ciB1cGRhdGUKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01h a2VmaWxlCmluZGV4IDE1ODlhNzVmZDUzLi4zYjdhZjk2NTAzMiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01h a2VmaWxlCkBAIC0zOSw2ICszOSw3IEBAIE9CSlMgPSBcCiAJcGdfbmFtZXNwYWNlLm8gXAog CXBnX29wZXJhdG9yLm8gXAogCXBnX3BhcmFtZXRlcl9hY2wubyBcCisJcGdfcGVyaW9kLm8g XAogCXBnX3Byb2MubyBcCiAJcGdfcHVibGljYXRpb24ubyBcCiAJcGdfcmFuZ2UubyBcCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9hY2xjaGsuYwppbmRleCA3YWJmM2MyYTc0YS4uM2YwM2VmZTllM2QgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9hY2xjaGsuYwpAQCAtMjgxMCw2ICsyODEwLDcgQEAgYWNsY2hlY2tfZXJyb3Io QWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVD VF9ERUZBVUxUOgogCQkJCQljYXNlIE9CSkVDVF9ERUZBQ0w6CiAJCQkJCWNhc2UgT0JKRUNU X0RPTUNPTlNUUkFJTlQ6CisJCQkJCWNhc2UgT0JKRUNUX1BFUklPRDoKIAkJCQkJY2FzZSBP QkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgogCQkJCQljYXNlIE9CSkVDVF9QVUJMSUNB VElPTl9SRUw6CiAJCQkJCWNhc2UgT0JKRUNUX1JPTEU6CkBAIC0yOTUxLDYgKzI5NTIsNyBA QCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUs CiAJCQkJCWNhc2UgT0JKRUNUX0RFRkFDTDoKIAkJCQkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RS QUlOVDoKIAkJCQkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKKwkJCQkJY2FzZSBPQkpF Q1RfUEVSSU9EOgogCQkJCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJ CQkJCWNhc2UgT0JKRUNUX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCQkJY2FzZSBPQkpFQ1RfUk9M RToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKaW5kZXggZWFkY2Y2YWYwZGYuLjZiNzJm MDg0MWZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtNDgsNiArNDgsNyBA QAogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX29wZmFtaWx5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wYXJhbWV0ZXJfYWNsLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3BvbGljeS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcHVibGljYXRpb24uaCIKQEAgLTYyMiw2ICs2MjMsMTUgQEAgZmluZERlcGVu ZGVudE9iamVjdHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJCQkJcmV0dXJu OwogCQkJCQl9CiAKKwkJCQkJLyoKKwkJCQkJICogSWYgYSB0YWJsZSBhdHRyaWJ1dGUgaXMg YW4gaW50ZXJuYWwgcGFydCBvZiBzb21ldGhpbmcgZWxzZQorCQkJCQkgKiAoZS5nLiB0aGUg R0VORVJBVEVEIGNvbHVtbiB1c2VkIGJ5IGEgUEVSSU9EKSwKKwkJCQkJICogYW5kIHdlIGFy ZSBkZWxldGluZyB0aGUgd2hvbGUgdGFibGUsCisJCQkJCSAqIHRoZW4gaXQncyBva2F5Lgor CQkJCQkgKi8KKwkJCQkJaWYgKGZvdW5kRGVwLT5vYmpzdWJpZCAmJiAhb2JqZWN0LT5vYmpl Y3RTdWJJZCkKKwkJCQkJCWJyZWFrOworCiAJCQkJCS8qCiAJCQkJCSAqIFdlIHBvc3Rwb25l IGFjdHVhbGx5IGlzc3VpbmcgdGhlIGVycm9yIG1lc3NhZ2UgdW50aWwKIAkJCQkJICogYWZ0 ZXIgdGhpcyBsb29wLCBzbyB0aGF0IHdlIGNhbiBtYWtlIHRoZSBiZWhhdmlvcgpAQCAtMTM5 NCw2ICsxNDA0LDEwIEBAIGRvRGVsZXRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0 LCBpbnQgZmxhZ3MpCiAJCQlSZW1vdmVDb25zdHJhaW50QnlJZChvYmplY3QtPm9iamVjdElk KTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0NMQVNTX1BFUklPRDoKKwkJCVJlbW92ZVBlcmlv ZEJ5SWQob2JqZWN0LT5vYmplY3RJZCk7CisJCQlicmVhazsKKwogCQljYXNlIE9DTEFTU19E RUZBVUxUOgogCQkJUmVtb3ZlQXR0ckRlZmF1bHRCeUlkKG9iamVjdC0+b2JqZWN0SWQpOwog CQkJYnJlYWs7CkBAIC0yODEwLDYgKzI4MjQsOSBAQCBnZXRPYmplY3RDbGFzcyhjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QpCiAJCWNhc2UgQ29uc3RyYWludFJlbGF0aW9uSWQ6CiAJ CQlyZXR1cm4gT0NMQVNTX0NPTlNUUkFJTlQ7CiAKKwkJY2FzZSBQZXJpb2RSZWxhdGlvbklk OgorCQkJcmV0dXJuIE9DTEFTU19QRVJJT0Q7CisKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRp b25JZDoKIAkJCXJldHVybiBPQ0xBU1NfQ09OVkVSU0lPTjsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYwpp bmRleCBjYzMxOTA5MDEyZC4uMTdkMzlkMmJkZDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvaGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaGVhcC5jCkBAIC00 OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX29wY2xhc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3BhcnRp dGlvbmVkX3RhYmxlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vi c2NyaXB0aW9uX3JlbC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgpA QCAtMjA1NCw2ICsyMDU1LDgwIEBAIFNldEF0dHJNaXNzaW5nKE9pZCByZWxpZCwgY2hhciAq YXR0bmFtZSwgY2hhciAqdmFsdWUpCiAJdGFibGVfY2xvc2UodGFibGVyZWwsIEFjY2Vzc0V4 Y2x1c2l2ZUxvY2spOwogfQogCisvKgorICogU3RvcmUgYSBwZXJpb2Qgb2YgcmVsYXRpb24g cmVsLgorICoKKyAqIFJldHVybnMgdGhlIE9JRCBvZiB0aGUgbmV3IHBnX3BlcmlvZCB0dXBs ZS4KKyAqLworT2lkCitTdG9yZVBlcmlvZChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBl cmlvZG5hbWUsIEF0dHJOdW1iZXIgc3RhcnRudW0sCisJCQlBdHRyTnVtYmVyIGVuZG51bSwg QXR0ck51bWJlciByYW5nZW51bSwgT2lkIGNvbm9pZCkKK3sKKwlEYXR1bQkJdmFsdWVzW05h dHRzX3BnX3BlcmlvZF07CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfcGVyaW9kXTsKKwlSZWxh dGlvbglwZ19wZXJpb2Q7CisJSGVhcFR1cGxlCXR1cGxlOworCU9pZAkJCW9pZDsKKwlOYW1l RGF0YQlwZXJuYW1lOworCU9iamVjdEFkZHJlc3MJbXlzZWxmLCByZWZlcmVuY2VkOworCisJ QXNzZXJ0KHJhbmdlbnVtICE9IEludmFsaWRBdHRyTnVtYmVyKTsKKworCW5hbWVzdHJjcHko JnBlcm5hbWUsIHBlcmlvZG5hbWUpOworCisJTWVtU2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZh bHVlcykpOworCU1lbVNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOworCisJcGdf cGVyaW9kID0gdGFibGVfb3BlbihQZXJpb2RSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2Nr KTsKKworCW9pZCA9IEdldE5ld09pZFdpdGhJbmRleChwZ19wZXJpb2QsIEF0dHJEZWZhdWx0 T2lkSW5kZXhJZCwgQW51bV9wZ19wZXJpb2Rfb2lkKTsKKwl2YWx1ZXNbQW51bV9wZ19wZXJp b2Rfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKG9pZCk7CisJdmFsdWVzW0FudW1fcGdf cGVyaW9kX3Blcm5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmcGVybmFtZSk7CisJdmFsdWVz W0FudW1fcGdfcGVyaW9kX3BlcnJlbGlkIC0gMV0gPSBSZWxhdGlvbkdldFJlbGlkKHJlbCk7 CisJdmFsdWVzW0FudW1fcGdfcGVyaW9kX3BlcnN0YXJ0IC0gMV0gPSBzdGFydG51bTsKKwl2 YWx1ZXNbQW51bV9wZ19wZXJpb2RfcGVyZW5kIC0gMV0gPSBlbmRudW07CisJdmFsdWVzW0Fu dW1fcGdfcGVyaW9kX3BlcnJhbmdlIC0gMV0gPSByYW5nZW51bTsKKwl2YWx1ZXNbQW51bV9w Z19wZXJpb2RfcGVyY29uc3RyYWludCAtIDFdID0gY29ub2lkOworCisJdHVwbGUgPSBoZWFw X2Zvcm1fdHVwbGUoUmVsYXRpb25HZXREZXNjcihwZ19wZXJpb2QpLCB2YWx1ZXMsIG51bGxz KTsKKwlDYXRhbG9nVHVwbGVJbnNlcnQocGdfcGVyaW9kLCB0dXBsZSk7CisKKwlPYmplY3RB ZGRyZXNzU2V0KG15c2VsZiwgUGVyaW9kUmVsYXRpb25JZCwgb2lkKTsKKworCS8qIERyb3Ag dGhlIHBlcmlvZCB3aGVuIHRoZSB0YWJsZSBpcyBkcm9wcGVkLiAqLworCU9iamVjdEFkZHJl c3NTZXQocmVmZXJlbmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBSZWxhdGlvbkdldFJlbGlk KHJlbCkpOworCXJlY29yZERlcGVuZGVuY3lPbigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQ RU5ERU5DWV9BVVRPKTsKKworCS8qIEZvcmJpZCBkcm9wcGluZyB0aGUgY29sdW1ucyBvZiB0 aGUgcGVyaW9kLiAqLworCU9iamVjdEFkZHJlc3NTdWJTZXQocmVmZXJlbmNlZCwgUmVsYXRp b25SZWxhdGlvbklkLCBSZWxhdGlvbkdldFJlbGlkKHJlbCksIHN0YXJ0bnVtKTsKKwlyZWNv cmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERFUEVOREVOQ1lfTk9STUFM KTsKKwlPYmplY3RBZGRyZXNzU3ViU2V0KHJlZmVyZW5jZWQsIFJlbGF0aW9uUmVsYXRpb25J ZCwgUmVsYXRpb25HZXRSZWxpZChyZWwpLCBlbmRudW0pOworCXJlY29yZERlcGVuZGVuY3lP bigmbXlzZWxmLCAmcmVmZXJlbmNlZCwgREVQRU5ERU5DWV9OT1JNQUwpOworCisJLyoKKwkg KiBUaGUgcmFuZ2UgY29sdW1uIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbCwKKwkgKiBi dXQgd2UgY2FuJ3QgdXNlIERFUEVOREVOQ1lfSU5URVJOQUwKKwkgKiBiZWNhdXNlIGRyb3Bw aW5nIHRoZSB0YWJsZSB3aWxsIGNoZWNrIGZvciBkZXBlbmRlbmNpZXMgb24gYWxsIHN1Ym9i amVjdHMgdG9vCisJICogKGluIGZpbmREZXBlbmRlbnRPYmplY3RzKS4KKwkgKiBCdXQgaWYg d2UgbWFrZSBhbiBBVVRPIGRlcGVuZGVuY3kgb25lIHdheSB3ZSB3aWxsIGF1dG8tZHJvcCB0 aGUgY29sdW1uCisJICogd2hlbiB3ZSBkcm9wIHRoZSBQRVJJT0QsCisJICogYW5kIGEgTk9S TUFMIGRlcGVuZGVuY3kgdGhlIG90aGVyIHdheSB3ZSB3aWxsIGZvcmJpZCBkcm9wcGluZyB0 aGUgY29sdW1uIGRpcmVjdGx5LgorCSAqLworCU9iamVjdEFkZHJlc3NTdWJTZXQocmVmZXJl bmNlZCwgUmVsYXRpb25SZWxhdGlvbklkLCBSZWxhdGlvbkdldFJlbGlkKHJlbCksIHJhbmdl bnVtKTsKKwlyZWNvcmREZXBlbmRlbmN5T24oJnJlZmVyZW5jZWQsICZteXNlbGYsIERFUEVO REVOQ1lfSU5URVJOQUwpOworCisJLyoKKwkgKiBUaGUgY29uc3RyYWludCBpcyBhbiBpbXBs ZW1lbnRhdGlvbiBkZXRhaWwsIHNvIHdlIG1hcmsgaXQgYXMgc3VjaC4KKwkgKiAoTm90ZSB0 aGF0IG15c2VsZiBhbmQgcmVmZXJlbmNlZCBhcmUgcmV2ZXJzZWQgZm9yIHRoaXMgb25lLikK KwkgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENvbnN0cmFpbnRSZWxhdGlv bklkLCBjb25vaWQpOworCXJlY29yZERlcGVuZGVuY3lPbigmcmVmZXJlbmNlZCwgJm15c2Vs ZiwgREVQRU5ERU5DWV9JTlRFUk5BTCk7CisKKwl0YWJsZV9jbG9zZShwZ19wZXJpb2QsIFJv d0V4Y2x1c2l2ZUxvY2spOworCisJcmV0dXJuIG9pZDsKK30KKwogLyoKICAqIFN0b3JlIGEg Y2hlY2stY29uc3RyYWludCBleHByZXNzaW9uIGZvciB0aGUgZ2l2ZW4gcmVsYXRpb24uCiAg KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEu c3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCmluZGV4 IDc2Yzc4YzBkMTg0Li4xYjAyNmM1ODE2MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9pbmZvcm1hdGlvbl9zY2hlbWEuc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv aW5mb3JtYXRpb25fc2NoZW1hLnNxbApAQCAtMTIwNyw3ICsxMjA3LDI4IEBAIEdSQU5UIFNF TEVDVCBPTiBwYXJhbWV0ZXJzIFRPIFBVQkxJQzsKICAqIFBFUklPRFMgdmlldwogICovCiAK LS0tIGZlYXR1cmUgbm90IHN1cHBvcnRlZAorQ1JFQVRFIFZJRVcgcGVyaW9kcyBBUworICAg IFNFTEVDVCBjdXJyZW50X2RhdGFiYXNlKCk6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRl bnRpZmllciBBUyB0YWJsZV9jYXRhbG9nLAorICAgICAgICAgICBuYy5uc3BuYW1lOjppbmZv cm1hdGlvbl9zY2hlbWEuc3FsX2lkZW50aWZpZXIgQVMgdGFibGVfc2NoZW1hLAorICAgICAg ICAgICBjLnJlbG5hbWU6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllciBBUyB0 YWJsZV9uYW1lLAorICAgICAgICAgICBwLnBlcm5hbWU6OmluZm9ybWF0aW9uX3NjaGVtYS5z cWxfaWRlbnRpZmllciBBUyBwZXJpb2RfbmFtZSwKKyAgICAgICAgICAgQ0FTRSBXSEVOIHBn X2hhc19yb2xlKGMucmVsb3duZXIsICdVU0FHRScpCisgICAgICAgICAgICAgICAgICBPUiBo YXNfY29sdW1uX3ByaXZpbGVnZShzYS5hdHRyZWxpZCwgc2EuYXR0bnVtLCAnU0VMRUNULCBJ TlNFUlQsIFVQREFURSwgUkVGRVJFTkNFUycpCisgICAgICAgICAgICAgICAgVEhFTiBzYS5h dHRuYW1lOjppbmZvcm1hdGlvbl9zY2hlbWEuc3FsX2lkZW50aWZpZXIKKyAgICAgICAgICAg RU5EIEFTIHN0YXJ0X2NvbHVtbl9uYW1lLAorICAgICAgICAgICBDQVNFIFdIRU4gcGdfaGFz X3JvbGUoYy5yZWxvd25lciwgJ1VTQUdFJykKKyAgICAgICAgICAgICAgICAgIE9SIGhhc19j b2x1bW5fcHJpdmlsZWdlKGVhLmF0dHJlbGlkLCBlYS5hdHRudW0sICdTRUxFQ1QsIElOU0VS VCwgVVBEQVRFLCBSRUZFUkVOQ0VTJykKKyAgICAgICAgICAgICAgICBUSEVOIGVhLmF0dG5h bWU6OmluZm9ybWF0aW9uX3NjaGVtYS5zcWxfaWRlbnRpZmllcgorICAgICAgICAgICBFTkQg QVMgZW5kX2NvbHVtbl9uYW1lCisgICAgRlJPTSBwZ19wZXJpb2QgQVMgcAorICAgIEpPSU4g cGdfY2xhc3MgQVMgYyBPTiBjLm9pZCA9IHAucGVycmVsaWQKKyAgICBKT0lOIHBnX25hbWVz cGFjZSBBUyBuYyBPTiBuYy5vaWQgPSBjLnJlbG5hbWVzcGFjZQorICAgIEpPSU4gcGdfYXR0 cmlidXRlIEFTIHNhIE9OIChzYS5hdHRyZWxpZCwgc2EuYXR0bnVtKSA9IChwLnBlcnJlbGlk LCBwLnBlcnN0YXJ0KQorICAgIEpPSU4gcGdfYXR0cmlidXRlIEFTIGVhIE9OIChlYS5hdHRy ZWxpZCwgZWEuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcmVuZCkKKyAgICBXSEVSRSBO T1QgcGdfaXNfb3RoZXJfdGVtcF9zY2hlbWEobmMub2lkKQorICAgICAgQU5EIGMucmVsa2lu ZCBJTiAoJ3InLCAndicpOworCitHUkFOVCBTRUxFQ1QgT04gcGVyaW9kcyBUTyBQVUJMSUM7 CiAKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IDJmM2RlZDhhMGU3Li5h MzcyZmIwYWFlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWls ZAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC0yNiw2ICsyNiw3 IEBAIGJhY2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BnX25hbWVzcGFjZS5jJywKICAg J3BnX29wZXJhdG9yLmMnLAogICAncGdfcGFyYW1ldGVyX2FjbC5jJywKKyAgJ3BnX3Blcmlv ZC5jJywKICAgJ3BnX3Byb2MuYycsCiAgICdwZ19wdWJsaWNhdGlvbi5jJywKICAgJ3BnX3Jh bmdlLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNz LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwppbmRleCAzNjBjNmIy YmE2My4uNjUxYTFjMTg2ODQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5j CkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfb3BmYW1pbHkuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3BhcmFtZXRlcl9hY2wuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcG9saWN5LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9j LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIgpAQCAtNzMzLDYgKzcz NCwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAogCXsKIAkJImRv bWFpbiBjb25zdHJhaW50IiwgT0JKRUNUX0RPTUNPTlNUUkFJTlQKIAl9LAorCS8qIE9DTEFT U19QRVJJT0QgKi8KKwl7CisJCSJwZXJpb2QiLCBPQkpFQ1RfUEVSSU9ECisJfSwKIAkvKiBP Q0xBU1NfQ09OVkVSU0lPTiAqLwogCXsKIAkJImNvbnZlcnNpb24iLCBPQkpFQ1RfQ09OVkVS U0lPTgpAQCAtMTAxMSw2ICsxMDE2LDcgQEAgZ2V0X29iamVjdF9hZGRyZXNzKE9iamVjdFR5 cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0LAogCQkJY2FzZSBPQkpFQ1RfVFJJR0dFUjoKIAkJ CWNhc2UgT0JKRUNUX1RBQkNPTlNUUkFJTlQ6CiAJCQljYXNlIE9CSkVDVF9QT0xJQ1k6CisJ CQljYXNlIE9CSkVDVF9QRVJJT0Q6CiAJCQkJYWRkcmVzcyA9IGdldF9vYmplY3RfYWRkcmVz c19yZWxvYmplY3Qob2JqdHlwZSwgY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwKIAkJCQkJCQkJ CQkJCQkgICAmcmVsYXRpb24sIG1pc3Npbmdfb2spOwogCQkJCWJyZWFrOwpAQCAtMTUwOSw2 ICsxNTE1LDEzIEBAIGdldF9vYmplY3RfYWRkcmVzc19yZWxvYmplY3QoT2JqZWN0VHlwZSBv Ymp0eXBlLCBMaXN0ICpvYmplY3QsCiAJCQkJSW52YWxpZE9pZDsKIAkJCWFkZHJlc3Mub2Jq ZWN0U3ViSWQgPSAwOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1BFUklPRDoKKwkJCWFk ZHJlc3MuY2xhc3NJZCA9IFBlcmlvZFJlbGF0aW9uSWQ7CisJCQlhZGRyZXNzLm9iamVjdElk ID0gcmVsYXRpb24gPworCQkJCWdldF9yZWxhdGlvbl9wZXJpb2Rfb2lkKHJlbG9pZCwgZGVw bmFtZSwgbWlzc2luZ19vaykgOgorCQkJCUludmFsaWRPaWQ7CisJCQlhZGRyZXNzLm9iamVj dFN1YklkID0gMDsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVu cmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCAoaW50KSBvYmp0eXBlKTsKIAl9CkBAIC0y MzI2LDYgKzIzMzksNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVOQ1RJT05fQVJH UykKIAkJY2FzZSBPQkpFQ1RfUlVMRToKIAkJY2FzZSBPQkpFQ1RfVFJJR0dFUjoKIAkJY2Fz ZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKKwkJY2FzZSBPQkpFQ1RfUEVSSU9EOgogCQljYXNl IE9CSkVDVF9PUENMQVNTOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKIAkJCW9iam5vZGUg PSAoTm9kZSAqKSBuYW1lOwpAQCAtMjQzNiw2ICsyNDUwLDcgQEAgY2hlY2tfb2JqZWN0X293 bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3Mg YWRkcmVzcywKIAkJY2FzZSBPQkpFQ1RfVFJJR0dFUjoKIAkJY2FzZSBPQkpFQ1RfUE9MSUNZ OgogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgorCQljYXNlIE9CSkVDVF9QRVJJT0Q6 CiAJCQlpZiAoIW9iamVjdF9vd25lcmNoZWNrKFJlbGF0aW9uUmVsYXRpb25JZCwgUmVsYXRp b25HZXRSZWxpZChyZWxhdGlvbiksIHJvbGVpZCkpCiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNM Q0hFQ0tfTk9UX09XTkVSLCBvYmp0eXBlLAogCQkJCQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbGF0aW9uKSk7CkBAIC0zMDg0LDYgKzMwOTksMzggQEAgZ2V0T2JqZWN0RGVz Y3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2sp CiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBPQ0xBU1NfUEVSSU9EOgorCQkJeworCQkJ CUhlYXBUdXBsZQlwZXJUdXA7CisJCQkJRm9ybV9wZ19wZXJpb2QgcGVyOworCisJCQkJcGVy VHVwID0gU2VhcmNoU3lzQ2FjaGUxKFBFUklPRE9JRCwKKwkJCQkJCQkJCQkgT2JqZWN0SWRH ZXREYXR1bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHBlclR1cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBw ZXJpb2QgJXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCXBlciA9IChGb3Jt X3BnX3BlcmlvZCkgR0VUU1RSVUNUKHBlclR1cCk7CisKKwkJCQlpZiAoT2lkSXNWYWxpZChw ZXItPnBlcnJlbGlkKSkKKwkJCQl7CisJCQkJCVN0cmluZ0luZm9EYXRhIHJlbDsKKworCQkJ CQlpbml0U3RyaW5nSW5mbygmcmVsKTsKKwkJCQkJZ2V0UmVsYXRpb25EZXNjcmlwdGlvbigm cmVsLCBwZXItPnBlcnJlbGlkLCBmYWxzZSk7CisJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1 ZmZlciwgXygicGVyaW9kICVzIG9uICVzIiksCisJCQkJCQkJCQkgTmFtZVN0cihwZXItPnBl cm5hbWUpLCByZWwuZGF0YSk7CisJCQkJCXBmcmVlKHJlbC5kYXRhKTsKKwkJCQl9CisJCQkJ ZWxzZQorCQkJCXsKKwkJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCBfKCJwZXJpb2Qg JXMiKSwKKwkJCQkJCQkJCSBOYW1lU3RyKHBlci0+cGVybmFtZSkpOworCQkJCX0KKworCQkJ CVJlbGVhc2VTeXNDYWNoZShwZXJUdXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2Ug T0NMQVNTX0NPTlZFUlNJT046CiAJCQl7CiAJCQkJSGVhcFR1cGxlCWNvblR1cDsKQEAgLTQ0 NDgsNiArNDQ5NSwxMCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJCQkJCQkJIG1pc3Npbmdf b2spOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBPQ0xBU1NfUEVSSU9EOgorCQkJYXBwZW5kU3Ry aW5nSW5mb1N0cmluZygmYnVmZmVyLCAicGVyaW9kIik7CisJCQlicmVhazsKKwogCQljYXNl IE9DTEFTU19DT05WRVJTSU9OOgogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVy LCAiY29udmVyc2lvbiIpOwogCQkJYnJlYWs7CkBAIC00OTU1LDYgKzUwMDYsMjggQEAgZ2V0 T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJ YnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBPQ0xBU1NfUEVSSU9EOgorCQkJeworCQkJCUhlYXBU dXBsZQlwZXJUdXA7CisJCQkJRm9ybV9wZ19wZXJpb2QgcGVyOworCisJCQkJcGVyVHVwID0g U2VhcmNoU3lzQ2FjaGUxKFBFUklPRE9JRCwKKwkJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1 bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHBlclR1 cCkpCisJCQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwZXJpb2Qg JXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCQkJCXBlciA9IChGb3JtX3BnX3Bl cmlvZCkgR0VUU1RSVUNUKHBlclR1cCk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZm ZXIsICIlcyBvbiAiLAorCQkJCQkJCQkgcXVvdGVfaWRlbnRpZmllcihOYW1lU3RyKHBlci0+ cGVybmFtZSkpKTsKKwkJCQlnZXRSZWxhdGlvbklkZW50aXR5KCZidWZmZXIsIHBlci0+cGVy cmVsaWQsIG9iam5hbWUsIGZhbHNlKTsKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5h bWUgPSBsYXBwZW5kKCpvYmpuYW1lLCBwc3RyZHVwKE5hbWVTdHIocGVyLT5wZXJuYW1lKSkp OworCisJCQkJUmVsZWFzZVN5c0NhY2hlKHBlclR1cCk7CisJCQkJYnJlYWs7CisJCQl9CisK IAkJY2FzZSBPQ0xBU1NfQ09OVkVSU0lPTjoKIAkJCXsKIAkJCQlIZWFwVHVwbGUJY29uVHVw OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wZXJpb2QuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfcGVyaW9kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLjQ2NWI1YjY3NWUzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19wZXJpb2QuYwpAQCAtMCwwICsxLDEzMiBAQAorLyotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKgorICogcGdfcGVyaW9kLmMKKyAqCSAgcm91dGluZXMgdG8gc3VwcG9y dCBtYW5pcHVsYXRpb24gb2YgdGhlIHBnX3BlcmlvZCByZWxhdGlvbgorICoKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIxLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9w bWVudCBHcm91cAorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3BlcmlvZC5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8K KyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2dlbmFtLmgiCisj aW5jbHVkZSAiYWNjZXNzL2hlYXBhbS5oIgorI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFp bHMuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wZXJpb2QuaCIKKyNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgorI2luY2x1ZGUg InV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorI2luY2x1ZGUg InV0aWxzL3N5c2NhY2hlLmgiCisKKworLyoKKyAqIERlbGV0ZSBhIHNpbmdsZSBwZXJpb2Qg cmVjb3JkLgorICovCit2b2lkCitSZW1vdmVQZXJpb2RCeUlkKE9pZCBwZXJpb2RJZCkKK3sK KwlSZWxhdGlvbglwZ19wZXJpb2Q7CisJSGVhcFR1cGxlCXR1cDsKKworCXBnX3BlcmlvZCA9 IHRhYmxlX29wZW4oUGVyaW9kUmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwl0 dXAgPSBTZWFyY2hTeXNDYWNoZTEoUEVSSU9ET0lELCBPYmplY3RJZEdldERhdHVtKHBlcmlv ZElkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpIC8qIHNob3VsZCBub3QgaGFw cGVuICovCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwZXJpb2Qg JXUiLCBwZXJpb2RJZCk7CisKKwkvKiBGcnkgdGhlIHBlcmlvZCBpdHNlbGYgKi8KKwlDYXRh bG9nVHVwbGVEZWxldGUocGdfcGVyaW9kLCAmdHVwLT50X3NlbGYpOworCisJLyogQ2xlYW4g dXAgKi8KKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwl0YWJsZV9jbG9zZShwZ19wZXJpb2Qs IFJvd0V4Y2x1c2l2ZUxvY2spOworfQorCisvKgorICogZ2V0X3JlbGF0aW9uX3BlcmlvZF9v aWQKKyAqCQlGaW5kIGEgcGVyaW9kIG9uIHRoZSBzcGVjaWZpZWQgcmVsYXRpb24gd2l0aCB0 aGUgc3BlY2lmaWVkIG5hbWUuCisgKgkJUmV0dXJucyBwZXJpb2QncyBPSUQuCisgKi8KK09p ZAorZ2V0X3JlbGF0aW9uX3BlcmlvZF9vaWQoT2lkIHJlbGlkLCBjb25zdCBjaGFyICpwZXJu YW1lLCBib29sIG1pc3Npbmdfb2spCit7CisJUmVsYXRpb24JcGdfcGVyaW9kOworCUhlYXBU dXBsZQl0dXBsZTsKKwlTeXNTY2FuRGVzYyBzY2FuOworCVNjYW5LZXlEYXRhIHNrZXlbMl07 CisJT2lkCQkJcGVyT2lkID0gSW52YWxpZE9pZDsKKworCS8qIEZldGNoIHRoZSBwZXJpb2Qg dHVwbGUgZnJvbSBwZ19wZXJpb2QuICovCisJcGdfcGVyaW9kID0gdGFibGVfb3BlbihQZXJp b2RSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJU2NhbktleUluaXQoJnNrZXlb MF0sCisJCQkJQW51bV9wZ19wZXJpb2RfcGVycmVsaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5 TnVtYmVyLCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0dW0ocmVsaWQpKTsKKwlTY2Fu S2V5SW5pdCgmc2tleVsxXSwKKwkJCQlBbnVtX3BnX3BlcmlvZF9wZXJuYW1lLAorCQkJCUJU RXF1YWxTdHJhdGVneU51bWJlciwgRl9OQU1FRVEsCisJCQkJQ1N0cmluZ0dldERhdHVtKHBl cm5hbWUpKTsKKworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdfcGVyaW9kLCBQZXJp b2RSZWxpZE5hbWVJbmRleElkLCB0cnVlLAorCQkJCQkJCSAgTlVMTCwgMiwgc2tleSk7CisK KwkvKiBUaGVyZSBjYW4gYmUgYXQgbW9zdCBvbmUgbWF0Y2hpbmcgcm93ICovCisJaWYgKEhl YXBUdXBsZUlzVmFsaWQodHVwbGUgPSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwkJcGVy T2lkID0gKChGb3JtX3BnX3BlcmlvZCkgR0VUU1RSVUNUKHR1cGxlKSktPm9pZDsKKworCXN5 c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisKKwkvKiBJZiBubyBzdWNoIHBlcmlvZCBleGlzdHMs IGNvbXBsYWluICovCisJaWYgKCFPaWRJc1ZhbGlkKHBlck9pZCkgJiYgIW1pc3Npbmdfb2sp CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JK RUNUKSwKKwkJCQkgZXJybXNnKCJwZXJpb2QgXCIlc1wiIGZvciB0YWJsZSBcIiVzXCIgZG9l cyBub3QgZXhpc3QiLAorCQkJCQkJcGVybmFtZSwgZ2V0X3JlbF9uYW1lKHJlbGlkKSkpKTsK KworCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCXJldHVy biBwZXJPaWQ7Cit9CisKKy8qCisgKiBnZXRfcGVyaW9kX2F0dG5vcworICoJCUdldCB0aGUg YXR0bm8gb2YgdGhlIEdFTkVSQVRFRCByYW5nZXR5cGUgY29sdW1uCisgKgkJZm9yIGFsbCBQ RVJJT0RzIGluIHRoaXMgdGFibGUuCisgKi8KK2V4dGVybiBCaXRtYXBzZXQKKypnZXRfcGVy aW9kX2F0dG5vcyhPaWQgcmVsaWQpCit7CisJQml0bWFwc2V0ICphdHRub3MgPSBOVUxMOwor CVJlbGF0aW9uCXBnX3BlcmlvZDsKKwlIZWFwVHVwbGUJdHVwbGU7CisJU3lzU2NhbkRlc2Mg c2NhbjsKKwlTY2FuS2V5RGF0YSBza2V5WzFdOworCisJcGdfcGVyaW9kID0gdGFibGVfb3Bl bihQZXJpb2RSZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxvY2spOworCisJU2NhbktleUluaXQo JnNrZXlbMF0sCisJCQkJQW51bV9wZ19wZXJpb2RfcGVycmVsaWQsCisJCQkJQlRFcXVhbFN0 cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0dW0ocmVsaWQpKTsK KworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocGdfcGVyaW9kLCBQZXJpb2RSZWxpZE5h bWVJbmRleElkLCB0cnVlLAorCQkJCQkJCSAgTlVMTCwgMSwgc2tleSk7CisKKwl3aGlsZSAo SGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3RhYmxlX2dldG5leHQoc2NhbikpKQorCXsK KwkJRm9ybV9wZ19wZXJpb2QgcGVyaW9kID0gKEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1Qo dHVwbGUpOworCisJCWF0dG5vcyA9IGJtc19hZGRfbWVtYmVyKGF0dG5vcywgcGVyaW9kLT5w ZXJyYW5nZSk7CisJfQorCisJc3lzdGFibGVfZW5kc2NhbihzY2FuKTsKKwl0YWJsZV9jbG9z ZShwZ19wZXJpb2QsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlyZXR1cm4gYXR0bm9zOworfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0IGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0CmluZGV4IDkyNWQxNWEyYzM4Li5j OTNjNjk3NTBhYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVy ZXMudHh0CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dApAQCAt NDQ4LDcgKzQ0OCw3IEBAIFQxNzYJU2VxdWVuY2UgZ2VuZXJhdG9yIHN1cHBvcnQJCQlOTwlz dXBwb3J0ZWQgZXhjZXB0IGZvciBORVhUIFZBTFVFIEZPUgogVDE3NwlTZXF1ZW5jZSBnZW5l cmF0b3Igc3VwcG9ydDogc2ltcGxlIHJlc3RhcnQgb3B0aW9uCQkJWUVTCQogVDE3OAlJZGVu dGl0eSBjb2x1bW5zOiBzaW1wbGUgcmVzdGFydCBvcHRpb24JCQlZRVMJCiBUMTgwCVN5c3Rl bS12ZXJzaW9uZWQgdGFibGVzCQkJTk8JCi1UMTgxCUFwcGxpY2F0aW9uLXRpbWUgcGVyaW9k IHRhYmxlcwkJCU5PCQorVDE4MQlBcHBsaWNhdGlvbi10aW1lIHBlcmlvZCB0YWJsZXMJCQlZ RVMJCiBUMTkxCVJlZmVyZW50aWFsIGFjdGlvbiBSRVNUUklDVAkJCVlFUwkKIFQyMDAJVHJp Z2dlciBEREwJCQlOTwlzaW1pbGFyIGJ1dCBub3QgZnVsbHkgY29tcGF0aWJsZQogVDIwMQlD b21wYXJhYmxlIGRhdGEgdHlwZXMgZm9yIHJlZmVyZW50aWFsIGNvbnN0cmFpbnRzCQkJWUVT CQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2FsdGVyLmMKaW5kZXggY2Q3NDAxNDBmZDcuLjAyN2Q1ZWM3MzE0IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2FsdGVyLmMKQEAgLTY2NCw2ICs2NjQsNyBAQCBBbHRlck9iamVjdE5h bWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmppZCwgT2lkIG5zcE9pZCwKIAogCQlj YXNlIE9DTEFTU19DQVNUOgogCQljYXNlIE9DTEFTU19DT05TVFJBSU5UOgorCQljYXNlIE9D TEFTU19QRVJJT0Q6CiAJCWNhc2UgT0NMQVNTX0RFRkFVTFQ6CiAJCWNhc2UgT0NMQVNTX0xB TkdVQUdFOgogCQljYXNlIE9DTEFTU19MQVJHRU9CSkVDVDoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvbW1lbnQuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbW1l bnQuYwppbmRleCBlOWQ1MGZjN2Q4Ny4uMDVmZWZiNWI1Y2UgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvbW1lbnQuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9j b21tZW50LmMKQEAgLTEwMiw2ICsxMDIsMTYgQEAgQ29tbWVudE9iamVjdChDb21tZW50U3Rt dCAqc3RtdCkKIAkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRpb24pKSwK IAkJCQkJCSBlcnJkZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKHJlbGF0aW9uLT5yZF9y ZWwtPnJlbGtpbmQpKSk7CiAJCQlicmVhazsKKworCQljYXNlIE9CSkVDVF9QRVJJT0Q6CisJ CQkvKiBQZXJpb2RzIGNhbiBvbmx5IGdvIG9uIHRhYmxlcyAqLworCQkJaWYgKHJlbGF0aW9u LT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTikKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJ CQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgdGFibGUiLAorCQkJCQkJCQlSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShyZWxhdGlvbikpKSk7CisJCQlicmVhazsKKwogCQlkZWZhdWx0Ogog CQkJYnJlYWs7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKaW5kZXggODVlZWM3ZTM5 NDcuLjNkNzg3OWY5M2MxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9w Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKQEAgLTUwNCw2 ICs1MDQsNyBAQCBkb2VzX25vdF9leGlzdF9za2lwcGluZyhPYmplY3RUeXBlIG9ianR5cGUs IE5vZGUgKm9iamVjdCkKIAkJY2FzZSBPQkpFQ1RfRE9NQ09OU1RSQUlOVDoKIAkJY2FzZSBP QkpFQ1RfTEFSR0VPQkpFQ1Q6CiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CisJCWNh c2UgT0JKRUNUX1BFUklPRDoKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNF OgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9SRUw6CiAJCWNhc2UgT0JKRUNUX1RBQkNP TlNUUkFJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmln Z2VyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXggYzk1 ZTljZjZmMGUuLmM1NTQzNGI2MmIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5jCkBAIC0xMTY1LDYgKzExNjUsNyBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVj dFR5cGUoT2JqZWN0VHlwZSBvYnR5cGUpCiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CiAJCWNh c2UgT0JKRUNUX09QRVJBVE9SOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBP QkpFQ1RfUEVSSU9EOgogCQljYXNlIE9CSkVDVF9QT0xJQ1k6CiAJCWNhc2UgT0JKRUNUX1BS T0NFRFVSRToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CkBAIC0xMjIzLDYgKzEyMjQs NyBAQCBFdmVudFRyaWdnZXJTdXBwb3J0c09iamVjdENsYXNzKE9iamVjdENsYXNzIG9iamNs YXNzKQogCQljYXNlIE9DTEFTU19DQVNUOgogCQljYXNlIE9DTEFTU19DT0xMQVRJT046CiAJ CWNhc2UgT0NMQVNTX0NPTlNUUkFJTlQ6CisJCWNhc2UgT0NMQVNTX1BFUklPRDoKIAkJY2Fz ZSBPQ0xBU1NfQ09OVkVSU0lPTjoKIAkJY2FzZSBPQ0xBU1NfREVGQVVMVDoKIAkJY2FzZSBP Q0xBU1NfTEFOR1VBR0U6CkBAIC0yMjY0LDYgKzIyNjYsNyBAQCBzdHJpbmdpZnlfZ3JhbnRf b2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNhc2UgT0JKRUNUX09QQ0xBU1M6CiAJ CWNhc2UgT0JKRUNUX09QRVJBVE9SOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2Fz ZSBPQkpFQ1RfUEVSSU9EOgogCQljYXNlIE9CSkVDVF9QT0xJQ1k6CiAJCWNhc2UgT0JKRUNU X1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CkBA IC0yMzQ4LDYgKzIzNTEsNyBAQCBzdHJpbmdpZnlfYWRlZnByaXZzX29ianR5cGUoT2JqZWN0 VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9PUEVSQVRPUjoKIAkJY2FzZSBPQkpFQ1Rf T1BGQU1JTFk6CiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CisJCWNhc2UgT0JKRUNU X1BFUklPRDoKIAkJY2FzZSBPQkpFQ1RfUE9MSUNZOgogCQljYXNlIE9CSkVDVF9QVUJMSUNB VElPTjoKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT05fTkFNRVNQQUNFOgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3NlY2xhYmVsLmMKaW5kZXggNTYwNzI3M2JmOWYuLmFmNzE3NzE3OWNlIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTc5LDYgKzc5LDcgQEAgU2VjTGFiZWxTdXBwb3J0 c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9CSkVDVF9PUEVSQVRP UjoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9B Q0w6CisJCWNhc2UgT0JKRUNUX1BFUklPRDoKIAkJY2FzZSBPQkpFQ1RfUE9MSUNZOgogCQlj YXNlIE9CSkVDVF9QVUJMSUNBVElPTl9OQU1FU1BBQ0U6CiAJCWNhc2UgT0JKRUNUX1BVQkxJ Q0FUSU9OX1JFTDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNjk5NzU4NDhk NTUuLmNkMTI4MGU2OGE1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNDQs NiArNDQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfbGFyZ2VvYmplY3QuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3Bj bGFzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9kLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19zdGF0aXN0aWNfZXh0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNw YWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmlnZ2VyLmgiCkBAIC0xNTAsNiArMTUx LDExIEBAIHR5cGVkZWYgZW51bSBBbHRlclRhYmxlUGFzcwogCUFUX1BBU1NfT0xEX0lOREVY LAkJCS8qIHJlLWFkZCBleGlzdGluZyBpbmRleGVzICovCiAJQVRfUEFTU19PTERfQ09OU1RS LAkJCS8qIHJlLWFkZCBleGlzdGluZyBjb25zdHJhaW50cyAqLwogCS8qIFdlIGNvdWxkIHN1 cHBvcnQgYSBSRU5BTUUgQ09MVU1OIHBhc3MgaGVyZSwgYnV0IG5vdCBjdXJyZW50bHkgdXNl ZCAqLworCS8qCisJICogV2UgbXVzdCBhZGQgUEVSSU9EcyBhZnRlciBjb2x1bW5zLCBpbiBj YXNlIHRoZXkgcmVmZXJlbmNlIGEgbmV3bHktYWRkZWQgY29sdW1uLAorCSAqIGFuZCBiZWZv cmUgY29uc3RyYWludHMsIGluIGNhc2UgYSBuZXdseS1hZGRlZCBQSy9GSyByZWZlcmVuY2Vz IHRoZW0uCisJICovCisJQVRfUEFTU19BRERfUEVSSU9ELAkJCS8qIEFERCBQRVJJT0QgKi8K IAlBVF9QQVNTX0FERF9DT05TVFIsCQkJLyogQUREIGNvbnN0cmFpbnRzIChpbml0aWFsIGV4 YW1pbmF0aW9uKSAqLwogCUFUX1BBU1NfQ09MX0FUVFJTLAkJCS8qIHNldCBjb2x1bW4gYXR0 cmlidXRlcywgZWcgTk9UIE5VTEwgKi8KIAlBVF9QQVNTX0FERF9JTkRFWENPTlNUUiwJLyog QUREIGluZGV4LWJhc2VkIGNvbnN0cmFpbnRzICovCkBAIC0zNTcsNiArMzYzLDcgQEAgc3Rh dGljIHZvaWQgUmFuZ2VWYXJDYWxsYmFja0ZvclRydW5jYXRlKGNvbnN0IFJhbmdlVmFyICpy ZWxhdGlvbiwKIHN0YXRpYyBMaXN0ICpNZXJnZUF0dHJpYnV0ZXMoTGlzdCAqY29sdW1ucywg Y29uc3QgTGlzdCAqc3VwZXJzLCBjaGFyIHJlbHBlcnNpc3RlbmNlLAogCQkJCQkJCSBib29s IGlzX3BhcnRpdGlvbiwgTGlzdCAqKnN1cGNvbnN0ciwKIAkJCQkJCQkgTGlzdCAqKnN1cG5v dG51bGxzKTsKK3N0YXRpYyBMaXN0ICpNZXJnZVBlcmlvZHMoY2hhciAqcmVsbmFtZSwgTGlz dCAqcGVyaW9kcywgTGlzdCAqdGFibGVFbHRzLCBMaXN0ICpzdXBlcnMpOwogc3RhdGljIExp c3QgKk1lcmdlQ2hlY2tDb25zdHJhaW50KExpc3QgKmNvbnN0cmFpbnRzLCBjb25zdCBjaGFy ICpuYW1lLCBOb2RlICpleHByKTsKIHN0YXRpYyB2b2lkIE1lcmdlQ2hpbGRBdHRyaWJ1dGUo TGlzdCAqaW5oX2NvbHVtbnMsIGludCBleGlzdF9hdHRubywgaW50IG5ld2NvbF9hdHRubywg Y29uc3QgQ29sdW1uRGVmICpuZXdkZWYpOwogc3RhdGljIENvbHVtbkRlZiAqTWVyZ2VJbmhl cml0ZWRBdHRyaWJ1dGUoTGlzdCAqaW5oX2NvbHVtbnMsIGludCBleGlzdF9hdHRubywgY29u c3QgQ29sdW1uRGVmICpuZXdkZWYpOwpAQCAtNDM3LDYgKzQ0NCw4IEBAIHN0YXRpYyBPYmpl Y3RBZGRyZXNzIEFURXhlY0FkZENvbHVtbihMaXN0ICoqd3F1ZXVlLCBBbHRlcmVkVGFibGVJ bmZvICp0YWIsCiAJCQkJCQkJCQkgQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0ICpjb250ZXh0 KTsKIHN0YXRpYyBib29sIGNoZWNrX2Zvcl9jb2x1bW5fbmFtZV9jb2xsaXNpb24oUmVsYXRp b24gcmVsLCBjb25zdCBjaGFyICpjb2xuYW1lLAogCQkJCQkJCQkJCQlib29sIGlmX25vdF9l eGlzdHMpOworc3RhdGljIGJvb2wgY2hlY2tfZm9yX3BlcmlvZF9uYW1lX2NvbGxpc2lvbihS ZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcm5hbWUsCisJCQkJCQkJCQkJCWJvb2wgY29s ZXhpc3RzLCBib29sIGlmX25vdF9leGlzdHMpOwogc3RhdGljIHZvaWQgYWRkX2NvbHVtbl9k YXRhdHlwZV9kZXBlbmRlbmN5KE9pZCByZWxpZCwgaW50MzIgYXR0bnVtLCBPaWQgdHlwaWQp Owogc3RhdGljIHZvaWQgYWRkX2NvbHVtbl9jb2xsYXRpb25fZGVwZW5kZW5jeShPaWQgcmVs aWQsIGludDMyIGF0dG51bSwgT2lkIGNvbGxpZCk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBB VEV4ZWNEcm9wTm90TnVsbChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUsIGJv b2wgcmVjdXJzZSwKQEAgLTQ1Niw2ICs0NjUsMTIgQEAgc3RhdGljIE9iamVjdEFkZHJlc3Mg QVRFeGVjQ29sdW1uRGVmYXVsdChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKmNvbE5hbWUs CiAJCQkJCQkJCQkJIE5vZGUgKm5ld0RlZmF1bHQsIExPQ0tNT0RFIGxvY2ttb2RlKTsKIHN0 YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0Nvb2tlZENvbHVtbkRlZmF1bHQoUmVsYXRpb24g cmVsLCBBdHRyTnVtYmVyIGF0dG51bSwKIAkJCQkJCQkJCQkJICAgTm9kZSAqbmV3RGVmYXVs dCk7CitzdGF0aWMgT2JqZWN0QWRkcmVzcyBBVEV4ZWNBZGRQZXJpb2QoUmVsYXRpb24gcmVs LCBQZXJpb2REZWYgKnBlcmlvZCwKKwkJCQkJCQkJCSBBbHRlclRhYmxlVXRpbGl0eUNvbnRl eHQgKmNvbnRleHQpOworc3RhdGljIHZvaWQgQVRFeGVjRHJvcFBlcmlvZChSZWxhdGlvbiBy ZWwsIGNvbnN0IGNoYXIgKnBlcmlvZE5hbWUsCisJCQkJCQkJIERyb3BCZWhhdmlvciBiZWhh dmlvciwKKwkJCQkJCQkgYm9vbCByZWN1cnNlLCBib29sIHJlY3Vyc2luZywKKwkJCQkJCQkg Ym9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIEFURXhlY0FkZElkZW50 aXR5KFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sTmFtZSwKIAkJCQkJCQkJCSAgIE5v ZGUgKmRlZiwgTE9DS01PREUgbG9ja21vZGUsIGJvb2wgcmVjdXJzZSwgYm9vbCByZWN1cnNp bmcpOwogc3RhdGljIE9iamVjdEFkZHJlc3MgQVRFeGVjU2V0SWRlbnRpdHkoUmVsYXRpb24g cmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLApAQCAtNjYzLDYgKzY3OCwxMCBAQCBzdGF0aWMg TGlzdCAqR2V0UGFyZW50ZWRGb3JlaWduS2V5UmVmcyhSZWxhdGlvbiBwYXJ0aXRpb24pOwog c3RhdGljIHZvaWQgQVREZXRhY2hDaGVja05vRm9yZWlnbktleVJlZnMoUmVsYXRpb24gcGFy dGl0aW9uKTsKIHN0YXRpYyBjaGFyIEdldEF0dHJpYnV0ZUNvbXByZXNzaW9uKE9pZCBhdHR0 eXBpZCwgY29uc3QgY2hhciAqY29tcHJlc3Npb24pOwogc3RhdGljIGNoYXIgR2V0QXR0cmli dXRlU3RvcmFnZShPaWQgYXR0dHlwaWQsIGNvbnN0IGNoYXIgKnN0b3JhZ2Vtb2RlKTsKK3N0 YXRpYyB2b2lkIEFkZFJlbGF0aW9uTmV3UGVyaW9kKFJlbGF0aW9uIHJlbCwgUGVyaW9kRGVm ICpwZXJpb2QpOworc3RhdGljIHZvaWQgVmFsaWRhdGVQZXJpb2QoUmVsYXRpb24gcmVsLCBQ ZXJpb2REZWYgKnBlcmlvZCk7CitzdGF0aWMgQ29uc3RyYWludCAqbWFrZV9jb25zdHJhaW50 X2Zvcl9wZXJpb2QoUmVsYXRpb24gcmVsLCBQZXJpb2REZWYgKnBlcmlvZCk7CitzdGF0aWMg Q29sdW1uRGVmICptYWtlX3JhbmdlX2NvbHVtbl9mb3JfcGVyaW9kKFBlcmlvZERlZiAqcGVy aW9kKTsKIAogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC04ODcsNiArOTA2LDc5IEBAIERlZmluZVJl bGF0aW9uKENyZWF0ZVN0bXQgKnN0bXQsIGNoYXIgcmVsa2luZCwgT2lkIG93bmVySWQsCiAJ CQkJCQlzdG10LT5wYXJ0Ym91bmQgIT0gTlVMTCwKIAkJCQkJCSZvbGRfY29uc3RyYWludHMs ICZvbGRfbm90bnVsbHMpOwogCisJLyoKKwkgKiBVc2luZyB0aGUgY29sdW1uIGxpc3QgKGlu Y2x1ZGluZyBpbmhlcml0ZWQgY29sdW1ucyksCisJICogZmluZCB0aGUgc3RhcnQvZW5kIGNv bHVtbnMgZm9yIGVhY2ggcGVyaW9kLgorCSAqIFBFUklPRHMgc2hvdWxkIGJlIGluaGVyaXRl ZCB0b28gKGJ1dCBhcmVuJ3QgeWV0KS4KKwkgKi8KKwlzdG10LT5wZXJpb2RzID0gTWVyZ2VQ ZXJpb2RzKHJlbG5hbWUsIHN0bXQtPnBlcmlvZHMsIHN0bXQtPnRhYmxlRWx0cywgaW5oZXJp dE9pZHMpOworCisJLyoKKwkgKiBGb3IgZWFjaCBQRVJJT0Qgd2UgbmVlZCBhIEdFTkVSQVRF RCBjb2x1bW4uCisJICogVXN1YWxseSB3ZSBtdXN0IGNyZWF0ZSB0aGlzLCBzbyB3ZSBhZGQg aXQgdG8gdGFibGVFbHRzLgorCSAqIElmIHRoZSB1c2VyIHNheXMgdGhlIGNvbHVtbiBhbHJl YWR5IGV4aXN0cywKKwkgKiBtYWtlIHN1cmUgaXQgaXMgc2Vuc2libGUuCisJICogVGhlc2Ug Y29sdW1ucyBhcmUgbm90IGluaGVyaXRlZCwKKwkgKiBzbyB3ZSBkb24ndCB3b3JyeSBhYm91 dCBjb25mbGljdHMgaW4gdGFibGVFbHRzLgorCSAqCisJICogV2UgYWxsb3cgdGhpcyBjb2xl eGlzdHMgb3B0aW9uIHRvIHN1cHBvcnQgcGdfdXBncmFkZSwKKwkgKiBzbyB3ZSBoYXZlIG1v cmUgY29udHJvbCBvdmVyIHRoZSBHRU5FUkFURUQgY29sdW1uCisJICogKHdob3NlIGF0dG51 bSBtdXN0IG1hdGNoIHRoZSBvbGQgdmFsdWUpLgorCSAqLworCWZvcmVhY2gobGlzdHB0ciwg c3RtdC0+cGVyaW9kcykKKwl7CisJCVBlcmlvZERlZiAqcGVyaW9kID0gKFBlcmlvZERlZiAq KSBsZmlyc3QobGlzdHB0cik7CisKKwkJaWYgKHBlcmlvZC0+Y29sZXhpc3RzKQorCQl7CisJ CQlMaXN0Q2VsbCAqY2VsbDsKKwkJCWJvb2wgZm91bmQgPSBmYWxzZTsKKworCQkJZm9yZWFj aChjZWxsLCBzdG10LT50YWJsZUVsdHMpCisJCQl7CisJCQkJQ29sdW1uRGVmICAqY29sRGVm ID0gbGZpcnN0KGNlbGwpOworCisJCQkJaWYgKHN0cmNtcChwZXJpb2QtPnBlcmlvZG5hbWUs IGNvbERlZi0+Y29sbmFtZSkgPT0gMCkKKwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIExvdHMg dG8gY2hlY2sgaGVyZToKKwkJCQkJICogSXQgbXVzdCBiZSBHRU5FUkFURUQgQUxXQVlTLAor CQkJCQkgKiBpdCBtdXN0IGhhdmUgdGhlIHJpZ2h0IGV4cHJlc3Npb24sCisJCQkJCSAqIGl0 IG11c3QgYmUgdGhlIHJpZ2h0IHR5cGUsCisJCQkJCSAqIGl0IG11c3QgYmUgTk9UIE5VTEws CisJCQkJCSAqIGl0IG11c3Qgbm90IGJlIGluaGVyaXRlZC4KKwkJCQkJICovCisJCQkJCWlm IChjb2xEZWYtPmdlbmVyYXRlZCA9PSAnXDAnKQorCQkJCQkJZXJlcG9ydChFUlJPUiwgKGVy cm1zZygiUGVyaW9kICVzIHVzZXMgYSBub24tZ2VuZXJhdGVkIGNvbHVtbiIsIHBlcmlvZC0+ cGVyaW9kbmFtZSkpKTsKKworCQkJCQlpZiAoY29sRGVmLT5nZW5lcmF0ZWQgIT0gQVRUUklC VVRFX0dFTkVSQVRFRF9TVE9SRUQpCisJCQkJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQ ZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBub3QgU1RPUkVEIiwg cGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCQkJCS8vIFRPRE86IGNoZWNrIHRoZSBHRU5F UkFURUQgZXhwcmVzc2lvbiBhbHNvLgorCisJCQkJCWlmICghY29sRGVmLT5pc19ub3RfbnVs bCAmJiAhSXNCaW5hcnlVcGdyYWRlKQorCQkJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygi UGVyaW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgYWxsb3dzIG51bGxzIiwg cGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCQkJCWlmIChwZXJpb2QtPnJuZ3R5cGlkICE9 IHR5cGVuYW1lVHlwZUlkKE5VTEwsIGNvbERlZi0+dHlwZU5hbWUpKQorCQkJCQkJZXJlcG9y dChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHdp dGggdGhlIHdyb25nIHR5cGUiLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJCQkJaWYg KCFjb2xEZWYtPmlzX2xvY2FsKQorCQkJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVy aW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMgaW5oZXJpdGVkIiwgcGVy aW9kLT5wZXJpb2RuYW1lKSkpOworCisJCQkJCWZvdW5kID0gdHJ1ZTsKKwkJCQl9CisJCQl9 CisKKwkJCWlmICghZm91bmQpCisJCQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiTm8gY29s dW1uIGZvdW5kIHdpdGggbmFtZSAlcyIsIHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKwkJfQor CQllbHNlCisJCXsKKwkJCUNvbHVtbkRlZiAqY29sID0gbWFrZV9yYW5nZV9jb2x1bW5fZm9y X3BlcmlvZChwZXJpb2QpOworCQkJc3RtdC0+dGFibGVFbHRzID0gbGFwcGVuZChzdG10LT50 YWJsZUVsdHMsIGNvbCk7CisJCX0KKwl9CisKIAkvKgogCSAqIENyZWF0ZSBhIHR1cGxlIGRl c2NyaXB0b3IgZnJvbSB0aGUgcmVsYXRpb24gc2NoZW1hLiAgTm90ZSB0aGF0IHRoaXMKIAkg KiBkZWFscyB3aXRoIGNvbHVtbiBuYW1lcywgdHlwZXMsIGFuZCBpbi1kZXNjcmlwdG9yIE5P VCBOVUxMIGZsYWdzLCBidXQKQEAgLTEyNzIsNiArMTM2NCwyMSBAQCBEZWZpbmVSZWxhdGlv bihDcmVhdGVTdG10ICpzdG10LCBjaGFyIHJlbGtpbmQsIE9pZCBvd25lcklkLAogCWZvcmVh Y2gobGlzdHB0ciwgbm5jb2xzKQogCQlzZXRfYXR0bm90bnVsbChOVUxMLCByZWwsIGxmaXJz dF9pbnQobGlzdHB0ciksIGZhbHNlLCBOb0xvY2spOwogCisJLyoKKwkgKiBDcmVhdGUgcGVy aW9kcyBmb3IgdGhlIHRhYmxlLiBUaGlzIG11c3QgY29tZSBhZnRlciB3ZSBjcmVhdGUgY29s dW1ucworCSAqIGFuZCBiZWZvcmUgd2UgY3JlYXRlIGluZGV4IGNvbnN0cmFpbnRzLiBJdCB3 aWxsIGF1dG9tYXRpY2FsbHkgY3JlYXRlCisJICogYSBDSEVDSyBjb25zdHJhaW50IGZvciB0 aGUgcGVyaW9kLgorCSAqLworCWZvcmVhY2gobGlzdHB0ciwgc3RtdC0+cGVyaW9kcykKKwl7 CisJCVBlcmlvZERlZiAqcGVyaW9kID0gKFBlcmlvZERlZiAqKSBsZmlyc3QobGlzdHB0cik7 CisKKwkJLyogRG9uJ3QgdXBkYXRlIHRoZSBjb3VudCBvZiBjaGVjayBjb25zdHJhaW50cyB0 d2ljZSAqLworCQlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJCUFkZFJlbGF0aW9u TmV3UGVyaW9kKHJlbCwgcGVyaW9kKTsKKwl9CisKIAlPYmplY3RBZGRyZXNzU2V0KGFkZHJl c3MsIFJlbGF0aW9uUmVsYXRpb25JZCwgcmVsYXRpb25JZCk7CiAKIAkvKgpAQCAtMTM4OCw2 ICsxNDk1LDMwOSBAQCBCdWlsZERlc2NGb3JSZWxhdGlvbihjb25zdCBMaXN0ICpjb2x1bW5z KQogCXJldHVybiBkZXNjOwogfQogCisvKgorICogbWFrZV9jb25zdHJhaW50X2Zvcl9wZXJp b2QKKyAqCisgKiBCdWlsZHMgYSBDSEVDSyBDb25zdHJhaW50IHRvIGVuc3VyZSBzdGFydCA8 IGVuZC4KKyAqIFJldHVybnMgdGhlIENIRUNLIENvbnN0cmFpbnQuCisgKiBBbHNvIGZpbGxz IGluIHBlcmlvZC0+Y29uc3RyYWludG5hbWUgaWYgbmVlZGVkLgorICovCitzdGF0aWMgQ29u c3RyYWludCAqCittYWtlX2NvbnN0cmFpbnRfZm9yX3BlcmlvZChSZWxhdGlvbiByZWwsIFBl cmlvZERlZiAqcGVyaW9kKQoreworCUNvbHVtblJlZiAgKnNjb2wsICplY29sOworCUNvbnN0 cmFpbnQgKmNvbnN0cjsKKwlUeXBlQ2FjaGVFbnRyeSAqdHlwZTsKKworCWlmIChwZXJpb2Qt PmNvbnN0cmFpbnRuYW1lID09IE5VTEwpCisJCXBlcmlvZC0+Y29uc3RyYWludG5hbWUgPSBD aG9vc2VDb25zdHJhaW50TmFtZShSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLAorCQkJ CQkJCQkJCQkJCSAgcGVyaW9kLT5wZXJpb2RuYW1lLAorCQkJCQkJCQkJCQkJCSAgImNoZWNr IiwKKwkJCQkJCQkJCQkJCQkgIFJlbGF0aW9uR2V0TmFtZXNwYWNlKHJlbCksCisJCQkJCQkJ CQkJCQkJICBOSUwpOworCXNjb2wgPSBtYWtlTm9kZShDb2x1bW5SZWYpOworCXNjb2wtPmZp ZWxkcyA9IGxpc3RfbWFrZTEobWFrZVN0cmluZyhwc3RyZHVwKHBlcmlvZC0+c3RhcnRjb2xu YW1lKSkpOworCXNjb2wtPmxvY2F0aW9uID0gMDsKKworCWVjb2wgPSBtYWtlTm9kZShDb2x1 bW5SZWYpOworCWVjb2wtPmZpZWxkcyA9IGxpc3RfbWFrZTEobWFrZVN0cmluZyhwc3RyZHVw KHBlcmlvZC0+ZW5kY29sbmFtZSkpKTsKKwllY29sLT5sb2NhdGlvbiA9IDA7CisKKwl0eXBl ID0gbG9va3VwX3R5cGVfY2FjaGUocGVyaW9kLT5jb2x0eXBpZCwgVFlQRUNBQ0hFX0xUX09Q Uik7CisJaWYgKHR5cGUtPmx0X29wciA9PSBJbnZhbGlkT2lkKQorCQllcmVwb3J0KEVSUk9S LAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkg ZXJybXNnKCJjb2x1bW4gXCIlc1wiIGNhbm5vdCBiZSB1c2VkIGluIGEgUEVSSU9EIGJlY2F1 c2UgaXRzIHR5cGUgJXMgaGFzIG5vIGxlc3MgdGhhbiBvcGVyYXRvciIsCisJCQkJCQlwZXJp b2QtPnN0YXJ0Y29sbmFtZSwgZm9ybWF0X3R5cGVfYmUocGVyaW9kLT5jb2x0eXBpZCkpKSk7 CisKKwljb25zdHIgPSBtYWtlTm9kZShDb25zdHJhaW50KTsKKwljb25zdHItPmNvbnR5cGUg PSBDT05TVFJfQ0hFQ0s7CisJY29uc3RyLT5jb25uYW1lID0gcGVyaW9kLT5jb25zdHJhaW50 bmFtZTsKKwljb25zdHItPmRlZmVycmFibGUgPSBmYWxzZTsKKwljb25zdHItPmluaXRkZWZl cnJlZCA9IGZhbHNlOworCWNvbnN0ci0+bG9jYXRpb24gPSAtMTsKKwljb25zdHItPmlzX25v X2luaGVyaXQgPSBmYWxzZTsKKwljb25zdHItPnJhd19leHByID0gKE5vZGUgKikgbWFrZVNp bXBsZUFfRXhwcihBRVhQUl9PUCwKKwkJCQkJCQkJCQkJCSBnZXRfb3BuYW1lKHR5cGUtPmx0 X29wciksCisJCQkJCQkJCQkJCQkgKE5vZGUgKikgc2NvbCwKKwkJCQkJCQkJCQkJCSAoTm9k ZSAqKSBlY29sLAorCQkJCQkJCQkJCQkJIDApOworCWNvbnN0ci0+Y29va2VkX2V4cHIgPSBO VUxMOworCWNvbnN0ci0+c2tpcF92YWxpZGF0aW9uID0gZmFsc2U7CisJY29uc3RyLT5pbml0 aWFsbHlfdmFsaWQgPSB0cnVlOworCisJcmV0dXJuIGNvbnN0cjsKK30KKworLyoKKyAqIG1h a2VfcmFuZ2VfY29sdW1uX2Zvcl9wZXJpb2QKKyAqCisgKiBCdWlsZHMgYSBHRU5FUkFURUQg QUxXQVlTIHJhbmdlIGNvbHVtbiBiYXNlZCBvbiB0aGUgUEVSSU9ECisgKiBzdGFydC9lbmQg Y29sdW1ucy4gUmV0dXJucyB0aGUgQ29sdW1uRGVmLgorICovCitDb2x1bW5EZWYgKgorbWFr ZV9yYW5nZV9jb2x1bW5fZm9yX3BlcmlvZChQZXJpb2REZWYgKnBlcmlvZCkKK3sKKwljaGFy ICpyYW5nZV90eXBlX25hbWVzcGFjZTsKKwljaGFyICpyYW5nZV90eXBlX25hbWU7CisJQ29s dW1uRGVmICpjb2wgPSBtYWtlTm9kZShDb2x1bW5EZWYpOworCUNvbHVtblJlZiAqc3RhcnR2 YXIsICplbmR2YXI7CisJRXhwciAqcmFuZ2VDb25zdHJ1Y3RvcjsKKworCWlmICghZ2V0X3R5 cG5hbWVfYW5kX25hbWVzcGFjZShwZXJpb2QtPnJuZ3R5cGlkLCAmcmFuZ2VfdHlwZV9uYW1l LCAmcmFuZ2VfdHlwZV9uYW1lc3BhY2UpKQorCQllbG9nKEVSUk9SLCAibWlzc2luZyByYW5n ZSB0eXBlICVkIiwgcGVyaW9kLT5ybmd0eXBpZCk7CisKKwlzdGFydHZhciA9IG1ha2VOb2Rl KENvbHVtblJlZik7CisJc3RhcnR2YXItPmZpZWxkcyA9IGxpc3RfbWFrZTEobWFrZVN0cmlu Zyhwc3RyZHVwKHBlcmlvZC0+c3RhcnRjb2xuYW1lKSkpOworCWVuZHZhciA9IG1ha2VOb2Rl KENvbHVtblJlZik7CisJZW5kdmFyLT5maWVsZHMgPSBsaXN0X21ha2UxKG1ha2VTdHJpbmco cHN0cmR1cChwZXJpb2QtPmVuZGNvbG5hbWUpKSk7CisJcmFuZ2VDb25zdHJ1Y3RvciA9IChF eHByICopIG1ha2VGdW5jQ2FsbCgKKwkJCWxpc3RfbWFrZTIobWFrZVN0cmluZyhyYW5nZV90 eXBlX25hbWVzcGFjZSksIG1ha2VTdHJpbmcocmFuZ2VfdHlwZV9uYW1lKSksCisJCQlsaXN0 X21ha2UyKHN0YXJ0dmFyLCBlbmR2YXIpLAorCQkJQ09FUkNFX0VYUExJQ0lUX0NBTEwsCisJ CQlwZXJpb2QtPmxvY2F0aW9uKTsKKworCWNvbC0+Y29sbmFtZSA9IHBzdHJkdXAocGVyaW9k LT5wZXJpb2RuYW1lKTsKKwljb2wtPnR5cGVOYW1lID0gbWFrZVR5cGVOYW1lKHJhbmdlX3R5 cGVfbmFtZSk7CisJY29sLT5jb21wcmVzc2lvbiA9IE5VTEw7CisJY29sLT5pbmhjb3VudCA9 IDA7CisJY29sLT5pc19sb2NhbCA9IHRydWU7CisJY29sLT5pc19ub3RfbnVsbCA9IHRydWU7 CisJY29sLT5pc19mcm9tX3R5cGUgPSBmYWxzZTsKKwljb2wtPnN0b3JhZ2UgPSAwOworCWNv bC0+c3RvcmFnZV9uYW1lID0gTlVMTDsKKwljb2wtPnJhd19kZWZhdWx0ID0gKE5vZGUgKikg cmFuZ2VDb25zdHJ1Y3RvcjsKKwljb2wtPmNvb2tlZF9kZWZhdWx0ID0gTlVMTDsKKwljb2wt PmlkZW50aXR5ID0gMDsKKwljb2wtPmdlbmVyYXRlZCA9IEFUVFJJQlVURV9HRU5FUkFURURf U1RPUkVEOworCWNvbC0+Y29sbENsYXVzZSA9IE5VTEw7CisJY29sLT5jb2xsT2lkID0gSW52 YWxpZE9pZDsKKwljb2wtPmZkd29wdGlvbnMgPSBOSUw7CisJY29sLT5sb2NhdGlvbiA9IHBl cmlvZC0+bG9jYXRpb247CisKKwlyZXR1cm4gY29sOworfQorCisvKgorICogVmFsaWRhdGVQ ZXJpb2QKKyAqCisgKiBMb29rIHVwIHRoZSBhdHRyaWJ1dGVzIHVzZWQgYnkgdGhlIFBFUklP RCwKKyAqIG1ha2Ugc3VyZSB0aGV5IGV4aXN0LCBhcmUgbm90IHN5c3RlbSBjb2x1bW5zLAor ICogYW5kIGhhdmUgdGhlIHNhbWUgdHlwZSBhbmQgY29sbGF0aW9uLgorICoKKyAqIFlvdSBt dXN0IGhhdmUgYSBSb3dFeGNsdXNpdmVMb2NrIG9uIHBnX2F0dHJpYnV0ZQorICogYmVmb3Jl IGNhbGxpbmcgdGhpcyBmdW5jdGlvbi4KKyAqCisgKiBBZGQgb3VyIGZpbmRpbmdzIHRvIHRo ZXNlIFBlcmlvZERlZiBmaWVsZHM6CisgKgorICogY29sdHlwaWQgLSB0aGUgdHlwZSBvZiBQ RVJJT0QgY29sdW1ucy4KKyAqIHN0YXJ0YXR0bnVtIC0gdGhlIGF0dG51bSBvZiB0aGUgc3Rh cnQgY29sdW1uLgorICogZW5kYXR0bnVtIC0gdGhlIGF0dG51bSBvZiB0aGUgZW5kIGNvbHVt bi4KKyAqIHJuZ3R5cGlkIC0gdGhlIHJhbmdlIHR5cGUgdG8gdXNlLgorICogcm5nYXR0bnVt IC0gdGhlIGF0dG51bSBvZiBhIHByZS1leGlzdGluZyByYW5nZSBjb2x1bW4sIG9yIEludmFs aWQuCisgKi8KK3N0YXRpYyB2b2lkCitWYWxpZGF0ZVBlcmlvZChSZWxhdGlvbiByZWwsIFBl cmlvZERlZiAqcGVyaW9kKQoreworCUhlYXBUdXBsZSBzdGFydHR1cGxlOworCUhlYXBUdXBs ZSBlbmR0dXBsZTsKKwlGb3JtX3BnX2F0dHJpYnV0ZQlhdHR0dXBsZTsKKwlPaWQJYXR0Y29s bGF0aW9uOworCisJLyogRmluZCB0aGUgc3RhcnQgY29sdW1uICovCisJc3RhcnR0dXBsZSA9 IFNlYXJjaFN5c0NhY2hlQ29weUF0dE5hbWUoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBwZXJp b2QtPnN0YXJ0Y29sbmFtZSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHN0YXJ0dHVwbGUp KQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NP TFVNTiksCisJCQkJIGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIg ZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJcGVyaW9kLT5zdGFydGNvbG5hbWUsIFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJYXR0dHVwbGUgPSAoRm9ybV9wZ19hdHRyaWJ1 dGUpIEdFVFNUUlVDVChzdGFydHR1cGxlKTsKKwlwZXJpb2QtPmNvbHR5cGlkID0gYXR0dHVw bGUtPmF0dHR5cGlkOworCWF0dGNvbGxhdGlvbiA9IGF0dHR1cGxlLT5hdHRjb2xsYXRpb247 CisJcGVyaW9kLT5zdGFydGF0dG51bSA9IGF0dHR1cGxlLT5hdHRudW07CisKKwkvKiBNYWtl IHN1cmUgaXQncyBub3QgYSBzeXN0ZW0gY29sdW1uICovCisJaWYgKHBlcmlvZC0+c3RhcnRh dHRudW0gPD0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lO VkFMSURfT0JKRUNUX0RFRklOSVRJT04pLAorCQkJCSBlcnJtc2coImNhbm5vdCB1c2Ugc3lz dGVtIGNvbHVtbiBcIiVzXCIgaW4gcGVyaW9kIiwKKwkJCQkJCXBlcmlvZC0+c3RhcnRjb2xu YW1lKSkpOworCisJLyogRmluZCB0aGUgZW5kIGNvbHVtbiAqLworCWVuZHR1cGxlID0gU2Vh cmNoU3lzQ2FjaGVDb3B5QXR0TmFtZShSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBlcmlvZC0+ ZW5kY29sbmFtZSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKGVuZHR1cGxlKSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9DT0xVTU4pLAor CQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wiIGRvZXMgbm90 IGV4aXN0IiwKKwkJCQkJCXBlcmlvZC0+ZW5kY29sbmFtZSwgUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsKSkpKTsKKwlhdHR0dXBsZSA9IChGb3JtX3BnX2F0dHJpYnV0ZSkgR0VUU1RS VUNUKGVuZHR1cGxlKTsKKwlwZXJpb2QtPmVuZGF0dG51bSA9IGF0dHR1cGxlLT5hdHRudW07 CisKKwkvKiBNYWtlIHN1cmUgaXQncyBub3QgYSBzeXN0ZW0gY29sdW1uICovCisJaWYgKHBl cmlvZC0+ZW5kYXR0bnVtIDw9IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUo RVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJCQkgZXJybXNnKCJjYW5u b3QgdXNlIHN5c3RlbSBjb2x1bW4gXCIlc1wiIGluIHBlcmlvZCIsCisJCQkJCQlwZXJpb2Qt PmVuZGNvbG5hbWUpKSk7CisKKwkvKiBCb3RoIGNvbHVtbnMgbXVzdCBiZSBvZiBzYW1lIHR5 cGUgKi8KKwlpZiAocGVyaW9kLT5jb2x0eXBpZCAhPSBhdHR0dXBsZS0+YXR0dHlwaWQpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRD SCksCisJCQkJIGVycm1zZygic3RhcnQgYW5kIGVuZCBjb2x1bW5zIG9mIHBlcmlvZCBtdXN0 IGJlIG9mIHNhbWUgdHlwZSIpKSk7CisKKwkvKiBCb3RoIGNvbHVtbnMgbXVzdCBoYXZlIHRo ZSBzYW1lIGNvbGxhdGlvbiAqLworCWlmIChhdHRjb2xsYXRpb24gIT0gYXR0dHVwbGUtPmF0 dGNvbGxhdGlvbikKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0NP TExBVElPTl9NSVNNQVRDSCksCisJCQkJIGVycm1zZygic3RhcnQgYW5kIGVuZCBjb2x1bW5z IG9mIHBlcmlvZCBtdXN0IGhhdmUgc2FtZSBjb2xsYXRpb24iKSkpOworCisJLyogR2V0IHRo ZSByYW5nZSB0eXBlIGJhc2VkIG9uIHRoZSBzdGFydC9lbmQgY29scyBvciB0aGUgdXNlcidz IGNob2ljZSAqLworCXBlcmlvZC0+cm5ndHlwaWQgPSBjaG9vc2VfcmFuZ2V0eXBlX2Zvcl9w ZXJpb2QocGVyaW9kKTsKKworCS8qIElmIHRoZSBHRU5FUkFURUQgY29sdW1ucyBzaG91bGQg YWxyZWFkeSBleGlzdCwgbWFrZSBzdXJlIGl0IGlzIHNlbnNpYmxlLiAqLworCWlmIChwZXJp b2QtPmNvbGV4aXN0cykKKwl7CisJCUhlYXBUdXBsZSBybmd0dXBsZSA9IFNlYXJjaFN5c0Nh Y2hlQ29weUF0dE5hbWUoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBwZXJpb2QtPnBlcmlvZG5h bWUpOworCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQocm5ndHVwbGUpKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkJ IGVycm1zZygiY29sdW1uIFwiJXNcIiBvZiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhp c3QiLAorCQkJCQkJCXBlcmlvZC0+cGVyaW9kbmFtZSwgUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUocmVsKSkpKTsKKwkJYXR0dHVwbGUgPSAoRm9ybV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVD VChybmd0dXBsZSk7CisKKwkJLyoKKwkJICogTG90cyB0byBjaGVjayBoZXJlOgorCQkgKiBJ dCBtdXN0IGJlIEdFTkVSQVRFRCBBTFdBWVMsCisJCSAqIGl0IG11c3QgaGF2ZSB0aGUgcmln aHQgZXhwcmVzc2lvbiwKKwkJICogaXQgbXVzdCBiZSB0aGUgcmlnaHQgdHlwZSwKKwkJICog aXQgbXVzdCBiZSBOT1QgTlVMTCwKKwkJICogaXQgbXVzdCBub3QgYmUgaW5oZXJpdGVkLgor CQkgKi8KKwkJaWYgKGF0dHR1cGxlLT5hdHRnZW5lcmF0ZWQgPT0gJ1wwJykKKwkJCWVyZXBv cnQoRVJST1IsIChlcnJtc2coIlBlcmlvZCAlcyB1c2VzIGEgbm9uLWdlbmVyYXRlZCBjb2x1 bW4iLCBwZXJpb2QtPnBlcmlvZG5hbWUpKSk7CisKKwkJaWYgKGF0dHR1cGxlLT5hdHRnZW5l cmF0ZWQgIT0gQVRUUklCVVRFX0dFTkVSQVRFRF9TVE9SRUQpCisJCQllcmVwb3J0KEVSUk9S LCAoZXJybXNnKCJQZXJpb2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gdGhhdCBpcyBu b3QgU1RPUkVEIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCS8vIFRPRE86IGNoZWNr IHRoZSBHRU5FUkFURUQgZXhwcmVzc2lvbiBhbHNvLgorCisJCWlmICghYXR0dHVwbGUtPmF0 dG5vdG51bGwgJiYgIUlzQmluYXJ5VXBncmFkZSkKKwkJCWVyZXBvcnQoRVJST1IsIChlcnJt c2coIlBlcmlvZCAlcyB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGFsbG93cyBudWxs cyIsIHBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQlpZiAocGVyaW9kLT5ybmd0eXBpZCAh PSBhdHR0dXBsZS0+YXR0dHlwaWQpCisJCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJQZXJp b2QgJXMgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gd2l0aCB0aGUgd3JvbmcgdHlwZSIsIHBl cmlvZC0+cGVyaW9kbmFtZSkpKTsKKworCQlpZiAoIWF0dHR1cGxlLT5hdHRpc2xvY2FsKQor CQkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiUGVyaW9kICVzIHVzZXMgYSBnZW5lcmF0ZWQg Y29sdW1uIHRoYXQgaXMgaW5oZXJpdGVkIiwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJ CXBlcmlvZC0+cm5nYXR0bnVtID0gYXR0dHVwbGUtPmF0dG51bTsKKworCQloZWFwX2ZyZWV0 dXBsZShybmd0dXBsZSk7CisJfQorCisJaGVhcF9mcmVldHVwbGUoc3RhcnR0dXBsZSk7CisJ aGVhcF9mcmVldHVwbGUoZW5kdHVwbGUpOworfQorCisvKgorICogY2hvb3NlX3JhbmdldHlw ZV9mb3JfcGVyaW9kCisgKgorICogRmluZCBhIHN1aXRhYmxlIHJhbmdlIHR5cGUgZm9yIG9w ZXJhdGlvbnMgaW52b2x2aW5nIHRoaXMgcGVyaW9kLgorICogVXNlIHRoZSByYW5nZXR5cGUg b3B0aW9uIGlmIHByb3ZpZGVkLCBvdGhlcndpc2UgdHJ5IHRvIGZpbmQgYQorICogbm9uLWFt YmlndW91cyBleGlzdGluZyB0eXBlLgorICovCitPaWQKK2Nob29zZV9yYW5nZXR5cGVfZm9y X3BlcmlvZChQZXJpb2REZWYgKnBlcmlvZCkKK3sKKwlPaWQJcm5ndHlwaWQ7CisKKwlpZiAo cGVyaW9kLT5yYW5nZXR5cGVuYW1lICE9IE5VTEwpCisJeworCQkvKiBNYWtlIHN1cmUgaXQg ZXhpc3RzICovCisJCXJuZ3R5cGlkID0gVHlwZW5hbWVHZXRUeXBpZEV4dGVuZGVkKHBlcmlv ZC0+cmFuZ2V0eXBlbmFtZSwgZmFsc2UpOworCQlpZiAocm5ndHlwaWQgPT0gSW52YWxpZE9p ZCkKKwkJCWVyZXBvcnQoRVJST1IsIChlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVD VCksCisJCQkJCSBlcnJtc2coIlJhbmdlIHR5cGUgJXMgbm90IGZvdW5kIiwgcGVyaW9kLT5y YW5nZXR5cGVuYW1lKSkpOworCisJCS8qIE1ha2Ugc3VyZSBpdCBpcyBhIHJhbmdlIHR5cGUg Ki8KKwkJaWYgKCF0eXBlX2lzX3JhbmdlKHJuZ3R5cGlkKSkKKwkJCWVyZXBvcnQoRVJST1Is CisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJy bXNnKCJUeXBlICVzIGlzIG5vdCBhIHJhbmdlIHR5cGUiLCBwZXJpb2QtPnJhbmdldHlwZW5h bWUpKSk7CisKKwkJLyogTWFrZSBzdXJlIGl0IG1hdGNoZXMgdGhlIGNvbHVtbiB0eXBlICov CisJCWlmIChnZXRfcmFuZ2Vfc3VidHlwZShybmd0eXBpZCkgIT0gcGVyaW9kLT5jb2x0eXBp ZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVf TUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJSYW5nZSB0eXBlICVzIGRvZXMgbm90IG1hdGNo IGNvbHVtbiB0eXBlICVzIiwKKwkJCQkJCSBwZXJpb2QtPnJhbmdldHlwZW5hbWUsCisJCQkJ CQkgZm9ybWF0X3R5cGVfYmUocGVyaW9kLT5jb2x0eXBpZCkpKSk7CisJfQorCWVsc2UKKwl7 CisJCXJuZ3R5cGlkID0gZ2V0X3N1YnR5cGVfcmFuZ2UocGVyaW9kLT5jb2x0eXBpZCk7CisJ CWlmIChybmd0eXBpZCA9PSBJbnZhbGlkT2lkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygibm8g cmFuZ2UgdHlwZSBmb3IgJXMgZm91bmQgZm9yIHBlcmlvZCAlcyIsCisJCQkJCQkJZm9ybWF0 X3R5cGVfYmUocGVyaW9kLT5jb2x0eXBpZCksCisJCQkJCQkJcGVyaW9kLT5wZXJpb2RuYW1l KSwKKwkJCQkJIGVycmhpbnQoIllvdSBjYW4gZGVmaW5lIGEgY3VzdG9tIHJhbmdlIHR5cGUg d2l0aCBDUkVBVEUgVFlQRSIpKSk7CisKKwl9CisKKwlyZXR1cm4gcm5ndHlwaWQ7Cit9CisK K3N0YXRpYyB2b2lkCitBZGRSZWxhdGlvbk5ld1BlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlv ZERlZiAqcGVyaW9kKQoreworCVJlbGF0aW9uCWF0dHJlbGF0aW9uOworCU9pZAkJCWNvbm9p ZDsKKwlDb25zdHJhaW50ICpjb25zdHI7CisJTGlzdAkgICAqbmV3Y29uc3RyczsKKworCWF0 dHJlbGF0aW9uID0gdGFibGVfb3BlbihBdHRyaWJ1dGVSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKKworCS8qIEZpbmQgdGhlIEdFTkVSQVRFRCByYW5nZSBjb2x1bW4gKi8KKwor CXBlcmlvZC0+cm5nYXR0bnVtID0gZ2V0X2F0dG51bShSZWxhdGlvbkdldFJlbGlkKHJlbCks IHBlcmlvZC0+cGVyaW9kbmFtZSk7CisJaWYgKHBlcmlvZC0+cm5nYXR0bnVtID09IEludmFs aWRBdHRyTnVtYmVyKQorCQllbG9nKEVSUk9SLCAibWlzc2luZyBhdHRyaWJ1dGUgJXMiLCBw ZXJpb2QtPnBlcmlvZG5hbWUpOworCisJLyogVGhlIHBhcnNlciBoYXMgYWxyZWFkeSBmb3Vu ZCBwZXJpb2QtPmNvbHR5cGlkICovCisKKwljb25zdHIgPSBtYWtlX2NvbnN0cmFpbnRfZm9y X3BlcmlvZChyZWwsIHBlcmlvZCk7CisJbmV3Y29uc3RycyA9IEFkZFJlbGF0aW9uTmV3Q29u c3RyYWludHMocmVsLCBOSUwsIGxpc3RfbWFrZTEoY29uc3RyKSwgZmFsc2UsIHRydWUsIHRy dWUsIE5VTEwpOworCWNvbm9pZCA9ICgoQ29va2VkQ29uc3RyYWludCAqKSBsaW5pdGlhbChu ZXdjb25zdHJzKSktPmNvbm9pZDsKKworCS8qIFNhdmUgaXQgKi8KKwlTdG9yZVBlcmlvZChy ZWwsIHBlcmlvZC0+cGVyaW9kbmFtZSwgcGVyaW9kLT5zdGFydGF0dG51bSwgcGVyaW9kLT5l bmRhdHRudW0sIHBlcmlvZC0+cm5nYXR0bnVtLCBjb25vaWQpOworCisJdGFibGVfY2xvc2Uo YXR0cmVsYXRpb24sIFJvd0V4Y2x1c2l2ZUxvY2spOworfQorCiAvKgogICogRW1pdCB0aGUg cmlnaHQgZXJyb3Igb3Igd2FybmluZyBtZXNzYWdlIGZvciBhICJEUk9QIiBjb21tYW5kIGlz c3VlZCBvbiBhCiAgKiBub24tZXhpc3RlbnQgcmVsYXRpb24KQEAgLTMxMDksNiArMzUxOSwx NjggQEAgTWVyZ2VBdHRyaWJ1dGVzKExpc3QgKmNvbHVtbnMsIGNvbnN0IExpc3QgKnN1cGVy cywgY2hhciByZWxwZXJzaXN0ZW5jZSwKIH0KIAogCisvKi0tLS0tLS0tLS0KKyAqIE1lcmdl UGVyaW9kcworICoJCVJldHVybnMgbmV3IHBlcmlvZCBsaXN0IGdpdmVuIGluaXRpYWwgcGVy aW9kcyBhbmQgc3VwZXJjbGFzc2VzLgorICoKKyAqIEZvciBub3cgd2UgZG9uJ3Qgc3VwcG9y dCBpbmhlcml0ZW5jZSB3aXRoIFBFUklPRHMsCisgKiBidXQgd2UgbWlnaHQgbWFrZSBpdCB3 b3JrIGV2ZW50dWFsbHkuCisgKgorICogV2UgY2FuIG9taXQgbG90cyBvZiBjaGVja3MgaGVy ZSBhbmQgYXNzdW1lIE1lcmdlQXR0cmlidXRlcyBhbHJlYWR5IGRpZCB0aGVtLAorICogZm9y IGV4YW1wbGUgdGhhdCBjaGlsZCAmIHBhcmVudHMgYXJlIG5vdCBhIG1peCBvZiBwZXJtYW5l bnQgYW5kIHRlbXAuCisgKi8KK3N0YXRpYyBMaXN0ICoKK01lcmdlUGVyaW9kcyhjaGFyICpy ZWxuYW1lLCBMaXN0ICpwZXJpb2RzLCBMaXN0ICp0YWJsZUVsdHMsIExpc3QgKnN1cGVycykK K3sKKwlMaXN0Q2VsbCAgICplbnRyeTsKKworCS8qIElmIHdlIGhhdmUgYSBQRVJJT0QgdGhl biBzdXBlcnMgbXVzdCBiZSBlbXB0eS4gKi8KKworCWlmIChsaXN0X2xlbmd0aChwZXJpb2Rz KSA+IDAgJiYgbGlzdF9sZW5ndGgoc3VwZXJzKSA+IDApCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBlcnJt c2coIkluaGVyaXRpbmcgaXMgbm90IHN1cHBvcnRlZCB3aGVuIGEgdGFibGUgaGFzIGEgUEVS SU9EIikpKTsKKworCS8qIElmIGFueSBwYXJlbnQgdGFibGUgaGFzIGEgUEVSSU9ELCB0aGVu IGZhaWwuICovCisKKwlmb3JlYWNoKGVudHJ5LCBzdXBlcnMpCisJeworCQlPaWQJCQlwYXJl bnQgPSBsZmlyc3Rfb2lkKGVudHJ5KTsKKwkJUmVsYXRpb24JcmVsYXRpb247CisJCVJlbGF0 aW9uCXBnX3BlcmlvZDsKKwkJU3lzU2NhbkRlc2Mgc2NhbjsKKwkJU2NhbktleURhdGEgc2tl eVsxXTsKKwkJSGVhcFR1cGxlCXR1cGxlOworCisJCS8qIGNhbGxlciBhbHJlYWR5IGdvdCBs b2NrICovCisJCXJlbGF0aW9uID0gdGFibGVfb3BlbihwYXJlbnQsIE5vTG9jayk7CisJCXBn X3BlcmlvZCA9IHRhYmxlX29wZW4oUGVyaW9kUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2Nr KTsKKworCQlTY2FuS2V5SW5pdCgmc2tleVswXSwKKwkJCQkJQW51bV9wZ19wZXJpb2RfcGVy cmVsaWQsCisJCQkJCUJURXF1YWxTdHJhdGVneU51bWJlciwgRl9PSURFUSwKKwkJCQkJT2Jq ZWN0SWRHZXREYXR1bShwYXJlbnQpKTsKKworCQlzY2FuID0gc3lzdGFibGVfYmVnaW5zY2Fu KHBnX3BlcmlvZCwgUGVyaW9kUmVsaWROYW1lSW5kZXhJZCwgdHJ1ZSwKKwkJCQkJCQkJICBO VUxMLCAxLCBza2V5KTsKKworCQlpZiAoSGVhcFR1cGxlSXNWYWxpZCh0dXBsZSA9IHN5c3Rh YmxlX2dldG5leHQoc2NhbikpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJJbmhlcml0 aW5nIGZyb20gYSB0YWJsZSB3aXRoIGEgUEVSSU9EIGlzIG5vdCBzdXBwb3J0ZWQiKSkpOwor CisJCXN5c3RhYmxlX2VuZHNjYW4oc2Nhbik7CisJCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwg QWNjZXNzU2hhcmVMb2NrKTsKKwkJdGFibGVfY2xvc2UocmVsYXRpb24sIE5vTG9jayk7CisJ fQorCisJLyoKKwkgKiBGaW5kIHRoZSBzdGFydCAmIGVuZCBjb2x1bW5zIGFuZCBnZXQgdGhl aXIgYXR0bm8gYW5kIHR5cGUuCisJICogSW4gdGhlIHNhbWUgcGFzcywgbWFrZSBzdXJlIHRo ZSBwZXJpb2QgZG9lc24ndCBjb25mbGljdCB3aXRoIGFueSBjb2x1bW4gbmFtZXMuCisJICog QWxzbyBtYWtlIHN1cmUgdGhlIHNhbWUgcGVyaW9kIG5hbWUgaXNuJ3QgdXNlZCBtb3JlIHRo YW4gb25jZS4KKwkgKi8KKwlmb3JlYWNoIChlbnRyeSwgcGVyaW9kcykKKwl7CisJCVBlcmlv ZERlZiAqcGVyaW9kID0gbGZpcnN0KGVudHJ5KTsKKwkJTGlzdENlbGwgKmVudHJ5MjsKKwkJ aW50IGkgPSAxOworCQlPaWQgc3RhcnRjb2x0eXBpZCA9IEludmFsaWRPaWQ7CisJCU9pZCBl bmRjb2x0eXBpZCA9IEludmFsaWRPaWQ7CisJCU9pZAlzdGFydGNvbGNvbGxhdGlvbiA9IElu dmFsaWRPaWQ7CisJCU9pZAllbmRjb2xjb2xsYXRpb24gPSBJbnZhbGlkT2lkOworCisJCXBl cmlvZC0+c3RhcnRhdHRudW0gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwkJcGVyaW9kLT5lbmRh dHRudW0gPSBJbnZhbGlkQXR0ck51bWJlcjsKKworCQlpZiAoU3lzdGVtQXR0cmlidXRlQnlO YW1lKHBlcmlvZC0+cGVyaW9kbmFtZSkgIT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX0NPTFVNTiksCisJCQkJCSBlcnJtc2co InBlcmlvZCBuYW1lIFwiJXNcIiBjb25mbGljdHMgd2l0aCBhIHN5c3RlbSBjb2x1bW4gbmFt ZSIsCisJCQkJCQkJcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJCWZvcmVhY2ggKGVudHJ5 MiwgcGVyaW9kcykKKwkJeworCQkJUGVyaW9kRGVmICpwZXJpb2QyID0gbGZpcnN0KGVudHJ5 Mik7CisKKwkJCWlmIChwZXJpb2QgIT0gcGVyaW9kMiAmJiBzdHJjbXAocGVyaW9kLT5wZXJp b2RuYW1lLCBwZXJpb2QyLT5wZXJpb2RuYW1lKSA9PSAwKQorCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkJIGVy cm1zZygicGVyaW9kIG5hbWUgXCIlc1wiIHNwZWNpZmllZCBtb3JlIHRoYW4gb25jZSIsCisJ CQkJCQkJCXBlcmlvZC0+cGVyaW9kbmFtZSkpKTsKKwkJfQorCisJCWZvcmVhY2ggKGVudHJ5 MiwgdGFibGVFbHRzKQorCQl7CisJCQlDb2x1bW5EZWYgKmNvbCA9IGxmaXJzdChlbnRyeTIp OworCQkJaW50MzIJYXR0dHlwbW9kOworCQkJQWNsUmVzdWx0IGFjbHJlc3VsdDsKKworCQkJ aWYgKCFwZXJpb2QtPmNvbGV4aXN0cyAmJiBzdHJjbXAocGVyaW9kLT5wZXJpb2RuYW1lLCBj b2wtPmNvbG5hbWUpID09IDApCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2Rl KEVSUkNPREVfRFVQTElDQVRFX0NPTFVNTiksCisJCQkJCQkgZXJybXNnKCJwZXJpb2QgbmFt ZSBcIiVzXCIgY29uZmxpY3RzIHdpdGggYSBjb2x1bW4gbmFtZSIsCisJCQkJCQkJCXBlcmlv ZC0+cGVyaW9kbmFtZSkpKTsKKworCQkJaWYgKHN0cmNtcChwZXJpb2QtPnN0YXJ0Y29sbmFt ZSwgY29sLT5jb2xuYW1lKSA9PSAwKQorCQkJeworCQkJCXBlcmlvZC0+c3RhcnRhdHRudW0g PSBpOworCisJCQkJdHlwZW5hbWVUeXBlSWRBbmRNb2QoTlVMTCwgY29sLT50eXBlTmFtZSwg JnN0YXJ0Y29sdHlwaWQsICZhdHR0eXBtb2QpOworCisJCQkJYWNscmVzdWx0ID0gb2JqZWN0 X2FjbGNoZWNrKFR5cGVSZWxhdGlvbklkLCBzdGFydGNvbHR5cGlkLCBHZXRVc2VySWQoKSwg QUNMX1VTQUdFKTsKKwkJCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJCQlh Y2xjaGVja19lcnJvcl90eXBlKGFjbHJlc3VsdCwgc3RhcnRjb2x0eXBpZCk7CisKKwkJCQlz dGFydGNvbGNvbGxhdGlvbiA9IEdldENvbHVtbkRlZkNvbGxhdGlvbihOVUxMLCBjb2wsIHN0 YXJ0Y29sdHlwaWQpOworCQkJfQorCisJCQlpZiAoc3RyY21wKHBlcmlvZC0+ZW5kY29sbmFt ZSwgY29sLT5jb2xuYW1lKSA9PSAwKQorCQkJeworCQkJCXBlcmlvZC0+ZW5kYXR0bnVtID0g aTsKKworCQkJCXR5cGVuYW1lVHlwZUlkQW5kTW9kKE5VTEwsIGNvbC0+dHlwZU5hbWUsICZl bmRjb2x0eXBpZCwgJmF0dHR5cG1vZCk7CisKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2soVHlwZVJlbGF0aW9uSWQsIGVuZGNvbHR5cGlkLCBHZXRVc2VySWQoKSwgQUNMX1VT QUdFKTsKKwkJCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJCQlhY2xjaGVj a19lcnJvcl90eXBlKGFjbHJlc3VsdCwgZW5kY29sdHlwaWQpOworCisJCQkJZW5kY29sY29s bGF0aW9uID0gR2V0Q29sdW1uRGVmQ29sbGF0aW9uKE5VTEwsIGNvbCwgZW5kY29sdHlwaWQp OworCQkJfQorCisJCQlpKys7CisJCX0KKworCQkvKiBEaWQgd2UgZmluZCB0aGUgY29sdW1u cz8gKi8KKwkJaWYgKHBlcmlvZC0+c3RhcnRhdHRudW0gPT0gSW52YWxpZEF0dHJOdW1iZXIp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9D T0xVTU4pLAorCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIG9mIHJlbGF0aW9uIFwiJXNc IiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJcGVyaW9kLT5zdGFydGNvbG5hbWUsIHJlbG5h bWUpKSk7CisJCWlmIChwZXJpb2QtPmVuZGF0dG51bSA9PSBJbnZhbGlkQXR0ck51bWJlcikK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NP TFVNTiksCisJCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgb2YgcmVsYXRpb24gXCIlc1wi IGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQlwZXJpb2QtPmVuZGNvbG5hbWUsIHJlbG5hbWUp KSk7CisKKwkJLyogQm90aCBjb2x1bW5zIG11c3QgYmUgb2Ygc2FtZSB0eXBlICovCisJCWlm IChzdGFydGNvbHR5cGlkICE9IGVuZGNvbHR5cGlkKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2co InN0YXJ0IGFuZCBlbmQgY29sdW1ucyBvZiBwZXJpb2QgbXVzdCBiZSBvZiBzYW1lIHR5cGUi KSkpOworCisJCS8qIEJvdGggY29sdW1ucyBtdXN0IGhhdmUgdGhlIHNhbWUgY29sbGF0aW9u ICovCisJCWlmIChzdGFydGNvbGNvbGxhdGlvbiAhPSBlbmRjb2xjb2xsYXRpb24pCisJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0NPTExBVElPTl9NSVNNQVRD SCksCisJCQkJCSBlcnJtc2coInN0YXJ0IGFuZCBlbmQgY29sdW1ucyBvZiBwZXJpb2QgbXVz dCBoYXZlIHNhbWUgY29sbGF0aW9uIikpKTsKKworCQlwZXJpb2QtPmNvbHR5cGlkID0gc3Rh cnRjb2x0eXBpZDsKKwkJcGVyaW9kLT5ybmd0eXBpZCA9IGNob29zZV9yYW5nZXR5cGVfZm9y X3BlcmlvZChwZXJpb2QpOworCX0KKworCXJldHVybiBwZXJpb2RzOworfQorCiAvKgogICog TWVyZ2VDaGVja0NvbnN0cmFpbnQKICAqCQlUcnkgdG8gbWVyZ2UgYW4gaW5oZXJpdGVkIENI RUNLIGNvbnN0cmFpbnQgd2l0aCBwcmV2aW91cyBvbmVzCkBAIC00NDQxLDEyICs1MDEzLDEy IEBAIEFsdGVyVGFibGUoQWx0ZXJUYWJsZVN0bXQgKnN0bXQsIExPQ0tNT0RFIGxvY2ttb2Rl LAogICogZXhpc3RpbmcgcXVlcnkgcGxhbnMuICBPbiB0aGUgYXNzdW1wdGlvbiBpdCdzIG5v dCB1c2VkIGZvciBzdWNoLCB3ZQogICogZG9uJ3QgaGF2ZSB0byByZWplY3QgcGVuZGluZyBB RlRFUiB0cmlnZ2VycywgZWl0aGVyLgogICoKLSAqIEFsc28sIHNpbmNlIHdlIGRvbid0IGhh dmUgYW4gQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0LCB0aGlzIGNhbm5vdCBiZQorICogQWxz bywgaWYgeW91IGRvbid0IHBhc3MgYW4gQWx0ZXJUYWJsZVV0aWxpdHlDb250ZXh0LCB0aGlz IGNhbm5vdCBiZQogICogdXNlZCBmb3IgYW55IHN1YmNvbW1hbmQgdHlwZXMgdGhhdCByZXF1 aXJlIHBhcnNlIHRyYW5zZm9ybWF0aW9uIG9yCiAgKiBjb3VsZCBnZW5lcmF0ZSBzdWJjb21t YW5kcyB0aGF0IGhhdmUgdG8gYmUgcGFzc2VkIHRvIFByb2Nlc3NVdGlsaXR5LgogICovCiB2 b2lkCi1BbHRlclRhYmxlSW50ZXJuYWwoT2lkIHJlbGlkLCBMaXN0ICpjbWRzLCBib29sIHJl Y3Vyc2UpCitBbHRlclRhYmxlSW50ZXJuYWwoT2lkIHJlbGlkLCBMaXN0ICpjbWRzLCBib29s IHJlY3Vyc2UsIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCkKIHsKIAlSZWxh dGlvbglyZWw7CiAJTE9DS01PREUJbG9ja21vZGUgPSBBbHRlclRhYmxlR2V0TG9ja0xldmVs KGNtZHMpOwpAQCAtNDQ1NSw3ICs1MDI3LDcgQEAgQWx0ZXJUYWJsZUludGVybmFsKE9pZCBy ZWxpZCwgTGlzdCAqY21kcywgYm9vbCByZWN1cnNlKQogCiAJRXZlbnRUcmlnZ2VyQWx0ZXJU YWJsZVJlbGlkKHJlbGlkKTsKIAotCUFUQ29udHJvbGxlcihOVUxMLCByZWwsIGNtZHMsIHJl Y3Vyc2UsIGxvY2ttb2RlLCBOVUxMKTsKKwlBVENvbnRyb2xsZXIoTlVMTCwgcmVsLCBjbWRz LCByZWN1cnNlLCBsb2NrbW9kZSwgY29udGV4dCk7CiB9CiAKIC8qCkBAIC00NTQ4LDYgKzUx MjAsOCBAQCBBbHRlclRhYmxlR2V0TG9ja0xldmVsKExpc3QgKmNtZHMpCiAJCQljYXNlIEFU X0VuYWJsZVJlcGxpY2FSdWxlOgkvKiBtYXkgY2hhbmdlIFNFTEVDVCBydWxlcyAqLwogCQkJ Y2FzZSBBVF9FbmFibGVSdWxlOiAvKiBtYXkgY2hhbmdlIFNFTEVDVCBydWxlcyAqLwogCQkJ Y2FzZSBBVF9EaXNhYmxlUnVsZToJLyogbWF5IGNoYW5nZSBTRUxFQ1QgcnVsZXMgKi8KKwkJ CWNhc2UgQVRfQWRkUGVyaW9kOiAvKiBzaGFyZXMgbmFtZXNwYWNlIHdpdGggY29sdW1ucywg YWRkcyBjb25zdHJhaW50ICovCisJCQljYXNlIEFUX0Ryb3BQZXJpb2Q6CiAJCQkJY21kX2xv Y2ttb2RlID0gQWNjZXNzRXhjbHVzaXZlTG9jazsKIAkJCQlicmVhazsKIApAQCAtNDg2NCw2 ICs1NDM4LDE0IEBAIEFUUHJlcENtZChMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFs dGVyVGFibGVDbWQgKmNtZCwKIAkJCS8qIFRoaXMgY29tbWFuZCBuZXZlciByZWN1cnNlcyAq LwogCQkJcGFzcyA9IEFUX1BBU1NfQUREX09USEVSQ09OU1RSOwogCQkJYnJlYWs7CisJCWNh c2UgQVRfQWRkUGVyaW9kOiAvKiBBTFRFUiBUQUJMRSAuLi4gQUREIFBFUklPRCBGT1IgbmFt ZSAoc3RhcnQsIGVuZCkgKi8KKwkJCUFUU2ltcGxlUGVybWlzc2lvbnMoY21kLT5zdWJ0eXBl LCByZWwsIEFUVF9UQUJMRSk7CisJCQlwYXNzID0gQVRfUEFTU19BRERfUEVSSU9EOworCQkJ YnJlYWs7CisJCWNhc2UgQVRfRHJvcFBlcmlvZDogLyogQUxURVIgVEFCTEUgLi4uIERST1Ag UEVSSU9EIEZPUiBuYW1lICovCisJCQlBVFNpbXBsZVBlcm1pc3Npb25zKGNtZC0+c3VidHlw ZSwgcmVsLCBBVFRfVEFCTEUpOworCQkJcGFzcyA9IEFUX1BBU1NfRFJPUDsKKwkJCWJyZWFr OwogCQljYXNlIEFUX0FkZElkZW50aXR5OgogCQkJQVRTaW1wbGVQZXJtaXNzaW9ucyhjbWQt PnN1YnR5cGUsIHJlbCwgQVRUX1RBQkxFIHwgQVRUX1ZJRVcgfCBBVFRfRk9SRUlHTl9UQUJM RSk7CiAJCQkvKiBTZXQgdXAgcmVjdXJzaW9uIGZvciBwaGFzZSAyOyBubyBvdGhlciBwcmVw IG5lZWRlZCAqLwpAQCAtNTI3MSw2ICs1ODUzLDE0IEBAIEFURXhlY0NtZChMaXN0ICoqd3F1 ZXVlLCBBbHRlcmVkVGFibGVJbmZvICp0YWIsCiAJCWNhc2UgQVRfQ29va2VkQ29sdW1uRGVm YXVsdDoJLyogYWRkIGEgcHJlLWNvb2tlZCBkZWZhdWx0ICovCiAJCQlhZGRyZXNzID0gQVRF eGVjQ29va2VkQ29sdW1uRGVmYXVsdChyZWwsIGNtZC0+bnVtLCBjbWQtPmRlZik7CiAJCQli cmVhazsKKwkJY2FzZSBBVF9BZGRQZXJpb2Q6CisJCQlhZGRyZXNzID0gQVRFeGVjQWRkUGVy aW9kKHJlbCwgKFBlcmlvZERlZiAqKSBjbWQtPmRlZiwgY29udGV4dCk7CisJCQlicmVhazsK KwkJY2FzZSBBVF9Ecm9wUGVyaW9kOgorCQkJQVRFeGVjRHJvcFBlcmlvZChyZWwsIGNtZC0+ bmFtZSwgY21kLT5iZWhhdmlvciwKKwkJCQkJCQkJIGZhbHNlLCBmYWxzZSwKKwkJCQkJCQkJ IGNtZC0+bWlzc2luZ19vayk7CisJCQlicmVhazsKIAkJY2FzZSBBVF9BZGRJZGVudGl0eToK IAkJCWNtZCA9IEFUUGFyc2VUcmFuc2Zvcm1DbWQod3F1ZXVlLCB0YWIsIHJlbCwgY21kLCBm YWxzZSwgbG9ja21vZGUsCiAJCQkJCQkJCQkgIGN1cl9wYXNzLCBjb250ZXh0KTsKQEAgLTY0 MTgsNiArNzAwOCw4IEBAIGFsdGVyX3RhYmxlX3R5cGVfdG9fc3RyaW5nKEFsdGVyVGFibGVU eXBlIGNtZHR5cGUpCiAJCWNhc2UgQVRfQWRkQ29sdW1uOgogCQljYXNlIEFUX0FkZENvbHVt blRvVmlldzoKIAkJCXJldHVybiAiQUREIENPTFVNTiI7CisJCWNhc2UgQVRfQWRkUGVyaW9k OgorCQkJcmV0dXJuICJBREQgUEVSSU9EIjsKIAkJY2FzZSBBVF9Db2x1bW5EZWZhdWx0Ogog CQljYXNlIEFUX0Nvb2tlZENvbHVtbkRlZmF1bHQ6CiAJCQlyZXR1cm4gIkFMVEVSIENPTFVN TiAuLi4gU0VUIERFRkFVTFQiOwpAQCAtNjQ0Myw2ICs3MDM1LDggQEAgYWx0ZXJfdGFibGVf dHlwZV90b19zdHJpbmcoQWx0ZXJUYWJsZVR5cGUgY21kdHlwZSkKIAkJCXJldHVybiAiQUxU RVIgQ09MVU1OIC4uLiBTRVQgQ09NUFJFU1NJT04iOwogCQljYXNlIEFUX0Ryb3BDb2x1bW46 CiAJCQlyZXR1cm4gIkRST1AgQ09MVU1OIjsKKwkJY2FzZSBBVF9Ecm9wUGVyaW9kOgorCQkJ cmV0dXJuICJEUk9QIFBFUklPRCI7CiAJCWNhc2UgQVRfQWRkSW5kZXg6CiAJCWNhc2UgQVRf UmVBZGRJbmRleDoKIAkJCXJldHVybiBOVUxMOwkJLyogbm90IHJlYWwgZ3JhbW1hciAqLwpA QCAtNzQxNiwxNCArODAxMCwyOSBAQCBBVEV4ZWNBZGRDb2x1bW4oTGlzdCAqKndxdWV1ZSwg QWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWwsCiAvKgogICogSWYgYSBuZXcg b3IgcmVuYW1lZCBjb2x1bW4gd2lsbCBjb2xsaWRlIHdpdGggdGhlIG5hbWUgb2YgYW4gZXhp c3RpbmcKICAqIGNvbHVtbiBhbmQgaWZfbm90X2V4aXN0cyBpcyBmYWxzZSB0aGVuIGVycm9y IG91dCwgZWxzZSBkbyBub3RoaW5nLgorICoKKyAqIFNlZSBhbHNvIGNoZWNrX2Zvcl9wZXJp b2RfbmFtZV9jb2xsaXNpb24uCiAgKi8KIHN0YXRpYyBib29sCiBjaGVja19mb3JfY29sdW1u X25hbWVfY29sbGlzaW9uKFJlbGF0aW9uIHJlbCwgY29uc3QgY2hhciAqY29sbmFtZSwKIAkJ CQkJCQkJYm9vbCBpZl9ub3RfZXhpc3RzKQogewotCUhlYXBUdXBsZQlhdHRUdXBsZTsKKwlI ZWFwVHVwbGUJYXR0VHVwbGUsIHBlclR1cGxlOwogCWludAkJCWF0dG51bTsKIAorCS8qIElm IHRoZSBuYW1lIGV4aXN0cyBhcyBhIHBlcmlvZCwgd2UncmUgZG9uZS4gKi8KKwlwZXJUdXBs ZSA9IFNlYXJjaFN5c0NhY2hlMihQRVJJT0ROQU1FLAorCQkJCQkJCSAgIE9iamVjdElkR2V0 RGF0dW0oUmVsYXRpb25HZXRSZWxpZChyZWwpKSwKKwkJCQkJCQkgICBQb2ludGVyR2V0RGF0 dW0oY29sbmFtZSkpOworCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHBlclR1cGxlKSkKKwl7CisJ CVJlbGVhc2VTeXNDYWNoZShwZXJUdXBsZSk7CisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJjb2x1bW4g bmFtZSBcIiVzXCIgY29uZmxpY3RzIHdpdGggYSBwZXJpb2QgbmFtZSIsCisJCQkJCQljb2xu YW1lKSkpOworCX0KKwogCS8qCiAJICogdGhpcyB0ZXN0IGlzIGRlbGliZXJhdGVseSBub3Qg YXR0aXNkcm9wcGVkLWF3YXJlLCBzaW5jZSBpZiBvbmUgdHJpZXMgdG8KIAkgKiBhZGQgYSBj b2x1bW4gbWF0Y2hpbmcgYSBkcm9wcGVkIGNvbHVtbiBuYW1lLCBpdCdzIGdvbm5hIGZhaWwg YW55d2F5LgpAQCAtNzQ2Nyw2ICs4MDc2LDc3IEBAIGNoZWNrX2Zvcl9jb2x1bW5fbmFtZV9j b2xsaXNpb24oUmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xuYW1lLAogCXJldHVybiB0 cnVlOwogfQogCisvKgorICogSWYgYSBuZXcgcGVyaW9kIG5hbWUgd2lsbCBjb2xsaWRlIHdp dGggdGhlIG5hbWUgb2YgYW4gZXhpc3RpbmcgY29sdW1uIG9yCisgKiBwZXJpb2QgW2FuZCBp Zl9ub3RfZXhpc3RzIGlzIGZhbHNlXSB0aGVuIGVycm9yIG91dCwgZWxzZSBkbyBub3RoaW5n LgorICoKKyAqIFNlZSBhbHNvIGNoZWNrX2Zvcl9jb2x1bW5fbmFtZV9jb2xsaXNpb24uCisg Ki8KK3N0YXRpYyBib29sCitjaGVja19mb3JfcGVyaW9kX25hbWVfY29sbGlzaW9uKFJlbGF0 aW9uIHJlbCwgY29uc3QgY2hhciAqcGVybmFtZSwKKwkJCQkJCQkJYm9vbCBjb2xleGlzdHMs IGJvb2wgaWZfbm90X2V4aXN0cykKK3sKKwlIZWFwVHVwbGUJYXR0VHVwbGUsIHBlclR1cGxl OworCWludAkJCWF0dG51bTsKKworCS8qIFRPRE86IGltcGxlbWVudCBJRiBbTk9UXSBFWElT VFMgZm9yIHBlcmlvZHMgKi8KKwlBc3NlcnQoIWlmX25vdF9leGlzdHMpOworCisJLyogSWYg dGhlcmUgaXMgYWxyZWFkeSBhIHBlcmlvZCB3aXRoIHRoaXMgbmFtZSwgdGhlbiB3ZSdyZSBk b25lLiAqLworCXBlclR1cGxlID0gU2VhcmNoU3lzQ2FjaGUyKFBFUklPRE5BTUUsCisJCQkJ CQkJICAgT2JqZWN0SWRHZXREYXR1bShSZWxhdGlvbkdldFJlbGlkKHJlbCkpLAorCQkJCQkJ CSAgIFBvaW50ZXJHZXREYXR1bShwZXJuYW1lKSk7CisJaWYgKEhlYXBUdXBsZUlzVmFsaWQo cGVyVHVwbGUpKQorCXsKKwkJaWYgKGlmX25vdF9leGlzdHMpCisJCXsKKwkJCVJlbGVhc2VT eXNDYWNoZShwZXJUdXBsZSk7CisKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJCQkoZXJyY29k ZShFUlJDT0RFX0RVUExJQ0FURV9DT0xVTU4pLAorCQkJCQkgZXJybXNnKCJwZXJpb2QgXCIl c1wiIG9mIHJlbGF0aW9uIFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJ CQkJCXBlcm5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQlyZXR1 cm4gZmFsc2U7CisJCX0KKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfRFVQTElDQVRFX0NPTFVNTiksCisJCQkJIGVycm1zZygicGVyaW9kIFwiJXNcIiBvZiBy ZWxhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMiLAorCQkJCQkJcGVybmFtZSwgUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKwl9CisKKwkvKgorCSAqIHRoaXMgdGVzdCBp cyBkZWxpYmVyYXRlbHkgbm90IGF0dGlzZHJvcHBlZC1hd2FyZSwgc2luY2UgaWYgb25lIHRy aWVzIHRvCisJICogYWRkIGEgY29sdW1uIG1hdGNoaW5nIGEgZHJvcHBlZCBjb2x1bW4gbmFt ZSwgaXQncyBnb25uYSBmYWlsIGFueXdheS4KKwkgKi8KKwlhdHRUdXBsZSA9IFNlYXJjaFN5 c0NhY2hlMihBVFROQU1FLAorCQkJCQkJCSAgIE9iamVjdElkR2V0RGF0dW0oUmVsYXRpb25H ZXRSZWxpZChyZWwpKSwKKwkJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0ocGVybmFtZSkpOwor CWlmIChIZWFwVHVwbGVJc1ZhbGlkKGF0dFR1cGxlKSkKKwl7CisJCWF0dG51bSA9ICgoRm9y bV9wZ19hdHRyaWJ1dGUpIEdFVFNUUlVDVChhdHRUdXBsZSkpLT5hdHRudW07CisJCVJlbGVh c2VTeXNDYWNoZShhdHRUdXBsZSk7CisKKwkJLyoKKwkJICogV2UgdGhyb3cgYSBkaWZmZXJl bnQgZXJyb3IgbWVzc2FnZSBmb3IgY29uZmxpY3RzIHdpdGggc3lzdGVtIGNvbHVtbgorCQkg KiBuYW1lcywgc2luY2UgdGhleSBhcmUgbm9ybWFsbHkgbm90IHNob3duIGFuZCB0aGUgdXNl ciBtaWdodCBvdGhlcndpc2UKKwkJICogYmUgY29uZnVzZWQgYWJvdXQgdGhlIHJlYXNvbiBm b3IgdGhlIGNvbmZsaWN0LgorCQkgKi8KKwkJaWYgKGF0dG51bSA8PSAwKQorCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfQ09MVU1OKSwKKwkJ CQkJIGVycm1zZygicGVyaW9kIG5hbWUgXCIlc1wiIGNvbmZsaWN0cyB3aXRoIGEgc3lzdGVt IGNvbHVtbiBuYW1lIiwKKwkJCQkJCQlwZXJuYW1lKSkpOworCQlpZiAoIWNvbGV4aXN0cykK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX0NP TFVNTiksCisJCQkJCSBlcnJtc2coInBlcmlvZCBuYW1lIFwiJXNcIiBjb25mbGljdHMgd2l0 aCBhIGNvbHVtbiBuYW1lIiwKKwkJCQkJCQlwZXJuYW1lKSkpOworCX0KKworCXJldHVybiB0 cnVlOworfQorCiAvKgogICogSW5zdGFsbCBhIGNvbHVtbidzIGRlcGVuZGVuY3kgb24gaXRz IGRhdGF0eXBlLgogICovCkBAIC04MTE4LDYgKzg3OTgsMTU3IEBAIEFURXhlY0Nvb2tlZENv bHVtbkRlZmF1bHQoUmVsYXRpb24gcmVsLCBBdHRyTnVtYmVyIGF0dG51bSwKIAlyZXR1cm4g YWRkcmVzczsKIH0KIAorLyoKKyAqIEFMVEVSIFRBQkxFIEFERCBQRVJJT0QKKyAqCisgKiBS ZXR1cm4gdGhlIGFkZHJlc3Mgb2YgdGhlIHBlcmlvZC4KKyAqLworc3RhdGljIE9iamVjdEFk ZHJlc3MKK0FURXhlY0FkZFBlcmlvZChSZWxhdGlvbiByZWwsIFBlcmlvZERlZiAqcGVyaW9k LCBBbHRlclRhYmxlVXRpbGl0eUNvbnRleHQgKmNvbnRleHQpCit7CisJUmVsYXRpb24JCWF0 dHJlbGF0aW9uOworCU9iamVjdEFkZHJlc3MJYWRkcmVzcyA9IEludmFsaWRPYmplY3RBZGRy ZXNzOworCUNvbnN0cmFpbnQJICAgKmNvbnN0cjsKKwlDb2x1bW5EZWYJICAgKnJhbmdlY29s OworCU9pZAkJCQljb25vaWQsIHBlcmlvZG9pZDsKKwlMaXN0CQkgICAqY21kcyA9IE5JTDsK KwlBbHRlclRhYmxlQ21kICAqY21kOworCisJLyoKKwkgKiBQRVJJT0QgRk9SIFNZU1RFTV9U SU1FIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQsIGJ1dCBtYWtlIHN1cmUgbm8gb25lIHVzZXMK KwkgKiB0aGUgbmFtZS4KKwkgKi8KKwlpZiAoc3RyY21wKHBlcmlvZC0+cGVyaW9kbmFtZSwg InN5c3RlbV90aW1lIikgPT0gMCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiUEVSSU9E IEZPUiBTWVNURU1fVElNRSBpcyBub3Qgc3VwcG9ydGVkIikpKTsKKworCS8qIFBhcnNlIG9w dGlvbnMgKi8KKwl0cmFuc2Zvcm1QZXJpb2RPcHRpb25zKHBlcmlvZCk7CisKKwkvKiBUaGUg cGVyaW9kIG5hbWUgbXVzdCBub3QgYWxyZWFkeSBleGlzdCAqLworCSh2b2lkKSBjaGVja19m b3JfcGVyaW9kX25hbWVfY29sbGlzaW9uKHJlbCwgcGVyaW9kLT5wZXJpb2RuYW1lLCBwZXJp b2QtPmNvbGV4aXN0cywgZmFsc2UpOworCisJYXR0cmVsYXRpb24gPSB0YWJsZV9vcGVuKEF0 dHJpYnV0ZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCVZhbGlkYXRlUGVyaW9k KHJlbCwgcGVyaW9kKTsKKworCS8qIE1ha2UgdGhlIENIRUNLIGNvbnN0cmFpbnQgKi8KKwlj b25zdHIgPSBtYWtlX2NvbnN0cmFpbnRfZm9yX3BlcmlvZChyZWwsIHBlcmlvZCk7CisJY21k ID0gbWFrZU5vZGUoQWx0ZXJUYWJsZUNtZCk7CisJY21kLT5zdWJ0eXBlID0gQVRfQWRkQ29u c3RyYWludDsKKwljbWQtPmRlZiA9IChOb2RlICopIGNvbnN0cjsKKwljbWRzID0gbGFwcGVu ZChjbWRzLCBjbWQpOworCUFsdGVyVGFibGVJbnRlcm5hbChSZWxhdGlvbkdldFJlbGlkKHJl bCksIGNtZHMsIHRydWUsIGNvbnRleHQpOworCWNvbm9pZCA9IGdldF9yZWxhdGlvbl9jb25z dHJhaW50X29pZChSZWxhdGlvbkdldFJlbGlkKHJlbCksIHBlcmlvZC0+Y29uc3RyYWludG5h bWUsIGZhbHNlKTsKKworCWlmICghcGVyaW9kLT5jb2xleGlzdHMpCisJeworCQkvKiBNYWtl IHRoZSByYW5nZSBjb2x1bW4gKi8KKwkJcmFuZ2Vjb2wgPSBtYWtlX3JhbmdlX2NvbHVtbl9m b3JfcGVyaW9kKHBlcmlvZCk7CisJCWNtZCA9IG1ha2VOb2RlKEFsdGVyVGFibGVDbWQpOwor CQljbWQtPnN1YnR5cGUgPSBBVF9BZGRDb2x1bW47CisJCWNtZC0+ZGVmID0gKE5vZGUgKikg cmFuZ2Vjb2w7CisJCWNtZC0+bmFtZSA9IHBlcmlvZC0+cGVyaW9kbmFtZTsKKwkJY21kLT5y ZWN1cnNlID0gZmFsc2U7IC8qIG5vLCBsZXQgdGhlIFBFUklPRCByZWN1cnNlIGluc3RlYWQg Ki8KKwkJQWx0ZXJUYWJsZUludGVybmFsKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgbGlzdF9t YWtlMShjbWQpLCB0cnVlLCBjb250ZXh0KTsKKwkJcGVyaW9kLT5ybmdhdHRudW0gPSBnZXRf YXR0bnVtKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgcGVyaW9kLT5wZXJpb2RuYW1lKTsKKwkJ aWYgKHBlcmlvZC0+cm5nYXR0bnVtID09IEludmFsaWRBdHRyTnVtYmVyKQorCQkJZWxvZyhF UlJPUiwgIm1pc3NpbmcgYXR0cmlidXRlICVzIiwgcGVyaW9kLT5wZXJpb2RuYW1lKTsKKwor CX0KKworCS8qIFNhdmUgdGhlIFBlcmlvZCAqLworCXBlcmlvZG9pZCA9IFN0b3JlUGVyaW9k KHJlbCwgcGVyaW9kLT5wZXJpb2RuYW1lLCBwZXJpb2QtPnN0YXJ0YXR0bnVtLCBwZXJpb2Qt PmVuZGF0dG51bSwgcGVyaW9kLT5ybmdhdHRudW0sIGNvbm9pZCk7CisKKwlPYmplY3RBZGRy ZXNzU2V0KGFkZHJlc3MsIFBlcmlvZFJlbGF0aW9uSWQsIHBlcmlvZG9pZCk7CisKKwl0YWJs ZV9jbG9zZShhdHRyZWxhdGlvbiwgUm93RXhjbHVzaXZlTG9jayk7CisKKwlyZXR1cm4gYWRk cmVzczsKK30KKworLyoKKyAqIEFMVEVSIFRBQkxFIERST1AgUEVSSU9ECisgKgorICogTGlr ZSBEUk9QIENPTFVNTiwgd2UgY2FuJ3QgdXNlIHRoZSBub3JtYWwgQUxURVIgVEFCTEUgcmVj dXJzaW9uIG1lY2hhbmlzbS4KKyAqLworc3RhdGljIHZvaWQKK0FURXhlY0Ryb3BQZXJpb2Qo UmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpwZXJpb2ROYW1lLAorCQkJCQkgRHJvcEJlaGF2 aW9yIGJlaGF2aW9yLAorCQkJCQkgYm9vbCByZWN1cnNlLCBib29sIHJlY3Vyc2luZywKKwkJ CQkJIGJvb2wgbWlzc2luZ19vaykKK3sKKwlSZWxhdGlvbglwZ19wZXJpb2Q7CisJRm9ybV9w Z19wZXJpb2QgcGVyaW9kOworCVN5c1NjYW5EZXNjIHNjYW47CisJU2NhbktleURhdGEga2V5 OworCUhlYXBUdXBsZQl0dXBsZTsKKwlib29sCQlmb3VuZCA9IGZhbHNlOworCisJLyogQXQg dG9wIGxldmVsLCBwZXJtaXNzaW9uIGNoZWNrIHdhcyBkb25lIGluIEFUUHJlcENtZCwgZWxz ZSBkbyBpdCAqLworCWlmIChyZWN1cnNpbmcpCisJCUFUU2ltcGxlUGVybWlzc2lvbnMoQVRf RHJvcFBlcmlvZCwgcmVsLCBBVFRfVEFCTEUpOworCisJcGdfcGVyaW9kID0gdGFibGVfb3Bl bihQZXJpb2RSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qCisJICogRmlu ZCBhbmQgZHJvcCB0aGUgdGFyZ2V0IHBlcmlvZAorCSAqLworCVNjYW5LZXlJbml0KCZrZXks CisJCQkJQW51bV9wZ19wZXJpb2RfcGVycmVsaWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVt YmVyLCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0RGF0dW0oUmVsYXRpb25HZXRSZWxpZChy ZWwpKSk7CisJc2NhbiA9IHN5c3RhYmxlX2JlZ2luc2NhbihwZ19wZXJpb2QsIFBlcmlvZFJl bGlkTmFtZUluZGV4SWQsCisJCQkJCQkJICB0cnVlLCBOVUxMLCAxLCAma2V5KTsKKworCXdo aWxlIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkp CisJeworCQlPYmplY3RBZGRyZXNzIHBlcm9iajsKKworCQlwZXJpb2QgPSAoRm9ybV9wZ19w ZXJpb2QpIEdFVFNUUlVDVCh0dXBsZSk7CisKKwkJaWYgKHN0cmNtcChOYW1lU3RyKHBlcmlv ZC0+cGVybmFtZSksIHBlcmlvZE5hbWUpICE9IDApCisJCQljb250aW51ZTsKKworCQkvKgor CQkgKiBQZXJmb3JtIHRoZSBhY3R1YWwgcGVyaW9kIGRlbGV0aW9uCisJCSAqLworCQlwZXJv YmouY2xhc3NJZCA9IFBlcmlvZFJlbGF0aW9uSWQ7CisJCXBlcm9iai5vYmplY3RJZCA9IHBl cmlvZC0+b2lkOworCQlwZXJvYmoub2JqZWN0U3ViSWQgPSAwOworCisJCXBlcmZvcm1EZWxl dGlvbigmcGVyb2JqLCBiZWhhdmlvciwgMCk7CisKKwkJZm91bmQgPSB0cnVlOworCisJCS8q IHBlcmlvZCBmb3VuZCBhbmQgZHJvcHBlZCAtLSBubyBuZWVkIHRvIGtlZXAgbG9vcGluZyAq LworCQlicmVhazsKKwl9CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCisJaWYgKCFm b3VuZCkKKwl7CisJCWlmICghbWlzc2luZ19vaykKKwkJeworCQkJZXJlcG9ydChFUlJPUiwK KwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1z ZygicGVyaW9kIFwiJXNcIiBvbiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAor CQkJCQkJCXBlcmlvZE5hbWUsIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJ CX0KKwkJZWxzZQorCQl7CisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycm1zZygicGVy aW9kIFwiJXNcIiBvbiByZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5n IiwKKwkJCQkJCQlwZXJpb2ROYW1lLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkp OworCQkJdGFibGVfY2xvc2UocGdfcGVyaW9kLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwkJCXJl dHVybjsKKwkJfQorCX0KKworCXRhYmxlX2Nsb3NlKHBnX3BlcmlvZCwgUm93RXhjbHVzaXZl TG9jayk7Cit9CisKIC8qCiAgKiBBTFRFUiBUQUJMRSBBTFRFUiBDT0xVTU4gQUREIElERU5U SVRZCiAgKgpAQCAtOTk3Niw4ICsxMDgwNyw5IEBAIEFUQWRkRm9yZWlnbktleUNvbnN0cmFp bnQoTGlzdCAqKndxdWV1ZSwgQWx0ZXJlZFRhYmxlSW5mbyAqdGFiLCBSZWxhdGlvbiByZWws CiAJZm9yIChpID0gMDsgaSA8IG51bWZrczsgaSsrKQogCXsKIAkJY2hhcgkJYXR0Z2VuZXJh dGVkID0gVHVwbGVEZXNjQXR0cihSZWxhdGlvbkdldERlc2NyKHJlbCksIGZrYXR0bnVtW2ld IC0gMSktPmF0dGdlbmVyYXRlZDsKKwkJQml0bWFwc2V0ICAqcGVyaW9kcyA9IGdldF9wZXJp b2RfYXR0bm9zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSk7CiAKLQkJaWYgKGF0dGdlbmVyYXRl ZCkKKwkJaWYgKGF0dGdlbmVyYXRlZCAmJiAhYm1zX2lzX21lbWJlcihma2F0dG51bVtpXSwg cGVyaW9kcykpCiAJCXsKIAkJCS8qCiAJCQkgKiBDaGVjayByZXN0cmljdGlvbnMgb24gVVBE QVRFL0RFTEVURSBhY3Rpb25zLCBwZXIgU1FMIHN0YW5kYXJkCkBAIC0xNDAxNSw2ICsxNDg0 NywxNiBAQCBSZW1lbWJlckFsbERlcGVuZGVudEZvclJlYnVpbGRpbmcoQWx0ZXJlZFRhYmxl SW5mbyAqdGFiLCBBbHRlclRhYmxlVHlwZSBzdWJ0eXBlLAogCQkJCVJlbWVtYmVyQ29uc3Ry YWludEZvclJlYnVpbGRpbmcoZm91bmRPYmplY3Qub2JqZWN0SWQsIHRhYik7CiAJCQkJYnJl YWs7CiAKKwkJCWNhc2UgT0NMQVNTX1BFUklPRDoKKwkJCQlpZiAoc3VidHlwZSA9PSBBVF9B bHRlckNvbHVtblR5cGUpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCSBlcnJtc2coImNhbm5v dCBhbHRlciB0eXBlIG9mIGEgY29sdW1uIHVzZWQgYnkgYSBwZXJpb2QiKSwKKwkJCQkJCQkg ZXJyZGV0YWlsKCIlcyBkZXBlbmRzIG9uIGNvbHVtbiBcIiVzXCIiLAorCQkJCQkJCQkJICAg Z2V0T2JqZWN0RGVzY3JpcHRpb24oJmZvdW5kT2JqZWN0LCBmYWxzZSksCisJCQkJCQkJCQkg ICBjb2xOYW1lKSkpOworCQkJCWJyZWFrOworCiAJCQljYXNlIE9DTEFTU19SRVdSSVRFOgog CQkJCS8qIFhYWCBzb21lZGF5IHNlZSBpZiB3ZSBjYW4gY29wZSB3aXRoIHJldmlzaW5nIHZp ZXdzICovCiAJCQkJaWYgKHN1YnR5cGUgPT0gQVRfQWx0ZXJDb2x1bW5UeXBlKQpAQCAtMTQw NzksNiArMTQ5MjEsMTUgQEAgUmVtZW1iZXJBbGxEZXBlbmRlbnRGb3JSZWJ1aWxkaW5nKEFs dGVyZWRUYWJsZUluZm8gKnRhYiwgQWx0ZXJUYWJsZVR5cGUgc3VidHlwZSwKIAkJCQkJfQog CQkJCQllbHNlCiAJCQkJCXsKKwkJCQkJCS8qCisJCQkJCQkgKiBJZiB0aGlzIEdFTkVSQVRF RCBjb2x1bW4gaXMgaW1wbGVtZW50aW5nIGEgUEVSSU9ELAorCQkJCQkJICoga2VlcCBnb2lu ZyBhbmQgd2UnbGwgZmFpbCBmcm9tIHRoZSBQRVJJT0QgaW5zdGVhZC4KKwkJCQkJCSAqIFRo aXMgZ2l2ZXMgYSBtb3JlIGNsZWFyIGVycm9yIG1lc3NhZ2UuCisJCQkJCQkgKi8KKwkJCQkJ CUJpdG1hcHNldCAqcGVyaW9kYXR0cyA9IGdldF9wZXJpb2RfYXR0bm9zKFJlbGF0aW9uR2V0 UmVsaWQocmVsKSk7CisJCQkJCQlpZiAoYm1zX2lzX21lbWJlcihjb2wub2JqZWN0U3ViSWQs IHBlcmlvZGF0dHMpKQorCQkJCQkJCWJyZWFrOworCiAJCQkJCQkvKgogCQkJCQkJICogVGhp cyBtdXN0IGJlIGEgcmVmZXJlbmNlIGZyb20gdGhlIGV4cHJlc3Npb24gb2YgYQogCQkJCQkJ ICogZ2VuZXJhdGVkIGNvbHVtbiBlbHNld2hlcmUgaW4gdGhlIHNhbWUgdGFibGUuCkBAIC0x NTg5Myw3ICsxNjc0NCw3IEBAIEFsdGVyVGFibGVNb3ZlQWxsKEFsdGVyVGFibGVNb3ZlQWxs U3RtdCAqc3RtdCkKIAogCQlFdmVudFRyaWdnZXJBbHRlclRhYmxlU3RhcnQoKE5vZGUgKikg c3RtdCk7CiAJCS8qIE9JRCBpcyBzZXQgYnkgQWx0ZXJUYWJsZUludGVybmFsICovCi0JCUFs dGVyVGFibGVJbnRlcm5hbChsZmlyc3Rfb2lkKGwpLCBjbWRzLCBmYWxzZSk7CisJCUFsdGVy VGFibGVJbnRlcm5hbChsZmlyc3Rfb2lkKGwpLCBjbWRzLCBmYWxzZSwgTlVMTCk7CiAJCUV2 ZW50VHJpZ2dlckFsdGVyVGFibGVFbmQoKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ZpZXcuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwppbmRl eCBmZGFkODMzODMyNC4uM2FlMjI1ZDY3OTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ZpZXcuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKQEAgLTE2 NCw3ICsxNjQsNyBAQCBEZWZpbmVWaXJ0dWFsUmVsYXRpb24oUmFuZ2VWYXIgKnJlbGF0aW9u LCBMaXN0ICp0bGlzdCwgYm9vbCByZXBsYWNlLAogCQkJfQogCiAJCQkvKiBFdmVudFRyaWdn ZXJBbHRlclRhYmxlU3RhcnQgY2FsbGVkIGJ5IFByb2Nlc3NVdGlsaXR5U2xvdyAqLwotCQkJ QWx0ZXJUYWJsZUludGVybmFsKHZpZXdPaWQsIGF0Y21kcywgdHJ1ZSk7CisJCQlBbHRlclRh YmxlSW50ZXJuYWwodmlld09pZCwgYXRjbWRzLCB0cnVlLCBOVUxMKTsKIAogCQkJLyogTWFr ZSB0aGUgbmV3IHZpZXcgY29sdW1ucyB2aXNpYmxlICovCiAJCQlDb21tYW5kQ291bnRlcklu Y3JlbWVudCgpOwpAQCAtMTk2LDcgKzE5Niw3IEBAIERlZmluZVZpcnR1YWxSZWxhdGlvbihS YW5nZVZhciAqcmVsYXRpb24sIExpc3QgKnRsaXN0LCBib29sIHJlcGxhY2UsCiAJCWF0Y21k cyA9IGxpc3RfbWFrZTEoYXRjbWQpOwogCiAJCS8qIEV2ZW50VHJpZ2dlckFsdGVyVGFibGVT dGFydCBjYWxsZWQgYnkgUHJvY2Vzc1V0aWxpdHlTbG93ICovCi0JCUFsdGVyVGFibGVJbnRl cm5hbCh2aWV3T2lkLCBhdGNtZHMsIHRydWUpOworCQlBbHRlclRhYmxlSW50ZXJuYWwodmll d09pZCwgYXRjbWRzLCB0cnVlLCBOVUxMKTsKIAogCQkvKgogCQkgKiBUaGVyZSBpcyB2ZXJ5 IGxpdHRsZSB0byBkbyBoZXJlIHRvIHVwZGF0ZSB0aGUgdmlldydzIGRlcGVuZGVuY2llcy4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKaW5kZXggNTBiNzNhY2U3 ZTMuLjMwY2I5ZTk3YjBkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl TW9kaWZ5VGFibGUuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFi bGUuYwpAQCAtMTM0NCw4ICsxMzQ0LDQ2IEBAIEV4ZWNGb3JQb3J0aW9uT2ZMZWZ0b3ZlcnMo TW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCQl9CiAKIAkJLyogc3RvcmUgdGhlIG5l dyByYW5nZSAqLwotCQlsZWZ0b3ZlclNsb3QtPnR0c192YWx1ZXNbZm9yUG9ydGlvbk9mLT5y YW5nZVZhci0+dmFyYXR0bm8gLSAxXSA9IGxlZnRvdmVyOwotCQlsZWZ0b3ZlclNsb3QtPnR0 c19pc251bGxbZm9yUG9ydGlvbk9mLT5yYW5nZVZhci0+dmFyYXR0bm8gLSAxXSA9IGZhbHNl OworCQlpZiAoZm9yUG9ydGlvbk9mLT5zdGFydFZhcikKKwkJeworCQkJLyogRm9yIFBFUklP RHMgd2UgbXVzdCBzcGxpdCB0aGUgcmFuZ2UgaW50byBzdGFydCBhbmQgZW5kIGNvbHVtbnMg Ki8KKworCQkJUmFuZ2VUeXBlICAqciA9IERhdHVtR2V0UmFuZ2VUeXBlUChsZWZ0b3Zlcik7 CisJCQlSYW5nZUJvdW5kCWxvd2VyOworCQkJUmFuZ2VCb3VuZAl1cHBlcjsKKwkJCWJvb2wJ CWVtcHR5OworCisJCQlyYW5nZV9kZXNlcmlhbGl6ZSh0eXBjYWNoZSwgciwgJmxvd2VyLCAm dXBwZXIsICZlbXB0eSk7CisKKwkJCWlmIChsb3dlci5pbmZpbml0ZSkKKwkJCXsKKwkJCQls ZWZ0b3ZlclNsb3QtPnR0c192YWx1ZXNbZm9yUG9ydGlvbk9mLT5zdGFydFZhci0+dmFyYXR0 bm8gLSAxXSA9IDA7CisJCQkJbGVmdG92ZXJTbG90LT50dHNfaXNudWxsW2ZvclBvcnRpb25P Zi0+c3RhcnRWYXItPnZhcmF0dG5vIC0gMV0gPSB0cnVlOworCQkJfQorCQkJZWxzZQorCQkJ eworCQkJCWxlZnRvdmVyU2xvdC0+dHRzX3ZhbHVlc1tmb3JQb3J0aW9uT2YtPnN0YXJ0VmFy LT52YXJhdHRubyAtIDFdID0gbG93ZXIudmFsOworCQkJCWxlZnRvdmVyU2xvdC0+dHRzX2lz bnVsbFtmb3JQb3J0aW9uT2YtPnN0YXJ0VmFyLT52YXJhdHRubyAtIDFdID0gZmFsc2U7CisJ CQl9CisKKwkJCWlmICh1cHBlci5pbmZpbml0ZSkKKwkJCXsKKwkJCQlsZWZ0b3ZlclNsb3Qt PnR0c192YWx1ZXNbZm9yUG9ydGlvbk9mLT5lbmRWYXItPnZhcmF0dG5vIC0gMV0gPSAwOwor CQkJCWxlZnRvdmVyU2xvdC0+dHRzX2lzbnVsbFtmb3JQb3J0aW9uT2YtPmVuZFZhci0+dmFy YXR0bm8gLSAxXSA9IHRydWU7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJbGVmdG92ZXJT bG90LT50dHNfdmFsdWVzW2ZvclBvcnRpb25PZi0+ZW5kVmFyLT52YXJhdHRubyAtIDFdID0g dXBwZXIudmFsOworCQkJCWxlZnRvdmVyU2xvdC0+dHRzX2lzbnVsbFtmb3JQb3J0aW9uT2Yt PmVuZFZhci0+dmFyYXR0bm8gLSAxXSA9IGZhbHNlOworCQkJfQorCQl9CisJCWVsc2UKKwkJ eworCQkJLyogSnVzdCBzdG9yZSBpbnRvIHRoZSByYW5nZS93aGF0ZXZlciBjb2x1bW4gKi8K KworCQkJbGVmdG92ZXJTbG90LT50dHNfdmFsdWVzW2ZvclBvcnRpb25PZi0+cmFuZ2VWYXIt PnZhcmF0dG5vIC0gMV0gPSBsZWZ0b3ZlcjsKKwkJCWxlZnRvdmVyU2xvdC0+dHRzX2lzbnVs bFtmb3JQb3J0aW9uT2YtPnJhbmdlVmFyLT52YXJhdHRubyAtIDFdID0gZmFsc2U7CisJCX0K IAkJRXhlY01hdGVyaWFsaXplU2xvdChsZWZ0b3ZlclNsb3QpOwogCiAJCS8qCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCmluZGV4IDNmYWU3Mjk1MDEzLi4yMzJkOTE4NmU2MiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9k ZXMvbm9kZUZ1bmNzLmMKQEAgLTE2NTAsNiArMTY1MCw5IEBAIGV4cHJMb2NhdGlvbihjb25z dCBOb2RlICpleHByKQogCQljYXNlIFRfQ29uc3RyYWludDoKIAkJCWxvYyA9ICgoY29uc3Qg Q29uc3RyYWludCAqKSBleHByKS0+bG9jYXRpb247CiAJCQlicmVhazsKKwkJY2FzZSBUX1Bl cmlvZERlZjoKKwkJCWxvYyA9ICgoY29uc3QgUGVyaW9kRGVmICopIGV4cHIpLT5sb2NhdGlv bjsKKwkJCWJyZWFrOwogCQljYXNlIFRfRnVuY3Rpb25QYXJhbWV0ZXI6CiAJCQkvKiBqdXN0 IHVzZSB0eXBlbmFtZSdzIGxvY2F0aW9uICovCiAJCQlsb2MgPSBleHByTG9jYXRpb24oKE5v ZGUgKikgKChjb25zdCBGdW5jdGlvblBhcmFtZXRlciAqKSBleHByKS0+YXJnVHlwZSk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYwppbmRleCBiNjc4YTRhNGM2OC4uY2NkODQzN2UyYTAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYwpAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9z dHJhdG51bS5oIgogI2luY2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ19hbS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcGVyaW9kLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCkBAIC0xMjY1LDcgKzEyNjYsMTEgQEAgdHJh bnNmb3JtRm9yUG9ydGlvbk9mQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAljaGFyICpy YW5nZV9uYW1lID0gZm9yUG9ydGlvbk9mLT5yYW5nZV9uYW1lOwogCWNoYXIgKnJhbmdlX3R5 cGVfbmFtZXNwYWNlID0gTlVMTDsKIAljaGFyICpyYW5nZV90eXBlX25hbWUgPSBOVUxMOwot CWludCByYW5nZV9hdHRubyA9IEludmFsaWRBdHRyTnVtYmVyOworCUF0dHJOdW1iZXIgcmFu Z2VfYXR0bm8gPSBJbnZhbGlkQXR0ck51bWJlcjsKKwlBdHRyTnVtYmVyIHN0YXJ0X2F0dG5v ID0gSW52YWxpZEF0dHJOdW1iZXI7CisJQXR0ck51bWJlciBlbmRfYXR0bm8gPSBJbnZhbGlk QXR0ck51bWJlcjsKKwljaGFyICpzdGFydGNvbG5hbWUgPSBOVUxMOworCWNoYXIgKmVuZGNv bG5hbWUgPSBOVUxMOwogCUZvcm1fcGdfYXR0cmlidXRlIGF0dHI7CiAJT2lkCW9wY2xhc3M7 CiAJT2lkIG9wZmFtaWx5OwpAQCAtMTMwOSw2ICsxMzE0LDUzIEBAIHRyYW5zZm9ybUZvclBv cnRpb25PZkNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJaWYgKCFnZXRfdHlwbmFtZV9h bmRfbmFtZXNwYWNlKGF0dHItPmF0dHR5cGlkLCAmcmFuZ2VfdHlwZV9uYW1lLCAmcmFuZ2Vf dHlwZV9uYW1lc3BhY2UpKQogCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBm b3IgdHlwZSAldSIsIGF0dHItPmF0dHR5cGlkKTsKIAorCS8qCisJICogSWYgd2UgYXJlIHVz aW5nIGEgUEVSSU9ELCB3ZSBuZWVkIHRoZSBzdGFydCAmIGVuZCBjb2x1bW5zLgorCSAqIElm IHRoZSBhdHRyaWJ1dGUgaXQgbm90IGEgR0VORVJBVEVEIGNvbHVtbiwgd2UgbmVlZG4ndCBx dWVyeSBwZ19wZXJpb2QuCisJICovCisJaWYgKGF0dHItPmF0dGdlbmVyYXRlZCA9PSBBVFRS SUJVVEVfR0VORVJBVEVEX1NUT1JFRCkKKwl7CisJCUhlYXBUdXBsZSBwZXJUdXBsZSA9IFNl YXJjaFN5c0NhY2hlMihQRVJJT0ROQU1FLAorCQkJCQkJCQkJCQkgT2JqZWN0SWRHZXREYXR1 bShSZWxhdGlvbkdldFJlbGlkKHRhcmdldHJlbCkpLAorCQkJCQkJCQkJCQkgUG9pbnRlckdl dERhdHVtKHJhbmdlX25hbWUpKTsKKwkJaWYgKEhlYXBUdXBsZUlzVmFsaWQocGVyVHVwbGUp KQorCQl7CisJCQlGb3JtX3BnX3BlcmlvZCBwZXIgPSAoRm9ybV9wZ19wZXJpb2QpIEdFVFNU UlVDVChwZXJUdXBsZSk7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBwZXJhdHRyOworCisJCQlz dGFydF9hdHRubyA9IHBlci0+cGVyc3RhcnQ7CisJCQllbmRfYXR0bm8gPSBwZXItPnBlcmVu ZDsKKworCQkJcGVyYXR0ciA9IFR1cGxlRGVzY0F0dHIodGFyZ2V0cmVsLT5yZF9hdHQsIHN0 YXJ0X2F0dG5vIC0gMSk7CisJCQlzdGFydGNvbG5hbWUgPSBOYW1lU3RyKHBlcmF0dHItPmF0 dG5hbWUpOworCisJCQlyZXN1bHQtPnN0YXJ0VmFyID0gbWFrZVZhcigKKwkJCQkJcnRpbmRl eCwKKwkJCQkJc3RhcnRfYXR0bm8sCisJCQkJCXBlcmF0dHItPmF0dHR5cGlkLAorCQkJCQlw ZXJhdHRyLT5hdHR0eXBtb2QsCisJCQkJCXBlcmF0dHItPmF0dGNvbGxhdGlvbiwKKwkJCQkJ MCk7CisKKwkJCXBlcmF0dHIgPSBUdXBsZURlc2NBdHRyKHRhcmdldHJlbC0+cmRfYXR0LCBl bmRfYXR0bm8gLSAxKTsKKwkJCWVuZGNvbG5hbWUgPSBOYW1lU3RyKHBlcmF0dHItPmF0dG5h bWUpOworCQkJcmVzdWx0LT5lbmRWYXIgPSBtYWtlVmFyKAorCQkJCQlydGluZGV4LAorCQkJ CQllbmRfYXR0bm8sCisJCQkJCXBlcmF0dHItPmF0dHR5cGlkLAorCQkJCQlwZXJhdHRyLT5h dHR0eXBtb2QsCisJCQkJCXBlcmF0dHItPmF0dGNvbGxhdGlvbiwKKwkJCQkJMCk7CisKKwkJ CVJlbGVhc2VTeXNDYWNoZShwZXJUdXBsZSk7CisJCX0KKwl9CisKKwlpZiAoc3RhcnRfYXR0 bm8gPT0gSW52YWxpZEF0dHJOdW1iZXIpCisJeworCQlyZXN1bHQtPnN0YXJ0VmFyID0gTlVM TDsKKwkJcmVzdWx0LT5lbmRWYXIgPSBOVUxMOworCX0KIAogCWlmIChmb3JQb3J0aW9uT2Yt PnRhcmdldCkKIAkJLyoKQEAgLTEzNzYsNyArMTQyOCwxMCBAQCB0cmFuc2Zvcm1Gb3JQb3J0 aW9uT2ZDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCXsKIAkJLyoKIAkJICogTm93IG1h a2Ugc3VyZSB3ZSB1cGRhdGUgdGhlIHN0YXJ0L2VuZCB0aW1lIG9mIHRoZSByZWNvcmQuCi0J CSAqIEZvciBhIHJhbmdlIGNvbCAocikgdGhpcyBpcyBgciA9IHIgKiB0YXJnZXRSYW5nZWAu CisJCSAqIEZvciBhIHJhbmdlL2V0YyBjb2wgKHIpIHRoaXMgaXMgYHIgPSByICogdGFyZ2V0 UmFuZ2VgLgorCQkgKiBGb3IgYSBQRVJJT0Qgd2l0aCBjb2xzIChzLCBlKSB0aGlzIGlzIGBz ID0gbG93ZXIodHNyYW5nZShzLCBlKSAqIHRhcmdldFJhbmdlKWAKKwkJICogYW5kIGBlID0g dXBwZXIodHNyYW5nZShzLCBlKSAqIHRhcmdldFJhbmdlYCAob2YgY291cnNlIG5vdCBuZWNl c3NhcmlseSB3aXRoCisJCSAqIHRzcmFuZ2UsIGJ1dCB3aXRoIHdoYXRldmVyIHJhbmdlIHR5 cGUgaXMgdXNlZCB0aGVyZSkuCiAJCSAqLwogCQlPaWQgZnVuY25hbWVzcGFjZTsKIAkJY2hh ciAqZnVuY25hbWU7CkBAIC0xNDA2LDEyICsxNDYxLDQ0IEBAIHRyYW5zZm9ybUZvclBvcnRp b25PZkNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJbGlzdF9tYWtlMihjb3B5T2Jq ZWN0KHJhbmdlVmFyKSwgdGFyZ2V0RXhwciksCiAJCQkJQ09FUkNFX0VYUExJQ0lUX0NBTEws CiAJCQkJZm9yUG9ydGlvbk9mLT5sb2NhdGlvbik7Ci0JCXJhbmdlVExFRXhwciA9IChFeHBy ICopIHRyYW5zZm9ybUV4cHIocHN0YXRlLCAoTm9kZSAqKSByYW5nZVRMRUV4cHIsIEVYUFJf S0lORF9VUERBVEVfUE9SVElPTik7CiAKLQkJLyogTWFrZSBhIFRMRSB0byBzZXQgdGhlIHJh bmdlIGNvbHVtbiAqLworCQkvKiBNYWtlIGEgVExFIHRvIHNldCB0aGUgcmFuZ2UgY29sdW1u IG9yIHN0YXJ0L2VuZCBjb2x1bW5zICovCiAJCXJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0ID0g TklMOwotCQl0bGUgPSBtYWtlVGFyZ2V0RW50cnkocmFuZ2VUTEVFeHByLCByYW5nZV9hdHRu bywgcmFuZ2VfbmFtZSwgZmFsc2UpOwotCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IGxh cHBlbmQocmVzdWx0LT5yYW5nZVRhcmdldExpc3QsIHRsZSk7CisKKwkJaWYgKHJlc3VsdC0+ c3RhcnRWYXIpCisJCXsKKwkJCUV4cHIgKmJvdW5kVExFRXhwcjsKKworCQkJLyogc2V0IHRo ZSBzdGFydCBjb2x1bW4gKi8KKwkJCWJvdW5kVExFRXhwciA9IChFeHByICopIG1ha2VGdW5j Q2FsbChTeXN0ZW1GdW5jTmFtZSgibG93ZXIiKSwKKwkJCQkJbGlzdF9tYWtlMShyYW5nZVRM RUV4cHIpLAorCQkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJCQkJZm9yUG9ydGlvbk9m LT5sb2NhdGlvbik7CisJCQlib3VuZFRMRUV4cHIgPSAoRXhwciAqKSB0cmFuc2Zvcm1FeHBy KHBzdGF0ZSwgKE5vZGUgKikgYm91bmRUTEVFeHByLCBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJ T04pOworCQkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGJvdW5kVExFRXhwciwgc3RhcnRfYXR0 bm8sIHN0YXJ0Y29sbmFtZSwgZmFsc2UpOworCQkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3Qg PSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJnZXRMaXN0LCB0bGUpOworCisJCQkvKiBzZXQg dGhlIGVuZCBjb2x1bW4gKi8KKwkJCWJvdW5kVExFRXhwciA9IChFeHByICopIG1ha2VGdW5j Q2FsbChTeXN0ZW1GdW5jTmFtZSgidXBwZXIiKSwKKwkJCQkJbGlzdF9tYWtlMShyYW5nZVRM RUV4cHIpLAorCQkJCQlDT0VSQ0VfRVhQTElDSVRfQ0FMTCwKKwkJCQkJZm9yUG9ydGlvbk9m LT5sb2NhdGlvbik7CisJCQlib3VuZFRMRUV4cHIgPSAoRXhwciAqKSB0cmFuc2Zvcm1FeHBy KHBzdGF0ZSwgKE5vZGUgKikgYm91bmRUTEVFeHByLCBFWFBSX0tJTkRfVVBEQVRFX1BPUlRJ T04pOworCQkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGJvdW5kVExFRXhwciwgZW5kX2F0dG5v LCBlbmRjb2xuYW1lLCBmYWxzZSk7CisJCQlyZXN1bHQtPnJhbmdlVGFyZ2V0TGlzdCA9IGxh cHBlbmQocmVzdWx0LT5yYW5nZVRhcmdldExpc3QsIHRsZSk7CisKKwkJCS8qIE1hcmsgdGhl IHN0YXJ0L2VuZCBjb2x1bW5zIGFzIHJlcXVpcmluZyB1cGRhdGUgcGVybWlzc2lvbnMgKi8K KwkJCXRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMgPSBibXNfYWRkX21lbWJlcih0YXJn ZXRfcGVybWluZm8tPnVwZGF0ZWRDb2xzLAorCQkJCQkJCQkJCQkJCQkgIHN0YXJ0X2F0dG5v IC0gRmlyc3RMb3dJbnZhbGlkSGVhcEF0dHJpYnV0ZU51bWJlcik7CisJCQl0YXJnZXRfcGVy bWluZm8tPnVwZGF0ZWRDb2xzID0gYm1zX2FkZF9tZW1iZXIodGFyZ2V0X3Blcm1pbmZvLT51 cGRhdGVkQ29scywKKwkJCQkJCQkJCQkJCQkJICBlbmRfYXR0bm8gLSBGaXJzdExvd0ludmFs aWRIZWFwQXR0cmlidXRlTnVtYmVyKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCXJhbmdlVExF RXhwciA9IChFeHByICopIHRyYW5zZm9ybUV4cHIocHN0YXRlLCAoTm9kZSAqKSByYW5nZVRM RUV4cHIsIEVYUFJfS0lORF9VUERBVEVfUE9SVElPTik7CisJCQl0bGUgPSBtYWtlVGFyZ2V0 RW50cnkocmFuZ2VUTEVFeHByLCByYW5nZV9hdHRubywgcmFuZ2VfbmFtZSwgZmFsc2UpOwor CQkJcmVzdWx0LT5yYW5nZVRhcmdldExpc3QgPSBsYXBwZW5kKHJlc3VsdC0+cmFuZ2VUYXJn ZXRMaXN0LCB0bGUpOworCQl9CiAKIAkJLyogTWFyayB0aGUgcmFuZ2UgY29sdW1uIGFzIHJl cXVpcmluZyB1cGRhdGUgcGVybWlzc2lvbnMgKi8KIAkJdGFyZ2V0X3Blcm1pbmZvLT51cGRh dGVkQ29scyA9IGJtc19hZGRfbWVtYmVyKHRhcmdldF9wZXJtaW5mby0+dXBkYXRlZENvbHMs CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQppbmRleCBhNzgzZDlkZjMwNC4uNWFmYTFhMGQ1YzEgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQpAQCAtNTk2LDcgKzU5Niw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZl Vmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7 CiAldHlwZSA8a2V5d29yZD4gY29sX25hbWVfa2V5d29yZCByZXNlcnZlZF9rZXl3b3JkCiAl dHlwZSA8a2V5d29yZD4gYmFyZV9sYWJlbF9rZXl3b3JkCiAKLSV0eXBlIDxub2RlPglUYWJs ZUNvbnN0cmFpbnQgVGFibGVMaWtlQ2xhdXNlCisldHlwZSA8bm9kZT4JVGFibGVDb25zdHJh aW50IFRhYmxlTGlrZUNsYXVzZSBUYWJsZVBlcmlvZAogJXR5cGUgPGl2YWw+CVRhYmxlTGlr ZU9wdGlvbkxpc3QgVGFibGVMaWtlT3B0aW9uCiAldHlwZSA8c3RyPgkJY29sdW1uX2NvbXBy ZXNzaW9uIG9wdF9jb2x1bW5fY29tcHJlc3Npb24gY29sdW1uX3N0b3JhZ2Ugb3B0X2NvbHVt bl9zdG9yYWdlCiAldHlwZSA8bGlzdD4JQ29sUXVhbExpc3QKQEAgLTI2MjYsNiArMjYyNiwy NCBAQCBhbHRlcl90YWJsZV9jbWQ6CiAJCQkJCW4tPmRlZiA9IChOb2RlICopICQ0OwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJLyogQUxURVIgVEFCTEUgPG5hbWU+IEFE RCBQRVJJT0QgRk9SIDxuYW1lPiAoPG5hbWU+LCA8bmFtZT4pICovCisJCQl8IEFERF9QIFRh YmxlUGVyaW9kCisJCQkJeworCQkJCQlBbHRlclRhYmxlQ21kICpuID0gbWFrZU5vZGUoQWx0 ZXJUYWJsZUNtZCk7CisJCQkJCW4tPnN1YnR5cGUgPSBBVF9BZGRQZXJpb2Q7CisJCQkJCW4t PmRlZiA9ICQyOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJCQkvKiBBTFRFUiBU QUJMRSA8bmFtZT4gRFJPUCBQRVJJT0QgRk9SIDxuYW1lPiBbUkVTVFJJQ1R8Q0FTQ0FERV0g Ki8KKwkJCXwgRFJPUCBQRVJJT0QgRk9SIG5hbWUgb3B0X2Ryb3BfYmVoYXZpb3IKKwkJCQl7 CisJCQkJCUFsdGVyVGFibGVDbWQgKm4gPSBtYWtlTm9kZShBbHRlclRhYmxlQ21kKTsKKwkJ CQkJbi0+c3VidHlwZSA9IEFUX0Ryb3BQZXJpb2Q7CisJCQkJCW4tPm5hbWUgPSAkNDsKKwkJ CQkJbi0+YmVoYXZpb3IgPSAkNTsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJ CQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCQkvKiBBTFRFUiBUQUJMRSA8bmFtZT4gQURE IENPTlNUUkFJTlQgLi4uICovCiAJCQl8IEFERF9QIFRhYmxlQ29uc3RyYWludAogCQkJCXsK QEAgLTM3NTUsOCArMzc3MywxMCBAQCBUYWJsZUVsZW1lbnQ6CiAJCQljb2x1bW5EZWYJCQkJ CQkJeyAkJCA9ICQxOyB9CiAJCQl8IFRhYmxlTGlrZUNsYXVzZQkJCQkJeyAkJCA9ICQxOyB9 CiAJCQl8IFRhYmxlQ29uc3RyYWludAkJCQkJeyAkJCA9ICQxOyB9CisJCQl8IFRhYmxlUGVy aW9kCQkJCQkJeyAkJCA9ICQxOyB9CiAJCTsKIAorCiBUeXBlZFRhYmxlRWxlbWVudDoKIAkJ CWNvbHVtbk9wdGlvbnMJCQkJCQl7ICQkID0gJDE7IH0KIAkJCXwgVGFibGVDb25zdHJhaW50 CQkJCQl7ICQkID0gJDE7IH0KQEAgLTQxMDgsNiArNDEyOCwxOSBAQCBUYWJsZUxpa2VPcHRp b246CiAJCTsKIAogCitUYWJsZVBlcmlvZDoKKwkJCVBFUklPRCBGT1IgbmFtZSAnKCcgbmFt ZSAnLCcgbmFtZSAnKScgb3B0X2RlZmluaXRpb24KKwkJCQl7CisJCQkJCVBlcmlvZERlZiAq biA9IG1ha2VOb2RlKFBlcmlvZERlZik7CisJCQkJCW4tPnBlcmlvZG5hbWUgPSAkMzsKKwkJ CQkJbi0+c3RhcnRjb2xuYW1lID0gJDU7CisJCQkJCW4tPmVuZGNvbG5hbWUgPSAkNzsKKwkJ CQkJbi0+b3B0aW9ucyA9ICQ5OworCQkJCQluLT5sb2NhdGlvbiA9IEAxOworCQkJCQkkJCA9 IChOb2RlICopIG47CisJCQkJfQorCQk7CisKIC8qIENvbnN0cmFpbnRFbGVtIHNwZWNpZmll cyBjb25zdHJhaW50IHN5bnRheCB3aGljaCBpcyBub3QgZW1iZWRkZWQgaW50bwogICoJYSBj b2x1bW4gZGVmaW5pdGlvbi4gQ29sQ29uc3RyYWludEVsZW0gc3BlY2lmaWVzIHRoZSBlbWJl ZGRlZCBmb3JtLgogICogLSB0aG9tYXMgMTk5Ny0xMi0wMwpAQCAtNzE3NCw2ICs3MjA3LDE0 IEBAIENvbW1lbnRTdG10OgogCQkJCQluLT5jb21tZW50ID0gJDk7CiAJCQkJCSQkID0gKE5v ZGUgKikgbjsKIAkJCQl9CisJCQl8IENPTU1FTlQgT04gUEVSSU9EIGFueV9uYW1lIElTIGNv bW1lbnRfdGV4dAorCQkJCXsKKwkJCQkJQ29tbWVudFN0bXQgKm4gPSBtYWtlTm9kZShDb21t ZW50U3RtdCk7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfUEVSSU9EOworCQkJCQluLT5v YmplY3QgPSAoTm9kZSAqKSAkNDsKKwkJCQkJbi0+Y29tbWVudCA9ICQ2OworCQkJCQkkJCA9 IChOb2RlICopIG47CisJCQkJfQogCQkJfCBDT01NRU5UIE9OIExBUkdFX1AgT0JKRUNUX1Ag TnVtZXJpY09ubHkgSVMgY29tbWVudF90ZXh0CiAJCQkJewogCQkJCQlDb21tZW50U3RtdCAq biA9IG1ha2VOb2RlKENvbW1lbnRTdG10KTsKQEAgLTE3NDAxLDcgKzE3NDQyLDYgQEAgdW5y ZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBQQVJUSVRJT04KIAkJCXwgUEFTU0lORwogCQkJfCBQ QVNTV09SRAotCQkJfCBQRVJJT0QKIAkJCXwgUExBTlMKIAkJCXwgUE9MSUNZCiAJCQl8IFBP UlRJT04KQEAgLTE3Njk2LDYgKzE3NzM2LDcgQEAgcmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwg T05MWQogCQkJfCBPUgogCQkJfCBPUkRFUgorCQkJfCBQRVJJT0QKIAkJCXwgUExBQ0lORwog CQkJfCBQUklNQVJZCiAJCQl8IFJFRkVSRU5DRVMKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Jl bGF0aW9uLmMKaW5kZXggNDI3YjczMjVkYjguLmYyODM0ZGU2NTNlIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfcmVsYXRpb24uYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImFj Y2Vzcy90YWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvaGVhcC5oIgogI2luY2x1ZGUgImNh dGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2QuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5j bHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zMTgzLDYgKzMxODQsNyBAQCBleHBhbmRO U0l0ZW1BdHRycyhQYXJzZVN0YXRlICpwc3RhdGUsIFBhcnNlTmFtZXNwYWNlSXRlbSAqbnNp dGVtLAogCQkJCSAgaW50IHN1YmxldmVsc191cCwgYm9vbCByZXF1aXJlX2NvbF9wcml2cywg aW50IGxvY2F0aW9uKQogewogCVJhbmdlVGJsRW50cnkgKnJ0ZSA9IG5zaXRlbS0+cF9ydGU7 CisJQml0bWFwc2V0ICAqcGVyaW9kYXR0cyA9IE5VTEw7CiAJUlRFUGVybWlzc2lvbkluZm8g KnBlcm1pbmZvID0gbnNpdGVtLT5wX3Blcm1pbmZvOwogCUxpc3QJICAgKm5hbWVzLAogCQkJ ICAgKnZhcnM7CkBAIC0zMjA2LDEyICszMjA4LDIwIEBAIGV4cGFuZE5TSXRlbUF0dHJzKFBh cnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiAJCXBlcm1p bmZvLT5yZXF1aXJlZFBlcm1zIHw9IEFDTF9TRUxFQ1Q7CiAJfQogCisJLyogR2V0IFBFUklP RCBjb2x1bW5zIHRvIGV4Y2x1ZGUgKi8KKwlpZiAocnRlLT5ydGVraW5kID09IFJURV9SRUxB VElPTikKKwkJcGVyaW9kYXR0cyA9IGdldF9wZXJpb2RfYXR0bm9zKHJ0ZS0+cmVsaWQpOwor CiAJZm9yYm90aChuYW1lLCBuYW1lcywgdmFyLCB2YXJzKQogCXsKIAkJY2hhcgkgICAqbGFi ZWwgPSBzdHJWYWwobGZpcnN0KG5hbWUpKTsKIAkJVmFyCQkgICAqdmFybm9kZSA9IChWYXIg KikgbGZpcnN0KHZhcik7CiAJCVRhcmdldEVudHJ5ICp0ZTsKIAorCQkvKiBJZiB0aGlzIGNv bHVtbiBpcyBmcm9tIGEgUEVSSU9ELCBza2lwIGl0ICovCisJCWlmIChibXNfaXNfbWVtYmVy KHZhcm5vZGUtPnZhcmF0dG5vLCBwZXJpb2RhdHRzKSkKKwkJCQljb250aW51ZTsKKwogCQl0 ZSA9IG1ha2VUYXJnZXRFbnRyeSgoRXhwciAqKSB2YXJub2RlLAogCQkJCQkJCSAoQXR0ck51 bWJlcikgcHN0YXRlLT5wX25leHRfcmVzbm8rKywKIAkJCQkJCQkgbGFiZWwsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCBjN2VmZDhkOGNlZS4uZDM2YzNiODI3Nzcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtMzcsNiArMzcsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvcGdfY29uc3RyYWludC5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfb3BjbGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3RhdGlz dGljX2V4dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNv bW1hbmRzL2NvbW1lbnQuaCIKQEAgLTgwLDYgKzgxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QKIAli b29sCQlpc2ZvcmVpZ247CQkvKiB0cnVlIGlmIENSRUFURS9BTFRFUiBGT1JFSUdOIFRBQkxF ICovCiAJYm9vbAkJaXNhbHRlcjsJCS8qIHRydWUgaWYgYWx0ZXJpbmcgZXhpc3RpbmcgdGFi bGUgKi8KIAlMaXN0CSAgICpjb2x1bW5zOwkJLyogQ29sdW1uRGVmIGl0ZW1zICovCisJTGlz dAkgICAqcGVyaW9kczsJCS8qIFBlcmlvZERlZiBpdGVtcyAqLwogCUxpc3QJICAgKmNrY29u c3RyYWludHM7CS8qIENIRUNLIGNvbnN0cmFpbnRzICovCiAJTGlzdAkgICAqbm5jb25zdHJh aW50czsJLyogTk9UIE5VTEwgY29uc3RyYWludHMgKi8KIAlMaXN0CSAgICpma2NvbnN0cmFp bnRzOwkvKiBGT1JFSUdOIEtFWSBjb25zdHJhaW50cyAqLwpAQCAtMTExLDYgKzExMyw4IEBA IHR5cGVkZWYgc3RydWN0CiAKIHN0YXRpYyB2b2lkIHRyYW5zZm9ybUNvbHVtbkRlZmluaXRp b24oQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwKIAkJCQkJCQkJCSAgQ29sdW1uRGVmICpjb2x1 bW4pOworc3RhdGljIHZvaWQgdHJhbnNmb3JtVGFibGVQZXJpb2QoQ3JlYXRlU3RtdENvbnRl eHQgKmN4dCwKKwkJCQkJCQkJIFBlcmlvZERlZiAqcGVyaW9kKTsKIHN0YXRpYyB2b2lkIHRy YW5zZm9ybVRhYmxlQ29uc3RyYWludChDcmVhdGVTdG10Q29udGV4dCAqY3h0LAogCQkJCQkJ CQkJIENvbnN0cmFpbnQgKmNvbnN0cmFpbnQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtVGFi bGVMaWtlQ2xhdXNlKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsCkBAIC0yNDAsNiArMjQ0LDcg QEAgdHJhbnNmb3JtQ3JlYXRlU3RtdChDcmVhdGVTdG10ICpzdG10LCBjb25zdCBjaGFyICpx dWVyeVN0cmluZykKIAljeHQuaW5oUmVsYXRpb25zID0gc3RtdC0+aW5oUmVsYXRpb25zOwog CWN4dC5pc2FsdGVyID0gZmFsc2U7CiAJY3h0LmNvbHVtbnMgPSBOSUw7CisJY3h0LnBlcmlv ZHMgPSBOSUw7CiAJY3h0LmNrY29uc3RyYWludHMgPSBOSUw7CiAJY3h0Lm5uY29uc3RyYWlu dHMgPSBOSUw7CiAJY3h0LmZrY29uc3RyYWludHMgPSBOSUw7CkBAIC0yODAsNiArMjg1LDEw IEBAIHRyYW5zZm9ybUNyZWF0ZVN0bXQoQ3JlYXRlU3RtdCAqc3RtdCwgY29uc3QgY2hhciAq cXVlcnlTdHJpbmcpCiAJCQkJdHJhbnNmb3JtQ29sdW1uRGVmaW5pdGlvbigmY3h0LCAoQ29s dW1uRGVmICopIGVsZW1lbnQpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIFRfUGVyaW9kRGVm OgorCQkJCXRyYW5zZm9ybVRhYmxlUGVyaW9kKCZjeHQsIChQZXJpb2REZWYgKikgZWxlbWVu dCk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgVF9Db25zdHJhaW50OgogCQkJCXRyYW5zZm9y bVRhYmxlQ29uc3RyYWludCgmY3h0LCAoQ29uc3RyYWludCAqKSBlbGVtZW50KTsKIAkJCQli cmVhazsKQEAgLTM0Nyw2ICszNTYsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTdG10KENyZWF0ZVN0 bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nKQogCSAqIE91dHB1dCByZXN1bHRz LgogCSAqLwogCXN0bXQtPnRhYmxlRWx0cyA9IGN4dC5jb2x1bW5zOworCXN0bXQtPnBlcmlv ZHMgPSBjeHQucGVyaW9kczsKIAlzdG10LT5jb25zdHJhaW50cyA9IGN4dC5ja2NvbnN0cmFp bnRzOwogCXN0bXQtPm5uY29uc3RyYWludHMgPSBjeHQubm5jb25zdHJhaW50czsKIApAQCAt OTIyLDYgKzkzMiw5MSBAQCB0cmFuc2Zvcm1Db2x1bW5EZWZpbml0aW9uKENyZWF0ZVN0bXRD b250ZXh0ICpjeHQsIENvbHVtbkRlZiAqY29sdW1uKQogCX0KIH0KIAordm9pZAordHJhbnNm b3JtUGVyaW9kT3B0aW9ucyhQZXJpb2REZWYgKnBlcmlvZCkKK3sKKwlMaXN0Q2VsbCAgICpv cHRpb247CisJRGVmRWxlbQkgICAqZGNvbnN0cmFpbnRuYW1lID0gTlVMTDsKKwlEZWZFbGVt CSAgICpkcmFuZ2V0eXBlbmFtZSA9IE5VTEw7CisJRGVmRWxlbQkgICAqZGNvbGV4aXN0cyA9 IE5VTEw7CisKKwlmb3JlYWNoKG9wdGlvbiwgcGVyaW9kLT5vcHRpb25zKQorCXsKKwkJRGVm RWxlbSAgICAqZGVmZWwgPSAoRGVmRWxlbSAqKSBsZmlyc3Qob3B0aW9uKTsKKworCQlpZiAo c3RyY21wKGRlZmVsLT5kZWZuYW1lLCAiY2hlY2tfY29uc3RyYWludF9uYW1lIikgPT0gMCkK KwkJeworCQkJaWYgKGRjb25zdHJhaW50bmFtZSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJIGVycm1zZygiY29u ZmxpY3Rpbmcgb3IgcmVkdW5kYW50IG9wdGlvbnMiKSkpOworCQkJZGNvbnN0cmFpbnRuYW1l ID0gZGVmZWw7CisJCX0KKwkJZWxzZSBpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAicmFu Z2V0eXBlIikgPT0gMCkKKwkJeworCQkJaWYgKGRyYW5nZXR5cGVuYW1lKQorCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJ CQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIpKSk7CisJCQlk cmFuZ2V0eXBlbmFtZSA9IGRlZmVsOworCQl9CisJCWVsc2UgaWYgKHN0cmNtcChkZWZlbC0+ ZGVmbmFtZSwgImNvbGV4aXN0cyIpID09IDApCisJCXsKKwkJCWlmIChkY29sZXhpc3RzKQor CQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCisJCQkJCQkgZXJybXNnKCJjb25mbGljdGluZyBvciByZWR1bmRhbnQgb3B0aW9ucyIp KSk7CisJCQlkY29sZXhpc3RzID0gZGVmZWw7CisJCX0KKwkJZWxzZQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkgZXJy bXNnKCJvcHRpb24gXCIlc1wiIG5vdCByZWNvZ25pemVkIiwgZGVmZWwtPmRlZm5hbWUpKSk7 CisJfQorCisJaWYgKGRjb25zdHJhaW50bmFtZSAhPSBOVUxMKQorCQlwZXJpb2QtPmNvbnN0 cmFpbnRuYW1lID0gZGVmR2V0U3RyaW5nKGRjb25zdHJhaW50bmFtZSk7CisJZWxzZQorCQlw ZXJpb2QtPmNvbnN0cmFpbnRuYW1lID0gTlVMTDsKKworCWlmIChkcmFuZ2V0eXBlbmFtZSAh PSBOVUxMKQorCQlwZXJpb2QtPnJhbmdldHlwZW5hbWUgPSBkZWZHZXRTdHJpbmcoZHJhbmdl dHlwZW5hbWUpOworCWVsc2UKKwkJcGVyaW9kLT5yYW5nZXR5cGVuYW1lID0gTlVMTDsKKwor CWlmIChkY29sZXhpc3RzICE9IE5VTEwpCisJCXBlcmlvZC0+Y29sZXhpc3RzID0gZGVmR2V0 Qm9vbGVhbihkY29sZXhpc3RzKTsKKwllbHNlCisJCXBlcmlvZC0+Y29sZXhpc3RzID0gZmFs c2U7Cit9CisKKy8qCisgKiB0cmFuc2Zvcm1UYWJsZVBlcmlvZAorICoJCXRyYW5zZm9ybSBh IFBlcmlvZERlZiBub2RlIHdpdGhpbiBDUkVBVEUgVEFCTEUKKyAqLworc3RhdGljIHZvaWQK K3RyYW5zZm9ybVRhYmxlUGVyaW9kKENyZWF0ZVN0bXRDb250ZXh0ICpjeHQsIFBlcmlvZERl ZiAqcGVyaW9kKQoreworCWlmIChzdHJjbXAocGVyaW9kLT5wZXJpb2RuYW1lLCAic3lzdGVt X3RpbWUiKSA9PSAwKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJQRVJJT0QgRk9SIFNZ U1RFTV9USU1FIGlzIG5vdCBzdXBwb3J0ZWQiKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlv bihjeHQtPnBzdGF0ZSwKKwkJCQkJCQkJCQlwZXJpb2QtPmxvY2F0aW9uKSkpOworCisJaWYg KHN0cmNtcChwZXJpb2QtPnN0YXJ0Y29sbmFtZSwgcGVyaW9kLT5lbmRjb2xuYW1lKSA9PSAw KQorCQllcmVwb3J0KEVSUk9SLCAoZXJybXNnKCJjb2x1bW4gXCIlc1wiIGNhbid0IGJlIHRo ZSBzdGFydCBhbmQgZW5kIGNvbHVtbiBmb3IgcGVyaW9kIFwiJXNcIiIsCisJCQkJCQlwZXJp b2QtPnN0YXJ0Y29sbmFtZSwgcGVyaW9kLT5wZXJpb2RuYW1lKSkpOworCisJLyoKKwkgKiBE ZXRlcm1pbmUgdGhlIGNvbHVtbiBpbmZvIGFuZCByYW5nZSB0eXBlIHNvIHRoYXQgdHJhbnNm b3JtSW5kZXhDb25zdHJhaW50cworCSAqIGtub3dzIGhvdyB0byBjcmVhdGUgUFJJTUFSWSBL RVkvVU5JUVVFIGNvbnN0cmFpbnRzIHVzaW5nIHRoaXMgUEVSSU9ELgorCSAqLworCXRyYW5z Zm9ybVBlcmlvZE9wdGlvbnMocGVyaW9kKTsKKworCWN4dC0+cGVyaW9kcyA9IGxhcHBlbmQo Y3h0LT5wZXJpb2RzLCBwZXJpb2QpOworfQorCiAvKgogICogdHJhbnNmb3JtVGFibGVDb25z dHJhaW50CiAgKgkJdHJhbnNmb3JtIGEgQ29uc3RyYWludCBub2RlIHdpdGhpbiBDUkVBVEUg VEFCTEUgb3IgQUxURVIgVEFCTEUKQEAgLTEwMTIsNiArMTEwNyw3IEBAIHRyYW5zZm9ybVRh YmxlTGlrZUNsYXVzZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBUYWJsZUxpa2VDbGF1c2Ug KnRhYmxlX2xpa2VfY2xhCiAJQXR0ck51bWJlcglwYXJlbnRfYXR0bm87CiAJUmVsYXRpb24J cmVsYXRpb247CiAJVHVwbGVEZXNjCXR1cGxlRGVzYzsKKwlCaXRtYXBzZXQgICpwZXJpb2Rh dHRzOwogCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CiAJY2hhcgkgICAqY29tbWVudDsKIAlQYXJz ZUNhbGxiYWNrU3RhdGUgcGNic3RhdGU7CkBAIC0xMDY0LDYgKzExNjAsNyBAQCB0cmFuc2Zv cm1UYWJsZUxpa2VDbGF1c2UoQ3JlYXRlU3RtdENvbnRleHQgKmN4dCwgVGFibGVMaWtlQ2xh dXNlICp0YWJsZV9saWtlX2NsYQogCX0KIAogCXR1cGxlRGVzYyA9IFJlbGF0aW9uR2V0RGVz Y3IocmVsYXRpb24pOworCXBlcmlvZGF0dHMgPSBnZXRfcGVyaW9kX2F0dG5vcyhSZWxhdGlv bkdldFJlbGlkKHJlbGF0aW9uKSk7CiAKIAkvKgogCSAqIEluc2VydCB0aGUgY29waWVkIGF0 dHJpYnV0ZXMgaW50byB0aGUgY3h0IGZvciB0aGUgbmV3IHRhYmxlIGRlZmluaXRpb24uCkBA IC0xMDczLDEwICsxMTcwLDE4IEBAIHRyYW5zZm9ybVRhYmxlTGlrZUNsYXVzZShDcmVhdGVT dG10Q29udGV4dCAqY3h0LCBUYWJsZUxpa2VDbGF1c2UgKnRhYmxlX2xpa2VfY2xhCiAJZm9y IChwYXJlbnRfYXR0bm8gPSAxOyBwYXJlbnRfYXR0bm8gPD0gdHVwbGVEZXNjLT5uYXR0czsK IAkJIHBhcmVudF9hdHRubysrKQogCXsKLQkJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cmlidXRl ID0gVHVwbGVEZXNjQXR0cih0dXBsZURlc2MsCi0JCQkJCQkJCQkJCQkJcGFyZW50X2F0dG5v IC0gMSk7CisJCUZvcm1fcGdfYXR0cmlidXRlIGF0dHJpYnV0ZTsKIAkJQ29sdW1uRGVmICAq ZGVmOwogCisJCS8qCisJCSAqIElmIHRoaXMgY29sdW1uIGlzIGZyb20gYSBQRVJJT0QsIHNr aXAgaXQKKwkJICogKHNpbmNlIExJS0UgbmV2ZXIgY29waWVzIFBFUklPRHMpLgorCQkgKi8K KwkJaWYgKGJtc19pc19tZW1iZXIocGFyZW50X2F0dG5vLCBwZXJpb2RhdHRzKSkKKwkJCWNv bnRpbnVlOworCisJCWF0dHJpYnV0ZSA9IFR1cGxlRGVzY0F0dHIodHVwbGVEZXNjLCBwYXJl bnRfYXR0bm8gLSAxKTsKKwogCQkvKgogCQkgKiBJZ25vcmUgZHJvcHBlZCBjb2x1bW5zIGlu IHRoZSBwYXJlbnQuCiAJCSAqLwpAQCAtMjU3Myw2ICsyNjc4LDcgQEAgdHJhbnNmb3JtSW5k ZXhDb25zdHJhaW50KENvbnN0cmFpbnQgKmNvbnN0cmFpbnQsIENyZWF0ZVN0bXRDb250ZXh0 ICpjeHQpCiAJCQkJCWJyZWFrOwogCQkJCX0KIAkJCX0KKwogCQkJaWYgKGZvdW5kKQogCQkJ ewogCQkJCS8qCkBAIC0yNTg5LDYgKzI2OTUsMjIgQEAgdHJhbnNmb3JtSW5kZXhDb25zdHJh aW50KENvbnN0cmFpbnQgKmNvbnN0cmFpbnQsIENyZWF0ZVN0bXRDb250ZXh0ICpjeHQpCiAJ CQkJCWNvbHVtbi0+aXNfbm90X251bGwgPSB0cnVlOwogCQkJCX0KIAkJCX0KKwkJCWVsc2Ug aWYgKGNvbnN0cmFpbnQtPndpdGhvdXRfb3ZlcmxhcHMgJiYKKwkJCQkJIGxjID09IGxpc3Rf bGFzdF9jZWxsKGNvbnN0cmFpbnQtPmtleXMpKQorCQkJeworCQkJCS8qIElmIHRoZSBrZXkg aXMgV0lUSE9VVCBPVkVSTEFQUywgYSBQRVJJT0Qgd2lsbCB3b3JrIHRvby4gKi8KKwkJCQlQ ZXJpb2REZWYgICpwZXJpb2QgPSBOVUxMOworCisJCQkJZm9yZWFjaChjb2x1bW5zLCBjeHQt PnBlcmlvZHMpCisJCQkJeworCQkJCQlwZXJpb2QgPSBsZmlyc3Rfbm9kZShQZXJpb2REZWYs IGNvbHVtbnMpOworCQkJCQlpZiAoc3RyY21wKHBlcmlvZC0+cGVyaW9kbmFtZSwga2V5KSA9 PSAwKQorCQkJCQl7CisJCQkJCQlmb3VuZCA9IHRydWU7CisJCQkJCQlicmVhazsKKwkJCQkJ fQorCQkJCX0KKwkJCX0KIAkJCWVsc2UgaWYgKFN5c3RlbUF0dHJpYnV0ZUJ5TmFtZShrZXkp ICE9IE5VTEwpCiAJCQl7CiAJCQkJLyoKQEAgLTMwMTcsNiArMzEzOSwxMCBAQCB0cmFuc2Zv cm1JbmRleFN0bXQoT2lkIHJlbGlkLCBJbmRleFN0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1 ZXJ5U3RyaW5nKQogCQl9CiAJfQogCisJLyogdGFrZSBjYXJlIG9mIHRoZSBwZXJpb2QgKi8K KwlpZiAoc3RtdC0+cGVyaW9kKQorCQlzdG10LT5wZXJpb2QtPm9pZCA9IGdldF9wZXJpb2Rf b2lkKHJlbGlkLCBzdG10LT5wZXJpb2QtPnBlcmlvZG5hbWUsIGZhbHNlKTsKKwogCS8qCiAJ ICogQ2hlY2sgdGhhdCBvbmx5IHRoZSBiYXNlIHJlbCBpcyBtZW50aW9uZWQuICAoVGhpcyBz aG91bGQgYmUgZGVhZCBjb2RlCiAJICogbm93IHRoYXQgYWRkX21pc3NpbmdfZnJvbSBpcyBo aXN0b3J5LikKQEAgLTM0NzQsNiArMzYwMCw3IEBAIHRyYW5zZm9ybUFsdGVyVGFibGVTdG10 KE9pZCByZWxpZCwgQWx0ZXJUYWJsZVN0bXQgKnN0bXQsCiAJY3h0LmluaFJlbGF0aW9ucyA9 IE5JTDsKIAljeHQuaXNhbHRlciA9IHRydWU7CiAJY3h0LmNvbHVtbnMgPSBOSUw7CisJY3h0 LnBlcmlvZHMgPSBOSUw7CiAJY3h0LmNrY29uc3RyYWludHMgPSBOSUw7CiAJY3h0Lm5uY29u c3RyYWludHMgPSBOSUw7CiAJY3h0LmZrY29uc3RyYWludHMgPSBOSUw7CkBAIC0zNTM2LDYg KzM2NjMsMjIgQEAgdHJhbnNmb3JtQWx0ZXJUYWJsZVN0bXQoT2lkIHJlbGlkLCBBbHRlclRh YmxlU3RtdCAqc3RtdCwKIAkJCQkJCSAoaW50KSBub2RlVGFnKGNtZC0+ZGVmKSk7CiAJCQkJ YnJlYWs7CiAKKwkJCWNhc2UgQVRfQWRkUGVyaW9kOgorCQkJCXsKKwkJCQkJLyoKKwkJCQkJ ICogV2UgY2FuJ3QgY2FsbCB0cmFuc2Zvcm1UYWJsZVBlcmlvZCBoZXJlCisJCQkJCSAqIGJl Y2F1c2UgaXQgbG9va3MgYXQgY3h0LT5jb2x1bW5zCisJCQkJCSAqIGFuZCBpbiBhbiBBTFRF UiBzdGF0ZW1lbnQgdGhlIGNvbHVtbnMgbWlnaHQgYWxyZWFkeSBleGlzdHMKKwkJCQkJICog KG9yIG5vdCkuCisJCQkJCSAqLworCQkJCQkvLyBUT0RPOiBpdCBkb2Vzbid0IGxvb2sgYXQg Y3h0LT5jb2x1bW5zIGFueSBtb3JlLgorCQkJCQkvLyBTbyBzaG91bGQgd2UgY2FsbCBpdCBo ZXJlPyBUbyBkbyB3aGF0PworCQkJCQkvLyBXZWxsIGl0IG1pZ2h0IGJlIHVzZWZ1bCB0byBr bm93IGFib3V0IGl0IGluIGN4dC0+cGVyaW9kcyBhdCBsZWFzdC4KKwkJCQkJdHJhbnNmb3Jt VGFibGVQZXJpb2QoJmN4dCwgY2FzdE5vZGUoUGVyaW9kRGVmLCBjbWQtPmRlZikpOworCQkJ CQluZXdjbWRzID0gbGFwcGVuZChuZXdjbWRzLCBjbWQpOworCQkJCQlicmVhazsKKwkJCQl9 CisKIAkJCWNhc2UgQVRfQWx0ZXJDb2x1bW5UeXBlOgogCQkJCXsKIAkJCQkJQ29sdW1uRGVm ICAqZGVmID0gY2FzdE5vZGUoQ29sdW1uRGVmLCBjbWQtPmRlZik7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv TWFrZWZpbGUKaW5kZXggMTk5ZWFlNTI1ZDEuLmQwNGM3NWIzOTgwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9hZHQvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L01ha2VmaWxlCkBAIC03OCw2ICs3OCw3IEBAIE9CSlMgPSBcCiAJb3JhY2xlX2NvbXBh dC5vIFwKIAlvcmRlcmVkc2V0YWdncy5vIFwKIAlwYXJ0aXRpb25mdW5jcy5vIFwKKwlwZXJp b2QubyBcCiAJcGdfbG9jYWxlLm8gXAogCXBnX2xzbi5vIFwKIAlwZ191cGdyYWRlX3N1cHBv cnQubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvcGVyaW9kLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAuLjBlZDQzMDRlMTZkCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3BlcmlvZC5jCkBAIC0wLDAgKzEsNTYgQEAKKy8qLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorICoKKyAqIHBlcmlvZC5jCisgKgkgIEZ1bmN0aW9ucyB0byBzdXBwb3J0 IHBlcmlvZHMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDIy LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3Ju aWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3BlcmlvZC5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiZXhlY3V0b3IvdHVwdGFibGUuaCIKKyNpbmNs dWRlICJmbWdyLmgiCisjaW5jbHVkZSAibm9kZXMvcHJpbW5vZGVzLmgiCisjaW5jbHVkZSAi dXRpbHMvZm1ncnByb3Rvcy5oIgorI2luY2x1ZGUgInV0aWxzL3BlcmlvZC5oIgorI2luY2x1 ZGUgInV0aWxzL3JhbmdldHlwZXMuaCIKKworRGF0dW0gcGVyaW9kX3RvX3JhbmdlKFR1cGxl VGFibGVTbG90ICpzbG90LCBpbnQgc3RhcnRhdHRubywgaW50IGVuZGF0dG5vLCBPaWQgcmFu Z2V0eXBlKQoreworCURhdHVtIHN0YXJ0dmFsdWU7CisJRGF0dW0gZW5kdmFsdWU7CisJRGF0 dW0gcmVzdWx0OworCWJvb2wJc3RhcnRpc251bGw7CisJYm9vbAllbmRpc251bGw7CisJTE9D QUxfRkNJTkZPKGZjaW5mbywgMik7CisJRm1nckluZm8JZmxpbmZvOworCUZ1bmNFeHByICAg KmY7CisKKwlJbml0RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgJmZsaW5mbywgMiwg SW52YWxpZE9pZCwgTlVMTCwgTlVMTCk7CisJZiA9IG1ha2VOb2RlKEZ1bmNFeHByKTsKKwlm LT5mdW5jcmVzdWx0dHlwZSA9IHJhbmdldHlwZTsKKwlmbGluZm8uZm5fZXhwciA9IChOb2Rl ICopIGY7CisJZmxpbmZvLmZuX2V4dHJhID0gTlVMTDsKKworCS8qIGNvbXB1dGUgb2xkdmFs dWUgKi8KKwlzdGFydHZhbHVlID0gc2xvdF9nZXRhdHRyKHNsb3QsIHN0YXJ0YXR0bm8sICZz dGFydGlzbnVsbCk7CisJZW5kdmFsdWUgPSBzbG90X2dldGF0dHIoc2xvdCwgZW5kYXR0bm8s ICZlbmRpc251bGwpOworCisJZmNpbmZvLT5hcmdzWzBdLnZhbHVlID0gc3RhcnR2YWx1ZTsK KwlmY2luZm8tPmFyZ3NbMF0uaXNudWxsID0gc3RhcnRpc251bGw7CisJZmNpbmZvLT5hcmdz WzFdLnZhbHVlID0gZW5kdmFsdWU7CisJZmNpbmZvLT5hcmdzWzFdLmlzbnVsbCA9IGVuZGlz bnVsbDsKKworCXJlc3VsdCA9IHJhbmdlX2NvbnN0cnVjdG9yMihmY2luZm8pOworCWlmIChm Y2luZm8tPmlzbnVsbCkKKwkJZWxvZyhFUlJPUiwgImZ1bmN0aW9uICV1IHJldHVybmVkIE5V TEwiLCBmbGluZm8uZm5fb2lkKTsKKworCXJldHVybiByZXN1bHQ7Cit9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IGU5YTNjMTQ2ZDExLi5mMDcwYTlmYTc5NiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKQEAgLTMxLDYgKzMxLDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfb3BjbGFzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3BlcmlvZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHVibGljYXRpb24uaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3JhbmdlLmgiCkBAIC05OTUsNiArOTk2LDY4IEBAIGdldF9hdHRvcHRpb25zKE9p ZCByZWxpZCwgaW50MTYgYXR0bnVtKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCQkJCS0t LS0tLS0tLS0gUEdfUEVSSU9EIENBQ0hFIC0tLS0tLS0tLS0JCQkJICovCisKKy8qCisgKiBn ZXRfcGVyaW9kbmFtZSAtIGdpdmVuIGl0cyBPSUQsIGxvb2sgdXAgYSBwZXJpb2QKKyAqCisg KiBJZiBtaXNzaW5nX29rIGlzIGZhbHNlLCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgcGVyaW9k IGlzIG5vdCBmb3VuZC4KKyAqIElmIHRydWUsIGp1c3QgcmV0dXJuIEludmFsaWRPaWQuCisg Ki8KK2NoYXIgKgorZ2V0X3BlcmlvZG5hbWUoT2lkIHBlcmlvZGlkLCBib29sIG1pc3Npbmdf b2spCit7CisJSGVhcFR1cGxlCXRwOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoUEVSSU9E T0lELAorCQkJCQkJIE9iamVjdElkR2V0RGF0dW0ocGVyaW9kaWQpKTsKKwlpZiAoSGVhcFR1 cGxlSXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3BlcmlvZCBwZXJpb2RfdHVwID0gKEZv cm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1QodHApOworCQljaGFyCSAgICpyZXN1bHQ7CisKKwkJ cmVzdWx0ID0gcHN0cmR1cChOYW1lU3RyKHBlcmlvZF90dXAtPnBlcm5hbWUpKTsKKwkJUmVs ZWFzZVN5c0NhY2hlKHRwKTsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlpZiAoIW1pc3Np bmdfb2spCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwZXJpb2Qg JWQiLAorCQkJIHBlcmlvZGlkKTsKKwlyZXR1cm4gTlVMTDsKK30KKworLyoKKyAqIGdldF9w ZXJpb2Rfb2lkIC0gZ2V0cyBpdHMgcmVsYXRpb24gYW5kIG5hbWUsIGxvb2sgdXAgYSBwZXJp b2QKKyAqCisgKiBJZiBtaXNzaW5nX29rIGlzIGZhbHNlLCB0aHJvdyBhbiBlcnJvciBpZiB0 aGUgY2FzdCBpcyBub3QgZm91bmQuICBJZgorICogdHJ1ZSwganVzdCByZXR1cm4gSW52YWxp ZE9pZC4KKyAqLworT2lkCitnZXRfcGVyaW9kX29pZChPaWQgcmVsaWQsIGNvbnN0IGNoYXIg KnBlcmlvZG5hbWUsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlIZWFwVHVwbGUJdHA7CisKKwl0 cCA9IFNlYXJjaFN5c0NhY2hlMihQRVJJT0ROQU1FLAorCQkJCQkJIE9iamVjdElkR2V0RGF0 dW0ocmVsaWQpLAorCQkJCQkJIFBvaW50ZXJHZXREYXR1bShwZXJpb2RuYW1lKSk7CisKKwlp ZiAoSGVhcFR1cGxlSXNWYWxpZCh0cCkpCisJeworCQlGb3JtX3BnX3BlcmlvZCBwZXJpb2Rf dHVwID0gKEZvcm1fcGdfcGVyaW9kKSBHRVRTVFJVQ1QodHApOworCQlPaWQgcmVzdWx0Owor CisJCXJlc3VsdCA9IHBlcmlvZF90dXAtPm9pZDsKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsK KwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlpZiAoIW1pc3Npbmdfb2spCisJCWVsb2coRVJS T1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBwZXJpb2QgJXMiLAorCQkJIHBlcmlvZG5h bWUpOworCXJldHVybiBJbnZhbGlkT2lkOworfQorCiAvKgkJCQktLS0tLS0tLS0tIFBHX0NB U1QgQ0FDSEUgLS0tLS0tLS0tLQkJCQkJICovCiAKIC8qCkBAIC0zNTA5LDYgKzM1NzIsMzAg QEAgZ2V0X211bHRpcmFuZ2VfcmFuZ2UoT2lkIG11bHRpcmFuZ2VPaWQpCiAJCXJldHVybiBJ bnZhbGlkT2lkOwogfQogCitPaWQKK2dldF9zdWJ0eXBlX3JhbmdlKE9pZCBzdWJ0eXBlT2lk KQoreworCUNhdENMaXN0ICpjYXRsaXN0OworCU9pZAlyZXN1bHQgPSBJbnZhbGlkT2lkOwor CisJY2F0bGlzdCA9IFNlYXJjaFN5c0NhY2hlTGlzdDEoUkFOR0VTVUJUWVBFLCBPYmplY3RJ ZEdldERhdHVtKHN1YnR5cGVPaWQpKTsKKworCWlmIChjYXRsaXN0LT5uX21lbWJlcnMgPT0g MSkKKwl7CisJCUhlYXBUdXBsZQl0dXBsZSA9ICZjYXRsaXN0LT5tZW1iZXJzWzBdLT50dXBs ZTsKKwkJRm9ybV9wZ19yYW5nZSBybmd0dXAgPSAoRm9ybV9wZ19yYW5nZSkgR0VUU1RSVUNU KHR1cGxlKTsKKwkJcmVzdWx0ID0gcm5ndHVwLT5ybmd0eXBpZDsKKwkJUmVsZWFzZUNhdENh Y2hlTGlzdChjYXRsaXN0KTsKKwl9CisJZWxzZSBpZiAoY2F0bGlzdC0+bl9tZW1iZXJzID4g MSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOREVURVJNSU5B VEVfREFUQVRZUEUpLAorCQkJCSBlcnJtc2coImFtYmlndW91cyByYW5nZSBmb3IgdHlwZSAl cyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZShzdWJ0eXBlT2lkKSkpKTsKKworCXJldHVybiBy ZXN1bHQ7Cit9CisKIC8qCQkJCS0tLS0tLS0tLS0gUEdfSU5ERVggQ0FDSEUgLS0tLS0tLS0t LQkJCQkgKi8KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBf YXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwppbmRl eCBkOTdlYmFmZjViOC4uMGU4MzU1ZDY1OWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3Vw X2FyY2hpdmVyLmMKQEAgLTM1MTksNiArMzUxOSw3IEBAIF9nZXRPYmplY3REZXNjcmlwdGlv bihQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IFRvY0VudHJ5ICp0ZSkKIAkJCSBzdHJjbXAodHlw ZSwgIkRBVEFCQVNFIFBST1BFUlRJRVMiKSA9PSAwIHx8CiAJCQkgc3RyY21wKHR5cGUsICJE RUZBVUxUIikgPT0gMCB8fAogCQkJIHN0cmNtcCh0eXBlLCAiRksgQ09OU1RSQUlOVCIpID09 IDAgfHwKKwkJCSBzdHJjbXAodHlwZSwgIlBFUklPRCIpID09IDAgfHwKIAkJCSBzdHJjbXAo dHlwZSwgIklOREVYIikgPT0gMCB8fAogCQkJIHN0cmNtcCh0eXBlLCAiUlVMRSIpID09IDAg fHwKIAkJCSBzdHJjbXAodHlwZSwgIlRSSUdHRVIiKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpp bmRleCBkMjc1YjMxNjA1NC4uMzg2YzgzNWE5MTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNjY0 OCw2ICs2NjQ4LDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVz KQogCWludAkJCWlfcmVsdHlwZTsKIAlpbnQJCQlpX3JlbG93bmVyOwogCWludAkJCWlfcmVs Y2hlY2tzOworCWludAkJCWlfbnBlcmlvZDsKIAlpbnQJCQlpX3JlbGhhc2luZGV4OwogCWlu dAkJCWlfcmVsaGFzcnVsZXM7CiAJaW50CQkJaV9yZWxwYWdlczsKQEAgLTY3MjUsNiArNjcy NiwxNCBAQCBnZXRUYWJsZXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXMpCiAJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAogCQkJCQkJCSAiYy5yZWxoYXNvaWRzLCAiKTsK IAorCS8qIEluIFBHMTcgdXB3YXJkcyB3ZSBoYXZlIFBFUklPRHMuICovCisJaWYgKGZvdXQt PnJlbW90ZVZlcnNpb24gPj0gMTcwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVy eSwKKwkJCQkJCQkgIihTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19wZXJpb2QgV0hFUkUgcGVy cmVsaWQgPSBjLm9pZCkgQVMgbnBlcmlvZHMsICIpOworCWVsc2UKKwkJYXBwZW5kUFFFeHBC dWZmZXJTdHIocXVlcnksCisJCQkJCQkJICIwIEFTIG5wZXJpb2RzLCAiKTsKKwogCWlmIChm b3V0LT5yZW1vdGVWZXJzaW9uID49IDkwMzAwKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwKIAkJCQkJCQkgImMucmVsaXNwb3B1bGF0ZWQsICIpOwpAQCAtNjg2Miw2ICs2ODcx LDcgQEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCWlfcmVs dHlwZSA9IFBRZm51bWJlcihyZXMsICJyZWx0eXBlIik7CiAJaV9yZWxvd25lciA9IFBRZm51 bWJlcihyZXMsICJyZWxvd25lciIpOwogCWlfcmVsY2hlY2tzID0gUFFmbnVtYmVyKHJlcywg InJlbGNoZWNrcyIpOworCWlfbnBlcmlvZCA9IFBRZm51bWJlcihyZXMsICJucGVyaW9kcyIp OwogCWlfcmVsaGFzaW5kZXggPSBQUWZudW1iZXIocmVzLCAicmVsaGFzaW5kZXgiKTsKIAlp X3JlbGhhc3J1bGVzID0gUFFmbnVtYmVyKHJlcywgInJlbGhhc3J1bGVzIik7CiAJaV9yZWxw YWdlcyA9IFBRZm51bWJlcihyZXMsICJyZWxwYWdlcyIpOwpAQCAtNjk0NSw2ICs2OTU1LDcg QEAgZ2V0VGFibGVzKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVzKQogCQl9CiAJCXRi bGluZm9baV0ucmVsdGFibGVzcGFjZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwg aV9yZWx0YWJsZXNwYWNlKSk7CiAJCXRibGluZm9baV0uaGFzb2lkcyA9IChzdHJjbXAoUFFn ZXR2YWx1ZShyZXMsIGksIGlfcmVsaGFzb2lkcyksICJ0IikgPT0gMCk7CisJCXRibGluZm9b aV0ubnBlcmlvZCA9IGF0b2koUFFnZXR2YWx1ZShyZXMsIGksIGlfbnBlcmlvZCkpOwogCQl0 YmxpbmZvW2ldLmhhc3RyaWdnZXJzID0gKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9y ZWxoYXN0cmlnZ2VycyksICJ0IikgPT0gMCk7CiAJCXRibGluZm9baV0ucmVscGVyc2lzdGVu Y2UgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3JlbHBlcnNpc3RlbmNlKSk7CiAJCXRibGlu Zm9baV0ucmVsaXNwb3B1bGF0ZWQgPSAoc3RyY21wKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Jl bGlzcG9wdWxhdGVkKSwgInQiKSA9PSAwKTsKQEAgLTg2MTIsNyArODYyMyw3IEBAIGdldFRy YW5zZm9ybXMoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UcmFuc2Zvcm1zKQogLyoKICAqIGdl dFRhYmxlQXR0cnMgLQogICoJICBmb3IgZWFjaCBpbnRlcmVzdGluZyB0YWJsZSwgcmVhZCBp bmZvIGFib3V0IGl0cyBhdHRyaWJ1dGVzCi0gKgkgIChuYW1lcywgdHlwZXMsIGRlZmF1bHQg dmFsdWVzLCBDSEVDSyBjb25zdHJhaW50cywgZXRjKQorICoJICAobmFtZXMsIHR5cGVzLCBk ZWZhdWx0IHZhbHVlcywgQ0hFQ0sgY29uc3RyYWludHMsIFBFUklPRHMsIGV0YykKICAqCiAg Kgltb2RpZmllcyB0YmxpbmZvCiAgKi8KQEAgLTg2NjUsNiArODY3Niw4IEBAIGdldFRhYmxl QXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVz KQogCWZvciAoaW50IGkgPSAwOyBpIDwgbnVtVGFibGVzOyBpKyspCiAJewogCQlUYWJsZUlu Zm8gICp0YmluZm8gPSAmdGJsaW5mb1tpXTsKKwkJaW50CQkJbmR1bXBhYmxlY2hlY2tzOwkv KiBudW1iZXIgb2YgQ0hFQ0sgY29uc3RyYWludHMgdGhhdCBkbworCQkJCQkJCQkJCSAgIG5v dCBiZWxvbmcgdG8gYSBwZXJpb2QgKi8KIAogCQkvKiBEb24ndCBib3RoZXIgdG8gY29sbGVj dCBpbmZvIGZvciBzZXF1ZW5jZXMgKi8KIAkJaWYgKHRiaW5mby0+cmVsa2luZCA9PSBSRUxL SU5EX1NFUVVFTkNFKQpAQCAtODY3OSw3ICs4NjkyLDggQEAgZ2V0VGFibGVBdHRycyhBcmNo aXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGluZm8sIGludCBudW1UYWJsZXMpCiAJCQlhcHBl bmRQUUV4cEJ1ZmZlckNoYXIodGJsb2lkcywgJywnKTsKIAkJYXBwZW5kUFFFeHBCdWZmZXIo dGJsb2lkcywgIiV1IiwgdGJpbmZvLT5kb2JqLmNhdElkLm9pZCk7CiAKLQkJaWYgKHRiaW5m by0+bmNoZWNrID4gMCkKKwkJbmR1bXBhYmxlY2hlY2tzID0gdGJpbmZvLT5uY2hlY2sgLSB0 YmluZm8tPm5wZXJpb2Q7CisJCWlmIChuZHVtcGFibGVjaGVja3MgPiAwKQogCQl7CiAJCQkv KiBBbHNvIG1ha2UgYSBsaXN0IG9mIHRoZSBvbmVzIHdpdGggY2hlY2sgY29uc3RyYWludHMg Ki8KIAkJCWlmIChjaGVja29pZHMtPmxlbiA+IDEpIC8qIGRvIHdlIGhhdmUgbW9yZSB0aGFu IHRoZSAneyc/ICovCkBAIC05MjE4LDE1ICs5MjMyLDM2IEBAIGdldFRhYmxlQXR0cnMoQXJj aGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQlwZ19s b2dfaW5mbygiZmluZGluZyB0YWJsZSBjaGVjayBjb25zdHJhaW50cyIpOwogCiAJCXJlc2V0 UFFFeHBCdWZmZXIocSk7Ci0JCWFwcGVuZFBRRXhwQnVmZmVyKHEsCi0JCQkJCQkgICJTRUxF Q1QgYy50YWJsZW9pZCwgYy5vaWQsIGNvbnJlbGlkLCBjb25uYW1lLCAiCi0JCQkJCQkgICJw Z19jYXRhbG9nLnBnX2dldF9jb25zdHJhaW50ZGVmKGMub2lkKSBBUyBjb25zcmMsICIKLQkJ CQkJCSAgImNvbmlzbG9jYWwsIGNvbnZhbGlkYXRlZCAiCi0JCQkJCQkgICJGUk9NIHVubmVz dCgnJXMnOjpwZ19jYXRhbG9nLm9pZFtdKSBBUyBzcmModGJsb2lkKVxuIgotCQkJCQkJICAi Sk9JTiBwZ19jYXRhbG9nLnBnX2NvbnN0cmFpbnQgYyBPTiAoc3JjLnRibG9pZCA9IGMuY29u cmVsaWQpXG4iCi0JCQkJCQkgICJXSEVSRSBjb250eXBlID0gJ2MnICIKLQkJCQkJCSAgIk9S REVSIEJZIGMuY29ucmVsaWQsIGMuY29ubmFtZSIsCi0JCQkJCQkgIGNoZWNrb2lkcy0+ZGF0 YSk7CisJCWlmIChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE3MDAwMCkKKwkJeworCQkJLyoK KwkJCSAqIFBFUklPRHMgd2VyZSBhZGRlZCBpbiB2MTcgYW5kIHdlIGRvbid0IGR1bXAgQ0hF Q0sKKwkJCSAqIGNvbnN0cmFpbnRzIGZvciB0aGVtLgorCQkJICovCisJCQlhcHBlbmRQUUV4 cEJ1ZmZlcihxLAorCQkJCQkJCSAgIlNFTEVDVCBjLnRhYmxlb2lkLCBjLm9pZCwgY29ucmVs aWQsIGNvbm5hbWUsICIKKwkJCQkJCQkgICJwZ19jYXRhbG9nLnBnX2dldF9jb25zdHJhaW50 ZGVmKGMub2lkKSBBUyBjb25zcmMsICIKKwkJCQkJCQkgICJjb25pc2xvY2FsLCBjb252YWxp ZGF0ZWQgIgorCQkJCQkJCSAgIkZST00gdW5uZXN0KCclcyc6OnBnX2NhdGFsb2cub2lkW10p IEFTIHNyYyh0YmxvaWQpXG4iCisJCQkJCQkJICAiSk9JTiBwZ19jYXRhbG9nLnBnX2NvbnN0 cmFpbnQgYyBPTiAoc3JjLnRibG9pZCA9IGMuY29ucmVsaWQpXG4iCisJCQkJCQkJICAiV0hF UkUgY29udHlwZSA9ICdjJyAiCisJCQkJCQkJICAiICAgQU5EIE5PVCBFWElTVFMgKFNFTEVD VCBGUk9NIHBnX3BlcmlvZCAiCisJCQkJCQkJICAiICAgICAgICAgICAgICAgICAgIFdIRVJF IChwZXJyZWxpZCwgcGVyY29uc3RyYWludCkgPSAoY29ucmVsaWQsIGMub2lkKSkgIgorCQkJ CQkJCSAgIk9SREVSIEJZIGMuY29ucmVsaWQsIGMuY29ubmFtZSIsCisJCQkJCQkJICBjaGVj a29pZHMtPmRhdGEpOworCQl9CisJCWVsc2UKKwkJeworCQkJYXBwZW5kUFFFeHBCdWZmZXIo cSwKKwkJCQkJCQkgICJTRUxFQ1QgYy50YWJsZW9pZCwgYy5vaWQsIGNvbnJlbGlkLCBjb25u YW1lLCAiCisJCQkJCQkJICAicGdfY2F0YWxvZy5wZ19nZXRfY29uc3RyYWludGRlZihjLm9p ZCkgQVMgY29uc3JjLCAiCisJCQkJCQkJICAiY29uaXNsb2NhbCwgY29udmFsaWRhdGVkICIK KwkJCQkJCQkgICJGUk9NIHVubmVzdCgnJXMnOjpwZ19jYXRhbG9nLm9pZFtdKSBBUyBzcmMo dGJsb2lkKVxuIgorCQkJCQkJCSAgIkpPSU4gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50IGMg T04gKHNyYy50YmxvaWQgPSBjLmNvbnJlbGlkKVxuIgorCQkJCQkJCSAgIldIRVJFIGNvbnR5 cGUgPSAnYycgIgorCQkJCQkJCSAgIk9SREVSIEJZIGMuY29ucmVsaWQsIGMuY29ubmFtZSIs CisJCQkJCQkJICBjaGVja29pZHMtPmRhdGEpOworCQl9CiAKIAkJcmVzID0gRXhlY3V0ZVNx bFF1ZXJ5KGZvdXQsIHEtPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CiAKQEAgLTkyNDgsNiAr OTI4Myw3IEBAIGdldFRhYmxlQXR0cnMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0Ymxp bmZvLCBpbnQgbnVtVGFibGVzKQogCQkJT2lkCQkJY29ucmVsaWQgPSBhdG9vaWQoUFFnZXR2 YWx1ZShyZXMsIGosIGlfY29ucmVsaWQpKTsKIAkJCVRhYmxlSW5mbyAgKnRiaW5mbyA9IE5V TEw7CiAJCQlpbnQJCQludW1jb25zOworCQkJaW50CQkJbmR1bXBhYmxlY2hlY2tzOwogCiAJ CQkvKiBDb3VudCByb3dzIGZvciB0aGlzIHRhYmxlICovCiAJCQlmb3IgKG51bWNvbnMgPSAx OyBudW1jb25zIDwgbnVtQ29uc3RycyAtIGo7IG51bWNvbnMrKykKQEAgLTkyNjcsMTIgKzkz MDMsMTMgQEAgZ2V0VGFibGVBdHRycyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gKnRibGlu Zm8sIGludCBudW1UYWJsZXMpCiAJCQlpZiAoY3VydGJsaW5keCA+PSBudW1UYWJsZXMpCiAJ CQkJcGdfZmF0YWwoInVucmVjb2duaXplZCB0YWJsZSBPSUQgJXUiLCBjb25yZWxpZCk7CiAK LQkJCWlmIChudW1jb25zICE9IHRiaW5mby0+bmNoZWNrKQorCQkJbmR1bXBhYmxlY2hlY2tz ID0gdGJpbmZvLT5uY2hlY2sgLSB0YmluZm8tPm5wZXJpb2Q7CisJCQlpZiAobnVtY29ucyAh PSBuZHVtcGFibGVjaGVja3MpCiAJCQl7CiAJCQkJcGdfbG9nX2Vycm9yKG5nZXR0ZXh0KCJl eHBlY3RlZCAlZCBjaGVjayBjb25zdHJhaW50IG9uIHRhYmxlIFwiJXNcIiBidXQgZm91bmQg JWQiLAogCQkJCQkJCQkJICAiZXhwZWN0ZWQgJWQgY2hlY2sgY29uc3RyYWludHMgb24gdGFi bGUgXCIlc1wiIGJ1dCBmb3VuZCAlZCIsCi0JCQkJCQkJCQkgIHRiaW5mby0+bmNoZWNrKSwK LQkJCQkJCQkgdGJpbmZvLT5uY2hlY2ssIHRiaW5mby0+ZG9iai5uYW1lLCBudW1jb25zKTsK KwkJCQkJCQkJCSAgbmR1bXBhYmxlY2hlY2tzKSwKKwkJCQkJCQkgbmR1bXBhYmxlY2hlY2tz LCB0YmluZm8tPmRvYmoubmFtZSwgbnVtY29ucyk7CiAJCQkJcGdfbG9nX2Vycm9yX2hpbnQo IlRoZSBzeXN0ZW0gY2F0YWxvZ3MgbWlnaHQgYmUgY29ycnVwdGVkLiIpOwogCQkJCWV4aXRf bmljZWx5KDEpOwogCQkJfQpAQCAtOTMzMSw2ICs5MzY4LDgwIEBAIGdldFRhYmxlQXR0cnMo QXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvICp0YmxpbmZvLCBpbnQgbnVtVGFibGVzKQogCQlQ UWNsZWFyKHJlcyk7CiAJfQogCisJZm9yIChpbnQgaSA9IDA7IGkgPCBudW1UYWJsZXM7IGkr KykKKwl7CisJCVRhYmxlSW5mbyAgKnRiaW5mbyA9ICZ0YmxpbmZvW2ldOworCisJCS8qCisJ CSAqIEdldCBpbmZvIGFib3V0IFBFUklPRCBkZWZpbml0aW9ucworCQkgKi8KKwkJaWYgKHRi aW5mby0+bnBlcmlvZCA+IDApCisJCXsKKwkJCVBlcmlvZEluZm8gKnBlcmlvZHM7CisJCQlp bnQJCQludW1QZXJpb2RzOworCQkJaW50CQkJajsKKworCQkJLyogV2Ugc2hvdWxkbid0IGhh dmUgYW55IHBlcmlvZHMgYmVmb3JlIHYxNyAqLworCQkJQXNzZXJ0KGZvdXQtPnJlbW90ZVZl cnNpb24gPj0gMTcwMDAwKTsKKworCQkJcGdfbG9nX2luZm8oImZpbmRpbmcgcGVyaW9kcyBm b3IgdGFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCXRiaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRv YmoubmFtZSwKKwkJCQkJCXRiaW5mby0+ZG9iai5uYW1lKTsKKworCQkJcmVzZXRQUUV4cEJ1 ZmZlcihxKTsKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHEsCisJCQkJIlNFTEVDVCBwLnRhYmxl b2lkLCBwLm9pZCwgcC5wZXJuYW1lLCAiCisJCQkJIiAgICAgICBzYS5hdHRuYW1lIEFTIHBl cnN0YXJ0LCBlYS5hdHRuYW1lIEFTIHBlcmVuZCwgIgorCQkJCSIgICAgICAgci50eXBuYW1l IEFTIHJuZ3R5cGUsICIKKwkJCQkiICAgICAgIGMuY29ubmFtZSBBUyBjb25uYW1lICIKKwkJ CQkiRlJPTSBwZ19jYXRhbG9nLnBnX3BlcmlvZCBBUyBwICIKKwkJCQkiSk9JTiBwZ19jYXRh bG9nLnBnX2F0dHJpYnV0ZSBBUyBzYSBPTiAoc2EuYXR0cmVsaWQsIHNhLmF0dG51bSkgPSAo cC5wZXJyZWxpZCwgcC5wZXJzdGFydCkgIgorCQkJCSJKT0lOIHBnX2NhdGFsb2cucGdfYXR0 cmlidXRlIEFTIGVhIE9OIChlYS5hdHRyZWxpZCwgZWEuYXR0bnVtKSA9IChwLnBlcnJlbGlk LCBwLnBlcmVuZCkgIgorCQkJCSJKT0lOIHBnX2NhdGFsb2cucGdfYXR0cmlidXRlIEFTIHJh IE9OIChyYS5hdHRyZWxpZCwgcmEuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcnJhbmdl KSAiCisJCQkJIkpPSU4gcGdfY2F0YWxvZy5wZ190eXBlIEFTIHIgT04gci5vaWQgPSByYS5h dHR0eXBpZCAiCisJCQkJIkpPSU4gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50IEFTIGMgT04g Yy5vaWQgPSBwLnBlcmNvbnN0cmFpbnQgIgorCQkJCSJXSEVSRSBwLnBlcnJlbGlkID0gJyV1 Jzo6cGdfY2F0YWxvZy5vaWQgIgorCQkJCSJPUkRFUiBCWSBwLnBlcm5hbWUiLAorCQkJCXRi aW5mby0+ZG9iai5jYXRJZC5vaWQpOworCisJCQlyZXMgPSBFeGVjdXRlU3FsUXVlcnkoZm91 dCwgcS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCQkJLyoKKwkJCSAqIElmIHdlIGRp ZG4ndCBnZXQgdGhlIG51bWJlciBvZiByb3dzIHdlIHRob3VnaHQgd2Ugd2VyZSBnb2luZyB0 bywKKwkJCSAqIHRoZW4gdGhvc2UgSk9JTnMgZGlkbid0IHdvcmsuCisJCQkgKi8KKwkJCW51 bVBlcmlvZHMgPSBQUW50dXBsZXMocmVzKTsKKwkJCWlmIChudW1QZXJpb2RzICE9IHRiaW5m by0+bnBlcmlvZCkKKwkJCXsKKwkJCQlwZ19sb2dfaW5mbyhuZ2V0dGV4dCgiZXhwZWN0ZWQg JWQgcGVyaW9kIG9uIHRhYmxlIFwiJXNcIiBidXQgZm91bmQgJWQiLAorCQkJCQkJCQkJICJl eHBlY3RlZCAlZCBwZXJpb2RzIG9uIHRhYmxlIFwiJXNcIiBidXQgZm91bmQgJWQiLAorCQkJ CQkJCQkJIHRiaW5mby0+bnBlcmlvZCksCisJCQkJCQkJdGJpbmZvLT5ucGVyaW9kLCB0Ymlu Zm8tPmRvYmoubmFtZSwgbnVtUGVyaW9kcyk7CisJCQkJcGdfbG9nX2luZm8oIihUaGUgc3lz dGVtIGNhdGFsb2dzIG1pZ2h0IGJlIGNvcnJ1cHRlZC4pIik7CisJCQkJZXhpdF9uaWNlbHko MSk7CisJCQl9CisKKwkJCXBlcmlvZHMgPSAoUGVyaW9kSW5mbyAqKSBwZ19tYWxsb2MobnVt UGVyaW9kcyAqIHNpemVvZihQZXJpb2RJbmZvKSk7CisJCQl0YmluZm8tPnBlcmlvZHMgPSBw ZXJpb2RzOworCisJCQlmb3IgKGogPSAwOyBqIDwgbnVtUGVyaW9kczsgaisrKQorCQkJewor CQkJCXBlcmlvZHNbal0uZG9iai5vYmpUeXBlID0gRE9fUEVSSU9EOworCQkJCXBlcmlvZHNb al0uZG9iai5jYXRJZC50YWJsZW9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaiwgMCkp OworCQkJCXBlcmlvZHNbal0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGosIDEpKTsKKwkJCQlBc3NpZ25EdW1wSWQoJnBlcmlvZHNbal0uZG9iaik7CisJCQkJ cGVyaW9kc1tqXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGosIDIp KTsKKwkJCQlwZXJpb2RzW2pdLmRvYmoubmFtZXNwYWNlID0gdGJpbmZvLT5kb2JqLm5hbWVz cGFjZTsKKwkJCQlwZXJpb2RzW2pdLnBlcnRhYmxlID0gdGJpbmZvOworCQkJCXBlcmlvZHNb al0ucGVyc3RhcnQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGosIDMpKTsKKwkJCQlw ZXJpb2RzW2pdLnBlcmVuZCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaiwgNCkpOwor CQkJCXBlcmlvZHNbal0ucm5ndHlwZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaiwg NSkpOworCQkJCXBlcmlvZHNbal0uY29ubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJl cywgaiwgNikpOworCQkJfQorCQkJUFFjbGVhcihyZXMpOworCQl9CisJfQorCiAJZGVzdHJv eVBRRXhwQnVmZmVyKHEpOwogCWRlc3Ryb3lQUUV4cEJ1ZmZlcih0YmxvaWRzKTsKIAlkZXN0 cm95UFFFeHBCdWZmZXIoY2hlY2tvaWRzKTsKQEAgLTEwNjAxLDYgKzEwNzEyLDggQEAgZHVt cER1bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpkb2JqKQog CQljYXNlIERPX0ZLX0NPTlNUUkFJTlQ6CiAJCQlkdW1wQ29uc3RyYWludChmb3V0LCAoY29u c3QgQ29uc3RyYWludEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBET19QRVJJ T0Q6CisJCQlicmVhazsKIAkJY2FzZSBET19QUk9DTEFORzoKIAkJCWR1bXBQcm9jTGFuZyhm b3V0LCAoY29uc3QgUHJvY0xhbmdJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CkBAIC0xNjE1 Myw2ICsxNjI2NiwzMyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3Qg VGFibGVJbmZvICp0YmluZm8pCiAJCQkJfQogCQkJfQogCisJCQkvKgorCQkJICogQWRkIG5v bi1pbmhlcml0ZWQgUEVSSU9EIGRlZmluaXRpb25zLCBpZiBhbnkuCisJCQkgKi8KKwkJCWZv ciAoaiA9IDA7IGogPCB0YmluZm8tPm5wZXJpb2Q7IGorKykKKwkJCXsKKwkJCQlQZXJpb2RJ bmZvICpwZXJpb2QgPSAmKHRiaW5mby0+cGVyaW9kc1tqXSk7CisKKwkJCQljaGFyCSAgICpu YW1lID0gcGdfc3RyZHVwKGZtdElkKHBlcmlvZC0+ZG9iai5uYW1lKSk7CisJCQkJY2hhcgkg ICAqc3RhcnQgPSBwZ19zdHJkdXAoZm10SWQocGVyaW9kLT5wZXJzdGFydCkpOworCQkJCWNo YXIJICAgKmVuZCA9IHBnX3N0cmR1cChmbXRJZChwZXJpb2QtPnBlcmVuZCkpOworCQkJCWNo YXIJICAgKnJuZ3R5cGUgPSBwZ19zdHJkdXAoZm10SWQocGVyaW9kLT5ybmd0eXBlKSk7CisJ CQkJY2hhcgkgICAqY29ubmFtZSA9IHBnX3N0cmR1cChmbXRJZChwZXJpb2QtPmNvbm5hbWUp KTsKKworCQkJCWlmIChhY3R1YWxfYXR0cyA9PSAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cihxLCAiIChcbiAgICAiKTsKKwkJCQllbHNlCisJCQkJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHEsICIsXG4gICAgIik7CisKKwkJCQkvKiBBbHdheXMgc2F5IGNvbGV4aXN0cyBzbyB3 ZSBjYW4ganVzdCBwcmludCB0aGUgR0VORVJBVEVEIGNvbHVtbiAqLworCQkJCWFwcGVuZFBR RXhwQnVmZmVyKHEsICJQRVJJT0QgRk9SICVzICglcywgJXMpICIKKwkJCQkJCSJXSVRIIChy YW5nZXR5cGUgPSAlcywgY2hlY2tfY29uc3RyYWludF9uYW1lID0gJXMsIGNvbGV4aXN0cyA9 IHRydWUpIiwKKwkJCQkJCQkJICBuYW1lLCBzdGFydCwgZW5kLAorCQkJCQkJCQkgIHJuZ3R5 cGUsIGNvbm5hbWUpOworCisJCQkJYWN0dWFsX2F0dHMrKzsKKwkJCX0KKwogCQkJLyoKIAkJ CSAqIEFkZCBub24taW5oZXJpdGVkIENIRUNLIGNvbnN0cmFpbnRzLCBpZiBhbnkuCiAJCQkg KgpAQCAtMTYxNjEsNyArMTYzMDEsNyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91 dCwgY29uc3QgVGFibGVJbmZvICp0YmluZm8pCiAJCQkgKiBQQVJUSVRJT04gdGhhdCB3ZSds bCBlbWl0IGxhdGVyIGV4cGVjdHMgdGhlIGNvbnN0cmFpbnQgdG8gYmUKIAkJCSAqIHRoZXJl LiAgKE5vIG5lZWQgdG8gZml4IGNvbmlzbG9jYWw6IEFUVEFDSCBQQVJUSVRJT04gZG9lcyB0 aGF0KQogCQkJICovCi0JCQlmb3IgKGogPSAwOyBqIDwgdGJpbmZvLT5uY2hlY2s7IGorKykK KwkJCWZvciAoaiA9IDA7IGogPCB0YmluZm8tPm5jaGVjayAtIHRiaW5mby0+bnBlcmlvZDsg aisrKQogCQkJewogCQkJCUNvbnN0cmFpbnRJbmZvICpjb25zdHIgPSAmKHRiaW5mby0+Y2hl Y2tleHByc1tqXSk7CiAKQEAgLTE2Mzc5LDcgKzE2NTE5LDcgQEAgZHVtcFRhYmxlU2NoZW1h KEFyY2hpdmUgKmZvdXQsIGNvbnN0IFRhYmxlSW5mbyAqdGJpbmZvKQogCQkJICogRm9yIHBh cnRpdGlvbnMsIHRoZXkgd2VyZSBhbHJlYWR5IGR1bXBlZCwgYW5kIGNvbmlzbG9jYWwKIAkJ CSAqIGRvZXNuJ3QgbmVlZCBmaXhpbmcuCiAJCQkgKi8KLQkJCWZvciAoayA9IDA7IGsgPCB0 YmluZm8tPm5jaGVjazsgaysrKQorCQkJZm9yIChrID0gMDsgayA8IHRiaW5mby0+bmNoZWNr IC0gdGJpbmZvLT5ucGVyaW9kOyBrKyspCiAJCQl7CiAJCQkJQ29uc3RyYWludEluZm8gKmNv bnN0ciA9ICYodGJpbmZvLT5jaGVja2V4cHJzW2tdKTsKIApAQCAtMTY2ODEsNyArMTY4MjEs NyBAQCBkdW1wVGFibGVTY2hlbWEoQXJjaGl2ZSAqZm91dCwgY29uc3QgVGFibGVJbmZvICp0 YmluZm8pCiAJCWR1bXBUYWJsZVNlY0xhYmVsKGZvdXQsIHRiaW5mbywgcmVsdHlwZW5hbWUp OwogCiAJLyogRHVtcCBjb21tZW50cyBvbiBpbmxpbmVkIHRhYmxlIGNvbnN0cmFpbnRzICov Ci0JZm9yIChqID0gMDsgaiA8IHRiaW5mby0+bmNoZWNrOyBqKyspCisJZm9yIChqID0gMDsg aiA8IHRiaW5mby0+bmNoZWNrIC0gdGJpbmZvLT5ucGVyaW9kOyBqKyspCiAJewogCQlDb25z dHJhaW50SW5mbyAqY29uc3RyID0gJih0YmluZm8tPmNoZWNrZXhwcnNbal0pOwogCkBAIC0x ODY1OCw2ICsxODc5OCw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2Jq ZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19UUklHR0VSOgogCQkJY2Fz ZSBET19FVkVOVF9UUklHR0VSOgogCQkJY2FzZSBET19ERUZBVUxUX0FDTDoKKwkJCWNhc2Ug RE9fUEVSSU9EOgogCQkJY2FzZSBET19QT0xJQ1k6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9O OgogCQkJY2FzZSBET19QVUJMSUNBVElPTl9SRUw6CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA5YmM5 MzUyMGI0NS4uMDRjOWYxNWY2ZWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNTksNiArNTksNyBA QCB0eXBlZGVmIGVudW0KIAlET19UUklHR0VSLAogCURPX0NPTlNUUkFJTlQsCiAJRE9fRktf Q09OU1RSQUlOVCwJCQkvKiBzZWUgbm90ZSBmb3IgQ29uc3RyYWludEluZm8gKi8KKwlET19Q RVJJT0QsCiAJRE9fUFJPQ0xBTkcsCiAJRE9fQ0FTVCwKIAlET19UQUJMRV9EQVRBLApAQCAt MzAwLDEyICszMDEsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgX3RhYmxlSW5mbwogCWJvb2wJCXJv d3NlYzsJCQkvKiBpcyByb3cgc2VjdXJpdHkgZW5hYmxlZD8gKi8KIAlib29sCQlmb3JjZXJv d3NlYzsJLyogaXMgcm93IHNlY3VyaXR5IGZvcmNlZD8gKi8KIAlib29sCQloYXNvaWRzOwkJ LyogZG9lcyBpdCBoYXZlIE9JRHM/ICovCisJYm9vbAkJaGFzcGVyaW9kczsJCS8qIGRvZXMg aXQgaGF2ZSBhbnkgcGVyaW9kcz8gKi8KIAl1aW50MzIJCWZyb3plbnhpZDsJCS8qIHRhYmxl J3MgcmVsZnJvemVueGlkICovCiAJdWludDMyCQltaW5teGlkOwkJLyogdGFibGUncyByZWxt aW5teGlkICovCiAJT2lkCQkJdG9hc3Rfb2lkOwkJLyogdG9hc3QgdGFibGUncyBPSUQsIG9y IDAgaWYgbm9uZSAqLwogCXVpbnQzMgkJdG9hc3RfZnJvemVueGlkOwkvKiB0b2FzdCB0YWJs ZSdzIHJlbGZyb3plbnhpZCwgaWYgYW55ICovCiAJdWludDMyCQl0b2FzdF9taW5teGlkOwkv KiB0b2FzdCB0YWJsZSdzIHJlbG1pbm14aWQgKi8KIAlpbnQJCQluY2hlY2s7CQkJLyogIyBv ZiBDSEVDSyBleHByZXNzaW9ucyAqLworCWludAkJCW5wZXJpb2Q7CQkvKiAjIG9mIFBFUklP RCBkZWZpbml0aW9ucyAqLwogCU9pZAkJCXJlbHR5cGU7CQkvKiBPSUQgb2YgdGFibGUncyBj b21wb3NpdGUgdHlwZSwgaWYgYW55ICovCiAJT2lkCQkJcmVsb2Z0eXBlOwkJLyogdW5kZXJs eWluZyB0eXBlIGZvciB0eXBlZCB0YWJsZSAqLwogCU9pZAkJCWZvcmVpZ25fc2VydmVyOyAv KiBmb3JlaWduIHNlcnZlciBvaWQsIGlmIGFwcGxpY2FibGUgKi8KQEAgLTMzNiw2ICszMzks NyBAQCB0eXBlZGVmIHN0cnVjdCBfdGFibGVJbmZvCiAJY2hhcgkgICAqYXR0c3RvcmFnZTsJ CS8qIGF0dHJpYnV0ZSBzdG9yYWdlIHNjaGVtZSAqLwogCWNoYXIJICAgKnR5cHN0b3JhZ2U7 CQkvKiB0eXBlIHN0b3JhZ2Ugc2NoZW1lICovCiAJYm9vbAkgICAqYXR0aXNkcm9wcGVkOwkv KiB0cnVlIGlmIGF0dHIgaXMgZHJvcHBlZDsgZG9uJ3QgZHVtcCBpdCAqLworCWJvb2wJICAg KmF0dGlzcGVyaW9kOwkvKiB0cnVlIGlmIGF0dHIgaXMgYSBQRVJJT0Q7IGRvbid0IGR1bXAg aXQgKi8KIAljaGFyCSAgICphdHRpZGVudGl0eTsKIAljaGFyCSAgICphdHRnZW5lcmF0ZWQ7 CiAJaW50CQkgICAqYXR0bGVuOwkJCS8qIGF0dHJpYnV0ZSBsZW5ndGgsIHVzZWQgYnkgYmlu YXJ5X3VwZ3JhZGUgKi8KQEAgLTM1NSw2ICszNTksNyBAQCB0eXBlZGVmIHN0cnVjdCBfdGFi bGVJbmZvCiAJYm9vbAkgICAqbm90bnVsbF9pbmg7CS8qIHRydWUgaWYgTk9UIE5VTEwgaGFz IG5vIGxvY2FsIGRlZmluaXRpb24gKi8KIAlzdHJ1Y3QgX2F0dHJEZWZJbmZvICoqYXR0cmRl ZnM7IC8qIERFRkFVTFQgZXhwcmVzc2lvbnMgKi8KIAlzdHJ1Y3QgX2NvbnN0cmFpbnRJbmZv ICpjaGVja2V4cHJzOyAvKiBDSEVDSyBjb25zdHJhaW50cyAqLworCXN0cnVjdCBfcGVyaW9k SW5mbyAqcGVyaW9kczsJLyogUEVSSU9EIGRlZmluaXRpb25zICovCiAJYm9vbAkJbmVlZHNf b3ZlcnJpZGU7IC8qIGhhcyBHRU5FUkFURUQgQUxXQVlTIEFTIElERU5USVRZICovCiAJY2hh cgkgICAqYW1uYW1lOwkJCS8qIHJlbGF0aW9uIGFjY2VzcyBtZXRob2QgKi8KIApAQCAtNDg0 LDYgKzQ4OSwxNiBAQCB0eXBlZGVmIHN0cnVjdCBfY29uc3RyYWludEluZm8KIAlib29sCQlz ZXBhcmF0ZTsJCS8qIHRydWUgaWYgbXVzdCBkdW1wIGFzIHNlcGFyYXRlIGl0ZW0gKi8KIH0g Q29uc3RyYWludEluZm87CiAKK3R5cGVkZWYgc3RydWN0IF9wZXJpb2RJbmZvCit7CisJRHVt cGFibGVPYmplY3QgZG9iajsKKwlUYWJsZUluZm8gICpwZXJ0YWJsZTsKKwljaGFyCSAgICpw ZXJzdGFydDsJCS8qIHRoZSBuYW1lIG9mIHRoZSBzdGFydCBjb2x1bW4gKi8KKwljaGFyCSAg ICpwZXJlbmQ7CQkJLyogdGhlIG5hbWUgb2YgdGhlIGVuZCBjb2x1bW4gKi8KKwljaGFyCSAg ICpybmd0eXBlOwkJLyogdGhlIG5hbWUgb2YgdGhlIHJhbmdlIHR5cGUgKi8KKwljaGFyCSAg ICpjb25uYW1lOwkJLyogdGhlIG5hbWUgb2YgdGhlIENIRUNLIGNvbnN0cmFpbnQgKi8KK30g UGVyaW9kSW5mbzsKKwogdHlwZWRlZiBzdHJ1Y3QgX3Byb2NMYW5nSW5mbwogewogCUR1bXBh YmxlT2JqZWN0IGRvYmo7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9z b3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggNGNiNzU0Y2Fh NTUuLjU2MDJjZGE0ZDVjIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9z b3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC04Niw2ICs4 Niw3IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBSSU9fQ09OU1RSQUlOVCwK IAlQUklPX0lOREVYLAogCVBSSU9fSU5ERVhfQVRUQUNILAorCVBSSU9fUEVSSU9ELAogCVBS SU9fU1RBVFNFWFQsCiAJUFJJT19SVUxFLAogCVBSSU9fVFJJR0dFUiwKQEAgLTEyMSw2ICsx MjIsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQogCVtE T19BVFRSREVGXSA9IFBSSU9fQVRUUkRFRiwKIAlbRE9fSU5ERVhdID0gUFJJT19JTkRFWCwK IAlbRE9fSU5ERVhfQVRUQUNIXSA9IFBSSU9fSU5ERVhfQVRUQUNILAorCVtET19QRVJJT0Rd ID0gUFJJT19QRVJJT0QsCiAJW0RPX1NUQVRTRVhUXSA9IFBSSU9fU1RBVFNFWFQsCiAJW0RP X1JVTEVdID0gUFJJT19SVUxFLAogCVtET19UUklHR0VSXSA9IFBSSU9fVFJJR0dFUiwKQEAg LTEzNzEsNiArMTM3MywxMSBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2Jq ZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiRksgQ09OU1RSQUlO VCAlcyAgKElEICVkIE9JRCAldSkiLAogCQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwg b2JqLT5jYXRJZC5vaWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1BFUklPRDoKKwkJCXNu cHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJQRVJJT0QgJXMgIChJRCAlZCBPSUQgJXUp IiwKKwkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKKwkJ CXJldHVybjsKIAkJY2FzZSBET19QUk9DTEFORzoKIAkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6 ZSwKIAkJCQkJICJQUk9DRURVUkFMIExBTkdVQUdFICVzICAoSUQgJWQgT0lEICV1KSIsCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCmluZGV4IDY0MzM0OTdiY2QyLi5jZmFhMWMwNTAxYyAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAg LTE5NDcsNiArMTk0Nyw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIg KnNjaGVtYW5hbWUsCiAKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5GUk9NIHBn X2NhdGFsb2cucGdfYXR0cmlidXRlIGEiKTsKIAlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAi XG5XSEVSRSBhLmF0dHJlbGlkID0gJyVzJyBBTkQgYS5hdHRudW0gPiAwIEFORCBOT1QgYS5h dHRpc2Ryb3BwZWQiLCBvaWQpOworCWlmIChwc2V0LnN2ZXJzaW9uID49IDE3MDAwMCkKKwkJ YXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwgIlxuQU5EIE5PVCBFWElTVFMgKFNFTEVDVCAxIEZS T00gcGdfY2F0YWxvZy5wZ19wZXJpb2QgcCBXSEVSRSBwLnBlcnJlbGlkID0gYS5hdHRyZWxp ZCBBTkQgcC5wZXJyYW5nZSA9IGEuYXR0bnVtKSIpOwogCWFwcGVuZFBRRXhwQnVmZmVyU3Ry KCZidWYsICJcbk9SREVSIEJZIGEuYXR0bnVtOyIpOwogCiAJcmVzID0gUFNRTGV4ZWMoYnVm LmRhdGEpOwpAQCAtMjM2OSw2ICsyMzcxLDQwIEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxz KGNvbnN0IGNoYXIgKnNjaGVtYW5hbWUsCiAJCVBHcmVzdWx0ICAgKnJlc3VsdCA9IE5VTEw7 CiAJCWludAkJCXR1cGxlcyA9IDA7CiAKKwkJLyogcHJpbnQgcGVyaW9kcyAqLworCQlpZiAo cHNldC5zdmVyc2lvbiA+PSAxNzAwMDApCisJCXsKKwkJCXByaW50ZlBRRXhwQnVmZmVyKCZi dWYsCisJCQkJCQkJICAiU0VMRUNUIHF1b3RlX2lkZW50KHAucGVybmFtZSksIHF1b3RlX2lk ZW50KHMuYXR0bmFtZSkgQVMgc3RhcnRhdHQsIHF1b3RlX2lkZW50KGUuYXR0bmFtZSkgQVMg ZW5kYXR0XG4iCisJCQkJCQkJICAiRlJPTSBwZ19wZXJpb2QgQVMgcFxuIgorCQkJCQkJCSAg IkpPSU4gcGdfYXR0cmlidXRlIEFTIHMgT04gKHMuYXR0cmVsaWQsIHMuYXR0bnVtKSA9IChw LnBlcnJlbGlkLCBwLnBlcnN0YXJ0KVxuIgorCQkJCQkJCSAgIkpPSU4gcGdfYXR0cmlidXRl IEFTIGUgT04gKGUuYXR0cmVsaWQsIGUuYXR0bnVtKSA9IChwLnBlcnJlbGlkLCBwLnBlcmVu ZClcbiIKKwkJCQkJCQkgICJXSEVSRSBwLnBlcnJlbGlkID0gJyVzJ1xuIgorCQkJCQkJCSAg Ik9SREVSIEJZIDE7IiwKKwkJCQkJCQkgIG9pZCk7CisJCQlyZXN1bHQgPSBQU1FMZXhlYyhi dWYuZGF0YSk7CisJCQlpZiAoIXJlc3VsdCkKKwkJCQlnb3RvIGVycm9yX3JldHVybjsKKwkJ CWVsc2UKKwkJCQl0dXBsZXMgPSBQUW50dXBsZXMocmVzdWx0KTsKKworCQkJaWYgKHR1cGxl cyA+IDApCisJCQl7CisJCQkJcHJpbnRUYWJsZUFkZEZvb3RlcigmY29udCwgXygiUGVyaW9k czoiKSk7CisJCQkJZm9yIChpID0gMDsgaSA8IHR1cGxlczsgaSsrKQorCQkJCXsKKwkJCQkJ LyogdW50cmFuc2xhdGVkIGNvbnN0cmFpbnQgbmFtZSBhbmQgZGVmICovCisJCQkJCXByaW50 ZlBRRXhwQnVmZmVyKCZidWYsICIgICAgJXMgKCVzLCAlcykiLAorCQkJCQkJCQkJICBQUWdl dHZhbHVlKHJlc3VsdCwgaSwgMCksCisJCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBp LCAxKSwKKwkJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDIpKTsKKworCQkJCQlw cmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBidWYuZGF0YSk7CisJCQkJfQorCQkJfQorCQkJ UFFjbGVhcihyZXN1bHQpOworCQl9CisKIAkJLyogcHJpbnQgaW5kZXhlcyAqLwogCQlpZiAo dGFibGVpbmZvLmhhc2luZGV4KQogCQl7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL01ha2VmaWxlIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQppbmRleCAxNjdm OTFhNmUzZi4uNjJiYjRmYzYzZmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv TWFrZWZpbGUKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQpAQCAtNjUsNiAr NjUsNyBAQCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX2ZvcmVpZ25fc2VydmVyLmggXAog CXBnX3VzZXJfbWFwcGluZy5oIFwKIAlwZ19mb3JlaWduX3RhYmxlLmggXAorCXBnX3Blcmlv ZC5oIFwKIAlwZ19wb2xpY3kuaCBcCiAJcGdfcmVwbGljYXRpb25fb3JpZ2luLmggXAogCXBn X2RlZmF1bHRfYWNsLmggXApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9kZXBl bmRlbmN5LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL2RlcGVuZGVuY3kuaAppbmRleCA0MzZi MDgxNzM4Yi4uNDU2MjNlODZhNDUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv ZGVwZW5kZW5jeS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvZGVwZW5kZW5jeS5oCkBA IC05Myw2ICs5Myw3IEBAIHR5cGVkZWYgZW51bSBPYmplY3RDbGFzcwogCU9DTEFTU19DQVNU LAkJCQkvKiBwZ19jYXN0ICovCiAJT0NMQVNTX0NPTExBVElPTiwJCQkvKiBwZ19jb2xsYXRp b24gKi8KIAlPQ0xBU1NfQ09OU1RSQUlOVCwJCQkvKiBwZ19jb25zdHJhaW50ICovCisJT0NM QVNTX1BFUklPRCwJCQkJLyogcGdfcGVyaW9kICovCiAJT0NMQVNTX0NPTlZFUlNJT04sCQkJ LyogcGdfY29udmVyc2lvbiAqLwogCU9DTEFTU19ERUZBVUxULAkJCQkvKiBwZ19hdHRyZGVm ICovCiAJT0NMQVNTX0xBTkdVQUdFLAkJCS8qIHBnX2xhbmd1YWdlICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL2hlYXAuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvaGVh cC5oCmluZGV4IDIxZTMxZjljOTc0Li42YTJkMGFiMTExZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9oZWFwLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9oZWFwLmgK QEAgLTEyMSw2ICsxMjEsMTAgQEAgZXh0ZXJuIExpc3QgKkFkZFJlbGF0aW9uTm90TnVsbENv bnN0cmFpbnRzKFJlbGF0aW9uIHJlbCwKIGV4dGVybiB2b2lkIFJlbGF0aW9uQ2xlYXJNaXNz aW5nKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gdm9pZCBTZXRBdHRyTWlzc2luZyhPaWQgcmVs aWQsIGNoYXIgKmF0dG5hbWUsIGNoYXIgKnZhbHVlKTsKIAorZXh0ZXJuIE9pZCBTdG9yZVBl cmlvZChSZWxhdGlvbiByZWwsIGNvbnN0IGNoYXIgKnBlcmlvZCwKKwkJCQkJICAgQXR0ck51 bWJlciBzdGFydG51bSwgQXR0ck51bWJlciBlbmRudW0sCisJCQkJCSAgIEF0dHJOdW1iZXIg cmFuZ2VudW0sIE9pZCBjb25vaWQpOworCiBleHRlcm4gTm9kZSAqY29va0RlZmF1bHQoUGFy c2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJIE5vZGUgKnJhd19kZWZhdWx0LAogCQkJCQkJIE9p ZCBhdHR0eXBpZCwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVp bGQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IGY3MGQxZGFiYTUy Li5kNDVhYTVmYTg2MyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5i dWlsZAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC02MSw2ICs2 MSw3IEBAIGNhdGFsb2dfaGVhZGVycyA9IFsKICAgJ3BnX2NvbGxhdGlvbi5oJywKICAgJ3Bn X3BhcmFtZXRlcl9hY2wuaCcsCiAgICdwZ19wYXJ0aXRpb25lZF90YWJsZS5oJywKKyAgJ3Bn X3BlcmlvZC5oJywKICAgJ3BnX3JhbmdlLmgnLAogICAncGdfdHJhbnNmb3JtLmgnLAogICAn cGdfc2VxdWVuY2UuaCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2lu ZGV4LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmgKaW5kZXggMzQ2MjU3MmVi NTUuLjBhM2M4MTExYjY3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2lu ZGV4LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oCkBAIC00OCw3ICs0 OCw2IEBAIENBVEFMT0cocGdfaW5kZXgsMjYxMCxJbmRleFJlbGF0aW9uSWQpIEJLSV9TQ0hF TUFfTUFDUk8KIAkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhlcmUsIGJ1dCB3 ZSBhbGxvdyBkaXJlY3QgYWNjZXNzIHRvIGluZGtleSAqLwogCWludDJ2ZWN0b3IJaW5ka2V5 IEJLSV9GT1JDRV9OT1RfTlVMTDsJLyogY29sdW1uIG51bWJlcnMgb2YgaW5kZXhlZCBjb2xz LAogCQkJCQkJCQkJCQkgKiBvciAwICovCi0KICNpZmRlZiBDQVRBTE9HX1ZBUkxFTgogCW9p ZHZlY3RvcglpbmRjb2xsYXRpb24gQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9uKSBCS0lf Rk9SQ0VfTk9UX05VTEw7CS8qIGNvbGxhdGlvbiBpZGVudGlmaWVycyAqLwogCW9pZHZlY3Rv cglpbmRjbGFzcyBCS0lfTE9PS1VQKHBnX29wY2xhc3MpIEJLSV9GT1JDRV9OT1RfTlVMTDsg Lyogb3BjbGFzcyBpZGVudGlmaWVycyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wZXJpb2QuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcGVyaW9kLmgKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI1MDhjZDQ1YTA5Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wZXJpb2QuaApAQCAtMCww ICsxLDU4IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ19wZXJpb2QuaAor ICoJICBkZWZpbml0aW9uIG9mIHRoZSAicGVyaW9kIiBzeXN0ZW0gY2F0YWxvZyAocGdfcGVy aW9kKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyMSwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqCisgKiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3BlcmlvZC5oCisgKgorICogTk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0g bW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVyaXZlcyBzY2hlbWEKKyAqCSAgaW5mb3Jt YXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgUEdfUEVS SU9EX0gKKyNkZWZpbmUgUEdfUEVSSU9EX0gKKworI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtp LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ19wZXJpb2RfZC5oIgorI2luY2x1ZGUgIm5vZGVz L2JpdG1hcHNldC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfcGVyaW9kIGRl ZmluaXRpb24uICBjcHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9y bURhdGFfcGdfcGVyaW9kCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdf cGVyaW9kLDgwMDAsUGVyaW9kUmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CQkJLyogT0lE IG9mIHRoZSBwZXJpb2QgKi8KKwlOYW1lRGF0YQlwZXJuYW1lOwkJLyogbmFtZSBvZiBwZXJp b2QgKi8KKwlPaWQJCQlwZXJyZWxpZDsJCS8qIE9JRCBvZiByZWxhdGlvbiBjb250YWluaW5n IHRoaXMgcGVyaW9kICovCisJaW50MTYJCXBlcnN0YXJ0OwkJLyogY29sdW1uIGZvciBzdGFy dCB2YWx1ZSAqLworCWludDE2CQlwZXJlbmQ7CQkJLyogY29sdW1uIGZvciBlbmQgdmFsdWUg Ki8KKwlpbnQxNgkJcGVycmFuZ2U7CQkvKiBjb2x1bW4gZm9yIHJhbmdlIHZhbHVlICovCisJ T2lkCQkJcGVyY29uc3RyYWludDsJLyogT0lEIG9mIChzdGFydCA8IGVuZCkgY29uc3RyYWlu dCAqLworfSBGb3JtRGF0YV9wZ19wZXJpb2Q7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAq CQlGb3JtX3BnX3BlcmlvZCBjb3JyZXNwb25kcyB0byBhIHBvaW50ZXIgdG8gYSB0dXBsZSB3 aXRoCisgKgkJdGhlIGZvcm1hdCBvZiBwZ19wZXJpb2QgcmVsYXRpb24uCisgKiAtLS0tLS0t LS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgRm9ybURhdGFfcGdfcGVyaW9kICpGb3JtX3BnX3Bl cmlvZDsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ19wZXJpb2Rfb2lkX2luZGV4 LCA4MDAxLCBQZXJpb2RPYmplY3RJbmRleElkLCBwZ19wZXJpb2QsIGJ0cmVlKG9pZCBvaWRf b3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19wZXJpb2RfcGVycmVsaWRfcGVybmFt ZV9pbmRleCwgODAwMiwgUGVyaW9kUmVsaWROYW1lSW5kZXhJZCwgcGdfcGVyaW9kLCBidHJl ZShwZXJyZWxpZCBvaWRfb3BzLCBwZXJuYW1lIG5hbWVfb3BzKSk7CisKK01BS0VfU1lTQ0FD SEUoUEVSSU9ET0lELCBwZ19wZXJpb2Rfb2lkX2luZGV4LCAzMik7CitNQUtFX1NZU0NBQ0hF KFBFUklPRE5BTUUsIHBnX3BlcmlvZF9wZXJyZWxpZF9wZXJuYW1lX2luZGV4LCAzMik7CisK K2V4dGVybiB2b2lkIFJlbW92ZVBlcmlvZEJ5SWQoT2lkIHBlcmlvZElkKTsKKworZXh0ZXJu IE9pZCBnZXRfcmVsYXRpb25fcGVyaW9kX29pZChPaWQgcmVsaWQsIGNvbnN0IGNoYXIgKnBl cm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gQml0bWFwc2V0ICpnZXRfcGVyaW9k X2F0dG5vcyhPaWQgcmVsaWQpOworCisjZW5kaWYJCQkJCQkJLyogUEdfUEVSSU9EX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcmFuZ2UuaCBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcmFuZ2UuaAppbmRleCAwYmQzYWI2ODhiZC4uMTBhOTRkZDExZjEg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcmFuZ2UuaAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3JhbmdlLmgKQEAgLTU5LDggKzU5LDEwIEBAIHR5cGVkZWYg Rm9ybURhdGFfcGdfcmFuZ2UgKkZvcm1fcGdfcmFuZ2U7CiAKIERFQ0xBUkVfVU5JUVVFX0lO REVYX1BLRVkocGdfcmFuZ2Vfcm5ndHlwaWRfaW5kZXgsIDM1NDIsIFJhbmdlVHlwaWRJbmRl eElkLCBwZ19yYW5nZSwgYnRyZWUocm5ndHlwaWQgb2lkX29wcykpOwogREVDTEFSRV9VTklR VUVfSU5ERVgocGdfcmFuZ2Vfcm5nbXVsdGl0eXBpZF9pbmRleCwgMjIyOCwgUmFuZ2VNdWx0 aXJhbmdlVHlwaWRJbmRleElkLCBwZ19yYW5nZSwgYnRyZWUocm5nbXVsdGl0eXBpZCBvaWRf b3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ19yYW5nZV9ybmdzdWJ0eXBlX3JuZ3R5 cGlkX2luZGV4LCA4MDAzLCBSYW5nZVN1YlR5cGlkVHlwaWRJbmRleElkLCBwZ19yYW5nZSwg YnRyZWUocm5nc3VidHlwZSBvaWRfb3BzLCBybmd0eXBpZCBvaWRfb3BzKSk7CiAKIE1BS0Vf U1lTQ0FDSEUoUkFOR0VUWVBFLCBwZ19yYW5nZV9ybmd0eXBpZF9pbmRleCwgNCk7CitNQUtF X1NZU0NBQ0hFKFJBTkdFU1VCVFlQRSwgcGdfcmFuZ2Vfcm5nc3VidHlwZV9ybmd0eXBpZF9p bmRleCwgNCk7CiBNQUtFX1NZU0NBQ0hFKFJBTkdFTVVMVElSQU5HRSwgcGdfcmFuZ2Vfcm5n bXVsdGl0eXBpZF9pbmRleCwgNCk7CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tYW5kcy90YWJsZWNtZHMuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3RhYmxlY21kcy5o CmluZGV4IDg1Y2JhZDNkMGMyLi42MjhmYTUzNzk2YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY29tbWFuZHMvdGFibGVjbWRzLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvdGFi bGVjbWRzLmgKQEAgLTQwLDcgKzQwLDggQEAgZXh0ZXJuIExPQ0tNT0RFIEFsdGVyVGFibGVH ZXRMb2NrTGV2ZWwoTGlzdCAqY21kcyk7CiAKIGV4dGVybiB2b2lkIEFURXhlY0NoYW5nZU93 bmVyKE9pZCByZWxhdGlvbk9pZCwgT2lkIG5ld093bmVySWQsIGJvb2wgcmVjdXJzaW5nLCBM T0NLTU9ERSBsb2NrbW9kZSk7CiAKLWV4dGVybiB2b2lkIEFsdGVyVGFibGVJbnRlcm5hbChP aWQgcmVsaWQsIExpc3QgKmNtZHMsIGJvb2wgcmVjdXJzZSk7CitleHRlcm4gdm9pZCBBbHRl clRhYmxlSW50ZXJuYWwoT2lkIHJlbGlkLCBMaXN0ICpjbWRzLCBib29sIHJlY3Vyc2UsCisJ CQkJCQkJICAgc3RydWN0IEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCk7CiAK IGV4dGVybiBPaWQJQWx0ZXJUYWJsZU1vdmVBbGwoQWx0ZXJUYWJsZU1vdmVBbGxTdG10ICpz dG10KTsKIApAQCAtMTA2LDUgKzEwNyw2IEBAIGV4dGVybiB2b2lkIFJhbmdlVmFyQ2FsbGJh Y2tPd25zUmVsYXRpb24oY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJCSBP aWQgcmVsSWQsIE9pZCBvbGRSZWxJZCwgdm9pZCAqYXJnKTsKIGV4dGVybiBib29sIFBhcnRD b25zdHJhaW50SW1wbGllZEJ5UmVsQ29uc3RyYWludChSZWxhdGlvbiBzY2FucmVsLAogCQkJ CQkJCQkJCQkJIExpc3QgKnBhcnRDb25zdHJhaW50KTsKK2V4dGVybiBPaWQgY2hvb3NlX3Jh bmdldHlwZV9mb3JfcGVyaW9kKFBlcmlvZERlZiAqcGVyaW9kKTsKIAogI2VuZGlmCQkJCQkJ CS8qIFRBQkxFQ01EU19IICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMjZmMTk2 Mjg3OGMuLmRkODVjNTliMDlhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMTU0 LDYgKzIxNTQsNyBAQCB0eXBlZGVmIGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9PUEVSQVRP UiwKIAlPQkpFQ1RfT1BGQU1JTFksCiAJT0JKRUNUX1BBUkFNRVRFUl9BQ0wsCisJT0JKRUNU X1BFUklPRCwKIAlPQkpFQ1RfUE9MSUNZLAogCU9CSkVDVF9QUk9DRURVUkUsCiAJT0JKRUNU X1BVQkxJQ0FUSU9OLApAQCAtMjI0Miw2ICsyMjQzLDggQEAgdHlwZWRlZiBlbnVtIEFsdGVy VGFibGVUeXBlCiAJQVRfVmFsaWRhdGVDb25zdHJhaW50LAkJLyogdmFsaWRhdGUgY29uc3Ry YWludCAqLwogCUFUX0FkZEluZGV4Q29uc3RyYWludCwJCS8qIGFkZCBjb25zdHJhaW50IHVz aW5nIGV4aXN0aW5nIGluZGV4ICovCiAJQVRfRHJvcENvbnN0cmFpbnQsCQkJLyogZHJvcCBj b25zdHJhaW50ICovCisJQVRfQWRkUGVyaW9kLAkJCQkvKiBBREQgUEVSSU9EICovCisJQVRf RHJvcFBlcmlvZCwJCQkJLyogRFJPUCBQRVJJT0QgKi8KIAlBVF9SZUFkZENvbW1lbnQsCQkJ LyogaW50ZXJuYWwgdG8gY29tbWFuZHMvdGFibGVjbWRzLmMgKi8KIAlBVF9BbHRlckNvbHVt blR5cGUsCQkJLyogYWx0ZXIgY29sdW1uIHR5cGUgKi8KIAlBVF9BbHRlckNvbHVtbkdlbmVy aWNPcHRpb25zLAkvKiBhbHRlciBjb2x1bW4gT1BUSU9OUyAoLi4uKSAqLwpAQCAtMjUwOCwx MSArMjUxMSwxMSBAQCB0eXBlZGVmIHN0cnVjdCBWYXJpYWJsZVNob3dTdG10CiAvKiAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJQ3JlYXRlIFRhYmxlIFN0YXRlbWVudAogICoKLSAq IE5PVEU6IGluIHRoZSByYXcgZ3JhbS55IG91dHB1dCwgQ29sdW1uRGVmIGFuZCBDb25zdHJh aW50IG5vZGVzIGFyZQotICogaW50ZXJtaXhlZCBpbiB0YWJsZUVsdHMsIGFuZCBjb25zdHJh aW50cyBhbmQgbm5jb25zdHJhaW50cyBhcmUgTklMLiAgQWZ0ZXIKLSAqIHBhcnNlIGFuYWx5 c2lzLCB0YWJsZUVsdHMgY29udGFpbnMganVzdCBDb2x1bW5EZWZzLCBubmNvbnN0cmFpbnRz IGNvbnRhaW5zCi0gKiBDb25zdHJhaW50IG5vZGVzIG9mIENPTlNUUl9OT1ROVUxMIHR5cGUg ZnJvbSB2YXJpb3VzIHNvdXJjZXMsIGFuZAotICogY29uc3RyYWludHMgY29udGFpbnMganVz dCBDT05TVFJfQ0hFQ0sgQ29uc3RyYWludCBub2Rlcy4KKyAqIE5PVEU6IGluIHRoZSByYXcg Z3JhbS55IG91dHB1dCwgQ29sdW1uRGVmLCBQZXJpb2REZWYsIGFuZCBDb25zdHJhaW50IG5v ZGVzIGFyZQorICogaW50ZXJtaXhlZCBpbiB0YWJsZUVsdHM7IHBlcmlvZHMsIGNvbnN0cmFp bnRzLCBhbmQgbm5jb25zdHJhaW50cyBhcmUgTklMLiAgQWZ0ZXIKKyAqIHBhcnNlIGFuYWx5 c2lzLCB0YWJsZUVsdHMgY29udGFpbnMganVzdCBDb2x1bW5EZWZzLCBwZXJpb2RzIGNvbnRh aW5zIGp1c3QgUGVyaW9kRGVmcywKKyAqIG5uY29uc3RyYWludHMgY29udGFpbnMgQ29uc3Ry YWludCBub2RlcyBvZiBDT05TVFJfTk9UTlVMTCB0eXBlIGZyb20gdmFyaW91cyBzb3VyY2Vz LAorICogYW5kIGNvbnN0cmFpbnRzIGNvbnRhaW5zIGp1c3QgQ09OU1RSX0NIRUNLIENvbnN0 cmFpbnQgbm9kZXMuCiAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIApAQCAtMjUy MSw2ICsyNTI0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU3RtdAogCU5vZGVUYWcJCXR5 cGU7CiAJUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBjcmVhdGUgKi8K IAlMaXN0CSAgICp0YWJsZUVsdHM7CQkvKiBjb2x1bW4gZGVmaW5pdGlvbnMgKGxpc3Qgb2Yg Q29sdW1uRGVmKSAqLworCUxpc3QJICAgKnBlcmlvZHM7CQkvKiBwZXJpb2RzIChsaXN0IG9m IFBlcmlvZERlZiBub2RlcykgKi8KIAlMaXN0CSAgICppbmhSZWxhdGlvbnM7CS8qIHJlbGF0 aW9ucyB0byBpbmhlcml0IGZyb20gKGxpc3Qgb2YKIAkJCQkJCQkJICogUmFuZ2VWYXIpICov CiAJUGFydGl0aW9uQm91bmRTcGVjICpwYXJ0Ym91bmQ7CS8qIEZPUiBWQUxVRVMgY2xhdXNl ICovCkBAIC0yNTM1LDYgKzI1MzksMzEgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU3RtdAog CWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGp1c3QgZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5 IGV4aXN0cz8gKi8KIH0gQ3JlYXRlU3RtdDsKIAorCisvKiAtLS0tLS0tLS0tCisgKiBEZWZp bml0aW9ucyBmb3IgcGVyaW9kcyBpbiBDcmVhdGVTdG10CisgKiAtLS0tLS0tLS0tCisgKi8K KwordHlwZWRlZiBzdHJ1Y3QgUGVyaW9kRGVmCit7CisJTm9kZVRhZwkJdHlwZTsKKwlPaWQJ CQlvaWQ7CQkJLyogcGVyaW9kIG9pZCwgb25jZSBpdCdzIHRyYW5zZm9ybWVkICovCisJY2hh cgkgICAqcGVyaW9kbmFtZTsJCS8qIHBlcmlvZCBuYW1lICovCisJY2hhcgkgICAqc3RhcnRj b2xuYW1lOwkvKiBuYW1lIG9mIHN0YXJ0IGNvbHVtbiAqLworCWNoYXIJICAgKmVuZGNvbG5h bWU7CQkvKiBuYW1lIG9mIGVuZCBjb2x1bW4gKi8KKwlBdHRyTnVtYmVyCXN0YXJ0YXR0bnVt OwkvKiBhdHRudW0gb2YgdGhlIHN0YXJ0IGNvbHVtbiAqLworCUF0dHJOdW1iZXIJZW5kYXR0 bnVtOwkJLyogYXR0bnVtIG9mIHRoZSBlbmQgY29sdW1uICovCisJQXR0ck51bWJlcglybmdh dHRudW07CQkvKiBhdHRudW0gb2YgdGhlIEdFTkVSQVRFRCByYW5nZSBjb2x1bW4gKi8KKwlM aXN0CSAgICpvcHRpb25zOwkJLyogb3B0aW9ucyBmcm9tIFdJVEggY2xhdXNlICovCisJY2hh cgkgICAqY29uc3RyYWludG5hbWU7CS8qIG5hbWUgb2YgdGhlIENIRUNLIGNvbnN0cmFpbnQg Ki8KKwljaGFyCSAgICpyYW5nZXR5cGVuYW1lOwkvKiBuYW1lIG9mIHRoZSByYW5nZSB0eXBl ICovCisJT2lkCQkJY29sdHlwaWQ7CQkvKiB0aGUgc3RhcnQvZW5kIGNvbCB0eXBlICovCisJ T2lkCQkJcm5ndHlwaWQ7CQkvKiB0aGUgcmFuZ2UgdHlwZSB0byB1c2UgKi8KKwlib29sCQlj b2xleGlzdHM7CQkvKiB1c2UgYW4gZXhpc3RpbmcgR0VORVJBVEVEIGNvbHVtbiAqLworCWlu dAkJCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8K K30gUGVyaW9kRGVmOworCiAvKiAtLS0tLS0tLS0tCiAgKiBEZWZpbml0aW9ucyBmb3IgY29u c3RyYWludHMgaW4gQ3JlYXRlU3RtdAogICoKQEAgLTMyMzAsNiArMzI1OSw3IEBAIHR5cGVk ZWYgc3RydWN0IEluZGV4U3RtdAogCUxpc3QJICAgKmluZGV4UGFyYW1zOwkvKiBjb2x1bW5z IHRvIGluZGV4OiBhIGxpc3Qgb2YgSW5kZXhFbGVtICovCiAJTGlzdAkgICAqaW5kZXhJbmNs dWRpbmdQYXJhbXM7CS8qIGFkZGl0aW9uYWwgY29sdW1ucyB0byBpbmRleDogYSBsaXN0CiAJ CQkJCQkJCQkJICogb2YgSW5kZXhFbGVtICovCisJUGVyaW9kRGVmICAqcGVyaW9kOwkJCS8q IFRoZSBwZXJpb2QgaW5jbHVkZWQgaW4gdGhlIGluZGV4ICovCiAJTGlzdAkgICAqb3B0aW9u czsJCS8qIFdJVEggY2xhdXNlIG9wdGlvbnM6IGEgbGlzdCBvZiBEZWZFbGVtICovCiAJTm9k ZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb24gKHBhcnRpYWwtaW5kZXggcHJl ZGljYXRlKSAqLwogCUxpc3QJICAgKmV4Y2x1ZGVPcE5hbWVzOyAvKiBleGNsdXNpb24gb3Bl cmF0b3IgbmFtZXMsIG9yIE5JTCBpZiBub25lICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmlu ZGV4IGQxY2E5ZjM3ZjMwLi43NDg1NDZiYjk3NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgK QEAgLTIxMDcsNiArMjEwNyw4IEBAIHR5cGVkZWYgc3RydWN0IEZvclBvcnRpb25PZkV4cHIK IHsKIAlOb2RlVGFnCQl0eXBlOwogCVZhcgkJICAgKnJhbmdlVmFyOwkJCS8qIFJhbmdlIGNv bHVtbiAqLworCVZhcgkJICAgKnN0YXJ0VmFyOwkJCS8qIFN0YXJ0IGNvbHVtbiBpZiBQRVJJ T0QgKi8KKwlWYXIJCSAgICplbmRWYXI7CQkJCS8qIEVuZCBjb2x1bW4gaWYgUEVSSU9EICov CiAJY2hhcgkgICAqcmFuZ2VfbmFtZTsJCQkvKiBSYW5nZSBuYW1lICovCiAJTm9kZQkgICAq dGFyZ2V0UmFuZ2U7CQkvKiBGT1IgUE9SVElPTiBPRiBib3VuZHMgYXMgYSByYW5nZSAqLwog CU9pZAkJCXJhbmdlVHlwZTsJCQkvKiB0eXBlIG9mIHRhcmdldFJhbmdlICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKaW5kZXggYTVjYzE4Y2QzNTcuLjAxMzk1ZDViNjI0IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3 bGlzdC5oCkBAIC0zMjcsNyArMzI3LDcgQEAgUEdfS0VZV09SRCgicGFydGlhbCIsIFBBUlRJ QUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInBhcnRp dGlvbiIsIFBBUlRJVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgicGFzc2luZyIsIFBBU1NJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInBhc3N3b3JkIiwgUEFTU1dPUkQsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKLVBHX0tFWVdPUkQoInBlcmlvZCIsIFBFUklPRCwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgicGVyaW9kIiwgUEVSSU9E LCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicGxhY2luZyIs IFBMQUNJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJw bGFucyIsIFBMQU5TLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJwb2xpY3kiLCBQT0xJQ1ksIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV91dGlsY21kLmggYi9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRpbGNtZC5oCmluZGV4IDE0MDY1ODk0Nzc5Li5kODRk MDJiMDI4MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3V0aWxjbWQu aAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdXRpbGNtZC5oCkBAIC00MCw1ICs0 MCw2IEBAIGV4dGVybiBJbmRleFN0bXQgKmdlbmVyYXRlQ2xvbmVkSW5kZXhTdG10KFJhbmdl VmFyICpoZWFwUmVsLAogCQkJCQkJCQkJCSAgUmVsYXRpb24gc291cmNlX2lkeCwKIAkJCQkJ CQkJCQkgIGNvbnN0IHN0cnVjdCBBdHRyTWFwICphdHRtYXAsCiAJCQkJCQkJCQkJICBPaWQg KmNvbnN0cmFpbnRPaWQpOworZXh0ZXJuIHZvaWQgdHJhbnNmb3JtUGVyaW9kT3B0aW9ucyhQ ZXJpb2REZWYgKnBlcmlvZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9VVElMQ01EX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmgKaW5kZXggNDhkZjEwN2MxY2UuLmNkOWZlNWM5ODhk IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMv aW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAtOTUsNiArOTUsOCBAQCBleHRlcm4gT2lk CWdldF9hdHR0eXBlKE9pZCByZWxpZCwgQXR0ck51bWJlciBhdHRudW0pOwogZXh0ZXJuIHZv aWQgZ2V0X2F0dHR5cGV0eXBtb2Rjb2xsKE9pZCByZWxpZCwgQXR0ck51bWJlciBhdHRudW0s CiAJCQkJCQkJCSAgT2lkICp0eXBpZCwgaW50MzIgKnR5cG1vZCwgT2lkICpjb2xsaWQpOwog ZXh0ZXJuIERhdHVtIGdldF9hdHRvcHRpb25zKE9pZCByZWxpZCwgaW50MTYgYXR0bnVtKTsK K2V4dGVybiBjaGFyICpnZXRfcGVyaW9kbmFtZShPaWQgcGVyaW9kaWQsIGJvb2wgbWlzc2lu Z19vayk7CitleHRlcm4gT2lkCWdldF9wZXJpb2Rfb2lkKE9pZCByZWxpZCwgY29uc3QgY2hh ciAqcGVyaW9kbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X2Nhc3Rf b2lkKE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0YXJnZXR0eXBlaWQsIGJvb2wgbWlzc2luZ19v ayk7CiBleHRlcm4gY2hhciAqZ2V0X2NvbGxhdGlvbl9uYW1lKE9pZCBjb2xsb2lkKTsKIGV4 dGVybiBib29sIGdldF9jb2xsYXRpb25faXNkZXRlcm1pbmlzdGljKE9pZCBjb2xsb2lkKTsK QEAgLTE5Niw2ICsxOTgsNyBAQCBleHRlcm4gT2lkCWdldF9yYW5nZV9zdWJ0eXBlKE9pZCBy YW5nZU9pZCk7CiBleHRlcm4gT2lkCWdldF9yYW5nZV9jb2xsYXRpb24oT2lkIHJhbmdlT2lk KTsKIGV4dGVybiBPaWQJZ2V0X3JhbmdlX211bHRpcmFuZ2UoT2lkIHJhbmdlT2lkKTsKIGV4 dGVybiBPaWQJZ2V0X211bHRpcmFuZ2VfcmFuZ2UoT2lkIG11bHRpcmFuZ2VPaWQpOworZXh0 ZXJuIE9pZAlnZXRfc3VidHlwZV9yYW5nZShPaWQgc3VidHlwZU9pZCk7CiBleHRlcm4gT2lk CWdldF9pbmRleF9jb2x1bW5fb3BjbGFzcyhPaWQgaW5kZXhfb2lkLCBpbnQgYXR0bm8pOwog ZXh0ZXJuIGJvb2wgZ2V0X2luZGV4X2lzcmVwbGlkZW50KE9pZCBpbmRleF9vaWQpOwogZXh0 ZXJuIGJvb2wgZ2V0X2luZGV4X2lzdmFsaWQoT2lkIGluZGV4X29pZCk7CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9wZXJpb2QuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3Blcmlv ZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMDJjMTcwMzZm ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3BlcmlvZC5oCkBAIC0w LDAgKzEsMjEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBlcmlvZC5oCisg KgkgIHN1cHBvcnQgZm9yIFBvc3RncmVzIHBlcmlvZHMuCisgKgorICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDIyLCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVu dCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRo ZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS91dGlscy9w ZXJpb2QuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVmIFBFUklP RF9ICisjZGVmaW5lIFBFUklPRF9ICisKKyNpbmNsdWRlICJleGVjdXRvci90dXB0YWJsZS5o IgorCitleHRlcm4gRGF0dW0gcGVyaW9kX3RvX3JhbmdlKFR1cGxlVGFibGVTbG90ICpzbG90 LCBpbnQgc3RhcnRhdHRubywgaW50IGVuZGF0dG5vLCBPaWQgcmFuZ2V0eXBlKTsKKworI2Vu ZGlmCQkJCQkJCS8qIFBFUklPRF9IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfZGRsX2RlcGFyc2UvdGVzdF9kZGxfZGVwYXJzZS5jIGIvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X2RkbF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2UuYwppbmRleCA0ODU2M2IyY2Yw MS4uYTk1NGU3MDMzODQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9kZGxf ZGVwYXJzZS90ZXN0X2RkbF9kZXBhcnNlLmMKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0 X2RkbF9kZXBhcnNlL3Rlc3RfZGRsX2RlcGFyc2UuYwpAQCAtMTgzLDYgKzE4MywxMiBAQCBn ZXRfYWx0ZXJ0YWJsZV9zdWJjbWRpbmZvKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQljYXNlIEFU X0Ryb3BDb25zdHJhaW50OgogCQkJCXN0cnR5cGUgPSAiRFJPUCBDT05TVFJBSU5UIjsKIAkJ CQlicmVhazsKKwkJCWNhc2UgQVRfQWRkUGVyaW9kOgorCQkJCXN0cnR5cGUgPSAiQUREIFBF UklPRCI7CisJCQkJYnJlYWs7CisJCQljYXNlIEFUX0Ryb3BQZXJpb2Q6CisJCQkJc3RydHlw ZSA9ICJEUk9QIFBFUklPRCI7CisJCQkJYnJlYWs7CiAJCQljYXNlIEFUX1JlQWRkQ29tbWVu dDoKIAkJCQlzdHJ0eXBlID0gIihyZSkgQUREIENPTU1FTlQiOwogCQkJCWJyZWFrOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JfcG9ydGlvbl9vZi5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Zvcl9wb3J0aW9uX29mLm91dAppbmRleCA1 YzBhNWNmNGIxYi4uZWJjNDNmNTVmMzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZm9yX3BvcnRpb25fb2Yub3V0CkBAIC01MzIsNiArNTMyLDQ0IEBAIFNFTEVDVCAq IEZST00gZm9yX3BvcnRpb25fb2ZfdGVzdDIgT1JERVIgQlkgaWQsIHZhbGlkX2F0OwogIFsz LDQpIHwge1swMS0wMS0yMDE4LCl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHRocmVlCiAoNiByb3dzKQogCitEUk9QIFRB QkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOworLS0gVGVzdCB3aXRoIFBFUklPRHMKK0NSRUFU RSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MiAoCisgIGlkIGludDRyYW5nZSBOT1QgTlVM TCwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgbmFtZSB0ZXh0 IE5PVCBOVUxMLAorICBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90 aWwpLAorCUNPTlNUUkFJTlQgZm9yX3BvcnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9w b3J0aW9uX29mX3Rlc3QyCitWQUxVRVMKKygnWzEsMiknLCAnMjAxOC0wMS0wMicsICcyMDE4 LTAyLTAzJywgJ29uZScpLAorKCdbMSwyKScsICcyMDE4LTAyLTA0JywgJzIwMTgtMDMtMDMn LCAnb25lJyksCisoJ1sxLDIpJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcsICdvbmUn KSwKKygnWzIsMyknLCAnMjAxOC0wMS0wMScsICcyMDE4LTA1LTAxJywgJ3R3bycpLAorKCdb Myw0KScsICcyMDE4LTAxLTAxJywgbnVsbCwgJ3RocmVlJyk7Cis7CitVUERBVEUgZm9yX3Bv cnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MTAnIFRPICcyMDE4LTAyLTEwJworU0VUIG5hbWUgPSAnb25lXjEnCitXSEVSRSBpZCA9ICdb MSwyKSc7CitERUxFVEUgRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBPUlRJT04g T0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xNScgVE8gJzIwMTgtMDItMTUnCitXSEVSRSBp ZCA9ICdbMiwzKSc7CitTRUxFQ1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwg bmFtZSAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLQorIFsx LDIpIHwgMDEtMDItMjAxOCB8IDAxLTEwLTIwMTggfCBvbmUKKyBbMSwyKSB8IDAxLTEwLTIw MTggfCAwMi0wMy0yMDE4IHwgb25lXjEKKyBbMSwyKSB8IDAyLTA0LTIwMTggfCAwMi0xMC0y MDE4IHwgb25lXjEKKyBbMSwyKSB8IDAyLTEwLTIwMTggfCAwMy0wMy0yMDE4IHwgb25lCisg WzEsMikgfCAwMy0wMy0yMDE4IHwgMDQtMDQtMjAxOCB8IG9uZQorIFsyLDMpIHwgMDEtMDEt MjAxOCB8IDAxLTE1LTIwMTggfCB0d28KKyBbMiwzKSB8IDAyLTE1LTIwMTggfCAwNS0wMS0y MDE4IHwgdHdvCisgWzMsNCkgfCAwMS0wMS0yMDE4IHwgICAgICAgICAgICB8IHRocmVlCiso OCByb3dzKQorCiBEUk9QIFRBQkxFIGZvcl9wb3J0aW9uX29mX3Rlc3QyOwogLS0gVGVzdCB3 aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKIENSRUFURSBUWVBFIG15ZGF0ZXJhbmdlIEFTIHJh bmdlKHN1YnR5cGU9ZGF0ZSk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2dlbmVyYXRlZC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRl ZC5vdXQKaW5kZXggYTRmMzc3MzY2MjMuLmQ5YzFmNzhlZDhiIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dlbmVyYXRlZC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9nZW5lcmF0ZWQub3V0CkBAIC0xOSw3ICsxOSw5IEBAIFNFTEVDVCB0 YWJsZV9uYW1lLCBjb2x1bW5fbmFtZSwgZGVwZW5kZW50X2NvbHVtbiBGUk9NIGluZm9ybWF0 aW9uX3NjaGVtYS5jb2x1bW5fCiAgdGFibGVfbmFtZSB8IGNvbHVtbl9uYW1lIHwgZGVwZW5k ZW50X2NvbHVtbiAKIC0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLQogIGd0ZXN0MSAgICAgfCBhICAgICAgICAgICB8IGIKLSgxIHJvdykKKyBwdCAgICAg ICAgIHwgZGUgICAgICAgICAgfCBwCisgcHQgICAgICAgICB8IGRzICAgICAgICAgIHwgcAor KDMgcm93cykKIAogXGQgZ3Rlc3QxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFi bGUgInB1YmxpYy5ndGVzdDEiCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BlcmlvZHMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wZXJpb2RzLm91 dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWZkM2E4NDZhYjkK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BlcmlvZHMu b3V0CkBAIC0wLDAgKzEsMjY3IEBACisvKiBTeXN0ZW0gcGVyaW9kcyBhcmUgbm90IGltcGxl bWVudGVkICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRh dGUsIHBlcmlvZCBmb3Igc3lzdGVtX3RpbWUgKGRzLCBkZSkpOworRVJST1I6ICBQRVJJT0Qg Rk9SIFNZU1RFTV9USU1FIGlzIG5vdCBzdXBwb3J0ZWQKK0xJTkUgMjogY3JlYXRlIHRhYmxl IHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHN5Li4uCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorLyogUGVyaW9kcyBtdXN0IHNwZWNpZnkgYWN0dWFsIGNvbHVtbnMgKi8KK2NyZWF0ZSB0 YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChi b2d1cywgZGUpKTsKK0VSUk9SOiAgY29sdW1uICJib2d1cyIgb2YgcmVsYXRpb24gInB0IiBk b2VzIG5vdCBleGlzdAorY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBk ZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBib2d1cykpOworRVJST1I6ICBjb2x1bW4gImJv Z3VzIiBvZiByZWxhdGlvbiAicHQiIGRvZXMgbm90IGV4aXN0CisvKiBEYXRhIHR5cGVzIG11 c3QgbWF0Y2ggZXhhY3RseSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBk YXRlLCBkZSB0aW1lc3RhbXAsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitFUlJPUjogIHN0 YXJ0IGFuZCBlbmQgY29sdW1ucyBvZiBwZXJpb2QgbXVzdCBiZSBvZiBzYW1lIHR5cGUKK2Ny ZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgdGV4dCBjb2xsYXRlICJDIiwgZGUgdGV4 dCBjb2xsYXRlICJQT1NJWCIsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitFUlJPUjogIHN0 YXJ0IGFuZCBlbmQgY29sdW1ucyBvZiBwZXJpb2QgbXVzdCBoYXZlIHNhbWUgY29sbGF0aW9u CisvKiBQZXJpb2RzIG11c3QgaGF2ZSBhIGRlZmF1bHQgQlRyZWUgb3BlcmF0b3IgY2xhc3Mg Ki8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgeG1sLCBkZSB4bWwsIHBlcmlv ZCBmb3IgcCAoZHMsIGRlKSk7CitFUlJPUjogIG5vIHJhbmdlIHR5cGUgZm9yIHhtbCBmb3Vu ZCBmb3IgcGVyaW9kIHAKK0hJTlQ6ICBZb3UgY2FuIGRlZmluZSBhIGN1c3RvbSByYW5nZSB0 eXBlIHdpdGggQ1JFQVRFIFRZUEUKKy8qIFBlcmlvZCBhbmQgY29sdW1uIG5hbWVzIGFyZSBp biB0aGUgc2FtZSBuYW1lc3BhY2UgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwg ZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBjdGlkIChkcywgZGUpKTsKK0VSUk9SOiAg cGVyaW9kIG5hbWUgImN0aWQiIGNvbmZsaWN0cyB3aXRoIGEgc3lzdGVtIGNvbHVtbiBuYW1l CitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlv ZCBmb3IgaWQgKGRzLCBkZSkpOworRVJST1I6ICBwZXJpb2QgbmFtZSAiaWQiIGNvbmZsaWN0 cyB3aXRoIGEgY29sdW1uIG5hbWUKKy8qIFBlcmlvZCBuYW1lIGNhbid0IGJlIGdpdmVuIG1v cmUgdGhhbiBvbmNlICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSwgcGVyaW9kIGZvciBwIChkcywgZGUp KTsKK0VSUk9SOiAgcGVyaW9kIG5hbWUgInAiIHNwZWNpZmllZCBtb3JlIHRoYW4gb25jZQor LyogTm93IG1ha2Ugb25lIHRoYXQgd29ya3MgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50 ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKKy8qIFNF TEVDVCAqIGV4Y2x1ZGVzIHRoZSBQRVJJT0QgKi8KK2luc2VydCBpbnRvIHB0IHZhbHVlcyAo MSwgJzIwMDAtMDEtMDEnLCAnMjAwMS0wMS0wMScpOworc2VsZWN0ICogZnJvbSBwdDsKKyBp ZCB8ICAgICBkcyAgICAgfCAgICAgZGUgICAgIAorLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tCisgIDEgfCAwMS0wMS0yMDAwIHwgMDEtMDEtMjAwMQorKDEgcm93KQorCisvKiBZ b3UgY2FuIGdldCBpdCBpZiB5b3Ugd2FudCAqLworc2VsZWN0ICosIHAgZnJvbSBwdDsKKyBp ZCB8ICAgICBkcyAgICAgfCAgICAgZGUgICAgIHwgICAgICAgICAgICBwICAgICAgICAgICAg CistLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICAxIHwgMDEtMDEtMjAwMCB8IDAxLTAxLTIwMDEgfCBbMDEtMDEtMjAwMCwwMS0w MS0yMDAxKQorKDEgcm93KQorCisvKiBUd28gYXJlIG9rYXkgKi8KK2NyZWF0ZSB0YWJsZSBw dDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcDEgKGRzLCBk ZSksIHBlcmlvZCBmb3IgcDIgKGRzLCBkZSkpOworZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lw IGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IHdvcmtzICovCitjcmVhdGUgdGFibGUgcHQy IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBn ZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkLCBwZXJpb2Qg Zm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworXGQgcHQyCisgICAg ICAgICAgICAgICAgVGFibGUgInB1YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENv bGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAg ICAgICAgfCAgICAgICAgICB8IAorIGRzICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorIGRlICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8 IAorUGVyaW9kczoKKyAgICBwIChkcywgZGUpCitDaGVjayBjb25zdHJhaW50czoKKyAgICAi cHQyX3BfY2hlY2siIENIRUNLIChkcyA8IGRlKQorCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNr aXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sIGlz bid0IHRoZXJlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBk ZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkp OworRVJST1I6ICBObyBjb2x1bW4gZm91bmQgd2l0aCBuYW1lIHAKKy8qIFNraXAgY3JlYXRp bmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgb3B0aW9uIGhhcyBhbiBp bnZhbGlkIHZhbHVlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRl LCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gJ3do YXRldmVyJykpOworRVJST1I6ICBjb2xleGlzdHMgcmVxdWlyZXMgYSBCb29sZWFuIHZhbHVl CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhl IGNvbHVtbiBpcyBub3QgTk9UIE5VTEwgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVn ZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIGdlbmVyYXRlZCBhbHdheXMgYXMg KGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRo IChjb2xleGlzdHMgPSB0cnVlKSk7CitFUlJPUjogIFBlcmlvZCBwIHVzZXMgYSBnZW5lcmF0 ZWQgY29sdW1uIHRoYXQgYWxsb3dzIG51bGxzCisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRF RCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBub3QgR0VORVJBVEVEICov CitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRh dGVyYW5nZSBub3QgbnVsbCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0 cyA9IHRydWUpKTsKK0VSUk9SOiAgUGVyaW9kIHAgdXNlcyBhIG5vbi1nZW5lcmF0ZWQgY29s dW1uCisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2Ug dGhlIGNvbHVtbiBpcyBHRU5FUkFURUQgYnV0IHdpdGggdGhlIHdyb25nIGV4cHJlc3Npb24g Ki8KKy0tIFRPRE86CistLSBjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRl LCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChk YXRlcmFuZ2UoZGUsIGRzKSkgc3RvcmVkLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAo Y29sZXhpc3RzID0gdHJ1ZSkpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1u OiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0 ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgdHNyYW5nZSBu b3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzICh0c3JhbmdlKGRzLCBkZSkpIHN0b3JlZCwg cGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKK0VSUk9S OiAgUGVyaW9kIHAgdXNlcyBhIGdlbmVyYXRlZCBjb2x1bW4gd2l0aCB0aGUgd3JvbmcgdHlw ZQorLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRo ZSBjb2x1bW4gaXMgaW5oZXJpdGVkICovCitjcmVhdGUgdGFibGUgcHQycGFyZW50IChpZCBp bnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0 ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2NyZWF0ZSB0YWJs ZSBwdDIgKHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKSkg aW5oZXJpdHMgKHB0MnBhcmVudCk7CitFUlJPUjogIEluaGVyaXRpbmcgaXMgbm90IHN1cHBv cnRlZCB3aGVuIGEgdGFibGUgaGFzIGEgUEVSSU9ECitkcm9wIHRhYmxlIHB0MnBhcmVudDsK Ky8qCisgKiBBTFRFUiBUQUJMRSB0ZXN0cworICovCithbHRlciB0YWJsZSBwdCBkcm9wIHBl cmlvZCBmb3IgcDsKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yIHN5c3RlbV90aW1l IChkcywgZGUpOworRVJST1I6ICBQRVJJT0QgRk9SIFNZU1RFTV9USU1FIGlzIG5vdCBzdXBw b3J0ZWQKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSk7CisvKiBB ZGRpbmcgYSBzZWNvbmQgb25lICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBk cyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAxIChkcywgZGUpKTsKK2FsdGVyIHRhYmxl IHB0MiBhZGQgcGVyaW9kIGZvciBwMiAoZHMsIGRlKTsKK2Ryb3AgdGFibGUgcHQyOworLyog Q2FuJ3QgZHJvcCBpdHMgY29sdW1ucyAqLworYWx0ZXIgdGFibGUgcHQgZHJvcCBjb2x1bW4g ZHM7CitFUlJPUjogIGNhbm5vdCBkcm9wIGNvbHVtbiBkcyBvZiB0YWJsZSBwdCBiZWNhdXNl IG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBwZXJpb2QgcCBvbiB0YWJs ZSBwdCBkZXBlbmRzIG9uIGNvbHVtbiBkcyBvZiB0YWJsZSBwdAorSElOVDogIFVzZSBEUk9Q IC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK2FsdGVy IHRhYmxlIHB0IGRyb3AgY29sdW1uIGRlOworRVJST1I6ICBjYW5ub3QgZHJvcCBjb2x1bW4g ZGUgb2YgdGFibGUgcHQgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVU QUlMOiAgcGVyaW9kIHAgb24gdGFibGUgcHQgZGVwZW5kcyBvbiBjb2x1bW4gZGUgb2YgdGFi bGUgcHQKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRl bnQgb2JqZWN0cyB0b28uCisvKiBDYW4ndCBjaGFuZ2UgdGhlIGRhdGEgdHlwZXMgKi8KK2Fs dGVyIHRhYmxlIHB0IGFsdGVyIGNvbHVtbiBkcyB0eXBlIHRpbWVzdGFtcDsKK0VSUk9SOiAg Y2Fubm90IGFsdGVyIHR5cGUgb2YgYSBjb2x1bW4gdXNlZCBieSBhIHBlcmlvZAorREVUQUlM OiAgcGVyaW9kIHAgb24gdGFibGUgcHQgZGVwZW5kcyBvbiBjb2x1bW4gImRzIgorYWx0ZXIg dGFibGUgcHQgYWx0ZXIgY29sdW1uIGRzIHR5cGUgdGltZXN0YW1wOworRVJST1I6ICBjYW5u b3QgYWx0ZXIgdHlwZSBvZiBhIGNvbHVtbiB1c2VkIGJ5IGEgcGVyaW9kCitERVRBSUw6ICBw ZXJpb2QgcCBvbiB0YWJsZSBwdCBkZXBlbmRzIG9uIGNvbHVtbiAiZHMiCisvKiBjb2x1bW4v cGVyaW9kIG5hbWVzcGFjZSBjb25mbGljdHMgKi8KK2FsdGVyIHRhYmxlIHB0IGFkZCBjb2x1 bW4gcCBpbnRlZ2VyOworRVJST1I6ICBjb2x1bW4gbmFtZSAicCIgY29uZmxpY3RzIHdpdGgg YSBwZXJpb2QgbmFtZQorYWx0ZXIgdGFibGUgcHQgcmVuYW1lIGNvbHVtbiBpZCB0byBwOwor RVJST1I6ICBjb2x1bW4gbmFtZSAicCIgY29uZmxpY3RzIHdpdGggYSBwZXJpb2QgbmFtZQor YWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlvZCBmb3IgdGFibGVvaWQgKGRzLCBkZSk7CitFUlJP UjogIHBlcmlvZCBuYW1lICJ0YWJsZW9pZCIgY29uZmxpY3RzIHdpdGggYSBzeXN0ZW0gY29s dW1uIG5hbWUKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJpb2QgZm9yICIuLi4uLi4uLnBnLmRy b3BwZWQuNC4uLi4uLi4uIiAoZHMsIGRlKTsKK0VSUk9SOiAgcGVyaW9kIG5hbWUgIi4uLi4u Li4ucGcuZHJvcHBlZC40Li4uLi4uLi4iIGNvbmZsaWN0cyB3aXRoIGEgY29sdW1uIG5hbWUK Ky8qIGFkZGluZyBjb2x1bW5zIGFuZCB0aGUgcGVyaW9kIGF0IHRoZSBzYW1lIHRpbWUgKi8K K2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBj b2x1bW4gZHMgZGF0ZSwgYWRkIGNvbHVtbiBkZSBkYXRlLCBhZGQgcGVyaW9kIGZvciBwIChk cywgZGUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBBbWJpZ3VvdXMgcmFuZ2UgdHlwZXMgcmFp c2UgYW4gZXJyb3IgKi8KK2NyZWF0ZSB0eXBlIG15ZGF0ZXJhbmdlIGFzIHJhbmdlKHN1YnR5 cGU9ZGF0ZSk7CitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUs IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitFUlJPUjogIGFtYmlndW91cyByYW5nZSBmb3Ig dHlwZSBkYXRlCisvKiBZb3UgY2FuIGdpdmUgYW4gZXhwbGljaXQgcmFuZ2UgdHlwZSAqLwor Y3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9y IHAgKGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBlID0gJ215ZGF0ZXJhbmdlJykpOworZHJvcCB0 eXBlIG15ZGF0ZXJhbmdlOworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIG15ZGF0ZXJhbmdl IGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHBlcmlvZCBw IG9uIHRhYmxlIHB0MiBkZXBlbmRzIG9uIHR5cGUgbXlkYXRlcmFuZ2UKK0hJTlQ6ICBVc2Ug RFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitk cm9wIHR5cGUgbXlkYXRlcmFuZ2UgY2FzY2FkZTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMg dG8gcGVyaW9kIHAgb24gdGFibGUgcHQyCitkcm9wIHRhYmxlIHB0MjsKK2NyZWF0ZSB0YWJs ZSBwdDIgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUp IHdpdGggKHJhbmdldHlwZSA9ICdkYXRlcmFuZ2UnKSk7CisvKiBSYW5nZSB0eXBlIGlzIG5v dCBmb3VuZCAqLworY3JlYXRlIHRhYmxlIHB0MyAoaWQgaW50LCBkcyBkYXRlLCBkZSBkYXRl LCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBlID0gJ25vdGFyYW5nZScp KTsKK0VSUk9SOiAgUmFuZ2UgdHlwZSBub3RhcmFuZ2Ugbm90IGZvdW5kCisvKiBSYW5nZSB0 eXBlIGlzIHRoZSB3cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUgcHQzIChpZCBpbnQsIGRz IGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUg PSAndHN0enJhbmdlJykpOworRVJST1I6ICBSYW5nZSB0eXBlIHRzdHpyYW5nZSBkb2VzIG5v dCBtYXRjaCBjb2x1bW4gdHlwZSBkYXRlCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3Jl YXRpbmcgR0VORVJBVEVEIGNvbHVtbjogd29ya3MgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlk IGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVy YXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFi bGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1 ZSk7CitcZCBwdDIKKyAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnB0MiIKKyBDb2x1 bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBEZWZhdWx0IAorLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAg IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZHMgICAgIHwgZGF0ZSAg ICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZGUgICAgIHwgZGF0ZSAgICB8ICAgICAg ICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHAgKGRzLCBkZSkKK0NoZWNrIGNv bnN0cmFpbnRzOgorICAgICJwdDJfcF9jaGVjayIgQ0hFQ0sgKGRzIDwgZGUpCisKK2Ryb3Ag dGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBi ZWNhdXNlIHRoZSBjb2wgaXNuJ3QgdGhlcmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2Qg Zm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitFUlJPUjogIGNvbHVt biAicCIgb2YgcmVsYXRpb24gInB0MiIgZG9lcyBub3QgZXhpc3QKK2Ryb3AgdGFibGUgcHQy OworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRo ZSBvcHRpb24gaGFzIGFuIGludmFsaWQgdmFsdWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlk IGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVy YXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFi bGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gJ3do YXRldmVyJyk7CitFUlJPUjogIGNvbGV4aXN0cyByZXF1aXJlcyBhIEJvb2xlYW4gdmFsdWUK K2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBm YWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgbm90IE5PVCBOVUxMICovCitjcmVhdGUgdGFi bGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBnZW5l cmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRlKSkgc3RvcmVkKTsKK2FsdGVyIHRh YmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRy dWUpOworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEgZ2VuZXJhdGVkIGNvbHVtbiB0aGF0IGFs bG93cyBudWxscworZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRF RCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBub3QgR0VORVJBVEVEICov CitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRh dGVyYW5nZSBub3QgbnVsbCk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAo ZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVlKTsKK0VSUk9SOiAgUGVyaW9kIHAgdXNl cyBhIG5vbi1nZW5lcmF0ZWQgY29sdW1uCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3Jl YXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIEdF TkVSQVRFRCBidXQgd2l0aCB0aGUgd3JvbmcgZXhwcmVzc2lvbiAqLworLS0gVE9ETzoKKy0t IGNyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0 ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkZSwgZHMp KSBzdG9yZWQpOworLS0gYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBk ZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRF RCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyB0aGUgd3JvbmcgdHlwZSAq LworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCB0 c3JhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKHRzcmFuZ2UoZHMsIGRlKSkg c3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdp dGggKGNvbGV4aXN0cyA9IHRydWUpOworRVJST1I6ICBQZXJpb2QgcCB1c2VzIGEgZ2VuZXJh dGVkIGNvbHVtbiB3aXRoIHRoZSB3cm9uZyB0eXBlCitkcm9wIHRhYmxlIHB0MjsKKy8qIFNr aXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1u IGlzIGluaGVyaXRlZCAqLworY3JlYXRlIHRhYmxlIHB0MnBhcmVudCAoaWQgaW50ZWdlciwg ZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CitjcmVhdGUgdGFibGUgcHQyICgp IGluaGVyaXRzIChwdDJwYXJlbnQpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9y IHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7CitFUlJPUjogIFBlcmlvZCBw IHVzZXMgYSBnZW5lcmF0ZWQgY29sdW1uIHRoYXQgaXMgaW5oZXJpdGVkCitkcm9wIHRhYmxl IHB0MjsKK2Ryb3AgdGFibGUgcHQycGFyZW50OworLyogQ1JFQVRFIFRBQkxFIChMSUtFIC4u LikgKi8KKy8qIFBlcmlvZHMgYXJlIG5vdCBjb3BpZWQgYnkgTElLRSwgc28gdGhlaXIgY29s dW1ucyBhcmVuJ3QgZWl0aGVyICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0KTsKK1xk IHB0MgorICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMucHQyIgorIENvbHVtbiB8ICBU eXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBkcyAgICAgfCBkYXRlICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgfCAKKyBkZSAgICAgfCBkYXRlICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKKworZHJvcCB0YWJsZSBwdDI7CisvKiBDYW4gYWRkIGEgcGVyaW9kIHJl ZmVycmluZyB0byBMSUtFJ2QgY29sdW1ucyAqLworY3JlYXRlIHRhYmxlIG5vdF9wIChpZCBp bnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlKTsKK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2Ugbm90 X3AsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CitcZCBwdDIKKyAgICAgICAgICAgICAgICBU YWJsZSAicHVibGljLnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCisgZHMgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisg ZGUgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgor ICAgIHAgKGRzLCBkZSkKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJwdDJfcF9jaGVjayIg Q0hFQ0sgKGRzIDwgZGUpCisKK2Ryb3AgdGFibGUgcHQyOworLyogQ2FuIGFkZCBhIHBlcmlv ZCB3aXRoIHRoZSBzYW1lIG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQsIHBl cmlvZCBmb3IgcCAoZHMsIGRlKSk7CitcZCBwdDIKKyAgICAgICAgICAgICAgICBUYWJsZSAi cHVibGljLnB0MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUg fCBEZWZhdWx0IAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAgICAgICAgIHwg CisgZHMgICAgIHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCisgZGUgICAg IHwgZGF0ZSAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwgCitQZXJpb2RzOgorICAgIHAg KGRzLCBkZSkKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJwdDJfcF9jaGVjayIgQ0hFQ0sg KGRzIDwgZGUpCisKK2Ryb3AgdGFibGUgcHQyOworLyogQ2FuIGFkZCBhIHBlcmlvZCB3aXRo IGEgZGlmZmVyZW50IG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2UgcHQsIHBlcmlv ZCBmb3IgcDIgKGRzLCBkZSkpOworXGQgcHQyCisgICAgICAgICAgICAgICAgVGFibGUgInB1 YmxpYy5wdDIiCisgQ29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwg RGVmYXVsdCAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLQorIGlkICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IGRzICAgICB8IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIGRlICAgICB8 IGRhdGUgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICBwMiAo ZHMsIGRlKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInB0Ml9wMl9jaGVjayIgQ0hFQ0sg KGRzIDwgZGUpCisKK2Ryb3AgdGFibGUgcHQyOworLyogQ2FuJ3QgYWRkIGEgcGVyaW9kIHdo b3NlIG5hbWUgY29uZmxpY3RzIHdpdGggYSBMSUtFJ2QgY29sdW1uICovCitjcmVhdGUgdGFi bGUgcHQyIChsaWtlIHB0LCBwZXJpb2QgZm9yIGlkIChkcywgZGUpKTsKK0VSUk9SOiAgcGVy aW9kIG5hbWUgImlkIiBjb25mbGljdHMgd2l0aCBhIGNvbHVtbiBuYW1lCisvKiBDUkVBVEUg VEFMQkUgSU5IRVJJVFMgKi8KKy8qIENhbid0IGluaGVyaXQgZnJvbSBhIHRhYmxlIHdpdGgg YSBwZXJpb2QgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKG5hbWUgdGV4dCkgaW5oZXJpdHMgKHB0 KTsKK0VSUk9SOiAgSW5oZXJpdGluZyBmcm9tIGEgdGFibGUgd2l0aCBhIFBFUklPRCBpcyBu b3Qgc3VwcG9ydGVkCisvKiBDYW4ndCBpbmhlcml0IHdpdGggYSBwZXJpb2QgKi8KK2NyZWF0 ZSB0YWJsZSBwdDIgKGQycyBkYXRlLCBkMmUgZGF0ZSwgcGVyaW9kIGZvciBwIChkMnMsIGQy ZSkpIGluaGVyaXRzIChub3RfcCk7CitFUlJPUjogIEluaGVyaXRpbmcgaXMgbm90IHN1cHBv cnRlZCB3aGVuIGEgdGFibGUgaGFzIGEgUEVSSU9ECitkcm9wIHRhYmxlIG5vdF9wOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC93aXRob3V0X292ZXJsYXBzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKaW5k ZXggNzNjNjY5YWM4YWQuLjNkZjczNzVjNjA4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3dpdGhvdXRfb3ZlcmxhcHMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvd2l0aG91dF9vdmVybGFwcy5vdXQKQEAgLTg5LDYgKzg5LDc2IEBAIFNF TEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3Ry YWludCBXSEVSRSBjb25uYW1lID0gJ3RlCiAgQ1JFQVRFIFVOSVFVRSBJTkRFWCB0ZW1wb3Jh bF9ybmcyX3BrIE9OIHRlbXBvcmFsX3JuZzIgVVNJTkcgZ2lzdCAoaWQxLCBpZDIsIHZhbGlk X2F0KQogKDEgcm93KQogCistLSBQSyB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIFBFUklPRDoK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9wZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlk X2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0 ZW1wb3JhbF9wZXIKKyAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWxfcGVy IgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERl ZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90 IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAg fCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0lu ZGV4ZXM6CisgICAgInRlbXBvcmFsX3Blcl9wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9h dCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFs X3Blcl92YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisK K1NFTEVDVCBwZ19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBX SEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3Blcl9wayc7CisgICAgICAgICAgICBwZ19nZXRf Y29uc3RyYWludGRlZiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNUIHBnX2dldF9pbmRleGRlZihjb25pbmRp ZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9y YWxfcGVyX3BrJzsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2lu ZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBDUkVBVEUgVU5JUVVFIElOREVYIHRlbXBvcmFsX3Blcl9wayBPTiB0 ZW1wb3JhbF9wZXIgVVNJTkcgZ2lzdCAoaWQsIHZhbGlkX2F0KQorKDEgcm93KQorCistLSBQ SyB3aXRoIHR3byBjb2x1bW5zIHBsdXMgYSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlkMiBpbnQ0cmFuZ2UsCisgIHZhbGlk X2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyMl9w ayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCisp OworXGQgdGVtcG9yYWxfcGVyMgorICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBv cmFsX3BlcjIiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkMSAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAg ICAgfCBub3QgbnVsbCB8IAorIGlkMiAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAg fCBub3QgbnVsbCB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGls KQorSW5kZXhlczoKKyAgICAidGVtcG9yYWxfcGVyMl9wayIgUFJJTUFSWSBLRVkgKGlkMSwg aWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6Cisg ICAgInRlbXBvcmFsX3BlcjJfdmFsaWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwg dmFsaWRfdGlsKQorCitTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lkKSBGUk9NIHBn X2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIyX3BrJzsKKyAgICAg ICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUFJJTUFS WSBLRVkgKGlkMSwgaWQyLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKDEgcm93KQor CitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2Nv bnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIyX3BrJzsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQ1JFQVRFIFVOSVFVRSBJTkRFWCB0ZW1wb3JhbF9wZXIyX3BrIE9OIHRlbXBv cmFsX3BlcjIgVVNJTkcgZ2lzdCAoaWQxLCBpZDIsIHZhbGlkX2F0KQorKDEgcm93KQorCiAt LSBQSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGU6CiBDUkVBVEUgVFlQRSB0ZXh0cmFuZ2Uy IEFTIHJhbmdlIChzdWJ0eXBlPXRleHQsIGNvbGxhdGlvbj0iQyIpOwogQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX3JuZzMgKApAQCAtMjI0LDYgKzI5NCw3OCBAQCBTRUxFQ1QgcGdfZ2V0X2lu ZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29u bmFtZSA9ICd0ZQogKDEgcm93KQogCiBEUk9QIFRBQkxFIHRlbXBvcmFsX3JuZzM7CistLSBV TklRVUUgd2l0aCBvbmUgY29sdW1uIHBsdXMgYSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVt cG9yYWxfcGVyMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2 YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQsIHZh bGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcGVyMworICAgICAg ICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFsX3BlcjMiCisgICBDb2x1bW4gICB8ICAg VHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAg ICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX2Zy b20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAg fCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2 YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9y YWxfcGVyM191cSIgVU5JUVVFIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0No ZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1wb3JhbF9wZXIzX3ZhbGlkX2F0X2NoZWNrIiBD SEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3RpbCkKKworU0VMRUNUIHBnX2dldF9jb25zdHJh aW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9y YWxfcGVyM191cSc7CisgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgVU5JUVVFIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNUIHBnX2dl dF9pbmRleGRlZihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJF IGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBVTklRVUUgSU5E RVggdGVtcG9yYWxfcGVyM191cSBPTiB0ZW1wb3JhbF9wZXIzIFVTSU5HIGdpc3QgKGlkLCB2 YWxpZF9hdCkKKygxIHJvdykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIzOworLS0gVU5J UVVFIHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1w b3JhbF9wZXIzICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFs aWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9h dCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIz X3VxIFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOwor XGQgdGVtcG9yYWxfcGVyMworICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnRlbXBvcmFs X3BlcjMiCisgICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxl IHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLQorIGlkMSAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAg fCAgICAgICAgICB8IAorIGlkMiAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAg ICAgICAgICB8IAorIHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAg ICAgICB8IAorIHZhbGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAg ICB8IAorUGVyaW9kczoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQor SW5kZXhlczoKKyAgICAidGVtcG9yYWxfcGVyM191cSIgVU5JUVVFIChpZDEsIGlkMiwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKK0NoZWNrIGNvbnN0cmFpbnRzOgorICAgICJ0ZW1w b3JhbF9wZXIzX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRfZnJvbSA8IHZhbGlkX3Rp bCkKKworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJh aW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7CisgICAgICAgICAgICAg cGdfZ2V0X2NvbnN0cmFpbnRkZWYgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgVU5JUVVFIChpZDEsIGlkMiwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUykKKygxIHJvdykKKworU0VMRUNUIHBnX2dldF9pbmRleGRl Zihjb25pbmRpZCwgMCwgdHJ1ZSkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUg PSAndGVtcG9yYWxfcGVyM191cSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBwZ19nZXRfaW5kZXhkZWYgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBVTklRVUUg SU5ERVggdGVtcG9yYWxfcGVyM191cSBPTiB0ZW1wb3JhbF9wZXIzIFVTSU5HIGdpc3QgKGlk MSwgaWQyLCB2YWxpZF9hdCkKKygxIHJvdykKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9wZXIz OwogLS0gVU5JUVVFIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZToKIENSRUFURSBUWVBFIHRl eHRyYW5nZTIgQVMgcmFuZ2UgKHN1YnR5cGU9dGV4dCwgY29sbGF0aW9uPSJDIik7CiBDUkVB VEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBAIC0zMDIsNiArNDQ0LDEwNiBAQCBBTFRFUiBU QUJMRSB0ZW1wb3JhbDMKIAlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfdXEKIAlVTklRVUUg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKIERST1AgVEFCTEUgdGVtcG9yYWwz OworLS0gUFJJTUFSWSBLRVkgd2l0aCBQRVJJT0QgYWxyZWFkeSB0aGVyZQorQ1JFQVRFIFRB QkxFIHRlbXBvcmFsMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAor ICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwg dmFsaWRfdGlsKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgQ09OU1RSQUlO VCB0ZW1wb3JhbDNfcGsKKyAgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKTsKK1xkIHRlbXBvcmFsMworICAgICAgICAgICAgICAgIFRhYmxlICJwdWJsaWMu dGVtcG9yYWwzIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAgfCBDb2xsYXRpb24gfCBOdWxs YWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwgaW50NHJhbmdlIHwgICAgICAg ICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0ZSAgICAgIHwgICAgICAgICAg IHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsM19wayIgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRl bXBvcmFsM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwp CisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gUFJJTUFSWSBLRVkgd2l0aCBQRVJJT0Qg dG9vCitDUkVBVEUgVEFCTEUgdGVtcG9yYWwzICgKKyAgaWQgaW50NHJhbmdlLAorICB2YWxp ZF9mcm9tIGRhdGUsCisgIHZhbGlkX3RpbCBkYXRlCispOworQUxURVIgVEFCTEUgdGVtcG9y YWwzCisgIEFERCBQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwp LAorICBBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbDNfcGsKKyAgUFJJTUFSWSBLRVkgKGlkLCB2 YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKK1xkIHRlbXBvcmFsMworICAgICAgICAgICAg ICAgIFRhYmxlICJwdWJsaWMudGVtcG9yYWwzIgorICAgQ29sdW1uICAgfCAgIFR5cGUgICAg fCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAgICAgIHwg aW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9tIHwgZGF0 ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwgZGF0ZSAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsM19wayIg UFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29u c3RyYWludHM6CisgICAgInRlbXBvcmFsM192YWxpZF9hdF9jaGVjayIgQ0hFQ0sgKHZhbGlk X2Zyb20gPCB2YWxpZF90aWwpCisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworLS0gVU5JUVVF IHdpdGggUEVSSU9EIGFscmVhZHkgdGhlcmUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUs CisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxCisg IFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwz CisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1bW4g ICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQor IGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZh bGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlk X3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoK KyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAi dGVtcG9yYWwzX3VxIiBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQor Q2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsM192YWxpZF9hdF9jaGVjayIgQ0hF Q0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK0RST1AgVEFCTEUgdGVtcG9yYWwzOwor LS0gVU5JUVVFIHdpdGggUEVSSU9EIHRvbworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZQor KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3Vx CisgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9y YWwzCisgICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbDMiCisgICBDb2x1 bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LQorIGlkICAgICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAor IHZhbGlkX2Zyb20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZh bGlkX3RpbCAgfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9k czoKKyAgICB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAg ICAidGVtcG9yYWwzX3VxIiBVTklRVUUgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsM192YWxpZF9hdF9jaGVjayIg Q0hFQ0sgKHZhbGlkX2Zyb20gPCB2YWxpZF90aWwpCisKK0RST1AgVEFCTEUgdGVtcG9yYWwz OwogLS0KIC0tIHRlc3QgUEsgaW5zZXJ0cwogLS0KQEAgLTU5Miw2ICs4MzQsMTggQEAgQ1JF QVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJybmcgKAogCUNPTlNUUkFJTlQgdGVtcG9yYWxf Zmtfcm5nMnJuZ19mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CiAJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcm5nIChpZCwgUEVSSU9EIHZhbGlkX2F0KQogKTsK K1xkIHRlbXBvcmFsX2ZrX3JuZzJybmcKKyAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1w b3JhbF9ma19ybmcycm5nIgorICBDb2x1bW4gICB8ICAgVHlwZSAgICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgIHwgaW50NHJhbmdlIHwgICAg ICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9hdCAgfCBkYXRlcmFuZ2UgfCAgICAgICAg ICAgfCBub3QgbnVsbCB8IAorIHBhcmVudF9pZCB8IGludDRyYW5nZSB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9ma19ybmcycm5nX3BrIiBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCitGb3JlaWduLWtl eSBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmtfcm5nMnJuZ19mayIgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIHRlbXBvcmFsX3Ju ZyhpZCwgUEVSSU9EIHZhbGlkX2F0KQorCiBEUk9QIFRBQkxFIHRlbXBvcmFsX2ZrX3JuZzJy bmc7CiAtLSB3aXRoIG1pc21hdGNoZWQgUEVSSU9EIGNvbHVtbnM6CiAtLSAocGFyZW50X2lk LCBQRVJJT0QgdmFsaWRfYXQpIFJFRkVSRU5DRVMgKGlkLCB2YWxpZF9hdCkKQEAgLTI3MDQs NiArMjk1OCwxMjA0IEBAIFNFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRy bmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBPUkRFUiBCWSBpZCwgdmFsCiAgWzIwMCwyMDEp IHwge1syMDIwLTAxLTAxLDIwMjEtMDEtMDEpfSB8IFs4LDkpICAgICAgfCBbOCw5KQogKDIg cm93cykKIAorLS0KKy0tIHRlc3QgRk9SRUlHTiBLRVksIFBFUklPRCByZWZlcmVuY2VzIFBF UklPRAorLS0KKy0tIHRlc3QgdGFibGUgc2V0dXAKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVy OworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlk X2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2 YWxpZF9mcm9tLCB2YWxpZF90aWwpCispOworQUxURVIgVEFCTEUgdGVtcG9yYWxfcGVyCisJ QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrCisJUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKKy0tIENhbid0IGNyZWF0ZSBhIEZLIHdpdGggYSBt aXNtYXRjaGVkIHJhbmdlIHR5cGUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy ICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBpbnQsCisJdmFsaWRfdGlsIGludCwK KwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFs aWRfYXQpCispOworRVJST1I6ICBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3JhbF9m a19wZXIycGVyX2ZrIiBjYW5ub3QgYmUgaW1wbGVtZW50ZWQKK0RFVEFJTDogIEtleSBjb2x1 bW5zICJ2YWxpZF9hdCIgYW5kICJ2YWxpZF9hdCIgYXJlIG9mIGluY29tcGF0aWJsZSB0eXBl czogaW50NHJhbmdlIGFuZCBkYXRlcmFuZ2UuCistLSB3b3JrczogUEVSSU9EIGZvciBib3Ro IHJlZmVyZW5jZWQgYW5kIHJlZmVyZW5jaW5nCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90 aWwgZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJ Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQ RVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVtcG9yYWxfZmtfcGVyMnBlcgorICAgICAgICAg ICBUYWJsZSAicHVibGljLnRlbXBvcmFsX2ZrX3BlcjJwZXIiCisgICBDb2x1bW4gICB8ICAg VHlwZSAgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCAKKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLQorIGlkICAg ICAgICAgfCBpbnQ0cmFuZ2UgfCAgICAgICAgICAgfCBub3QgbnVsbCB8IAorIHZhbGlkX2Zy b20gfCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHZhbGlkX3RpbCAg fCBkYXRlICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorIHBhcmVudF9pZCAgfCBp bnQ0cmFuZ2UgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorUGVyaW9kczoKKyAgICB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKQorSW5kZXhlczoKKyAgICAidGVtcG9yYWxf ZmtfcGVyMnBlcl9wayIgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJM QVBTKQorQ2hlY2sgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrX3BlcjJwZXJfdmFs aWRfYXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorRm9yZWlnbi1r ZXkgY29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIEZPUkVJR04g S0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIoaWQsIFBFUklPRCB2YWxpZF9hdCkKKworRFJPUCBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyOworLS0gd2l0aCBtaXNtYXRjaGVkIFBFUklPRCBjb2x1bW5zOgorLS0gKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgdmFsaWRfYXQpCistLSBSRUZF UkVOQ0VTIHBhcnQgc2hvdWxkIHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2 YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIg KGlkLCB2YWxpZF9hdCkKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9u IHRoZSByZWZlcmVuY2luZyB0YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2VkIHRhYmxlCist LSAocGFyZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0g Ym90aCBzaG91bGQgc3BlY2lmeSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90 aWwgZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJ Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2F0 KQorKTsKK0VSUk9SOiAgb25seSBiLXRyZWUgaW5kZXhlcyBhcmUgc3VwcG9ydGVkIGZvciBu b24tUEVSSU9EIGZvcmVpZ24ga2V5cworLS0gKHBhcmVudF9pZCwgdmFsaWRfYXQpIFJFRkVS RU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCistLSBGT1JFSUdOIEtFWSBwYXJ0IHNob3Vs ZCBzcGVjaWZ5IFBFUklPRAorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAor CWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJ cGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQUklN QVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCB2YWxpZF9h dCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCisp OworRVJST1I6ICBmb3JlaWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0 YWJsZSBidXQgbm90IHRoZSByZWZlcmVuY2luZyB0YWJsZQorLS0gKHBhcmVudF9pZCwgdmFs aWRfYXQpIFJFRkVSRU5DRVMgW2ltcGxpY2l0XQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91 bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgK KwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAor CXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJv bSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRf YXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCispOworRVJST1I6ICBmb3JlaWduIGtl eSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRoZSByZWZl cmVuY2luZyB0YWJsZQorLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIChpZCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0 cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9p ZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQpCispOworRVJST1I6ICBmb3JlaWdu IGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNpbmcgdGFibGUgYnV0IG5vdCB0aGUg cmVmZXJlbmNlZCB0YWJsZQorLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyAoaWQsIFBFUklP RCB2YWxpZF9hdCkKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBp bnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVu dF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFs aWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBL RVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKwkJUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCispOworRVJST1I6ICBmb3Jl aWduIGtleSB1c2VzIFBFUklPRCBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSBidXQgbm90IHRo ZSByZWZlcmVuY2luZyB0YWJsZQorLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJl bmNlZCB0YWJsZToKKy0tIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNF UyBbaW1wbGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQg aW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJl bnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZh bGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkg S0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxp ZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKyk7CitEUk9QIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXI7CistLSAocGFyZW50X2lkKSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0K K0NSRUFURSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJ dmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFu Z2UsCisJUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlD T05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxp ZF9hdCBXSVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsgRk9SRUlHTiBLRVkgKHBhcmVudF9pZCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIKKyk7CitFUlJPUjogIGZvcmVpZ24ga2V5IHVzZXMgUEVSSU9EIG9uIHRoZSByZWZlcmVu Y2VkIHRhYmxlIGJ1dCBub3QgdGhlIHJlZmVyZW5jaW5nIHRhYmxlCistLSBzaG91bGQgZmFp bCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitDUkVBVEUgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20g ZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklP RCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9V VCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJ R04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyIChpZCwgUEVSSU9EIGlkKQorKTsKK0VSUk9SOiAgZm9yZWlnbiBrZXkgcmVm ZXJlbmNlZC1jb2x1bW5zIGxpc3QgbXVzdCBub3QgY29udGFpbiBkdXBsaWNhdGVzCistLSBU d28gc2NhbGFyIGNvbHVtbnMKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMjsKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9wZXIyICgKKwlpZDEgaW50NHJhbmdlLAorCWlkMiBpbnQ0cmFuZ2Us CisJdmFsaWRfZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCVBFUklPRCBGT1IgdmFs aWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9w ZXIyX3BrIFBSSU1BUlkgS0VZIChpZDEsIGlkMiwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKyk7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lk MSBpbnQ0cmFuZ2UsCisJcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAo cGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpCispOworXGQgdGVt cG9yYWxfZmsyX3BlcjJwZXIKKyAgICAgICAgICAgVGFibGUgInB1YmxpYy50ZW1wb3JhbF9m azJfcGVyMnBlciIKKyAgIENvbHVtbiAgIHwgICBUeXBlICAgIHwgQ29sbGF0aW9uIHwgTnVs bGFibGUgfCBEZWZhdWx0IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tCisgaWQgICAgICAgICB8IGludDRyYW5nZSB8ICAgICAg ICAgICB8IG5vdCBudWxsIHwgCisgdmFsaWRfZnJvbSB8IGRhdGUgICAgICB8ICAgICAgICAg ICB8ICAgICAgICAgIHwgCisgdmFsaWRfdGlsICB8IGRhdGUgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgIHwgCisgcGFyZW50X2lkMSB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgCisgcGFyZW50X2lkMiB8IGludDRyYW5nZSB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgCitQZXJpb2RzOgorICAgIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwp CitJbmRleGVzOgorICAgICJ0ZW1wb3JhbF9mazJfcGVyMnBlcl9wayIgUFJJTUFSWSBLRVkg KGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorQ2hlY2sgY29uc3RyYWludHM6Cisg ICAgInRlbXBvcmFsX2ZrMl9wZXIycGVyX3ZhbGlkX2F0X2NoZWNrIiBDSEVDSyAodmFsaWRf ZnJvbSA8IHZhbGlkX3RpbCkKK0ZvcmVpZ24ta2V5IGNvbnN0cmFpbnRzOgorICAgICJ0ZW1w b3JhbF9mazJfcGVyMnBlcl9mayIgRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9p ZDIsIFBFUklPRCB2YWxpZF9hdCkgUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyKGlkMSwgaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisKK0RST1AgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXI7 CistLQorLS0gdGVzdCBBTFRFUiBUQUJMRSBBREQgQ09OU1RSQUlOVAorLS0KK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJv bSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVS SU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5U IHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRI T1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChp ZCwgUEVSSU9EIHZhbGlkX2F0KTsKKy0tIFR3byBzY2FsYXIgY29sdW1uczoKK0NSRUFURSBU QUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zy b20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQxIGludDRyYW5nZSwKKwlw YXJlbnRfaWQyIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9t LCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfcGsgUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKQorKTsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsy X3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVS SU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIFBF UklPRCB2YWxpZF9hdCk7CitcZCB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICAgICAgICAgICBU YWJsZSAicHVibGljLnRlbXBvcmFsX2ZrMl9wZXIycGVyIgorICAgQ29sdW1uICAgfCAgIFR5 cGUgICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8IERlZmF1bHQgCistLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0KKyBpZCAgICAg ICAgIHwgaW50NHJhbmdlIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAKKyB2YWxpZF9mcm9t IHwgZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyB2YWxpZF90aWwgIHwg ZGF0ZSAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQxIHwgaW50 NHJhbmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKKyBwYXJlbnRfaWQyIHwgaW50NHJh bmdlIHwgICAgICAgICAgIHwgICAgICAgICAgfCAKK1BlcmlvZHM6CisgICAgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKK0luZGV4ZXM6CisgICAgInRlbXBvcmFsX2ZrMl9w ZXIycGVyX3BrIiBQUklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMp CitDaGVjayBjb25zdHJhaW50czoKKyAgICAidGVtcG9yYWxfZmsyX3BlcjJwZXJfdmFsaWRf YXRfY2hlY2siIENIRUNLICh2YWxpZF9mcm9tIDwgdmFsaWRfdGlsKQorRm9yZWlnbi1rZXkg Y29uc3RyYWludHM6CisgICAgInRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrIiBGT1JFSUdOIEtF WSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlcjIoaWQxLCBpZDIsIFBFUklPRCB2YWxpZF9hdCkKKworLS0gd2l0aCBp bmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSwgYW5kIHdyb25nIGNvbHVtbiB0 eXBlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorCURST1AgUEVSSU9EIEZPUiB2YWxpZF9hdCwK KwlBTFRFUiBDT0xVTU4gdmFsaWRfZnJvbSBUWVBFIHRpbWVzdGFtcCwKKwlBTFRFUiBDT0xV TU4gdmFsaWRfdGlsIFRZUEUgdGltZXN0YW1wLAorCUFERCBQRVJJT0QgRk9SIHZhbGlkX2F0 ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVy MnBlcgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKwlGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3Jh bF9wZXI7CitFUlJPUjogIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3Bl cjJwZXJfZmsiIGNhbm5vdCBiZSBpbXBsZW1lbnRlZAorREVUQUlMOiAgS2V5IGNvbHVtbnMg InZhbGlkX2F0IiBhbmQgInZhbGlkX2F0IiBhcmUgb2YgaW5jb21wYXRpYmxlIHR5cGVzOiB0 c3JhbmdlIGFuZCBkYXRlcmFuZ2UuCitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy CisJRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0LAorCUFMVEVSIENPTFVNTiB2YWxpZF9mcm9t IFRZUEUgZGF0ZSwKKwlBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgZGF0ZSwKKwlBREQg UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKTsKKy0tIHdpdGgg aW5mZXJyZWQgUEsgb24gdGhlIHJlZmVyZW5jZWQgdGFibGU6CitBTFRFUiBUQUJMRSB0ZW1w b3JhbF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9m aworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcjsKKy0tIHNob3VsZCBmYWlsIGJlY2F1c2Ugb2YgZHVwbGljYXRl IHJlZmVyZW5jZWQgY29sdW1uczoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIK KwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrMgorCUZPUkVJR04gS0VZ IChwYXJlbnRfaWQsIFBFUklPRCBwYXJlbnRfaWQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9w ZXIgKGlkLCBQRVJJT0QgaWQpOworRVJST1I6ICBmb3JlaWduIGtleSByZWZlcmVuY2VkLWNv bHVtbnMgbGlzdCBtdXN0IG5vdCBjb250YWluIGR1cGxpY2F0ZXMKKy0tCistLSB0ZXN0IHdp dGggcm93cyBhbHJlYWR5CistLQorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlcjsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzEsMV0nLCAnMjAxOC0w MS0wMicsICcyMDE4LTAyLTAzJyksCisgICgnWzEsMV0nLCAnMjAxOC0wMy0wMycsICcyMDE4 LTA0LTA0JyksCisgICgnWzIsMl0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAxLTA1JyksCisg ICgnWzMsM10nLCAnMjAxOC0wMS0wMScsIE5VTEwpOworQUxURVIgVEFCTEUgdGVtcG9yYWxf ZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgt MDItMDEnLCAnWzEsMV0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlB REQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAo aWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwyXScs ICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnLCAnWzEsMV0nKTsKKy0tIHNob3VsZCBmYWls OgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrX3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0Qg dmFsaWRfYXQpCisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CitFUlJPUjogIGluc2VydCBv ciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6ICBL ZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0wNC0w MSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gb2theSBh Z2FpbjoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBl cl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZF UkVOQ0VTIHRlbXBvcmFsX3BlcjsKKy0tCistLSB0ZXN0IHBnX2dldF9jb25zdHJhaW50ZGVm CistLQorU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJh aW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfZmtfcGVyMnBlcl9mayc7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwZ19nZXRfY29uc3RyYWludGRlZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkgUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIoaWQsIFBFUklPRCB2YWxpZF9hdCkKKygxIHJvdykKKwor LS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgaW5zZXJ0cworLS0KK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZCkgVkFMVUVTICgnWzEsMV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJywgJ1sxLDFd Jyk7CistLSBzaG91bGQgZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIg KGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0n LCAnMjAxOC0wMS0wMicsICcyMDE4LTA0LTAxJywgJ1sxLDFdJyk7CitFUlJPUjogIGluc2Vy dCBvciB1cGRhdGUgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiIHZpb2xhdGVzIGZv cmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiCitERVRBSUw6 ICBLZXkgKHBhcmVudF9pZCwgdmFsaWRfYXQpPShbMSwyKSwgWzIwMTgtMDEtMDIsMjAxOC0w NC0wMSkpIGlzIG5vdCBwcmVzZW50IGluIHRhYmxlICJ0ZW1wb3JhbF9wZXIiLgorLS0gbm93 IGl0IHNob3VsZCB3b3JrOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAyLTAzJywgJzIwMTgt MDMtMDMnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0w MicsICcyMDE4LTA0LTAxJywgJ1sxLDFdJyk7CistLQorLS0gdGVzdCBGSyByZWZlcmVuY2lu ZyB1cGRhdGVzCistLQorVVBEQVRFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgU0VUIHZhbGlkX2Zy b20gPSAnMjAxOC0wMS0wMicsIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJyBXSEVSRSBpZCA9 ICdbMSwxXSc7CistLSBzaG91bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVy IFNFVCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wNS0w MScgV0hFUkUgaWQgPSAnWzEsMV0nOworRVJST1I6ICBpbnNlcnQgb3IgdXBkYXRlIG9uIHRh YmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJh aW50ICJ0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIgorREVUQUlMOiAgS2V5IChwYXJlbnRfaWQs IHZhbGlkX2F0KT0oWzEsMiksIFsyMDE4LTAxLTAyLDIwMTgtMDUtMDEpKSBpcyBub3QgcHJl c2VudCBpbiB0YWJsZSAidGVtcG9yYWxfcGVyIi4KK1VQREFURSB0ZW1wb3JhbF9ma19wZXIy cGVyIFNFVCBwYXJlbnRfaWQgPSAnWzgsOF0nIFdIRVJFIGlkID0gJ1sxLDFdJzsKK0VSUk9S OiAgaW5zZXJ0IG9yIHVwZGF0ZSBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIgdmlv bGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIK K0RFVEFJTDogIEtleSAocGFyZW50X2lkLCB2YWxpZF9hdCk9KFs4LDkpLCBbMjAxOC0wMS0w MiwyMDE4LTAzLTAxKSkgaXMgbm90IHByZXNlbnQgaW4gdGFibGUgInRlbXBvcmFsX3BlciIu CistLSBBTFRFUiBGSyBERUZFUlJBQkxFCitCRUdJTjsKKyAgSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgICAoJ1s1LDVd JywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAgICgnWzUsNV0nLCAnMjAxOC0w Mi0wMScsICcyMDE4LTAzLTAxJyk7CisgIElOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTCisgICAg KCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKKyAgQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorICAgIEFMVEVSIENPTlNUUkFJTlQgdGVt cG9yYWxfZmtfcGVyMnBlcl9maworICAgIERFRkVSUkFCTEUgSU5JVElBTExZIERFRkVSUkVE OworICBERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOyAtLXNo b3VsZCBub3QgZmFpbCB5ZXQuCitDT01NSVQ7IC0tIHNob3VsZCBmYWlsIGhlcmUuCitFUlJP UjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMg Zm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgb24gdGFi bGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9 KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBm cm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KKy0tCistLSB0ZXN0IEZLIHBhcmVu dCB1cGRhdGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9y YWxfZmtfcGVyMnBlcjsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0 aGUgbnVtZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4 LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlk X2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJyBXSEVSRSBp ZCA9ICdbNSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdo IHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMK KyAgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScs ICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitVUERB VEUgdGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDItMDEnLCB2YWxpZF90 aWwgPSAnMjAxNi0wMy0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9 ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyB1 cGRhdGUgdGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitVUERBVEUg dGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwg PSAnMjAxNi0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcy MDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRh dGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24g a2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1w b3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwg WzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJs ZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCistLSBjaGFuZ2luZyB0aGUgc2NhbGFyIHBhcnQg ZmFpbHM6CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbNyw3XScKK1dIRVJFIGlk ID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGls ID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIu CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRl bXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicg VE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XSc7 CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAx LTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworRVJST1I6ICB1 cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVp Z24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0 ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlMOiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2 KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkpIGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0 YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIuCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3Bl ciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8IDIwMTYtMDItMDEgfCAyMDE2LTAzLTAxCisg WzUsNikgfCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1LDYpIHwgMjAxOC0wMS0wMyB8 IDIwMTgtMDItMDEKKyBbNyw4KSB8IDIwMTgtMDEtMDIgfCAyMDE4LTAxLTAzCisoNCByb3dz KQorCitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgaW4gKCdb MywzXScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2 YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tCisgWzMsNCkgfCAyMDE4LTAxLTA1IHwgMjAxOC0wMS0xMCB8IFs1 LDYpCisoMSByb3cpCisKKy0tIHRoZW4gZGVsZXRlIHRoZSBvYmplY3RpbmcgRksgcmVjb3Jk IGFuZCB0aGUgc2FtZSBQSyB1cGRhdGUgc3VjY2VlZHM6CitERUxFVEUgRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1szLDNdJzsKK1VQREFURSB0ZW1wb3JhbF9wZXIg U0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAx JworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFO RCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBk YXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtf cGVyMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlEUk9QIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr X3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJRk9S RUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyCisJT04gVVBEQVRFIFJFU1RSSUNUOworLS0gYSBQSyB1cGRhdGUgdGhhdCBz dWNjZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworVVBEQVRFIHRlbXBv cmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIw MTYtMDItMDEnIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3Vj Y2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNl IHRoZSByYW5nZSBpc24ndDoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9 ICdbNSw1XSc7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0w MScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIwMTgtMDEtMTAn LCAnWzUsNV0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAx Ni0wMi0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAzLTAxJworV0hFUkUgaWQgPSAnWzUsNV0n IEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0w My0wMSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVm ZXJlbmNlZDoKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxNi0w MS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJworV0hFUkUgaWQgPSAnWzUsNV0nIEFO RCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0w MSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIg dmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9m ayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2 YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVm ZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KKy0tIGNoYW5naW5n IHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0g J1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEt MDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0ZSBvciBk ZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29u c3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2Zr X3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0w MS0wMSwyMDE4LTAyLTAxKSkgaXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1w b3JhbF9ma19wZXIycGVyIi4KKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlz IG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBG Uk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdbNyw3XScKK1dI RVJFIGlkID0gJ1s1LDVdJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZhaWxzOgorVVBE QVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0w MS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdb NSw1XSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRlbXBvcmFsX3Bl ciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxfZmtfcGVyMnBl cl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6ICBLZXkgKGlk LCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMywyMDE4LTAyLTAxKSkgaXMgc3RpbGwg cmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4KK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkIGluICgnWzUsNV0nLCAnWzcsN10nKSBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICAK Ky0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFs1LDYpIHwgMjAxNi0wMi0w MSB8IDIwMTYtMDMtMDEKKyBbNSw2KSB8IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTAyCisgWzUs NikgfCAyMDE4LTAxLTAzIHwgMjAxOC0wMi0wMQorIFs3LDgpIHwgMjAxOC0wMS0wMiB8IDIw MTgtMDEtMDMKKyg0IHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBl ciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IDIwMTgtMDEtMDUg fCAyMDE4LTAxLTEwIHwgWzUsNikKKygxIHJvdykKKworLS0gdGhlbiBkZWxldGUgdGhlIG9i amVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBzdWNjZWVkczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzMsM10nOworVVBE QVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAxLTAxJywgdmFsaWRf dGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20g PSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tCistLSB0 ZXN0IEZLIHBhcmVudCBkZWxldGVzIE5PIEFDVElPTgorLS0KK1RSVU5DQVRFIHRlbXBvcmFs X3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3Bl cjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVS IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0 KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNj ZWVkcyBiZWNhdXNlIHRoZSBudW1lcmljIGlkIGlzbid0IHJlZmVyZW5jZWQ6CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAo J1s1LDVdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgc3Vj Y2VlZHMgZXZlbiB0aG91Z2ggdGhlIG51bWVyaWMgaWQgaXMgcmVmZXJlbmNlZCBiZWNhdXNl IHRoZSByYW5nZSBpc24ndDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcy MDE4LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcsICdbNSw1XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlk ID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAyLTAxJyBBTkQgdmFsaWRfdGls ID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyBkZWxldGUgdGhhdCBmYWlscyBiZWNhdXNlIGJv dGggYXJlIHJlZmVyZW5jZWQ6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQg PSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwg PSAnMjAxOC0wMi0wMSc7CitFUlJPUjogIHVwZGF0ZSBvciBkZWxldGUgb24gdGFibGUgInRl bXBvcmFsX3BlciIgdmlvbGF0ZXMgZm9yZWlnbiBrZXkgY29uc3RyYWludCAidGVtcG9yYWxf ZmtfcGVyMnBlcl9mayIgb24gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIiCitERVRBSUw6 ICBLZXkgKGlkLCB2YWxpZF9hdCk9KFs1LDYpLCBbMjAxOC0wMS0wMSwyMDE4LTAyLTAxKSkg aXMgc3RpbGwgcmVmZXJlbmNlZCBmcm9tIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIi4K Ky0tIGRlbGV0aW5nIGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEt MDInIFRPICcyMDE4LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcg anVzdCBhIHBhcnQgZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JU SU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hF UkUgaWQgPSAnWzUsNV0nOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDMsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIu CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3 LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgCistLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbNSw2KSB8 IDIwMTgtMDEtMDEgfCAyMDE4LTAxLTAyCisgWzUsNikgfCAyMDE4LTAxLTAzIHwgMjAxOC0w Mi0wMQorKDIgcm93cykKKworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgIGlkICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFszLDQpIHwgMjAxOC0wMS0wNSB8IDIw MTgtMDEtMTAgfCBbNSw2KQorKDEgcm93KQorCistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0 aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVsZXRlIHN1Y2NlZWRzOgorREVMRVRF IEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0g JzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7CistLQorLS0gdGVz dCBGSyBwYXJlbnQgZGVsZXRlcyBSRVNUUklDVAorLS0KK1RSVU5DQVRFIHRlbXBvcmFsX3Bl ciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJw ZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazsKK0FMVEVSIFRB QkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQor CVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisJT04gREVMRVRFIFJFU1RSSUNUOworSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBLIGRlbGV0ZSB0aGF0IHN1 Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVz ZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywgJzIwMTgtMDEtMDEnLCAn MjAxOC0wMi0wMScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEnLCAnMjAxOC0wMy0wMScp OworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcyMDE4LTAxLTA1JywgJzIw MTgtMDEtMTAnLCAnWzUsNV0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBp ZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3Rp bCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBi b3RoIGFyZSByZWZlcmVuY2VkOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlk ID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGls ID0gJzIwMTgtMDItMDEnOworRVJST1I6ICB1cGRhdGUgb3IgZGVsZXRlIG9uIHRhYmxlICJ0 ZW1wb3JhbF9wZXIiIHZpb2xhdGVzIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgInRlbXBvcmFs X2ZrX3BlcjJwZXJfZmsiIG9uIHRhYmxlICJ0ZW1wb3JhbF9ma19wZXIycGVyIgorREVUQUlM OiAgS2V5IChpZCwgdmFsaWRfYXQpPShbNSw2KSwgWzIwMTgtMDEtMDEsMjAxOC0wMi0wMSkp IGlzIHN0aWxsIHJlZmVyZW5jZWQgZnJvbSB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIu CistLSBkZWxldGluZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAx LTAyJyBUTyAnMjAxOC0wMS0wMycKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGRlbGV0aW5n IGp1c3QgYSBwYXJ0IGZhaWxzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyCitGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE4LTAxLTA1JyBUTyAnMjAxOC0wMS0xMCcKK1dI RVJFIGlkID0gJ1s1LDVdJzsKK0VSUk9SOiAgdXBkYXRlIG9yIGRlbGV0ZSBvbiB0YWJsZSAi dGVtcG9yYWxfcGVyIiB2aW9sYXRlcyBmb3JlaWduIGtleSBjb25zdHJhaW50ICJ0ZW1wb3Jh bF9ma19wZXIycGVyX2ZrIiBvbiB0YWJsZSAidGVtcG9yYWxfZmtfcGVyMnBlciIKK0RFVEFJ TDogIEtleSAoaWQsIHZhbGlkX2F0KT0oWzUsNiksIFsyMDE4LTAxLTAzLDIwMTgtMDItMDEp KSBpcyBzdGlsbCByZWZlcmVuY2VkIGZyb20gdGFibGUgInRlbXBvcmFsX2ZrX3BlcjJwZXIi LgorU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdb Nyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgaWQgICB8IHZhbGlkX2Zyb20gfCB2 YWxpZF90aWwgIAorLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzUsNikg fCAyMDE4LTAxLTAxIHwgMjAxOC0wMS0wMgorIFs1LDYpIHwgMjAxOC0wMS0wMyB8IDIwMTgt MDItMDEKKygyIHJvd3MpCisKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBX SEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICBpZCAgIHwg dmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMyw0KSB8IDIwMTgtMDEtMDUgfCAy MDE4LTAxLTEwIHwgWzUsNikKKygxIHJvdykKKworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVj dGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVU RSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzMsM10nOworREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9 ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0KKy0tIHBl cjJwZXIgdGVzdCBPTiBVUERBVEUvREVMRVRFIG9wdGlvbnMKKy0tCistLSBUT0M6CistLSBw YXJlbnQgdXBkYXRlcyBDQVNDQURFCistLSBwYXJlbnQgZGVsZXRlcyBDQVNDQURFCistLSBw YXJlbnQgdXBkYXRlcyBTRVQgTlVMTAorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIE5VTEwKKy0t IHBhcmVudCB1cGRhdGVzIFNFVCBERUZBVUxUCistLSBwYXJlbnQgZGVsZXRlcyBTRVQgREVG QVVMVAorLS0gcGFyZW50IHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0g cGFyZW50IGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xzKQorLS0gcGFyZW50IHVw ZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tIHBhcmVudCBkZWxldGVzIFNF VCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLSBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTCAo dHdvIHNjYWxhciBjb2xzLCBTRVQgTlVMTCBzdWJzZXQpCistLSBwYXJlbnQgdXBkYXRlcyBT RVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xzKQorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIERF RkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBERUZBVUxU ICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1YnNldCkKKy0tCistLSB0ZXN0IEZL IHBhcmVudCB1cGRhdGVzIENBU0NBREUKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRl bXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmss CisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCQlGT1JFSUdOIEtF WSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyCisJCU9OIERFTEVURSBDQVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92 ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9G IHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAn WzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAw LDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpCisgWzEwMCwxMDEpIHwg MjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbNyw4KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEt MDEgfCAyMDIxLTAxLTAxIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRl OgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2 LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwg MjAxOS0wMS0wMSB8IFs3LDgpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEt MDEgfCBbNyw4KQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzcs OCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0n KTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdb OCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8 IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFs5LDEw KQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkKKygyIHJv d3MpCisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIENBU0NBREUKKy0tCitUUlVO Q0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf ZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxV RVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7 CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl ciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0w MS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19w ZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0Owor ICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAy MDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCisoMiByb3dzKQorCistLSBub24tRlBP IGRlbGV0ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNiw2XSc7 CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwx MDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgaWQgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsIHwgcGFyZW50X2lkIAorLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKygwIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJ TlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1w b3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQp IFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgs OF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxp ZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9p ZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0K KyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMSByb3cp CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIFNFVCBOVUxMCistLQorVFJVTkNB VEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2Zr X3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVT ICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOwor QUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1w b3JhbF9ma19wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlS RUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorCQlPTiBERUxFVEUgU0VUIE5VTEwgT04gVVBEQVRF IFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9y YWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcy MDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9S REVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRf dGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8 IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAw LDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpCisoMyByb3dzKQorCist LSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDdd JyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAx IHwgMjAyMC0wMS0wMSB8IAorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAx IHwgCisoMyByb3dzKQorCistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4 LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBW QUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhd Jyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUgaWQgPSAn WzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAg fCBwYXJlbnRfaWQgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tCisgWzIwMCwyMDEpIHwgMjAxOC0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBb MjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkpCisoMiByb3dzKQor CistLQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTAorLS0KK1RSVU5DQVRF IHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAn MjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19w ZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAo J1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKKy0t IGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQgCistLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tCisgWzEwMCwxMDEp IHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTkt MDEtMDEgfCAyMDIwLTAxLTAxIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEt MDEtMDEgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFy ZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgCisgWzEwMCwx MDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8IAorKDMgcm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZl cmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlk ID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwg CisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KQorKDIgcm93 cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIERFRkFVTFQKKy0tCitU UlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1st MSwtMV0nLCBudWxsLCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBv cmFsX2ZrX3BlcjJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9pZCBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisJ QUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAo cGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy CisJCU9OIERFTEVURSBTRVQgREVGQVVMVCBPTiBVUERBVEUgU0VUIERFRkFVTFQ7CistLSBs ZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJ T04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBp ZCA9ICdbNyw3XScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lk IAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQor IFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEw MSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIw MjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8g dXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlk ID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBp ZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAx LTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAy MDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEt MDEgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCBy b3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJl bnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEn LCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVS RSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFs aWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0w MSB8IFstMSwwKQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgs OSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIFNFVCBERUZB VUxUCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbLTEsLTFdJywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBl ciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAw LDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0 b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBGT1IgUE9S VElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hF UkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAg ICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkIAorLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIw MTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAx IHwgMjAyMC0wMS0wMSB8IFstMSwwKQorIFsxMDAsMTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIx LTAxLTAxIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBh cmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKQor IFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApCisgWzEwMCwx MDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEsMCkKKygzIHJvd3MpCisKKy0t IEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4 LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScs ICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScs ICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRl bXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAx LTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBp ZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2 YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZCAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAx LTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAy MDIxLTAxLTAxIHwgWzgsOSkKKygyIHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1 cGRhdGVzIENBU0NBREUgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3Jh bF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywg J1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9p ZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2Zr Ml9wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5D RVMgdGVtcG9yYWxfcGVyMgorCQlPTiBERUxFVEUgQ0FTQ0FERSBPTiBVUERBVEUgQ0FTQ0FE RTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIg Rk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEt MDEnIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAy MDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAx KSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEw MCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykK KygzIHJvd3MpCisKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIg U0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgt MDEtMDEgfCAyMDE5LTAxLTAxIHwgWzcsOCkgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwg MjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbNyw4KSAgICAgIHwgWzYsNykKKyBbMTAwLDEw MSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs3LDgpICAgICAgfCBbNiw3KQorKDMg cm93cykKKworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90 aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAw XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK1VQ REFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4 XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBp ZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBw YXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgt MDEtMDEgfCAyMDIwLTAxLTAxIHwgWzksMTApICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwg MjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3Mp CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIENBU0NBREUgKHR3byBzY2FsYXIg Y29scykKKy0tCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBl cjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2 YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAy MS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sx MDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0n KTsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxf cGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAy MC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQx IHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAy MDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0w MSB8IDIwMjEtMDEtMDEgfCBbNiw3KSAgICAgIHwgWzYsNykKKygyIHJvd3MpCisKKy0tIG5v bi1GUE8gZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAn WzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyBpZCB8IHZhbGlkX2Zyb20g fCB2YWxpZF90aWwgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKygwIHJvd3MpCisK Ky0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lO U0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAx OC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQg ICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lk MiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwg WzgsOSkgICAgICB8IFs4LDkpCisoMSByb3cpCisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1 cGRhdGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9y YWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9w ZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScs ICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRf aWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9m azJfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywK KwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maworCQlGT1JFSUdOIEtF WSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVO Q0VTIHRlbXBvcmFsX3BlcjIKKwkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQREFURSBTRVQg TlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3Bl cjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFNFVCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1Qg KiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90 aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkg fCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAs MTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IAorIFsxMDAs MTAxKSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCiso MyByb3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNF VCBpZDEgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAx LTAxIHwgMjAxOS0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDE5LTAx LTAxIHwgMjAyMC0wMS0wMSB8ICAgICAgICAgICAgfCAKKyBbMTAwLDEwMSkgfCAyMDIwLTAx LTAxIHwgMjAyMS0wMS0wMSB8ICAgICAgICAgICAgfCAKKygzIHJvd3MpCisKKy0tIEZLIGFj cm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAo aWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgs OF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4 XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJl bnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVy MiBTRVQgaWQxID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBA PiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAg IGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVu dF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0w MSB8ICAgICAgICAgICAgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0w MSB8IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFy ZW50IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0 ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2 LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBh cmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAx JywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAnWzYsNl0nKTsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFs aWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAg ICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAg ICAgICAgIHwgCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbNiw3 KSAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJP TSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9mcm9tIHwgdmFsaWRfdGlsICB8 IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgWzEwMCwxMDEpIHwgMjAx OC0wMS0wMSB8IDIwMTktMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgMjAx OS0wMS0wMSB8IDIwMjAtMDEtMDEgfCAgICAgICAgICAgIHwgCisgWzEwMCwxMDEpIHwgMjAy MC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAgICAgICAgICAgIHwgCisoMyByb3dzKQorCistLSBG SyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3Bl cjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywg J1s4LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworREVMRVRFIEZST00gdGVt cG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJF IGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8ICAgICAg ICAgICAgfCAKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs4LDkp ICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0 ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scywgU0VUIE5VTEwgc3Vic2V0KQorLS0KK1RS VU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0gZmFpbHMg YmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUg dGVtcG9yYWxfZmsyX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Bl cjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwkJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisJCU9OIERFTEVURSBTRVQgTlVMTCAodmFs aWRfYXQpIE9OIFVQREFURSBTRVQgTlVMTDsKK0VSUk9SOiAgY29sdW1uICJ2YWxpZF9hdCIg cmVmZXJlbmNlZCBpbiBPTiBERUxFVEUgU0VUIGFjdGlvbiBjYW5ub3QgYmUgUEVSSU9ECist LSBvazoKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisJRFJPUCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrMl9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQy LCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorCQlPTiBE RUxFVEUgU0VUIE5VTEwgKHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIGxl ZnRvdmVycyBvbiBib3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1Ig UE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScg V0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAg aWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50 X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLQorIFsxMDAsMTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAx IHwgWzYsNykgICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAt MDEtMDEgfCAgICAgICAgICAgIHwgWzYsNykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwg MjAyMS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQ TyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2 XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sx MDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zy b20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0K KyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8ICAgICAgICAgICAgfCBb Niw3KQorIFsxMDAsMTAxKSB8IDIwMTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAg ICB8IFs2LDcpCisgWzEwMCwxMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCAgICAg ICAgICAgIHwgWzYsNykKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNl ZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScs ICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4 LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9 ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAq IEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRF UiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3Rp bCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8 IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgICAgICAgICAgICB8IFs4LDkpCisgWzIwMCwy MDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbOCw5KSAgICAgIHwgWzgsOSkKKygy IHJvd3MpCisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIFNFVCBERUZBVUxUICh0 d28gc2NhbGFyIGNvbHMpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxf ZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1stMSwtMV0nLCBudWxs LCBudWxsKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJ1s2LDZdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlk LCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIpIFZBTFVF UyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0nLCAn WzYsNl0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrMl9wZXIycGVyCisgIEFMVEVSIENP TFVNTiBwYXJlbnRfaWQxIFNFVCBERUZBVUxUICdbLTEsLTFdJywKKyAgQUxURVIgQ09MVU1O IHBhcmVudF9pZDIgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0 ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJf cGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVS SU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKwkJT04gREVMRVRF IFNFVCBERUZBVUxUIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFNFVCBpZDEgPSAnWzcsN10n LCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFy ZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAx LTAxIHwgMjAxOS0wMS0wMSB8IFs2LDcpICAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIw MTktMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsxMDAsMTAx KSB8IDIwMjAtMDEtMDEgfCAyMDIxLTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisoMyBy b3dzKQorCistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBp ZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxp ZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEw MSkgfCAyMDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBb MTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKSAgICAg fCBbLTEsMCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dz OgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZh bGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIw LTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAx JywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxV RVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywg J1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyMiBTRVQgaWQxID0gJ1s5LDldJywgaWQy ID0gJ1s5LDldJyBXSEVSRSBpZDEgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0w MS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJF IGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8 IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0KKyBbMjAwLDIwMSkgfCAyMDE4LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSww KSAgICAgfCBbLTEsMCkKKyBbMjAwLDIwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8 IFs4LDkpICAgICAgfCBbOCw5KQorKDIgcm93cykKKworLS0KKy0tIHRlc3QgRksgcGFyZW50 IGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scykKKy0tCitUUlVOQ0FURSB0 ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1st MSwtMV0nLCAnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0n LCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAn MjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYs Nl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKyAgICBpZCAgICAgfCB2YWxpZF9m cm9tIHwgdmFsaWRfdGlsICB8IHBhcmVudF9pZDEgfCBwYXJlbnRfaWQyIAorLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t CisgWzEwMCwxMDEpIHwgMjAxOC0wMS0wMSB8IDIwMTktMDEtMDEgfCBbNiw3KSAgICAgIHwg WzYsNykKKyBbMTAwLDEwMSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAg ICAgfCBbLTEsMCkKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2 LDcpICAgICAgfCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBG Uk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIg QlkgaWQsIHZhbGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwg IHwgcGFyZW50X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAy MDE4LTAxLTAxIHwgMjAxOS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBbMTAwLDEw MSkgfCAyMDE5LTAxLTAxIHwgMjAyMC0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEsMCkKKyBb MTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFstMSwwKSAgICAgfCBbLTEs MCkKKygzIHJvd3MpCisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhd Jyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5E IHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFs aWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRf aWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEg fCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFstMSwwKQorIFsyMDAsMjAxKSB8IDIwMjAt MDEtMDEgfCAyMDIxLTAxLTAxIHwgWzgsOSkgICAgICB8IFs4LDkpCisoMiByb3dzKQorCist LQorLS0gdGVzdCBGSyBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBj b2xzLCBTRVQgREVGQVVMVCBzdWJzZXQpCistLQorVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwg dGVtcG9yYWxfZmsyX3BlcjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s2LDZd JywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwg dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4 LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIy cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQy KSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2 LDZdJywgJ1s2LDZdJyk7CistLSBmYWlscyBiZWNhdXNlIHlvdSBjYW4ndCBzZXQgdGhlIFBF UklPRCBjb2x1bW46CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRF UiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBv cmFsX2ZrMl9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRf aWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorCQlP TiBERUxFVEUgU0VUIERFRkFVTFQgKHZhbGlkX2F0KSBPTiBVUERBVEUgU0VUIERFRkFVTFQ7 CitFUlJPUjogIGNvbHVtbiAidmFsaWRfYXQiIHJlZmVyZW5jZWQgaW4gT04gREVMRVRFIFNF VCBhY3Rpb24gY2Fubm90IGJlIFBFUklPRAorLS0gb2s6CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBTRVQgREVGQVVMVCAn Wy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAor CUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZ IChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQpCisJCVJFRkVSRU5D RVMgdGVtcG9yYWxfcGVyMgorCQlPTiBERUxFVEUgU0VUIERFRkFVTFQgKHBhcmVudF9pZDEp IE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgor REVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9N ICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAgIHwgdmFsaWRfZnJvbSB8IHZh bGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAKKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIFsxMDAs MTAxKSB8IDIwMTgtMDEtMDEgfCAyMDE5LTAxLTAxIHwgWzYsNykgICAgICB8IFs2LDcpCisg WzEwMCwxMDEpIHwgMjAxOS0wMS0wMSB8IDIwMjAtMDEtMDEgfCBbLTEsMCkgICAgIHwgWzYs NykKKyBbMTAwLDEwMSkgfCAyMDIwLTAxLTAxIHwgMjAyMS0wMS0wMSB8IFs2LDcpICAgICAg fCBbNiw3KQorKDMgcm93cykKKworLS0gbm9uLUZQTyB1cGRhdGU6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBv cmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZh bGlkX2F0OworICAgIGlkICAgICB8IHZhbGlkX2Zyb20gfCB2YWxpZF90aWwgIHwgcGFyZW50 X2lkMSB8IHBhcmVudF9pZDIgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBbMTAwLDEwMSkgfCAyMDE4LTAxLTAx IHwgMjAxOS0wMS0wMSB8IFstMSwwKSAgICAgfCBbNiw3KQorIFsxMDAsMTAxKSB8IDIwMTkt MDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0xLDApICAgICB8IFs2LDcpCisgWzEwMCwxMDEpIHwg MjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEgfCBbLTEsMCkgICAgIHwgWzYsNykKKygzIHJvd3Mp CisKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVt cG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgn WzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQg SU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBW QUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWzgsOF0nLCBudWxsLCBudWxsKTsKK0lOU0VS VCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGls LCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0w MS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5 LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hF UkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisgICAgaWQgICAg IHwgdmFsaWRfZnJvbSB8IHZhbGlkX3RpbCAgfCBwYXJlbnRfaWQxIHwgcGFyZW50X2lkMiAK Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIFsyMDAsMjAxKSB8IDIwMTgtMDEtMDEgfCAyMDIwLTAxLTAxIHwgWy0x LDApICAgICB8IFs4LDkpCisgWzIwMCwyMDEpIHwgMjAyMC0wMS0wMSB8IDIwMjEtMDEtMDEg fCBbOCw5KSAgICAgIHwgWzgsOSkKKygyIHJvd3MpCisKIC0tIEZLIHdpdGggYSBjdXN0b20g cmFuZ2UgdHlwZQogQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1k YXRlKTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFs bGVsX3NjaGVkdWxlCmluZGV4IDRiZGJlYjcyZWMwLi5iOGNkOGIzZjAzZSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC00Myw3ICs0Myw3IEBAIHRlc3Q6IGNvcHkg Y29weXNlbGVjdCBjb3B5ZG1sIGluc2VydCBpbnNlcnRfY29uZmxpY3QKICMgTm90ZTogbWFu eSBvZiB0aGUgdGVzdHMgaW4gbGF0ZXIgZ3JvdXBzIGRlcGVuZCBvbiBjcmVhdGVfaW5kZXgK ICMgLS0tLS0tLS0tLQogdGVzdDogY3JlYXRlX2Z1bmN0aW9uX2MgY3JlYXRlX21pc2MgY3Jl YXRlX29wZXJhdG9yIGNyZWF0ZV9wcm9jZWR1cmUgY3JlYXRlX3RhYmxlIGNyZWF0ZV90eXBl IGNyZWF0ZV9zY2hlbWEKLXRlc3Q6IGNyZWF0ZV9pbmRleCBjcmVhdGVfaW5kZXhfc3BnaXN0 IGNyZWF0ZV92aWV3IGluZGV4X2luY2x1ZGluZyBpbmRleF9pbmNsdWRpbmdfZ2lzdAordGVz dDogY3JlYXRlX2luZGV4IGNyZWF0ZV9pbmRleF9zcGdpc3QgY3JlYXRlX3ZpZXcgaW5kZXhf aW5jbHVkaW5nIGluZGV4X2luY2x1ZGluZ19naXN0IHBlcmlvZHMKIAogIyAtLS0tLS0tLS0t CiAjIEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2Zvcl9wb3J0aW9uX29mLnNxbAppbmRleCBlODAyYjVjNjdmZi4uZTI1MjE1YTNmZDUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Zvcl9wb3J0aW9uX29mLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9mb3JfcG9ydGlvbl9vZi5zcWwKQEAgLTQyMyw2 ICs0MjMsMzggQEAgU0VMRUNUICogRlJPTSBmb3JfcG9ydGlvbl9vZl90ZXN0MiBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CiAKIERST1AgVEFCTEUgZm9yX3BvcnRpb25fb2ZfdGVzdDI7CiAK Ky0tIFRlc3Qgd2l0aCBQRVJJT0RzCisKK0NSRUFURSBUQUJMRSBmb3JfcG9ydGlvbl9vZl90 ZXN0MiAoCisgIGlkIGludDRyYW5nZSBOT1QgTlVMTCwKKyAgdmFsaWRfZnJvbSBkYXRlLAor ICB2YWxpZF90aWwgZGF0ZSwKKyAgbmFtZSB0ZXh0IE5PVCBOVUxMLAorICBQRVJJT0QgRk9S IHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgZm9yX3Bv cnRpb25fb2ZfdGVzdDJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKQorKTsKK0lOU0VSVCBJTlRPIGZvcl9wb3J0aW9uX29mX3Rlc3QyCitWQUxVRVMK KygnWzEsMiknLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAzJywgJ29uZScpLAorKCdbMSwy KScsICcyMDE4LTAyLTA0JywgJzIwMTgtMDMtMDMnLCAnb25lJyksCisoJ1sxLDIpJywgJzIw MTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcsICdvbmUnKSwKKygnWzIsMyknLCAnMjAxOC0wMS0w MScsICcyMDE4LTA1LTAxJywgJ3R3bycpLAorKCdbMyw0KScsICcyMDE4LTAxLTAxJywgbnVs bCwgJ3RocmVlJyk7Cis7CisKK1VQREFURSBmb3JfcG9ydGlvbl9vZl90ZXN0MgorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0xMCcgVE8gJzIwMTgtMDItMTAnCitT RVQgbmFtZSA9ICdvbmVeMScKK1dIRVJFIGlkID0gJ1sxLDIpJzsKKworREVMRVRFIEZST00g Zm9yX3BvcnRpb25fb2ZfdGVzdDIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTgtMDEtMTUnIFRPICcyMDE4LTAyLTE1JworV0hFUkUgaWQgPSAnWzIsMyknOworCitTRUxF Q1QgKiBGUk9NIGZvcl9wb3J0aW9uX29mX3Rlc3QyIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KworRFJPUCBUQUJMRSBmb3JfcG9ydGlvbl9vZl90ZXN0MjsKKwogLS0gVGVzdCB3aXRoIGEg Y3VzdG9tIHJhbmdlIHR5cGUKIAogQ1JFQVRFIFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uo c3VidHlwZT1kYXRlKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Blcmlv ZHMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGVyaW9kcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVkMzk3MTJkMmI0Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGVyaW9kcy5zcWwKQEAgLTAsMCArMSwxNzgg QEAKKy8qIFN5c3RlbSBwZXJpb2RzIGFyZSBub3QgaW1wbGVtZW50ZWQgKi8KK2NyZWF0ZSB0 YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBzeXN0 ZW1fdGltZSAoZHMsIGRlKSk7CisKKy8qIFBlcmlvZHMgbXVzdCBzcGVjaWZ5IGFjdHVhbCBj b2x1bW5zICovCitjcmVhdGUgdGFibGUgcHQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRh dGUsIHBlcmlvZCBmb3IgcCAoYm9ndXMsIGRlKSk7CitjcmVhdGUgdGFibGUgcHQgKGlkIGlu dGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGJvZ3VzKSk7CisK Ky8qIERhdGEgdHlwZXMgbXVzdCBtYXRjaCBleGFjdGx5ICovCitjcmVhdGUgdGFibGUgcHQg KGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIHRpbWVzdGFtcCwgcGVyaW9kIGZvciBwIChkcywg ZGUpKTsKK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgdGV4dCBjb2xsYXRlICJD IiwgZGUgdGV4dCBjb2xsYXRlICJQT1NJWCIsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSk7CisK Ky8qIFBlcmlvZHMgbXVzdCBoYXZlIGEgZGVmYXVsdCBCVHJlZSBvcGVyYXRvciBjbGFzcyAq LworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBkcyB4bWwsIGRlIHhtbCwgcGVyaW9k IGZvciBwIChkcywgZGUpKTsKKworLyogUGVyaW9kIGFuZCBjb2x1bW4gbmFtZXMgYXJlIGlu IHRoZSBzYW1lIG5hbWVzcGFjZSAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2VyLCBk cyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIGN0aWQgKGRzLCBkZSkpOworY3JlYXRlIHRh YmxlIHB0IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIGlkIChk cywgZGUpKTsKKworLyogUGVyaW9kIG5hbWUgY2FuJ3QgYmUgZ2l2ZW4gbW9yZSB0aGFuIG9u Y2UgKi8KK2NyZWF0ZSB0YWJsZSBwdCAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwg cGVyaW9kIGZvciBwIChkcywgZGUpLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworCisvKiBO b3cgbWFrZSBvbmUgdGhhdCB3b3JrcyAqLworY3JlYXRlIHRhYmxlIHB0IChpZCBpbnRlZ2Vy LCBkcyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworCisvKiBTRUxF Q1QgKiBleGNsdWRlcyB0aGUgUEVSSU9EICovCitpbnNlcnQgaW50byBwdCB2YWx1ZXMgKDEs ICcyMDAwLTAxLTAxJywgJzIwMDEtMDEtMDEnKTsKK3NlbGVjdCAqIGZyb20gcHQ7CisKKy8q IFlvdSBjYW4gZ2V0IGl0IGlmIHlvdSB3YW50ICovCitzZWxlY3QgKiwgcCBmcm9tIHB0Owor CisvKiBUd28gYXJlIG9rYXkgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcDEgKGRzLCBkZSksIHBlcmlvZCBmb3IgcDIg KGRzLCBkZSkpOworZHJvcCB0YWJsZSBwdDI7CisKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJB VEVEIGNvbHVtbjogd29ya3MgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRz IGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMg YXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3 aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CitcZCBwdDIKK2Ryb3AgdGFibGUgcHQyOworLyog U2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2wg aXNuJ3QgdGhlcmUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUs IGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMgPSB0cnVl KSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2Ug dGhlIG9wdGlvbiBoYXMgYW4gaW52YWxpZCB2YWx1ZSAqLworY3JlYXRlIHRhYmxlIHB0MiAo aWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdp dGggKGNvbGV4aXN0cyA9ICd3aGF0ZXZlcicpKTsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJB VEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29sdW1uIGlzIG5vdCBOT1QgTlVMTCAq LworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBk YXRlcmFuZ2UgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRzLCBkZSkpIHN0b3Jl ZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKKy8q IFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29s dW1uIGlzIG5vdCBHRU5FUkFURUQgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIs IGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsLCBwZXJpb2QgZm9yIHAg KGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSkpOworLyogU2tpcCBjcmVhdGluZyBH RU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgR0VORVJBVEVE IGJ1dCB3aXRoIHRoZSB3cm9uZyBleHByZXNzaW9uICovCistLSBUT0RPOgorLS0gY3JlYXRl IHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcCBkYXRlcmFuZ2Ug bm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5cyBhcyAoZGF0ZXJhbmdlKGRlLCBkcykpIHN0b3Jl ZCwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0cyA9IHRydWUpKTsKKy8q IFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgY29s dW1uIGlzIHRoZSB3cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2Vy LCBkcyBkYXRlLCBkZSBkYXRlLCBwIHRzcmFuZ2Ugbm90IG51bGwgZ2VuZXJhdGVkIGFsd2F5 cyBhcyAodHNyYW5nZShkcywgZGUpKSBzdG9yZWQsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3 aXRoIChjb2xleGlzdHMgPSB0cnVlKSk7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBj b2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBpbmhlcml0ZWQgKi8KK2NyZWF0 ZSB0YWJsZSBwdDJwYXJlbnQgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0 ZXJhbmdlIG5vdCBudWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUp KSBzdG9yZWQpOworY3JlYXRlIHRhYmxlIHB0MiAocGVyaW9kIGZvciBwIChkcywgZGUpIHdp dGggKGNvbGV4aXN0cyA9IHRydWUpKSBpbmhlcml0cyAocHQycGFyZW50KTsKK2Ryb3AgdGFi bGUgcHQycGFyZW50OworCisKKy8qCisgKiBBTFRFUiBUQUJMRSB0ZXN0cworICovCithbHRl ciB0YWJsZSBwdCBkcm9wIHBlcmlvZCBmb3IgcDsKK2FsdGVyIHRhYmxlIHB0IGFkZCBwZXJp b2QgZm9yIHN5c3RlbV90aW1lIChkcywgZGUpOworYWx0ZXIgdGFibGUgcHQgYWRkIHBlcmlv ZCBmb3IgcCAoZHMsIGRlKTsKKworLyogQWRkaW5nIGEgc2Vjb25kIG9uZSAqLworY3JlYXRl IHRhYmxlIHB0MiAoaWQgaW50ZWdlciwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBw MSAoZHMsIGRlKSk7CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcDIgKGRzLCBk ZSk7Citkcm9wIHRhYmxlIHB0MjsKKworLyogQ2FuJ3QgZHJvcCBpdHMgY29sdW1ucyAqLwor YWx0ZXIgdGFibGUgcHQgZHJvcCBjb2x1bW4gZHM7CithbHRlciB0YWJsZSBwdCBkcm9wIGNv bHVtbiBkZTsKKworLyogQ2FuJ3QgY2hhbmdlIHRoZSBkYXRhIHR5cGVzICovCithbHRlciB0 YWJsZSBwdCBhbHRlciBjb2x1bW4gZHMgdHlwZSB0aW1lc3RhbXA7CithbHRlciB0YWJsZSBw dCBhbHRlciBjb2x1bW4gZHMgdHlwZSB0aW1lc3RhbXA7CisKKy8qIGNvbHVtbi9wZXJpb2Qg bmFtZXNwYWNlIGNvbmZsaWN0cyAqLworYWx0ZXIgdGFibGUgcHQgYWRkIGNvbHVtbiBwIGlu dGVnZXI7CithbHRlciB0YWJsZSBwdCByZW5hbWUgY29sdW1uIGlkIHRvIHA7CithbHRlciB0 YWJsZSBwdCBhZGQgcGVyaW9kIGZvciB0YWJsZW9pZCAoZHMsIGRlKTsKK2FsdGVyIHRhYmxl IHB0IGFkZCBwZXJpb2QgZm9yICIuLi4uLi4uLnBnLmRyb3BwZWQuNC4uLi4uLi4uIiAoZHMs IGRlKTsKKworLyogYWRkaW5nIGNvbHVtbnMgYW5kIHRoZSBwZXJpb2QgYXQgdGhlIHNhbWUg dGltZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50ZWdlcik7CithbHRlciB0YWJsZSBw dDIgYWRkIGNvbHVtbiBkcyBkYXRlLCBhZGQgY29sdW1uIGRlIGRhdGUsIGFkZCBwZXJpb2Qg Zm9yIHAgKGRzLCBkZSk7Citkcm9wIHRhYmxlIHB0MjsKKworLyogQW1iaWd1b3VzIHJhbmdl IHR5cGVzIHJhaXNlIGFuIGVycm9yICovCitjcmVhdGUgdHlwZSBteWRhdGVyYW5nZSBhcyBy YW5nZShzdWJ0eXBlPWRhdGUpOworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50LCBkcyBkYXRl LCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkpOworCisvKiBZb3UgY2FuIGdpdmUg YW4gZXhwbGljaXQgcmFuZ2UgdHlwZSAqLworY3JlYXRlIHRhYmxlIHB0MiAoaWQgaW50LCBk cyBkYXRlLCBkZSBkYXRlLCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAocmFuZ2V0eXBl ID0gJ215ZGF0ZXJhbmdlJykpOworZHJvcCB0eXBlIG15ZGF0ZXJhbmdlOworZHJvcCB0eXBl IG15ZGF0ZXJhbmdlIGNhc2NhZGU7Citkcm9wIHRhYmxlIHB0MjsKK2NyZWF0ZSB0YWJsZSBw dDIgKGlkIGludCwgZHMgZGF0ZSwgZGUgZGF0ZSwgcGVyaW9kIGZvciBwIChkcywgZGUpIHdp dGggKHJhbmdldHlwZSA9ICdkYXRlcmFuZ2UnKSk7CisKKy8qIFJhbmdlIHR5cGUgaXMgbm90 IGZvdW5kICovCitjcmVhdGUgdGFibGUgcHQzIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUs IHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChyYW5nZXR5cGUgPSAnbm90YXJhbmdlJykp OworCisvKiBSYW5nZSB0eXBlIGlzIHRoZSB3cm9uZyB0eXBlICovCitjcmVhdGUgdGFibGUg cHQzIChpZCBpbnQsIGRzIGRhdGUsIGRlIGRhdGUsIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3 aXRoIChyYW5nZXR5cGUgPSAndHN0enJhbmdlJykpOworZHJvcCB0YWJsZSBwdDI7CisKKy8q IFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogd29ya3MgKi8KK2NyZWF0ZSB0YWJs ZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBu dWxsIGdlbmVyYXRlZCBhbHdheXMgYXMgKGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOwor YWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhp c3RzID0gdHJ1ZSk7CitcZCBwdDIKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGlu ZyBHRU5FUkFURUQgY29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2wgaXNuJ3QgdGhlcmUg Ki8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUpOwor YWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJpb2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhp c3RzID0gdHJ1ZSk7Citkcm9wIHRhYmxlIHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJB VEVEIGNvbHVtbjogZmFpbHMgYmVjYXVzZSB0aGUgb3B0aW9uIGhhcyBhbiBpbnZhbGlkIHZh bHVlICovCitjcmVhdGUgdGFibGUgcHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRl LCBwIGRhdGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2Uo ZHMsIGRlKSkgc3RvcmVkKTsKK2FsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChk cywgZGUpIHdpdGggKGNvbGV4aXN0cyA9ICd3aGF0ZXZlcicpOworZHJvcCB0YWJsZSBwdDI7 CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRFRCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhl IGNvbHVtbiBpcyBub3QgTk9UIE5VTEwgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlkIGludGVn ZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIGdlbmVyYXRlZCBhbHdheXMgYXMg KGRhdGVyYW5nZShkcywgZGUpKSBzdG9yZWQpOworYWx0ZXIgdGFibGUgcHQyIGFkZCBwZXJp b2QgZm9yIHAgKGRzLCBkZSkgd2l0aCAoY29sZXhpc3RzID0gdHJ1ZSk7Citkcm9wIHRhYmxl IHB0MjsKKy8qIFNraXAgY3JlYXRpbmcgR0VORVJBVEVEIGNvbHVtbjogZmFpbHMgYmVjYXVz ZSB0aGUgY29sdW1uIGlzIG5vdCBHRU5FUkFURUQgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGlk IGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgZGF0ZXJhbmdlIG5vdCBudWxsKTsKK2Fs dGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4aXN0 cyA9IHRydWUpOworZHJvcCB0YWJsZSBwdDI7CisvKiBTa2lwIGNyZWF0aW5nIEdFTkVSQVRF RCBjb2x1bW46IGZhaWxzIGJlY2F1c2UgdGhlIGNvbHVtbiBpcyBHRU5FUkFURUQgYnV0IHdp dGggdGhlIHdyb25nIGV4cHJlc3Npb24gKi8KKy0tIFRPRE86CistLSBjcmVhdGUgdGFibGUg cHQyIChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRhdGVyYW5nZSBub3QgbnVs bCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZGUsIGRzKSkgc3RvcmVkKTsKKy0t IGFsdGVyIHRhYmxlIHB0MiBhZGQgcGVyaW9kIGZvciBwIChkcywgZGUpIHdpdGggKGNvbGV4 aXN0cyA9IHRydWUpOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQgY29sdW1uOiBmYWls cyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgdGhlIHdyb25nIHR5cGUgKi8KK2NyZWF0ZSB0YWJs ZSBwdDIgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUsIHAgdHNyYW5nZSBub3QgbnVs bCBnZW5lcmF0ZWQgYWx3YXlzIGFzICh0c3JhbmdlKGRzLCBkZSkpIHN0b3JlZCk7CithbHRl ciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xleGlzdHMg PSB0cnVlKTsKK2Ryb3AgdGFibGUgcHQyOworLyogU2tpcCBjcmVhdGluZyBHRU5FUkFURUQg Y29sdW1uOiBmYWlscyBiZWNhdXNlIHRoZSBjb2x1bW4gaXMgaW5oZXJpdGVkICovCitjcmVh dGUgdGFibGUgcHQycGFyZW50IChpZCBpbnRlZ2VyLCBkcyBkYXRlLCBkZSBkYXRlLCBwIGRh dGVyYW5nZSBub3QgbnVsbCBnZW5lcmF0ZWQgYWx3YXlzIGFzIChkYXRlcmFuZ2UoZHMsIGRl KSkgc3RvcmVkKTsKK2NyZWF0ZSB0YWJsZSBwdDIgKCkgaW5oZXJpdHMgKHB0MnBhcmVudCk7 CithbHRlciB0YWJsZSBwdDIgYWRkIHBlcmlvZCBmb3IgcCAoZHMsIGRlKSB3aXRoIChjb2xl eGlzdHMgPSB0cnVlKTsKK2Ryb3AgdGFibGUgcHQyOworZHJvcCB0YWJsZSBwdDJwYXJlbnQ7 CisKKy8qIENSRUFURSBUQUJMRSAoTElLRSAuLi4pICovCisKKy8qIFBlcmlvZHMgYXJlIG5v dCBjb3BpZWQgYnkgTElLRSwgc28gdGhlaXIgY29sdW1ucyBhcmVuJ3QgZWl0aGVyICovCitj cmVhdGUgdGFibGUgcHQyIChsaWtlIHB0KTsKK1xkIHB0MgorZHJvcCB0YWJsZSBwdDI7CisK Ky8qIENhbiBhZGQgYSBwZXJpb2QgcmVmZXJyaW5nIHRvIExJS0UnZCBjb2x1bW5zICovCitj cmVhdGUgdGFibGUgbm90X3AgKGlkIGludGVnZXIsIGRzIGRhdGUsIGRlIGRhdGUpOworY3Jl YXRlIHRhYmxlIHB0MiAobGlrZSBub3RfcCwgcGVyaW9kIGZvciBwIChkcywgZGUpKTsKK1xk IHB0MgorZHJvcCB0YWJsZSBwdDI7CisKKy8qIENhbiBhZGQgYSBwZXJpb2Qgd2l0aCB0aGUg c2FtZSBuYW1lICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0LCBwZXJpb2QgZm9yIHAg KGRzLCBkZSkpOworXGQgcHQyCitkcm9wIHRhYmxlIHB0MjsKKworLyogQ2FuIGFkZCBhIHBl cmlvZCB3aXRoIGEgZGlmZmVyZW50IG5hbWUgKi8KK2NyZWF0ZSB0YWJsZSBwdDIgKGxpa2Ug cHQsIHBlcmlvZCBmb3IgcDIgKGRzLCBkZSkpOworXGQgcHQyCitkcm9wIHRhYmxlIHB0MjsK KworLyogQ2FuJ3QgYWRkIGEgcGVyaW9kIHdob3NlIG5hbWUgY29uZmxpY3RzIHdpdGggYSBM SUtFJ2QgY29sdW1uICovCitjcmVhdGUgdGFibGUgcHQyIChsaWtlIHB0LCBwZXJpb2QgZm9y IGlkIChkcywgZGUpKTsKKworLyogQ1JFQVRFIFRBTEJFIElOSEVSSVRTICovCisKKy8qIENh bid0IGluaGVyaXQgZnJvbSBhIHRhYmxlIHdpdGggYSBwZXJpb2QgKi8KK2NyZWF0ZSB0YWJs ZSBwdDIgKG5hbWUgdGV4dCkgaW5oZXJpdHMgKHB0KTsKKworLyogQ2FuJ3QgaW5oZXJpdCB3 aXRoIGEgcGVyaW9kICovCitjcmVhdGUgdGFibGUgcHQyIChkMnMgZGF0ZSwgZDJlIGRhdGUs IHBlcmlvZCBmb3IgcCAoZDJzLCBkMmUpKSBpbmhlcml0cyAobm90X3ApOworCitkcm9wIHRh YmxlIG5vdF9wOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvd2l0aG91dF9v dmVybGFwcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC93aXRob3V0X292ZXJsYXBzLnNx bAppbmRleCAwY2I0MjY1NzMyMy4uMTkxZTA1MDk3ZDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3dpdGhvdXRfb3ZlcmxhcHMuc3FsCkBAIC01OCw2ICs1OCwzMSBAQCBDUkVBVEUg VEFCTEUgdGVtcG9yYWxfcm5nMiAoCiBTRUxFQ1QgcGdfZ2V0X2NvbnN0cmFpbnRkZWYob2lk KSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9ybmcyX3Br JzsKIFNFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29uaW5kaWQsIDAsIHRydWUpIEZST00gcGdf Y29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3RlbXBvcmFsX3JuZzJfcGsnOwogCistLSBQ SyB3aXRoIG9uZSBjb2x1bW4gcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9wZXIgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRf dGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCksCisgIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFs aWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitcZCB0ZW1wb3JhbF9wZXIKK1NFTEVDVCBw Z19nZXRfY29uc3RyYWludGRlZihvaWQpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25u YW1lID0gJ3RlbXBvcmFsX3Blcl9wayc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmlu ZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1w b3JhbF9wZXJfcGsnOworCistLSBQSyB3aXRoIHR3byBjb2x1bW5zIHBsdXMgYSBQRVJJT0Q6 CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMiAoCisgIGlkMSBpbnQ0cmFuZ2UsCisgIGlk MiBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisg IFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisgIENPTlNU UkFJTlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0 IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcGVyMgorU0VMRUNUIHBnX2dl dF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUg PSAndGVtcG9yYWxfcGVyMl9wayc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlk LCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3Jh bF9wZXIyX3BrJzsKKwogLS0gUEsgd2l0aCBhIGN1c3RvbSByYW5nZSB0eXBlOgogQ1JFQVRF IFRZUEUgdGV4dHJhbmdlMiBBUyByYW5nZSAoc3VidHlwZT10ZXh0LCBjb2xsYXRpb249IkMi KTsKIENSRUFURSBUQUJMRSB0ZW1wb3JhbF9ybmczICgKQEAgLTEzNSw2ICsxNjAsMzMgQEAg U0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdI RVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcm4KIFNFTEVDVCBwZ19nZXRfaW5kZXhkZWYoY29u aW5kaWQsIDAsIHRydWUpIEZST00gcGdfY29uc3RyYWludCBXSEVSRSBjb25uYW1lID0gJ3Rl bXBvcmFsX3JuZzNfdXEnOwogRFJPUCBUQUJMRSB0ZW1wb3JhbF9ybmczOwogCistLSBVTklR VUUgd2l0aCBvbmUgY29sdW1uIHBsdXMgYSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9y YWxfcGVyMyAoCisgIGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxp ZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRf dGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3VxIFVOSVFVRSAoaWQsIHZhbGlk X2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQgdGVtcG9yYWxfcGVyMworU0VMRUNUIHBn X2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNvbm5h bWUgPSAndGVtcG9yYWxfcGVyM191cSc7CitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmlu ZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFpbnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1w b3JhbF9wZXIzX3VxJzsKK0RST1AgVEFCTEUgdGVtcG9yYWxfcGVyMzsKKworLS0gVU5JUVVF IHdpdGggdHdvIGNvbHVtbnMgcGx1cyBhIFBFUklPRDoKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9wZXIzICgKKyAgaWQxIGludDRyYW5nZSwKKyAgaWQyIGludDRyYW5nZSwKKyAgdmFsaWRf ZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZSwKKyAgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQ09OU1RSQUlOVCB0ZW1wb3JhbF9wZXIzX3Vx IFVOSVFVRSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpCispOworXGQg dGVtcG9yYWxfcGVyMworU0VMRUNUIHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBw Z19jb25zdHJhaW50IFdIRVJFIGNvbm5hbWUgPSAndGVtcG9yYWxfcGVyM191cSc7CitTRUxF Q1QgcGdfZ2V0X2luZGV4ZGVmKGNvbmluZGlkLCAwLCB0cnVlKSBGUk9NIHBnX2NvbnN0cmFp bnQgV0hFUkUgY29ubmFtZSA9ICd0ZW1wb3JhbF9wZXIzX3VxJzsKK0RST1AgVEFCTEUgdGVt cG9yYWxfcGVyMzsKKwogLS0gVU5JUVVFIHdpdGggYSBjdXN0b20gcmFuZ2UgdHlwZToKIENS RUFURSBUWVBFIHRleHRyYW5nZTIgQVMgcmFuZ2UgKHN1YnR5cGU9dGV4dCwgY29sbGF0aW9u PSJDIik7CiBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcm5nMyAoCkBAIC0yMTIsNiArMjY0LDU4 IEBAIEFMVEVSIFRBQkxFIHRlbXBvcmFsMwogCVVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpOwogRFJPUCBUQUJMRSB0ZW1wb3JhbDM7CiAKKy0tIFBSSU1BUlkgS0VZ IHdpdGggUEVSSU9EIGFscmVhZHkgdGhlcmUKK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAor ICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUs CisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitB TFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3BrCisg IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyk7CitcZCB0ZW1w b3JhbDMKK0RST1AgVEFCTEUgdGVtcG9yYWwzOworCistLSBQUklNQVJZIEtFWSB3aXRoIFBF UklPRCB0b28KK0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisg IHZhbGlkX2Zyb20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUKKyk7CitBTFRFUiBUQUJMRSB0 ZW1wb3JhbDMKKyAgQUREIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlk X3RpbCksCisgIEFERCBDT05TVFJBSU5UIHRlbXBvcmFsM19waworICBQUklNQVJZIEtFWSAo aWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCitEUk9QIFRB QkxFIHRlbXBvcmFsMzsKKworLS0gVU5JUVVFIHdpdGggUEVSSU9EIGFscmVhZHkgdGhlcmUK K0NSRUFURSBUQUJMRSB0ZW1wb3JhbDMgKAorICBpZCBpbnQ0cmFuZ2UsCisgIHZhbGlkX2Zy b20gZGF0ZSwKKyAgdmFsaWRfdGlsIGRhdGUsCisgIFBFUklPRCBGT1IgdmFsaWRfYXQgKHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbDMKKyAgQURE IENPTlNUUkFJTlQgdGVtcG9yYWwzX3VxCisgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhP VVQgT1ZFUkxBUFMpOworXGQgdGVtcG9yYWwzCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKwor LS0gVU5JUVVFIHdpdGggUEVSSU9EIHRvbworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsMyAoCisg IGlkIGludDRyYW5nZSwKKyAgdmFsaWRfZnJvbSBkYXRlLAorICB2YWxpZF90aWwgZGF0ZQor KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsMworICBBREQgUEVSSU9EIEZPUiB2YWxpZF9hdCAo dmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKyAgQUREIENPTlNUUkFJTlQgdGVtcG9yYWwzX3Vx CisgIFVOSVFVRSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpOworXGQgdGVtcG9y YWwzCitEUk9QIFRBQkxFIHRlbXBvcmFsMzsKKwogLS0KIC0tIHRlc3QgUEsgaW5zZXJ0cwog LS0KQEAgLTQxNCw2ICs1MTgsNyBAQCBDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcm5nMnJu ZyAoCiAJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19ybmcycm5nX2ZrIEZPUkVJR04gS0VZIChw YXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKIAkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9ybmcg KGlkLCBQRVJJT0QgdmFsaWRfYXQpCiApOworXGQgdGVtcG9yYWxfZmtfcm5nMnJuZwogRFJP UCBUQUJMRSB0ZW1wb3JhbF9ma19ybmcycm5nOwogCiAtLSB3aXRoIG1pc21hdGNoZWQgUEVS SU9EIGNvbHVtbnM6CkBAIC0xOTM3LDYgKzIwNDIsODQ5IEBAIElOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9tbHRybmcybWx0cm5nIChpZCwgdmFsaWRfYXQsIHBhcmVudF9pZDEsIHBhcmVu dF9pZDIpIFZBCiBERUxFVEUgRlJPTSB0ZW1wb3JhbF9tbHRybmcyIFdIRVJFIGlkMSA9ICdb OCw5KScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKIFNFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmsyX21sdHJuZzJtbHRybmcgV0hFUkUgaWQgPSAnWzIwMCwyMDEpJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CiAKKy0tCistLSB0ZXN0IEZPUkVJR04gS0VZLCBQRVJJ T0QgcmVmZXJlbmNlcyBQRVJJT0QKKy0tCisKKy0tIHRlc3QgdGFibGUgc2V0dXAKK0RST1Ag VEFCTEUgdGVtcG9yYWxfcGVyOworQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX3BlciAoCisJaWQg aW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlQRVJJ T0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpCispOworQUxURVIgVEFC TEUgdGVtcG9yYWxfcGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfcGVyX3BrCisJUFJJ TUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBTKTsKKworLS0gQ2FuJ3Qg Y3JlYXRlIGEgRksgd2l0aCBhIG1pc21hdGNoZWQgcmFuZ2UgdHlwZQorQ1JFQVRFIFRBQkxF IHRlbXBvcmFsX2ZrX3BlcjJwZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGlu dCwKKwl2YWxpZF90aWwgaW50LAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZP UiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBv cmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9W RVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFs X3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CisKKy0tIHdvcmtzOiBQRVJJT0QgZm9y IGJvdGggcmVmZXJlbmNlZCBhbmQgcmVmZXJlbmNpbmcKK0NSRUFURSBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRfZnJvbSBkYXRlLAorCXZh bGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBXSVRIT1VUIE9WRVJMQVBT KSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsgRk9SRUlHTiBLRVkgKHBh cmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAo aWQsIFBFUklPRCB2YWxpZF9hdCkKKyk7CitcZCB0ZW1wb3JhbF9ma19wZXIycGVyCitEUk9Q IFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CisKKy0tIHdpdGggbWlzbWF0Y2hlZCBQRVJJ T0QgY29sdW1uczoKKworLS0gKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KSBSRUZFUkVO Q0VTIChpZCwgdmFsaWRfYXQpCistLSBSRUZFUkVOQ0VTIHBhcnQgc2hvdWxkIHNwZWNpZnkg UEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQg aW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9hdCkKKyk7CistLSAocGFy ZW50X2lkLCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQsIHZhbGlkX2F0KQorLS0gYm90aCBz aG91bGQgc3BlY2lmeSBQRVJJT0Q6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl ciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0 ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlk X2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3Br IFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZh bGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2F0KQorKTsK Ky0tIChwYXJlbnRfaWQsIHZhbGlkX2F0KSBSRUZFUkVOQ0VTIChpZCwgUEVSSU9EIHZhbGlk X2F0KQorLS0gRk9SRUlHTiBLRVkgcGFydCBzaG91bGQgc3BlY2lmeSBQRVJJT0QKK0NSRUFU RSBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyICgKKwlpZCBpbnQ0cmFuZ2UsCisJdmFsaWRf ZnJvbSBkYXRlLAorCXZhbGlkX3RpbCBkYXRlLAorCXBhcmVudF9pZCBpbnQ0cmFuZ2UsCisJ UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJB SU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfcGsgUFJJTUFSWSBLRVkgKGlkLCB2YWxpZF9hdCBX SVRIT1VUIE9WRVJMQVBTKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsg Rk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyIChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKKy0tIChwYXJlbnRfaWQsIHZhbGlk X2F0KSBSRUZFUkVOQ0VTIFtpbXBsaWNpdF0KKy0tIEZPUkVJR04gS0VZIHBhcnQgc2hvdWxk IHNwZWNpZnkgUEVSSU9ECitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJ aWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlw YXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20s IHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1B UlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0 ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIHZhbGlkX2F0 KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorKTsKKy0tIChwYXJlbnRfaWQsIFBFUklP RCB2YWxpZF9hdCkgUkVGRVJFTkNFUyAoaWQpCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtf cGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90 aWwgZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQg KHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIy cGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJ Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRf aWQsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIgKGlkKQor KTsKKy0tIChwYXJlbnRfaWQpIFJFRkVSRU5DRVMgKGlkLCBQRVJJT0QgdmFsaWRfYXQpCitD UkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQgaW50NHJhbmdlLAorCXZh bGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQgaW50NHJhbmdl LAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3RpbCksCisJQ09O U1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRf YXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVy IChpZCwgUEVSSU9EIHZhbGlkX2F0KQorKTsKKy0tIHdpdGggaW5mZXJyZWQgUEsgb24gdGhl IHJlZmVyZW5jZWQgdGFibGU6CistLSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpIFJF RkVSRU5DRVMgW2ltcGxpY2l0XQorQ1JFQVRFIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIg KAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUs CisJcGFyZW50X2lkIGludDRyYW5nZSwKKwlQRVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9m cm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9wayBQ UklNQVJZIEtFWSAoaWQsIHZhbGlkX2F0IFdJVEhPVVQgT1ZFUkxBUFMpLAorCUNPTlNUUkFJ TlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mayBGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCispOworRFJPUCBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycGVyOworLS0gKHBhcmVudF9pZCkgUkVGRVJFTkNFUyBbaW1w bGljaXRdCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQg aW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9m a19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVt cG9yYWxfcGVyCispOworCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxpY2F0ZSBy ZWZlcmVuY2VkIGNvbHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAo CisJaWQgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwK KwlwYXJlbnRfaWQgaW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zy b20sIHZhbGlkX3RpbCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBS SU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlO VCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrIEZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklP RCBwYXJlbnRfaWQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyIChpZCwgUEVSSU9EIGlk KQorKTsKKworLS0gVHdvIHNjYWxhciBjb2x1bW5zCitEUk9QIFRBQkxFIHRlbXBvcmFsX3Bl cjI7CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfcGVyMiAoCisJaWQxIGludDRyYW5nZSwKKwlp ZDIgaW50NHJhbmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlQ RVJJT0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpLAorCUNPTlNUUkFJ TlQgdGVtcG9yYWxfcGVyMl9wayBQUklNQVJZIEtFWSAoaWQxLCBpZDIsIHZhbGlkX2F0IFdJ VEhPVVQgT1ZFUkxBUFMpCispOworCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJw ZXIgKAorCWlkIGludDRyYW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRh dGUsCisJcGFyZW50X2lkMSBpbnQ0cmFuZ2UsCisJcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisJ UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQg V0lUSE9VVCBPVkVSTEFQUyksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9m ayBGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlkX2F0 KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRf YXQpCispOworXGQgdGVtcG9yYWxfZmsyX3BlcjJwZXIKK0RST1AgVEFCTEUgdGVtcG9yYWxf ZmsyX3BlcjJwZXI7CisKKy0tCistLSB0ZXN0IEFMVEVSIFRBQkxFIEFERCBDT05TVFJBSU5U CistLQorCitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlciAoCisJaWQgaW50NHJh bmdlLAorCXZhbGlkX2Zyb20gZGF0ZSwKKwl2YWxpZF90aWwgZGF0ZSwKKwlwYXJlbnRfaWQg aW50NHJhbmdlLAorCVBFUklPRCBGT1IgdmFsaWRfYXQgKHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCksCisJQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChp ZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQUykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3Jh bF9ma19wZXIycGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mawor CUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VT IHRlbXBvcmFsX3BlciAoaWQsIFBFUklPRCB2YWxpZF9hdCk7CistLSBUd28gc2NhbGFyIGNv bHVtbnM6CitDUkVBVEUgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIgKAorCWlkIGludDRy YW5nZSwKKwl2YWxpZF9mcm9tIGRhdGUsCisJdmFsaWRfdGlsIGRhdGUsCisJcGFyZW50X2lk MSBpbnQ0cmFuZ2UsCisJcGFyZW50X2lkMiBpbnQ0cmFuZ2UsCisJUEVSSU9EIEZPUiB2YWxp ZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKSwKKwlDT05TVFJBSU5UIHRlbXBvcmFsX2Zr Ml9wZXIycGVyX3BrIFBSSU1BUlkgS0VZIChpZCwgdmFsaWRfYXQgV0lUSE9VVCBPVkVSTEFQ UykKKyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorCUFERCBDT05TVFJB SU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZDEs IHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3Bl cjIgKGlkMSwgaWQyLCBQRVJJT0QgdmFsaWRfYXQpOworXGQgdGVtcG9yYWxfZmsyX3BlcjJw ZXIKKworLS0gd2l0aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZSwgYW5k IHdyb25nIGNvbHVtbiB0eXBlOgorQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgor CURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorCURST1AgUEVSSU9E IEZPUiB2YWxpZF9hdCwKKwlBTFRFUiBDT0xVTU4gdmFsaWRfZnJvbSBUWVBFIHRpbWVzdGFt cCwKKwlBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgdGltZXN0YW1wLAorCUFERCBQRVJJ T0QgRk9SIHZhbGlkX2F0ICh2YWxpZF9mcm9tLCB2YWxpZF90aWwpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJw ZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXI7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy CisJRFJPUCBQRVJJT0QgRk9SIHZhbGlkX2F0LAorCUFMVEVSIENPTFVNTiB2YWxpZF9mcm9t IFRZUEUgZGF0ZSwKKwlBTFRFUiBDT0xVTU4gdmFsaWRfdGlsIFRZUEUgZGF0ZSwKKwlBREQg UEVSSU9EIEZPUiB2YWxpZF9hdCAodmFsaWRfZnJvbSwgdmFsaWRfdGlsKTsKKworLS0gd2l0 aCBpbmZlcnJlZCBQSyBvbiB0aGUgcmVmZXJlbmNlZCB0YWJsZToKK0FMVEVSIFRBQkxFIHRl bXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVy X2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVS RU5DRVMgdGVtcG9yYWxfcGVyOworCistLSBzaG91bGQgZmFpbCBiZWNhdXNlIG9mIGR1cGxp Y2F0ZSByZWZlcmVuY2VkIGNvbHVtbnM6CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIy cGVyCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9mazIKKwlGT1JFSUdO IEtFWSAocGFyZW50X2lkLCBQRVJJT0QgcGFyZW50X2lkKQorCVJFRkVSRU5DRVMgdGVtcG9y YWxfcGVyIChpZCwgUEVSSU9EIGlkKTsKKworLS0KKy0tIHRlc3Qgd2l0aCByb3dzIGFscmVh ZHkKKy0tCisKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitERUxFVEUgRlJP TSB0ZW1wb3JhbF9wZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1sxLDFdJywgJzIwMTgtMDEtMDInLCAnMjAx OC0wMi0wMycpLAorICAoJ1sxLDFdJywgJzIwMTgtMDMtMDMnLCAnMjAxOC0wNC0wNCcpLAor ICAoJ1syLDJdJywgJzIwMTgtMDEtMDEnLCAnMjAxOC0wMS0wNScpLAorICAoJ1szLDNdJywg JzIwMTgtMDEtMDEnLCBOVUxMKTsKKworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBl cgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOworSU5TRVJUIElO VE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkKSBWQUxVRVMgKCdbMSwxXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDItMDEnLCAn WzEsMV0nKTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlBREQgQ09OU1RS QUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJRk9SRUlHTiBLRVkgKHBhcmVudF9pZCwg UEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyOworQUxURVIgVEFC TEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMiwyXScsICcyMDE4LTAx LTAyJywgJzIwMTgtMDQtMDEnLCAnWzEsMV0nKTsKKy0tIHNob3VsZCBmYWlsOgorQUxURVIg VEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2Zr X3BlcjJwZXJfZmsKKwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQp CisJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXI7CistLSBva2F5IGFnYWluOgorREVMRVRFIEZS T00gdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJw ZXIKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisJRk9SRUlHTiBL RVkgKHBhcmVudF9pZCwgUEVSSU9EIHZhbGlkX2F0KQorCVJFRkVSRU5DRVMgdGVtcG9yYWxf cGVyOworCistLQorLS0gdGVzdCBwZ19nZXRfY29uc3RyYWludGRlZgorLS0KKworU0VMRUNU IHBnX2dldF9jb25zdHJhaW50ZGVmKG9pZCkgRlJPTSBwZ19jb25zdHJhaW50IFdIRVJFIGNv bm5hbWUgPSAndGVtcG9yYWxfZmtfcGVyMnBlcl9mayc7CisKKy0tCistLSB0ZXN0IEZLIHJl ZmVyZW5jaW5nIGluc2VydHMKKy0tCisKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEs MV0nLCAnMjAxOC0wMS0wMicsICcyMDE4LTAyLTAxJywgJ1sxLDFdJyk7CistLSBzaG91bGQg ZmFpbDoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIsMl0nLCAnMjAxOC0wMS0wMics ICcyMDE4LTA0LTAxJywgJ1sxLDFdJyk7CistLSBub3cgaXQgc2hvdWxkIHdvcms6CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1sxLDFdJywgJzIwMTgtMDItMDMnLCAnMjAxOC0wMy0wMycpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMiwyXScsICcyMDE4LTAxLTAyJywgJzIwMTgtMDQtMDEnLCAnWzEs MV0nKTsKKworLS0KKy0tIHRlc3QgRksgcmVmZXJlbmNpbmcgdXBkYXRlcworLS0KKworVVBE QVRFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgU0VUIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMics IHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJyBXSEVSRSBpZCA9ICdbMSwxXSc7CistLSBzaG91 bGQgZmFpbDoKK1VQREFURSB0ZW1wb3JhbF9ma19wZXIycGVyIFNFVCB2YWxpZF9mcm9tID0g JzIwMTgtMDEtMDInLCB2YWxpZF90aWwgPSAnMjAxOC0wNS0wMScgV0hFUkUgaWQgPSAnWzEs MV0nOworVVBEQVRFIHRlbXBvcmFsX2ZrX3BlcjJwZXIgU0VUIHBhcmVudF9pZCA9ICdbOCw4 XScgV0hFUkUgaWQgPSAnWzEsMV0nOworCistLSBBTFRFUiBGSyBERUZFUlJBQkxFCisKK0JF R0lOOworICBJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUworICAgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAx JyksCisgICAgKCdbNSw1XScsICcyMDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKKyAgSU5T RVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkKSBWQUxVRVMKKyAgICAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAx OC0wMS0xMCcsICdbNSw1XScpOworICBBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVy CisgICAgQUxURVIgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrCisgICAgREVG RVJSQUJMRSBJTklUSUFMTFkgREVGRVJSRUQ7CisKKyAgREVMRVRFIEZST00gdGVtcG9yYWxf cGVyIFdIRVJFIGlkID0gJ1s1LDVdJzsgLS1zaG91bGQgbm90IGZhaWwgeWV0LgorQ09NTUlU OyAtLSBzaG91bGQgZmFpbCBoZXJlLgorCistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRl cyBOTyBBQ1RJT04KKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtf cGVyMnBlcjsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVt ZXJpYyBpZCBpc24ndCByZWZlcmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChp ZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAx JywgJzIwMTgtMDItMDEnKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIHZhbGlkX2Zyb20g PSAnMjAxNi0wMS0wMScsIHZhbGlkX3RpbCA9ICcyMDE2LTAyLTAxJyBXSEVSRSBpZCA9ICdb NSw1XSc7CistLSBhIFBLIHVwZGF0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBu dW1lcmljIGlkIGlzIHJlZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitERUxF VEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAgKCdb NSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcyMDE4 LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzMs M10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitVUERBVEUgdGVt cG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDItMDEnLCB2YWxpZF90aWwgPSAn MjAxNi0wMy0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4 LTAyLTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDMtMDEnOworLS0gYSBQSyB1cGRhdGUg dGhhdCBmYWlscyBiZWNhdXNlIGJvdGggYXJlIHJlZmVyZW5jZWQ6CitVUERBVEUgdGVtcG9y YWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAx Ni0wMi0wMScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAx LTAxJyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0gY2hhbmdpbmcgdGhlIHNj YWxhciBwYXJ0IGZhaWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10n CitXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5E IHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGNoYW5naW5nIGFuIHVucmVmZXJlbmNl ZCBwYXJ0IGlzIG9rYXk6CitVUERBVEUgdGVtcG9yYWxfcGVyCitGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE4LTAxLTAyJyBUTyAnMjAxOC0wMS0wMycKK1NFVCBpZCA9ICdb Nyw3XScKK1dIRVJFIGlkID0gJ1s1LDVdJzsKKy0tIGNoYW5naW5nIGp1c3QgYSBwYXJ0IGZh aWxzOgorVVBEQVRFIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJP TSAnMjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitTRVQgaWQgPSAnWzcsN10nCitXSEVS RSBpZCA9ICdbNSw1XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBp biAoJ1s1LDVdJywgJ1s3LDddJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBC WSBpZCwgdmFsaWRfYXQ7CistLSB0aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29y ZCBhbmQgdGhlIHNhbWUgUEsgdXBkYXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9y YWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMywzXSc7CitVUERBVEUgdGVtcG9yYWxfcGVy IFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwgPSAnMjAxNi0wMi0w MScKK1dIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBB TkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworCistLQorLS0gdGVzdCBGSyBwYXJlbnQg dXBkYXRlcyBSRVNUUklDVAorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1wb3Jh bF9ma19wZXIycGVyOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmtfcGVyMnBlcgorCURST1Ag Q09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrOworQUxURVIgVEFCTEUgdGVtcG9y YWxfZmtfcGVyMnBlcgorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsK KwlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJT0QgdmFsaWRfYXQpCisJUkVGRVJFTkNF UyB0ZW1wb3JhbF9wZXIKKwlPTiBVUERBVEUgUkVTVFJJQ1Q7CistLSBhIFBLIHVwZGF0ZSB0 aGF0IHN1Y2NlZWRzIGJlY2F1c2UgdGhlIG51bWVyaWMgaWQgaXNuJ3QgcmVmZXJlbmNlZDoK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4LTAyLTAxJyk7CitVUERBVEUg dGVtcG9yYWxfcGVyIFNFVCB2YWxpZF9mcm9tID0gJzIwMTYtMDEtMDEnLCB2YWxpZF90aWwg PSAnMjAxNi0wMi0wMScgV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gYSBQSyB1cGRhdGUgdGhh dCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJpYyBpZCBpcyByZWZlcmVuY2VkIGJl Y2F1c2UgdGhlIHJhbmdlIGlzbid0OgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJF IGlkID0gJ1s1LDVdJzsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTCisgICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyksCisgICgnWzUsNV0nLCAnMjAxOC0wMi0wMScsICcyMDE4LTAzLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1szLDNdJywgJzIwMTgtMDEtMDUnLCAnMjAxOC0w MS0xMCcsICdbNSw1XScpOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9 ICcyMDE2LTAyLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDMtMDEnCitXSEVSRSBpZCA9ICdb NSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0wMScgQU5EIHZhbGlkX3RpbCA9ICcy MDE4LTAzLTAxJzsKKy0tIGEgUEsgdXBkYXRlIHRoYXQgZmFpbHMgYmVjYXVzZSBib3RoIGFy ZSByZWZlcmVuY2VkOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcy MDE2LTAxLTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw1 XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4 LTAyLTAxJzsKKy0tIGNoYW5naW5nIHRoZSBzY2FsYXIgcGFydCBmYWlsczoKK1VQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2 YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMi0wMSc7 CistLSBjaGFuZ2luZyBhbiB1bnJlZmVyZW5jZWQgcGFydCBpcyBva2F5OgorVVBEQVRFIHRl bXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicg VE8gJzIwMTgtMDEtMDMnCitTRVQgaWQgPSAnWzcsN10nCitXSEVSRSBpZCA9ICdbNSw1XSc7 CistLSBjaGFuZ2luZyBqdXN0IGEgcGFydCBmYWlsczoKK1VQREFURSB0ZW1wb3JhbF9wZXIK K0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAx LTEwJworU0VUIGlkID0gJ1s3LDddJworV0hFUkUgaWQgPSAnWzUsNV0nOworU0VMRUNUICog RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScsICdbNyw3XScpIE9SREVS IEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBX SEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gdGhlbiBk ZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBzYW1lIFBLIHVwZGF0ZSBz dWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAn WzMsM10nOworVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgdmFsaWRfZnJvbSA9ICcyMDE2LTAx LTAxJywgdmFsaWRfdGlsID0gJzIwMTYtMDItMDEnCitXSEVSRSBpZCA9ICdbNSw1XScgQU5E IHZhbGlkX2Zyb20gPSAnMjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAx JzsKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgTk8gQUNUSU9OCistLQorCitU UlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRFUiBUQUJM RSB0ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3Bl cjJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQUREIENPTlNU UkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04gS0VZIChwYXJlbnRfaWQs IFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjsKKy0tIGEgUEsg ZGVsZXRlIHRoYXQgc3VjY2VlZHMgYmVjYXVzZSB0aGUgbnVtZXJpYyBpZCBpc24ndCByZWZl cmVuY2VkOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XSc7CistLSBhIFBL IGRlbGV0ZSB0aGF0IHN1Y2NlZWRzIGV2ZW4gdGhvdWdoIHRoZSBudW1lcmljIGlkIGlzIHJl ZmVyZW5jZWQgYmVjYXVzZSB0aGUgcmFuZ2UgaXNuJ3Q6CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUworICAoJ1s1LDVdJywg JzIwMTgtMDEtMDEnLCAnMjAxOC0wMi0wMScpLAorICAoJ1s1LDVdJywgJzIwMTgtMDItMDEn LCAnMjAxOC0wMy0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMywzXScsICcy MDE4LTAxLTA1JywgJzIwMTgtMDEtMTAnLCAnWzUsNV0nKTsKK0RFTEVURSBGUk9NIHRlbXBv cmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAnMjAxOC0wMi0w MScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAzLTAxJzsKKy0tIGEgUEsgZGVsZXRlIHRoYXQg ZmFpbHMgYmVjYXVzZSBib3RoIGFyZSByZWZlcmVuY2VkOgorREVMRVRFIEZST00gdGVtcG9y YWxfcGVyIFdIRVJFIGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAx JyBBTkQgdmFsaWRfdGlsID0gJzIwMTgtMDItMDEnOworLS0gZGVsZXRpbmcgYW4gdW5yZWZl cmVuY2VkIHBhcnQgaXMgb2theToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBP UlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOC0wMS0wMicgVE8gJzIwMTgtMDEtMDMnCitX SEVSRSBpZCA9ICdbNSw1XSc7CistLSBkZWxldGluZyBqdXN0IGEgcGFydCBmYWlsczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlcgorRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAn MjAxOC0wMS0wNScgVE8gJzIwMTgtMDEtMTAnCitXSEVSRSBpZCA9ICdbNSw1XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCBpbiAoJ1s1LDVdJywgJ1s3LDddJykg T1JERVIgQlkgaWQsIHZhbGlkX2F0OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIy cGVyIFdIRVJFIGlkIGluICgnWzMsM10nKSBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSB0 aGVuIGRlbGV0ZSB0aGUgb2JqZWN0aW5nIEZLIHJlY29yZCBhbmQgdGhlIHNhbWUgUEsgZGVs ZXRlIHN1Y2NlZWRzOgorREVMRVRFIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBp ZCA9ICdbMywzXSc7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUs NV0nIEFORCB2YWxpZF9mcm9tID0gJzIwMTgtMDEtMDEnIEFORCB2YWxpZF90aWwgPSAnMjAx OC0wMi0wMSc7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIFJFU1RSSUNUCist LQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7CitBTFRF UiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFs X2ZrX3BlcjJwZXJfZms7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJQURE IENPTlNUUkFJTlQgdGVtcG9yYWxfZmtfcGVyMnBlcl9maworCUZPUkVJR04gS0VZIChwYXJl bnRfaWQsIFBFUklPRCB2YWxpZF9hdCkKKwlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorCU9O IERFTEVURSBSRVNUUklDVDsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzUsNV0nLCAnMjAxOC0wMS0wMScsICcyMDE4 LTAyLTAxJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0n OworLS0gYSBQSyBkZWxldGUgdGhhdCBzdWNjZWVkcyBldmVuIHRob3VnaCB0aGUgbnVtZXJp YyBpZCBpcyByZWZlcmVuY2VkIGJlY2F1c2UgdGhlIHJhbmdlIGlzbid0OgorSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMKKyAg KCdbNSw1XScsICcyMDE4LTAxLTAxJywgJzIwMTgtMDItMDEnKSwKKyAgKCdbNSw1XScsICcy MDE4LTAyLTAxJywgJzIwMTgtMDMtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3Bl cjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgn WzMsM10nLCAnMjAxOC0wMS0wNScsICcyMDE4LTAxLTEwJywgJ1s1LDVdJyk7CitERUxFVEUg RlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzUsNV0nIEFORCB2YWxpZF9mcm9tID0g JzIwMTgtMDItMDEnIEFORCB2YWxpZF90aWwgPSAnMjAxOC0wMy0wMSc7CistLSBhIFBLIGRl bGV0ZSB0aGF0IGZhaWxzIGJlY2F1c2UgYm90aCBhcmUgcmVmZXJlbmNlZDoKK0RFTEVURSBG Uk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbNSw1XScgQU5EIHZhbGlkX2Zyb20gPSAn MjAxOC0wMS0wMScgQU5EIHZhbGlkX3RpbCA9ICcyMDE4LTAyLTAxJzsKKy0tIGRlbGV0aW5n IGFuIHVucmVmZXJlbmNlZCBwYXJ0IGlzIG9rYXk6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9w ZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTgtMDEtMDInIFRPICcyMDE4 LTAxLTAzJworV0hFUkUgaWQgPSAnWzUsNV0nOworLS0gZGVsZXRpbmcganVzdCBhIHBhcnQg ZmFpbHM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIKK0ZPUiBQT1JUSU9OIE9GIHZhbGlk X2F0IEZST00gJzIwMTgtMDEtMDUnIFRPICcyMDE4LTAxLTEwJworV0hFUkUgaWQgPSAnWzUs NV0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9wZXIgV0hFUkUgaWQgaW4gKCdbNSw1XScs ICdbNyw3XScpIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKK1NFTEVDVCAqIEZST00gdGVtcG9y YWxfZmtfcGVyMnBlciBXSEVSRSBpZCBpbiAoJ1szLDNdJykgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gdGhlbiBkZWxldGUgdGhlIG9iamVjdGluZyBGSyByZWNvcmQgYW5kIHRoZSBz YW1lIFBLIGRlbGV0ZSBzdWNjZWVkczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgV0hFUkUgaWQgPSAnWzMsM10nOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJF IGlkID0gJ1s1LDVdJyBBTkQgdmFsaWRfZnJvbSA9ICcyMDE4LTAxLTAxJyBBTkQgdmFsaWRf dGlsID0gJzIwMTgtMDItMDEnOworCistLQorLS0gcGVyMnBlciB0ZXN0IE9OIFVQREFURS9E RUxFVEUgb3B0aW9ucworLS0KKy0tIFRPQzoKKy0tIHBhcmVudCB1cGRhdGVzIENBU0NBREUK Ky0tIHBhcmVudCBkZWxldGVzIENBU0NBREUKKy0tIHBhcmVudCB1cGRhdGVzIFNFVCBOVUxM CistLSBwYXJlbnQgZGVsZXRlcyBTRVQgTlVMTAorLS0gcGFyZW50IHVwZGF0ZXMgU0VUIERF RkFVTFQKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBERUZBVUxUCistLSBwYXJlbnQgdXBkYXRl cyBDQVNDQURFICh0d28gc2NhbGFyIGNvbHMpCistLSBwYXJlbnQgZGVsZXRlcyBDQVNDQURF ICh0d28gc2NhbGFyIGNvbHMpCistLSBwYXJlbnQgdXBkYXRlcyBTRVQgTlVMTCAodHdvIHNj YWxhciBjb2xzKQorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29s cykKKy0tIHBhcmVudCBkZWxldGVzIFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBO VUxMIHN1YnNldCkKKy0tIHBhcmVudCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFy IGNvbHMpCistLSBwYXJlbnQgZGVsZXRlcyBTRVQgREVGQVVMVCAodHdvIHNjYWxhciBjb2xz KQorLS0gcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQgKHR3byBzY2FsYXIgY29scywgU0VU IERFRkFVTFQgc3Vic2V0KQorCistLQorLS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBDQVND QURFCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3BlcjJwZXI7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwp IFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJU IElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwg cGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19wZXIycGVyCisJRFJP UCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkLCBQRVJJ T0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyCisJCU9OIERFTEVURSBD QVNDQURFIE9OIFVQREFURSBDQVNDQURFOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6 CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIw MTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRl OgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10nIFdIRVJFIGlkID0gJ1s2 LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdb MTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVm ZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRf dGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s5 LDldJyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6 ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdb MjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksgcGFy ZW50IGRlbGV0ZXMgQ0FTQ0FERQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyLCB0ZW1w b3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9m cm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGgg c2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRf YXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZd JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVM RVRFIEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZS T00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZ IGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxV RVMgKCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0n KTsKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9h dDsKKworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgU0VUIE5VTEwKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRP IHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYs Nl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3Jh bF9ma19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZB TFVFUyAoJ1sxMDAsMTAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzYsNl0n KTsKK0FMVEVSIFRBQkxFIHRlbXBvcmFsX2ZrX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQg dGVtcG9yYWxfZmtfcGVyMnBlcl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19w ZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQsIFBFUklPRCB2YWxpZF9hdCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIKKwkJT04gREVMRVRFIFNFVCBOVUxMIE9OIFVQ REFURSBTRVQgTlVMTDsKKy0tIGxlZnRvdmVycyBvbiBib3RoIHNpZGVzOgorVVBEQVRFIHRl bXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBU TyAnMjAyMC0wMS0wMScgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0 ZW1wb3JhbF9wZXIgU0VUIGlkID0gJ1s3LDddJyBXSEVSRSBpZCA9ICdbNiw2XSc7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93 czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVF UyAoJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50 X2lkKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywg J1s4LDhdJyk7CitVUERBVEUgdGVtcG9yYWxfcGVyIFNFVCBpZCA9ICdbOSw5XScgV0hFUkUg aWQgPSAnWzgsOF0nIEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxF Q1QgKiBGUk9NIHRlbXBvcmFsX2ZrX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVz IFNFVCBOVUxMCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIsIHRlbXBvcmFsX2ZrX3Bl cjJwZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcy MDIxLTAxLTAxJywgJ1s2LDZdJyk7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RF TEVURSBGUk9NIHRlbXBvcmFsX3BlciBGT1IgUE9SVElPTiBPRiB2YWxpZF9hdCBGUk9NICcy MDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNU ICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JE RVIgQlkgaWQsIHZhbGlkX2F0OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0 ZW1wb3JhbF9wZXIgV0hFUkUgaWQgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3Jh bF9ma19wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlk X2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0 ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxf cGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDIw LTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzIw MCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScpOworREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4g JzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9ma19wZXIycGVy IFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworCistLQor LS0gdGVzdCBGSyBwYXJlbnQgdXBkYXRlcyBTRVQgREVGQVVMVAorLS0KKworVFJVTkNBVEUg dGVtcG9yYWxfcGVyLCB0ZW1wb3JhbF9ma19wZXIycGVyOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywg bnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s2LDZdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0w MScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmtfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkKSBWQUxVRVMgKCdbMTAwLDEwMF0nLCAnMjAxOC0wMS0w MScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9ma19w ZXIycGVyCisgIEFMVEVSIENPTFVNTiBwYXJlbnRfaWQgU0VUIERFRkFVTFQgJ1stMSwtMV0n LAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9ma19wZXIycGVyX2ZrLAorCUFERCBDT05T VFJBSU5UIHRlbXBvcmFsX2ZrX3BlcjJwZXJfZmsKKwkJRk9SRUlHTiBLRVkgKHBhcmVudF9p ZCwgUEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcgorCQlPTiBE RUxFVEUgU0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyIEZPUiBQT1JUSU9OIE9GIHZh bGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQgPSAnWzcs N10nIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVy MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IG5vbi1GUE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlciBTRVQgaWQgPSAnWzcsN10n IFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBl ciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZL IGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVy IChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICcyMDE4LTAx LTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlciAoaWQsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcy MDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9ma19wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcy MDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9w ZXIgU0VUIGlkID0gJ1s5LDldJyBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBl ciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0K Ky0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgU0VUIERFRkFVTFQKKy0tCisKK1RSVU5DQVRF IHRlbXBvcmFsX3BlciwgdGVtcG9yYWxfZmtfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScs IG51bGwsIG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEt MDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwsIHBhcmVudF9pZCkgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgtMDEt MDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScpOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lk ZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQg RlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAtMDEtMDEnIFdIRVJFIGlkID0gJ1s2LDZdJzsK K1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEw MF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorREVMRVRF IEZST00gdGVtcG9yYWxfcGVyIFdIRVJFIGlkID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00g dGVtcG9yYWxfZmtfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMg KCdbOCw4XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRl bXBvcmFsX3BlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0n LCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9m a19wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQpIFZBTFVF UyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgsOF0nKTsK K0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlciBXSEVSRSBpZCA9ICdbOCw4XScgQU5EIHZhbGlk X2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmtf cGVyMnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsK KworLS0KKy0tIHRlc3QgRksgcGFyZW50IHVwZGF0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBj b2xzKQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJw ZXI7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwg dmFsaWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIw MjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFs aWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdb MTAwLDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZd Jyk7CitBTFRFUiBUQUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorCURST1AgQ09OU1RSQUlO VCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcGVyMnBlcl9maworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwg UEVSSU9EIHZhbGlkX2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKwkJT04gREVM RVRFIENBU0NBREUgT04gVVBEQVRFIENBU0NBREU7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBz aWRlczoKK1VQREFURSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZS T00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDddJyBXSEVS RSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBX SEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1G UE8gdXBkYXRlOgorVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbNyw3XScgV0hF UkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBh Y3Jvc3MgdHdvIHJlZmVyZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIg KGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4 LDhdJywgJzIwMTgtMDEtMDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9y YWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgs OF0nLCAnWzgsOF0nLCAnMjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5U TyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFy ZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEn LCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3Bl cjIgU0VUIGlkMSA9ICdbOSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQg QD4gJzIwMTktMDEtMDEnOjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVy MnBlciBXSEVSRSBpZCA9ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKwor LS0KKy0tIHRlc3QgRksgcGFyZW50IGRlbGV0ZXMgQ0FTQ0FERSAodHdvIHNjYWxhciBjb2xz KQorLS0KKworVFJVTkNBVEUgdGVtcG9yYWxfcGVyMiwgdGVtcG9yYWxfZmsyX3BlcjJwZXI7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbNiw2XScsICdbNiw2XScsICcyMDE4LTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMTAw LDEwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s2LDZdJywgJ1s2LDZdJyk7 CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3Bl cjIgRk9SIFBPUlRJT04gT0YgdmFsaWRfYXQgRlJPTSAnMjAxOS0wMS0wMScgVE8gJzIwMjAt MDEtMDEnIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2Zr Ml9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0 OworLS0gbm9uLUZQTyBkZWxldGU6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJF IGlkMSA9ICdbNiw2XSc7CitTRUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdI RVJFIGlkID0gJ1sxMDAsMTAwXScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNy b3NzIHR3byByZWZlcmVuY2VkIHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChp ZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4 XScsICcyMDE4LTAxLTAxJywgJzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFs X3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhd JywgJ1s4LDhdJywgJzIwMjAtMDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8g dGVtcG9yYWxfZmsyX3BlcjJwZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVu dF9pZDEsIHBhcmVudF9pZDIpIFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywg JzIwMjEtMDEtMDEnLCAnWzgsOF0nLCAnWzgsOF0nKTsKK0RFTEVURSBGUk9NIHRlbXBvcmFs X3BlcjIgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksg cGFyZW50IHVwZGF0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworQUxURVIgVEFCTEUg dGVtcG9yYWxfZmsyX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Bl cjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwkJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisJCU9OIERFTEVURSBTRVQgTlVMTCBPTiBV UERBVEUgU0VUIE5VTEw7CistLSBsZWZ0b3ZlcnMgb24gYm90aCBzaWRlczoKK1VQREFURSB0 ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEn IFRPICcyMDIwLTAxLTAxJyBTRVQgaWQxID0gJ1s3LDddJyBXSEVSRSBpZDEgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gdXBkYXRlOgorVVBE QVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZd JzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEw MCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVy ZW5jZWQgcm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEt MDEnLCAnMjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBp ZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAn MjAyMC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJf cGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50 X2lkMikgVkFMVUVTICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScs ICdbOCw4XScsICdbOCw4XScpOworVVBEQVRFIHRlbXBvcmFsX3BlcjIgU0VUIGlkMSA9ICdb OSw5XScgV0hFUkUgaWQxID0gJ1s4LDhdJyBBTkQgdmFsaWRfYXQgQD4gJzIwMTktMDEtMDEn OjpkYXRlOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9 ICdbMjAwLDIwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKworLS0KKy0tIHRlc3QgRksg cGFyZW50IGRlbGV0ZXMgU0VUIE5VTEwgKHR3byBzY2FsYXIgY29scykKKy0tCisKK1RSVU5D QVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElOVE8g dGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVT ICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNF UlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIwMTgt MDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0gbGVmdG92ZXJz IG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9O IE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBp ZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVS RSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8g ZGVsZXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0n OworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAw LDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJl bmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlk X2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0w MScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlk MiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcy MDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9w ZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRf aWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywg J1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlk MSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVD VCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBP UkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCBkZWxldGVz IFNFVCBOVUxMICh0d28gc2NhbGFyIGNvbHMsIFNFVCBOVUxMIHN1YnNldCkKKy0tCisKK1RS VU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIycGVyOworSU5TRVJUIElO VE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFM VUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJyk7CitJ TlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBdJywgJzIw MTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0gZmFpbHMg YmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxURVIgVEFCTEUg dGVtcG9yYWxfZmsyX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3Bl cjJwZXJfZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwkJ Rk9SRUlHTiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkK KwkJUkVGRVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisJCU9OIERFTEVURSBTRVQgTlVMTCAodmFs aWRfYXQpIE9OIFVQREFURSBTRVQgTlVMTDsKKy0tIG9rOgorQUxURVIgVEFCTEUgdGVtcG9y YWxfZmsyX3BlcjJwZXIKKwlEUk9QIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJf ZmssCisJQUREIENPTlNUUkFJTlQgdGVtcG9yYWxfZmsyX3BlcjJwZXJfZmsKKwkJRk9SRUlH TiBLRVkgKHBhcmVudF9pZDEsIHBhcmVudF9pZDIsIFBFUklPRCB2YWxpZF9hdCkKKwkJUkVG RVJFTkNFUyB0ZW1wb3JhbF9wZXIyCisJCU9OIERFTEVURSBTRVQgTlVMTCAocGFyZW50X2lk MSkgT04gVVBEQVRFIFNFVCBOVUxMOworLS0gbGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitE RUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZPUiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00g JzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAxJyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VM RUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0n IE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIG5vbi1GUE8gZGVsZXRlOgorREVMRVRFIEZS T00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0 ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlk LCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJU IElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkg VkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7 CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFs aWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEt MDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRf ZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQxLCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAw LDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7 CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZh bGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxf ZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRf YXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVudCB1cGRhdGVzIFNFVCBERUZBVUxUICh0d28g c2NhbGFyIGNvbHMpCistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9m azJfcGVyMnBlcjsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxp ZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGws IG51bGwpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScs ICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzEwMCwxMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdb Niw2XScpOworQUxURVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgQUxURVIgQ09M VU1OIHBhcmVudF9pZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorICBBTFRFUiBDT0xVTU4g cGFyZW50X2lkMiBTRVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRl bXBvcmFsX2ZrMl9wZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9w ZXIycGVyX2ZrCisJCUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJ T0QgdmFsaWRfYXQpCisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorCQlPTiBERUxFVEUg U0VUIERFRkFVTFQgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gbGVmdG92ZXJzIG9uIGJv dGggc2lkZXM6CitVUERBVEUgdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2YWxpZF9h dCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgU0VUIGlkMSA9ICdbNyw3XScs IGlkMiA9ICdbNyw3XScgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVt cG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwg dmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0ZToKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNF VCBpZDEgPSAnWzcsN10nLCBpZDIgPSAnWzcsN10nIFdIRVJFIGlkMSA9ICdbNiw2XSc7CitT RUxFQ1QgKiBGUk9NIHRlbXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1sxMDAsMTAw XScgT1JERVIgQlkgaWQsIHZhbGlkX2F0OworLS0gRksgYWNyb3NzIHR3byByZWZlcmVuY2Vk IHJvd3M6CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEsIGlkMiwgdmFsaWRfZnJv bSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdbOCw4XScsICcyMDE4LTAxLTAxJywg JzIwMjAtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2 YWxpZF9mcm9tLCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMjAt MDEtMDEnLCAnMjAyMS0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfZmsyX3BlcjJw ZXIgKGlkLCB2YWxpZF9mcm9tLCB2YWxpZF90aWwsIHBhcmVudF9pZDEsIHBhcmVudF9pZDIp IFZBTFVFUyAoJ1syMDAsMjAwXScsICcyMDE4LTAxLTAxJywgJzIwMjEtMDEtMDEnLCAnWzgs OF0nLCAnWzgsOF0nKTsKK1VQREFURSB0ZW1wb3JhbF9wZXIyIFNFVCBpZDEgPSAnWzksOV0n LCBpZDIgPSAnWzksOV0nIFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcy MDE5LTAxLTAxJzo6ZGF0ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIg V0hFUkUgaWQgPSAnWzIwMCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCist LSB0ZXN0IEZLIHBhcmVudCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMp CistLQorCitUUlVOQ0FURSB0ZW1wb3JhbF9wZXIyLCB0ZW1wb3JhbF9mazJfcGVyMnBlcjsK K0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9tLCB2YWxp ZF90aWwpIFZBTFVFUyAoJ1stMSwtMV0nLCAnWy0xLC0xXScsIG51bGwsIG51bGwpOworSU5T RVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3Rp bCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAxLTAx Jyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwxMDBd JywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOworLS0g bGVmdG92ZXJzIG9uIGJvdGggc2lkZXM6CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIyIEZP UiBQT1JUSU9OIE9GIHZhbGlkX2F0IEZST00gJzIwMTktMDEtMDEnIFRPICcyMDIwLTAxLTAx JyBXSEVSRSBpZDEgPSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVy MnBlciBXSEVSRSBpZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0t IG5vbi1GUE8gdXBkYXRlOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEg PSAnWzYsNl0nOworU0VMRUNUICogRlJPTSB0ZW1wb3JhbF9mazJfcGVyMnBlciBXSEVSRSBp ZCA9ICdbMTAwLDEwMF0nIE9SREVSIEJZIGlkLCB2YWxpZF9hdDsKKy0tIEZLIGFjcm9zcyB0 d28gcmVmZXJlbmNlZCByb3dzOgorSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBp ZDIsIHZhbGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAn MjAxOC0wMS0wMScsICcyMDIwLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIy IChpZDEsIGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbOCw4XScsICdb OCw4XScsICcyMDIwLTAxLTAxJywgJzIwMjEtMDEtMDEnKTsKK0lOU0VSVCBJTlRPIHRlbXBv cmFsX2ZrMl9wZXIycGVyIChpZCwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsLCBwYXJlbnRfaWQx LCBwYXJlbnRfaWQyKSBWQUxVRVMgKCdbMjAwLDIwMF0nLCAnMjAxOC0wMS0wMScsICcyMDIx LTAxLTAxJywgJ1s4LDhdJywgJ1s4LDhdJyk7CitERUxFVEUgRlJPTSB0ZW1wb3JhbF9wZXIy IFdIRVJFIGlkMSA9ICdbOCw4XScgQU5EIHZhbGlkX2F0IEA+ICcyMDE5LTAxLTAxJzo6ZGF0 ZTsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzIw MCwyMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CisKKy0tCistLSB0ZXN0IEZLIHBhcmVu dCBkZWxldGVzIFNFVCBERUZBVUxUICh0d28gc2NhbGFyIGNvbHMsIFNFVCBERUZBVUxUIHN1 YnNldCkKKy0tCisKK1RSVU5DQVRFIHRlbXBvcmFsX3BlcjIsIHRlbXBvcmFsX2ZrMl9wZXIy cGVyOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20s IHZhbGlkX3RpbCkgVkFMVUVTICgnWy0xLC0xXScsICdbNiw2XScsIG51bGwsIG51bGwpOwor SU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZhbGlkX2Zyb20sIHZhbGlk X3RpbCkgVkFMVUVTICgnWzYsNl0nLCAnWzYsNl0nLCAnMjAxOC0wMS0wMScsICcyMDIxLTAx LTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQsIHZhbGlkX2Zy b20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVTICgnWzEwMCwx MDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbNiw2XScsICdbNiw2XScpOwor LS0gZmFpbHMgYmVjYXVzZSB5b3UgY2FuJ3Qgc2V0IHRoZSBQRVJJT0QgY29sdW1uOgorQUxU RVIgVEFCTEUgdGVtcG9yYWxfZmsyX3BlcjJwZXIKKyAgQUxURVIgQ09MVU1OIHBhcmVudF9p ZDEgU0VUIERFRkFVTFQgJ1stMSwtMV0nLAorCURST1AgQ09OU1RSQUlOVCB0ZW1wb3JhbF9m azJfcGVyMnBlcl9maywKKwlBREQgQ09OU1RSQUlOVCB0ZW1wb3JhbF9mazJfcGVyMnBlcl9m aworCQlGT1JFSUdOIEtFWSAocGFyZW50X2lkMSwgcGFyZW50X2lkMiwgUEVSSU9EIHZhbGlk X2F0KQorCQlSRUZFUkVOQ0VTIHRlbXBvcmFsX3BlcjIKKwkJT04gREVMRVRFIFNFVCBERUZB VUxUICh2YWxpZF9hdCkgT04gVVBEQVRFIFNFVCBERUZBVUxUOworLS0gb2s6CitBTFRFUiBU QUJMRSB0ZW1wb3JhbF9mazJfcGVyMnBlcgorICBBTFRFUiBDT0xVTU4gcGFyZW50X2lkMSBT RVQgREVGQVVMVCAnWy0xLC0xXScsCisJRFJPUCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9w ZXIycGVyX2ZrLAorCUFERCBDT05TVFJBSU5UIHRlbXBvcmFsX2ZrMl9wZXIycGVyX2ZrCisJ CUZPUkVJR04gS0VZIChwYXJlbnRfaWQxLCBwYXJlbnRfaWQyLCBQRVJJT0QgdmFsaWRfYXQp CisJCVJFRkVSRU5DRVMgdGVtcG9yYWxfcGVyMgorCQlPTiBERUxFVEUgU0VUIERFRkFVTFQg KHBhcmVudF9pZDEpIE9OIFVQREFURSBTRVQgREVGQVVMVDsKKy0tIGxlZnRvdmVycyBvbiBi b3RoIHNpZGVzOgorREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBGT1IgUE9SVElPTiBPRiB2 YWxpZF9hdCBGUk9NICcyMDE5LTAxLTAxJyBUTyAnMjAyMC0wMS0wMScgV0hFUkUgaWQxID0g J1s2LDZdJzsKK1NFTEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQg PSAnWzEwMCwxMDBdJyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBub24tRlBPIHVwZGF0 ZToKK0RFTEVURSBGUk9NIHRlbXBvcmFsX3BlcjIgV0hFUkUgaWQxID0gJ1s2LDZdJzsKK1NF TEVDVCAqIEZST00gdGVtcG9yYWxfZmsyX3BlcjJwZXIgV0hFUkUgaWQgPSAnWzEwMCwxMDBd JyBPUkRFUiBCWSBpZCwgdmFsaWRfYXQ7CistLSBGSyBhY3Jvc3MgdHdvIHJlZmVyZW5jZWQg cm93czoKK0lOU0VSVCBJTlRPIHRlbXBvcmFsX3BlcjIgKGlkMSwgaWQyLCB2YWxpZF9mcm9t LCB2YWxpZF90aWwpIFZBTFVFUyAoJ1s4LDhdJywgJ1s4LDhdJywgJzIwMTgtMDEtMDEnLCAn MjAyMC0wMS0wMScpOworSU5TRVJUIElOVE8gdGVtcG9yYWxfcGVyMiAoaWQxLCBpZDIsIHZh bGlkX2Zyb20sIHZhbGlkX3RpbCkgVkFMVUVTICgnWzgsOF0nLCAnWzgsOF0nLCAnMjAyMC0w MS0wMScsICcyMDIxLTAxLTAxJyk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9wZXIyIChpZDEs IGlkMiwgdmFsaWRfZnJvbSwgdmFsaWRfdGlsKSBWQUxVRVMgKCdbLTEsLTFdJywgJ1s4LDhd JywgbnVsbCwgbnVsbCk7CitJTlNFUlQgSU5UTyB0ZW1wb3JhbF9mazJfcGVyMnBlciAoaWQs IHZhbGlkX2Zyb20sIHZhbGlkX3RpbCwgcGFyZW50X2lkMSwgcGFyZW50X2lkMikgVkFMVUVT ICgnWzIwMCwyMDBdJywgJzIwMTgtMDEtMDEnLCAnMjAyMS0wMS0wMScsICdbOCw4XScsICdb OCw4XScpOworREVMRVRFIEZST00gdGVtcG9yYWxfcGVyMiBXSEVSRSBpZDEgPSAnWzgsOF0n IEFORCB2YWxpZF9hdCBAPiAnMjAxOS0wMS0wMSc6OmRhdGU7CitTRUxFQ1QgKiBGUk9NIHRl bXBvcmFsX2ZrMl9wZXIycGVyIFdIRVJFIGlkID0gJ1syMDAsMjAwXScgT1JERVIgQlkgaWQs IHZhbGlkX2F0OworCiAtLSBGSyB3aXRoIGEgY3VzdG9tIHJhbmdlIHR5cGUKIAogQ1JFQVRF IFRZUEUgbXlkYXRlcmFuZ2UgQVMgcmFuZ2Uoc3VidHlwZT1kYXRlKTsKLS0gCjIuNDIuMAoK --------------rOiwMPZjbSgQ0WsI4nnNtOso--