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 1F2E01FF187 for ; Fri, 2 Jan 2026 17:07:13 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 2E032E9A6; Fri, 2 Jan 2026 17:08:19 +0100 (CET) From: Samuel Rufinatscha To: pbs-devel@lists.proxmox.com Date: Fri, 2 Jan 2026 17:07:39 +0100 Message-ID: <20260102160750.285157-1-s.rufinatscha@proxmox.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1767370060361 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.042 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 POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes 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_SBL_A 0.1 Contains URL's A record listed in the Spamhaus SBL blocklist [188.114.96.3] Subject: [pbs-devel] [PATCH proxmox{-backup, , -datacenter-manager} v3 00/10] token-shadow: reduce api token verification overhead X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" SGksCgp0aGlzIHNlcmllcyBpbXByb3ZlcyB0aGUgcGVyZm9ybWFuY2Ugb2YgdG9rZW4tYmFzZWQg QVBJIGF1dGhlbnRpY2F0aW9uCmluIFBCUyAocGJzLWNvbmZpZykgYW5kIGluIFBETSAodW5kZXJs eWluZyBwcm94bW94LWFjY2Vzcy1jb250cm9sCmNyYXRlKSwgYWRkcmVzc2luZyB0aGUgQVBJIHRv a2VuIHZlcmlmaWNhdGlvbiBob3RzcG90IHJlcG9ydGVkIGluIG91cgpidWd0cmFja2VyICM3MDE3 IFsxXS4KCldoZW4gcHJvZmlsaW5nIFBCUyAvc3RhdHVzIGVuZHBvaW50IHdpdGggY2FyZ28gZmxh bWVncmFwaCBbMl0sCnRva2VuLWJhc2VkIGF1dGhlbnRpY2F0aW9uIHNob3dlZCB1cCBhcyBhIGRv bWluYW50IGhvdHNwb3QgdmlhCnByb3htb3hfc3lzOjpjcnlwdDo6dmVyaWZ5X2NyeXB0X3B3LiBB cHBseWluZyB0aGlzIHNlcmllcyByZW1vdmVzIHRoYXQKcGF0aCBmcm9tIHRoZSBob3Qgc2VjdGlv biBvZiB0aGUgZmxhbWVncmFwaC4gVGhlIHNhbWUgcGVyZm9ybWFuY2UgaXNzdWUKd2FzIG1lYXN1 cmVkIFsyXSBmb3IgUERNLiBQRE0gdXNlcyB0aGUgdW5kZXJseWluZyBzaGFyZWQKcHJveG1veC1h Y2Nlc3MtY29udHJvbCBsaWJyYXJ5IGZvciB0b2tlbiBoYW5kbGluZywgd2hpY2ggaXMgYQpmYWN0 b3JlZCBvdXQgdmVyc2lvbiBvZiB0aGUgdG9rZW4uc2hhZG93IGhhbmRsaW5nIGNvZGUgZnJvbSBQ QlMuCgpXaGlsZSB0aGlzIHNlcmllcyBmaXhlcyB0aGUgaW1tZWRpYXRlIHBlcmZvcm1hbmNlIGlz c3VlIGJvdGggaW4gUEJTCihwYnMtY29uZmlnKSBhbmQgaW4gdGhlIHNoYXJlZCBwcm94bW94LWFj Y2Vzcy1jb250cm9sIGNyYXRlIHVzZWQgYnkKUERNLCBQQlMgc2hvdWxkIGV2ZW50dWFsbHksIGlk ZWFsbHkgYmUgcmVmYWN0b3JlZCwgaW4gYSBzZXBhcmF0ZQplZmZvcnQsIHRvIHVzZSBwcm94bW94 LWFjY2Vzcy1jb250cm9sIGZvciB0b2tlbiBoYW5kbGluZyBpbnN0ZWFkIG9mIGl0cwpsb2NhbCBp bXBsZW1lbnRhdGlvbi4KClByb2JsZW0KCkZvciB0b2tlbi1iYXNlZCBBUEkgcmVxdWVzdHMsIGJv dGggUEJT4oCZcyBwYnMtY29uZmlnIHRva2VuLnNoYWRvdwpoYW5kbGluZyBhbmQgUERNIHByb3ht b3gtYWNjZXNzLWNvbnRyb2zigJlzIHRva2VuLnNoYWRvdyBoYW5kbGluZwpjdXJyZW50bHk6Cgox LiByZWFkIHRoZSB0b2tlbi5zaGFkb3cgZmlsZSBvbiBlYWNoIHJlcXVlc3QKMi4gZGVzZXJpYWxp emUgaXQgaW50byBhIEhhc2hNYXA8QXV0aGlkLCBTdHJpbmc+CjMuIHJ1biBwYXNzd29yZCBoYXNo IHZlcmlmaWNhdGlvbiB2aWEKICAgcHJveG1veF9zeXM6OmNyeXB0Ojp2ZXJpZnlfY3J5cHRfcHcg Zm9yIHRoZSBwcm92aWRlZCB0b2tlbiBzZWNyZXQKClVuZGVyIGxvYWQsIHRoaXMgcmVzdWx0cyBp biBzaWduaWZpY2FudCBDUFUgdXNhZ2Ugc3BlbnQgaW4gcmVwZWF0ZWQKcGFzc3dvcmQgaGFzaGlu ZyBmb3IgdGhlIHNhbWUgdG9rZW4rc2VjcmV0IHBhaXJzLiBUaGUgYXR0YWNoZWQKZmxhbWVncmFw aHMgZm9yIFBCUyBbMl0gYW5kIFBETSBbM10gc2hvdwpwcm94bW94X3N5czo6Y3J5cHQ6OnZlcmlm eV9jcnlwdF9wdyBkb21pbmF0aW5nIHRoZSBob3QgcGF0aC4KCkFwcHJvYWNoCgpUaGUgZ29hbCBp cyB0byByZWR1Y2UgdGhlIGNvc3Qgb2YgdG9rZW4tYmFzZWQgYXV0aGVudGljYXRpb24gcHJlc2Vy dmluZwp0aGUgZXhpc3RpbmcgdG9rZW4gaGFuZGxpbmcgc2VtYW50aWNzIChpbmNsdWRpbmcgZGV0 ZWN0aW5nIG1hbnVhbCBlZGl0cwp0byB0b2tlbi5zaGFkb3cpIGFuZCBiZSBjb25zaXN0ZW50IGJl dHdlZW4gUEJTIChwYnMtY29uZmlnKSBhbmQKUERNIChwcm94bW94LWFjY2Vzcy1jb250cm9sKS4g Rm9yIGJvdGggc2l0ZXMsIHRoaXMgc2VyaWVzIHByb3Bvc2VzIHRvOgoKMS4gSW50cm9kdWNlIGFu IGluLW1lbW9yeSBjYWNoZSBmb3IgdmVyaWZpZWQgdG9rZW4gc2VjcmV0cyBhbmQKaW52YWxpZGF0 ZSBpdCB0aHJvdWdoIGEgc2hhcmVkIENvbmZpZ1ZlcnNpb25DYWNoZSBnZW5lcmF0aW9uLiBOb3Rl LCBhCnNoYXJlZCBnZW5lcmF0aW9uIGlzIHJlcXVpcmVkIHRvIGtlZXAgcHJpdmlsZWdlZCBhbmQg dW5wcml2aWxlZ2VkCmRhZW1vbiBpbiBzeW5jIHRvIGF2b2lkIGNhY2hpbmcgaW5jb25zaXN0ZW5j aWVzIGFjcm9zcyBwcm9jZXNzZXMuCjIuIEludmFsaWRhdGUgb24gdG9rZW4uc2hhZG93IGZpbGUg QVBJIGNoYW5nZXMgKHNldF9zZWNyZXQsCmRlbGV0ZV9zZWNyZXQpCjMuIEludmFsaWRhdGUgb24g ZGlyZWN0L21hbnVhbCB0b2tlbi5zaGFkb3cgZmlsZSBjaGFuZ2VzIChtdGltZSArCmxlbmd0aCkK NC4gQXZvaWQgcGVyLXJlcXVlc3QgZmlsZSBzdGF0IGNhbGxzIHVzaW5nIGEgVFRMIHdpbmRvdwoK VGVzdGluZwoKKlBCUyAocGJzLWNvbmZpZykqCgpUbyB2ZXJpZnkgdGhlIGVmZmVjdCBpbiBQQlMs IEk6CjEuIFNldCB1cCB0ZXN0IGVudmlyb25tZW50IGJhc2VkIG9uIGxhdGVzdCBQQlMgSVNPLCBp bnN0YWxsZWQgUnVzdAogICB0b29sY2hhaW4sIGNsb25lZCBwcm94bW94LWJhY2t1cCByZXBvc2l0 b3J5IHRvIHVzZSB3aXRoIGNhcmdvCiAgIGZsYW1lZ3JhcGguIFJlcHJvZHVjZWQgYnVnICM3MDE3 IFsxXSBieSBwcm9maWxpbmcgdGhlIC9zdGF0dXMKICAgZW5kcG9pbnQgd2l0aCB0b2tlbi1iYXNl ZCBhdXRoZW50aWNhdGlvbiB1c2luZyBjYXJnbyBmbGFtZWdyYXBoIFsyXS4KMi4gQnVpbHQgUEJT IHdpdGggcGJzLWNvbmZpZyBwYXRjaGVzIGFuZCByZS1yYW4gdGhlIHNhbWUgd29ya2xvYWQgYW5k CiAgIHByb2ZpbGluZyBzZXR1cC4gQ29uZmlybWVkIHRoYXQKICAgcHJveG1veF9zeXM6OmNyeXB0 Ojp2ZXJpZnlfY3J5cHRfcHcgcGF0aCBubyBsb25nZXIgYXBwZWFycyBpbiB0aGUKICAgaG90IHNl Y3Rpb24gb2YgdGhlIGZsYW1lZ3JhcGguIENQVSB1c2FnZSBpcyBub3cgZG9taW5hdGVkIGJ5IFRM UwogICBvdmVyaGVhZC4KMy4gRnVuY3Rpb25hbGx5LXdpc2UsIEkgdmVyaWZpZWQgdGhhdDoKICAg KiB2YWxpZCB0b2tlbnMgYXV0aGVudGljYXRlIGNvcnJlY3RseSB3aGVuIHVzZWQgaW4gQVBJIHJl cXVlc3RzCiAgICogaW52YWxpZCBzZWNyZXRzIGFyZSByZWplY3RlZCBhcyBiZWZvcmUKICAgKiBn ZW5lcmF0aW5nIGEgbmV3IHRva2VuIHNlY3JldCB2aWEgZGFzaGJvYXJkIChjcmVhdGUgdG9rZW4g Zm9yIHVzZXIsCiAgIHJlZ2VuZXJhdGUgZXhpc3Rpbmcgc2VjcmV0KSB3b3JrcyBhbmQgYXV0aGVu dGljYXRlcyBjb3JyZWN0bHkKCipQRE0gKHByb3htb3gtYWNjZXNzLWNvbnRyb2wpKgoKVG8gdmVy aWZ5IHRoZSBlZmZlY3QgaW4gUERNLCBJIGZvbGxvd2VkIGEgc2ltaWxhciB0ZXN0aW5nIGFwcHJv YWNoLgpJbnN0ZWFkIG9mIFBCU+KAmSAvc3RhdHVzLCBJIHByb2ZpbGVkIHRoZSAvdmVyc2lvbiBl bmRwb2ludCB3aXRoIGNhcmdvCmZsYW1lZ3JhcGggWzJdIGFuZCB2ZXJpZmllZCB0aGF0IHRoZSBl eHBlbnNpdmUgaGFzaGluZyBwYXRoIGRpc2FwcGVhcnMKZnJvbSB0aGUgaG90IHNlY3Rpb24gYWZ0 ZXIgaW50cm9kdWNpbmcgY2FjaGluZy4KCkZ1bmN0aW9uYWxseS13aXNlLCBJIHZlcmlmaWVkIHRo YXQ6CiAgICogdmFsaWQgdG9rZW5zIGF1dGhlbnRpY2F0ZSBjb3JyZWN0bHkgd2hlbiB1c2VkIGlu IEFQSSByZXF1ZXN0cwogICAqIGludmFsaWQgc2VjcmV0cyBhcmUgcmVqZWN0ZWQgYXMgYmVmb3Jl CiAgICogZ2VuZXJhdGluZyBhIG5ldyB0b2tlbiBzZWNyZXQgdmlhIGRhc2hib2FyZCAoY3JlYXRl IHRva2VuIGZvciB1c2VyLAogICByZWdlbmVyYXRlIGV4aXN0aW5nIHNlY3JldCkgd29ya3MgYW5k IGF1dGhlbnRpY2F0ZXMgY29ycmVjdGx5CgpCZW5jaG1hcmtzOgoKVHdvIGRpZmZlcmVudCBiZW5j aG1hcmtzIGhhdmUgYmVlbiBydW4gdG8gbWVhc3VyZSBjYWNoaW5nIGVmZmVjdHMKYW5kIFJ3TG9j ayBjb250ZW50aW9uOgoKKDEpIFJlcXVlc3RzIHBlciBzZWNvbmQgZm9yIFBCUyAvc3RhdHVzIGVu ZHBvaW50IChFMkUpCgpCZW5jaG1hcmtlZCBwYXJhbGxlbCB0b2tlbiBhdXRoIHJlcXVlc3RzIGZv cgovc3RhdHVzP3ZlcmJvc2U9MCBvbiB0b3Agb2YgdGhlIGRhdGFzdG9yZSBsb29rdXAgY2FjaGUg c2VyaWVzIFs0XQp0byBjaGVjayB0aHJvdWdocHV0IGltcGFjdC4gV2l0aCBkYXRhc3RvcmVzPTEs IHJlcGVhdD01MDAwLCBwYXJhbGxlbD0xNgp0aGlzIHNlcmllcyBnaXZlcyB+MTcyIHJlcS9zIGNv bXBhcmVkIHRvIH42NSByZXEvcyB3aXRob3V0IGl0LgpUaGlzIGlzIGEgfjIuNnggaW1wcm92ZW1l bnQgKGFuZCBhbGlnbnMgd2l0aCB0aGUgfjE3OSByZXEvcyBmcm9tIHRoZQpwcmV2aW91cyBzZXJp ZXMsIHdoaWNoIHVzZWQgcGVyLXByb2Nlc3MgY2FjaGUgaW52YWxpZGF0aW9uKS4KCigyKSBSd0xv Y2sgY29udGVudGlvbiBmb3IgdG9rZW4gY3JlYXRlL2RlbGV0ZSB1bmRlciBoZWF2eSBsb2FkIG9m CnRva2VuLWF1dGhlbnRpY2F0ZWQgcmVxdWVzdHMKClRoZSBwcmV2aW91cyB2ZXJzaW9uIG9mIHRo ZSBzZXJpZXMgY29tcGFyZWQgc3RkOjpzeW5jOjpSd0xvY2sgYW5kCnBhcmtpbmdfbG90OjpSd0xv Y2sgY29udGVudGlvbiBmb3IgdG9rZW4gY3JlYXRlL2RlbGV0ZSB1bmRlciBoZWF2eQpwYXJhbGxl bCB0b2tlbi1hdXRoZW50aWNhdGVkIHJlYWRlcnMuIHBhcmtpbmdfbG90OjpSd0xvY2sgaGFzIGJl ZW4KY2hvc2VuIGZvciB0aGUgYWRkZWQgZmFpcm5lc3MgZ3VhcmFudGVlcy4KClBhdGNoIHN1bW1h cnkKCnBicy1jb25maWc6CgowMDAxIOKAkyBwYnMtY29uZmlnOiBhZGQgdG9rZW4uc2hhZG93IGdl bmVyYXRpb24gdG8gQ29uZmlnVmVyc2lvbkNhY2hlCkV4dGVuZHMgQ29uZmlnVmVyc2lvbkNhY2hl IHRvIHByb3ZpZGUgYSBwcm9jZXNzLXNoYXJlZCBnZW5lcmF0aW9uCm51bWJlciBmb3IgdG9rZW4u c2hhZG93IGNoYW5nZXMuCgowMDAyIOKAkyBwYnMtY29uZmlnOiBjYWNoZSB2ZXJpZmllZCBBUEkg dG9rZW4gc2VjcmV0cwpBZGRzIGFuIGluLW1lbW9yeSBjYWNoZSB0byBjYWNoZSB2ZXJpZmllZCwg cGxhaW4tdGV4dCBBUEkgdG9rZW4gc2VjcmV0cy4KQ2FjaGUgaXMgaW52YWxpZGF0ZWQgdGhyb3Vn aCB0aGUgcHJvY2Vzcy1zaGFyZWQgQ29uZmlnVmVyc2lvbkNhY2hlCmdlbmVyYXRpb24gbnVtYmVy LiBVc2VzIG9wZW5zc2zigJlzIG1lbWNtcCBjb25zdGFudC10aW1lIGZvciBtYXRjaGluZwpzZWNy ZXRzLgoKMDAwMyDigJMgcGJzLWNvbmZpZzogaW52YWxpZGF0ZSB0b2tlbi1zZWNyZXQgY2FjaGUg b24gdG9rZW4uc2hhZG93CmNoYW5nZXMKU3RhdHMgdG9rZW4uc2hhZG93IG10aW1lIGFuZCBsZW5n dGggYW5kIGNsZWFycyB0aGUgY2FjaGUgd2hlbiB0aGUKZmlsZSBjaGFuZ2VzLCBvbiBlYWNoIHRv a2VuIHZlcmlmaWNhdGlvbiByZXF1ZXN0LgoKMDAwNCDigJMgcGJzLWNvbmZpZzogYWRkIFRUTCB3 aW5kb3cgdG8gdG9rZW4tc2VjcmV0IGNhY2hlCkludHJvZHVjZXMgYSBUVEwgKFRPS0VOX1NFQ1JF VF9DQUNIRV9UVExfU0VDUywgZGVmYXVsdCA2MCkgZm9yIG1ldGFkYXRhCmNoZWNrcyBzbyB0aGF0 IGZzOjptZXRhZGF0YSBjYWxscyBhcmUgbm90IHBlcmZvcm1lZCBvbiBlYWNoIHJlcXVlc3QuCgpw cm94bW94LWFjY2Vzcy1jb250cm9sOgoKMDAwNSDigJMgYWNjZXNzLWNvbnRyb2w6IGV4dGVuZCBB Y2Nlc3NDb250cm9sQ29uZmlnIGZvciB0b2tlbi5zaGFkb3cgaW52YWxpZGF0aW9uCgpFeHRlbmRz IHRoZSBBY2Nlc3NDb250cm9sQ29uZmlnIHRyYWl0IHdpdGgKdG9rZW5fc2hhZG93X2NhY2hlX2dl bmVyYXRpb24oKSBhbmQKaW5jcmVtZW50X3Rva2VuX3NoYWRvd19jYWNoZV9nZW5lcmF0aW9uKCkg Zm9yCnByb3htb3gtYWNjZXNzLWNvbnRyb2wgdG8gZ2V0IHRoZSBzaGFyZWQgdG9rZW4uc2hhZG93 IGdlbmVyYXRpb24gbnVtYmVyCmFuZCBidW1wIGl0IG9uIHRva2VuIHNoYWRvdyBjaGFuZ2VzLgoK MDAwNiDigJMgYWNjZXNzLWNvbnRyb2w6IGNhY2hlIHZlcmlmaWVkIEFQSSB0b2tlbiBzZWNyZXRz Ck1pcnJvcnMgUEJTIFBBVENIIDAwMDIuCgowMDA3IOKAkyBhY2Nlc3MtY29udHJvbDogaW52YWxp ZGF0ZSB0b2tlbi1zZWNyZXQgY2FjaGUgb24gdG9rZW4uc2hhZG93IGNoYW5nZXMKTWlycm9ycyBQ QlMgUEFUQ0ggMDAwMy4KCjAwMDgg4oCTIGFjY2Vzcy1jb250cm9sOiBhZGQgVFRMIHdpbmRvdyB0 byB0b2tlbi1zZWNyZXQgY2FjaGUKTWlycm9ycyBQQlMgUEFUQ0ggMDAwNC4KCnByb3htb3gtZGF0 YWNlbnRlci1tYW5hZ2VyOgoKMDAwOSDigJMgcGRtLWNvbmZpZzogYWRkIHRva2VuLnNoYWRvdyBn ZW5lcmF0aW9uIHRvIENvbmZpZ1ZlcnNpb25DYWNoZQpFeHRlbmRzIFBETSBDb25maWdWZXJzaW9u Q2FjaGUgYW5kIGltcGxlbWVudHMKdG9rZW5fc2hhZG93X2NhY2hlX2dlbmVyYXRpb24oKSBhbmQK aW5jcmVtZW50X3Rva2VuX3NoYWRvd19jYWNoZV9nZW5lcmF0aW9uKCkgZnJvbSBBY2Nlc3NDb250 cm9sQ29uZmlnIGZvcgpQRE0uCgowMDEwIOKAkyBkb2NzOiBkb2N1bWVudCBBUEkgdG9rZW4tY2Fj aGUgVFRMIGVmZmVjdHMKRG9jdW1lbnRzIHRoZSBlZmZlY3RzIG9mIHRoZSBUVEwgd2luZG93IG9u IHRva2VuLnNoYWRvdyBlZGl0cwoKQ2hhbmdlcyBmcm9tIHYxIHRvIHYyOgoKKiAocmVmYWN0b3Ip IFN3aXRjaGVkIGNhY2hlIGluaXRpYWxpemF0aW9uIHRvIExhenlMb2NrCiogKHBlcmYpIFVzZSBw YXJraW5nX2xvdDo6UndMb2NrIGFuZCBiZXN0LWVmZm9ydCBjYWNoZSBhY2Nlc3Mgb24gdGhlCiAg cmVhZC9yZWZyZXNoIHBhdGggKHRyeV9yZWFkL3RyeV93cml0ZSkgdG8gYXZvaWQgbG9jayBjb250 ZW50aW9uCiogKGRvYykgRG9jdW1lbnQgVFRMLWRlbGF5ZWQgZWZmZWN0IG9mIG1hbnVhbCB0b2tl bi5zaGFkb3cgZWRpdHMKKiAoZml4KSBBZGQgZ2VuZXJhdGlvbiBndWFyZHMgKEFQSV9NVVRBVElP Tl9HRU5FUkFUSU9OICsKICBGSUxFX0dFTkVSQVRJT04pIHRvIHByZXZlbnQgY2FjaGluZyBhY3Jv c3MgY29uY3VycmVudCBzZXQvZGVsZXRlIGFuZAogIGV4dGVybmFsIGVkaXRzCgpDaGFuZ2VzIGZy b20gdjIgdG8gdjM6CgoqIChyZWZhY3RvcikgUmVwbGFjZSBQQlMgcGVyLXByb2Nlc3MgY2FjaGUg aW52YWxpZGF0aW9uIHdpdGggYQogIGNyb3NzLXByb2Nlc3MgdG9rZW4uc2hhZG93IGdlbmVyYXRp b24gYmFzZWQgb24gUEJTCiAgQ29uZmlnVmVyc2lvbkNhY2hlLCBlbnN1cmluZyBjYWNoZSBjb25z aXN0ZW5jeSBiZXR3ZWVuIHByaXZpbGVnZWQKICBhbmQgdW5wcml2aWxlZ2VkIGRhZW1vbnMuCiog KHJlZmFjdG9yKSBEZWNvdXBsaW5nIGdlbmVyYXRpb24gc291cmNlIGZyb20gdGhlCiAgcHJveG1v eC9wcm94bW94LWFjY2Vzcy1jb250cm9sIGNhY2hlIGltcGxlbWVudGF0aW9uOiBleHRlbmQKICBB Y2Nlc3NDb250cm9sQ29uZmlnIGhvb2tzIHNvIHRoYXQgcHJvZHVjdHMgY2FuIHByb3ZpZGUgdGhl IHNoYXJlZAogIHRva2VuLnNoYWRvdyBnZW5lcmF0aW9uIHNvdXJjZS4KKiAocmVmYWN0b3IpIEV4 dGVuZCBQRE0ncyBDb25maWdWZXJzaW9uQ2FjaGUgd2l0aAogIHRva2VuX3NoYWRvd19nZW5lcmF0 aW9uCiAgYW5kIGludHJvZHVjZSBhIHBkbV9jb25maWc6OkFjY2Vzc0NvbnRyb2xDb25maWcgd3Jh cHBlciBpbXBsZW1lbnRpbmcKICB0aGUgbmV3IHByb3htb3gtYWNjZXNzLWNvbnRyb2wgdHJhaXQg aG9va3MuIFN3aXRjaCBzZXJ2ZXIgYW5kIENMSQogIGluaXRpYWxpemF0aW9uIHRvIHVzZSBwZG1f Y29uZmlnOjpBY2Nlc3NDb250cm9sQ29uZmlnIGluc3RlYWQgb2YKICBwZG1fYXBpX3R5cGVzOjpB Y2Nlc3NDb250cm9sQ29uZmlnLgoqIChyZWZhY3RvcikgQWRhcHQgZ2VuZXJhdGlvbiBjaGVja3Mg YXJvdW5kIGNhY2hlZC1zZWNyZXQgY29tcGFyaXNvbiB0bwogIHVzZSB0aGUgbmV3IHNoYXJlZCBn ZW5lcmF0aW9uIHNvdXJjZS4KKiAoZml4L2xvZ2ljKSBjYWNoZV90cnlfaW5zZXJ0X3NlY3JldDog VXBkYXRlIHRoZSBsb2NhbCBjYWNoZQogIGdlbmVyYXRpb24gaWYgc3RhbGUsIGFsbG93aW5nIHRo ZSBuZXcgc2VjcmV0IHRvIGJlIGluc2VydGVkCiAgaW1tZWRpYXRlbHkKKiAocmVmYWN0b3IpIEV4 dHJhY3QgY2FjaGUgaW52YWxpZGF0aW9uIGxvZ2ljIGludG8gYQogIGludmFsaWRhdGVfY2FjaGVf c3RhdGUgaGVscGVyIHRvIHJlZHVjZSBkdXBsaWNhdGlvbiBhbmQgZW5zdXJlCiAgY29uc2lzdGVu dCBzdGF0ZSByZXNldHMKKiAocmVmYWN0b3IpIFNpbXBsaWZ5IHJlZnJlc2hfY2FjaGVfaWZfZmls ZV9jaGFuZ2VkOiBoYW5kbGUgdGhlCiAgdW4taW5pdGlhbGl6ZWQvcmVzZXQgc3RhdGUgYW5kIGFk anVzdCB0aGUgZ2VuZXJhdGlvbiBtaXNtYXRjaAogIHBhdGggdG8gZW5zdXJlIGZpbGUgbWV0YWRh dGEgaXMgYWx3YXlzIHJlLXJlYWQuCiogKGRvYykgQ2xhcmlmeSBUVEwtZGVsYXllZCBlZmZlY3Rz IG9mIG1hbnVhbCB0b2tlbi5zaGFkb3cgZWRpdHMuCgpQbGVhc2Ugc2VlIHRoZSBwYXRjaCBzcGVj aWZpYyBjaGFuZ2Vsb2dzIGZvciBtb3JlIGRldGFpbHMuCgpUaGFua3MgZm9yIGNvbnNpZGVyaW5n IHRoaXMgcGF0Y2ggc2VyaWVzLCBJIGxvb2sgZm9yd2FyZCB0byB5b3VyCmZlZWRiYWNrLgoKQmVz dCwKU2FtdWVsIFJ1ZmluYXRzY2hhCgpbMV0gaHR0cHM6Ly9idWd6aWxsYS5wcm94bW94LmNvbS9z aG93X2J1Zy5jZ2k/aWQ9NzAxNwpbMl0gYXR0YWNobWVudCAxNzY3IFsxXTogRmxhbWVncmFwaCBz aG93aW5nIHRoZSBwcm94bW94X3N5czo6Y3J5cHQ6OnZlcmlmeV9jcnlwdF9wdyBzdGFjawpbM10g YXR0YWNobWVudCAxNzk0IFsxXTogRmxhbWVncmFwaCBQRE0gYmFzZWxpbmUKWzRdIGh0dHBzOi8v YnVnemlsbGEucHJveG1veC5jb20vc2hvd19idWcuY2dpP2lkPTYwNDkKCnByb3htb3gtYmFja3Vw OgoKU2FtdWVsIFJ1ZmluYXRzY2hhICg0KToKICBwYnMtY29uZmlnOiBhZGQgdG9rZW4uc2hhZG93 IGdlbmVyYXRpb24gdG8gQ29uZmlnVmVyc2lvbkNhY2hlCiAgcGJzLWNvbmZpZzogY2FjaGUgdmVy aWZpZWQgQVBJIHRva2VuIHNlY3JldHMKICBwYnMtY29uZmlnOiBpbnZhbGlkYXRlIHRva2VuLXNl Y3JldCBjYWNoZSBvbiB0b2tlbi5zaGFkb3cgY2hhbmdlcwogIHBicy1jb25maWc6IGFkZCBUVEwg d2luZG93IHRvIHRva2VuIHNlY3JldCBjYWNoZQoKIENhcmdvLnRvbWwgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAxICsKIGRvY3MvdXNlci1tYW5hZ2VtZW50LnJzdCAgICAgICAgICAg ICAgIHwgICA0ICsKIHBicy1jb25maWcvQ2FyZ28udG9tbCAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHBicy1jb25maWcvc3JjL2NvbmZpZ192ZXJzaW9uX2NhY2hlLnJzIHwgIDE4ICsrCiBwYnMt Y29uZmlnL3NyYy90b2tlbl9zaGFkb3cucnMgICAgICAgICB8IDI5OCArKysrKysrKysrKysrKysr KysrKysrKystCiA1IGZpbGVzIGNoYW5nZWQsIDMyMSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgoKcHJveG1veDoKClNhbXVlbCBSdWZpbmF0c2NoYSAoNCk6CiAgcHJveG1veC1hY2Nlc3Mt Y29udHJvbDogZXh0ZW5kIEFjY2Vzc0NvbnRyb2xDb25maWcgZm9yIHRva2VuLnNoYWRvdwogICAg aW52YWxpZGF0aW9uCiAgcHJveG1veC1hY2Nlc3MtY29udHJvbDogY2FjaGUgdmVyaWZpZWQgQVBJ IHRva2VuIHNlY3JldHMKICBwcm94bW94LWFjY2Vzcy1jb250cm9sOiBpbnZhbGlkYXRlIHRva2Vu LXNlY3JldCBjYWNoZSBvbiB0b2tlbi5zaGFkb3cKICAgIGNoYW5nZXMKICBwcm94bW94LWFjY2Vz cy1jb250cm9sOiBhZGQgVFRMIHdpbmRvdyB0byB0b2tlbiBzZWNyZXQgY2FjaGUKCiBDYXJnby50 b21sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogcHJveG1veC1hY2Nl c3MtY29udHJvbC9DYXJnby50b21sICAgICAgICAgIHwgICAxICsKIHByb3htb3gtYWNjZXNzLWNv bnRyb2wvc3JjL2luaXQucnMgICAgICAgICB8ICAxNyArKwogcHJveG1veC1hY2Nlc3MtY29udHJv bC9zcmMvdG9rZW5fc2hhZG93LnJzIHwgMjk5ICsrKysrKysrKysrKysrKysrKysrLQogNCBmaWxl cyBjaGFuZ2VkLCAzMTcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKCnByb3htb3gtZGF0 YWNlbnRlci1tYW5hZ2VyOgoKU2FtdWVsIFJ1ZmluYXRzY2hhICgyKToKICBwZG0tY29uZmlnOiBp bXBsZW1lbnQgdG9rZW4uc2hhZG93IGdlbmVyYXRpb24KICBkb2NzOiBkb2N1bWVudCBBUEkgdG9r ZW4tY2FjaGUgVFRMIGVmZmVjdHMKCiBjbGkvYWRtaW4vc3JjL21haW4ucnMgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGRvY3MvYWNjZXNzLWNvbnRyb2wucnN0ICAgICAgICAgICAgICAg ICAgICAgfCAgNCArKwogbGliL3BkbS1jb25maWcvQ2FyZ28udG9tbCAgICAgICAgICAgICAgICAg ICB8ICAxICsKIGxpYi9wZG0tY29uZmlnL3NyYy9hY2Nlc3NfY29udHJvbF9jb25maWcucnMgfCA3 MyArKysrKysrKysrKysrKysrKysrKysKIGxpYi9wZG0tY29uZmlnL3NyYy9jb25maWdfdmVyc2lv bl9jYWNoZS5ycyAgfCAxOCArKysrKwogbGliL3BkbS1jb25maWcvc3JjL2xpYi5ycyAgICAgICAg ICAgICAgICAgICB8ICAyICsKIHNlcnZlci9zcmMvYWNsLnJzICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMyArLQogNyBmaWxlcyBjaGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvcGRtLWNvbmZpZy9zcmMvYWNjZXNzX2Nv bnRyb2xfY29uZmlnLnJzCgoKU3VtbWFyeSBvdmVyIGFsbCByZXBvc2l0b3JpZXM6CiAgMTYgZmls ZXMgY2hhbmdlZCwgNzM4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgotLSAKR2VuZXJh dGVkIGJ5IGdpdC1tdXJwcCAwLjguMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCnBicy1kZXZlbCBtYWlsaW5nIGxpc3QKcGJzLWRldmVsQGxpc3RzLnBy b3htb3guY29tCmh0dHBzOi8vbGlzdHMucHJveG1veC5jb20vY2dpLWJpbi9tYWlsbWFuL2xpc3Rp bmZvL3Bicy1kZXZlbAo=