From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: passt.top; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: passt.top; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=GrulW8nR; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by passt.top (Postfix) with ESMTPS id CDC725A0265 for ; Tue, 26 May 2026 18:05:11 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1779811510; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=wvd04oqFaDV0KnO74YEJh4ANFpP6xxgn/fLRNILnFqQ=; b=GrulW8nRLrrLuy1lRInPqcjJFdZAYdbftwVAJcRR9VRUQCaGpb6trSLj06VvKpIPkhZLnP +ozFJ3RhF6Ol8nV6PRGijXLUMehPv6a4msdMOhmTBsxM/be7qY+PHSq5fpniWWZy37MuwV 3QFAkZyslQELjEMP5Ramnc+VXSz7nQ8= Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-627-cq_RI3-tNOKEMTiyKr1Rzg-1; Tue, 26 May 2026 12:05:08 -0400 X-MC-Unique: cq_RI3-tNOKEMTiyKr1Rzg-1 X-Mimecast-MFC-AGG-ID: cq_RI3-tNOKEMTiyKr1Rzg_1779811508 Received: by mail-wm1-f72.google.com with SMTP id 5b1f17b1804b1-48fd64c32e8so72997235e9.3 for ; Tue, 26 May 2026 09:05:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779811508; x=1780416308; h=content-transfer-encoding:in-reply-to:autocrypt:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=wvd04oqFaDV0KnO74YEJh4ANFpP6xxgn/fLRNILnFqQ=; b=Od76RqZd+po53sAl0TNmLujo8MXbid+0LW7kPQPCbAEgYjvZRRTgJipTGpLylBv56L Tk9S3MfT8xzQVyzsZ4yiAfhWWBaXFz2q4v7nI1Cqopyn0Wp4DvACb46qoD552cguB4zt 1meuXivCj71NVTTcPTO2bgFQqa2zWaP+Ycuxwi66/jCDzM5q+rRv3NOaMVFQsA0pHSxp CkG83cw2fM9SzmVSm9exApRLsApwoMloJe3lOkugO0w/nyyFIV7W4rG6hiEX8h/eWSt+ IPDT55XO5yBxKQgLasFWn90sduv3idPzkXmdVBXlid6Y7BCddeMIxyxp8bTx9Ut9IYC6 wKXQ== X-Forwarded-Encrypted: i=1; AFNElJ+UjQjH43A2X4UKmUtp6ZC/Zms2s5GdGbY7zD7Bp+dPybEsbKErlbMLTHiUgTvXWriejbWrNHCRsj0=@passt.top X-Gm-Message-State: AOJu0Yy52BKU7lAbiqUmaR34jhbN9hNNesUJ+3aCxqtlhTKYXlYnYQJ+ 1fOrFBhJgDslQHnhFpT/v0nCYHKYjfvWuRHVdGWxvAzBuZ1Q5I9sVS49zXwG/vH8lBbl8jJNoSR Q2wFX9DHWiLQ6a3n6cRbA3rhmBSocGv+Vg6tf22jodzPvXeUJ2WVwBA== X-Gm-Gg: Acq92OGwrkD7p54hSzBSsT9xfWOwEkxhtINpFxatANrglpRa+FDfEviVnJLrY3dngv4 exrOavy28oSMQaLJAl575mL5Jd6kGmFhfAU0N8CWgUsHRVuHou6gtObJLbv1iZs1d3l8ClX90WY FRXkbKyT08CicMOouNWwUpfm5OZdlpEUBws+KgwY2m1m5Bfx3lINnIKwfv+IApaoWNV8T6vdyPp 97sDSqNuTDn43lJWzE1xRuLnWka/Gbk+Bqio2URUV14A682HaUCiRTz2FZ78Xf6S8cWCrvymmaP EMBJfMvsydqt8YTua33uKGi37+4AcJgKUkWCGpVb8P9IOWHHCvGsj8khYxL1otxE7JdcEvwzVoK 14vn3POB0lYDJ9wEbtnymgB2ecPQOBQ6HS9brgHatMYoODar/ak2Kue8= X-Received: by 2002:a05:600c:5298:b0:490:778:4fe4 with SMTP id 5b1f17b1804b1-490428e03c3mr334179355e9.26.1779811507146; Tue, 26 May 2026 09:05:07 -0700 (PDT) X-Received: by 2002:a05:600c:5298:b0:490:778:4fe4 with SMTP id 5b1f17b1804b1-490428e03c3mr334178035e9.26.1779811506201; Tue, 26 May 2026 09:05:06 -0700 (PDT) Received: from [192.168.100.100] (82-64-211-94.subs.proxad.net. [82.64.211.94]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-490454b7d57sm332063775e9.15.2026.05.26.09.05.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 26 May 2026 09:05:05 -0700 (PDT) Message-ID: <46780f40-afb9-4a63-895c-9564dc0d6abe@redhat.com> Date: Tue, 26 May 2026 18:05:04 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 3/6] dhcp: Add option type table and value parser To: Anshu Kumari , passt-dev@passt.top, sbrivio@redhat.com References: <20260526123115.1226166-1-anskuma@redhat.com> <20260526123115.1226166-4-anskuma@redhat.com> From: Laurent Vivier Autocrypt: addr=lvivier@redhat.com; keydata= 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 In-Reply-To: <20260526123115.1226166-4-anskuma@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: l7Cf6SglfkzK_43n2sQcuoec7sVY8B5bQjIO7yO1x5g_1779811508 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset="utf-8"; format="flowed" Content-Transfer-Encoding: base64 Message-ID-Hash: JE5KKLUPI7IT2XBLR75SHUCWEFOON5IS X-Message-ID-Hash: JE5KKLUPI7IT2XBLR75SHUCWEFOON5IS X-MailFrom: lvivier@redhat.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: jmaloy@redhat.com, david@gibson.dropbear.id.au X-Mailman-Version: 3.3.8 Precedence: list List-Id: Development discussion and patches for passt Archived-At: Archived-At: List-Archive: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: T24gNS8yNi8yNiAxNDozMSwgQW5zaHUgS3VtYXJpIHdyb3RlOg0KPiBBZGQgYW4gUkZDIDIxMzIg dHlwZSBsb29rdXAgdGFibGUgbWFwcGluZyBESENQIG9wdGlvbiBjb2RlcyB0byB0aGVpcg0KPiBl eHBlY3RlZCB2YWx1ZSBmb3JtYXRzLCBhbmQgYSBkaGNwX29wdF9wYXJzZSgpIGZ1bmN0aW9uIHRo YXQgY29udmVydHMNCj4gQ0xJIHN0cmluZyB2YWx1ZXMgaW50byB0aGVpciBiaW5hcnkgd2lyZSBy ZXByZXNlbnRhdGlvbi4NCj4gDQo+IFdpcmUgZGhjcF9vcHRfcGFyc2UoKSBpbnRvIHRoZSAtLWRo Y3Atb3B0IGhhbmRsZXIgc28gdGhhdCB2YWx1ZXMgYXJlDQo+IHZhbGlkYXRlZCBhbmQgZW5jb2Rl ZCBhdCBjb25maWd1cmF0aW9uIHRpbWUuDQo+IA0KPiBMaW5rOiBodHRwczovL2J1Z3MucGFzc3Qu dG9wL3Nob3dfYnVnLmNnaT9pZD0xOTINCj4gU2lnbmVkLW9mZi1ieTogQW5zaHUgS3VtYXJpIDxh bnNrdW1hQHJlZGhhdC5jb20+DQo+IC0tLQ0KPiB2MjoNCj4gICAgLSBSZXBsYWNlZCBzdHJ1Y3Qg bG9va3VwIHRhYmxlICsgZGhjcF9vcHRfdHlwZV9sb29rdXAoKSBmdW5jdGlvbiB3aXRoIGZsYXQg ZGhjcF9vcHRfdHlwZXNbMjU2XSBhcnJheSBpbmRleGVkIGJ5IGNvZGUuDQo+ICAgIC0gQ29uc29s aWRhdGVkIERIQ1BfT1BUX1VJTlQ4L1VJTlQxNi9VSU5UMzIgaW50byBzaW5nbGUgREhDUF9PUFRf SU5URUdFUiB3aXRoIGRoY3Bfb3B0X2ludF93aWR0aFsyNTZdIHRhYmxlLg0KPiAgICAtIERyb3Bw ZWQgREhDUF9PUFRfUk9VVEVTIC8gb3B0aW9uIDEyMSBlbnRpcmVseS4NCj4gICAgLSBBZGRlZCBr ZXJuZWxkb2MgZm9yIGVudW0gZGhjcF9vcHRfdHlwZSB2YWx1ZXMuDQo+ICAgIC0gUmVtb3ZlZCBj dXJseSBicmFjZXMgZnJvbSBzd2l0Y2ggY2FzZXMsIGRlY2xhcmF0aW9ucyBiZWZvcmUgc3dpdGNo Lg0KPiAgICAtIEFkZGVkIG5ld2xpbmVzIGJlZm9yZSByZXR1cm4gc3RhdGVtZW50cy4NCj4gICAg LSBDaGFuZ2VkIElQIGxpc3QgZGVsaW1pdGVyIGZyb20gc3BhY2UgdG8gY29tbWEgKC0tZGhjcC1v cHQgNiwxLjEuMS4xLDguOC44LjgpLg0KPiAgICAtIERlZmluZWQgREhDUF9PUFRfUEFSU0VfQlVG IGNvbnN0YW50IGZvciBiYXJlIDEwMjQuDQo+ICAgIC0gQWRkZWQgbGVuIGFuZCB2YWxbMjU1XSBm aWVsZHMgdG8gc3RydWN0IGhlcmUgKG1vdmVkIGZyb20gcGF0Y2jCoDEpLg0KPiAgICAtIEFkZGVk IGtlcm5lbGRvYyBmb3IgQGN1c3RvbV9vcHRzLmxlbiBhbmQgQGN1c3RvbV9vcHRzLnZhbC4NCj4g ICAgLSBXaXJlZCBkaGNwX29wdF9wYXJzZSgpIGludG8gY2FzZSAzMiAoLS1kaGNwLWJvb3QpIHRv IHBvcHVsYXRlIHZhbC9sZW4uDQo+IC0tLQ0KPiAgIGNvbmYuYyAgfCAgMTYgKysrKysrDQo+ICAg ZGhjcC5jICB8IDE0OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKw0KPiAgIGRoY3AuaCAgfCAgMTcgKysrKysrKw0KPiAgIHBhc3N0LmggfCAg IDQgKysNCj4gICA0IGZpbGVzIGNoYW5nZWQsIDE4NSBpbnNlcnRpb25zKCspDQo+IA0KPiBkaWZm IC0tZ2l0IGEvY29uZi5jIGIvY29uZi5jDQo+IGluZGV4IGFlOGVlMjYuLjNhNWY0NWQgMTAwNjQ0 DQo+IC0tLSBhL2NvbmYuYw0KPiArKysgYi9jb25mLmMNCj4gQEAgLTEyNjYsNiArMTI2Niw3IEBA IHZvaWQgY29uZihzdHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICAgCWNo YXIgKmVuZDsNCj4gICAJdWlkX3QgdWlkOw0KPiAgIAlnaWRfdCBnaWQ7DQo+ICsJaW50IGxlbjsN Cg0KSSB0aGluayB5b3UgZG9uJ3QgbmVlZCB0byBpbnRyb2R1Y2UgbGVuIGZvciAtLWRoY3Atb3B0 IGFzIHlvdSBhbHJlYWR5IHVzZSByZXQgZm9yIC0tZGhjcC1ib290DQo+ICAgCQ0KPiAgIA0KPiAg IAlpZiAoYy0+bW9kZSA9PSBNT0RFX1BBU1RBKQ0KPiBAQCAtMTQ4Miw3ICsxNDgzLDE0IEBAIHZv aWQgY29uZihzdHJ1Y3QgY3R4ICpjLCBpbnQgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICAgCQkJCWRp ZSgiVG9vIG1hbnkgREhDUCBvcHRpb25zIChtYXggJWQpIiwNCj4gICAJCQkJICAgIE1BWF9DVVNU T01fREhDUF9PUFRTKTsNCj4gICANCj4gKwkJCXJldCA9IGRoY3Bfb3B0X3BhcnNlKDY3LCBvcHRh cmcsDQo+ICsJCQkJCSAgICAgYy0+Y3VzdG9tX29wdHNbYy0+Y3VzdG9tX29wdHNfY291bnRdLnZh bCwNCj4gKwkJCQkJICAgICBzaXplb2YoYy0+Y3VzdG9tX29wdHNbMF0udmFsKSk7DQo+ICsJCQlp ZiAocmV0IDwgMCkNCj4gKwkJCQlkaWUoIkludmFsaWQgYm9vdCBmaWxlIHZhbHVlOiAlcyIsIG9w dGFyZyk7DQo+ICsNCj4gICAJCQljLT5jdXN0b21fb3B0c1tjLT5jdXN0b21fb3B0c19jb3VudF0u Y29kZSA9IDY3Ow0KPiArCQkJYy0+Y3VzdG9tX29wdHNbYy0+Y3VzdG9tX29wdHNfY291bnRdLmxl biA9IHJldDsNCj4gICAJCQlpZiAoc25wcmludGZfY2hlY2soYy0+Y3VzdG9tX29wdHNbYy0+Y3Vz dG9tX29wdHNfY291bnRdLnN0ciwNCj4gICAJCQkJCSAgIHNpemVvZihjLT5jdXN0b21fb3B0c1sw XS5zdHIpLA0KPiAgIAkJCQkJICAgIiVzIiwgb3B0YXJnKSkNCj4gQEAgLTE1MDMsNyArMTUxMSwx NSBAQCB2b2lkIGNvbmYoc3RydWN0IGN0eCAqYywgaW50IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiAg IAkJCQlkaWUoIlRvbyBtYW55IC0tZGhjcC1vcHQgZW50cmllcyAobWF4ICVkKSIsDQo+ICAgCQkJ CSAgICBNQVhfQ1VTVE9NX0RIQ1BfT1BUUyk7DQo+ICAgDQo+ICsJCQlsZW4gPSBkaGNwX29wdF9w YXJzZShvcHRjb2RlLCBjb21tYSArIDEsDQo+ICsJCQkJCSAgICAgYy0+Y3VzdG9tX29wdHNbYy0+ Y3VzdG9tX29wdHNfY291bnRdLnZhbCwNCj4gKwkJCQkJICAgICBzaXplb2YoYy0+Y3VzdG9tX29w dHNbMF0udmFsKSk7DQoNCnlvdSBjYW4gdXNlICJyZXQiIGhlcmUgdG9vDQoNCj4gKwkJCWlmIChs ZW4gPCAwKQ0KPiArCQkJCWRpZSgiSW52YWxpZCB2YWx1ZSBmb3IgREhDUCBvcHRpb24gJWx1OiAl cyIsDQo+ICsJCQkJICAgIG9wdGNvZGUsIGNvbW1hICsgMSk7DQo+ICsNCj4gICAJCQljLT5jdXN0 b21fb3B0c1tjLT5jdXN0b21fb3B0c19jb3VudF0uY29kZSA9IG9wdGNvZGU7DQo+ICsJCQljLT5j dXN0b21fb3B0c1tjLT5jdXN0b21fb3B0c19jb3VudF0ubGVuID0gbGVuOw0KPiAgIAkJCWlmIChz bnByaW50Zl9jaGVjayhjLT5jdXN0b21fb3B0c1tjLT5jdXN0b21fb3B0c19jb3VudF0uc3RyLA0K PiAgIAkJCQkJICAgc2l6ZW9mKGMtPmN1c3RvbV9vcHRzWzBdLnN0ciksDQo+ICAgCQkJCQkgICAi JXMiLCBjb21tYSArIDEpKQ0KPiBkaWZmIC0tZ2l0IGEvZGhjcC5jIGIvZGhjcC5jDQo+IGluZGV4 IDFmZjhjYmEuLmUxYzk1YWQgMTAwNjQ0DQo+IC0tLSBhL2RoY3AuYw0KPiArKysgYi9kaGNwLmMN Cj4gQEAgLTMzLDYgKzMzLDE1NCBAQA0KPiAgICNpbmNsdWRlICJsb2cuaCINCj4gICAjaW5jbHVk ZSAiZGhjcC5oIg0KPiAgIA0KPiArLyoqDQo+ICsgKiBkaGNwX29wdF90eXBlcyAtIE1hcHMgb3B0 aW9uIGNvZGUgdG8gUkZDIDIxMzIgdmFsdWUgdHlwZSwgaW5kZXhlZCBieSBjb2RlDQo+ICsgKi8N Cj4gK3N0YXRpYyBjb25zdCBlbnVtIGRoY3Bfb3B0X3R5cGUgZGhjcF9vcHRfdHlwZXNbMjU2XSA9 IHsNCj4gKwlbMV0gID0gREhDUF9PUFRfSVBWNCwJCS8qIFN1Ym5ldCBNYXNrICovDQo+ICsJWzJd ICA9IERIQ1BfT1BUX0lOVEVHRVIsCS8qIFRpbWUgT2Zmc2V0ICovDQo+ICsJWzNdICA9IERIQ1Bf T1BUX0lQVjRfTElTVCwJLyogUm91dGVyICovDQo+ICsJWzRdICA9IERIQ1BfT1BUX0lQVjRfTElT VCwJLyogVGltZSBTZXJ2ZXIgKi8NCj4gKwlbNV0gID0gREhDUF9PUFRfSVBWNF9MSVNULAkvKiBO YW1lIFNlcnZlciAqLw0KPiArCVs2XSAgPSBESENQX09QVF9JUFY0X0xJU1QsCS8qIERvbWFpbiBO YW1lIFNlcnZlciAqLw0KPiArCVs3XSAgPSBESENQX09QVF9JUFY0X0xJU1QsCS8qIExvZyBTZXJ2 ZXIgKi8NCj4gKwlbOF0gID0gREhDUF9PUFRfSVBWNF9MSVNULAkvKiBDb29raWUgU2VydmVyICov DQo+ICsJWzldICA9IERIQ1BfT1BUX0lQVjRfTElTVCwJLyogTFBSIFNlcnZlciAqLw0KPiArCVsx MF0gPSBESENQX09QVF9JUFY0X0xJU1QsCS8qIEltcHJlc3MgU2VydmVyICovDQo+ICsJWzExXSA9 IERIQ1BfT1BUX0lQVjRfTElTVCwJLyogUmVzb3VyY2UgTG9jYXRpb24gU2VydmVyICovDQo+ICsJ WzEyXSA9IERIQ1BfT1BUX1NUUiwJCS8qIEhvc3QgTmFtZSAqLw0KPiArCVsxM10gPSBESENQX09Q VF9JTlRFR0VSLAkvKiBCb290IEZpbGUgU2l6ZSAqLw0KPiArCVsxNV0gPSBESENQX09QVF9TVFIs CQkvKiBEb21haW4gTmFtZSAqLw0KPiArCVsxNl0gPSBESENQX09QVF9JUFY0LAkJLyogU3dhcCBT ZXJ2ZXIgKi8NCj4gKwlbMTddID0gREhDUF9PUFRfU1RSLAkJLyogUm9vdCBQYXRoICovDQo+ICsJ WzE5XSA9IERIQ1BfT1BUX0lOVEVHRVIsCS8qIElQIEZvcndhcmRpbmcgKi8NCj4gKwlbMjNdID0g REhDUF9PUFRfSU5URUdFUiwJLyogRGVmYXVsdCBJUCBUVEwgKi8NCj4gKwlbMjZdID0gREhDUF9P UFRfSU5URUdFUiwJLyogSW50ZXJmYWNlIE1UVSAqLw0KPiArCVsyOF0gPSBESENQX09QVF9JUFY0 LAkJLyogQnJvYWRjYXN0IEFkZHJlc3MgKi8NCj4gKwlbMzNdID0gREhDUF9PUFRfSVBWNF9MSVNU LAkvKiBTdGF0aWMgUm91dGVzICovDQo+ICsJWzM3XSA9IERIQ1BfT1BUX0lOVEVHRVIsCS8qIFRD UCBEZWZhdWx0IFRUTCAqLw0KPiArCVszOF0gPSBESENQX09QVF9JTlRFR0VSLAkvKiBUQ1AgS2Vl cGFsaXZlIEludGVydmFsICovDQo+ICsJWzQwXSA9IERIQ1BfT1BUX1NUUiwJCS8qIE5JUyBEb21h aW4gTmFtZSAqLw0KPiArCVs0MV0gPSBESENQX09QVF9JUFY0X0xJU1QsCS8qIE5JUyBTZXJ2ZXJz ICovDQo+ICsJWzQyXSA9IERIQ1BfT1BUX0lQVjRfTElTVCwJLyogTlRQIFNlcnZlcnMgKi8NCj4g KwlbNDRdID0gREhDUF9PUFRfSVBWNF9MSVNULAkvKiBOZXRCSU9TIE5hbWUgU2VydmVyICovDQo+ ICsJWzUwXSA9IERIQ1BfT1BUX0lQVjQsCQkvKiBSZXF1ZXN0ZWQgSVAgQWRkcmVzcyAqLw0KPiAr CVs1MV0gPSBESENQX09QVF9JTlRFR0VSLAkvKiBJUCBBZGRyZXNzIExlYXNlIFRpbWUgKi8NCj4g KwlbNTNdID0gREhDUF9PUFRfSU5URUdFUiwJLyogREhDUCBNZXNzYWdlIFR5cGUgKi8NCj4gKwlb NTRdID0gREhDUF9PUFRfSVBWNCwJCS8qIFNlcnZlciBJZGVudGlmaWVyICovDQo+ICsJWzU1XSA9 IERIQ1BfT1BUX1NUUiwJCS8qIFBhcmFtZXRlciBSZXF1ZXN0IExpc3QgKi8NCg0KVGhpcyBpcyBh IGNsaWVudCBvcHRpb24sIEkgZG9uJ3QgdGhpbmsgd2UgbmVlZCB0byBtYW5hZ2UgaXQuDQoNCj4g KwlbNTddID0gREhDUF9PUFRfSU5URUdFUiwJLyogTWF4IERIQ1AgTWVzc2FnZSBTaXplICovDQo+ ICsJWzU4XSA9IERIQ1BfT1BUX0lOVEVHRVIsCS8qIFJlbmV3YWwgKFQxKSBUaW1lICovDQo+ICsJ WzU5XSA9IERIQ1BfT1BUX0lOVEVHRVIsCS8qIFJlYmluZGluZyAoVDIpIFRpbWUgKi8NCj4gKwlb NjBdID0gREhDUF9PUFRfU1RSLAkJLyogVmVuZG9yIENsYXNzIElkZW50aWZpZXIgKi8NCj4gKwlb NjFdID0gREhDUF9PUFRfU1RSLAkJLyogQ2xpZW50IElkZW50aWZpZXIgKi8NCg0KVGhpcyBpcyBh bHNvIGEgY2xpZW50IG9wdGlvbi4NCg0KPiArCVs2Nl0gPSBESENQX09QVF9TVFIsCQkvKiBURlRQ IFNlcnZlciBOYW1lICovDQo+ICsJWzY3XSA9IERIQ1BfT1BUX1NUUiwJCS8qIEJvb3RmaWxlIE5h bWUgKi8NCj4gKwlbMTE5XSA9IERIQ1BfT1BUX1NUUiwJCS8qIERvbWFpbiBTZWFyY2ggTGlzdCAq Lw0KDQpUaGlzIGlzIG5vdCByZWFsbHkgYSBzdHJpbmcgYXMgdGhpcyB1c2VzIHRoZSBtZXNzYWdl IGNvbXByZXNzaW9uIGRlc2NyaWJlZCBpbiBSRkMgMTAzNSwgDQo0LjEuNC4gKFNlZSBhbHNvIDMu IEV4YW1wbGUgaW4gcmZjMzM5NykuIEknbSBub3Qgc3VyZSB3ZSBjYW4gZW5jb2RlIHRoaXMgbWFu dWFsbHkgb24gdGhlIA0KY29tbWFuZCBsaW5lLiBBbmQgUkZDIDMzOTYgZGVmaW5lcyBob3cgdG8g ZW5jb2RlIHNlYXJjaCBzdHJpbmcgZm9yIG1vcmUgdGhhbiAyNTUgDQpjaGFyYWN0ZXJzIGxlbmd0 aA0KDQo+ICsJWzI1Ml0gPSBESENQX09QVF9TVFIsCQkvKiBXUEFEIFVSTCAqLw0KPiArfTsNCj4g Kw0KPiArLyoqDQo+ICsgKiBkaGNwX29wdF9pbnRfd2lkdGggLSBJbnRlZ2VyIHdpZHRoIGluIGJ5 dGVzIGZvciBJTlRFR0VSLXR5cGVkIG9wdGlvbnMNCj4gKyAqLw0KPiArc3RhdGljIGNvbnN0IHVp bnQ4X3QgZGhjcF9vcHRfaW50X3dpZHRoWzI1Nl0gPSB7DQo+ICsJWzJdICA9IDQsCS8qIFRpbWUg T2Zmc2V0ICovDQo+ICsJWzEzXSA9IDIsCS8qIEJvb3QgRmlsZSBTaXplICovDQo+ICsJWzE5XSA9 IDEsCS8qIElQIEZvcndhcmRpbmcgKi8NCj4gKwlbMjNdID0gMSwJLyogRGVmYXVsdCBJUCBUVEwg Ki8NCj4gKwlbMjZdID0gMiwJLyogSW50ZXJmYWNlIE1UVSAqLw0KPiArCVszN10gPSAxLAkvKiBU Q1AgRGVmYXVsdCBUVEwgKi8NCj4gKwlbMzhdID0gNCwJLyogVENQIEtlZXBhbGl2ZSBJbnRlcnZh bCAqLw0KPiArCVs1MV0gPSA0LAkvKiBJUCBBZGRyZXNzIExlYXNlIFRpbWUgKi8NCj4gKwlbNTNd ID0gMSwJLyogREhDUCBNZXNzYWdlIFR5cGUgKi8NCj4gKwlbNTddID0gMiwJLyogTWF4IERIQ1Ag TWVzc2FnZSBTaXplICovDQo+ICsJWzU4XSA9IDQsCS8qIFJlbmV3YWwgKFQxKSBUaW1lICovDQo+ ICsJWzU5XSA9IDQsCS8qIFJlYmluZGluZyAoVDIpIFRpbWUgKi8NCj4gK307DQo+ICsNCj4gKyNk ZWZpbmUgREhDUF9PUFRfUEFSU0VfQlVGCTEwMjQNCg0KRG8gd2UgbmVlZCAxMDI0IGJ5dGVzLCBh bGwgb3B0aW9ucyBhcmUgYm91bmRlZCB0byAyNTYgYnl0ZXMuDQo+ICsNCj4gKy8qKg0KPiArICog ZGhjcF9vcHRfcGFyc2UoKSAtIFBhcnNlIGEgREhDUCBvcHRpb24gdmFsdWUNCj4gKyAqIEBjb2Rl OglESENQIG9wdGlvbiBjb2RlDQo+ICsgKiBAc3RyOglESENQIFZhbHVlIHN0cmluZyBmcm9tIGNv bW1hbmQgbGluZQ0KPiArICogQGJ1ZjoJT3V0cHV0IGJ1ZmZlcg0KPiArICogQGJ1Zl9sZW46CVNp emUgb2Ygb3V0cHV0IGJ1ZmZlcg0KPiArICoNCj4gKyAqIFJldHVybjogbnVtYmVyIG9mIGJ5dGVz IHdyaXR0ZW4gdG8gQGJ1Ziwgb3IgLTEgb24gZXJyb3INCj4gKyAqLw0KPiAraW50IGRoY3Bfb3B0 X3BhcnNlKHVpbnQ4X3QgY29kZSwgY29uc3QgY2hhciAqc3RyLCB1aW50OF90ICpidWYsIHNpemVf dCBidWZfbGVuKQ0KPiArew0KPiArCWVudW0gZGhjcF9vcHRfdHlwZSB0eXBlID0gZGhjcF9vcHRf dHlwZXNbY29kZV07DQo+ICsJY2hhciB0bXBbREhDUF9PUFRfUEFSU0VfQlVGXTsNCj4gKwljaGFy ICp0b2ssICpzYXZlcHRyLCAqZW5kOw0KPiArCXN0cnVjdCBpbl9hZGRyIGFkZHI7DQo+ICsJdW5z aWduZWQgbG9uZyB2YWw7DQo+ICsJdW5zaWduZWQgaW50IGk7DQo+ICsJdWludDhfdCB3aWR0aDsN Cj4gKwlzaXplX3Qgc2xlbjsNCj4gKwlpbnQgbGVuOw0KPiArDQo+ICsJc3dpdGNoICh0eXBlKSB7 DQo+ICsJY2FzZSBESENQX09QVF9OT05FOg0KPiArCQlkaWUoIlVuc3VwcG9ydGVkIERIQ1Agb3B0 aW9uOiAldSwiDQo+ICsJCSAgICAiIHNlZSBwYXNzdCgxKSBmb3Igc3VwcG9ydGVkIGNvZGVzIiwg Y29kZSk7DQo+ICsJY2FzZSBESENQX09QVF9JUFY0Og0KPiArCQlpZiAoaW5ldF9wdG9uKEFGX0lO RVQsIHN0ciwgJmFkZHIpICE9IDEpDQo+ICsJCQlyZXR1cm4gLTE7DQo+ICsNCj4gKwkJaWYgKGJ1 Zl9sZW4gPCBzaXplb2YoYWRkcikpDQo+ICsJCQlyZXR1cm4gLTE7DQo+ICsNCj4gKwkJbWVtY3B5 KGJ1ZiwgJmFkZHIsIHNpemVvZihhZGRyKSk7DQo+ICsNCj4gKwkJcmV0dXJuIHNpemVvZihhZGRy KTsNCj4gKwljYXNlIERIQ1BfT1BUX0lQVjRfTElTVDoNCj4gKwkJbGVuID0gMDsNCj4gKw0KPiAr CQlpZiAoc25wcmludGZfY2hlY2sodG1wLCBzaXplb2YodG1wKSwgIiVzIiwgc3RyKSkNCj4gKwkJ CXJldHVybiAtMTsNCj4gKw0KPiArCQlmb3IgKHRvayA9IHN0cnRva19yKHRtcCwgIiwiLCAmc2F2 ZXB0cik7IHRvazsNCj4gKwkJICAgICB0b2sgPSBzdHJ0b2tfcihOVUxMLCAiLCIsICZzYXZlcHRy KSkgew0KPiArCQkJaWYgKGluZXRfcHRvbihBRl9JTkVULCB0b2ssICZhZGRyKSAhPSAxKQ0KPiAr CQkJCXJldHVybiAtMTsNCj4gKw0KPiArCQkJaWYgKGxlbiArIChpbnQpc2l6ZW9mKGFkZHIpID4g KGludClidWZfbGVuKQ0KPiArCQkJCXJldHVybiAtMTsNCj4gKw0KPiArCQkJbWVtY3B5KGJ1ZiAr IGxlbiwgJmFkZHIsIHNpemVvZihhZGRyKSk7DQo+ICsJCQlsZW4gKz0gc2l6ZW9mKGFkZHIpOw0K PiArCQl9DQo+ICsJCXJldHVybiBsZW47DQo+ICsJY2FzZSBESENQX09QVF9JTlRFR0VSOg0KPiAr CQl3aWR0aCA9IGRoY3Bfb3B0X2ludF93aWR0aFtjb2RlXTsNCj4gKwkJdmFsID0gc3RydG91bChz dHIsICZlbmQsIDApOw0KPiArDQo+ICsJCWlmICgqZW5kIHx8IGJ1Zl9sZW4gPCB3aWR0aCkNCj4g KwkJCXJldHVybiAtMTsNCj4gKw0KPiArCQlpZiAod2lkdGggPCA0ICYmIHZhbCA+PSAoMVVMIDw8 ICh3aWR0aCAqIDgpKSkNCj4gKwkJCXJldHVybiAtMTsNCj4gKw0KPiArCQlmb3IgKGkgPSAwOyBp IDwgd2lkdGg7IGkrKykNCj4gKwkJCWJ1ZltpXSA9ICh2YWwgPj4gKCh3aWR0aCAtIDEgLSBpKSAq IDgpKSAmIDB4ZmY7DQo+ICsNCj4gKwkJcmV0dXJuIHdpZHRoOw0KPiArCWNhc2UgREhDUF9PUFRf U1RSOg0KPiArCQlzbGVuID0gc3RybGVuKHN0cik7DQo+ICsNCj4gKwkJaWYgKCFzbGVuIHx8IHNs ZW4gPj0gYnVmX2xlbikNCj4gKwkJCXJldHVybiAtMTsNCj4gKw0KPiArCQlzdHJuY3B5KChjaGFy ICopYnVmLCBzdHIsIGJ1Zl9sZW4pOw0KPiArDQo+ICsJCXJldHVybiBzbGVuOw0KPiArCX0NCj4g Kw0KPiArCXJldHVybiAtMTsNCj4gK30NCj4gKw0KPiAgIC8qKg0KPiAgICAqIHN0cnVjdCBvcHQg LSBESENQIG9wdGlvbg0KPiAgICAqIEBzZW50OglDb252ZW5pZW5jZSBmbGFnLCBzZXQgd2hpbGUg ZmlsbGluZyByZXBsaWVzDQo+IGRpZmYgLS1naXQgYS9kaGNwLmggYi9kaGNwLmgNCj4gaW5kZXgg Y2Q1MGM5OS4uM2RhNTcxYyAxMDA2NDQNCj4gLS0tIGEvZGhjcC5oDQo+ICsrKyBiL2RoY3AuaA0K PiBAQCAtNiw3ICs2LDI0IEBADQo+ICAgI2lmbmRlZiBESENQX0gNCj4gICAjZGVmaW5lIERIQ1Bf SA0KPiAgIA0KPiArLyoqDQo+ICsgKiBlbnVtIGRoY3Bfb3B0X3R5cGUgLSBESENQIG9wdGlvbiB2 YWx1ZSB0eXBlcyBwZXIgUkZDIDIxMzINCj4gKyAqIEBESENQX09QVF9OT05FOglVbnN1cHBvcnRl ZCBvciB1bmtub3duIG9wdGlvbg0KPiArICogQERIQ1BfT1BUX1NUUjoJVmFyaWFibGUtbGVuZ3Ro IHN0cmluZw0KPiArICogQERIQ1BfT1BUX0lQVjQ6CVNpbmdsZSBJUHY0IGFkZHJlc3MNCj4gKyAq IEBESENQX09QVF9JUFY0X0xJU1Q6TXVsdGlwbGUgSVB2NCBhZGRyZXNzZXMsIGNvbW1hLXNlcGFy YXRlZA0KPiArICogQERIQ1BfT1BUX0lOVEVHRVI6CVVuc2lnbmVkIGludGVnZXIgKDEsIDIsIG9y IDQgYnl0ZXMpDQo+ICsgKi8NCj4gK2VudW0gZGhjcF9vcHRfdHlwZSB7DQo+ICsJREhDUF9PUFRf Tk9ORSwNCj4gKwlESENQX09QVF9TVFIsDQo+ICsJREhDUF9PUFRfSVBWNCwNCj4gKwlESENQX09Q VF9JUFY0X0xJU1QsDQo+ICsJREhDUF9PUFRfSU5URUdFUiwNCj4gK307DQo+ICsNCj4gICBpbnQg ZGhjcChjb25zdCBzdHJ1Y3QgY3R4ICpjLCBzdHJ1Y3QgaW92X3RhaWwgKmRhdGEpOw0KPiAgIHZv aWQgZGhjcF9pbml0KHZvaWQpOw0KPiAraW50IGRoY3Bfb3B0X3BhcnNlKHVpbnQ4X3QgY29kZSwg Y29uc3QgY2hhciAqc3RyLCB1aW50OF90ICpidWYsIHNpemVfdCBidWZfbGVuKTsNCj4gICANCj4g ICAjZW5kaWYgLyogREhDUF9IICovDQo+IGRpZmYgLS1naXQgYS9wYXNzdC5oIGIvcGFzc3QuaA0K PiBpbmRleCAzYTA4MTZmLi43NTFmZWUzIDEwMDY0NA0KPiAtLS0gYS9wYXNzdC5oDQo+ICsrKyBi L3Bhc3N0LmgNCj4gQEAgLTE4NCw2ICsxODQsOCBAQCBzdHJ1Y3QgaXA2X2N0eCB7DQo+ICAgICog QGZxZG46CQlHdWVzdCBGUURODQo+ICAgICogQGN1c3RvbV9vcHRzOglVc2VyLXNwZWNpZmllZCBE SENQIG9wdGlvbnMgZnJvbSAtLWRoY3Atb3B0DQo+ICAgICogQGN1c3RvbV9vcHRzLmNvZGU6CURI Q1Agb3B0aW9uIGNvZGUNCj4gKyAqIEBjdXN0b21fb3B0cy5sZW46CUxlbmd0aCBvZiBiaW5hcnkg dmFsdWUgaW4gQHZhbA0KPiArICogQGN1c3RvbV9vcHRzLnZhbDoJQmluYXJ5LWVuY29kZWQgb3B0 aW9uIHZhbHVlDQo+ICAgICogQGN1c3RvbV9vcHRzLnN0cjoJT3JpZ2luYWwgc3RyaW5nIHZhbHVl IGZyb20gY29tbWFuZCBsaW5lDQo+ICAgICogQGN1c3RvbV9vcHRzX2NvdW50OglOdW1iZXIgb2Yg ZW50cmllcyBpbiBAY3VzdG9tX29wdHMNCj4gICAgKiBAaWZpNjoJCVRlbXBsYXRlIGludGVyZmFj ZSBmb3IgSVB2NiwgLTE6IG5vbmUsIDA6IElQdjYgZGlzYWJsZWQNCj4gQEAgLTI3MSw2ICsyNzMs OCBAQCBzdHJ1Y3QgY3R4IHsNCj4gICANCj4gICAJc3RydWN0IHsNCj4gICAJCXVpbnQ4X3QgY29k ZTsNCj4gKwkJdWludDhfdCBsZW47DQo+ICsJCXVpbnQ4X3QgdmFsWzI1NV07DQo+ICAgCQljaGFy IHN0clsyNTZdOw0KDQpXaHkgZG8gd2UgbmVlZCB0byBrZWVwIHN0cltdIG9uY2UgdGhlIHZhbHVl IGlzIGVuY29kZWQgaW50byB2YWxbXT8NCg0KPiAgIAl9IGN1c3RvbV9vcHRzW01BWF9DVVNUT01f REhDUF9PUFRTXTsNCj4gICAJaW50IGN1c3RvbV9vcHRzX2NvdW50Ow0KDQpUaGFua3MsDQpMYXVy ZW50DQoNCg==