From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 3B9C11FF16B for ; Fri, 24 Oct 2025 12:17:35 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D2F4B1E07F; Fri, 24 Oct 2025 12:18:02 +0200 (CEST) Content-Type: multipart/mixed; boundary=e2fd05efc7100ccf56365d54f233ff4ad69b0ab6a913b2b0255bbfc640af Mime-Version: 1.0 Date: Fri, 24 Oct 2025 12:17:25 +0200 Message-Id: To: "Dominik Csapak" X-Mailer: aerc 0.20.0 References: <20251023083253.1038119-1-d.csapak@proxmox.com> <20251023083253.1038119-16-d.csapak@proxmox.com> <336b436e-10f4-4ad4-ad28-1b470fdecb56@proxmox.com> In-Reply-To: <336b436e-10f4-4ad4-ad28-1b470fdecb56@proxmox.com> From: "Shannon Sterz" X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1761301036494 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.055 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to URIBL was blocked. See http://wiki.apache.org/spamassassin/DnsBlocklists#dnsbl-block for more information. [d.data, view.rs] Subject: Re: [pdm-devel] [RFC PATCH datacenter-manager v2 15/16] ui: dashboard: implement 'View' X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Cc: Proxmox Datacenter Manager development discussion Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" --e2fd05efc7100ccf56365d54f233ff4ad69b0ab6a913b2b0255bbfc640af Content-Type: multipart/alternative; boundary=0ab1bcfb7102e1f81018917a98142f2ea1478b6a9cd4e2ef82519dc3ebc1 --0ab1bcfb7102e1f81018917a98142f2ea1478b6a9cd4e2ef82519dc3ebc1 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8 On 10/23/25 1:44 PM, Dominik Csapak wrote: > On 10/23/25 1:19 PM, Shannon Sterz wrote: >> On Thu Oct 23, 2025 at 10:28 AM CEST, Dominik Csapak wrote: > [snip] >>> + >>> +struct ViewComp { >>> +=C2=A0=C2=A0=C2=A0 template: LoadResult, >>> + >>> +=C2=A0=C2=A0=C2=A0 // various api call results >>> +=C2=A0=C2=A0=C2=A0 status: LoadResult, >>> +=C2=A0=C2=A0=C2=A0 top_entities: LoadResult, >>> +=C2=A0=C2=A0=C2=A0 statistics: LoadResult, >> >> this is fine, but i just had an idea, maybe this isn't too useful right >> now, but might be worth exploring: we could turn this into a HashMap >> with something like this: >> >> HashMap> >> >> then loading could become iterating over the keys and calling a function >> on them. with a wrapper type we could even implement a getter that >> transforms the ApiResponseData to a concrete type. might cut down on the >> loading logic below and make this more easily extensible in the future. >> >> the required_api_calls below could then just return such a hashmap with >> only the necessary keys. what do you think (note i haven't tested any of >> this)? > > i don't think this will work, since ApiResponseData itself takes a > generic parameter too, and we can't use different ones for different > values of the same hashmap AFAIK > > but yeah, we should think about how we could generalize this > instead of just adding on new members... > sorry seems I dropped the list in my last response... so sending this again. thought about this a bit. we can leverage DeserializeOwned and Value here quite a bit to make it work. i did a bit of messing around and came up with the attached patch. this certainly isn't perfect or polished (e.g. we could use wrapper types to move the get_entities function somewhere more sensible; safe a clone here or there etc.), but the general gist is there. it also works so yeah :) --0ab1bcfb7102e1f81018917a98142f2ea1478b6a9cd4e2ef82519dc3ebc1-- --e2fd05efc7100ccf56365d54f233ff4ad69b0ab6a913b2b0255bbfc640af Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-wip-ui-view-refactor-loading-logic-to-use-hashmap.patch Content-Type: text/x-patch; charset=utf-8; name=0001-wip-ui-view-refactor-loading-logic-to-use-hashmap.patch RnJvbSBlMjY2NTg0ZmM4ZWZhNDUwNDEzNWU5NTVjNGU2NGFlN2FiZGEyN2I0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGFubm9uIFN0ZXJ6IDxzLnN0ZXJ6QHByb3htb3guY29tPgpE YXRlOiBGcmksIDI0IE9jdCAyMDI1IDEyOjEwOjQxICswMjAwClN1YmplY3Q6IFtQQVRDSF0gd2lw OiB1aTogdmlldzogcmVmYWN0b3IgbG9hZGluZyBsb2dpYyB0byB1c2UgaGFzaG1hcAoKdGhpcyBp cyBtb3N0bHkganVzdCBhIHBvYyB0aGF0IHdlIGNvdWxkIHVzZSBhIGhhc2htYXAgb2YgbG9hZGFi bGUKZW50aXRpZXMgaW5zdGVhZCBvZiBoYXZpbmcgdG8gc3BlY2lmeSBhIGZpZWxkIGZvciBlYWNo IHNlcGFyYXRlbHkuCi0tLQogc2VydmVyL3NyYy9tZXRyaWNfY29sbGVjdGlvbi90b3BfZW50aXRp ZXMucnMgfCAgIDIgKy0KIHVpL3NyYy9kYXNoYm9hcmQvdG9wX2VudGl0aWVzLnJzICAgICAgICAg ICAgIHwgICAyICstCiB1aS9zcmMvZGFzaGJvYXJkL3ZpZXcucnMgICAgICAgICAgICAgICAgICAg ICB8IDIyMiArKysrKysrKysrKy0tLS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDEyOCBpbnNlcnRp b25zKCspLCA5OCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zZXJ2ZXIvc3JjL21ldHJpY19j b2xsZWN0aW9uL3RvcF9lbnRpdGllcy5ycyBiL3NlcnZlci9zcmMvbWV0cmljX2NvbGxlY3Rpb24v dG9wX2VudGl0aWVzLnJzCmluZGV4IGVhMTIxZWUuLjczYTNlNjMgMTAwNjQ0Ci0tLSBhL3NlcnZl ci9zcmMvbWV0cmljX2NvbGxlY3Rpb24vdG9wX2VudGl0aWVzLnJzCisrKyBiL3NlcnZlci9zcmMv bWV0cmljX2NvbGxlY3Rpb24vdG9wX2VudGl0aWVzLnJzCkBAIC0zNiw3ICszNiw3IEBAIHB1YiBm biBjYWxjdWxhdGVfdG9wKAogICAgIHJlbW90ZXM6ICZIYXNoTWFwPFN0cmluZywgcGRtX2FwaV90 eXBlczo6cmVtb3Rlczo6UmVtb3RlPiwKICAgICB0aW1lZnJhbWU6IHByb3htb3hfcnJkX2FwaV90 eXBlczo6UnJkVGltZWZyYW1lLAogICAgIG51bTogdXNpemUsCi0gICAgY2hlY2tfcmVtb3RlX3By aXZzOiBpbXBsIEZuKCZzdHIpIC0+IGJvb2wKKyAgICBjaGVja19yZW1vdGVfcHJpdnM6IGltcGwg Rm4oJnN0cikgLT4gYm9vbCwKICkgLT4gVG9wRW50aXRpZXMgewogICAgIGxldCBtdXQgZ3Vlc3Rf Y3B1ID0gVmVjOjpuZXcoKTsKICAgICBsZXQgbXV0IG5vZGVfY3B1ID0gVmVjOjpuZXcoKTsKZGlm ZiAtLWdpdCBhL3VpL3NyYy9kYXNoYm9hcmQvdG9wX2VudGl0aWVzLnJzIGIvdWkvc3JjL2Rhc2hi b2FyZC90b3BfZW50aXRpZXMucnMKaW5kZXggZGZlMzg2OS4uMjVlNjJjNCAxMDA2NDQKLS0tIGEv dWkvc3JjL2Rhc2hib2FyZC90b3BfZW50aXRpZXMucnMKKysrIGIvdWkvc3JjL2Rhc2hib2FyZC90 b3BfZW50aXRpZXMucnMKQEAgLTMyOCw3ICszMjgsNyBAQCBmbiBncmFwaF9mcm9tX2RhdGEoZGF0 YTogJlZlYzxPcHRpb248ZjY0Pj4sIHRocmVzaG9sZDogZjY0KSAtPiBDb250YWluZXIgewogCiBw dWIgZm4gY3JlYXRlX3RvcF9lbnRpdGllc19wYW5lbCgKICAgICBlbnRpdGllczogT3B0aW9uPFZl YzxUb3BFbnRpdHk+PiwKLSAgICBlcnJvcjogT3B0aW9uPCZwcm94bW94X2NsaWVudDo6RXJyb3I+ LAorICAgIGVycm9yOiBPcHRpb248JmFueWhvdzo6RXJyb3I+LAogICAgIGxlYWRlcmJvYXJkX3R5 cGU6IExlYWRlcmJvYXJkVHlwZSwKICkgLT4gUGFuZWwgewogICAgIGxldCAoaWNvbiwgdGl0bGUs IG1ldHJpY3NfdGl0bGUsIHRocmVzaG9sZCkgPSBtYXRjaCBsZWFkZXJib2FyZF90eXBlIHsKZGlm ZiAtLWdpdCBhL3VpL3NyYy9kYXNoYm9hcmQvdmlldy5ycyBiL3VpL3NyYy9kYXNoYm9hcmQvdmll dy5ycwppbmRleCA2Y2VhOWY4Li44MGQxYzU1IDEwMDY0NAotLS0gYS91aS9zcmMvZGFzaGJvYXJk L3ZpZXcucnMKKysrIGIvdWkvc3JjL2Rhc2hib2FyZC92aWV3LnJzCkBAIC0xLDEwICsxLDE0IEBA Cit1c2Ugc3RkOjpjb2xsZWN0aW9uczo6SGFzaE1hcDsKK3VzZSBzdGQ6Omhhc2g6Okhhc2g7CiB1 c2Ugc3RkOjpyYzo6UmM7CiAKLXVzZSBhbnlob3c6OkVycm9yOwotdXNlIGZ1dHVyZXM6OmpvaW47 Cit1c2UgYW55aG93Ojp7Zm9ybWF0X2VyciwgRXJyb3J9OwordXNlIGZ1dHVyZXM6OmZ1dHVyZTo6 c2VsZWN0X2FsbDsKK3VzZSBodG1sOjpTY29wZTsKIHVzZSBqc19zeXM6OkRhdGU7Ci11c2UgcHd0 Ojp3aWRnZXQ6OmZvcm06OkZvcm1Db250ZXh0OwordXNlIHNlcmRlOjpkZTo6RGVzZXJpYWxpemVP d25lZDsKIHVzZSBzZXJkZV9qc29uOjpqc29uOwordXNlIHNlcmRlX2pzb246OlZhbHVlOwogdXNl IHlldzo6dmlydHVhbF9kb206OntWQ29tcCwgVk5vZGV9OwogCiB1c2UgcHJveG1veF95ZXdfY29t cDo6aHR0cF9nZXQ7CkBAIC0xMiw2ICsxNiw3IEBAIHVzZSBwd3Q6OmNzczsKIHVzZSBwd3Q6OnBy ZWx1ZGU6Oio7CiB1c2UgcHd0Ojpwcm9wczo6U3RvcmFnZUxvY2F0aW9uOwogdXNlIHB3dDo6c3Rh dGU6OlBlcnNpc3RlbnRTdGF0ZTsKK3VzZSBwd3Q6OndpZGdldDo6Zm9ybTo6Rm9ybUNvbnRleHQ7 CiB1c2UgcHd0Ojp3aWRnZXQ6OntlcnJvcl9tZXNzYWdlLCBDb2x1bW4sIENvbnRhaW5lciwgUGFu ZWwsIFByb2dyZXNzLCBSb3d9OwogdXNlIHB3dDo6QXN5bmNQb29sOwogCkBAIC0zMiw4ICszNyw2 IEBAIHVzZSBjcmF0ZTo6cmVtb3Rlczo6QWRkV2l6YXJkOwogdXNlIGNyYXRlOjp7cGRtX2NsaWVu dCwgTG9hZFJlc3VsdH07CiAKIHVzZSBwZG1fYXBpX3R5cGVzOjpyZW1vdGVzOjpSZW1vdGVUeXBl OwotdXNlIHBkbV9hcGlfdHlwZXM6OnJlc291cmNlOjpSZXNvdXJjZXNTdGF0dXM7Ci11c2UgcGRt X2FwaV90eXBlczo6VGFza1N0YXRpc3RpY3M7CiB1c2UgcGRtX2NsaWVudDo6dHlwZXM6OlRvcEVu dGl0aWVzOwogCiAjW2Rlcml2ZShQcm9wZXJ0aWVzLCBQYXJ0aWFsRXEpXQpAQCAtNTQsMjkgKzU3 LDY3IEBAIGltcGwgVmlldyB7CiAgICAgfQogfQogCi1wdWIgZW51bSBMb2FkaW5nUmVzdWx0IHsK LSAgICBSZXNvdXJjZXMoUmVzdWx0PFJlc291cmNlc1N0YXR1cywgRXJyb3I+KSwKLSAgICBUb3BF bnRpdGllcyhSZXN1bHQ8cGRtX2NsaWVudDo6dHlwZXM6OlRvcEVudGl0aWVzLCBwcm94bW94X2Ns aWVudDo6RXJyb3I+KSwKLSAgICBUYXNrU3RhdGlzdGljcyhSZXN1bHQ8VGFza1N0YXRpc3RpY3Ms IEVycm9yPiksCi0gICAgQWxsLAotfQotCiBwdWIgZW51bSBNc2cgewogICAgIFZpZXdUZW1wbGF0 ZUxvYWRlZChSZXN1bHQ8Vmlld1RlbXBsYXRlLCBFcnJvcj4pLAotICAgIExvYWRpbmdSZXN1bHQo TG9hZGluZ1Jlc3VsdCksCisgICAgTG9hZGluZ1Jlc3VsdCgoTG9hZGFibGVFbnRpdGllcywgUmVz dWx0PFZhbHVlLCBFcnJvcj4pKSwKICAgICBDcmVhdGVXaXphcmQoT3B0aW9uPFJlbW90ZVR5cGU+ KSwKICAgICBSZWxvYWQoYm9vbCksICAgICAgIC8vIGZvcmNlCiAgICAgQ29uZmlnV2luZG93KGJv b2wpLCAvLyBzaG93CiAgICAgVXBkYXRlQ29uZmlnKFJlZnJlc2hDb25maWcpLAorICAgIExvYWRp bmdEb25lLAorfQorCisjW2Rlcml2ZShIYXNoLCBQYXJ0aWFsRXEsIEVxLCBEZWJ1ZywgQ2xvbmUs IENvcHkpXQorcHViIGVudW0gTG9hZGFibGVFbnRpdGllcyB7CisgICAgU3RhdHVzLAorICAgIFRv cEVudGl0aWVzLAorICAgIFN0YXRpc3RpY3MsCit9CisKK2ltcGwgTG9hZGFibGVFbnRpdGllcyB7 CisgICAgYXN5bmMgZm4gbG9hZCgmc2VsZiwgbWF4X2FnZTogdTY0LCBzaW5jZTogaTY0LCBsaW5r OiAmU2NvcGU8Vmlld0NvbXA+KSB7CisgICAgICAgIGxldCByZXMgPSBtYXRjaCBzZWxmIHsKKyAg ICAgICAgICAgIExvYWRhYmxlRW50aXRpZXM6OlN0YXR1cyA9PiB7CisgICAgICAgICAgICAgICAg aHR0cF9nZXQoIi9yZXNvdXJjZXMvc3RhdHVzIiwgU29tZShqc29uISh7Im1heC1hZ2UiOiBtYXhf YWdlfSkpKS5hd2FpdAorICAgICAgICAgICAgfQorICAgICAgICAgICAgTG9hZGFibGVFbnRpdGll czo6VG9wRW50aXRpZXMgPT4geworICAgICAgICAgICAgICAgIGxldCBjbGllbnQ6IHBkbV9jbGll bnQ6OlBkbUNsaWVudDxSYzxwcm94bW94X3lld19jb21wOjpIdHRwQ2xpZW50V2FzbT4+ID0KKyAg ICAgICAgICAgICAgICAgICAgcGRtX2NsaWVudCgpOworICAgICAgICAgICAgICAgIGNsaWVudAor ICAgICAgICAgICAgICAgICAgICAuZ2V0X3RvcF9lbnRpdGllcygpCisgICAgICAgICAgICAgICAg ICAgIC5hd2FpdAorICAgICAgICAgICAgICAgICAgICAubWFwKHxyfCBzZXJkZV9qc29uOjp0b192 YWx1ZShyKS51bndyYXAoKSkKKyAgICAgICAgICAgICAgICAgICAgLm1hcF9lcnIofGV8IGZvcm1h dF9lcnIhKCJjb3VsZCBub3QgbG9hZCB0b3AgZW50aXRpZXMiKS5jb250ZXh0KGUpKQorICAgICAg ICAgICAgfQorICAgICAgICAgICAgTG9hZGFibGVFbnRpdGllczo6U3RhdGlzdGljcyA9PiB7Cisg ICAgICAgICAgICAgICAgbGV0IHBhcmFtcyA9IFNvbWUoanNvbiEoeworICAgICAgICAgICAgICAg ICAgICAic2luY2UiOiBzaW5jZSwKKyAgICAgICAgICAgICAgICAgICAgImxpbWl0IjogMCwKKyAg ICAgICAgICAgICAgICB9KSk7CisgICAgICAgICAgICAgICAgaHR0cF9nZXQoIi9yZW1vdGUtdGFz a3Mvc3RhdGlzdGljcyIsIHBhcmFtcykuYXdhaXQKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsK KworICAgICAgICBsaW5rLnNlbmRfbWVzc2FnZShNc2c6OkxvYWRpbmdSZXN1bHQoKCpzZWxmLCBy ZXMpKSk7CisgICAgfQorfQorCitmbiBnZXRfZW50aXR5PFQ6IERlc2VyaWFsaXplT3duZWQ+KAor ICAgIG1hcDogJkhhc2hNYXA8TG9hZGFibGVFbnRpdGllcywgTG9hZFJlc3VsdDxWYWx1ZSwgRXJy b3I+PiwKKyAgICBrZXk6ICZMb2FkYWJsZUVudGl0aWVzLAorKSAtPiBPcHRpb248VD4geworICAg IG1hcC5nZXQoa2V5KS5hbmRfdGhlbih8ZHwgeworICAgICAgICBkLmRhdGEKKyAgICAgICAgICAg IC5hc19yZWYoKQorICAgICAgICAgICAgLmFuZF90aGVuKHxkfCBzZXJkZV9qc29uOjpmcm9tX3Zh bHVlKGQuY2xvbmUoKSkub2soKSkKKyAgICB9KQogfQogCiBzdHJ1Y3QgVmlld0NvbXAgewogICAg IHRlbXBsYXRlOiBMb2FkUmVzdWx0PFZpZXdUZW1wbGF0ZSwgRXJyb3I+LAogCiAgICAgLy8gdmFy aW91cyBhcGkgY2FsbCByZXN1bHRzCi0gICAgc3RhdHVzOiBMb2FkUmVzdWx0PFJlc291cmNlc1N0 YXR1cywgRXJyb3I+LAotICAgIHRvcF9lbnRpdGllczogTG9hZFJlc3VsdDxUb3BFbnRpdGllcywg cHJveG1veF9jbGllbnQ6OkVycm9yPiwKLSAgICBzdGF0aXN0aWNzOiBMb2FkUmVzdWx0PFRhc2tT dGF0aXN0aWNzLCBFcnJvcj4sCisgICAgbG9hZF9yZXN1bHRzOiBIYXNoTWFwPExvYWRhYmxlRW50 aXRpZXMsIExvYWRSZXN1bHQ8VmFsdWUsIEVycm9yPj4sCiAKICAgICByZWZyZXNoX2NvbmZpZzog UGVyc2lzdGVudFN0YXRlPFJlZnJlc2hDb25maWc+LAogCkBAIC05MCwxNCArMTMxLDE2IEBAIHN0 cnVjdCBWaWV3Q29tcCB7CiBpbXBsIFZpZXdDb21wIHsKICAgICBmbiBjcmVhdGVfd2lkZ2V0KCZz ZWxmLCBjdHg6ICZ5ZXc6OkNvbnRleHQ8U2VsZj4sIHdpZGdldDogJldpZGdldFR5cGUpIC0+IFBh bmVsIHsKICAgICAgICAgbWF0Y2ggd2lkZ2V0IHsKLSAgICAgICAgICAgIFdpZGdldFR5cGU6Ok5v ZGVzIHsgcmVtb3RlX3R5cGUgfSA9PiB7Ci0gICAgICAgICAgICAgICAgY3JlYXRlX25vZGVfcGFu ZWwoKnJlbW90ZV90eXBlLCBzZWxmLnN0YXR1cy5kYXRhLmNsb25lKCkpCi0gICAgICAgICAgICB9 Ci0gICAgICAgICAgICBXaWRnZXRUeXBlOjpHdWVzdHMgeyBndWVzdF90eXBlIH0gPT4gewotICAg ICAgICAgICAgICAgIGNyZWF0ZV9ndWVzdF9wYW5lbCgqZ3Vlc3RfdHlwZSwgc2VsZi5zdGF0dXMu ZGF0YS5jbG9uZSgpKQotICAgICAgICAgICAgfQorICAgICAgICAgICAgV2lkZ2V0VHlwZTo6Tm9k ZXMgeyByZW1vdGVfdHlwZSB9ID0+IGNyZWF0ZV9ub2RlX3BhbmVsKAorICAgICAgICAgICAgICAg ICpyZW1vdGVfdHlwZSwKKyAgICAgICAgICAgICAgICBnZXRfZW50aXR5KCZzZWxmLmxvYWRfcmVz dWx0cywgJkxvYWRhYmxlRW50aXRpZXM6OlN0YXR1cyksCisgICAgICAgICAgICApLAorICAgICAg ICAgICAgV2lkZ2V0VHlwZTo6R3Vlc3RzIHsgZ3Vlc3RfdHlwZSB9ID0+IGNyZWF0ZV9ndWVzdF9w YW5lbCgKKyAgICAgICAgICAgICAgICAqZ3Vlc3RfdHlwZSwKKyAgICAgICAgICAgICAgICBnZXRf ZW50aXR5KCZzZWxmLmxvYWRfcmVzdWx0cywgJkxvYWRhYmxlRW50aXRpZXM6OlN0YXR1cyksCisg ICAgICAgICAgICApLAogICAgICAgICAgICAgV2lkZ2V0VHlwZTo6UmVtb3RlcyB7IHNob3dfd2l6 YXJkIH0gPT4gY3JlYXRlX3JlbW90ZV9wYW5lbCgKLSAgICAgICAgICAgICAgICBzZWxmLnN0YXR1 cy5kYXRhLmNsb25lKCksCisgICAgICAgICAgICAgICAgZ2V0X2VudGl0eSgmc2VsZi5sb2FkX3Jl c3VsdHMsICZMb2FkYWJsZUVudGl0aWVzOjpTdGF0dXMpLAogICAgICAgICAgICAgICAgIHNob3df d2l6YXJkLnRoZW5fc29tZSgKICAgICAgICAgICAgICAgICAgICAgY3R4LmxpbmsoKQogICAgICAg ICAgICAgICAgICAgICAgICAgLmNhbGxiYWNrKHxffCBNc2c6OkNyZWF0ZVdpemFyZChTb21lKFJl bW90ZVR5cGU6OlB2ZSkpKSwKQEAgLTEwOCwyOCArMTUxLDI5IEBAIGltcGwgVmlld0NvbXAgewog ICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICApLAogICAgICAgICAgICAgV2lkZ2V0VHlw ZTo6U3Vic2NyaXB0aW9uID0+IGNyZWF0ZV9zdWJzY3JpcHRpb25fcGFuZWwoKSwKLSAgICAgICAg ICAgIFdpZGdldFR5cGU6OlNkbiA9PiBjcmVhdGVfc2RuX3BhbmVsKHNlbGYuc3RhdHVzLmRhdGEu Y2xvbmUoKSksCisgICAgICAgICAgICBXaWRnZXRUeXBlOjpTZG4gPT4geworICAgICAgICAgICAg ICAgIGNyZWF0ZV9zZG5fcGFuZWwoZ2V0X2VudGl0eSgmc2VsZi5sb2FkX3Jlc3VsdHMsICZMb2Fk YWJsZUVudGl0aWVzOjpTdGF0dXMpKQorICAgICAgICAgICAgfQogICAgICAgICAgICAgV2lkZ2V0 VHlwZTo6TGVhZGVyYm9hcmQgeyBsZWFkZXJib2FyZF90eXBlIH0gPT4geworICAgICAgICAgICAg ICAgIGxldCB0b3BfZW50aXRpZXM6IE9wdGlvbjxUb3BFbnRpdGllcz4gPQorICAgICAgICAgICAg ICAgICAgICBnZXRfZW50aXR5KCZzZWxmLmxvYWRfcmVzdWx0cywgJkxvYWRhYmxlRW50aXRpZXM6 OlRvcEVudGl0aWVzKTsKKwogICAgICAgICAgICAgICAgIGxldCBlbnRpdGllcyA9IG1hdGNoIGxl YWRlcmJvYXJkX3R5cGUgewotICAgICAgICAgICAgICAgICAgICBMZWFkZXJib2FyZFR5cGU6Okd1 ZXN0Q3B1ID0+IHNlbGYKLSAgICAgICAgICAgICAgICAgICAgICAgIC50b3BfZW50aXRpZXMKLSAg ICAgICAgICAgICAgICAgICAgICAgIC5kYXRhCisgICAgICAgICAgICAgICAgICAgIExlYWRlcmJv YXJkVHlwZTo6R3Vlc3RDcHUgPT4gdG9wX2VudGl0aWVzCiAgICAgICAgICAgICAgICAgICAgICAg ICAuYXNfcmVmKCkKICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofGVudGl0aWVzfCBlbnRp dGllcy5ndWVzdF9jcHUuY2xvbmUoKSksCi0gICAgICAgICAgICAgICAgICAgIExlYWRlcmJvYXJk VHlwZTo6Tm9kZUNwdSA9PiBzZWxmCi0gICAgICAgICAgICAgICAgICAgICAgICAudG9wX2VudGl0 aWVzCi0gICAgICAgICAgICAgICAgICAgICAgICAuZGF0YQorICAgICAgICAgICAgICAgICAgICBM ZWFkZXJib2FyZFR5cGU6Ok5vZGVDcHUgPT4gdG9wX2VudGl0aWVzCiAgICAgICAgICAgICAgICAg ICAgICAgICAuYXNfcmVmKCkKICAgICAgICAgICAgICAgICAgICAgICAgIC5tYXAofGVudGl0aWVz fCBlbnRpdGllcy5ub2RlX2NwdS5jbG9uZSgpKSwKLSAgICAgICAgICAgICAgICAgICAgTGVhZGVy Ym9hcmRUeXBlOjpOb2RlTWVtb3J5ID0+IHNlbGYKLSAgICAgICAgICAgICAgICAgICAgICAgIC50 b3BfZW50aXRpZXMKLSAgICAgICAgICAgICAgICAgICAgICAgIC5kYXRhCisgICAgICAgICAgICAg ICAgICAgIExlYWRlcmJvYXJkVHlwZTo6Tm9kZU1lbW9yeSA9PiB0b3BfZW50aXRpZXMKICAgICAg ICAgICAgICAgICAgICAgICAgIC5hc19yZWYoKQogICAgICAgICAgICAgICAgICAgICAgICAgLm1h cCh8ZW50aXRpZXN8IGVudGl0aWVzLm5vZGVfbWVtb3J5LmNsb25lKCkpLAogICAgICAgICAgICAg ICAgIH07CiAgICAgICAgICAgICAgICAgY3JlYXRlX3RvcF9lbnRpdGllc19wYW5lbCgKICAgICAg ICAgICAgICAgICAgICAgZW50aXRpZXMsCi0gICAgICAgICAgICAgICAgICAgIHNlbGYudG9wX2Vu dGl0aWVzLmVycm9yLmFzX3JlZigpLAorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvYWRfcmVz dWx0cworICAgICAgICAgICAgICAgICAgICAgICAgLmdldCgmTG9hZGFibGVFbnRpdGllczo6VG9w RW50aXRpZXMpCisgICAgICAgICAgICAgICAgICAgICAgICAuYW5kX3RoZW4ofHR8IHQuZXJyb3Iu YXNfcmVmKCkpLAogICAgICAgICAgICAgICAgICAgICAqbGVhZGVyYm9hcmRfdHlwZSwKICAgICAg ICAgICAgICAgICApCiAgICAgICAgICAgICB9CkBAIC0xNDAsOCArMTg0LDEwIEBAIGltcGwgVmll d0NvbXAgewogICAgICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgICAgbGV0IChob3Vycywg c2luY2UpID0gZ2V0X3Rhc2tfb3B0aW9ucyhzZWxmLnJlZnJlc2hfY29uZmlnLnRhc2tfbGFzdF9o b3Vycyk7CiAgICAgICAgICAgICAgICAgY3JlYXRlX3Rhc2tfc3VtbWFyeV9wYW5lbCgKLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5zdGF0aXN0aWNzLmRhdGEuY2xvbmUoKSwKLSAgICAgICAgICAg ICAgICAgICAgc2VsZi5zdGF0aXN0aWNzLmVycm9yLmFzX3JlZigpLAorICAgICAgICAgICAgICAg ICAgICBnZXRfZW50aXR5KCZzZWxmLmxvYWRfcmVzdWx0cywgJkxvYWRhYmxlRW50aXRpZXM6OlN0 YXRpc3RpY3MpLAorICAgICAgICAgICAgICAgICAgICBzZWxmLmxvYWRfcmVzdWx0cworICAgICAg ICAgICAgICAgICAgICAgICAgLmdldCgmTG9hZGFibGVFbnRpdGllczo6U3RhdGlzdGljcykKKyAg ICAgICAgICAgICAgICAgICAgICAgIC5hbmRfdGhlbih8dHwgdC5lcnJvci5hc19yZWYoKSksCiAg ICAgICAgICAgICAgICAgICAgIHJlbW90ZXMsCiAgICAgICAgICAgICAgICAgICAgIGhvdXJzLAog ICAgICAgICAgICAgICAgICAgICBzaW5jZSwKQEAgLTE2MCw1NiArMjA2LDQxIEBAIGltcGwgVmll d0NvbXAgewogICAgIH0KIAogICAgIGZuIGRvX3JlbG9hZCgmbXV0IHNlbGYsIGN0eDogJnlldzo6 Q29udGV4dDxTZWxmPiwgbWF4X2FnZTogdTY0KSB7Ci0gICAgICAgIGlmIGxldCBTb21lKGRhdGEp ID0gc2VsZi50ZW1wbGF0ZS5kYXRhLmFzX3JlZigpIHsKKyAgICAgICAgaWYgc2VsZi50ZW1wbGF0 ZS5kYXRhLmFzX3JlZigpLmlzX3NvbWUoKSB7CiAgICAgICAgICAgICBsZXQgbGluayA9IGN0eC5s aW5rKCkuY2xvbmUoKTsKICAgICAgICAgICAgIGxldCAoXywgc2luY2UpID0gZ2V0X3Rhc2tfb3B0 aW9ucyhzZWxmLnJlZnJlc2hfY29uZmlnLnRhc2tfbGFzdF9ob3Vycyk7Ci0gICAgICAgICAgICBs ZXQgKHN0YXR1cywgdG9wX2VudGl0aWVzLCB0YXNrcykgPSByZXF1aXJlZF9hcGlfY2FsbHMoJmRh dGEubGF5b3V0KTsKKyAgICAgICAgICAgIGxldCBrZXlzID0gc2VsZgorICAgICAgICAgICAgICAg IC5sb2FkX3Jlc3VsdHMKKyAgICAgICAgICAgICAgICAua2V5cygpCisgICAgICAgICAgICAgICAg LmNsb25lZCgpCisgICAgICAgICAgICAgICAgLmNvbGxlY3Q6OjxWZWM8TG9hZGFibGVFbnRpdGll cz4+KCk7CiAKICAgICAgICAgICAgIHNlbGYubG9hZGluZyA9IHRydWU7CisKICAgICAgICAgICAg IHNlbGYuYXN5bmNfcG9vbC5zcGF3bihhc3luYyBtb3ZlIHsKLSAgICAgICAgICAgICAgICBsZXQg c3RhdHVzX2Z1dHVyZSA9IGFzeW5jIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgc3RhdHVzIHsK LSAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXMgPQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGh0dHBfZ2V0KCIvcmVzb3VyY2VzL3N0YXR1cyIsIFNvbWUoanNvbiEoeyJtYXgtYWdl IjogbWF4X2FnZX0pKSkuYXdhaXQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsaW5rLnNlbmRf bWVzc2FnZShNc2c6OkxvYWRpbmdSZXN1bHQoTG9hZGluZ1Jlc3VsdDo6UmVzb3VyY2VzKHJlcykp KTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH07CisgICAgICAgICAg ICAgICAgbGV0IG11dCBmdXR1cmVzID0gVmVjOjpuZXcoKTsKIAotICAgICAgICAgICAgICAgIGxl dCBlbnRpdGllc19mdXR1cmUgPSBhc3luYyB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIHRvcF9l bnRpdGllcyB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2xpZW50OiBwZG1fY2xpZW50 OjpQZG1DbGllbnQ8UmM8cHJveG1veF95ZXdfY29tcDo6SHR0cENsaWVudFdhc20+PiA9Ci0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgcGRtX2NsaWVudCgpOwotICAgICAgICAgICAgICAgICAg ICAgICAgbGV0IHJlcyA9IGNsaWVudC5nZXRfdG9wX2VudGl0aWVzKCkuYXdhaXQ7Ci0gICAgICAg ICAgICAgICAgICAgICAgICBsaW5rLnNlbmRfbWVzc2FnZShNc2c6OkxvYWRpbmdSZXN1bHQoTG9h ZGluZ1Jlc3VsdDo6VG9wRW50aXRpZXMocmVzKSkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0g ICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBmb3Iga2V5IGluIGtleXMgeworICAg ICAgICAgICAgICAgICAgICBsZXQga2V5ID0ga2V5LmNsb25lKCk7CisgICAgICAgICAgICAgICAg ICAgIGxldCBsaW5rID0gbGluay5jbG9uZSgpOworICAgICAgICAgICAgICAgICAgICBsZXQgZnV0 dXJlID0gQm94OjpwaW4oYXN5bmMgbW92ZSB7IGtleS5sb2FkKG1heF9hZ2UsIHNpbmNlLCAmbGlu aykuYXdhaXQgfSk7CisgICAgICAgICAgICAgICAgICAgIGZ1dHVyZXMucHVzaChmdXR1cmUpOwor ICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGxldCB0YXNrc19mdXR1cmUgPSBh c3luYyB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIHRhc2tzIHsKLSAgICAgICAgICAgICAgICAg ICAgICAgIGxldCBwYXJhbXMgPSBTb21lKGpzb24hKHsKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAic2luY2UiOiBzaW5jZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAibGltaXQi OiAwLAotICAgICAgICAgICAgICAgICAgICAgICAgfSkpOwotICAgICAgICAgICAgICAgICAgICAg ICAgbGV0IHJlcyA9IGh0dHBfZ2V0KCIvcmVtb3RlLXRhc2tzL3N0YXRpc3RpY3MiLCBwYXJhbXMp LmF3YWl0OwotICAgICAgICAgICAgICAgICAgICAgICAgbGluay5zZW5kX21lc3NhZ2UoTXNnOjpM b2FkaW5nUmVzdWx0KExvYWRpbmdSZXN1bHQ6OlRhc2tTdGF0aXN0aWNzKHJlcykpKTsKLSAgICAg ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH07Ci0KLSAgICAgICAgICAgICAgICBq b2luIShzdGF0dXNfZnV0dXJlLCBlbnRpdGllc19mdXR1cmUsIHRhc2tzX2Z1dHVyZSk7Ci0gICAg ICAgICAgICAgICAgbGluay5zZW5kX21lc3NhZ2UoTXNnOjpMb2FkaW5nUmVzdWx0KExvYWRpbmdS ZXN1bHQ6OkFsbCkpOworICAgICAgICAgICAgICAgIHNlbGVjdF9hbGwoZnV0dXJlcykuYXdhaXQ7 CisgICAgICAgICAgICAgICAgbGluay5zZW5kX21lc3NhZ2UoTXNnOjpMb2FkaW5nRG9uZSk7CiAg ICAgICAgICAgICB9KTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGN0eC5saW5rKCkK LSAgICAgICAgICAgICAgICAuc2VuZF9tZXNzYWdlKE1zZzo6TG9hZGluZ1Jlc3VsdChMb2FkaW5n UmVzdWx0OjpBbGwpKTsKKyAgICAgICAgICAgIGN0eC5saW5rKCkuc2VuZF9tZXNzYWdlKE1zZzo6 TG9hZGluZ0RvbmUpOwogICAgICAgICB9CiAgICAgfQogfQogCiAvLyByZXR1cm5zIHdoaWNoIGFw aSBjYWxscyBhcmUgcmVxdWlyZWQ6IHN0YXR1cywgdG9wX2VudGl0aWVzLCB0YXNrIHN0YXRpc3Rp Y3MKLWZuIHJlcXVpcmVkX2FwaV9jYWxscyhsYXlvdXQ6ICZWaWV3TGF5b3V0KSAtPiAoYm9vbCwg Ym9vbCwgYm9vbCkgewotICAgIGxldCBtdXQgc3RhdHVzID0gZmFsc2U7Ci0gICAgbGV0IG11dCB0 b3BfZW50aXRpZXMgPSBmYWxzZTsKLSAgICBsZXQgbXV0IHRhc2tfc3RhdGlzdGljcyA9IGZhbHNl OworZm4gcmVxdWlyZWRfYXBpX2NhbGxzKAorICAgIG1hcDogJm11dCBIYXNoTWFwPExvYWRhYmxl RW50aXRpZXMsIExvYWRSZXN1bHQ8VmFsdWUsIEVycm9yPj4sCisgICAgbGF5b3V0OiAmVmlld0xh eW91dCwKKykgewogICAgIG1hdGNoIGxheW91dCB7CiAgICAgICAgIFZpZXdMYXlvdXQ6OlJvd3Mg eyByb3dzIH0gPT4gewogICAgICAgICAgICAgZm9yIHJvdyBpbiByb3dzIHsKQEAgLTIxOSwyMCAr MjUwLDIyIEBAIGZuIHJlcXVpcmVkX2FwaV9jYWxscyhsYXlvdXQ6ICZWaWV3TGF5b3V0KSAtPiAo Ym9vbCwgYm9vbCwgYm9vbCkgewogICAgICAgICAgICAgICAgICAgICAgICAgfCBXaWRnZXRUeXBl OjpHdWVzdHMgeyAuLiB9CiAgICAgICAgICAgICAgICAgICAgICAgICB8IFdpZGdldFR5cGU6OlJl bW90ZXMgeyAuLiB9CiAgICAgICAgICAgICAgICAgICAgICAgICB8IFdpZGdldFR5cGU6OlNkbiA9 PiB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gdHJ1ZTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBtYXAuaW5zZXJ0KExvYWRhYmxlRW50aXRpZXM6OlN0YXR1cywg TG9hZFJlc3VsdDo6bmV3KCkpOwogICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICAgICAgV2lkZ2V0VHlwZTo6U3Vic2NyaXB0aW9uID0+IHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAvLyBwYW5lbCBkb2VzIGl0IGl0c2VsZiwgaXQncyBhbHdheXMgcmVx dWlyZWQgYW55d2F5CiAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg ICAgICAgICBXaWRnZXRUeXBlOjpMZWFkZXJib2FyZCB7IC4uIH0gPT4gdG9wX2VudGl0aWVzID0g dHJ1ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIFdpZGdldFR5cGU6OlRhc2tTdW1tYXJ5IHsg Li4gfSA9PiB0YXNrX3N0YXRpc3RpY3MgPSB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAg V2lkZ2V0VHlwZTo6TGVhZGVyYm9hcmQgeyAuLiB9ID0+IHsKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBtYXAuaW5zZXJ0KExvYWRhYmxlRW50aXRpZXM6OlRvcEVudGl0aWVzLCBMb2FkUmVz dWx0OjpuZXcoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgICAgICBXaWRnZXRUeXBlOjpUYXNrU3VtbWFyeSB7IC4uIH0gPT4geworICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG1hcC5pbnNlcnQoTG9hZGFibGVFbnRpdGllczo6U3RhdGlzdGljcywg TG9hZFJlc3VsdDo6bmV3KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9 CiAgICAgfQotCi0gICAgKHN0YXR1cywgdG9wX2VudGl0aWVzLCB0YXNrX3N0YXRpc3RpY3MpCiB9 CiAKIGZuIGhhc19zdWJfcGFuZWwobGF5b3V0OiBPcHRpb248JlZpZXdUZW1wbGF0ZT4pIC0+IGJv b2wgewpAQCAtMjY5LDEwICszMDIsNyBAQCBpbXBsIENvbXBvbmVudCBmb3IgVmlld0NvbXAgewog ICAgICAgICBTZWxmIHsKICAgICAgICAgICAgIHRlbXBsYXRlOiBMb2FkUmVzdWx0OjpuZXcoKSwK ICAgICAgICAgICAgIGFzeW5jX3Bvb2wsCi0KLSAgICAgICAgICAgIHN0YXR1czogTG9hZFJlc3Vs dDo6bmV3KCksCi0gICAgICAgICAgICB0b3BfZW50aXRpZXM6IExvYWRSZXN1bHQ6Om5ldygpLAot ICAgICAgICAgICAgc3RhdGlzdGljczogTG9hZFJlc3VsdDo6bmV3KCksCisgICAgICAgICAgICBs b2FkX3Jlc3VsdHM6IEhhc2hNYXA6Om5ldygpLAogCiAgICAgICAgICAgICByZWZyZXNoX2NvbmZp ZywKICAgICAgICAgICAgIGxvYWRfZmluaXNoZWRfdGltZTogTm9uZSwKQEAgLTI4NiwyNCArMzE2 LDI0IEBAIGltcGwgQ29tcG9uZW50IGZvciBWaWV3Q29tcCB7CiAgICAgICAgIG1hdGNoIG1zZyB7 CiAgICAgICAgICAgICBNc2c6OlZpZXdUZW1wbGF0ZUxvYWRlZCh2aWV3X3RlbXBsYXRlKSA9PiB7 CiAgICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZS51cGRhdGUodmlld190ZW1wbGF0ZSk7Cisg ICAgICAgICAgICAgICAgaWYgbGV0IFNvbWUodGVtcGxhdGUpID0gc2VsZi50ZW1wbGF0ZS5kYXRh LmFzX3JlZigpIHsKKyAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRfYXBpX2NhbGxzKCZtdXQg c2VsZi5sb2FkX3Jlc3VsdHMsICZ0ZW1wbGF0ZS5sYXlvdXQpOworICAgICAgICAgICAgICAgIH0K ICAgICAgICAgICAgICAgICBzZWxmLnJlbG9hZChjdHgpOwogICAgICAgICAgICAgfQotICAgICAg ICAgICAgTXNnOjpMb2FkaW5nUmVzdWx0KGxvYWRpbmdfcmVzdWx0KSA9PiBtYXRjaCBsb2FkaW5n X3Jlc3VsdCB7Ci0gICAgICAgICAgICAgICAgTG9hZGluZ1Jlc3VsdDo6UmVzb3VyY2VzKHN0YXR1 cykgPT4gc2VsZi5zdGF0dXMudXBkYXRlKHN0YXR1cyksCi0gICAgICAgICAgICAgICAgTG9hZGlu Z1Jlc3VsdDo6VG9wRW50aXRpZXModG9wX2VudGl0aWVzKSA9PiBzZWxmLnRvcF9lbnRpdGllcy51 cGRhdGUodG9wX2VudGl0aWVzKSwKLSAgICAgICAgICAgICAgICBMb2FkaW5nUmVzdWx0OjpUYXNr U3RhdGlzdGljcyh0YXNrX3N0YXRpc3RpY3MpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgc2Vs Zi5zdGF0aXN0aWNzLnVwZGF0ZSh0YXNrX3N0YXRpc3RpY3MpCisgICAgICAgICAgICBNc2c6Okxv YWRpbmdSZXN1bHQoKGVudGl0eSwgcmVzdWx0KSkgPT4geworICAgICAgICAgICAgICAgIHNlbGYu bG9hZF9yZXN1bHRzLmdldF9tdXQoJmVudGl0eSkudW53cmFwKCkudXBkYXRlKHJlc3VsdCkKKyAg ICAgICAgICAgIH0KKyAgICAgICAgICAgIE1zZzo6TG9hZGluZ0RvbmUgPT4geworICAgICAgICAg ICAgICAgIHNlbGYubG9hZGluZyA9IGZhbHNlOworICAgICAgICAgICAgICAgIGlmIHNlbGYubG9h ZF9maW5pc2hlZF90aW1lLmlzX25vbmUoKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIGltbWVk aWF0ZWx5IHRyaWdnZXIgYSAibm9ybWFsIiByZWxvYWQgYWZ0ZXIgdGhlIGZpcnN0IGxvYWQgd2l0 aCB0aGUKKyAgICAgICAgICAgICAgICAgICAgLy8gY29uZmlndXJlZCBvciBkZWZhdWx0IG1heC1h Z2UgdG8gZW5zdXJlIHVzZXJzIHNlZXMgbW9yZSBjdXJyZW50IGRhdGEuCisgICAgICAgICAgICAg ICAgICAgIGN0eC5saW5rKCkuc2VuZF9tZXNzYWdlKE1zZzo6UmVsb2FkKGZhbHNlKSk7CiAgICAg ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIExvYWRpbmdSZXN1bHQ6OkFsbCA9PiB7Ci0g ICAgICAgICAgICAgICAgICAgIHNlbGYubG9hZGluZyA9IGZhbHNlOwotICAgICAgICAgICAgICAg ICAgICBpZiBzZWxmLmxvYWRfZmluaXNoZWRfdGltZS5pc19ub25lKCkgewotICAgICAgICAgICAg ICAgICAgICAgICAgLy8gaW1tZWRpYXRlbHkgdHJpZ2dlciBhICJub3JtYWwiIHJlbG9hZCBhZnRl ciB0aGUgZmlyc3QgbG9hZCB3aXRoIHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29u ZmlndXJlZCBvciBkZWZhdWx0IG1heC1hZ2UgdG8gZW5zdXJlIHVzZXJzIHNlZXMgbW9yZSBjdXJy ZW50IGRhdGEuCi0gICAgICAgICAgICAgICAgICAgICAgICBjdHgubGluaygpLnNlbmRfbWVzc2Fn ZShNc2c6OlJlbG9hZChmYWxzZSkpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg ICAgICAgICAgIHNlbGYubG9hZF9maW5pc2hlZF90aW1lID0gU29tZShEYXRlOjpub3coKSAvIDEw MDAuMCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAg ICBzZWxmLmxvYWRfZmluaXNoZWRfdGltZSA9IFNvbWUoRGF0ZTo6bm93KCkgLyAxMDAwLjApOwor ICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBNc2c6OkNyZWF0ZVdpemFyZChyZW1vdGVfdHlw ZSkgPT4gewogICAgICAgICAgICAgICAgIHNlbGYuc2hvd19jcmVhdGVfd2l6YXJkID0gcmVtb3Rl X3R5cGU7CiAgICAgICAgICAgICB9Ci0tIAoyLjQ3LjMKCg== --e2fd05efc7100ccf56365d54f233ff4ad69b0ab6a913b2b0255bbfc640af Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel --e2fd05efc7100ccf56365d54f233ff4ad69b0ab6a913b2b0255bbfc640af--