Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wfe0u-005YcM-20 for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Jul 2026 13:33:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wfe0t-007adQ-0E for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Jul 2026 13:33:03 +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.96) (envelope-from ) id 1wfe0s-007adI-28 for pgsql-hackers@lists.postgresql.org; Fri, 03 Jul 2026 13:33:02 +0000 Received: from mail-ed1-x52f.google.com ([2a00:1450:4864:20::52f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wfe0q-00000001SiO-1vt5 for pgsql-hackers@lists.postgresql.org; Fri, 03 Jul 2026 13:33:02 +0000 Received: by mail-ed1-x52f.google.com with SMTP id 4fb4d7f45d1cf-6983ed43ca1so108137a12.2 for ; Fri, 03 Jul 2026 06:32:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783085578; x=1783690378; darn=lists.postgresql.org; h=in-reply-to:content-language:references:to:from:subject:user-agent :mime-version:date:message-id:content-type:from:to:cc:subject:date :message-id:reply-to:content-type; bh=lBW0/4iVBcHXg7MBFYboo30Wk6sq01IOnsI4gRBtEV0=; b=gR7D13Y/Jf1QgvyzhxxmcUnf1btkb6aCLBxdbVVRD7ar1pxW0H4WjL+sO1GO5kSyAo Xy7DDpAc5n4sUttLmSnuVp/NJAoQXHMkBveMvTE5tGSEeq6XVznT0HZp0AbFzb+g0xht diYU+K+8WlGDxCv9OsMvl2SHo6qJPPyaMzlQXeXkUlCIVH4m/5/iJ1w9cx0oyxopZqmG wsHr+N2YFVyGLZnl3M/v+ha9DeiNwB9Vk6rJUeJjZuX3r/FMF4ZQ+38DY4WnKuYie81H BGM8wouDjnymB4+u+vObN7dqsZ+SlZ9aTOhIDzx0fLuffci/F6TqRkzakhWqCxWFZAnP PjCw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783085578; x=1783690378; h=in-reply-to:content-language:references:to:from:subject:user-agent :mime-version:date:message-id:content-type:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=lBW0/4iVBcHXg7MBFYboo30Wk6sq01IOnsI4gRBtEV0=; b=DUAtE63hF9/SZDnoisZVzw+fOZsli7b3UNkeWgcf/8Z4lE/beuUsdMrQRP0aU83Wkm NHKG/tRUTb8GcCZrFBlCXoLs/Ti4pPt7ISSBKxVbkl8uDpIWEWO2q7SRdPSq2vyYwn58 J0nKf29SSO++dWpvU8GER0wkfiejovspWH4ebzrf8VzpDdEJeD1jE5l0cs0j9T7UOtqF XvuzZLCg3oh/lDYmHSxLhHl3iEJVahULbfyCMB31pBEA98YCmbuErVx3H1hYYvzguG0B PscR9fjUyJlZDu+Z6M0kZrFxQiVY/+Z6G83JjhKGtaLdy6JfV+NiSo/hnNiMe3eeKbHi qIYw== X-Gm-Message-State: AOJu0Yw6SP4Nzseww8aa+1sB8zmufm7dVDKswKPkCNh06AZPWX3D7w5t lfKjS2pQh0T2qS84WAaCI3iZR05bskbtzFe3FtAWj+8kk5xslnT+phQGRwzuMPUt X-Gm-Gg: AfdE7ckWAnq5vqGX4dcstTuRX4XA89G+KODa+QfeI0iqIjcFp50yxd+hX263EwhkXya /1kSAtpm+ilI2cEBqI67kLDmKo/PpBxkN5uvLvSz3WoVa67jogMWsu2RoBazhEgJyNatFyWwbYY 2k4LoWeIMVnLrlsNbjxkYL5fBV+NMfKXtTCeAh5g3EbXWatv0Gn7looDIDzMizQqqMbds/5oBF5 h84wRygU/FG16IyeXfFHMr0CaYstq9LPO4mAfXVEY900KvbTZBjV7yzSujPYrrxwJH9nsK5UNtO 4J3ncrkD0ydon2h/YRKa7PBEhgLe+BVFpsa8IN++yVMFQ5glw+DCx3vk/XgNFT5ujyB6sN4d9Rp ztf09jfOzr0kbDDf3Lp8igoJ1/oDYR075Sa4IGfwjJhtqoh+Yx6QlucpylR6/r3Gogzuh9DsgGU 2A+Ealk9Fyxz8dgroHwh28Zb1DR2Eno5+DJrlYl/Ru8Uhb/6Narqt1nmi+lbHHRbHIb8N2INhBN Ia0 X-Received: by 2002:a05:6402:5409:b0:698:3ce6:7679 with SMTP id 4fb4d7f45d1cf-6989f3b3dfamr2276531a12.8.1783085578444; Fri, 03 Jul 2026 06:32:58 -0700 (PDT) Received: from [10.64.144.24] ([163.116.235.144]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-698ace16548sm2394382a12.3.2026.07.03.06.32.56 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 03 Jul 2026 06:32:57 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------zqimEjz8Z0sgbfkaRlZaFS74" Message-ID: <1cd5ac7e-7dd8-4e83-84b0-19646b364513@gmail.com> Date: Fri, 3 Jul 2026 15:32:56 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: pg_plan_advice: add NO_ scan and join method tags From: Florin Irion To: pgsql-hackers@lists.postgresql.org References: <123bbb65-ae76-4112-b33d-864aca745b7b@gmail.com> Content-Language: en-US In-Reply-To: <123bbb65-ae76-4112-b33d-864aca745b7b@gmail.com> 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. --------------zqimEjz8Z0sgbfkaRlZaFS74 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello, Adding v2 as it v1 doesn't apply anymore. Cheers, Florin www.enterprisedb.com --------------zqimEjz8Z0sgbfkaRlZaFS74 Content-Type: text/plain; charset=UTF-8; name="v2-0001-pg_plan_advice-Add-NO_SCAN-and-NO_JOIN_METHOD-tag.patch" Content-Disposition: attachment; filename*0="v2-0001-pg_plan_advice-Add-NO_SCAN-and-NO_JOIN_METHOD-tag.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxNGZhMzVmMjMzNmE2ZDI5NjYwM2EzYTVhZjJiMGIyMDVhZjUzMmQ2IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBGbG9yaW4gSXJpb24gPGZsb3Jpbi5pcmlvbkBlbnRl cnByaXNlZGIuY29tPgpEYXRlOiBUaHUsIDE4IEp1biAyMDI2IDE0OjI4OjUwICswMjAwClN1 YmplY3Q6IFtQQVRDSCB2Ml0gcGdfcGxhbl9hZHZpY2U6IEFkZCBOT19TQ0FOIGFuZCBOT19K T0lOX01FVEhPRCB0YWdzCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTogdGV4dC9w bGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0CgpB ZGQgTk9fU0VRX1NDQU4sIE5PX0lOREVYX1NDQU4sIE5PX0lOREVYX09OTFlfU0NBTiwKTk9f QklUTUFQX0hFQVBfU0NBTiwgYW5kIE5PX1RJRF9TQ0FOIGFzIG5lZ2F0aXZlIHNjYW4tbWV0 aG9kCmRpcmVjdGl2ZXM7IGFuZCBOT19IQVNIX0pPSU4sIE5PX05FU1RFRF9MT09QIChwbHVz IF9QTEFJTiwKX01FTU9JWkUsIF9NQVRFUklBTElaRSB2YXJpYW50cyksIGFuZCBOT19NRVJH RV9KT0lOIChwbHVzIF9QTEFJTiwKX01BVEVSSUFMSVpFIHZhcmlhbnRzKSBhcyBuZWdhdGl2 ZSBqb2luLW1ldGhvZCBkaXJlY3RpdmVzLgoKRWFjaCBOT18gdGFnIGlzIHRoZSBsb2dpY2Fs IGNvbXBsZW1lbnQgb2YgaXRzIHBvc2l0aXZlIGNvdW50ZXJwYXJ0LgpTY2FuIE5PXyB0YWdz IHVzZSBzaW1wbGVfdGFyZ2V0X2xpc3QgKHN1Ymxpc3RzIGludmFsaWQpOyBqb2luIE5PXwp0 YWdzIHVzZSBnZW5lcmljX3RhcmdldF9saXN0IChzdWJsaXN0cyBhbGxvd2VkKS4gQmVjYXVz ZSBvZiB0aGlzLApib3RoIHRoZSBzY2FubmVyIGFuZCB0aGUgcGFyc2VyIG9ubHkgbmVlZCB0 byBoYW5kbGUgdGhlIE5PXyBzY2FuCnRhZ3MgZXhwbGljaXRseTogdGhlIHNjYW5uZXIgY2xh c3NpZmllcyB0aGVtIGFzIFRPS19UQUdfU0lNUExFIGFuZAp0aGUgcGFyc2VyIHJlc29sdmVz IHRoZWlyIG5hbWVzIGluIHRoZSBUT0tfVEFHX1NJTVBMRSBhY3Rpb24uIFRoZQpOT18gam9p biB0YWdzIGZhbGwgdGhyb3VnaCB0byB0aGUgZGVmYXVsdCBUT0tfVEFHX0dFTkVSSUMgYnJh bmNoLAp3aGVyZSB0aGUgdGFnIGlzIHJlc29sdmVkIGdlbmVyaWNhbGx5IGJ5IHBncGFfcGFy c2VfYWR2aWNlX3RhZywgc28KdGhleSBuZWVkIG5vIHNjYW5uZXIgb3IgcGFyc2VyIGNoYW5n ZS4KCkNvbmZsaWN0IGRldGVjdGlvbiBtYXJrcyBib3RoIGEgcG9zaXRpdmUgYW5kIGl0cyBO T18gY291bnRlcnBhcnQgYXMKY29uZmxpY3Rpbmcgd2hlbiB0aGV5IHRhcmdldCB0aGUgc2Ft ZSByZWxhdGlvbiBhbmQgbWV0aG9kLgoKTk9fIGpvaW4gdGFncyBjYXJyeSB0aGUgc2FtZSBq b2luLW9yZGVyIGNvbnN0cmFpbnQgYXMgdGhlaXIgcG9zaXRpdmUKY291bnRlcnBhcnRzOiBO T19IQVNIX0pPSU4oeCkgbWVhbnMgeCBtYXkgbm90IGFwcGVhciBvbiB0aGUgb3V0ZXIKKGRy aXZpbmcpIHNpZGUg4oCUIGVxdWl2YWxlbnRseSwgaXQgbWVhbnMgInVzZSBoYXNoIGpvaW4g b3IgbWVyZ2Ugam9pbgp3aXRoIHggYXMgaW5uZXIiLiBUaGUgY29uc3RyYWludCBpcyBzZW1h bnRpY2FsbHkgaW50cmluc2ljLCBub3QKaW5jaWRlbnRhbC4KLS0tCiBjb250cmliL3BnX3Bs YW5fYWR2aWNlL01ha2VmaWxlICAgICAgICAgICAgIHwgICA0ICstCiBjb250cmliL3BnX3Bs YW5fYWR2aWNlL2V4cGVjdGVkL25vX2pvaW4ub3V0IHwgMjg4ICsrKysrKysrKysrKysrKysr KysrCiBjb250cmliL3BnX3BsYW5fYWR2aWNlL2V4cGVjdGVkL25vX3NjYW4ub3V0IHwgMTk3 ICsrKysrKysrKysrKysKIGNvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdwYV9hc3QuYyAgICAg ICAgICAgfCAgNTIgKysrKwogY29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX2FzdC5oICAg ICAgICAgICB8ICAxMyArCiBjb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfcGFyc2VyLnkg ICAgICAgIHwgIDEwICsKIGNvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdwYV9wbGFubmVyLmMg ICAgICAgfCAxODQgKysrKysrKysrKystLQogY29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3Bh X3NjYW5uZXIubCAgICAgICB8ICAgNyArLQogY29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3Bh X3Ryb3ZlLmMgICAgICAgICB8ICAxMyArCiBjb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFf d2Fsa2VyLmMgICAgICAgIHwgIDcxICsrKysrCiBjb250cmliL3BnX3BsYW5fYWR2aWNlL3Nx bC9ub19qb2luLnNxbCAgICAgIHwgIDkyICsrKysrKysKIGNvbnRyaWIvcGdfcGxhbl9hZHZp Y2Uvc3FsL25vX3NjYW4uc3FsICAgICAgfCAgODggKysrKysrCiBkb2Mvc3JjL3NnbWwvcGdw bGFuYWR2aWNlLnNnbWwgICAgICAgICAgICAgIHwgMTI5ICsrKysrKysrKwogMTMgZmlsZXMg Y2hhbmdlZCwgMTEyNSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKIGNyZWF0ZSBt b2RlIDEwMDY0NCBjb250cmliL3BnX3BsYW5fYWR2aWNlL2V4cGVjdGVkL25vX2pvaW4ub3V0 CiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19wbGFuX2FkdmljZS9leHBlY3RlZC9u b19zY2FuLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IGNvbnRyaWIvcGdfcGxhbl9hZHZpY2Uv c3FsL25vX2pvaW4uc3FsCiBjcmVhdGUgbW9kZSAxMDA2NDQgY29udHJpYi9wZ19wbGFuX2Fk dmljZS9zcWwvbm9fc2Nhbi5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3BsYW5fYWR2 aWNlL01ha2VmaWxlIGIvY29udHJpYi9wZ19wbGFuX2FkdmljZS9NYWtlZmlsZQppbmRleCBj ODQ0ODQ2ZGQ1NC4uOWRiNTM1NzM5ZDAgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfcGxhbl9h ZHZpY2UvTWFrZWZpbGUKKysrIGIvY29udHJpYi9wZ19wbGFuX2FkdmljZS9NYWtlZmlsZQpA QCAtMTksOCArMTksOCBAQCBIRUFERVJTX3BnX3BsYW5fYWR2aWNlID0gcGdfcGxhbl9hZHZp Y2UuaAogCiBQR0ZJTEVERVNDID0gInBnX3BsYW5fYWR2aWNlIC0gaGVscCB0aGUgcGxhbm5l ciBnZXQgdGhlIHJpZ2h0IHBsYW4iCiAKLVJFR1JFU1MgPSBhbHRlcm5hdGl2ZXMgZ2F0aGVy IGpvaW5fb3JkZXIgam9pbl9zdHJhdGVneSBwYXJ0aXRpb253aXNlIFwKLQlwcmVwYXJlZCBz Y2FuIHNlbWlqb2luIHN5bnRheAorUkVHUkVTUyA9IGFsdGVybmF0aXZlcyBnYXRoZXIgam9p bl9vcmRlciBqb2luX3N0cmF0ZWd5IG5vX2pvaW4gbm9fc2NhbiBcCisJcGFydGl0aW9ud2lz ZSBwcmVwYXJlZCBzY2FuIHNlbWlqb2luIHN5bnRheAogCiBUQVBfVEVTVFMgPSAxCiAKZGlm ZiAtLWdpdCBhL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvbm9fam9pbi5vdXQg Yi9jb250cmliL3BnX3BsYW5fYWR2aWNlL2V4cGVjdGVkL25vX2pvaW4ub3V0Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YzNmM2ZkYjc3MgotLS0gL2Rldi9u dWxsCisrKyBiL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvbm9fam9pbi5vdXQK QEAgLTAsMCArMSwyODggQEAKK0xPQUQgJ3BnX3BsYW5fYWR2aWNlJzsKK1NFVCBtYXhfcGFy YWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMDsKK0NSRUFURSBUQUJMRSBub19qb2luX2Rp bSAoaWQgc2VyaWFsIHByaW1hcnkga2V5LCBkaW0gdGV4dCkKKwlXSVRIIChhdXRvdmFjdXVt X2VuYWJsZWQgPSBmYWxzZSk7CitJTlNFUlQgSU5UTyBub19qb2luX2RpbSAoZGltKSBTRUxF Q1QgcmFuZG9tKCk6OnRleHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDApIGc7CitWQUNV VU0gQU5BTFlaRSBub19qb2luX2RpbTsKK0NSRUFURSBUQUJMRSBub19qb2luX2ZhY3QgKAor CWlkIGludCBwcmltYXJ5IGtleSwKKwlkaW1faWQgaW50ZWdlciBub3QgbnVsbCByZWZlcmVu Y2VzIG5vX2pvaW5fZGltIChpZCkKKykgV0lUSCAoYXV0b3ZhY3V1bV9lbmFibGVkID0gZmFs c2UpOworSU5TRVJUIElOVE8gbm9fam9pbl9mYWN0CisJU0VMRUNUIGcsIChnJTMpKzEgRlJP TSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwMDApIGc7CitDUkVBVEUgSU5ERVggbm9fam9pbl9m YWN0X2RpbV9pZCBPTiBub19qb2luX2ZhY3QgKGRpbV9pZCk7CitWQUNVVU0gQU5BTFlaRSBu b19qb2luX2ZhY3Q7CistLSBCYXNlbGluZTogaGFzaCBqb2luIHdpdGggZCBvbiB0aGUgaW5u ZXIgc2lkZS4KK0VYUExBSU4gKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUICog RlJPTSBub19qb2luX2ZhY3QgZiBKT0lOIG5vX2pvaW5fZGltIGQgT04gZi5kaW1faWQgPSBk LmlkOworICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBIYXNoIEpvaW4KKyAgIEhhc2gg Q29uZDogKGYuZGltX2lkID0gZC5pZCkKKyAgIC0+ICBTZXEgU2NhbiBvbiBub19qb2luX2Zh Y3QgZgorICAgLT4gIEhhc2gKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBub19qb2luX2Rp bSBkCisgR2VuZXJhdGVkIFBsYW4gQWR2aWNlOgorICAgSk9JTl9PUkRFUihmIGQpCisgICBI QVNIX0pPSU4oZCkKKyAgIFNFUV9TQ0FOKGYgZCkKKyAgIE5PX0dBVEhFUihmIGQpCisoMTAg cm93cykKKworLS0gTk9fSEFTSF9KT0lOKGQpOiBkIHN0YXlzIGlubmVyLCBwbGFubmVyIGZh bGxzIGJhY2sgdG8gYW5vdGhlciBtZXRob2QuCitCRUdJTjsKK1NFVCBMT0NBTCBwZ19wbGFu X2FkdmljZS5hZHZpY2UgPSAnTk9fSEFTSF9KT0lOKGQpJzsKK0VYUExBSU4gKENPU1RTIE9G RiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUICogRlJPTSBub19qb2luX2ZhY3QgZiBKT0lOIG5v X2pvaW5fZGltIGQgT04gZi5kaW1faWQgPSBkLmlkOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIE5lc3RlZCBMb29wCisgICAtPiAgU2VxIFNjYW4gb24gbm9fam9pbl9mYWN0IGYKKyAg IC0+ICBNZW1vaXplCisgICAgICAgICBDYWNoZSBLZXk6IGYuZGltX2lkCisgICAgICAgICBD YWNoZSBNb2RlOiBsb2dpY2FsCisgICAgICAgICAtPiAgSW5kZXggU2NhbiB1c2luZyBub19q b2luX2RpbV9wa2V5IG9uIG5vX2pvaW5fZGltIGQKKyAgICAgICAgICAgICAgIEluZGV4IENv bmQ6IChpZCA9IGYuZGltX2lkKQorIFN1cHBsaWVkIFBsYW4gQWR2aWNlOgorICAgTk9fSEFT SF9KT0lOKGQpIC8qIG1hdGNoZWQgKi8KKyBHZW5lcmF0ZWQgUGxhbiBBZHZpY2U6CisgICBK T0lOX09SREVSKGYgZCkKKyAgIE5FU1RFRF9MT09QX01FTU9JWkUoZCkKKyAgIFNFUV9TQ0FO KGYpCisgICBJTkRFWF9TQ0FOKGQgcHVibGljLm5vX2pvaW5fZGltX3BrZXkpCisgICBOT19H QVRIRVIoZiBkKQorKDE1IHJvd3MpCisKK0NPTU1JVDsKKy0tIE5PX0hBU0hfSk9JTihmKTog dGhlIGpvaW4tb3JkZXIgY29uc3RyYWludCBmb3JjZXMgZiB0byB0aGUgaW5uZXIgc2lkZS4K K0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdOT19IQVNIX0pP SU4oZiknOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxFQ1QgKiBG Uk9NIG5vX2pvaW5fZmFjdCBmIEpPSU4gbm9fam9pbl9kaW0gZCBPTiBmLmRpbV9pZCA9IGQu aWQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTWVyZ2UgSm9pbgor ICAgTWVyZ2UgQ29uZDogKGQuaWQgPSBmLmRpbV9pZCkKKyAgIC0+ICBJbmRleCBTY2FuIHVz aW5nIG5vX2pvaW5fZGltX3BrZXkgb24gbm9fam9pbl9kaW0gZAorICAgLT4gIEluZGV4IFNj YW4gdXNpbmcgbm9fam9pbl9mYWN0X2RpbV9pZCBvbiBub19qb2luX2ZhY3QgZgorIFN1cHBs aWVkIFBsYW4gQWR2aWNlOgorICAgTk9fSEFTSF9KT0lOKGYpIC8qIG1hdGNoZWQgKi8KKyBH ZW5lcmF0ZWQgUGxhbiBBZHZpY2U6CisgICBKT0lOX09SREVSKGQgZikKKyAgIE1FUkdFX0pP SU5fUExBSU4oZikKKyAgIElOREVYX1NDQU4oZCBwdWJsaWMubm9fam9pbl9kaW1fcGtleSBm IHB1YmxpYy5ub19qb2luX2ZhY3RfZGltX2lkKQorICAgTk9fR0FUSEVSKGYgZCkKKygxMSBy b3dzKQorCitDT01NSVQ7CistLSBOT19ORVNURURfTE9PUChmKTogZiBmb3JjZWQgaW5uZXIs IGFsbCBOTCB2YXJpYW50cyBmb3JiaWRkZW4gLT4gbWVyZ2Ugam9pbi4KK0JFR0lOOworU0VU IExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdOT19ORVNURURfTE9PUChmKSc7CitF WFBMQUlOIChDT1NUUyBPRkYsIFBMQU5fQURWSUNFKQorCVNFTEVDVCAqIEZST00gbm9fam9p bl9mYWN0IGYgSk9JTiBub19qb2luX2RpbSBkIE9OIGYuZGltX2lkID0gZC5pZDsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBNZXJnZSBKb2luCisgICBNZXJnZSBD b25kOiAoZC5pZCA9IGYuZGltX2lkKQorICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbm9fam9p bl9kaW1fcGtleSBvbiBub19qb2luX2RpbSBkCisgICAtPiAgSW5kZXggU2NhbiB1c2luZyBu b19qb2luX2ZhY3RfZGltX2lkIG9uIG5vX2pvaW5fZmFjdCBmCisgU3VwcGxpZWQgUGxhbiBB ZHZpY2U6CisgICBOT19ORVNURURfTE9PUChmKSAvKiBtYXRjaGVkICovCisgR2VuZXJhdGVk IFBsYW4gQWR2aWNlOgorICAgSk9JTl9PUkRFUihkIGYpCisgICBNRVJHRV9KT0lOX1BMQUlO KGYpCisgICBJTkRFWF9TQ0FOKGQgcHVibGljLm5vX2pvaW5fZGltX3BrZXkgZiBwdWJsaWMu bm9fam9pbl9mYWN0X2RpbV9pZCkKKyAgIE5PX0dBVEhFUihmIGQpCisoMTEgcm93cykKKwor Q09NTUlUOworLS0gTk9fTUVSR0VfSk9JTihkKTogZCBhbHJlYWR5IGlubmVyLCBoYXNoIGpv aW4gc3RpbGwgYWxsb3dlZCAtPiBwbGFuIHVuY2hhbmdlZC4KK0JFR0lOOworU0VUIExPQ0FM IHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdOT19NRVJHRV9KT0lOKGQpJzsKK0VYUExBSU4g KENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUICogRlJPTSBub19qb2luX2ZhY3Qg ZiBKT0lOIG5vX2pvaW5fZGltIGQgT04gZi5kaW1faWQgPSBkLmlkOworICAgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBIYXNoIEpvaW4KKyAgIEhhc2ggQ29uZDogKGYuZGltX2lkID0g ZC5pZCkKKyAgIC0+ICBTZXEgU2NhbiBvbiBub19qb2luX2ZhY3QgZgorICAgLT4gIEhhc2gK KyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBub19qb2luX2RpbSBkCisgU3VwcGxpZWQgUGxh biBBZHZpY2U6CisgICBOT19NRVJHRV9KT0lOKGQpIC8qIG1hdGNoZWQgKi8KKyBHZW5lcmF0 ZWQgUGxhbiBBZHZpY2U6CisgICBKT0lOX09SREVSKGYgZCkKKyAgIEhBU0hfSk9JTihkKQor ICAgU0VRX1NDQU4oZiBkKQorICAgTk9fR0FUSEVSKGYgZCkKKygxMiByb3dzKQorCitDT01N SVQ7CistLSBTdGFja2luZzogTk9fSEFTSF9KT0lOKGYpICsgTk9fTkVTVEVEX0xPT1AoZikg bGVhdmVzIG9ubHkgbWVyZ2Ugam9pbi4KK0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5fYWR2 aWNlLmFkdmljZSA9ICdOT19IQVNIX0pPSU4oZikgTk9fTkVTVEVEX0xPT1AoZiknOworRVhQ TEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxFQ1QgKiBGUk9NIG5vX2pvaW5f ZmFjdCBmIEpPSU4gbm9fam9pbl9kaW0gZCBPTiBmLmRpbV9pZCA9IGQuaWQ7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTWVyZ2UgSm9pbgorICAgTWVyZ2UgQ29u ZDogKGQuaWQgPSBmLmRpbV9pZCkKKyAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIG5vX2pvaW5f ZGltX3BrZXkgb24gbm9fam9pbl9kaW0gZAorICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbm9f am9pbl9mYWN0X2RpbV9pZCBvbiBub19qb2luX2ZhY3QgZgorIFN1cHBsaWVkIFBsYW4gQWR2 aWNlOgorICAgTk9fSEFTSF9KT0lOKGYpIC8qIG1hdGNoZWQgKi8KKyAgIE5PX05FU1RFRF9M T09QKGYpIC8qIG1hdGNoZWQgKi8KKyBHZW5lcmF0ZWQgUGxhbiBBZHZpY2U6CisgICBKT0lO X09SREVSKGQgZikKKyAgIE1FUkdFX0pPSU5fUExBSU4oZikKKyAgIElOREVYX1NDQU4oZCBw dWJsaWMubm9fam9pbl9kaW1fcGtleSBmIHB1YmxpYy5ub19qb2luX2ZhY3RfZGltX2lkKQor ICAgTk9fR0FUSEVSKGYgZCkKKygxMiByb3dzKQorCitDT01NSVQ7CistLSBTcGVjaWZpYyBO T18gdmFyaWFudHMgdGFyZ2V0aW5nIGQsIGFscmVhZHkgdGhlIGlubmVyIHNpZGU6IGZvcmJp ZGRpbmcgYW55IG9uZQorLS0gTkwgb3IgbWVyZ2UgdmFyaWFudCBsZWF2ZXMgaGFzaCBqb2lu IGF2YWlsYWJsZSwgc28gdGhlIHBsYW4gaXMgdW5jaGFuZ2VkLgorQkVHSU47CitTRVQgTE9D QUwgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ05PX05FU1RFRF9MT09QX1BMQUlOKGQpJzsK K0VYUExBSU4gKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUICogRlJPTSBub19q b2luX2ZhY3QgZiBKT0lOIG5vX2pvaW5fZGltIGQgT04gZi5kaW1faWQgPSBkLmlkOworICAg ICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSGFzaCBKb2luCisgICBIYXNoIENvbmQ6 IChmLmRpbV9pZCA9IGQuaWQpCisgICAtPiAgU2VxIFNjYW4gb24gbm9fam9pbl9mYWN0IGYK KyAgIC0+ICBIYXNoCisgICAgICAgICAtPiAgU2VxIFNjYW4gb24gbm9fam9pbl9kaW0gZAor IFN1cHBsaWVkIFBsYW4gQWR2aWNlOgorICAgTk9fTkVTVEVEX0xPT1BfUExBSU4oZCkgLyog bWF0Y2hlZCAqLworIEdlbmVyYXRlZCBQbGFuIEFkdmljZToKKyAgIEpPSU5fT1JERVIoZiBk KQorICAgSEFTSF9KT0lOKGQpCisgICBTRVFfU0NBTihmIGQpCisgICBOT19HQVRIRVIoZiBk KQorKDEyIHJvd3MpCisKK1NFVCBMT0NBTCBwZ19wbGFuX2FkdmljZS5hZHZpY2UgPSAnTk9f TkVTVEVEX0xPT1BfTUVNT0laRShkKSc7CitFWFBMQUlOIChDT1NUUyBPRkYsIFBMQU5fQURW SUNFKQorCVNFTEVDVCAqIEZST00gbm9fam9pbl9mYWN0IGYgSk9JTiBub19qb2luX2RpbSBk IE9OIGYuZGltX2lkID0gZC5pZDsKKyAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyBIYXNoIEpvaW4KKyAgIEhhc2ggQ29uZDogKGYuZGltX2lkID0gZC5pZCkKKyAgIC0+ ICBTZXEgU2NhbiBvbiBub19qb2luX2ZhY3QgZgorICAgLT4gIEhhc2gKKyAgICAgICAgIC0+ ICBTZXEgU2NhbiBvbiBub19qb2luX2RpbSBkCisgU3VwcGxpZWQgUGxhbiBBZHZpY2U6Cisg ICBOT19ORVNURURfTE9PUF9NRU1PSVpFKGQpIC8qIG1hdGNoZWQgKi8KKyBHZW5lcmF0ZWQg UGxhbiBBZHZpY2U6CisgICBKT0lOX09SREVSKGYgZCkKKyAgIEhBU0hfSk9JTihkKQorICAg U0VRX1NDQU4oZiBkKQorICAgTk9fR0FUSEVSKGYgZCkKKygxMiByb3dzKQorCitTRVQgTE9D QUwgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ05PX05FU1RFRF9MT09QX01BVEVSSUFMSVpF KGQpJzsKK0VYUExBSU4gKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUICogRlJP TSBub19qb2luX2ZhY3QgZiBKT0lOIG5vX2pvaW5fZGltIGQgT04gZi5kaW1faWQgPSBkLmlk OworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSGFzaCBK b2luCisgICBIYXNoIENvbmQ6IChmLmRpbV9pZCA9IGQuaWQpCisgICAtPiAgU2VxIFNjYW4g b24gbm9fam9pbl9mYWN0IGYKKyAgIC0+ICBIYXNoCisgICAgICAgICAtPiAgU2VxIFNjYW4g b24gbm9fam9pbl9kaW0gZAorIFN1cHBsaWVkIFBsYW4gQWR2aWNlOgorICAgTk9fTkVTVEVE X0xPT1BfTUFURVJJQUxJWkUoZCkgLyogbWF0Y2hlZCAqLworIEdlbmVyYXRlZCBQbGFuIEFk dmljZToKKyAgIEpPSU5fT1JERVIoZiBkKQorICAgSEFTSF9KT0lOKGQpCisgICBTRVFfU0NB TihmIGQpCisgICBOT19HQVRIRVIoZiBkKQorKDEyIHJvd3MpCisKK1NFVCBMT0NBTCBwZ19w bGFuX2FkdmljZS5hZHZpY2UgPSAnTk9fTUVSR0VfSk9JTl9QTEFJTihkKSc7CitFWFBMQUlO IChDT1NUUyBPRkYsIFBMQU5fQURWSUNFKQorCVNFTEVDVCAqIEZST00gbm9fam9pbl9mYWN0 IGYgSk9JTiBub19qb2luX2RpbSBkIE9OIGYuZGltX2lkID0gZC5pZDsKKyAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBIYXNoIEpvaW4KKyAgIEhhc2ggQ29uZDogKGYuZGltX2lk ID0gZC5pZCkKKyAgIC0+ICBTZXEgU2NhbiBvbiBub19qb2luX2ZhY3QgZgorICAgLT4gIEhh c2gKKyAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiBub19qb2luX2RpbSBkCisgU3VwcGxpZWQg UGxhbiBBZHZpY2U6CisgICBOT19NRVJHRV9KT0lOX1BMQUlOKGQpIC8qIG1hdGNoZWQgKi8K KyBHZW5lcmF0ZWQgUGxhbiBBZHZpY2U6CisgICBKT0lOX09SREVSKGYgZCkKKyAgIEhBU0hf Sk9JTihkKQorICAgU0VRX1NDQU4oZiBkKQorICAgTk9fR0FUSEVSKGYgZCkKKygxMiByb3dz KQorCitTRVQgTE9DQUwgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ05PX01FUkdFX0pPSU5f TUFURVJJQUxJWkUoZCknOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlT RUxFQ1QgKiBGUk9NIG5vX2pvaW5fZmFjdCBmIEpPSU4gbm9fam9pbl9kaW0gZCBPTiBmLmRp bV9pZCA9IGQuaWQ7CisgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgSGFzaCBKb2luCisgICBIYXNoIENvbmQ6IChmLmRpbV9pZCA9IGQuaWQpCisgICAtPiAg U2VxIFNjYW4gb24gbm9fam9pbl9mYWN0IGYKKyAgIC0+ICBIYXNoCisgICAgICAgICAtPiAg U2VxIFNjYW4gb24gbm9fam9pbl9kaW0gZAorIFN1cHBsaWVkIFBsYW4gQWR2aWNlOgorICAg Tk9fTUVSR0VfSk9JTl9NQVRFUklBTElaRShkKSAvKiBtYXRjaGVkICovCisgR2VuZXJhdGVk IFBsYW4gQWR2aWNlOgorICAgSk9JTl9PUkRFUihmIGQpCisgICBIQVNIX0pPSU4oZCkKKyAg IFNFUV9TQ0FOKGYgZCkKKyAgIE5PX0dBVEhFUihmIGQpCisoMTIgcm93cykKKworQ09NTUlU OworLS0gQ29uZmxpY3Q6IHNhbWUgbWV0aG9kIHJlcXVpcmVkIGFuZCBmb3JiaWRkZW47IGJv dGggbWFya2VkIGNvbmZsaWN0aW5nLgorQkVHSU47CitTRVQgTE9DQUwgcGdfcGxhbl9hZHZp Y2UuYWR2aWNlID0gJ0hBU0hfSk9JTihmKSBOT19IQVNIX0pPSU4oZiknOworRVhQTEFJTiAo Q09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxFQ1QgKiBGUk9NIG5vX2pvaW5fZmFjdCBm IEpPSU4gbm9fam9pbl9kaW0gZCBPTiBmLmRpbV9pZCA9IGQuaWQ7CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTWVyZ2UgSm9pbgorICAgTWVyZ2UgQ29uZDogKGQu aWQgPSBmLmRpbV9pZCkKKyAgIC0+ICBJbmRleCBTY2FuIHVzaW5nIG5vX2pvaW5fZGltX3Br ZXkgb24gbm9fam9pbl9kaW0gZAorICAgLT4gIEluZGV4IFNjYW4gdXNpbmcgbm9fam9pbl9m YWN0X2RpbV9pZCBvbiBub19qb2luX2ZhY3QgZgorIFN1cHBsaWVkIFBsYW4gQWR2aWNlOgor ICAgSEFTSF9KT0lOKGYpIC8qIG1hdGNoZWQsIGNvbmZsaWN0aW5nLCBmYWlsZWQgKi8KKyAg IE5PX0hBU0hfSk9JTihmKSAvKiBtYXRjaGVkLCBjb25mbGljdGluZyAqLworIEdlbmVyYXRl ZCBQbGFuIEFkdmljZToKKyAgIEpPSU5fT1JERVIoZCBmKQorICAgTUVSR0VfSk9JTl9QTEFJ TihmKQorICAgSU5ERVhfU0NBTihkIHB1YmxpYy5ub19qb2luX2RpbV9wa2V5IGYgcHVibGlj Lm5vX2pvaW5fZmFjdF9kaW1faWQpCisgICBOT19HQVRIRVIoZiBkKQorKDEyIHJvd3MpCisK K0NPTU1JVDsKKy0tIE5vIGNvbmZsaWN0OiBOT19IQVNIX0pPSU4oZikgYW5kIGEgcG9zaXRp dmUgdGFnIGZvciBhIGRpZmZlcmVudCBtZXRob2QuCitCRUdJTjsKK1NFVCBMT0NBTCBwZ19w bGFuX2FkdmljZS5hZHZpY2UgPSAnTk9fSEFTSF9KT0lOKGYpIE5FU1RFRF9MT09QX1BMQUlO KGYpJzsKK0VYUExBSU4gKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUICogRlJP TSBub19qb2luX2ZhY3QgZiBKT0lOIG5vX2pvaW5fZGltIGQgT04gZi5kaW1faWQgPSBkLmlk OworICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgTmVzdGVkIExvb3AKKyAgIC0+ICBTZXEgU2NhbiBv biBub19qb2luX2RpbSBkCisgICAtPiAgSW5kZXggU2NhbiB1c2luZyBub19qb2luX2ZhY3Rf ZGltX2lkIG9uIG5vX2pvaW5fZmFjdCBmCisgICAgICAgICBJbmRleCBDb25kOiAoZGltX2lk ID0gZC5pZCkKKyBTdXBwbGllZCBQbGFuIEFkdmljZToKKyAgIE5PX0hBU0hfSk9JTihmKSAv KiBtYXRjaGVkICovCisgICBORVNURURfTE9PUF9QTEFJTihmKSAvKiBtYXRjaGVkICovCisg R2VuZXJhdGVkIFBsYW4gQWR2aWNlOgorICAgSk9JTl9PUkRFUihkIGYpCisgICBORVNURURf TE9PUF9QTEFJTihmKQorICAgU0VRX1NDQU4oZCkKKyAgIElOREVYX1NDQU4oZiBwdWJsaWMu bm9fam9pbl9mYWN0X2RpbV9pZCkKKyAgIE5PX0dBVEhFUihmIGQpCisoMTMgcm93cykKKwor Q09NTUlUOworRFJPUCBUQUJMRSBub19qb2luX2ZhY3Q7CitEUk9QIFRBQkxFIG5vX2pvaW5f ZGltOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19wbGFuX2FkdmljZS9leHBlY3RlZC9ub19z Y2FuLm91dCBiL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvbm9fc2Nhbi5vdXQK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA4ZjJhMjFiNjUwCi0t LSAvZGV2L251bGwKKysrIGIvY29udHJpYi9wZ19wbGFuX2FkdmljZS9leHBlY3RlZC9ub19z Y2FuLm91dApAQCAtMCwwICsxLDE5NyBAQAorTE9BRCAncGdfcGxhbl9hZHZpY2UnOworU0VU IG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAwOworU0VUIHNlcV9wYWdlX2Nv c3QgPSAwLjE7CitTRVQgcmFuZG9tX3BhZ2VfY29zdCA9IDAuMTsKK1NFVCBjcHVfdHVwbGVf Y29zdCA9IDA7CitTRVQgY3B1X2luZGV4X3R1cGxlX2Nvc3QgPSAwOworQ1JFQVRFIFRBQkxF IG5vX3NjYW5fdGFibGUgKGEgaW50IHByaW1hcnkga2V5LCBiIHRleHQpCisJV0lUSCAoYXV0 b3ZhY3V1bV9lbmFibGVkID0gZmFsc2UpOworSU5TRVJUIElOVE8gbm9fc2Nhbl90YWJsZQor CVNFTEVDVCBnLCAnc29tZSB0ZXh0ICcgfHwgZyBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAx MDAwMDApIGc7CitWQUNVVU0gQU5BTFlaRSBub19zY2FuX3RhYmxlOworLS0gQmFzZWxpbmVz IHdpdGhvdXQgYWR2aWNlOiBzZXEgc2NhbiBmb3IgYSBmdWxsIHJlYWQsIGluZGV4IHNjYW4g Zm9yIGEgbG9va3VwLgorRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxF Q1QgKiBGUk9NIG5vX3NjYW5fdGFibGU7CisgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2VxIFNjYW4gb24gbm9fc2Nhbl90 YWJsZQorIEdlbmVyYXRlZCBQbGFuIEFkdmljZToKKyAgIFNFUV9TQ0FOKG5vX3NjYW5fdGFi bGUpCisgICBOT19HQVRIRVIobm9fc2Nhbl90YWJsZSkKKyg0IHJvd3MpCisKK0VYUExBSU4g KENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUICogRlJPTSBub19zY2FuX3RhYmxl IFdIRVJFIGEgPSAxOworICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIEluZGV4IFNjYW4gdXNpbmcgbm9fc2Nhbl90YWJsZV9w a2V5IG9uIG5vX3NjYW5fdGFibGUKKyAgIEluZGV4IENvbmQ6IChhID0gMSkKKyBHZW5lcmF0 ZWQgUGxhbiBBZHZpY2U6CisgICBJTkRFWF9TQ0FOKG5vX3NjYW5fdGFibGUgcHVibGljLm5v X3NjYW5fdGFibGVfcGtleSkKKyAgIE5PX0dBVEhFUihub19zY2FuX3RhYmxlKQorKDUgcm93 cykKKworLS0gTk9fU0VRX1NDQU4gd2l0aCBubyBpbmRleGFibGUgcXVhbDogbm8gYWx0ZXJu YXRpdmUsIHNvIHRoZSBhZHZpY2UgZmFpbHMuCitCRUdJTjsKK1NFVCBMT0NBTCBwZ19wbGFu X2FkdmljZS5hZHZpY2UgPSAnTk9fU0VRX1NDQU4obm9fc2Nhbl90YWJsZSknOworRVhQTEFJ TiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxFQ1QgKiBGUk9NIG5vX3NjYW5fdGFi bGU7CisgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgU2VxIFNjYW4gb24gbm9fc2Nhbl90YWJsZQorICAgRGlzYWJsZWQ6IHRydWUKKyBT dXBwbGllZCBQbGFuIEFkdmljZToKKyAgIE5PX1NFUV9TQ0FOKG5vX3NjYW5fdGFibGUpIC8q IG1hdGNoZWQsIGZhaWxlZCAqLworIEdlbmVyYXRlZCBQbGFuIEFkdmljZToKKyAgIFNFUV9T Q0FOKG5vX3NjYW5fdGFibGUpCisgICBOT19HQVRIRVIobm9fc2Nhbl90YWJsZSkKKyg3IHJv d3MpCisKK0NPTU1JVDsKKy0tIE5PX1NFUV9TQ0FOIHdpdGggYW4gaW5kZXhhYmxlIHF1YWw6 IGZhbGxzIGJhY2sgdG8gaW5kZXggc2Nhbi4KK0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5f YWR2aWNlLmFkdmljZSA9ICdOT19TRVFfU0NBTihub19zY2FuX3RhYmxlKSc7CitFWFBMQUlO IChDT1NUUyBPRkYsIFBMQU5fQURWSUNFKQorCVNFTEVDVCAqIEZST00gbm9fc2Nhbl90YWJs ZSBXSEVSRSBhID0gMTsKKyAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBJbmRleCBTY2FuIHVzaW5nIG5vX3NjYW5fdGFibGVf cGtleSBvbiBub19zY2FuX3RhYmxlCisgICBJbmRleCBDb25kOiAoYSA9IDEpCisgU3VwcGxp ZWQgUGxhbiBBZHZpY2U6CisgICBOT19TRVFfU0NBTihub19zY2FuX3RhYmxlKSAvKiBtYXRj aGVkICovCisgR2VuZXJhdGVkIFBsYW4gQWR2aWNlOgorICAgSU5ERVhfU0NBTihub19zY2Fu X3RhYmxlIHB1YmxpYy5ub19zY2FuX3RhYmxlX3BrZXkpCisgICBOT19HQVRIRVIobm9fc2Nh bl90YWJsZSkKKyg3IHJvd3MpCisKK0NPTU1JVDsKKy0tIE5PX0lOREVYX1NDQU46IGZhbGxz IGJhY2sgdG8gYml0bWFwIGhlYXAgc2Nhbi4KK0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5f YWR2aWNlLmFkdmljZSA9ICdOT19JTkRFWF9TQ0FOKG5vX3NjYW5fdGFibGUpJzsKK0VYUExB SU4gKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUICogRlJPTSBub19zY2FuX3Rh YmxlIFdIRVJFIGEgPSAxOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgQml0bWFwIEhlYXAgU2NhbiBvbiBub19zY2FuX3RhYmxlCisgICBSZWNoZWNr IENvbmQ6IChhID0gMSkKKyAgIC0+ICBCaXRtYXAgSW5kZXggU2NhbiBvbiBub19zY2FuX3Rh YmxlX3BrZXkKKyAgICAgICAgIEluZGV4IENvbmQ6IChhID0gMSkKKyBTdXBwbGllZCBQbGFu IEFkdmljZToKKyAgIE5PX0lOREVYX1NDQU4obm9fc2Nhbl90YWJsZSkgLyogbWF0Y2hlZCAq LworIEdlbmVyYXRlZCBQbGFuIEFkdmljZToKKyAgIEJJVE1BUF9IRUFQX1NDQU4obm9fc2Nh bl90YWJsZSkKKyAgIE5PX0dBVEhFUihub19zY2FuX3RhYmxlKQorKDkgcm93cykKKworQ09N TUlUOworLS0gTk9fSU5ERVhfT05MWV9TQ0FOOiBmYWxscyBiYWNrIHRvIGEgcGxhaW4gaW5k ZXggc2Nhbi4KK0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdO T19JTkRFWF9PTkxZX1NDQU4obm9fc2Nhbl90YWJsZSknOworRVhQTEFJTiAoQ09TVFMgT0ZG LCBQTEFOX0FEVklDRSkKKwlTRUxFQ1QgYSBGUk9NIG5vX3NjYW5fdGFibGUgV0hFUkUgYSA9 IDE7CisgICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgSW5kZXggU2NhbiB1c2luZyBub19zY2FuX3RhYmxlX3BrZXkgb24gbm9f c2Nhbl90YWJsZQorICAgSW5kZXggQ29uZDogKGEgPSAxKQorIFN1cHBsaWVkIFBsYW4gQWR2 aWNlOgorICAgTk9fSU5ERVhfT05MWV9TQ0FOKG5vX3NjYW5fdGFibGUpIC8qIG1hdGNoZWQg Ki8KKyBHZW5lcmF0ZWQgUGxhbiBBZHZpY2U6CisgICBJTkRFWF9TQ0FOKG5vX3NjYW5fdGFi bGUgcHVibGljLm5vX3NjYW5fdGFibGVfcGtleSkKKyAgIE5PX0dBVEhFUihub19zY2FuX3Rh YmxlKQorKDcgcm93cykKKworQ09NTUlUOworLS0gTk9fQklUTUFQX0hFQVBfU0NBTjogd2l0 aCBvbmx5IGEgQlJJTiBpbmRleCBhdmFpbGFibGUsIGZhbGxzIGJhY2sgdG8gc2VxIHNjYW4u CitDUkVBVEUgSU5ERVggbm9fc2Nhbl90YWJsZV9iIE9OIG5vX3NjYW5fdGFibGUgVVNJTkcg YnJpbiAoYik7CitWQUNVVU0gQU5BTFlaRSBub19zY2FuX3RhYmxlOworQkVHSU47CitTRVQg TE9DQUwgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ05PX0JJVE1BUF9IRUFQX1NDQU4obm9f c2Nhbl90YWJsZSknOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxF Q1QgKiBGUk9NIG5vX3NjYW5fdGFibGUgV0hFUkUgYiA+ICdzb21lIHRleHQgOCc7CisgICAg ICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgU2Vx IFNjYW4gb24gbm9fc2Nhbl90YWJsZQorICAgRmlsdGVyOiAoYiA+ICdzb21lIHRleHQgOCc6 OnRleHQpCisgU3VwcGxpZWQgUGxhbiBBZHZpY2U6CisgICBOT19CSVRNQVBfSEVBUF9TQ0FO KG5vX3NjYW5fdGFibGUpIC8qIG1hdGNoZWQgKi8KKyBHZW5lcmF0ZWQgUGxhbiBBZHZpY2U6 CisgICBTRVFfU0NBTihub19zY2FuX3RhYmxlKQorICAgTk9fR0FUSEVSKG5vX3NjYW5fdGFi bGUpCisoNyByb3dzKQorCitDT01NSVQ7CistLSBOT19USURfU0NBTjogZmFsbHMgYmFjayB0 byBzZXEgc2Nhbi4KK0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9 ICdOT19USURfU0NBTihub19zY2FuX3RhYmxlKSc7CitFWFBMQUlOIChDT1NUUyBPRkYsIFBM QU5fQURWSUNFKQorCVNFTEVDVCAqIEZST00gbm9fc2Nhbl90YWJsZSBXSEVSRSBjdGlkID0g JygwLDEpJzsKKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNlcSBT Y2FuIG9uIG5vX3NjYW5fdGFibGUKKyAgIEZpbHRlcjogKGN0aWQgPSAnKDAsMSknOjp0aWQp CisgU3VwcGxpZWQgUGxhbiBBZHZpY2U6CisgICBOT19USURfU0NBTihub19zY2FuX3RhYmxl KSAvKiBtYXRjaGVkICovCisgR2VuZXJhdGVkIFBsYW4gQWR2aWNlOgorICAgU0VRX1NDQU4o bm9fc2Nhbl90YWJsZSkKKyAgIE5PX0dBVEhFUihub19zY2FuX3RhYmxlKQorKDcgcm93cykK KworQ09NTUlUOworLS0gTXVsdGlwbGUgTk9fIHNjYW4gdGFncyBzdGFjayB3aXRob3V0IGNv bmZsaWN0LgorQkVHSU47CitTRVQgTE9DQUwgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ05P X1NFUV9TQ0FOKG5vX3NjYW5fdGFibGUpIE5PX0JJVE1BUF9IRUFQX1NDQU4obm9fc2Nhbl90 YWJsZSknOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxFQ1QgKiBG Uk9NIG5vX3NjYW5fdGFibGUgV0hFUkUgYSA9IDE7CisgICAgICAgICAgICAgICAgICAgICAg UVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgSW5kZXggU2NhbiB1c2lu ZyBub19zY2FuX3RhYmxlX3BrZXkgb24gbm9fc2Nhbl90YWJsZQorICAgSW5kZXggQ29uZDog KGEgPSAxKQorIFN1cHBsaWVkIFBsYW4gQWR2aWNlOgorICAgTk9fU0VRX1NDQU4obm9fc2Nh bl90YWJsZSkgLyogbWF0Y2hlZCAqLworICAgTk9fQklUTUFQX0hFQVBfU0NBTihub19zY2Fu X3RhYmxlKSAvKiBtYXRjaGVkICovCisgR2VuZXJhdGVkIFBsYW4gQWR2aWNlOgorICAgSU5E RVhfU0NBTihub19zY2FuX3RhYmxlIHB1YmxpYy5ub19zY2FuX3RhYmxlX3BrZXkpCisgICBO T19HQVRIRVIobm9fc2Nhbl90YWJsZSkKKyg4IHJvd3MpCisKK0NPTU1JVDsKKy0tIENvbmZs aWN0OiBzYW1lIG1ldGhvZCByZXF1aXJlZCBhbmQgZm9yYmlkZGVuOyBib3RoIGNvbmZsaWN0 aW5nLCBuZWl0aGVyIGFwcGxpZWQuCitCRUdJTjsKK1NFVCBMT0NBTCBwZ19wbGFuX2Fkdmlj ZS5hZHZpY2UgPSAnU0VRX1NDQU4obm9fc2Nhbl90YWJsZSkgTk9fU0VRX1NDQU4obm9fc2Nh bl90YWJsZSknOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxFQ1Qg KiBGUk9NIG5vX3NjYW5fdGFibGU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTZXEg U2NhbiBvbiBub19zY2FuX3RhYmxlCisgU3VwcGxpZWQgUGxhbiBBZHZpY2U6CisgICBTRVFf U0NBTihub19zY2FuX3RhYmxlKSAvKiBtYXRjaGVkLCBjb25mbGljdGluZyAqLworICAgTk9f U0VRX1NDQU4obm9fc2Nhbl90YWJsZSkgLyogbWF0Y2hlZCwgY29uZmxpY3RpbmcsIGZhaWxl ZCAqLworIEdlbmVyYXRlZCBQbGFuIEFkdmljZToKKyAgIFNFUV9TQ0FOKG5vX3NjYW5fdGFi bGUpCisgICBOT19HQVRIRVIobm9fc2Nhbl90YWJsZSkKKyg3IHJvd3MpCisKK0NPTU1JVDsK Ky0tIE5vIGNvbmZsaWN0OiBOT19TRVFfU0NBTiBhbmQgYSBwb3NpdGl2ZSBJTkRFWF9TQ0FO IGFyZSBjb21wYXRpYmxlLgorQkVHSU47CitTRVQgTE9DQUwgcGdfcGxhbl9hZHZpY2UuYWR2 aWNlID0gJ05PX1NFUV9TQ0FOKG5vX3NjYW5fdGFibGUpIElOREVYX1NDQU4obm9fc2Nhbl90 YWJsZSBub19zY2FuX3RhYmxlX3BrZXkpJzsKK0VYUExBSU4gKENPU1RTIE9GRiwgUExBTl9B RFZJQ0UpCisJU0VMRUNUICogRlJPTSBub19zY2FuX3RhYmxlIFdIRVJFIGEgPSAxOworICAg ICAgICAgICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgSW5kZXggU2NhbiB1c2luZyBub19zY2FuX3RhYmxlX3BrZXkg b24gbm9fc2Nhbl90YWJsZQorICAgSW5kZXggQ29uZDogKGEgPSAxKQorIFN1cHBsaWVkIFBs YW4gQWR2aWNlOgorICAgTk9fU0VRX1NDQU4obm9fc2Nhbl90YWJsZSkgLyogbWF0Y2hlZCAq LworICAgSU5ERVhfU0NBTihub19zY2FuX3RhYmxlIG5vX3NjYW5fdGFibGVfcGtleSkgLyog bWF0Y2hlZCAqLworIEdlbmVyYXRlZCBQbGFuIEFkdmljZToKKyAgIElOREVYX1NDQU4obm9f c2Nhbl90YWJsZSBwdWJsaWMubm9fc2Nhbl90YWJsZV9wa2V5KQorICAgTk9fR0FUSEVSKG5v X3NjYW5fdGFibGUpCisoOCByb3dzKQorCitDT01NSVQ7CistLSBTY2FuIHRhZ3MgZm9yYmlk IHN1Ymxpc3RzIChzaW1wbGVfdGFyZ2V0X2xpc3QpOiB0aGlzIGlzIGEgc3ludGF4IGVycm9y LgorU0VUIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdOT19TRVFfU0NBTigobm9fc2Nhbl90 YWJsZSBub19zY2FuX3RhYmxlKSknOworRVJST1I6ICBpbnZhbGlkIHZhbHVlIGZvciBwYXJh bWV0ZXIgInBnX3BsYW5fYWR2aWNlLmFkdmljZSI6ICJOT19TRVFfU0NBTigobm9fc2Nhbl90 YWJsZSBub19zY2FuX3RhYmxlKSkiCitERVRBSUw6ICBDb3VsZCBub3QgcGFyc2UgYWR2aWNl OiBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiKCIKK0RST1AgVEFCTEUgbm9fc2Nhbl90YWJs ZTsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdwYV9hc3QuYyBiL2Nv bnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdwYV9hc3QuYwppbmRleCAwMWRiOGQyNGNkMC4uMDIw MjViNjFkZDMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdwYV9hc3Qu YworKysgYi9jb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfYXN0LmMKQEAgLTU4LDggKzU4 LDM0IEBAIHBncGFfY3N0cmluZ19hZHZpY2VfdGFnKHBncGFfYWR2aWNlX3RhZ190eXBlIGFk dmljZV90YWcpCiAJCQlyZXR1cm4gIk5FU1RFRF9MT09QX01FTU9JWkUiOwogCQljYXNlIFBH UEFfVEFHX05FU1RFRF9MT09QX1BMQUlOOgogCQkJcmV0dXJuICJORVNURURfTE9PUF9QTEFJ TiI7CisJCWNhc2UgUEdQQV9UQUdfTk9fQklUTUFQX0hFQVBfU0NBTjoKKwkJCXJldHVybiAi Tk9fQklUTUFQX0hFQVBfU0NBTiI7CiAJCWNhc2UgUEdQQV9UQUdfTk9fR0FUSEVSOgogCQkJ cmV0dXJuICJOT19HQVRIRVIiOworCQljYXNlIFBHUEFfVEFHX05PX0hBU0hfSk9JTjoKKwkJ CXJldHVybiAiTk9fSEFTSF9KT0lOIjsKKwkJY2FzZSBQR1BBX1RBR19OT19JTkRFWF9PTkxZ X1NDQU46CisJCQlyZXR1cm4gIk5PX0lOREVYX09OTFlfU0NBTiI7CisJCWNhc2UgUEdQQV9U QUdfTk9fSU5ERVhfU0NBTjoKKwkJCXJldHVybiAiTk9fSU5ERVhfU0NBTiI7CisJCWNhc2Ug UEdQQV9UQUdfTk9fTUVSR0VfSk9JTjoKKwkJCXJldHVybiAiTk9fTUVSR0VfSk9JTiI7CisJ CWNhc2UgUEdQQV9UQUdfTk9fTUVSR0VfSk9JTl9NQVRFUklBTElaRToKKwkJCXJldHVybiAi Tk9fTUVSR0VfSk9JTl9NQVRFUklBTElaRSI7CisJCWNhc2UgUEdQQV9UQUdfTk9fTUVSR0Vf Sk9JTl9QTEFJTjoKKwkJCXJldHVybiAiTk9fTUVSR0VfSk9JTl9QTEFJTiI7CisJCWNhc2Ug UEdQQV9UQUdfTk9fTkVTVEVEX0xPT1A6CisJCQlyZXR1cm4gIk5PX05FU1RFRF9MT09QIjsK KwkJY2FzZSBQR1BBX1RBR19OT19ORVNURURfTE9PUF9NQVRFUklBTElaRToKKwkJCXJldHVy biAiTk9fTkVTVEVEX0xPT1BfTUFURVJJQUxJWkUiOworCQljYXNlIFBHUEFfVEFHX05PX05F U1RFRF9MT09QX01FTU9JWkU6CisJCQlyZXR1cm4gIk5PX05FU1RFRF9MT09QX01FTU9JWkUi OworCQljYXNlIFBHUEFfVEFHX05PX05FU1RFRF9MT09QX1BMQUlOOgorCQkJcmV0dXJuICJO T19ORVNURURfTE9PUF9QTEFJTiI7CisJCWNhc2UgUEdQQV9UQUdfTk9fU0VRX1NDQU46CisJ CQlyZXR1cm4gIk5PX1NFUV9TQ0FOIjsKKwkJY2FzZSBQR1BBX1RBR19OT19USURfU0NBTjoK KwkJCXJldHVybiAiTk9fVElEX1NDQU4iOwogCQljYXNlIFBHUEFfVEFHX1BBUlRJVElPTldJ U0U6CiAJCQlyZXR1cm4gIlBBUlRJVElPTldJU0UiOwogCQljYXNlIFBHUEFfVEFHX1NFTUlK T0lOX05PTl9VTklRVUU6CkBAIC0xMzUsOCArMTYxLDM0IEBAIHBncGFfcGFyc2VfYWR2aWNl X3RhZyhjb25zdCBjaGFyICp0YWcsIGJvb2wgKmZhaWwpCiAJCQkJcmV0dXJuIFBHUEFfVEFH X05FU1RFRF9MT09QX01FTU9JWkU7CiAJCQlpZiAoc3RyY21wKHRhZywgIm5lc3RlZF9sb29w X3BsYWluIikgPT0gMCkKIAkJCQlyZXR1cm4gUEdQQV9UQUdfTkVTVEVEX0xPT1BfUExBSU47 CisJCQlpZiAoc3RyY21wKHRhZywgIm5vX2JpdG1hcF9oZWFwX3NjYW4iKSA9PSAwKQorCQkJ CXJldHVybiBQR1BBX1RBR19OT19CSVRNQVBfSEVBUF9TQ0FOOwogCQkJaWYgKHN0cmNtcCh0 YWcsICJub19nYXRoZXIiKSA9PSAwKQogCQkJCXJldHVybiBQR1BBX1RBR19OT19HQVRIRVI7 CisJCQlpZiAoc3RyY21wKHRhZywgIm5vX2hhc2hfam9pbiIpID09IDApCisJCQkJcmV0dXJu IFBHUEFfVEFHX05PX0hBU0hfSk9JTjsKKwkJCWlmIChzdHJjbXAodGFnLCAibm9faW5kZXhf b25seV9zY2FuIikgPT0gMCkKKwkJCQlyZXR1cm4gUEdQQV9UQUdfTk9fSU5ERVhfT05MWV9T Q0FOOworCQkJaWYgKHN0cmNtcCh0YWcsICJub19pbmRleF9zY2FuIikgPT0gMCkKKwkJCQly ZXR1cm4gUEdQQV9UQUdfTk9fSU5ERVhfU0NBTjsKKwkJCWlmIChzdHJjbXAodGFnLCAibm9f bWVyZ2Vfam9pbiIpID09IDApCisJCQkJcmV0dXJuIFBHUEFfVEFHX05PX01FUkdFX0pPSU47 CisJCQlpZiAoc3RyY21wKHRhZywgIm5vX21lcmdlX2pvaW5fbWF0ZXJpYWxpemUiKSA9PSAw KQorCQkJCXJldHVybiBQR1BBX1RBR19OT19NRVJHRV9KT0lOX01BVEVSSUFMSVpFOworCQkJ aWYgKHN0cmNtcCh0YWcsICJub19tZXJnZV9qb2luX3BsYWluIikgPT0gMCkKKwkJCQlyZXR1 cm4gUEdQQV9UQUdfTk9fTUVSR0VfSk9JTl9QTEFJTjsKKwkJCWlmIChzdHJjbXAodGFnLCAi bm9fbmVzdGVkX2xvb3AiKSA9PSAwKQorCQkJCXJldHVybiBQR1BBX1RBR19OT19ORVNURURf TE9PUDsKKwkJCWlmIChzdHJjbXAodGFnLCAibm9fbmVzdGVkX2xvb3BfbWF0ZXJpYWxpemUi KSA9PSAwKQorCQkJCXJldHVybiBQR1BBX1RBR19OT19ORVNURURfTE9PUF9NQVRFUklBTEla RTsKKwkJCWlmIChzdHJjbXAodGFnLCAibm9fbmVzdGVkX2xvb3BfbWVtb2l6ZSIpID09IDAp CisJCQkJcmV0dXJuIFBHUEFfVEFHX05PX05FU1RFRF9MT09QX01FTU9JWkU7CisJCQlpZiAo c3RyY21wKHRhZywgIm5vX25lc3RlZF9sb29wX3BsYWluIikgPT0gMCkKKwkJCQlyZXR1cm4g UEdQQV9UQUdfTk9fTkVTVEVEX0xPT1BfUExBSU47CisJCQlpZiAoc3RyY21wKHRhZywgIm5v X3NlcV9zY2FuIikgPT0gMCkKKwkJCQlyZXR1cm4gUEdQQV9UQUdfTk9fU0VRX1NDQU47CisJ CQlpZiAoc3RyY21wKHRhZywgIm5vX3RpZF9zY2FuIikgPT0gMCkKKwkJCQlyZXR1cm4gUEdQ QV9UQUdfTk9fVElEX1NDQU47CiAJCQlicmVhazsKIAkJY2FzZSAncCc6CiAJCQlpZiAoc3Ry Y21wKHRhZywgInBhcnRpdGlvbndpc2UiKSA9PSAwKQpkaWZmIC0tZ2l0IGEvY29udHJpYi9w Z19wbGFuX2FkdmljZS9wZ3BhX2FzdC5oIGIvY29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3Bh X2FzdC5oCmluZGV4IDRiZDZmZmE1ZTNhLi5jMThmYzE2NGFiYyAxMDA2NDQKLS0tIGEvY29u dHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX2FzdC5oCisrKyBiL2NvbnRyaWIvcGdfcGxhbl9h ZHZpY2UvcGdwYV9hc3QuaApAQCAtOTMsNyArOTMsMjAgQEAgdHlwZWRlZiBlbnVtIHBncGFf YWR2aWNlX3RhZ190eXBlCiAJUEdQQV9UQUdfTkVTVEVEX0xPT1BfTUFURVJJQUxJWkUsCiAJ UEdQQV9UQUdfTkVTVEVEX0xPT1BfTUVNT0laRSwKIAlQR1BBX1RBR19ORVNURURfTE9PUF9Q TEFJTiwKKwlQR1BBX1RBR19OT19CSVRNQVBfSEVBUF9TQ0FOLAogCVBHUEFfVEFHX05PX0dB VEhFUiwKKwlQR1BBX1RBR19OT19IQVNIX0pPSU4sCisJUEdQQV9UQUdfTk9fSU5ERVhfT05M WV9TQ0FOLAorCVBHUEFfVEFHX05PX0lOREVYX1NDQU4sCisJUEdQQV9UQUdfTk9fTUVSR0Vf Sk9JTiwKKwlQR1BBX1RBR19OT19NRVJHRV9KT0lOX01BVEVSSUFMSVpFLAorCVBHUEFfVEFH X05PX01FUkdFX0pPSU5fUExBSU4sCisJUEdQQV9UQUdfTk9fTkVTVEVEX0xPT1AsCisJUEdQ QV9UQUdfTk9fTkVTVEVEX0xPT1BfTUFURVJJQUxJWkUsCisJUEdQQV9UQUdfTk9fTkVTVEVE X0xPT1BfTUVNT0laRSwKKwlQR1BBX1RBR19OT19ORVNURURfTE9PUF9QTEFJTiwKKwlQR1BB X1RBR19OT19TRVFfU0NBTiwKKwlQR1BBX1RBR19OT19USURfU0NBTiwKIAlQR1BBX1RBR19Q QVJUSVRJT05XSVNFLAogCVBHUEFfVEFHX1NFTUlKT0lOX05PTl9VTklRVUUsCiAJUEdQQV9U QUdfU0VNSUpPSU5fVU5JUVVFLApkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19wbGFuX2Fkdmlj ZS9wZ3BhX3BhcnNlci55IGIvY29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX3BhcnNlci55 CmluZGV4IDU4MTFhNmU1ZTU2Li4zODY4NGJlZjcyNyAxMDA2NDQKLS0tIGEvY29udHJpYi9w Z19wbGFuX2FkdmljZS9wZ3BhX3BhcnNlci55CisrKyBiL2NvbnRyaWIvcGdfcGxhbl9hZHZp Y2UvcGdwYV9wYXJzZXIueQpAQCAtMTA4LDggKzEwOCwxOCBAQCBhZHZpY2VfaXRlbTogVE9L X1RBR19KT0lOX09SREVSICcoJyBqb2luX29yZGVyX3RhcmdldF9saXN0ICcpJwogCQkJCSQk LT50YWcgPSBQR1BBX1RBR19CSVRNQVBfSEVBUF9TQ0FOOwogCQkJZWxzZSBpZiAoc3RyY21w KCQxLCAiZG9fbm90X3NjYW4iKSA9PSAwKQogCQkJCSQkLT50YWcgPSBQR1BBX1RBR19ET19O T1RfU0NBTjsKKwkJCWVsc2UgaWYgKHN0cmNtcCgkMSwgIm5vX2JpdG1hcF9oZWFwX3NjYW4i KSA9PSAwKQorCQkJCSQkLT50YWcgPSBQR1BBX1RBR19OT19CSVRNQVBfSEVBUF9TQ0FOOwog CQkJZWxzZSBpZiAoc3RyY21wKCQxLCAibm9fZ2F0aGVyIikgPT0gMCkKIAkJCQkkJC0+dGFn ID0gUEdQQV9UQUdfTk9fR0FUSEVSOworCQkJZWxzZSBpZiAoc3RyY21wKCQxLCAibm9faW5k ZXhfb25seV9zY2FuIikgPT0gMCkKKwkJCQkkJC0+dGFnID0gUEdQQV9UQUdfTk9fSU5ERVhf T05MWV9TQ0FOOworCQkJZWxzZSBpZiAoc3RyY21wKCQxLCAibm9faW5kZXhfc2NhbiIpID09 IDApCisJCQkJJCQtPnRhZyA9IFBHUEFfVEFHX05PX0lOREVYX1NDQU47CisJCQllbHNlIGlm IChzdHJjbXAoJDEsICJub19zZXFfc2NhbiIpID09IDApCisJCQkJJCQtPnRhZyA9IFBHUEFf VEFHX05PX1NFUV9TQ0FOOworCQkJZWxzZSBpZiAoc3RyY21wKCQxLCAibm9fdGlkX3NjYW4i KSA9PSAwKQorCQkJCSQkLT50YWcgPSBQR1BBX1RBR19OT19USURfU0NBTjsKIAkJCWVsc2Ug aWYgKHN0cmNtcCgkMSwgInNlcV9zY2FuIikgPT0gMCkKIAkJCQkkJC0+dGFnID0gUEdQQV9U QUdfU0VRX1NDQU47CiAJCQllbHNlIGlmIChzdHJjbXAoJDEsICJ0aWRfc2NhbiIpID09IDAp CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfcGxhbm5lci5jIGIv Y29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX3BsYW5uZXIuYwppbmRleCBiMzMyOWI3OTNh YS4uYTI5NTAwZTBlMWQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdw YV9wbGFubmVyLmMKKysrIGIvY29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX3BsYW5uZXIu YwpAQCAtMTU1LDYgKzE1NSw5IEBAIHN0YXRpYyBib29sIHBncGFfc2VtaWpvaW5fcGVybWl0 c19qb2luKGludCBvdXRlcl9jb3VudCwgaW50IGlubmVyX2NvdW50LAogCQkJCQkJCQkJICAg Ym9vbCBvdXRlcl9pc19udWxsYWJsZSwKIAkJCQkJCQkJCSAgIGJvb2wgKnJlc3RyaWN0X21l dGhvZCk7CiAKK3N0YXRpYyB1aW50NjQgcGdwYV9ub19qb2luX21hc2tfZnJvbV9hZHZpY2Vf dGFnKHBncGFfYWR2aWNlX3RhZ190eXBlIHRhZyk7CitzdGF0aWMgdWludDY0IHBncGFfbm9f c2Nhbl9tYXNrX2Zyb21fYWR2aWNlX3RhZyhwZ3BhX2FkdmljZV90YWdfdHlwZSB0YWcpOwor CiBzdGF0aWMgTGlzdCAqcGdwYV9wbGFubmVyX2FwcGVuZF9mZWVkYmFjayhMaXN0ICpsaXN0 LCBwZ3BhX3Ryb3ZlICp0cm92ZSwKIAkJCQkJCQkJCQkgIHBncGFfdHJvdmVfbG9va3VwX3R5 cGUgdHlwZSwKIAkJCQkJCQkJCQkgIHBncGFfaWRlbnRpZmllciAqcnRfaWRlbnRpZmllcnMs CkBAIC05NDcsOCArOTUwLDEyIEBAIHBncGFfcGxhbm5lcl9hcHBseV9qb2luX3BhdGhfYWR2 aWNlKEpvaW5UeXBlIGpvaW50eXBlLCB1aW50NjQgKnBnc19tYXNrX3AsCiAJQml0bWFwc2V0 ICAqam9fZGVueV9pbmRleGVzID0gTlVMTDsKIAlCaXRtYXBzZXQgICpqb19kZW55X3JlbF9p bmRleGVzID0gTlVMTDsKIAlCaXRtYXBzZXQgICpqbV9pbmRleGVzID0gTlVMTDsKLQlib29s CQlqbV9jb25mbGljdCA9IGZhbHNlOworCWJvb2wJCWptX3Bvc19jb25mbGljdCA9IGZhbHNl OwkvKiBwb3NpdGl2ZSB0YWdzIGRpc2FncmVlICovCisJYm9vbAkJam1fcG9zX25lZ19jb25m bGljdCA9IGZhbHNlOwkvKiBhIHBvc2l0aXZlIG1ldGhvZCBpcworCQkJCQkJCQkJCQkJICog Zm9yYmlkZGVuICovCiAJdWludDY0CQlqb2luX21hc2sgPSAwOworCUJpdG1hcHNldCAgKm5v X2ptX2luZGV4ZXMgPSBOVUxMOworCXVpbnQ2NAkJbm9fam9pbl9tYXNrID0gMDsKIAlCaXRt YXBzZXQgICpzal9wZXJtaXRfaW5kZXhlcyA9IE5VTEw7CiAJQml0bWFwc2V0ICAqc2pfZGVu eV9pbmRleGVzID0gTlVMTDsKIApAQCAtMTA0MywxMiArMTA1MCw0MyBAQCBwZ3BhX3BsYW5u ZXJfYXBwbHlfam9pbl9wYXRoX2FkdmljZShKb2luVHlwZSBqb2ludHlwZSwgdWludDY0ICpw Z3NfbWFza19wLAogCQkJewogCQkJCWptX2luZGV4ZXMgPSBibXNfYWRkX21lbWJlcihqbV9p bmRleGVzLCBpKTsKIAkJCQlpZiAoam9pbl9tYXNrICE9IDAgJiYgam9pbl9tYXNrICE9IG15 X2pvaW5fbWFzaykKLQkJCQkJam1fY29uZmxpY3QgPSB0cnVlOworCQkJCQlqbV9wb3NfY29u ZmxpY3QgPSB0cnVlOwogCQkJCWpvaW5fbWFzayA9IG15X2pvaW5fbWFzazsKIAkJCX0KIAkJ CWNvbnRpbnVlOwogCQl9CiAKKwkJLyogSGFuZGxlIE5PXyBqb2luIG1ldGhvZCBhZHZpY2Uu ICovCisJCXsKKwkJCXVpbnQ2NAkJbXlfbm9fam9pbl9tYXNrOworCisJCQlteV9ub19qb2lu X21hc2sgPSBwZ3BhX25vX2pvaW5fbWFza19mcm9tX2FkdmljZV90YWcoZW50cnktPnRhZyk7 CisJCQlpZiAobXlfbm9fam9pbl9tYXNrICE9IDApCisJCQl7CisJCQkJYm9vbAkJcGVybWl0 OworCQkJCWJvb2wJCXJlc3RyaWN0X21ldGhvZDsKKworCQkJCS8qCisJCQkJICogTk9fIGpv aW4gdGFncyBpbXBvc2UgdGhlIHNhbWUgam9pbi1vcmRlciBjb25zdHJhaW50IGFzCisJCQkJ ICogcG9zaXRpdmUgb25lczogdGhlIHRhcmdldCBtdXN0IGJlIHRoZSBpbm5lciByZWwuICBS ZXVzZQorCQkJCSAqIHBncGFfam9pbl9tZXRob2RfcGVybWl0c19qb2luIHRvIGVuZm9yY2Ug aXQuCisJCQkJICovCisJCQkJcGVybWl0ID0gcGdwYV9qb2luX21ldGhvZF9wZXJtaXRzX2pv aW4ocGpzLT5vdXRlcl9jb3VudCwKKwkJCQkJCQkJCQkJCQkgICBwanMtPmlubmVyX2NvdW50 LAorCQkJCQkJCQkJCQkJCSAgIHBqcy0+cmlkcywKKwkJCQkJCQkJCQkJCQkgICBlbnRyeSwK KwkJCQkJCQkJCQkJCQkgICAmcmVzdHJpY3RfbWV0aG9kKTsKKwkJCQlpZiAoIXBlcm1pdCkK KwkJCQkJam9fZGVueV9pbmRleGVzID0gYm1zX2FkZF9tZW1iZXIoam9fZGVueV9pbmRleGVz LCBpKTsKKwkJCQllbHNlIGlmIChyZXN0cmljdF9tZXRob2QpCisJCQkJeworCQkJCQlub19q bV9pbmRleGVzID0gYm1zX2FkZF9tZW1iZXIobm9fam1faW5kZXhlcywgaSk7CisJCQkJCW5v X2pvaW5fbWFzayB8PSBteV9ub19qb2luX21hc2s7CisJCQkJfQorCQkJCWNvbnRpbnVlOwor CQkJfQorCQl9CisKIAkJLyogSGFuZGxlIHNlbWlqb2luIHVuaXF1ZW5lc3MgYWR2aWNlLiAq LwogCQlpZiAoZW50cnktPnRhZyA9PSBQR1BBX1RBR19TRU1JSk9JTl9VTklRVUUgfHwKIAkJ CWVudHJ5LT50YWcgPT0gUEdQQV9UQUdfU0VNSUpPSU5fTk9OX1VOSVFVRSkKQEAgLTExMTgs MTMgKzExNTYsMjYgQEAgcGdwYV9wbGFubmVyX2FwcGx5X2pvaW5fcGF0aF9hZHZpY2UoSm9p blR5cGUgam9pbnR5cGUsIHVpbnQ2NCAqcGdzX21hc2tfcCwKIAl9CiAKIAkvKgotCSAqIElm IG1vcmUgdGhhbiBvbmUgam9pbiBtZXRob2Qgc3BlY2lmaWNhdGlvbiBpcyByZWxldmFudCBo ZXJlIGFuZCB0aGV5Ci0JICogZGlmZmVyLCBtYXJrIHRoZW0gYWxsIGFzIGNvbmZsaWN0aW5n LgorCSAqIElmIG1vcmUgdGhhbiBvbmUgcG9zaXRpdmUgam9pbiBtZXRob2Qgc3BlY2lmaWNh dGlvbiBpcyByZWxldmFudCBoZXJlCisJICogYW5kIHRoZXkgZGlmZmVyLCBtYXJrIHRoZW0g YWxsIGFzIGNvbmZsaWN0aW5nLgogCSAqLwotCWlmIChqbV9jb25mbGljdCkKKwlpZiAoam1f cG9zX2NvbmZsaWN0KQogCQlwZ3BhX3Ryb3ZlX3NldF9mbGFncyhwanMtPmpvaW5fZW50cmll cywgam1faW5kZXhlcywKIAkJCQkJCQkgUEdQQV9GQl9DT05GTElDVElORyk7CiAKKwkvKgor CSAqIERldGVjdCBwb3NpdGl2ZS12cy1uZWdhdGl2ZSBqb2luIG1ldGhvZCBjb25mbGljdDog YSBtZXRob2QgYm90aAorCSAqIHJlcXVpcmVkIGJ5IGEgcG9zaXRpdmUgdGFnIGFuZCBmb3Ji aWRkZW4gYnkgYSBOT18gdGFnLgorCSAqLworCWlmICgoam9pbl9tYXNrICYgbm9fam9pbl9t YXNrKSAhPSAwKQorCXsKKwkJam1fcG9zX25lZ19jb25mbGljdCA9IHRydWU7CisJCXBncGFf dHJvdmVfc2V0X2ZsYWdzKHBqcy0+am9pbl9lbnRyaWVzLCBqbV9pbmRleGVzLAorCQkJCQkJ CSBQR1BBX0ZCX0NPTkZMSUNUSU5HKTsKKwkJcGdwYV90cm92ZV9zZXRfZmxhZ3MocGpzLT5q b2luX2VudHJpZXMsIG5vX2ptX2luZGV4ZXMsCisJCQkJCQkJIFBHUEFfRkJfQ09ORkxJQ1RJ TkcpOworCX0KKwogCS8qIElmIHNlbWlqb2luIGFkdmljZSBzYXlzIGJvdGggeWVzIGFuZCBu bywgbWFyayBpdCBhbGwgYXMgY29uZmxpY3RpbmcuICovCiAJaWYgKHNqX3Blcm1pdF9pbmRl eGVzICE9IE5VTEwgJiYgc2pfZGVueV9pbmRleGVzICE9IE5VTEwpCiAJewpAQCAtMTE0Mywx OCArMTE5NCwxOCBAQCBwZ3BhX3BsYW5uZXJfYXBwbHlfam9pbl9wYXRoX2FkdmljZShKb2lu VHlwZSBqb2ludHlwZSwgdWludDY0ICpwZ3NfbWFza19wLAogCWlmICgoam9fZGVueV9pbmRl eGVzICE9IE5VTEwgfHwgam9fZGVueV9yZWxfaW5kZXhlcyAhPSBOVUxMKSAmJgogCQlqb19w ZXJtaXRfaW5kZXhlcyA9PSBOVUxMKQogCQkqcGdzX21hc2tfcCAmPSB+UEdTX0pPSU5fQU5Z OwotCWlmIChqb2luX21hc2sgIT0gMCAmJiAham1fY29uZmxpY3QpCisJaWYgKGpvaW5fbWFz ayAhPSAwICYmICFqbV9wb3NfY29uZmxpY3QgJiYgIWptX3Bvc19uZWdfY29uZmxpY3QpCiAJ CSpwZ3NfbWFza19wICY9IH4oUEdTX0pPSU5fQU5ZICYgfmpvaW5fbWFzayk7CisJaWYgKG5v X2pvaW5fbWFzayAhPSAwICYmICFqbV9wb3NfbmVnX2NvbmZsaWN0KQorCQkqcGdzX21hc2tf cCAmPSB+bm9fam9pbl9tYXNrOwogCWlmIChzal9kZW55X2luZGV4ZXMgIT0gTlVMTCAmJiBz al9wZXJtaXRfaW5kZXhlcyA9PSBOVUxMKQogCQkqcGdzX21hc2tfcCAmPSB+UEdTX0pPSU5f QU5ZOwogfQogCiAvKgotICogVHJhbnNsYXRlIGFuIGFkdmljZSB0YWcgaW50byBhIHBhdGgg Z2VuZXJhdGlvbiBzdHJhdGVneSBtYXNrLgorICogVHJhbnNsYXRlIGEgcG9zaXRpdmUgam9p biBhZHZpY2UgdGFnIGludG8gYSBzdHJhdGVneSBtYXNrIHRvIGVuZm9yY2UuCiAgKgotICog VGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIHdpdGggdGFnIHR5cGVzIHRoYXQgZG9uJ3Qg cmVwcmVzZW50IGpvaW4KLSAqIHN0cmF0ZWdpZXMuIEluIHN1Y2ggY2FzZXMsIHdlIGp1c3Qg cmV0dXJuIDAsIHdoaWNoIGNhbid0IGJlIGNvbmZ1c2VkIHdpdGgKLSAqIGEgdmFsaWQgbWFz ay4KKyAqIFJldHVybnMgMCBmb3IgdGFncyB0aGF0IGRvbid0IHJlcHJlc2VudCAocG9zaXRp dmUpIGpvaW4gc3RyYXRlZ2llcy4KICAqLwogc3RhdGljIHVpbnQ2NAogcGdwYV9qb2luX3N0 cmF0ZWd5X21hc2tfZnJvbV9hZHZpY2VfdGFnKHBncGFfYWR2aWNlX3RhZ190eXBlIHRhZykK QEAgLTExODAsNiArMTIzMSwzNyBAQCBwZ3BhX2pvaW5fc3RyYXRlZ3lfbWFza19mcm9tX2Fk dmljZV90YWcocGdwYV9hZHZpY2VfdGFnX3R5cGUgdGFnKQogCX0KIH0KIAorLyoKKyAqIFRy YW5zbGF0ZSBhIE5PXyBqb2luIGFkdmljZSB0YWcgaW50byBhIHN0cmF0ZWd5IG1hc2sgdG8g Zm9yYmlkLgorICoKKyAqIFJldHVybnMgMCBmb3IgdGFncyB0aGF0IGFyZW4ndCBOT18gam9p biB0YWdzLgorICovCitzdGF0aWMgdWludDY0CitwZ3BhX25vX2pvaW5fbWFza19mcm9tX2Fk dmljZV90YWcocGdwYV9hZHZpY2VfdGFnX3R5cGUgdGFnKQoreworCXN3aXRjaCAodGFnKQor CXsKKwkJY2FzZSBQR1BBX1RBR19OT19IQVNIX0pPSU46CisJCQlyZXR1cm4gUEdTX0hBU0hK T0lOOworCQljYXNlIFBHUEFfVEFHX05PX01FUkdFX0pPSU46CisJCQlyZXR1cm4gUEdTX01F UkdFSk9JTl9BTlk7CisJCWNhc2UgUEdQQV9UQUdfTk9fTUVSR0VfSk9JTl9NQVRFUklBTEla RToKKwkJCXJldHVybiBQR1NfTUVSR0VKT0lOX01BVEVSSUFMSVpFOworCQljYXNlIFBHUEFf VEFHX05PX01FUkdFX0pPSU5fUExBSU46CisJCQlyZXR1cm4gUEdTX01FUkdFSk9JTl9QTEFJ TjsKKwkJY2FzZSBQR1BBX1RBR19OT19ORVNURURfTE9PUDoKKwkJCXJldHVybiBQR1NfTkVT VExPT1BfQU5ZOworCQljYXNlIFBHUEFfVEFHX05PX05FU1RFRF9MT09QX01BVEVSSUFMSVpF OgorCQkJcmV0dXJuIFBHU19ORVNUTE9PUF9NQVRFUklBTElaRTsKKwkJY2FzZSBQR1BBX1RB R19OT19ORVNURURfTE9PUF9NRU1PSVpFOgorCQkJcmV0dXJuIFBHU19ORVNUTE9PUF9NRU1P SVpFOworCQljYXNlIFBHUEFfVEFHX05PX05FU1RFRF9MT09QX1BMQUlOOgorCQkJcmV0dXJu IFBHU19ORVNUTE9PUF9QTEFJTjsKKwkJZGVmYXVsdDoKKwkJCXJldHVybiAwOworCX0KK30K KwogLyoKICAqIERvZXMgYSBjZXJ0YWluIGl0ZW0gb2Ygam9pbiBvcmRlciBhZHZpY2UgcGVy bWl0IGEgY2VydGFpbiBqb2luPwogICoKQEAgLTE2MTksNiArMTcwMSwzMSBAQCBwZ3BhX3Nl bWlqb2luX3Blcm1pdHNfam9pbihpbnQgb3V0ZXJfY291bnQsIGludCBpbm5lcl9jb3VudCwK IAlyZXR1cm4gZmFsc2U7CiB9CiAKKy8qCisgKiBUcmFuc2xhdGUgYSBOT18gc2NhbiBhZHZp Y2UgdGFnIGludG8gYSBzdHJhdGVneSBtYXNrIHRvIGZvcmJpZC4KKyAqCisgKiBSZXR1cm5z IDAgZm9yIHRhZ3MgdGhhdCBhcmVuJ3QgTk9fIHNjYW4gdGFncy4KKyAqLworc3RhdGljIHVp bnQ2NAorcGdwYV9ub19zY2FuX21hc2tfZnJvbV9hZHZpY2VfdGFnKHBncGFfYWR2aWNlX3Rh Z190eXBlIHRhZykKK3sKKwlzd2l0Y2ggKHRhZykKKwl7CisJCWNhc2UgUEdQQV9UQUdfTk9f QklUTUFQX0hFQVBfU0NBTjoKKwkJCXJldHVybiBQR1NfQklUTUFQU0NBTjsKKwkJY2FzZSBQ R1BBX1RBR19OT19JTkRFWF9PTkxZX1NDQU46CisJCQlyZXR1cm4gUEdTX0lOREVYT05MWVND QU4gfCBQR1NfQ09OU0lERVJfSU5ERVhPTkxZOworCQljYXNlIFBHUEFfVEFHX05PX0lOREVY X1NDQU46CisJCQlyZXR1cm4gUEdTX0lOREVYU0NBTjsKKwkJY2FzZSBQR1BBX1RBR19OT19T RVFfU0NBTjoKKwkJCXJldHVybiBQR1NfU0VRU0NBTjsKKwkJY2FzZSBQR1BBX1RBR19OT19U SURfU0NBTjoKKwkJCXJldHVybiBQR1NfVElEU0NBTjsKKwkJZGVmYXVsdDoKKwkJCXJldHVy biAwOworCX0KK30KKwogLyoKICAqIEFwcGx5IHNjYW4gYWR2aWNlIHRvIGEgUmVsT3B0SW5m by4KICAqLwpAQCAtMTYzNywxOSArMTc0NCwzNiBAQCBwZ3BhX3BsYW5uZXJfYXBwbHlfc2Nh bl9hZHZpY2UoUmVsT3B0SW5mbyAqcmVsLAogCWludAkJCWkgPSAtMTsKIAlwZ3BhX3Ryb3Zl X2VudHJ5ICpzY2FuX2VudHJ5ID0gTlVMTDsKIAlpbnQJCQlmbGFnczsKLQlib29sCQlzY2Fu X3R5cGVfY29uZmxpY3QgPSBmYWxzZTsKKwlib29sCQlzY2FuX3Bvc19jb25mbGljdCA9IGZh bHNlOwkvKiBwb3NpdGl2ZSB0YWdzIGRpc2FncmVlICovCisJYm9vbAkJc2Nhbl9wb3NfbmVn X2NvbmZsaWN0ID0gZmFsc2U7CS8qIGEgcG9zaXRpdmUgbWV0aG9kIGlzCisJCQkJCQkJCQkJ CQkgKiBmb3JiaWRkZW4gKi8KIAlCaXRtYXBzZXQgICpzY2FuX3R5cGVfaW5kZXhlcyA9IE5V TEw7CiAJQml0bWFwc2V0ICAqc2Nhbl90eXBlX3JlbF9pbmRleGVzID0gTlVMTDsKKwlCaXRt YXBzZXQgICpub19zY2FuX2luZGV4ZXMgPSBOVUxMOwogCXVpbnQ2NAkJZ2F0aGVyX21hc2sg PSAwOwogCXVpbnQ2NAkJc2Nhbl90eXBlID0gYWxsX3NjYW5fbWFzazsJLyogc2VudGluZWw6 IG5vIGFkdmljZSB5ZXQgKi8KKwl1aW50NjQJCW5vX3NjYW5fbWFzayA9IDA7CiAKIAkvKiBT Y3J1dGluaXplIGF2YWlsYWJsZSBzY2FuIGFkdmljZS4gKi8KIAl3aGlsZSAoKGkgPSBibXNf bmV4dF9tZW1iZXIoc2Nhbl9pbmRleGVzLCBpKSkgPj0gMCkKIAl7CiAJCXBncGFfdHJvdmVf ZW50cnkgKm15X2VudHJ5ID0gJnNjYW5fZW50cmllc1tpXTsKIAkJdWludDY0CQlteV9zY2Fu X3R5cGUgPSBhbGxfc2Nhbl9tYXNrOworCQl1aW50NjQJCW15X25vX3NjYW5fbWFzazsKKwor CQkvKgorCQkgKiBOT18gc2NhbiB0YWdzIGp1c3QgYWNjdW11bGF0ZSBhIHNldCBvZiBmb3Ji aWRkZW4gbWV0aG9kczsgaGFuZGxlCisJCSAqIHRoZW0gc2VwYXJhdGVseSBmcm9tIHRoZSBw b3NpdGl2ZSBzY2FuLXR5cGUgbG9naWMgYmVsb3cuCisJCSAqLworCQlteV9ub19zY2FuX21h c2sgPSBwZ3BhX25vX3NjYW5fbWFza19mcm9tX2FkdmljZV90YWcobXlfZW50cnktPnRhZyk7 CisJCWlmIChteV9ub19zY2FuX21hc2sgIT0gMCkKKwkJeworCQkJbm9fc2Nhbl9tYXNrIHw9 IG15X25vX3NjYW5fbWFzazsKKwkJCW5vX3NjYW5faW5kZXhlcyA9IGJtc19hZGRfbWVtYmVy KG5vX3NjYW5faW5kZXhlcywgaSk7CisJCQljb250aW51ZTsKKwkJfQogCi0JCS8qIFRyYW5z bGF0ZSBvdXIgYWR2aWNlIHRhZ3MgdG8gYSBzY2FuIHN0cmF0ZWd5IGFkdmljZSB2YWx1ZS4g Ki8KKwkJLyogVHJhbnNsYXRlIHBvc2l0aXZlIGFkdmljZSB0YWdzIHRvIGEgc2NhbiBzdHJh dGVneSB2YWx1ZS4gKi8KIAkJaWYgKG15X2VudHJ5LT50YWcgPT0gUEdQQV9UQUdfRE9fTk9U X1NDQU4pCiAJCQlteV9zY2FuX3R5cGUgPSAwOwogCQllbHNlIGlmIChteV9lbnRyeS0+dGFn ID09IFBHUEFfVEFHX0JJVE1BUF9IRUFQX1NDQU4pCkBAIC0xNjkwLDE5ICsxODE0LDI3IEBA IHBncGFfcGxhbm5lcl9hcHBseV9zY2FuX2FkdmljZShSZWxPcHRJbmZvICpyZWwsCiAJCWlm IChteV9zY2FuX3R5cGUgIT0gYWxsX3NjYW5fbWFzaykKIAkJewogCQkJaWYgKHNjYW5fdHlw ZSAhPSBhbGxfc2Nhbl9tYXNrICYmIHNjYW5fdHlwZSAhPSBteV9zY2FuX3R5cGUpCi0JCQkJ c2Nhbl90eXBlX2NvbmZsaWN0ID0gdHJ1ZTsKLQkJCWlmICghc2Nhbl90eXBlX2NvbmZsaWN0 ICYmIHNjYW5fZW50cnkgIT0gTlVMTCAmJgorCQkJCXNjYW5fcG9zX2NvbmZsaWN0ID0gdHJ1 ZTsKKwkJCWlmICghc2Nhbl9wb3NfY29uZmxpY3QgJiYgc2Nhbl9lbnRyeSAhPSBOVUxMICYm CiAJCQkJbXlfZW50cnktPnRhcmdldC0+aXRhcmdldCAhPSBOVUxMICYmCiAJCQkJc2Nhbl9l bnRyeS0+dGFyZ2V0LT5pdGFyZ2V0ICE9IE5VTEwgJiYKIAkJCQkhcGdwYV9pbmRleF90YXJn ZXRzX2VxdWFsKHNjYW5fZW50cnktPnRhcmdldC0+aXRhcmdldCwKIAkJCQkJCQkJCQkgIG15 X2VudHJ5LT50YXJnZXQtPml0YXJnZXQpKQotCQkJCXNjYW5fdHlwZV9jb25mbGljdCA9IHRy dWU7CisJCQkJc2Nhbl9wb3NfY29uZmxpY3QgPSB0cnVlOwogCQkJc2Nhbl9lbnRyeSA9IG15 X2VudHJ5OwogCQkJc2Nhbl90eXBlID0gbXlfc2Nhbl90eXBlOwogCQkJc2Nhbl90eXBlX2lu ZGV4ZXMgPSBibXNfYWRkX21lbWJlcihzY2FuX3R5cGVfaW5kZXhlcywgaSk7CiAJCX0KIAl9 CiAKKwkvKgorCSAqIERldGVjdCBwb3NpdGl2ZS12cy1uZWdhdGl2ZSBzY2FuIGNvbmZsaWN0 OiBhIHBvc2l0aXZlIHNjYW4gdHlwZSB0aGF0IGlzCisJICogc2ltdWx0YW5lb3VzbHkgZm9y YmlkZGVuIGJ5IGEgTk9fIHRhZy4gIFR3byBOT18gdGFncyBmb3IgZGlmZmVyZW50CisJICog bWV0aG9kcyBhcmUgbmV2ZXIgaW4gY29uZmxpY3Qgd2l0aCBlYWNoIG90aGVyLgorCSAqLwor CWlmIChzY2FuX3R5cGUgIT0gYWxsX3NjYW5fbWFzayAmJiAoc2Nhbl90eXBlICYgbm9fc2Nh bl9tYXNrKSAhPSAwKQorCQlzY2FuX3Bvc19uZWdfY29uZmxpY3QgPSB0cnVlOworCiAJLyog U2NydXRpbml6ZSBhdmFpbGFibGUgZ2F0aGVyLXJlbGF0ZWQgYW5kIHBhcnRpdGlvbndpc2Ug YWR2aWNlLiAqLwogCWkgPSAtMTsKIAl3aGlsZSAoKGkgPSBibXNfbmV4dF9tZW1iZXIocmVs X2luZGV4ZXMsIGkpKSA+PSAwKQpAQCAtMTcyNSw3ICsxODU3LDcgQEAgcGdwYV9wbGFubmVy X2FwcGx5X3NjYW5fYWR2aWNlKFJlbE9wdEluZm8gKnJlbCwKIAkJCQljb25zdCB1aW50NjQg bXlfc2Nhbl90eXBlID0gUEdTX0FQUEVORCB8IFBHU19NRVJHRV9BUFBFTkQ7CiAKIAkJCQlp ZiAoc2Nhbl90eXBlICE9IGFsbF9zY2FuX21hc2sgJiYgc2Nhbl90eXBlICE9IG15X3NjYW5f dHlwZSkKLQkJCQkJc2Nhbl90eXBlX2NvbmZsaWN0ID0gdHJ1ZTsKKwkJCQkJc2Nhbl9wb3Nf Y29uZmxpY3QgPSB0cnVlOwogCQkJCXNjYW5fZW50cnkgPSBteV9lbnRyeTsKIAkJCQlzY2Fu X3R5cGUgPSBteV9zY2FuX3R5cGU7CiAJCQkJc2Nhbl90eXBlX3JlbF9pbmRleGVzID0KQEAg LTE3NzgsNyArMTkxMCw3IEBAIHBncGFfcGxhbm5lcl9hcHBseV9zY2FuX2FkdmljZShSZWxP cHRJbmZvICpyZWwsCiAJfQogCiAJLyogRW5mb3JjZSBjaG9pY2Ugb2YgaW5kZXguICovCi0J aWYgKHNjYW5fZW50cnkgIT0gTlVMTCAmJiAhc2Nhbl90eXBlX2NvbmZsaWN0ICYmCisJaWYg KHNjYW5fZW50cnkgIT0gTlVMTCAmJiAhc2Nhbl9wb3NfY29uZmxpY3QgJiYKIAkJKHNjYW5f ZW50cnktPnRhZyA9PSBQR1BBX1RBR19JTkRFWF9TQ0FOIHx8CiAJCSBzY2FuX2VudHJ5LT50 YWcgPT0gUEdQQV9UQUdfSU5ERVhfT05MWV9TQ0FOKSkKIAl7CkBAIC0xODIyLDE0ICsxOTU0 LDI0IEBAIHBncGFfcGxhbm5lcl9hcHBseV9zY2FuX2FkdmljZShSZWxPcHRJbmZvICpyZWws CiAKIAkvKgogCSAqIE1hcmsgYWxsIHRoZSBzY2FuIG1ldGhvZCBlbnRyaWVzIGFzIGZ1bGx5 IG1hdGNoZWQ7IGFuZCBpZiB0aGV5IHNwZWNpZnkKLQkgKiBkaWZmZXJlbnQgdGhpbmdzLCBt YXJrIHRoZW0gYWxsIGFzIGNvbmZsaWN0aW5nLgorCSAqIGRpZmZlcmVudCB0aGluZ3MsIG1h cmsgdGhlbSBhbGwgYXMgY29uZmxpY3RpbmcuICBBbHNvIG1hcmsgdGhlbSBhcworCSAqIGNv bmZsaWN0aW5nIGlmIGFueSBOT18gdGFnIGZvcmJpZHMgdGhlIHJlcXVlc3RlZCBzY2FuIG1l dGhvZC4KIAkgKi8KIAlmbGFncyA9IFBHUEFfRkJfTUFUQ0hfUEFSVElBTCB8IFBHUEFfRkJf TUFUQ0hfRlVMTDsKLQlpZiAoc2Nhbl90eXBlX2NvbmZsaWN0KQorCWlmIChzY2FuX3Bvc19j b25mbGljdCB8fCBzY2FuX3Bvc19uZWdfY29uZmxpY3QpCiAJCWZsYWdzIHw9IFBHUEFfRkJf Q09ORkxJQ1RJTkc7CiAJcGdwYV90cm92ZV9zZXRfZmxhZ3Moc2Nhbl9lbnRyaWVzLCBzY2Fu X3R5cGVfaW5kZXhlcywgZmxhZ3MpOwogCXBncGFfdHJvdmVfc2V0X2ZsYWdzKHJlbF9lbnRy aWVzLCBzY2FuX3R5cGVfcmVsX2luZGV4ZXMsIGZsYWdzKTsKIAorCS8qCisJICogTWFyayBO T18gc2NhbiBlbnRyaWVzIGFzIGZ1bGx5IG1hdGNoZWQuIEFsc28gbWFyayB0aGVtIGFzIGNv bmZsaWN0aW5nCisJICogd2hlbiBhIHBvc2l0aXZlIHRhZyByZXF1ZXN0cyB0aGUgc2FtZSBz Y2FuIG1ldGhvZC4KKwkgKi8KKwlmbGFncyA9IFBHUEFfRkJfTUFUQ0hfUEFSVElBTCB8IFBH UEFfRkJfTUFUQ0hfRlVMTDsKKwlpZiAoc2Nhbl9wb3NfbmVnX2NvbmZsaWN0KQorCQlmbGFn cyB8PSBQR1BBX0ZCX0NPTkZMSUNUSU5HOworCXBncGFfdHJvdmVfc2V0X2ZsYWdzKHNjYW5f ZW50cmllcywgbm9fc2Nhbl9pbmRleGVzLCBmbGFncyk7CisKIAkvKgogCSAqIE1hcmsgZXZl cnkgR2F0aGVyLXJlbGF0ZWQgcGllY2Ugb2YgYWR2aWNlIGFzIHBhcnRpYWxseSBtYXRjaGVk LiBNYXJrCiAJICogdGhlIG9uZXMgdGhhdCBpbmNsdWRlZCB0aGlzIHJlbGF0aW9uIGFzIGEg dGFyZ2V0IGJ5IGl0c2VsZiBhcyBmdWxseQpAQCAtMTg0Nyw4ICsxOTg5LDEwIEBAIHBncGFf cGxhbm5lcl9hcHBseV9zY2FuX2FkdmljZShSZWxPcHRJbmZvICpyZWwsCiAJICogT25seSBj bGVhciBiaXRzIGhlcmUsIHNvIHRoYXQgd2Ugc3RpbGwgcmVzcGVjdCB0aGUgZW5hYmxlXyog R1VDcy4gRG8KIAkgKiBub3RoaW5nIGluIGNhc2VzIHdoZXJlIHRoZSBhZHZpY2Ugb24gYSBz aW5nbGUgdG9waWMgY29uZmxpY3RzLgogCSAqLwotCWlmIChzY2FuX3R5cGUgIT0gYWxsX3Nj YW5fbWFzayAmJiAhc2Nhbl90eXBlX2NvbmZsaWN0KQorCWlmIChzY2FuX3R5cGUgIT0gYWxs X3NjYW5fbWFzayAmJiAhc2Nhbl9wb3NfY29uZmxpY3QgJiYgIXNjYW5fcG9zX25lZ19jb25m bGljdCkKIAkJcmVsLT5wZ3NfbWFzayAmPSB+KGFsbF9zY2FuX21hc2sgJiB+c2Nhbl90eXBl KTsKKwlpZiAobm9fc2Nhbl9tYXNrICE9IDAgJiYgIXNjYW5fcG9zX25lZ19jb25mbGljdCkK KwkJcmVsLT5wZ3NfbWFzayAmPSB+KGFsbF9zY2FuX21hc2sgJiBub19zY2FuX21hc2spOwog CWlmIChnYXRoZXJfbWFzayAhPSAwICYmICFnYXRoZXJfY29uZmxpY3QpCiAJewogCQl1aW50 NjQJCWFsbF9nYXRoZXJfbWFzazsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfcGxhbl9hZHZp Y2UvcGdwYV9zY2FubmVyLmwgYi9jb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfc2Nhbm5l ci5sCmluZGV4IGU2ZDYwZjU3ZTFlLi5mYzg5MjllMzFkZCAxMDA2NDQKLS0tIGEvY29udHJp Yi9wZ19wbGFuX2FkdmljZS9wZ3BhX3NjYW5uZXIubAorKysgYi9jb250cmliL3BnX3BsYW5f YWR2aWNlL3BncGFfc2Nhbm5lci5sCkBAIC0xMjksNyArMTI5LDEyIEBAIHhjaW5zaWRlCQlb XiovXSsKIAkJCQkJCQkgdGFnID09IFBHUEFfVEFHX1RJRF9TQ0FOIHx8CiAJCQkJCQkJIHRh ZyA9PSBQR1BBX1RBR19CSVRNQVBfSEVBUF9TQ0FOIHx8CiAJCQkJCQkJIHRhZyA9PSBQR1BB X1RBR19OT19HQVRIRVIgfHwKLQkJCQkJCQkgdGFnID09IFBHUEFfVEFHX0RPX05PVF9TQ0FO KQorCQkJCQkJCSB0YWcgPT0gUEdQQV9UQUdfRE9fTk9UX1NDQU4gfHwKKwkJCQkJCQkgdGFn ID09IFBHUEFfVEFHX05PX1NFUV9TQ0FOIHx8CisJCQkJCQkJIHRhZyA9PSBQR1BBX1RBR19O T19USURfU0NBTiB8fAorCQkJCQkJCSB0YWcgPT0gUEdQQV9UQUdfTk9fQklUTUFQX0hFQVBf U0NBTiB8fAorCQkJCQkJCSB0YWcgPT0gUEdQQV9UQUdfTk9fSU5ERVhfU0NBTiB8fAorCQkJ CQkJCSB0YWcgPT0gUEdQQV9UQUdfTk9fSU5ERVhfT05MWV9TQ0FOKQogCQkJCQkJcmV0dXJu IFRPS19UQUdfU0lNUExFOwogCQkJCQllbHNlCiAJCQkJCQlyZXR1cm4gVE9LX1RBR19HRU5F UklDOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX3Ryb3ZlLmMg Yi9jb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfdHJvdmUuYwppbmRleCBjYTY5ZjNiZDNk Zi4uYWJlMTAzNjNkM2UgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdw YV90cm92ZS5jCisrKyBiL2NvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdwYV90cm92ZS5jCkBA IC0xNjYsNiArMTY2LDExIEBAIHBncGFfYnVpbGRfdHJvdmUoTGlzdCAqYWR2aWNlX2l0ZW1z KQogCQkJY2FzZSBQR1BBX1RBR19ET19OT1RfU0NBTjoKIAkJCWNhc2UgUEdQQV9UQUdfSU5E RVhfT05MWV9TQ0FOOgogCQkJY2FzZSBQR1BBX1RBR19JTkRFWF9TQ0FOOgorCQkJY2FzZSBQ R1BBX1RBR19OT19CSVRNQVBfSEVBUF9TQ0FOOgorCQkJY2FzZSBQR1BBX1RBR19OT19JTkRF WF9PTkxZX1NDQU46CisJCQljYXNlIFBHUEFfVEFHX05PX0lOREVYX1NDQU46CisJCQljYXNl IFBHUEFfVEFHX05PX1NFUV9TQ0FOOgorCQkJY2FzZSBQR1BBX1RBR19OT19USURfU0NBTjoK IAkJCWNhc2UgUEdQQV9UQUdfU0VRX1NDQU46CiAJCQljYXNlIFBHUEFfVEFHX1RJRF9TQ0FO OgogCkBAIC0xOTIsNiArMTk3LDE0IEBAIHBncGFfYnVpbGRfdHJvdmUoTGlzdCAqYWR2aWNl X2l0ZW1zKQogCQkJY2FzZSBQR1BBX1RBR19ORVNURURfTE9PUF9NQVRFUklBTElaRToKIAkJ CWNhc2UgUEdQQV9UQUdfTkVTVEVEX0xPT1BfTUVNT0laRToKIAkJCWNhc2UgUEdQQV9UQUdf TkVTVEVEX0xPT1BfUExBSU46CisJCQljYXNlIFBHUEFfVEFHX05PX0hBU0hfSk9JTjoKKwkJ CWNhc2UgUEdQQV9UQUdfTk9fTUVSR0VfSk9JTjoKKwkJCWNhc2UgUEdQQV9UQUdfTk9fTUVS R0VfSk9JTl9NQVRFUklBTElaRToKKwkJCWNhc2UgUEdQQV9UQUdfTk9fTUVSR0VfSk9JTl9Q TEFJTjoKKwkJCWNhc2UgUEdQQV9UQUdfTk9fTkVTVEVEX0xPT1A6CisJCQljYXNlIFBHUEFf VEFHX05PX05FU1RFRF9MT09QX01BVEVSSUFMSVpFOgorCQkJY2FzZSBQR1BBX1RBR19OT19O RVNURURfTE9PUF9NRU1PSVpFOgorCQkJY2FzZSBQR1BBX1RBR19OT19ORVNURURfTE9PUF9Q TEFJTjoKIAkJCWNhc2UgUEdQQV9UQUdfU0VNSUpPSU5fTk9OX1VOSVFVRToKIAkJCWNhc2Ug UEdQQV9UQUdfU0VNSUpPSU5fVU5JUVVFOgogCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Bs YW5fYWR2aWNlL3BncGFfd2Fsa2VyLmMgYi9jb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFf d2Fsa2VyLmMKaW5kZXggZTQ5MzYxYWUyNjYuLjg5MDUyZTkwNzA3IDEwMDY0NAotLS0gYS9j b250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfd2Fsa2VyLmMKKysrIGIvY29udHJpYi9wZ19w bGFuX2FkdmljZS9wZ3BhX3dhbGtlci5jCkBAIC04OTQsNiArODk0LDc3IEBAIHBncGFfd2Fs a2VyX3dvdWxkX2FkdmlzZShwZ3BhX3BsYW5fd2Fsa2VyX2NvbnRleHQgKndhbGtlciwKIAkJ CQkJCQkJCQkJIHJlbGlkcyk7CiAJCWNhc2UgUEdQQV9UQUdfTk9fR0FUSEVSOgogCQkJcmV0 dXJuIHBncGFfd2Fsa2VyX2NvbnRhaW5zX25vX2dhdGhlcih3YWxrZXIsIHJlbGlkcyk7CisK KwkJCS8qCisJCQkgKiBGb3IgTk9fIHNjYW4gdGFncywgdGhlIGFkdmljZSBpcyBzYXRpc2Zp ZWQgd2hlbiB0aGUgcGxhbiBkb2VzCisJCQkgKiBOT1QgdXNlIHRoZSBmb3JiaWRkZW4gc2Nh biBzdHJhdGVneS4KKwkJCSAqLworCQljYXNlIFBHUEFfVEFHX05PX1NFUV9TQ0FOOgorCQkJ cmV0dXJuIHBncGFfd2Fsa2VyX2ZpbmRfc2Nhbih3YWxrZXIsCisJCQkJCQkJCQkJIFBHUEFf U0NBTl9TRVEsCisJCQkJCQkJCQkJIHJlbGlkcykgPT0gTlVMTDsKKwkJY2FzZSBQR1BBX1RB R19OT19CSVRNQVBfSEVBUF9TQ0FOOgorCQkJcmV0dXJuIHBncGFfd2Fsa2VyX2ZpbmRfc2Nh bih3YWxrZXIsCisJCQkJCQkJCQkJIFBHUEFfU0NBTl9CSVRNQVBfSEVBUCwKKwkJCQkJCQkJ CQkgcmVsaWRzKSA9PSBOVUxMOworCQljYXNlIFBHUEFfVEFHX05PX0lOREVYX1NDQU46CisJ CQlyZXR1cm4gcGdwYV93YWxrZXJfZmluZF9zY2FuKHdhbGtlciwKKwkJCQkJCQkJCQkgUEdQ QV9TQ0FOX0lOREVYLAorCQkJCQkJCQkJCSByZWxpZHMpID09IE5VTEw7CisJCWNhc2UgUEdQ QV9UQUdfTk9fSU5ERVhfT05MWV9TQ0FOOgorCQkJcmV0dXJuIHBncGFfd2Fsa2VyX2ZpbmRf c2Nhbih3YWxrZXIsCisJCQkJCQkJCQkJIFBHUEFfU0NBTl9JTkRFWF9PTkxZLAorCQkJCQkJ CQkJCSByZWxpZHMpID09IE5VTEw7CisJCWNhc2UgUEdQQV9UQUdfTk9fVElEX1NDQU46CisJ CQlyZXR1cm4gcGdwYV93YWxrZXJfZmluZF9zY2FuKHdhbGtlciwKKwkJCQkJCQkJCQkgUEdQ QV9TQ0FOX1RJRCwKKwkJCQkJCQkJCQkgcmVsaWRzKSA9PSBOVUxMOworCisJCQkvKgorCQkJ ICogRm9yIE5PXyBqb2luIHRhZ3MsIHRoZSBhZHZpY2UgaXMgc2F0aXNmaWVkIHdoZW4gdGhl IHBsYW4gZG9lcworCQkJICogTk9UIHVzZSBhbnkgb2YgdGhlIGZvcmJpZGRlbiBqb2luIHN0 cmF0ZWdpZXMuCisJCQkgKi8KKwkJY2FzZSBQR1BBX1RBR19OT19IQVNIX0pPSU46CisJCQly ZXR1cm4gIXBncGFfd2Fsa2VyX2NvbnRhaW5zX2pvaW4od2Fsa2VyLAorCQkJCQkJCQkJCQkg IEpTVFJBVF9IQVNIX0pPSU4sCisJCQkJCQkJCQkJCSAgcmVsaWRzKTsKKwkJY2FzZSBQR1BB X1RBR19OT19NRVJHRV9KT0lOOgorCQkJcmV0dXJuICFwZ3BhX3dhbGtlcl9jb250YWluc19q b2luKHdhbGtlciwKKwkJCQkJCQkJCQkJICBKU1RSQVRfTUVSR0VfSk9JTl9QTEFJTiwKKwkJ CQkJCQkJCQkJICByZWxpZHMpICYmCisJCQkJIXBncGFfd2Fsa2VyX2NvbnRhaW5zX2pvaW4o d2Fsa2VyLAorCQkJCQkJCQkJCSAgIEpTVFJBVF9NRVJHRV9KT0lOX01BVEVSSUFMSVpFLAor CQkJCQkJCQkJCSAgIHJlbGlkcyk7CisJCWNhc2UgUEdQQV9UQUdfTk9fTUVSR0VfSk9JTl9N QVRFUklBTElaRToKKwkJCXJldHVybiAhcGdwYV93YWxrZXJfY29udGFpbnNfam9pbih3YWxr ZXIsCisJCQkJCQkJCQkJCSAgSlNUUkFUX01FUkdFX0pPSU5fTUFURVJJQUxJWkUsCisJCQkJ CQkJCQkJCSAgcmVsaWRzKTsKKwkJY2FzZSBQR1BBX1RBR19OT19NRVJHRV9KT0lOX1BMQUlO OgorCQkJcmV0dXJuICFwZ3BhX3dhbGtlcl9jb250YWluc19qb2luKHdhbGtlciwKKwkJCQkJ CQkJCQkJICBKU1RSQVRfTUVSR0VfSk9JTl9QTEFJTiwKKwkJCQkJCQkJCQkJICByZWxpZHMp OworCQljYXNlIFBHUEFfVEFHX05PX05FU1RFRF9MT09QOgorCQkJcmV0dXJuICFwZ3BhX3dh bGtlcl9jb250YWluc19qb2luKHdhbGtlciwKKwkJCQkJCQkJCQkJICBKU1RSQVRfTkVTVEVE X0xPT1BfUExBSU4sCisJCQkJCQkJCQkJCSAgcmVsaWRzKSAmJgorCQkJCSFwZ3BhX3dhbGtl cl9jb250YWluc19qb2luKHdhbGtlciwKKwkJCQkJCQkJCQkgICBKU1RSQVRfTkVTVEVEX0xP T1BfTUFURVJJQUxJWkUsCisJCQkJCQkJCQkJICAgcmVsaWRzKSAmJgorCQkJCSFwZ3BhX3dh bGtlcl9jb250YWluc19qb2luKHdhbGtlciwKKwkJCQkJCQkJCQkgICBKU1RSQVRfTkVTVEVE X0xPT1BfTUVNT0laRSwKKwkJCQkJCQkJCQkgICByZWxpZHMpOworCQljYXNlIFBHUEFfVEFH X05PX05FU1RFRF9MT09QX01BVEVSSUFMSVpFOgorCQkJcmV0dXJuICFwZ3BhX3dhbGtlcl9j b250YWluc19qb2luKHdhbGtlciwKKwkJCQkJCQkJCQkJICBKU1RSQVRfTkVTVEVEX0xPT1Bf TUFURVJJQUxJWkUsCisJCQkJCQkJCQkJCSAgcmVsaWRzKTsKKwkJY2FzZSBQR1BBX1RBR19O T19ORVNURURfTE9PUF9NRU1PSVpFOgorCQkJcmV0dXJuICFwZ3BhX3dhbGtlcl9jb250YWlu c19qb2luKHdhbGtlciwKKwkJCQkJCQkJCQkJICBKU1RSQVRfTkVTVEVEX0xPT1BfTUVNT0la RSwKKwkJCQkJCQkJCQkJICByZWxpZHMpOworCQljYXNlIFBHUEFfVEFHX05PX05FU1RFRF9M T09QX1BMQUlOOgorCQkJcmV0dXJuICFwZ3BhX3dhbGtlcl9jb250YWluc19qb2luKHdhbGtl ciwKKwkJCQkJCQkJCQkJICBKU1RSQVRfTkVTVEVEX0xPT1BfUExBSU4sCisJCQkJCQkJCQkJ CSAgcmVsaWRzKTsKIAl9CiAKIAkvKiBzaG91bGQgbm90IGdldCBoZXJlICovCmRpZmYgLS1n aXQgYS9jb250cmliL3BnX3BsYW5fYWR2aWNlL3NxbC9ub19qb2luLnNxbCBiL2NvbnRyaWIv cGdfcGxhbl9hZHZpY2Uvc3FsL25vX2pvaW4uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi4xOWE5YWNjOTlmZQotLS0gL2Rldi9udWxsCisrKyBiL2NvbnRy aWIvcGdfcGxhbl9hZHZpY2Uvc3FsL25vX2pvaW4uc3FsCkBAIC0wLDAgKzEsOTIgQEAKK0xP QUQgJ3BnX3BsYW5fYWR2aWNlJzsKK1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0 aGVyID0gMDsKKworQ1JFQVRFIFRBQkxFIG5vX2pvaW5fZGltIChpZCBzZXJpYWwgcHJpbWFy eSBrZXksIGRpbSB0ZXh0KQorCVdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IGZhbHNlKTsK K0lOU0VSVCBJTlRPIG5vX2pvaW5fZGltIChkaW0pIFNFTEVDVCByYW5kb20oKTo6dGV4dCBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMCkgZzsKK1ZBQ1VVTSBBTkFMWVpFIG5vX2pvaW5f ZGltOworCitDUkVBVEUgVEFCTEUgbm9fam9pbl9mYWN0ICgKKwlpZCBpbnQgcHJpbWFyeSBr ZXksCisJZGltX2lkIGludGVnZXIgbm90IG51bGwgcmVmZXJlbmNlcyBub19qb2luX2RpbSAo aWQpCispIFdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IGZhbHNlKTsKK0lOU0VSVCBJTlRP IG5vX2pvaW5fZmFjdAorCVNFTEVDVCBnLCAoZyUzKSsxIEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsMTAwMDAwKSBnOworQ1JFQVRFIElOREVYIG5vX2pvaW5fZmFjdF9kaW1faWQgT04gbm9f am9pbl9mYWN0IChkaW1faWQpOworVkFDVVVNIEFOQUxZWkUgbm9fam9pbl9mYWN0OworCist LSBCYXNlbGluZTogaGFzaCBqb2luIHdpdGggZCBvbiB0aGUgaW5uZXIgc2lkZS4KK0VYUExB SU4gKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUICogRlJPTSBub19qb2luX2Zh Y3QgZiBKT0lOIG5vX2pvaW5fZGltIGQgT04gZi5kaW1faWQgPSBkLmlkOworCistLSBOT19I QVNIX0pPSU4oZCk6IGQgc3RheXMgaW5uZXIsIHBsYW5uZXIgZmFsbHMgYmFjayB0byBhbm90 aGVyIG1ldGhvZC4KK0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9 ICdOT19IQVNIX0pPSU4oZCknOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkK KwlTRUxFQ1QgKiBGUk9NIG5vX2pvaW5fZmFjdCBmIEpPSU4gbm9fam9pbl9kaW0gZCBPTiBm LmRpbV9pZCA9IGQuaWQ7CitDT01NSVQ7CisKKy0tIE5PX0hBU0hfSk9JTihmKTogdGhlIGpv aW4tb3JkZXIgY29uc3RyYWludCBmb3JjZXMgZiB0byB0aGUgaW5uZXIgc2lkZS4KK0JFR0lO OworU0VUIExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdOT19IQVNIX0pPSU4oZikn OworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxFQ1QgKiBGUk9NIG5v X2pvaW5fZmFjdCBmIEpPSU4gbm9fam9pbl9kaW0gZCBPTiBmLmRpbV9pZCA9IGQuaWQ7CitD T01NSVQ7CisKKy0tIE5PX05FU1RFRF9MT09QKGYpOiBmIGZvcmNlZCBpbm5lciwgYWxsIE5M IHZhcmlhbnRzIGZvcmJpZGRlbiAtPiBtZXJnZSBqb2luLgorQkVHSU47CitTRVQgTE9DQUwg cGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ05PX05FU1RFRF9MT09QKGYpJzsKK0VYUExBSU4g KENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUICogRlJPTSBub19qb2luX2ZhY3Qg ZiBKT0lOIG5vX2pvaW5fZGltIGQgT04gZi5kaW1faWQgPSBkLmlkOworQ09NTUlUOworCist LSBOT19NRVJHRV9KT0lOKGQpOiBkIGFscmVhZHkgaW5uZXIsIGhhc2ggam9pbiBzdGlsbCBh bGxvd2VkIC0+IHBsYW4gdW5jaGFuZ2VkLgorQkVHSU47CitTRVQgTE9DQUwgcGdfcGxhbl9h ZHZpY2UuYWR2aWNlID0gJ05PX01FUkdFX0pPSU4oZCknOworRVhQTEFJTiAoQ09TVFMgT0ZG LCBQTEFOX0FEVklDRSkKKwlTRUxFQ1QgKiBGUk9NIG5vX2pvaW5fZmFjdCBmIEpPSU4gbm9f am9pbl9kaW0gZCBPTiBmLmRpbV9pZCA9IGQuaWQ7CitDT01NSVQ7CisKKy0tIFN0YWNraW5n OiBOT19IQVNIX0pPSU4oZikgKyBOT19ORVNURURfTE9PUChmKSBsZWF2ZXMgb25seSBtZXJn ZSBqb2luLgorQkVHSU47CitTRVQgTE9DQUwgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ05P X0hBU0hfSk9JTihmKSBOT19ORVNURURfTE9PUChmKSc7CitFWFBMQUlOIChDT1NUUyBPRkYs IFBMQU5fQURWSUNFKQorCVNFTEVDVCAqIEZST00gbm9fam9pbl9mYWN0IGYgSk9JTiBub19q b2luX2RpbSBkIE9OIGYuZGltX2lkID0gZC5pZDsKK0NPTU1JVDsKKworLS0gU3BlY2lmaWMg Tk9fIHZhcmlhbnRzIHRhcmdldGluZyBkLCBhbHJlYWR5IHRoZSBpbm5lciBzaWRlOiBmb3Ji aWRkaW5nIGFueSBvbmUKKy0tIE5MIG9yIG1lcmdlIHZhcmlhbnQgbGVhdmVzIGhhc2ggam9p biBhdmFpbGFibGUsIHNvIHRoZSBwbGFuIGlzIHVuY2hhbmdlZC4KK0JFR0lOOworU0VUIExP Q0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdOT19ORVNURURfTE9PUF9QTEFJTihkKSc7 CitFWFBMQUlOIChDT1NUUyBPRkYsIFBMQU5fQURWSUNFKQorCVNFTEVDVCAqIEZST00gbm9f am9pbl9mYWN0IGYgSk9JTiBub19qb2luX2RpbSBkIE9OIGYuZGltX2lkID0gZC5pZDsKK1NF VCBMT0NBTCBwZ19wbGFuX2FkdmljZS5hZHZpY2UgPSAnTk9fTkVTVEVEX0xPT1BfTUVNT0la RShkKSc7CitFWFBMQUlOIChDT1NUUyBPRkYsIFBMQU5fQURWSUNFKQorCVNFTEVDVCAqIEZS T00gbm9fam9pbl9mYWN0IGYgSk9JTiBub19qb2luX2RpbSBkIE9OIGYuZGltX2lkID0gZC5p ZDsKK1NFVCBMT0NBTCBwZ19wbGFuX2FkdmljZS5hZHZpY2UgPSAnTk9fTkVTVEVEX0xPT1Bf TUFURVJJQUxJWkUoZCknOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlT RUxFQ1QgKiBGUk9NIG5vX2pvaW5fZmFjdCBmIEpPSU4gbm9fam9pbl9kaW0gZCBPTiBmLmRp bV9pZCA9IGQuaWQ7CitTRVQgTE9DQUwgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ05PX01F UkdFX0pPSU5fUExBSU4oZCknOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkK KwlTRUxFQ1QgKiBGUk9NIG5vX2pvaW5fZmFjdCBmIEpPSU4gbm9fam9pbl9kaW0gZCBPTiBm LmRpbV9pZCA9IGQuaWQ7CitTRVQgTE9DQUwgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ05P X01FUkdFX0pPSU5fTUFURVJJQUxJWkUoZCknOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFO X0FEVklDRSkKKwlTRUxFQ1QgKiBGUk9NIG5vX2pvaW5fZmFjdCBmIEpPSU4gbm9fam9pbl9k aW0gZCBPTiBmLmRpbV9pZCA9IGQuaWQ7CitDT01NSVQ7CisKKy0tIENvbmZsaWN0OiBzYW1l IG1ldGhvZCByZXF1aXJlZCBhbmQgZm9yYmlkZGVuOyBib3RoIG1hcmtlZCBjb25mbGljdGlu Zy4KK0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdIQVNIX0pP SU4oZikgTk9fSEFTSF9KT0lOKGYpJzsKK0VYUExBSU4gKENPU1RTIE9GRiwgUExBTl9BRFZJ Q0UpCisJU0VMRUNUICogRlJPTSBub19qb2luX2ZhY3QgZiBKT0lOIG5vX2pvaW5fZGltIGQg T04gZi5kaW1faWQgPSBkLmlkOworQ09NTUlUOworCistLSBObyBjb25mbGljdDogTk9fSEFT SF9KT0lOKGYpIGFuZCBhIHBvc2l0aXZlIHRhZyBmb3IgYSBkaWZmZXJlbnQgbWV0aG9kLgor QkVHSU47CitTRVQgTE9DQUwgcGdfcGxhbl9hZHZpY2UuYWR2aWNlID0gJ05PX0hBU0hfSk9J TihmKSBORVNURURfTE9PUF9QTEFJTihmKSc7CitFWFBMQUlOIChDT1NUUyBPRkYsIFBMQU5f QURWSUNFKQorCVNFTEVDVCAqIEZST00gbm9fam9pbl9mYWN0IGYgSk9JTiBub19qb2luX2Rp bSBkIE9OIGYuZGltX2lkID0gZC5pZDsKK0NPTU1JVDsKKworRFJPUCBUQUJMRSBub19qb2lu X2ZhY3Q7CitEUk9QIFRBQkxFIG5vX2pvaW5fZGltOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9w Z19wbGFuX2FkdmljZS9zcWwvbm9fc2Nhbi5zcWwgYi9jb250cmliL3BnX3BsYW5fYWR2aWNl L3NxbC9ub19zY2FuLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MC4uYjE4OWVmNzM0NDAKLS0tIC9kZXYvbnVsbAorKysgYi9jb250cmliL3BnX3BsYW5fYWR2 aWNlL3NxbC9ub19zY2FuLnNxbApAQCAtMCwwICsxLDg4IEBACitMT0FEICdwZ19wbGFuX2Fk dmljZSc7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9IDA7CitTRVQg c2VxX3BhZ2VfY29zdCA9IDAuMTsKK1NFVCByYW5kb21fcGFnZV9jb3N0ID0gMC4xOworU0VU IGNwdV90dXBsZV9jb3N0ID0gMDsKK1NFVCBjcHVfaW5kZXhfdHVwbGVfY29zdCA9IDA7CisK K0NSRUFURSBUQUJMRSBub19zY2FuX3RhYmxlIChhIGludCBwcmltYXJ5IGtleSwgYiB0ZXh0 KQorCVdJVEggKGF1dG92YWN1dW1fZW5hYmxlZCA9IGZhbHNlKTsKK0lOU0VSVCBJTlRPIG5v X3NjYW5fdGFibGUKKwlTRUxFQ1QgZywgJ3NvbWUgdGV4dCAnIHx8IGcgRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMTAwMDAwKSBnOworVkFDVVVNIEFOQUxZWkUgbm9fc2Nhbl90YWJsZTsK KworLS0gQmFzZWxpbmVzIHdpdGhvdXQgYWR2aWNlOiBzZXEgc2NhbiBmb3IgYSBmdWxsIHJl YWQsIGluZGV4IHNjYW4gZm9yIGEgbG9va3VwLgorRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFO X0FEVklDRSkKKwlTRUxFQ1QgKiBGUk9NIG5vX3NjYW5fdGFibGU7CitFWFBMQUlOIChDT1NU UyBPRkYsIFBMQU5fQURWSUNFKQorCVNFTEVDVCAqIEZST00gbm9fc2Nhbl90YWJsZSBXSEVS RSBhID0gMTsKKworLS0gTk9fU0VRX1NDQU4gd2l0aCBubyBpbmRleGFibGUgcXVhbDogbm8g YWx0ZXJuYXRpdmUsIHNvIHRoZSBhZHZpY2UgZmFpbHMuCitCRUdJTjsKK1NFVCBMT0NBTCBw Z19wbGFuX2FkdmljZS5hZHZpY2UgPSAnTk9fU0VRX1NDQU4obm9fc2Nhbl90YWJsZSknOwor RVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxFQ1QgKiBGUk9NIG5vX3Nj YW5fdGFibGU7CitDT01NSVQ7CisKKy0tIE5PX1NFUV9TQ0FOIHdpdGggYW4gaW5kZXhhYmxl IHF1YWw6IGZhbGxzIGJhY2sgdG8gaW5kZXggc2Nhbi4KK0JFR0lOOworU0VUIExPQ0FMIHBn X3BsYW5fYWR2aWNlLmFkdmljZSA9ICdOT19TRVFfU0NBTihub19zY2FuX3RhYmxlKSc7CitF WFBMQUlOIChDT1NUUyBPRkYsIFBMQU5fQURWSUNFKQorCVNFTEVDVCAqIEZST00gbm9fc2Nh bl90YWJsZSBXSEVSRSBhID0gMTsKK0NPTU1JVDsKKworLS0gTk9fSU5ERVhfU0NBTjogZmFs bHMgYmFjayB0byBiaXRtYXAgaGVhcCBzY2FuLgorQkVHSU47CitTRVQgTE9DQUwgcGdfcGxh bl9hZHZpY2UuYWR2aWNlID0gJ05PX0lOREVYX1NDQU4obm9fc2Nhbl90YWJsZSknOworRVhQ TEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FEVklDRSkKKwlTRUxFQ1QgKiBGUk9NIG5vX3NjYW5f dGFibGUgV0hFUkUgYSA9IDE7CitDT01NSVQ7CisKKy0tIE5PX0lOREVYX09OTFlfU0NBTjog ZmFsbHMgYmFjayB0byBhIHBsYWluIGluZGV4IHNjYW4uCitCRUdJTjsKK1NFVCBMT0NBTCBw Z19wbGFuX2FkdmljZS5hZHZpY2UgPSAnTk9fSU5ERVhfT05MWV9TQ0FOKG5vX3NjYW5fdGFi bGUpJzsKK0VYUExBSU4gKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNUIGEgRlJP TSBub19zY2FuX3RhYmxlIFdIRVJFIGEgPSAxOworQ09NTUlUOworCistLSBOT19CSVRNQVBf SEVBUF9TQ0FOOiB3aXRoIG9ubHkgYSBCUklOIGluZGV4IGF2YWlsYWJsZSwgZmFsbHMgYmFj ayB0byBzZXEgc2Nhbi4KK0NSRUFURSBJTkRFWCBub19zY2FuX3RhYmxlX2IgT04gbm9fc2Nh bl90YWJsZSBVU0lORyBicmluIChiKTsKK1ZBQ1VVTSBBTkFMWVpFIG5vX3NjYW5fdGFibGU7 CitCRUdJTjsKK1NFVCBMT0NBTCBwZ19wbGFuX2FkdmljZS5hZHZpY2UgPSAnTk9fQklUTUFQ X0hFQVBfU0NBTihub19zY2FuX3RhYmxlKSc7CitFWFBMQUlOIChDT1NUUyBPRkYsIFBMQU5f QURWSUNFKQorCVNFTEVDVCAqIEZST00gbm9fc2Nhbl90YWJsZSBXSEVSRSBiID4gJ3NvbWUg dGV4dCA4JzsKK0NPTU1JVDsKKworLS0gTk9fVElEX1NDQU46IGZhbGxzIGJhY2sgdG8gc2Vx IHNjYW4uCitCRUdJTjsKK1NFVCBMT0NBTCBwZ19wbGFuX2FkdmljZS5hZHZpY2UgPSAnTk9f VElEX1NDQU4obm9fc2Nhbl90YWJsZSknOworRVhQTEFJTiAoQ09TVFMgT0ZGLCBQTEFOX0FE VklDRSkKKwlTRUxFQ1QgKiBGUk9NIG5vX3NjYW5fdGFibGUgV0hFUkUgY3RpZCA9ICcoMCwx KSc7CitDT01NSVQ7CisKKy0tIE11bHRpcGxlIE5PXyBzY2FuIHRhZ3Mgc3RhY2sgd2l0aG91 dCBjb25mbGljdC4KK0JFR0lOOworU0VUIExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9 ICdOT19TRVFfU0NBTihub19zY2FuX3RhYmxlKSBOT19CSVRNQVBfSEVBUF9TQ0FOKG5vX3Nj YW5fdGFibGUpJzsKK0VYUExBSU4gKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNU ICogRlJPTSBub19zY2FuX3RhYmxlIFdIRVJFIGEgPSAxOworQ09NTUlUOworCistLSBDb25m bGljdDogc2FtZSBtZXRob2QgcmVxdWlyZWQgYW5kIGZvcmJpZGRlbjsgYm90aCBjb25mbGlj dGluZywgbmVpdGhlciBhcHBsaWVkLgorQkVHSU47CitTRVQgTE9DQUwgcGdfcGxhbl9hZHZp Y2UuYWR2aWNlID0gJ1NFUV9TQ0FOKG5vX3NjYW5fdGFibGUpIE5PX1NFUV9TQ0FOKG5vX3Nj YW5fdGFibGUpJzsKK0VYUExBSU4gKENPU1RTIE9GRiwgUExBTl9BRFZJQ0UpCisJU0VMRUNU ICogRlJPTSBub19zY2FuX3RhYmxlOworQ09NTUlUOworCistLSBObyBjb25mbGljdDogTk9f U0VRX1NDQU4gYW5kIGEgcG9zaXRpdmUgSU5ERVhfU0NBTiBhcmUgY29tcGF0aWJsZS4KK0JF R0lOOworU0VUIExPQ0FMIHBnX3BsYW5fYWR2aWNlLmFkdmljZSA9ICdOT19TRVFfU0NBTihu b19zY2FuX3RhYmxlKSBJTkRFWF9TQ0FOKG5vX3NjYW5fdGFibGUgbm9fc2Nhbl90YWJsZV9w a2V5KSc7CitFWFBMQUlOIChDT1NUUyBPRkYsIFBMQU5fQURWSUNFKQorCVNFTEVDVCAqIEZS T00gbm9fc2Nhbl90YWJsZSBXSEVSRSBhID0gMTsKK0NPTU1JVDsKKworLS0gU2NhbiB0YWdz IGZvcmJpZCBzdWJsaXN0cyAoc2ltcGxlX3RhcmdldF9saXN0KTogdGhpcyBpcyBhIHN5bnRh eCBlcnJvci4KK1NFVCBwZ19wbGFuX2FkdmljZS5hZHZpY2UgPSAnTk9fU0VRX1NDQU4oKG5v X3NjYW5fdGFibGUgbm9fc2Nhbl90YWJsZSkpJzsKKworRFJPUCBUQUJMRSBub19zY2FuX3Rh YmxlOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BncGxhbmFkdmljZS5zZ21sIGIvZG9j L3NyYy9zZ21sL3BncGxhbmFkdmljZS5zZ21sCmluZGV4IGIxMzk1ZWM5NTFlLi5kZmY2NTk0 YTU0YiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BncGxhbmFkdmljZS5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9wZ3BsYW5hZHZpY2Uuc2dtbApAQCAtMzIwLDYgKzMyMCw1OCBAQCBE T19OT1RfU0NBTig8cmVwbGFjZWFibGU+dGFyZ2V0PC9yZXBsYWNlYWJsZT4gWyAuLi4gXSk8 L3N5bm9wc2lzPgogCiAgIDwvc2VjdDM+CiAKKyAgPHNlY3QzIGlkPSJwZ3BsYW5hZHZpY2Ut bm8tc2Nhbi1tZXRob2QiPgorICA8dGl0bGU+TmVnYXRpdmUgU2NhbiBNZXRob2QgQWR2aWNl PC90aXRsZT4KKyAgIDxzeW5vcHNpcz4KK05PX1NFUV9TQ0FOKDxyZXBsYWNlYWJsZT50YXJn ZXQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdKQorTk9fVElEX1NDQU4oPHJlcGxhY2VhYmxlPnRh cmdldDwvcmVwbGFjZWFibGU+IFsgLi4uIF0pCitOT19JTkRFWF9TQ0FOKDxyZXBsYWNlYWJs ZT50YXJnZXQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdKQorTk9fSU5ERVhfT05MWV9TQ0FOKDxy ZXBsYWNlYWJsZT50YXJnZXQ8L3JlcGxhY2VhYmxlPiBbIC4uLiBdKQorTk9fQklUTUFQX0hF QVBfU0NBTig8cmVwbGFjZWFibGU+dGFyZ2V0PC9yZXBsYWNlYWJsZT4gWyAuLi4gXSk8L3N5 bm9wc2lzPgorCisgICA8cGFyYT4KKyAgICBUaGVzZSB0YWdzIGFyZSB0aGUgbmVnYXRpdmUg Y291bnRlcnBhcnRzIG9mIHRoZSBwb3NpdGl2ZSBzY2FuIG1ldGhvZCB0YWdzLgorICAgIEVh Y2ggPGxpdGVyYWw+Tk9fPC9saXRlcmFsPiB0YWcgZm9yYmlkcyB0aGUgY29ycmVzcG9uZGlu ZyBzY2FuIG1ldGhvZCBmb3IKKyAgICB0aGUgc3BlY2lmaWVkIHJlbGF0aW9uIG9yIHJlbGF0 aW9ucy4gVGhlIHBsYW5uZXIgd2lsbCBjaG9vc2UgYW55IG90aGVyCisgICAgZWxpZ2libGUg c2NhbiBtZXRob2QgaW5zdGVhZC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgRm9y IGV4YW1wbGUsIDxsaXRlcmFsPk5PX1NFUV9TQ0FOKHQpPC9saXRlcmFsPiB0ZWxscyB0aGUg cGxhbm5lciBub3QgdG8KKyAgICB1c2UgYSA8bGl0ZXJhbD5TZXEgU2NhbjwvbGl0ZXJhbD4g b24gPGxpdGVyYWw+dDwvbGl0ZXJhbD4uIElmIHRoZSBvbmx5CisgICAgdmlhYmxlIGFsdGVy bmF0aXZlIGlzIGFuIGluZGV4IHNjYW4sIHRoZSBwbGFubmVyIHdpbGwgdXNlIHRoYXQuIElm IG5vCisgICAgYWx0ZXJuYXRpdmUgaXMgYXZhaWxhYmxlLCB0aGUgcGxhbiBzdGlsbCB1c2Vz IHRoZSBmb3JiaWRkZW4gbWV0aG9kIGFuZCB0aGUKKyAgICBhZHZpY2UgaXMgcmVwb3J0ZWQg YXMgPGxpdGVyYWw+ZmFpbGVkPC9saXRlcmFsPi4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+ CisgICAgVW5saWtlIHRoZSBwb3NpdGl2ZSBzY2FuIG1ldGhvZCB0YWdzLCBtdWx0aXBsZSBu ZWdhdGl2ZSBzY2FuIG1ldGhvZCB0YWdzCisgICAgZm9yIHRoZSBzYW1lIHJlbGF0aW9uIGNh biBiZSBjb21iaW5lZCBmcmVlbHkgd2l0aG91dCBjb25mbGljdC4gRm9yIGV4YW1wbGUsCisg ICAgPGxpdGVyYWw+Tk9fU0VRX1NDQU4odCkgTk9fQklUTUFQX0hFQVBfU0NBTih0KTwvbGl0 ZXJhbD4gaXMgdmFsaWQgYW5kCisgICAgcmVzdHJpY3RzIHRoZSBwbGFubmVyIHRvIHVzZSBh biBpbmRleCBzY2FuIG9yIFRJRCBzY2FuIG9uIDxsaXRlcmFsPnQ8L2xpdGVyYWw+LgorICAg PC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBBIG5lZ2F0aXZlIHRhZyBhbmQgYSBwb3NpdGl2 ZSB0YWcgc3BlY2lmeWluZyB0aGUgc2FtZSBtZXRob2QgYXJlIGluCisgICAgY29uZmxpY3Qg d2l0aCBlYWNoIG90aGVyLiBGb3IgZXhhbXBsZSwgPGxpdGVyYWw+U0VRX1NDQU4odCkKKyAg ICBOT19TRVFfU0NBTih0KTwvbGl0ZXJhbD4gaXMgYSBjb250cmFkaWN0aW9uLCBhbmQgYm90 aCBwaWVjZXMgb2YgYWR2aWNlIHdpbGwKKyAgICBiZSBtYXJrZWQgPGxpdGVyYWw+Y29uZmxp Y3Rpbmc8L2xpdGVyYWw+LiBIb3dldmVyLCBhIG5lZ2F0aXZlIHRhZyBmb3Igb25lCisgICAg bWV0aG9kIGRvZXMgbm90IGNvbmZsaWN0IHdpdGggYSBwb3NpdGl2ZSB0YWcgZm9yIGEgZGlm ZmVyZW50IG1ldGhvZC4gRm9yCisgICAgaW5zdGFuY2UsIDxsaXRlcmFsPk5PX1NFUV9TQ0FO KHQpIElOREVYX1NDQU4odCBteV9pbmRleCk8L2xpdGVyYWw+IGlzIG5vdCBhCisgICAgY29u ZmxpY3Q6IHRoZSBpbmRleCBzY2FuIGlzIGVuZm9yY2VkIGFuZCB0aGUgcHJvaGliaXRpb24g b24gc2VxdWVudGlhbCBzY2FucworICAgIGlzIGFsc28gc2F0aXNmaWVkLgorICAgPC9wYXJh PgorCisgICA8cGFyYT4KKyAgICBOb3RlIHRoYXQgPGxpdGVyYWw+Tk9fU0VRX1NDQU4oKHgg eSkpPC9saXRlcmFsPiBhbmQgc2ltaWxhciBmb3JtcyB3aXRoIGEKKyAgICBwYXJlbnRoZXNp emVkIHN1Ymxpc3QgYXJlIG5vdCB2YWxpZCBzeW50YXggZm9yIG5lZ2F0aXZlIHNjYW4gdGFn cywgYmVjYXVzZQorICAgIHNjYW4gbWV0aG9kcyBhcHBseSB0byBpbmRpdmlkdWFsIHJlbGF0 aW9ucywgbm90IGpvaW4gcHJvZHVjdHMuIE5lZ2F0aXZlIHNjYW4KKyAgICB0YWdzIHVzZSB0 aGUgc2FtZSB0YXJnZXQgc3ludGF4IGFzIHRoZWlyIHBvc2l0aXZlIGNvdW50ZXJwYXJ0czog YQorICAgIGZsYXQgbGlzdCBvZiByZWxhdGlvbiBpZGVudGlmaWVycy4KKyAgIDwvcGFyYT4K KworICA8L3NlY3QzPgorCiAgIDxzZWN0MyBpZD0icGdwbGFuYWR2aWNlLWpvaW4tb3JkZXIi PgogICA8dGl0bGU+Sm9pbiBPcmRlciBBZHZpY2U8L3RpdGxlPgogICAgPHN5bm9wc2lzPgpA QCAtNDMzLDYgKzQ4NSw4MyBAQCBqb2luX21ldGhvZF9uYW1lKDxyZXBsYWNlYWJsZT5qb2lu X21ldGhvZF9pdGVtPC9yZXBsYWNlYWJsZT4gWyAuLi4gXSkKIAogICA8L3NlY3QzPgogCisg IDxzZWN0MyBpZD0icGdwbGFuYWR2aWNlLW5vLWpvaW4tbWV0aG9kIj4KKyAgPHRpdGxlPk5l Z2F0aXZlIEpvaW4gTWV0aG9kIEFkdmljZTwvdGl0bGU+CisgICA8c3lub3BzaXM+Citub19q b2luX21ldGhvZF9uYW1lKDxyZXBsYWNlYWJsZT5qb2luX21ldGhvZF9pdGVtPC9yZXBsYWNl YWJsZT4gWyAuLi4gXSkKKworPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGU+bm9fam9pbl9t ZXRob2RfbmFtZTwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCit7IE5PX0hBU0hfSk9J TiB8CisgIE5PX05FU1RFRF9MT09QIHwgTk9fTkVTVEVEX0xPT1BfUExBSU4gfCBOT19ORVNU RURfTE9PUF9NQVRFUklBTElaRSB8IE5PX05FU1RFRF9MT09QX01FTU9JWkUgfAorICBOT19N RVJHRV9KT0lOIHwgTk9fTUVSR0VfSk9JTl9QTEFJTiB8IE5PX01FUkdFX0pPSU5fTUFURVJJ QUxJWkUgfQorCis8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGU+am9pbl9tZXRob2RfaXRlbTwv cmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCit7IDxyZXBsYWNlYWJsZT5hZHZpY2VfdGFy Z2V0PC9yZXBsYWNlYWJsZT4gfAorKCA8cmVwbGFjZWFibGU+YWR2aWNlX3RhcmdldDwvcmVw bGFjZWFibGU+IFsgLi4uIF0gKSB9PC9zeW5vcHNpcz4KKworICAgPHBhcmE+CisgICAgVGhl c2UgdGFncyBhcmUgdGhlIG5lZ2F0aXZlIGNvdW50ZXJwYXJ0cyBvZiB0aGUgcG9zaXRpdmUg am9pbiBtZXRob2QgdGFncy4KKyAgICBBIG5lZ2F0aXZlIGpvaW4gbWV0aG9kIHRhZyBzcGVj aWZpZXMgdGhhdCB0aGUgbmFtZWQgam9pbiBtZXRob2QgKG9yIGZhbWlseQorICAgIG9mIGpv aW4gbWV0aG9kcykgc2hvdWxkIDxlbXBoYXNpcz5ub3Q8L2VtcGhhc2lzPiBiZSB1c2VkIHdo ZW4gdGhlIHNwZWNpZmllZAorICAgIHJlbGF0aW9uIG9yIHNldCBvZiByZWxhdGlvbnMgYXBw ZWFycyBvbiB0aGUgaW5uZXIgc2lkZSBvZiBhIGpvaW4uIFRoZQorICAgIHBsYW5uZXIgd2ls bCBjaG9vc2UgYW55IG90aGVyIGVsaWdpYmxlIGpvaW4gbWV0aG9kIGluc3RlYWQuCisgICA8 L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEJvdGggYSBjb2Fyc2VyIGdyb3VwIGZvcm0gYW5k IGEgZmluZXIgc3BlY2lmaWMgZm9ybSBhcmUgYXZhaWxhYmxlIGZvcgorICAgIG5lc3RlZC1s b29wIGFuZCBtZXJnZS1qb2luLiA8bGl0ZXJhbD5OT19ORVNURURfTE9PUCh0KTwvbGl0ZXJh bD4gZGlzYWJsZXMKKyAgICBhbGwgdGhyZWUgbmVzdGVkLWxvb3AgdmFyaWFudHMgKDxsaXRl cmFsPk5FU1RFRF9MT09QX1BMQUlOPC9saXRlcmFsPiwKKyAgICA8bGl0ZXJhbD5ORVNURURf TE9PUF9NQVRFUklBTElaRTwvbGl0ZXJhbD4sIGFuZAorICAgIDxsaXRlcmFsPk5FU1RFRF9M T09QX01FTU9JWkU8L2xpdGVyYWw+KSwgd2hpbGUKKyAgICA8bGl0ZXJhbD5OT19ORVNURURf TE9PUF9QTEFJTih0KTwvbGl0ZXJhbD4gZGlzYWJsZXMgb25seSB0aGUgcGxhaW4gdmFyaWFu dCwKKyAgICBsZWF2aW5nIHRoZSBvdGhlciB0d28gYXZhaWxhYmxlLiBTaW1pbGFybHksCisg ICAgPGxpdGVyYWw+Tk9fTUVSR0VfSk9JTih0KTwvbGl0ZXJhbD4gZGlzYWJsZXMgYm90aCBt ZXJnZS1qb2luIHZhcmlhbnRzLCB3aGlsZQorICAgIDxsaXRlcmFsPk5PX01FUkdFX0pPSU5f UExBSU4odCk8L2xpdGVyYWw+IGFuZAorICAgIDxsaXRlcmFsPk5PX01FUkdFX0pPSU5fTUFU RVJJQUxJWkUodCk8L2xpdGVyYWw+IHRhcmdldCBpbmRpdmlkdWFsIHZhcmlhbnRzLgorICAg IDxsaXRlcmFsPk5PX0hBU0hfSk9JTjwvbGl0ZXJhbD4gaGFzIG9ubHkgb25lIGZvcm0gc2lu Y2UgdGhlcmUgaXMgb25seSBvbmUKKyAgICBoYXNoLWpvaW4gdmFyaWFudC4KKyAgIDwvcGFy YT4KKworICAgPHBhcmE+CisgICAgTGlrZSBwb3NpdGl2ZSBqb2luIG1ldGhvZCB0YWdzLCBu ZWdhdGl2ZSBqb2luIG1ldGhvZCB0YWdzIGFjY2VwdAorICAgIHBhcmVudGhlc2l6ZWQgc3Vi bGlzdHMgc3BlY2lmeWluZyBhIHNldCBvZiByZWxhdGlvbnMgdGhhdCBzaG91bGQgYXBwZWFy CisgICAgdG9nZXRoZXIgb24gdGhlIGlubmVyIHNpZGUuIEZvciBleGFtcGxlLAorICAgIDxs aXRlcmFsPk5PX0hBU0hfSk9JTigoYSBiKSk8L2xpdGVyYWw+IG1lYW5zIHRoYXQgdGhlIGpv aW4gcHJvZHVjdCBvZgorICAgIDxsaXRlcmFsPmE8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5i PC9saXRlcmFsPiBzaG91bGQgbm90IGFwcGVhciB0b2dldGhlciBvbgorICAgIHRoZSBpbm5l ciBzaWRlIG9mIGEgaGFzaCBqb2luLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBO ZWdhdGl2ZSBqb2luIG1ldGhvZCB0YWdzIGltcG9zZSB0aGUgc2FtZSBqb2luLW9yZGVyIGNv bnN0cmFpbnQgYXMgdGhlaXIKKyAgICBwb3NpdGl2ZSBjb3VudGVycGFydHM6IHRoZSBzcGVj aWZpZWQgcmVsYXRpb24gKG9yIGpvaW4gcHJvZHVjdCkgY2Fubm90CisgICAgYmVjb21lIHRo ZSBkcml2aW5nIHRhYmxlLiBGb3IgZXhhbXBsZSwgPGxpdGVyYWw+Tk9fSEFTSF9KT0lOKHQp PC9saXRlcmFsPgorICAgIGltcGxpZXMgdGhhdCA8bGl0ZXJhbD50PC9saXRlcmFsPiBjYW5u b3QgYmUgdGhlIG91dGVybW9zdCByZWxhdGlvbiBpbiB0aGUKKyAgICBqb2luLCBleGFjdGx5 IGFzIDxsaXRlcmFsPkhBU0hfSk9JTih0KTwvbGl0ZXJhbD4gd291bGQuIFRoaW5rIG9mCisg ICAgPGxpdGVyYWw+Tk9fSEFTSF9KT0lOKHQpPC9saXRlcmFsPiBhcyBzYXlpbmcKKyAgICA8 cXVvdGU+dXNlIGFueXRoaW5nIGJ1dCBhIGhhc2ggam9pbiwgYnV0IGtlZXAgPGxpdGVyYWw+ dDwvbGl0ZXJhbD4gb24gdGhlCisgICAgaW5uZXIgc2lkZS48L3F1b3RlPgorICAgPC9wYXJh PgorCisgICA8cGFyYT4KKyAgICBNdWx0aXBsZSBuZWdhdGl2ZSBqb2luIG1ldGhvZCB0YWdz IGZvciB0aGUgc2FtZSByZWxhdGlvbiBjYW4gYmUgY29tYmluZWQKKyAgICBmcmVlbHkuIEZv ciBleGFtcGxlLCA8bGl0ZXJhbD5OT19IQVNIX0pPSU4odCkgTk9fTkVTVEVEX0xPT1AodCk8 L2xpdGVyYWw+CisgICAgcmVzdHJpY3RzIHRoZSBwbGFubmVyIHRvIG1lcmdlLWpvaW4gd2hl biA8bGl0ZXJhbD50PC9saXRlcmFsPiBpcyBvbiB0aGUKKyAgICBpbm5lciBzaWRlLiBBIG5l Z2F0aXZlIHRhZyBmb3Igb25lIG1ldGhvZCBkb2VzIG5vdCBjb25mbGljdCB3aXRoIGEgcG9z aXRpdmUKKyAgICB0YWcgZm9yIGEgZGlmZmVyZW50IG1ldGhvZDogPGxpdGVyYWw+Tk9fSEFT SF9KT0lOKHQpCisgICAgTkVTVEVEX0xPT1BfUExBSU4odCk8L2xpdGVyYWw+IGlzIG5vdCBh IGNvbmZsaWN0LgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBBIG5lZ2F0aXZlIHRh ZyBhbmQgYSBwb3NpdGl2ZSB0YWcgc3BlY2lmeWluZyB0aGUgc2FtZSBqb2luIG1ldGhvZCBh cmUgaW4KKyAgICBjb25mbGljdC4gRm9yIGV4YW1wbGUsIDxsaXRlcmFsPkhBU0hfSk9JTih0 KSBOT19IQVNIX0pPSU4odCk8L2xpdGVyYWw+CisgICAgY29udHJhZGljdHMgaXRzZWxmLCBh bmQgYm90aCBlbnRyaWVzIHdpbGwgYmUgbWFya2VkCisgICAgPGxpdGVyYWw+Y29uZmxpY3Rp bmc8L2xpdGVyYWw+LgorICAgPC9wYXJhPgorCisgIDwvc2VjdDM+CisKICAgPHNlY3QzIGlk PSJwZ3BsYW5hZHZpY2UtcGFydGl0aW9ud2lzZSI+CiAgIDx0aXRsZT5QYXJ0aXRpb253aXNl IEFkdmljZTwvdGl0bGU+CiAgICA8c3lub3BzaXM+Ci0tIAoyLjQ1LjEKCg== --------------zqimEjz8Z0sgbfkaRlZaFS74--