From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id DABF0454C7 for ; Thu, 2 Mar 2023 13:19:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E62A368AC52; Thu, 2 Mar 2023 15:19:36 +0200 (EET) Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B6E236800AA for ; Thu, 2 Mar 2023 15:19:30 +0200 (EET) Received: by mail-pl1-f182.google.com with SMTP id a2so7054288plm.4 for ; Thu, 02 Mar 2023 05:19:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1677763168; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=69rIIk1t1uguvWyA/LY0mJAYeiqhf2Br6wpT46cm2ko=; b=AXxnTspQ54dE79eop3vWLA32DSVvkGsoWqgk4xcFm5Jxz0QZ8irnOeqTaNd3sw11QW Q2Fumitf5lao45OEIPAn4yFufltcE6bbDIy4MqdUH92O8S21syn7K9gY28f+YuV92P1y Wqvgo3KA1MAkCndoiefzfCPgn2KC4Z86NqpBjdftf++9s/TjccrIBrjjGP6s6QWwvF2q PwXDqXkrPBDs6RWpSyHayyjcYgz2Xq75c2IJje7EKZw5xJLawvQmDNsDfJ0eZIbFfCv/ yU7gLOKBiIQSDexAjWn7g7Fyw4imty7TmoHRn4UnWeo8n0uSVg25EavVjYX1mnmFLNPj X0Wg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1677763168; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=69rIIk1t1uguvWyA/LY0mJAYeiqhf2Br6wpT46cm2ko=; b=rjws4hakrYJvCatbvliFyE8/E9UvPDJWEl7yxafaSXGJwOSXp3WHP3Sh7y4b93MbwK F2xHT3dO2DxXVwo5Jx5ylzKlBdKGv2RXC1FmN6sDN3zov0t2dPgz429Q7pqkTRZSvXdp cV8l2f4NDVs+OtswF8OMEXLGu8/8bTncu630G+ZnjcjyMzzO0i/j11JqeL9ofaFIdzqw FFtDobWwBLXloMIba6uKpnhyYk64F3jj8HGUvSSbJhy3djFCX9G+otEGCbrE52v+Kxwz hmwiMnVGgrtF20SqJQou6sVcwUGtVimxIvHoyHzZN3YwOu75oqxz+/s19uDhF/IhAsb2 lVVQ== X-Gm-Message-State: AO0yUKXwBcOSINKZROtmSVY6/7p75NlMm5Wwu5kLZgk6B6eL2zzPpTBV UzSaLJCcMREynE0RPZFvJ5dR8oRPZjc= X-Google-Smtp-Source: AK7set88lxgkGJHvvcTtRn0MKtujYQM6rtH48Y0keWBY3Rf2Yl6H1xsqUKIyj4Rje8orJz8Uo6k9dA== X-Received: by 2002:a17:902:c20d:b0:19e:6969:b142 with SMTP id 13-20020a170902c20d00b0019e6969b142mr2603564pll.3.1677763168075; Thu, 02 Mar 2023 05:19:28 -0800 (PST) Received: from localhost.localdomain ([111.108.111.133]) by smtp.gmail.com with ESMTPSA id l10-20020a170902eb0a00b0019ce470b9fesm10461422plb.140.2023.03.02.05.19.25 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 02 Mar 2023 05:19:27 -0800 (PST) From: liuyizhuo To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Mar 2023 21:19:18 +0800 Message-Id: <20230302131918.52113-1-yizhuo.liu753@gmail.com> X-Mailer: git-send-email 2.24.3 (Apple Git-128) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] libavfilter/vf_signalstats.c: add new hsl(Hue, Saturation, Lightness) for filter signalstats v2 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: wangwei1237@gmail.com, "yizhuo.liu753@gmail.com" Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: RnJvbTogInlpemh1by5saXU3NTNAZ21haWwuY29tIiA8eWl6aHVvLmxpdTc1M0BnbWFpbC5jb20+ CgotLS0KIGxpYmF2ZmlsdGVyL3ZmX3NpZ25hbHN0YXRzLmMgICAgICAgICAgICAgICAgICB8IDIx OSArKysrKysrKysrKysrKysrKy0KIC4uLi9mYXRlL2ZpbHRlci1tZXRhZGF0YS1zaWduYWxzdGF0 cy15dXY0MjBwICB8ICAgMiArLQogLi4uL2ZpbHRlci1tZXRhZGF0YS1zaWduYWxzdGF0cy15dXY0 MjBwMTAgICAgIHwgICAyICstCiAzIGZpbGVzIGNoYW5nZWQsIDIyMCBpbnNlcnRpb25zKCspLCAz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL3ZmX3NpZ25hbHN0YXRzLmMg Yi9saWJhdmZpbHRlci92Zl9zaWduYWxzdGF0cy5jCmluZGV4IGI0ZDEwMjkyOTYuLmM2YzUwNWVj MzAgMTAwNjQ0Ci0tLSBhL2xpYmF2ZmlsdGVyL3ZmX3NpZ25hbHN0YXRzLmMKKysrIGIvbGliYXZm aWx0ZXIvdmZfc2lnbmFsc3RhdHMuYwpAQCAtMiw2ICsyLDggQEAKICAqIENvcHlyaWdodCAoYykg MjAxMCBNYXJrIEhlYXRoIG1qcGVnMCBAIHNpbGljb250cmlwIGRvdCBvcmcKICAqIENvcHlyaWdo dCAoYykgMjAxNCBDbMOpbWVudCBCxZNzY2gKICAqIENvcHlyaWdodCAoYykgMjAxNCBEYXZlIFJp Y2UgQGRlcmljZWQKKyAqIENvcHlyaWdodCAoYykgMjAyMiBXYW5nIFdlaSA8d2FuZ3dlaTEyMzdA Z21haWwuY29tPgorICogQ29weXJpZ2h0IChjKSAyMDIyIExpdSB5aXpodW8gPHlpemh1by5saXU3 NTNAZ21haWwuY29tPgogICoKICAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEZGbXBlZy4KICAqCkBA IC0xOCw2ICsyMCwxMSBAQAogICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogICogTGljZW5zZSBhbG9uZyB3aXRoIEZGbXBl ZzsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogICogRm91bmRhdGlvbiwgSW5j LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAx IFVTQQorICoKKyogIEBmaWxlCisgKiBBZGQgQ2FsY3VsYXRlIHRoZSBIU0wgY29sb3Igc3BhY2Ug aW5mb3JtYXRpb24uCisgKiBIU0wgaXMgYSBjb2xvciBzcGFjZSB0aGF0IGlzIG1vcmUgcGVyY2Vw dHVhbGx5IHVuaWZvcm0gdGhhbiBSR0IgOgorICogICAgIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9y Zy93aWtpL0hTTF9hbmRfSFNWCiAgKi8KIAogI2luY2x1ZGUgImxpYmF2dXRpbC9pbnRyZWFkd3Jp dGUuaCIKQEAgLTI1LDYgKzMyLDcgQEAKICNpbmNsdWRlICJsaWJhdnV0aWwvcGl4ZGVzYy5oIgog I2luY2x1ZGUgImZpbHRlcnMuaCIKICNpbmNsdWRlICJpbnRlcm5hbC5oIgorI2luY2x1ZGUgImxp YnN3c2NhbGUvc3dzY2FsZS5oIgogCiBlbnVtIEZpbHRlck1vZGUgewogICAgIEZJTFRFUl9OT05F ID0gLTEsCkBAIC0zNiw2ICs0NCw4IEBAIGVudW0gRmlsdGVyTW9kZSB7CiAKIHR5cGVkZWYgc3Ry dWN0IFNpZ25hbHN0YXRzQ29udGV4dCB7CiAgICAgY29uc3QgQVZDbGFzcyAqY2xhc3M7CisgICAg aW50IGx1bWFoOyAgICAgIC8vIGhlaWdodCBvZiBsdW1hIHBsYW5lCisgICAgaW50IGx1bWF3OyAg ICAgIC8vIHdpZHRoIG9mIGx1bWEgcGxhbmUKICAgICBpbnQgY2hyb21haDsgICAgLy8gaGVpZ2h0 IG9mIGNocm9tYSBwbGFuZQogICAgIGludCBjaHJvbWF3OyAgICAvLyB3aWR0aCBvZiBjaHJvbWEg cGxhbmUKICAgICBpbnQgaHN1YjsgICAgICAgLy8gaG9yaXpvbnRhbCBzdWJzYW1wbGluZwpAQCAt NTYsNiArNjYsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgU2lnbmFsc3RhdHNDb250ZXh0IHsKIAogICAg IEFWRnJhbWUgKmZyYW1lX3NhdDsKICAgICBBVkZyYW1lICpmcmFtZV9odWU7CisgICAgQVZGcmFt ZSAqZnJhbWVfcmdiOworICAgIAorICAgIGludCAqaHNsX2g7CisgICAgaW50ICpoc2xfczsKKyAg ICBpbnQgKmhzbF9sOwogfSBTaWduYWxzdGF0c0NvbnRleHQ7CiAKIHR5cGVkZWYgc3RydWN0IFRo cmVhZERhdGEgewpAQCAtNjUsOSArODAsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgVGhyZWFkRGF0YSB7 CiAKIHR5cGVkZWYgc3RydWN0IFRocmVhZERhdGFIdWVTYXRNZXRyaWNzIHsKICAgICBjb25zdCBB VkZyYW1lICpzcmM7Ci0gICAgQVZGcmFtZSAqZHN0X3NhdCwgKmRzdF9odWU7CisgICAgQVZGcmFt ZSAqZHN0X3NhdCwgKmRzdF9odWUsICpkc3RfaCwgKmRzdF9zLCAqZHN0X2w7CiB9IFRocmVhZERh dGFIdWVTYXRNZXRyaWNzOwogCit0eXBlZGVmIHN0cnVjdCBUaHJlYWREYXRhSFNMTWV0cmljcyB7 CisgICAgY29uc3QgQVZGcmFtZSAqc3JjOworICAgIGludCAqZHN0X2gsICpkc3RfcywgKmRzdF9s OworfSBUaHJlYWREYXRhSFNMTWV0cmljczsKKwordHlwZWRlZiBmbG9hdCBudW07CisKK3N0YXRp YyBjb25zdCBmbG9hdCBFUFNJTE9OID0gMWUtOTsKKworLyoqIEBicmllZiBFcXVhbCBvZiBBIGFu ZCBCICovCisjZGVmaW5lIEVRKEEsQikgICAgKChmYWJzKChBKSAtIChCKSkgPCBFUFNJTE9OKSA/ IDEgOiAwKQorCiAjZGVmaW5lIE9GRlNFVCh4KSBvZmZzZXRvZihTaWduYWxzdGF0c0NvbnRleHQs IHgpCiAjZGVmaW5lIEZMQUdTIEFWX09QVF9GTEFHX0ZJTFRFUklOR19QQVJBTXxBVl9PUFRfRkxB R19WSURFT19QQVJBTQogCkBAIC0xMTAsMTEgKzEzNywxNSBAQCBzdGF0aWMgYXZfY29sZCB2b2lk IHVuaW5pdChBVkZpbHRlckNvbnRleHQgKmN0eCkKICAgICBhdl9mcmFtZV9mcmVlKCZzLT5mcmFt ZV9wcmV2KTsKICAgICBhdl9mcmFtZV9mcmVlKCZzLT5mcmFtZV9zYXQpOwogICAgIGF2X2ZyYW1l X2ZyZWUoJnMtPmZyYW1lX2h1ZSk7CisgICAgYXZfZnJhbWVfZnJlZSgmcy0+ZnJhbWVfcmdiKTsK ICAgICBhdl9mcmVlcCgmcy0+am9ic19yZXRzKTsKICAgICBhdl9mcmVlcCgmcy0+aGlzdHkpOwog ICAgIGF2X2ZyZWVwKCZzLT5oaXN0dSk7CiAgICAgYXZfZnJlZXAoJnMtPmhpc3R2KTsKICAgICBh dl9mcmVlcCgmcy0+aGlzdHNhdCk7CisgICAgYXZfZnJlZXAoJnMtPmhzbF9oKTsKKyAgICBhdl9m cmVlcCgmcy0+aHNsX3MpOworICAgIGF2X2ZyZWVwKCZzLT5oc2xfbCk7CiB9CiAKIC8vIFRPRE86 IGFkZCBtb3JlCkBAIC0xNTEsNiArMTgyLDIzIEBAIHN0YXRpYyBBVkZyYW1lICphbGxvY19mcmFt ZShlbnVtIEFWUGl4ZWxGb3JtYXQgcGl4Zm10LCBpbnQgdywgaW50IGgpCiAgICAgcmV0dXJuIGZy YW1lOwogfQogCitzdGF0aWMgaW50IGNvbmZpZ19pbnB1dChBVkZpbHRlckxpbmsgKmlubGluaykK K3sKKyAgICAvLyBWaWRlbyBpbnB1dCBkYXRhIGF2aWxhYmxlCisgICAgQVZGaWx0ZXJDb250ZXh0 ICpjdHggPSBpbmxpbmstPmRzdDsKKyAgICBTaWduYWxzdGF0c0NvbnRleHQgKnMgPSBjdHgtPnBy aXY7CisgICAgCisgICAgLy8gZnJlZSBwcmV2aW91cyBidWZmZXJzIGluIGNhc2UgdGhleSBhcmUg YWxsb2NhdGVkIGFscmVhZHkKKyAgICBhdl9mcmFtZV9mcmVlKCZzLT5mcmFtZV9yZ2IpOworICAg IHMtPmZyYW1lX3JnYiA9IGFsbG9jX2ZyYW1lKEFWX1BJWF9GTVRfUkdCMjQsIGlubGluay0+dywg aW5saW5rLT5oKTsKKworICAgIGlmICghcy0+ZnJhbWVfcmdiKSB7CisgICAgICAgIHJldHVybiBB VkVSUk9SKEVOT01FTSk7CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9CisKIHN0YXRpYyBpbnQg Y29uZmlnX291dHB1dChBVkZpbHRlckxpbmsgKm91dGxpbmspCiB7CiAgICAgQVZGaWx0ZXJDb250 ZXh0ICpjdHggPSBvdXRsaW5rLT5zcmM7CkBAIC0xNzIsMTIgKzIyMCwyMiBAQCBzdGF0aWMgaW50 IGNvbmZpZ19vdXRwdXQoQVZGaWx0ZXJMaW5rICpvdXRsaW5rKQogICAgIG91dGxpbmstPncgPSBp bmxpbmstPnc7CiAgICAgb3V0bGluay0+aCA9IGlubGluay0+aDsKIAorICAgIHMtPmx1bWF3ICAg PSBpbmxpbmstPnc7CisgICAgcy0+bHVtYWggICA9IGlubGluay0+aDsKKwogICAgIHMtPmNocm9t YXcgPSBBVl9DRUlMX1JTSElGVChpbmxpbmstPncsIHMtPmhzdWIpOwogICAgIHMtPmNocm9tYWgg PSBBVl9DRUlMX1JTSElGVChpbmxpbmstPmgsIHMtPnZzdWIpOwogCiAgICAgcy0+ZnMgPSBpbmxp bmstPncgKiBpbmxpbmstPmg7CiAgICAgcy0+Y2ZzID0gcy0+Y2hyb21hdyAqIHMtPmNocm9tYWg7 CiAKKyAgICBzLT5oc2xfaCA9IGF2X21hbGxvY19hcnJheShzLT5sdW1haCwgc2l6ZW9mKCpzLT5o c2xfaCkpOworICAgIHMtPmhzbF9zID0gYXZfbWFsbG9jX2FycmF5KHMtPmx1bWFoLCBzaXplb2Yo KnMtPmhzbF9zKSk7CisgICAgcy0+aHNsX2wgPSBhdl9tYWxsb2NfYXJyYXkocy0+bHVtYWgsIHNp emVvZigqcy0+aHNsX2wpKTsKKyAgICBpZiAoIXMtPmhzbF9oIHx8ICFzLT5oc2xfcyB8fCAhcy0+ aHNsX2wpIHsKKyAgICAgICAgcmV0dXJuIEFWRVJST1IoRU5PTUVNKTsKKyAgICB9CisKICAgICBz LT5uYl9qb2JzICAgPSBGRk1BWCgxLCBGRk1JTihpbmxpbmstPmgsIGZmX2ZpbHRlcl9nZXRfbmJf dGhyZWFkcyhjdHgpKSk7CiAgICAgcy0+am9ic19yZXRzID0gYXZfbWFsbG9jX2FycmF5KHMtPm5i X2pvYnMsIHNpemVvZigqcy0+am9ic19yZXRzKSk7CiAgICAgaWYgKCFzLT5qb2JzX3JldHMpCkBA IC00NTUsNiArNTEzLDExMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICAgICB7TlVMTH0KIH07 CiAKK3N0YXRpYyB2b2lkIFlVVjJSR0IoY29uc3QgQVZGcmFtZSogc3JjLCBlbnVtIEFWUGl4ZWxG b3JtYXQgZHN0Rm9ybWF0LCBBVkZyYW1lKiBkc3QpCit7CisgICAgaW50IHdpZHRoICA9IHNyYy0+ d2lkdGg7CisgICAgaW50IGhlaWdodCA9IHNyYy0+aGVpZ2h0OworICAgIAorICAgIHN0cnVjdCBT d3NDb250ZXh0KiBjb252ZXJzaW9uID0gTlVMTDsKKyAgICBjb252ZXJzaW9uID0gc3dzX2dldENv bnRleHQod2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVudW0gQVZQaXhlbEZvcm1hdClzcmMtPmZv cm1hdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZHN0Rm9ybWF0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTV1NfRkFT VF9CSUxJTkVBUiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTlVMTCk7CisgICAgc3dzX3NjYWxlKGNvbnZlcnNpb24sIChjb25zdCB1aW50OF90 ICogY29uc3QgKilzcmMtPmRhdGEsIHNyYy0+bGluZXNpemUsIDAsIGhlaWdodCwgZHN0LT5kYXRh LCBkc3QtPmxpbmVzaXplKTsKKyAgICBzd3NfZnJlZUNvbnRleHQoY29udmVyc2lvbik7Cit9CisK Ky8qKgorICogQGJyaWVmIENvbnZlcnQgYW4gc1JHQiBjb2xvciB0byBIdWUtU2F0dXJhdGlvbi1M aWdodG5lc3MgKEhTTCkKKyAqCisgKiBAcGFyYW0gSCwgUywgTCBwb2ludGVycyB0byBob2xkIHRo ZSByZXN1bHQKKyAqIEBwYXJhbSBSLCBHLCBCIHRoZSBpbnB1dCBzUkdCIHZhbHVlcyBzY2FsZWQg aW4gWzAsMV0KKyAqCisgKiBUaGlzIHJvdXRpbmUgdHJhbnNmb3JtcyBmcm9tIHNSR0IgdG8gdGhl IGRvdWJsZSBoZXhjb25lIEhTTCBjb2xvciBzcGFjZQorICogVGhlIHNSR0IgdmFsdWVzIGFyZSBh c3N1bWVkIHRvIGJlIGJldHdlZW4gMCBhbmQgMS4gIFRoZSBvdXRwdXRzIGFyZQorICogICBIID0g aGV4YWdvbmFsIGh1ZSBhbmdsZSAgICAgICAgICAgICAgICAoMCA8PSBIIDwgMzYwKSwKKyAqICAg UyA9IHsgQy8oMkwpICAgICBpZiBMIDw9IDEvMiAgICAgICAgICAgKDAgPD0gUyA8PSAxKSwKKyAq ICAgICAgIHsgQy8oMiAtIDJMKSBpZiBMID4gIDEvMgorICogICBMID0gKG1heChSJyxHJyxCJykg KyBtaW4oUicsRycsQicpKS8yICAoMCA8PSBMIDw9IDEpLAorICogd2hlcmUgQyA9IG1heChSJyxH JyxCJykgLSBtaW4oUicsRycsQicpLgorICoKKyAqIFdpa2lwZWRpYTogaHR0cDovL2VuLndpa2lw ZWRpYS5vcmcvd2lraS9IU0xfYW5kX0hTVgorICovCitzdGF0aWMgdm9pZCBSR0IySFNMKG51bSAq SCwgbnVtICpTLCBudW0gKkwsIG51bSBSLCBudW0gRywgbnVtIEIpCit7CisgICAgbnVtIE1heCA9 IEZGTUFYMyhSLCBHLCBCKTsKKyAgICBudW0gTWluID0gRkZNSU4zKFIsIEcsIEIpOworICAgIG51 bSBDID0gTWF4IC0gTWluOworCisgICAgKkwgPSAoTWF4ICsgTWluKSAvIDI7CisgICAgCisgICAg aWYgKEMgPiAwKSB7CisgICAgICAgIGlmIChFUShNYXgsIFIpKSB7CisgICAgICAgICAgICAqSCA9 IChHIC0gQikgLyBDOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoRyA8IEIpIHsKKyAg ICAgICAgICAgICAgICAqSCArPSA2OworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYg KEVRKE1heCwgRykpIHsKKyAgICAgICAgICAgICpIID0gMiArIChCIC0gUikgLyBDOworICAgICAg ICB9IGVsc2UgeworICAgICAgICAgICAgKkggPSA0ICsgKFIgLSBHKSAvIEM7CisgICAgICAgIH0K KworICAgICAgICAqSCAqPSA2MDsKKyAgICAgICAgKlMgPSAoKkwgPD0gMC41KSA/IChDLygyKigq TCkpKSA6IChDLygyIC0gMiooKkwpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgKkggPSAqUyA9 IDA7CisgICAgfQorfQorCitzdGF0aWMgaW50IGNvbXB1dGVfaHNsKEFWRmlsdGVyQ29udGV4dCAq Y3R4LCB2b2lkICphcmcsIGludCBqb2JuciwgaW50IG5iX2pvYnMpCit7CisgICAgaW50IGksIGo7 CisgICAgbnVtIEgsIFMsIEw7CisgICAgVGhyZWFkRGF0YUhTTE1ldHJpY3MgKnRkID0gYXJnOwor ICAgIGNvbnN0IFNpZ25hbHN0YXRzQ29udGV4dCAqcyA9IGN0eC0+cHJpdjsKKyAgICBjb25zdCBB VkZyYW1lICpzcmMgPSB0ZC0+c3JjOworICAgIGludCAqZHN0X2ggPSB0ZC0+ZHN0X2g7CisgICAg aW50ICpkc3RfcyA9IHRkLT5kc3RfczsKKyAgICBpbnQgKmRzdF9sID0gdGQtPmRzdF9sOworICAg IAorICAgIGNvbnN0IGludCBzbGljZV9zdGFydCA9IChzLT5sdW1haCAqIGpvYm5yICAgICkgLyBu Yl9qb2JzOworICAgIGNvbnN0IGludCBzbGljZV9lbmQgICA9IChzLT5sdW1haCAqIChqb2Jucisx KSkgLyBuYl9qb2JzOworCisgICAgY29uc3QgaW50IGxzel9zcmMgPSBzcmMtPmxpbmVzaXplWzBd OworICAgIGNvbnN0IHVpbnQ4X3QgKnBfc3JjID0gc3JjLT5kYXRhWzBdICsgc2xpY2Vfc3RhcnQg KiBsc3pfc3JjOworCisgICAgZm9yIChqID0gc2xpY2Vfc3RhcnQ7IGogPCBzbGljZV9lbmQ7IGor KykgeworICAgICAgICBpbnQgbGluZV9oID0gMCwgbGluZV9zID0gMCwgbGluZV9sID0gMDsKKyAg ICAgICAgZm9yIChpID0gMDsgaSA8IHMtPmx1bWF3OyBpKyspIHsKKyAgICAgICAgICAgIGNvbnN0 IHVpbnQ4X3QgcmdiciA9IHBfc3JjWzMgKiBpXTsKKyAgICAgICAgICAgIGNvbnN0IHVpbnQ4X3Qg cmdiZyA9IHBfc3JjWzMgKiBpICsgMV07CisgICAgICAgICAgICBjb25zdCB1aW50OF90IHJnYmIg PSBwX3NyY1szICogaSArIDJdOworICAgICAgICAgICAgCisgICAgICAgICAgICBSR0IySFNMKCZI LCAmUywgJkwsIDEuMCAqIHJnYnIgLyAyNTUsIDEuMCAqIHJnYmcgLyAyNTUsIDEuMCAqIHJnYmIg LyAyNTUpOworICAgICAgICAgICAgbGluZV9oICs9ICh1aW50MTZfdCkoSCArIDAuNSk7CisgICAg ICAgICAgICBsaW5lX3MgKz0gKHVpbnQ4X3QpKFMgKiAxMDAgKyAwLjUpOworICAgICAgICAgICAg bGluZV9sICs9ICh1aW50OF90KShMICogMTAwICsgMC41KTsKKyAgICAgICAgfQorICAgICAgICAK KyAgICAgICAgZHN0X2hbal0gPSBsaW5lX2ggLyBzLT5sdW1hdzsKKyAgICAgICAgZHN0X3Nbal0g PSBsaW5lX3MgLyBzLT5sdW1hdzsKKyAgICAgICAgZHN0X2xbal0gPSBsaW5lX2wgLyBzLT5sdW1h dzsKKworICAgICAgICBwX3NyYyArPSBsc3pfc3JjOworICAgIH0KKworICAgIHJldHVybiAwOwor fQorCiBzdGF0aWMgaW50IGNvbXB1dGVfc2F0X2h1ZV9tZXRyaWNzOChBVkZpbHRlckNvbnRleHQg KmN0eCwgdm9pZCAqYXJnLCBpbnQgam9ibnIsIGludCBuYl9qb2JzKQogewogICAgIGludCBpLCBq OwpAQCAtNTYyLDYgKzcyNCw3IEBAIHN0YXRpYyBpbnQgZmlsdGVyX2ZyYW1lOChBVkZpbHRlckxp bmsgKmxpbmssIEFWRnJhbWUgKmluKQogICAgIGludCBhY2N5LCBhY2N1LCBhY2N2OwogICAgIGlu dCBhY2NzYXQsIGFjY2h1ZSA9IDA7CiAgICAgaW50IG1lZGh1ZSwgbWF4aHVlOworICAgIGludCBh dmdoID0gMCwgYXZncyA9IDAsIGF2Z2wgPSAwOwogICAgIGludCB0b3R5ID0gMCwgdG90dSA9IDAs IHRvdHYgPSAwLCB0b3RzYXQ9MDsKICAgICBpbnQgdG90aHVlID0gMDsKICAgICBpbnQgZGlmeSA9 IDAsIGRpZnUgPSAwLCBkaWZ2ID0gMDsKQEAgLTYwNCw2ICs3NjcsMjggQEAgc3RhdGljIGludCBm aWx0ZXJfZnJhbWU4KEFWRmlsdGVyTGluayAqbGluaywgQVZGcmFtZSAqaW4pCiAgICAgZmZfZmls dGVyX2V4ZWN1dGUoY3R4LCBjb21wdXRlX3NhdF9odWVfbWV0cmljczgsICZ0ZF9odWVzYXQsCiAg ICAgICAgICAgICAgICAgICAgICAgTlVMTCwgRkZNSU4ocy0+Y2hyb21haCwgZmZfZmlsdGVyX2dl dF9uYl90aHJlYWRzKGN0eCkpKTsKIAorICAgIC8vIENhbGN1bGF0ZSBIU0wgaW5mb3JtYXRpb24u CisgICAgWVVWMlJHQihpbiwgQVZfUElYX0ZNVF9SR0IyNCwgcy0+ZnJhbWVfcmdiKTsKKyAgICBU aHJlYWREYXRhSFNMTWV0cmljcyB0ZF9oc2wgPSB7CisgICAgICAgIC5zcmMgICA9IHMtPmZyYW1l X3JnYiwKKyAgICAgICAgLmRzdF9oID0gcy0+aHNsX2gsCisgICAgICAgIC5kc3RfcyA9IHMtPmhz bF9zLAorICAgICAgICAuZHN0X2wgPSBzLT5oc2xfbCwKKyAgICB9OworICAgIGZmX2ZpbHRlcl9l eGVjdXRlKGN0eCwgY29tcHV0ZV9oc2wsICZ0ZF9oc2wsCisgICAgICAgICAgICAgICAgICAgICAg TlVMTCwgRkZNSU4obGluay0+aCwgZmZfZmlsdGVyX2dldF9uYl90aHJlYWRzKGN0eCkpKTsKKyAg ICAKKyAgICBpbnQgc3VtaCA9IDAsIHN1bXMgPSAwLCBzdW1sID0gMDsKKyAgICBmb3IgKGogPSAw OyBqIDwgcy0+bHVtYWg7IGorKykgeworICAgICAgICBzdW1oICs9IHMtPmhzbF9oW2pdOworICAg ICAgICBzdW1zICs9IHMtPmhzbF9zW2pdOworICAgICAgICBzdW1sICs9IHMtPmhzbF9sW2pdOwor ICAgIH0KKworICAgIGF2Z2ggPSBzdW1oIC8gcy0+bHVtYWg7CisgICAgYXZncyA9IHN1bXMgLyBz LT5sdW1haDsKKyAgICBhdmdsID0gc3VtbCAvIHMtPmx1bWFoOworCiAgICAgLy8gQ2FsY3VsYXRl IGx1bWEgaGlzdG9ncmFtIGFuZCBkaWZmZXJlbmNlIHdpdGggcHJldmlvdXMgZnJhbWUgb3IgZmll bGQuCiAgICAgbWVtc2V0KHMtPmhpc3R5LCAwLCBzLT5tYXhzaXplICogc2l6ZW9mKCpzLT5oaXN0 eSkpOwogICAgIGZvciAoaiA9IDA7IGogPCBsaW5rLT5oOyBqKyspIHsKQEAgLTc0Niw2ICs5MzEs MTAgQEAgc3RhdGljIGludCBmaWx0ZXJfZnJhbWU4KEFWRmlsdGVyTGluayAqbGluaywgQVZGcmFt ZSAqaW4pCiAgICAgU0VUX01FVEEoIkhVRU1FRCIsICAiJWQiLCBtZWRodWUpOwogICAgIFNFVF9N RVRBKCJIVUVBVkciLCAgIiVnIiwgMS4wICogdG90aHVlIC8gcy0+Y2ZzKTsKIAorICAgIFNFVF9N RVRBKCJIQVZHIiwgICAgIiVkIiwgYXZnaCk7CisgICAgU0VUX01FVEEoIlNBVkciLCAgICAiJWQi LCBhdmdzKTsKKyAgICBTRVRfTUVUQSgiTEFWRyIsICAgICIlZCIsIGF2Z2wpOworCiAgICAgU0VU X01FVEEoIllESUYiLCAgICAiJWciLCAxLjAgKiBkaWZ5IC8gcy0+ZnMpOwogICAgIFNFVF9NRVRB KCJVRElGIiwgICAgIiVnIiwgMS4wICogZGlmdSAvIHMtPmNmcyk7CiAgICAgU0VUX01FVEEoIlZE SUYiLCAgICAiJWciLCAxLjAgKiBkaWZ2IC8gcy0+Y2ZzKTsKQEAgLTc5Myw2ICs5ODIsNyBAQCBz dGF0aWMgaW50IGZpbHRlcl9mcmFtZTE2KEFWRmlsdGVyTGluayAqbGluaywgQVZGcmFtZSAqaW4p CiAgICAgaW50IGFjY3ksIGFjY3UsIGFjY3Y7CiAgICAgaW50IGFjY3NhdCwgYWNjaHVlID0gMDsK ICAgICBpbnQgbWVkaHVlLCBtYXhodWU7CisgICAgaW50IGF2Z2ggPSAwLCBhdmdzID0gMCwgYXZn bCA9IDA7CiAgICAgaW50NjRfdCB0b3R5ID0gMCwgdG90dSA9IDAsIHRvdHYgPSAwLCB0b3RzYXQ9 MDsKICAgICBpbnQ2NF90IHRvdGh1ZSA9IDA7CiAgICAgaW50NjRfdCBkaWZ5ID0gMCwgZGlmdSA9 IDAsIGRpZnYgPSAwOwpAQCAtODM1LDYgKzEwMjUsMjggQEAgc3RhdGljIGludCBmaWx0ZXJfZnJh bWUxNihBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUgKmluKQogICAgIGZmX2ZpbHRlcl9leGVj dXRlKGN0eCwgY29tcHV0ZV9zYXRfaHVlX21ldHJpY3MxNiwgJnRkX2h1ZXNhdCwKICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLCBGRk1JTihzLT5jaHJvbWFoLCBmZl9maWx0ZXJfZ2V0X25iX3Ro cmVhZHMoY3R4KSkpOwogCisgICAgLy8gQ2FsY3VsYXRlIEhTTCBpbmZvcm1hdGlvbi4KKyAgICBZ VVYyUkdCKGluLCBBVl9QSVhfRk1UX1JHQjI0LCBzLT5mcmFtZV9yZ2IpOworICAgIFRocmVhZERh dGFIU0xNZXRyaWNzIHRkX2hzbCA9IHsKKyAgICAgICAgLnNyYyAgID0gcy0+ZnJhbWVfcmdiLAor ICAgICAgICAuZHN0X2ggPSBzLT5oc2xfaCwKKyAgICAgICAgLmRzdF9zID0gcy0+aHNsX3MsCisg ICAgICAgIC5kc3RfbCA9IHMtPmhzbF9sLAorICAgIH07CisgICAgZmZfZmlsdGVyX2V4ZWN1dGUo Y3R4LCBjb21wdXRlX2hzbCwgJnRkX2hzbCwKKyAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBG Rk1JTihsaW5rLT5oLCBmZl9maWx0ZXJfZ2V0X25iX3RocmVhZHMoY3R4KSkpOworICAgIAorICAg IGludCBzdW1oID0gMCwgc3VtcyA9IDAsIHN1bWwgPSAwOworICAgIGZvciAoaiA9IDA7IGogPCBz LT5sdW1haDsgaisrKSB7CisgICAgICAgIHN1bWggKz0gcy0+aHNsX2hbal07CisgICAgICAgIHN1 bXMgKz0gcy0+aHNsX3Nbal07CisgICAgICAgIHN1bWwgKz0gcy0+aHNsX2xbal07CisgICAgfQor CisgICAgYXZnaCA9IHN1bWggLyBzLT5sdW1haDsKKyAgICBhdmdzID0gc3VtcyAvIHMtPmx1bWFo OworICAgIGF2Z2wgPSBzdW1sIC8gcy0+bHVtYWg7CisKICAgICAvLyBDYWxjdWxhdGUgbHVtYSBo aXN0b2dyYW0gYW5kIGRpZmZlcmVuY2Ugd2l0aCBwcmV2aW91cyBmcmFtZSBvciBmaWVsZC4KICAg ICBtZW1zZXQocy0+aGlzdHksIDAsIHMtPm1heHNpemUgKiBzaXplb2YoKnMtPmhpc3R5KSk7CiAg ICAgZm9yIChqID0gMDsgaiA8IGxpbmstPmg7IGorKykgewpAQCAtOTc2LDYgKzExODgsMTAgQEAg c3RhdGljIGludCBmaWx0ZXJfZnJhbWUxNihBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUgKmlu KQogICAgIFNFVF9NRVRBKCJVRElGIiwgICAgIiVnIiwgMS4wICogZGlmdSAvIHMtPmNmcyk7CiAg ICAgU0VUX01FVEEoIlZESUYiLCAgICAiJWciLCAxLjAgKiBkaWZ2IC8gcy0+Y2ZzKTsKIAorICAg IFNFVF9NRVRBKCJIQVZHIiwgICAgIiVkIiwgYXZnaCk7CisgICAgU0VUX01FVEEoIlNBVkciLCAg ICAiJWQiLCBhdmdzKTsKKyAgICBTRVRfTUVUQSgiTEFWRyIsICAgICIlZCIsIGF2Z2wpOworCiAg ICAgU0VUX01FVEEoIllCSVRERVBUSCIsICIlZCIsIGNvbXB1dGVfYml0X2RlcHRoKG1hc2t5KSk7 CiAgICAgU0VUX01FVEEoIlVCSVRERVBUSCIsICIlZCIsIGNvbXB1dGVfYml0X2RlcHRoKG1hc2t1 KSk7CiAgICAgU0VUX01FVEEoIlZCSVRERVBUSCIsICIlZCIsIGNvbXB1dGVfYml0X2RlcHRoKG1h c2t2KSk7CkBAIC0xMDA5LDYgKzEyMjUsNyBAQCBzdGF0aWMgY29uc3QgQVZGaWx0ZXJQYWQgc2ln bmFsc3RhdHNfaW5wdXRzW10gPSB7CiAgICAgewogICAgICAgICAubmFtZSAgICAgICAgICAgPSAi ZGVmYXVsdCIsCiAgICAgICAgIC50eXBlICAgICAgICAgICA9IEFWTUVESUFfVFlQRV9WSURFTywK KyAgICAgICAgLmNvbmZpZ19wcm9wcyAgID0gY29uZmlnX2lucHV0LAogICAgICAgICAuZmlsdGVy X2ZyYW1lICAgPSBmaWx0ZXJfZnJhbWUsCiAgICAgfSwKIH07CmRpZmYgLS1naXQgYS90ZXN0cy9y ZWYvZmF0ZS9maWx0ZXItbWV0YWRhdGEtc2lnbmFsc3RhdHMteXV2NDIwcCBiL3Rlc3RzL3JlZi9m YXRlL2ZpbHRlci1tZXRhZGF0YS1zaWduYWxzdGF0cy15dXY0MjBwCmluZGV4IGE0MmFjYzhmMmIu LjY5NWE5M2RlZGMgMTAwNjQ0Ci0tLSBhL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1tZXRhZGF0YS1z aWduYWxzdGF0cy15dXY0MjBwCisrKyBiL3Rlc3RzL3JlZi9mYXRlL2ZpbHRlci1tZXRhZGF0YS1z aWduYWxzdGF0cy15dXY0MjBwCkBAIC0xICsxIEBACi1wdHM9MHx0YWc6bGF2Zmkuc2lnbmFsc3Rh dHMuVUJJVERFUFRIPTF8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLllNSU49MjM1fHRhZzpsYXZmaS5z aWduYWxzdGF0cy5ZTE9XPTIzNXx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuWUFWRz0yMzV8dGFnOmxh dmZpLnNpZ25hbHN0YXRzLllISUdIPTIzNXx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuWU1BWD0yMzV8 dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlVNSU49MTI4fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5VTE9X PTEyOHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVUFWRz0xMjh8dGFnOmxhdmZpLnNpZ25hbHN0YXRz LlVISUdIPTEyOHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVU1BWD0xMjh8dGFnOmxhdmZpLnNpZ25h bHN0YXRzLlZNSU49MTI4fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5WTE9XPTEyOHx0YWc6bGF2Zmku c2lnbmFsc3RhdHMuVkFWRz0xMjh8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlZISUdIPTEyOHx0YWc6 bGF2Zmkuc2lnbmFsc3RhdHMuVk1BWD0xMjh8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlNBVE1JTj0w fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5TQVRMT1c9MHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuU0FU QVZHPTB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlNBVEhJR0g9MHx0YWc6bGF2Zmkuc2lnbmFsc3Rh dHMuU0FUTUFYPTB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLkhVRU1FRD0xODB8dGFnOmxhdmZpLnNp Z25hbHN0YXRzLkhVRUFWRz0xODB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLllESUY9MHx0YWc6bGF2 Zmkuc2lnbmFsc3RhdHMuVURJRj0wfHRhZzpsYXZmaS5zaWduYWxzdGF0cy5WRElGPTB8dGFnOmxh dmZpLnNpZ25hbHN0YXRzLllCSVRERVBUSD02fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5WQklUREVQ VEg9MQorcHRzPTB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlVCSVRERVBUSD0xfHRhZzpsYXZmaS5z aWduYWxzdGF0cy5ZTUlOPTIzNXx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuWUxPVz0yMzV8dGFnOmxh dmZpLnNpZ25hbHN0YXRzLllBVkc9MjM1fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5ZSElHSD0yMzV8 dGFnOmxhdmZpLnNpZ25hbHN0YXRzLllNQVg9MjM1fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5VTUlO PTEyOHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVUxPVz0xMjh8dGFnOmxhdmZpLnNpZ25hbHN0YXRz LlVBVkc9MTI4fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5VSElHSD0xMjh8dGFnOmxhdmZpLnNpZ25h bHN0YXRzLlVNQVg9MTI4fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5WTUlOPTEyOHx0YWc6bGF2Zmku c2lnbmFsc3RhdHMuVkxPVz0xMjh8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlZBVkc9MTI4fHRhZzps YXZmaS5zaWduYWxzdGF0cy5WSElHSD0xMjh8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlZNQVg9MTI4 fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5TQVRNSU49MHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuU0FU TE9XPTB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlNBVEFWRz0wfHRhZzpsYXZmaS5zaWduYWxzdGF0 cy5TQVRISUdIPTB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlNBVE1BWD0wfHRhZzpsYXZmaS5zaWdu YWxzdGF0cy5IVUVNRUQ9MTgwfHRhZzpsYXZmaS5zaWduYWxzdGF0cy5IVUVBVkc9MTgwfHRhZzps YXZmaS5zaWduYWxzdGF0cy5IQVZHPTB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlNBVkc9MHx0YWc6 bGF2Zmkuc2lnbmFsc3RhdHMuTEFWRz05OXx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuWURJRj0wfHRh ZzpsYXZmaS5zaWduYWxzdGF0cy5VRElGPTB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlZESUY9MHx0 YWc6bGF2Zmkuc2lnbmFsc3RhdHMuWUJJVERFUFRIPTZ8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlZC SVRERVBUSD0xClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvdGVzdHMv cmVmL2ZhdGUvZmlsdGVyLW1ldGFkYXRhLXNpZ25hbHN0YXRzLXl1djQyMHAxMCBiL3Rlc3RzL3Jl Zi9mYXRlL2ZpbHRlci1tZXRhZGF0YS1zaWduYWxzdGF0cy15dXY0MjBwMTAKaW5kZXggMWU1YWZk MDgyMC4uNzI0NWE2MWZmZiAxMDA2NDQKLS0tIGEvdGVzdHMvcmVmL2ZhdGUvZmlsdGVyLW1ldGFk YXRhLXNpZ25hbHN0YXRzLXl1djQyMHAxMAorKysgYi90ZXN0cy9yZWYvZmF0ZS9maWx0ZXItbWV0 YWRhdGEtc2lnbmFsc3RhdHMteXV2NDIwcDEwCkBAIC0xICsxIEBACi1wdHM9MHx0YWc6bGF2Zmku c2lnbmFsc3RhdHMuVUJJVERFUFRIPTJ8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLllNSU49OTQzfHRh ZzpsYXZmaS5zaWduYWxzdGF0cy5ZTE9XPTk0M3x0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuWUFWRz05 NDN8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLllISUdIPTk0M3x0YWc6bGF2Zmkuc2lnbmFsc3RhdHMu WU1BWD05NDN8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlVNSU49NTE0fHRhZzpsYXZmaS5zaWduYWxz dGF0cy5VTE9XPTUxNHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVUFWRz01MTR8dGFnOmxhdmZpLnNp Z25hbHN0YXRzLlVISUdIPTUxNHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVU1BWD01MTR8dGFnOmxh dmZpLnNpZ25hbHN0YXRzLlZNSU49NTE0fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5WTE9XPTUxNHx0 YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVkFWRz01MTR8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlZISUdI PTUxNHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVk1BWD01MTR8dGFnOmxhdmZpLnNpZ25hbHN0YXRz LlNBVE1JTj0yfHRhZzpsYXZmaS5zaWduYWxzdGF0cy5TQVRMT1c9Mnx0YWc6bGF2Zmkuc2lnbmFs c3RhdHMuU0FUQVZHPTJ8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlNBVEhJR0g9Mnx0YWc6bGF2Zmku c2lnbmFsc3RhdHMuU0FUTUFYPTJ8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLkhVRU1FRD0yMjV8dGFn OmxhdmZpLnNpZ25hbHN0YXRzLkhVRUFWRz0yMjV8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLllESUY9 MHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVURJRj0wfHRhZzpsYXZmaS5zaWduYWxzdGF0cy5WRElG PTB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLllCSVRERVBUSD04fHRhZzpsYXZmaS5zaWduYWxzdGF0 cy5WQklUREVQVEg9MgorcHRzPTB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlVCSVRERVBUSD0yfHRh ZzpsYXZmaS5zaWduYWxzdGF0cy5ZTUlOPTk0M3x0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuWUxPVz05 NDN8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLllBVkc9OTQzfHRhZzpsYXZmaS5zaWduYWxzdGF0cy5Z SElHSD05NDN8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLllNQVg9OTQzfHRhZzpsYXZmaS5zaWduYWxz dGF0cy5VTUlOPTUxNHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVUxPVz01MTR8dGFnOmxhdmZpLnNp Z25hbHN0YXRzLlVBVkc9NTE0fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5VSElHSD01MTR8dGFnOmxh dmZpLnNpZ25hbHN0YXRzLlVNQVg9NTE0fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5WTUlOPTUxNHx0 YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVkxPVz01MTR8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlZBVkc9 NTE0fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5WSElHSD01MTR8dGFnOmxhdmZpLnNpZ25hbHN0YXRz LlZNQVg9NTE0fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5TQVRNSU49Mnx0YWc6bGF2Zmkuc2lnbmFs c3RhdHMuU0FUTE9XPTJ8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlNBVEFWRz0yfHRhZzpsYXZmaS5z aWduYWxzdGF0cy5TQVRISUdIPTJ8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlNBVE1BWD0yfHRhZzps YXZmaS5zaWduYWxzdGF0cy5IVUVNRUQ9MjI1fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5IVUVBVkc9 MjI1fHRhZzpsYXZmaS5zaWduYWxzdGF0cy5ZRElGPTB8dGFnOmxhdmZpLnNpZ25hbHN0YXRzLlVE SUY9MHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuVkRJRj0wfHRhZzpsYXZmaS5zaWduYWxzdGF0cy5I QVZHPTMwMHx0YWc6bGF2Zmkuc2lnbmFsc3RhdHMuU0FWRz0xMDB8dGFnOmxhdmZpLnNpZ25hbHN0 YXRzLkxBVkc9MTAwfHRhZzpsYXZmaS5zaWduYWxzdGF0cy5ZQklUREVQVEg9OHx0YWc6bGF2Zmku c2lnbmFsc3RhdHMuVkJJVERFUFRIPTIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoy LjI0LjMgKEFwcGxlIEdpdC0xMjgpCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpmZm1wZWctZGV2ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1w ZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoK VG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxpbmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1y ZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==