From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B1694A0C3F for ; Sat, 3 Jul 2021 01:43:29 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 9D41641402; Sat, 3 Jul 2021 01:43:29 +0200 (CEST) Received: from mail-pj1-f98.google.com (mail-pj1-f98.google.com [209.85.216.98]) by mails.dpdk.org (Postfix) with ESMTP id 08F3640696 for ; Sat, 3 Jul 2021 01:43:29 +0200 (CEST) Received: by mail-pj1-f98.google.com with SMTP id cs1-20020a17090af501b0290170856e1a8aso10308778pjb.3 for ; Fri, 02 Jul 2021 16:43:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=mime-version:subject:from:to:cc:message-id:date; bh=aE9NFJoBZnZLO+t91Rqw+V3yPTYi9qJs90/cox7UP6k=; b=cGCrYW3Y/WKS/x+kjoe7J1PDNnWAAriqCW1imrfE5IBb4tUQ5bwsJGS36eblSQB/aS 03nnpWVrBbGT/AEExyVbWln3q49SqkLcLlqdGFfX1Cz3eQKPdRPg/wEhFiQHdbDwGlXz S6sBXvWgYpZSTL0J5EH4gADlFEmwBqwhWsGbE= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:to:cc:message-id:date; bh=aE9NFJoBZnZLO+t91Rqw+V3yPTYi9qJs90/cox7UP6k=; b=I5h+Ydw+7/zc9c5HkoiwMP/96/3j6bWUowCZTAOQFnEk0J9Y/WUAg8tvwwUQKqH5co SzSwJtp7V8SkPZAayUEq/ibsMDRBEyM13tfHK99H+ZoPl24M/S3NbL9P8C9NisFyudSK 2y+34gX/O9w0c9da37QYgdbebmbiGUl+I8/npRXHZ1x950gYnRRDf2XsF3HImZDZICPF Nz3JEw5pI+2zn2+ViiN2aJWUlUa8B+GFx+cMi/a4hz0PyUNITv8X6rlyP28n//w10pTL 5BlHppJKAAtY8aXHtMns2kgsORkuh67983M6P7z5h0OrS/i2KeUlQ50Q4VTxx7LDWDEd +cTA== X-Gm-Message-State: AOAM532l5qfFVMsqMjrh5A5a4LLoLe+8ssbX9BQhZx68SzwAPE3OhreU UFzKO66PgqW1bAJ5YZcM2am6JJhqQhT5959D8+rMN5w8QPdzoA== X-Google-Smtp-Source: ABdhPJzXJg0PXSLRIonLflFJ4MJNOreiI8pJrd/wZI6q+WDf5z3Hxu2OAH/L+amN1ihk7AU05x2ULdtjo4u1 X-Received: by 2002:a17:902:ff0c:b029:11d:3e9e:41ec with SMTP id f12-20020a170902ff0cb029011d3e9e41ecmr1838441plj.1.1625269408250; Fri, 02 Jul 2021 16:43:28 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [132.177.123.84]) by smtp-relay.gmail.com with ESMTPS id s20sm1546526pjn.16.2021.07.02.16.43.28 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 02 Jul 2021 16:43:28 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from noxus.dpdklab.iol.unh.edu (targon.iol.unh.edu [132.177.125.242]) by postal.iol.unh.edu (Postfix) with ESMTP id 735DF6052490; Fri, 2 Jul 2021 19:43:27 -0400 (EDT) Received: from noxus.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by noxus.dpdklab.iol.unh.edu (Postfix) with ESMTP id 6F7661F148; Fri, 2 Jul 2021 19:43:27 -0400 (EDT) Content-Type: multipart/mixed; boundary="===============1205789897346066449==" MIME-Version: 1.0 From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20210702234327.6F7661F148@noxus.dpdklab.iol.unh.edu> Date: Fri, 2 Jul 2021 19:43:27 -0400 (EDT) Subject: [dpdk-test-report] |WARNING| pw95236 [PATCH] [V2, 4/5] examples/pipeline: add support for selector tables X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org Sender: "test-report" --===============1205789897346066449== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzk1MjM2CgpfYXBwbHkgcGF0Y2ggZmFpbHVyZV8KClN1Ym1pdHRlcjogQ3Jpc3Rp YW4gRHVtaXRyZXNjdSA8Y3Jpc3RpYW4uZHVtaXRyZXNjdUBpbnRlbC5jb20+CkRhdGU6IEZyaWRh eSwgSnVseSAwMiAyMDIxIDIyOjQwOjE1IApBcHBsaWVkIG9uOiBDb21taXRJRDo1ZTIyMjZmMTk0 MDI3ZDNiM2UzNWNiNWI0NDRkMTI2OTI4NDMzMDE3CkFwcGx5IHBhdGNoIHNldCA5NTIzNiBmYWls ZWQ6CgpDaGVja2luZyBwYXRjaCBleGFtcGxlcy9waXBlbGluZS9jbGkuYy4uLgplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCQlzbnByaW50ZihvdXQsIG91dF9zaXplLCBNU0dfQVJHX0lOVkFM SUQsICJ0YWJsZV9uYW1lIik7Cn0KCnN0YXRpYyBjb25zdCBjaGFyIGNtZF9waXBlbGluZV9jb21t aXRfaGVscFtdID0KInBpcGVsaW5lIDxwaXBlbGluZV9uYW1lPiBjb21taXRcbiI7CgoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZXhhbXBsZXMvcGlwZWxpbmUvY2xpLmM6MTM2OAplcnJvcjogd2hpbGUg c2VhcmNoaW5nIGZvcjoKCQkJIlx0cGlwZWxpbmUgdGFibGUgZGVsZXRlXG4iCgkJCSJcdHBpcGVs aW5lIHRhYmxlIGRlZmF1bHRcbiIKCQkJIlx0cGlwZWxpbmUgdGFibGUgc2hvd1xuIgoJCQkiXHRw aXBlbGluZSBjb21taXRcbiIKCQkJIlx0cGlwZWxpbmUgYWJvcnRcbiIKCQkJIlx0cGlwZWxpbmUg cmVncmRcbiIKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGV4YW1wbGVzL3BpcGVsaW5lL2NsaS5jOjIx NjgKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuOwoJfQoKCWlmICgoc3RyY21w KHRva2Vuc1swXSwgInBpcGVsaW5lIikgPT0gMCkgJiYKCQkobl90b2tlbnMgPT0gMikgJiYKCQko c3RyY21wKHRva2Vuc1sxXSwgImNvbW1pdCIpID09IDApKSB7CgplcnJvcjogcGF0Y2ggZmFpbGVk OiBleGFtcGxlcy9waXBlbGluZS9jbGkuYzoyMjY2CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9y OgoJCQlyZXR1cm47CgkJfQoKCQlpZiAoKG5fdG9rZW5zID49IDMpICYmCgkJCShzdHJjbXAodG9r ZW5zWzJdLCAiY29tbWl0IikgPT0gMCkpIHsKCQkJY21kX3BpcGVsaW5lX2NvbW1pdCh0b2tlbnMs IG5fdG9rZW5zLCBvdXQsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBleGFtcGxlcy9waXBlbGluZS9j bGkuYzoyNDY4CkFwcGx5aW5nIHBhdGNoIGV4YW1wbGVzL3BpcGVsaW5lL2NsaS5jIHdpdGggNCBy ZWplY3RzLi4uClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuClJlamVjdGVkIGh1 bmsgIzMuClJlamVjdGVkIGh1bmsgIzQuCmRpZmYgYS9leGFtcGxlcy9waXBlbGluZS9jbGkuYyBi L2V4YW1wbGVzL3BpcGVsaW5lL2NsaS5jCShyZWplY3RlZCBodW5rcykKQEAgLTEzNjgsNiArMTM2 OCw0NjcgQEAgY21kX3BpcGVsaW5lX3RhYmxlX3Nob3coY2hhciAqKnRva2VucywKIAkJc25wcmlu dGYob3V0LCBvdXRfc2l6ZSwgTVNHX0FSR19JTlZBTElELCAidGFibGVfbmFtZSIpOwogfQogCitz dGF0aWMgY29uc3QgY2hhciBjbWRfcGlwZWxpbmVfc2VsZWN0b3JfZ3JvdXBfYWRkX2hlbHBbXSA9 CisicGlwZWxpbmUgPHBpcGVsaW5lX25hbWU+IHNlbGVjdG9yIDxzZWxlY3Rvcl9uYW1lPiBncm91 cCBhZGRcbiI7CisKK3N0YXRpYyB2b2lkCitjbWRfcGlwZWxpbmVfc2VsZWN0b3JfZ3JvdXBfYWRk KGNoYXIgKip0b2tlbnMsCisJdWludDMyX3Qgbl90b2tlbnMsCisJY2hhciAqb3V0LAorCXNpemVf dCBvdXRfc2l6ZSwKKwl2b2lkICpvYmopCit7CisJc3RydWN0IHBpcGVsaW5lICpwOworCWNoYXIg KnBpcGVsaW5lX25hbWUsICpzZWxlY3Rvcl9uYW1lOworCXVpbnQzMl90IGdyb3VwX2lkOworCWlu dCBzdGF0dXM7CisKKwlpZiAobl90b2tlbnMgIT0gNikgeworCQlzbnByaW50ZihvdXQsIG91dF9z aXplLCBNU0dfQVJHX01JU01BVENILCB0b2tlbnNbMF0pOworCQlyZXR1cm47CisJfQorCisJcGlw ZWxpbmVfbmFtZSA9IHRva2Vuc1sxXTsKKwlwID0gcGlwZWxpbmVfZmluZChvYmosIHBpcGVsaW5l X25hbWUpOworCWlmICghcCB8fCAhcC0+Y3RsKSB7CisJCXNucHJpbnRmKG91dCwgb3V0X3NpemUs IE1TR19BUkdfSU5WQUxJRCwgInBpcGVsaW5lX25hbWUiKTsKKwkJcmV0dXJuOworCX0KKworCWlm IChzdHJjbXAodG9rZW5zWzJdLCAic2VsZWN0b3IiKSAhPSAwKSB7CisJCXNucHJpbnRmKG91dCwg b3V0X3NpemUsIE1TR19BUkdfTk9UX0ZPVU5ELCAic2VsZWN0b3IiKTsKKwkJcmV0dXJuOworCX0K KworCXNlbGVjdG9yX25hbWUgPSB0b2tlbnNbM107CisKKwlpZiAoc3RyY21wKHRva2Vuc1s0XSwg Imdyb3VwIikgfHwKKwkJc3RyY21wKHRva2Vuc1s1XSwgImFkZCIpKSB7CisJCXNucHJpbnRmKG91 dCwgb3V0X3NpemUsIE1TR19BUkdfTk9UX0ZPVU5ELCAiZ3JvdXAgYWRkIik7CisJCXJldHVybjsK Kwl9CisKKwlzdGF0dXMgPSBydGVfc3d4X2N0bF9waXBlbGluZV9zZWxlY3Rvcl9ncm91cF9hZGQo cC0+Y3RsLAorCQlzZWxlY3Rvcl9uYW1lLAorCQkmZ3JvdXBfaWQpOworCWlmIChzdGF0dXMpCisJ CXNucHJpbnRmKG91dCwgb3V0X3NpemUsIE1TR19DTURfRkFJTCwgdG9rZW5zWzBdKTsKKwllbHNl CisJCXNucHJpbnRmKG91dCwgb3V0X3NpemUsICJHcm91cCBJRDogJXVcbiIsIGdyb3VwX2lkKTsK K30KKworc3RhdGljIGNvbnN0IGNoYXIgY21kX3BpcGVsaW5lX3NlbGVjdG9yX2dyb3VwX2RlbGV0 ZV9oZWxwW10gPQorInBpcGVsaW5lIDxwaXBlbGluZV9uYW1lPiBzZWxlY3RvciA8c2VsZWN0b3Jf bmFtZT4gZ3JvdXAgZGVsZXRlIDxncm91cF9pZD5cbiI7CisKK3N0YXRpYyB2b2lkCitjbWRfcGlw ZWxpbmVfc2VsZWN0b3JfZ3JvdXBfZGVsZXRlKGNoYXIgKip0b2tlbnMsCisJdWludDMyX3Qgbl90 b2tlbnMsCisJY2hhciAqb3V0LAorCXNpemVfdCBvdXRfc2l6ZSwKKwl2b2lkICpvYmopCit7CisJ c3RydWN0IHBpcGVsaW5lICpwOworCWNoYXIgKnBpcGVsaW5lX25hbWUsICpzZWxlY3Rvcl9uYW1l OworCXVpbnQzMl90IGdyb3VwX2lkOworCWludCBzdGF0dXM7CisKKwlpZiAobl90b2tlbnMgIT0g NykgeworCQlzbnByaW50ZihvdXQsIG91dF9zaXplLCBNU0dfQVJHX01JU01BVENILCB0b2tlbnNb MF0pOworCQlyZXR1cm47CisJfQorCisJcGlwZWxpbmVfbmFtZSA9IHRva2Vuc1sxXTsKKwlwID0g cGlwZWxpbmVfZmluZChvYmosIHBpcGVsaW5lX25hbWUpOworCWlmICghcCB8fCAhcC0+Y3RsKSB7 CisJCXNucHJpbnRmKG91dCwgb3V0X3NpemUsIE1TR19BUkdfSU5WQUxJRCwgInBpcGVsaW5lX25h bWUiKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChzdHJjbXAodG9rZW5zWzJdLCAic2VsZWN0b3Ii KSAhPSAwKSB7CisJCXNucHJpbnRmKG91dCwgb3V0X3NpemUsIE1TR19BUkdfTk9UX0ZPVU5ELCAi c2VsZWN0b3IiKTsKKwkJcmV0dXJuOworCX0KKworCXNlbGVjdG9yX25hbWUgPSB0b2tlbnNbM107 CisKKwlpZiAoc3RyY21wKHRva2Vuc1s0XSwgImdyb3VwIikgfHwKKwkJc3RyY21wKHRva2Vuc1s1 XSwgImRlbGV0ZSIpKSB7CisJCXNucHJpbnRmKG91dCwgb3V0X3NpemUsIE1TR19BUkdfTk9UX0ZP VU5ELCAiZ3JvdXAgZGVsZXRlIik7CisJCXJldHVybjsKKwl9CisKKwlpZiAocGFyc2VyX3JlYWRf dWludDMyKCZncm91cF9pZCwgdG9rZW5zWzZdKSAhPSAwKSB7CisJCXNucHJpbnRmKG91dCwgb3V0 X3NpemUsIE1TR19BUkdfSU5WQUxJRCwgImdyb3VwX2lkIik7CisJCXJldHVybjsKKwl9CisKKwlz dGF0dXMgPSBydGVfc3d4X2N0bF9waXBlbGluZV9zZWxlY3Rvcl9ncm91cF9kZWxldGUocC0+Y3Rs LAorCQlzZWxlY3Rvcl9uYW1lLAorCQlncm91cF9pZCk7CisJaWYgKHN0YXR1cykKKwkJc25wcmlu dGYob3V0LCBvdXRfc2l6ZSwgTVNHX0NNRF9GQUlMLCB0b2tlbnNbMF0pOworfQorCisjZGVmaW5l IEdST1VQX01FTUJFUl9JTkZPX1RPS0VOU19NQVggNgorCitzdGF0aWMgaW50Cit0b2tlbl9pc19j b21tZW50KGNvbnN0IGNoYXIgKnRva2VuKQoreworCWlmICgodG9rZW5bMF0gPT0gJyMnKSB8fAor CSAgICAodG9rZW5bMF0gPT0gJzsnKSB8fAorCSAgICAoKHRva2VuWzBdID09ICcvJykgJiYgKHRv a2VuWzFdID09ICcvJykpKQorCQlyZXR1cm4gMTsgLyogVFJVRS4gKi8KKworCXJldHVybiAwOyAv KiBGQUxTRS4gKi8KK30KKworc3RhdGljIGludAorcGlwZWxpbmVfc2VsZWN0b3JfZ3JvdXBfbWVt YmVyX3JlYWQoY29uc3QgY2hhciAqc3RyaW5nLAorCQkJCSAgICAgIHVpbnQzMl90ICpncm91cF9p ZCwKKwkJCQkgICAgICB1aW50MzJfdCAqbWVtYmVyX2lkLAorCQkJCSAgICAgIHVpbnQzMl90ICp3 ZWlnaHQsCisJCQkJICAgICAgaW50ICppc19ibGFua19vcl9jb21tZW50KQoreworCWNoYXIgKnRv a2VuX2FycmF5W0dST1VQX01FTUJFUl9JTkZPX1RPS0VOU19NQVhdLCAqKnRva2VuczsKKwljaGFy ICpzMCA9IE5VTEwsICpzOworCXVpbnQzMl90IG5fdG9rZW5zID0gMCwgZ3JvdXBfaWRfdmFsLCBt ZW1iZXJfaWRfdmFsLCB3ZWlnaHRfdmFsOworCWludCBibGFua19vcl9jb21tZW50ID0gMDsKKwor CS8qIENoZWNrIGlucHV0IGFyZ3VtZW50cy4gKi8KKwlpZiAoIXN0cmluZyB8fCAhc3RyaW5nWzBd KQorCQlnb3RvIGVycm9yOworCisJLyogTWVtb3J5IGFsbG9jYXRpb24uICovCisJczAgPSBzdHJk dXAoc3RyaW5nKTsKKwlpZiAoIXMwKQorCQlnb3RvIGVycm9yOworCisJLyogUGFyc2UgdGhlIHN0 cmluZyBpbnRvIHRva2Vucy4gKi8KKwlmb3IgKHMgPSBzMDsgOyApIHsKKwkJY2hhciAqdG9rZW47 CisKKwkJdG9rZW4gPSBzdHJ0b2tfcihzLCAiIFxmXG5cclx0XHYiLCAmcyk7CisJCWlmICghdG9r ZW4gfHwgdG9rZW5faXNfY29tbWVudCh0b2tlbikpCisJCQlicmVhazsKKworCQlpZiAobl90b2tl bnMgPiBHUk9VUF9NRU1CRVJfSU5GT19UT0tFTlNfTUFYKQorCQkJZ290byBlcnJvcjsKKworCQl0 b2tlbl9hcnJheVtuX3Rva2Vuc10gPSB0b2tlbjsKKwkJbl90b2tlbnMrKzsKKwl9CisKKwlpZiAo IW5fdG9rZW5zKSB7CisJCWJsYW5rX29yX2NvbW1lbnQgPSAxOworCQlnb3RvIGVycm9yOworCX0K KworCXRva2VucyA9IHRva2VuX2FycmF5OworCisJaWYgKG5fdG9rZW5zIDwgNCB8fAorCQlzdHJj bXAodG9rZW5zWzBdLCAiZ3JvdXAiKSB8fAorCQlzdHJjbXAodG9rZW5zWzJdLCAibWVtYmVyIikp CisJCWdvdG8gZXJyb3I7CisKKwkvKgorCSAqIEdyb3VwIElELgorCSAqLworCWlmIChwYXJzZXJf cmVhZF91aW50MzIoJmdyb3VwX2lkX3ZhbCwgdG9rZW5zWzFdKSAhPSAwKQorCQlnb3RvIGVycm9y OworCSpncm91cF9pZCA9IGdyb3VwX2lkX3ZhbDsKKworCS8qCisJICogTWVtYmVyIElELgorCSAq LworCWlmIChwYXJzZXJfcmVhZF91aW50MzIoJm1lbWJlcl9pZF92YWwsIHRva2Vuc1szXSkgIT0g MCkKKwkJZ290byBlcnJvcjsKKwkqbWVtYmVyX2lkID0gbWVtYmVyX2lkX3ZhbDsKKworCXRva2Vu cyArPSA0OworCW5fdG9rZW5zIC09IDQ7CisKKwkvKgorCSAqIFdlaWdodC4KKwkgKi8KKwlpZiAo bl90b2tlbnMgJiYgIXN0cmNtcCh0b2tlbnNbMF0sICJ3ZWlnaHQiKSkgeworCQlpZiAobl90b2tl bnMgPCAyKQorCQkJZ290byBlcnJvcjsKKworCQlpZiAocGFyc2VyX3JlYWRfdWludDMyKCZ3ZWln aHRfdmFsLCB0b2tlbnNbMV0pICE9IDApCisJCQlnb3RvIGVycm9yOworCQkqd2VpZ2h0ID0gd2Vp Z2h0X3ZhbDsKKworCQl0b2tlbnMgKz0gMjsKKwkJbl90b2tlbnMgLT0gMjsKKwl9CisKKwlpZiAo bl90b2tlbnMpCisJCWdvdG8gZXJyb3I7CisKKwlmcmVlKHMwKTsKKwlyZXR1cm4gMDsKKworZXJy b3I6CisJZnJlZShzMCk7CisJaWYgKGlzX2JsYW5rX29yX2NvbW1lbnQpCisJCSppc19ibGFua19v cl9jb21tZW50ID0gYmxhbmtfb3JfY29tbWVudDsKKwlyZXR1cm4gLUVJTlZBTDsKK30KKworc3Rh dGljIGludAorcGlwZWxpbmVfc2VsZWN0b3JfZ3JvdXBfbWVtYmVyc19hZGQoc3RydWN0IHJ0ZV9z d3hfY3RsX3BpcGVsaW5lICpwLAorCQkJICAgY29uc3QgY2hhciAqc2VsZWN0b3JfbmFtZSwKKwkJ CSAgIEZJTEUgKmZpbGUsCisJCQkgICB1aW50MzJfdCAqZmlsZV9saW5lX251bWJlcikKK3sKKwlj aGFyICpsaW5lID0gTlVMTDsKKwl1aW50MzJfdCBsaW5lX2lkID0gMDsKKwlpbnQgc3RhdHVzID0g MDsKKworCS8qIEJ1ZmZlciBhbGxvY2F0aW9uLiAqLworCWxpbmUgPSBtYWxsb2MoTUFYX0xJTkVf U0laRSk7CisJaWYgKCFsaW5lKQorCQlyZXR1cm4gLUVOT01FTTsKKworCS8qIEZpbGUgcmVhZC4g Ki8KKwlmb3IgKGxpbmVfaWQgPSAxOyA7IGxpbmVfaWQrKykgeworCQl1aW50MzJfdCBncm91cF9p ZCwgbWVtYmVyX2lkLCB3ZWlnaHQ7CisJCWludCBpc19ibGFua19vcl9jb21tZW50OworCisJCWlm IChmZ2V0cyhsaW5lLCBNQVhfTElORV9TSVpFLCBmaWxlKSA9PSBOVUxMKQorCQkJYnJlYWs7CisK KwkJc3RhdHVzID0gcGlwZWxpbmVfc2VsZWN0b3JfZ3JvdXBfbWVtYmVyX3JlYWQobGluZSwKKwkJ CQkJCQkgICAgICAmZ3JvdXBfaWQsCisJCQkJCQkJICAgICAgJm1lbWJlcl9pZCwKKwkJCQkJCQkg ICAgICAmd2VpZ2h0LAorCQkJCQkJCSAgICAgICZpc19ibGFua19vcl9jb21tZW50KTsKKwkJaWYg KHN0YXR1cykgeworCQkJaWYgKGlzX2JsYW5rX29yX2NvbW1lbnQpCisJCQkJY29udGludWU7CisK KwkJCWdvdG8gZXJyb3I7CisJCX0KKworCQlzdGF0dXMgPSBydGVfc3d4X2N0bF9waXBlbGluZV9z ZWxlY3Rvcl9ncm91cF9tZW1iZXJfYWRkKHAsCisJCQlzZWxlY3Rvcl9uYW1lLAorCQkJZ3JvdXBf aWQsCisJCQltZW1iZXJfaWQsCisJCQl3ZWlnaHQpOworCQlpZiAoc3RhdHVzKQorCQkJZ290byBl cnJvcjsKKwl9CisKK2Vycm9yOgorCWZyZWUobGluZSk7CisJKmZpbGVfbGluZV9udW1iZXIgPSBs aW5lX2lkOworCXJldHVybiBzdGF0dXM7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyIGNtZF9waXBl bGluZV9zZWxlY3Rvcl9ncm91cF9tZW1iZXJfYWRkX2hlbHBbXSA9CisicGlwZWxpbmUgPHBpcGVs aW5lX25hbWU+IHNlbGVjdG9yIDxzZWxlY3Rvcl9uYW1lPiBncm91cCBtZW1iZXIgYWRkIDxmaWxl X25hbWU+IjsKKworc3RhdGljIHZvaWQKK2NtZF9waXBlbGluZV9zZWxlY3Rvcl9ncm91cF9tZW1i ZXJfYWRkKGNoYXIgKip0b2tlbnMsCisJdWludDMyX3Qgbl90b2tlbnMsCisJY2hhciAqb3V0LAor CXNpemVfdCBvdXRfc2l6ZSwKKwl2b2lkICpvYmopCit7CisJc3RydWN0IHBpcGVsaW5lICpwOwor CWNoYXIgKnBpcGVsaW5lX25hbWUsICpzZWxlY3Rvcl9uYW1lLCAqZmlsZV9uYW1lOworCUZJTEUg KmZpbGUgPSBOVUxMOworCXVpbnQzMl90IGZpbGVfbGluZV9udW1iZXIgPSAwOworCWludCBzdGF0 dXM7CisKKwlpZiAobl90b2tlbnMgIT0gOCkgeworCQlzbnByaW50ZihvdXQsIG91dF9zaXplLCBN U0dfQVJHX01JU01BVENILCB0b2tlbnNbMF0pOworCQlyZXR1cm47CisJfQorCisJcGlwZWxpbmVf bmFtZSA9IHRva2Vuc1sxXTsKKwlwID0gcGlwZWxpbmVfZmluZChvYmosIHBpcGVsaW5lX25hbWUp OworCWlmICghcCB8fCAhcC0+Y3RsKSB7CisJCXNucHJpbnRmKG91dCwgb3V0X3NpemUsIE1TR19B UkdfSU5WQUxJRCwgInBpcGVsaW5lX25hbWUiKTsKKwkJcmV0dXJuOworCX0KKworCWlmIChzdHJj bXAodG9rZW5zWzJdLCAic2VsZWN0b3IiKSAhPSAwKSB7CisJCXNucHJpbnRmKG91dCwgb3V0X3Np emUsIE1TR19BUkdfTk9UX0ZPVU5ELCAic2VsZWN0b3IiKTsKKwkJcmV0dXJuOworCX0KKworCXNl bGVjdG9yX25hbWUgPSB0b2tlbnNbM107CisKKwlpZiAoc3RyY21wKHRva2Vuc1s0XSwgImdyb3Vw IikgfHwKKwkJc3RyY21wKHRva2Vuc1s1XSwgIm1lbWJlciIpIHx8CisJCXN0cmNtcCh0b2tlbnNb Nl0sICJhZGQiKSkgeworCQlzbnByaW50ZihvdXQsIG91dF9zaXplLCBNU0dfQVJHX05PVF9GT1VO RCwgImdyb3VwIG1lbWJlciBhZGQiKTsKKwkJcmV0dXJuOworCX0KKworCWZpbGVfbmFtZSA9IHRv a2Vuc1s3XTsKKwlmaWxlID0gZm9wZW4oZmlsZV9uYW1lLCAiciIpOworCWlmICghZmlsZSkgewor CQlzbnByaW50ZihvdXQsIG91dF9zaXplLCAiQ2Fubm90IG9wZW4gZmlsZSAlcy5cbiIsIGZpbGVf bmFtZSk7CisJCXJldHVybjsKKwl9CisKKwlzdGF0dXMgPSBwaXBlbGluZV9zZWxlY3Rvcl9ncm91 cF9tZW1iZXJzX2FkZChwLT5jdGwsCisJCQkJCSAgICBzZWxlY3Rvcl9uYW1lLAorCQkJCQkgICAg ZmlsZSwKKwkJCQkJICAgICZmaWxlX2xpbmVfbnVtYmVyKTsKKwlpZiAoc3RhdHVzKQorCQlzbnBy aW50ZihvdXQsIG91dF9zaXplLCAiSW52YWxpZCBlbnRyeSBpbiBmaWxlICVzIGF0IGxpbmUgJXVc biIsCisJCQkgZmlsZV9uYW1lLAorCQkJIGZpbGVfbGluZV9udW1iZXIpOworCisJZmNsb3NlKGZp bGUpOworfQorCitzdGF0aWMgaW50CitwaXBlbGluZV9zZWxlY3Rvcl9ncm91cF9tZW1iZXJzX2Rl bGV0ZShzdHJ1Y3QgcnRlX3N3eF9jdGxfcGlwZWxpbmUgKnAsCisJCQkgICBjb25zdCBjaGFyICpz ZWxlY3Rvcl9uYW1lLAorCQkJICAgRklMRSAqZmlsZSwKKwkJCSAgIHVpbnQzMl90ICpmaWxlX2xp bmVfbnVtYmVyKQoreworCWNoYXIgKmxpbmUgPSBOVUxMOworCXVpbnQzMl90IGxpbmVfaWQgPSAw OworCWludCBzdGF0dXMgPSAwOworCisJLyogQnVmZmVyIGFsbG9jYXRpb24uICovCisJbGluZSA9 IG1hbGxvYyhNQVhfTElORV9TSVpFKTsKKwlpZiAoIWxpbmUpCisJCXJldHVybiAtRU5PTUVNOwor CisJLyogRmlsZSByZWFkLiAqLworCWZvciAobGluZV9pZCA9IDE7IDsgbGluZV9pZCsrKSB7CisJ CXVpbnQzMl90IGdyb3VwX2lkLCBtZW1iZXJfaWQsIHdlaWdodDsKKwkJaW50IGlzX2JsYW5rX29y X2NvbW1lbnQ7CisKKwkJaWYgKGZnZXRzKGxpbmUsIE1BWF9MSU5FX1NJWkUsIGZpbGUpID09IE5V TEwpCisJCQlicmVhazsKKworCQlzdGF0dXMgPSBwaXBlbGluZV9zZWxlY3Rvcl9ncm91cF9tZW1i ZXJfcmVhZChsaW5lLAorCQkJCQkJCSAgICAgICZncm91cF9pZCwKKwkJCQkJCQkgICAgICAmbWVt YmVyX2lkLAorCQkJCQkJCSAgICAgICZ3ZWlnaHQsCisJCQkJCQkJICAgICAgJmlzX2JsYW5rX29y X2NvbW1lbnQpOworCQlpZiAoc3RhdHVzKSB7CisJCQlpZiAoaXNfYmxhbmtfb3JfY29tbWVudCkK KwkJCQljb250aW51ZTsKKworCQkJZ290byBlcnJvcjsKKwkJfQorCisJCXN0YXR1cyA9IHJ0ZV9z d3hfY3RsX3BpcGVsaW5lX3NlbGVjdG9yX2dyb3VwX21lbWJlcl9kZWxldGUocCwKKwkJCXNlbGVj dG9yX25hbWUsCisJCQlncm91cF9pZCwKKwkJCW1lbWJlcl9pZCk7CisJCWlmIChzdGF0dXMpCisJ CQlnb3RvIGVycm9yOworCX0KKworZXJyb3I6CisJZnJlZShsaW5lKTsKKwkqZmlsZV9saW5lX251 bWJlciA9IGxpbmVfaWQ7CisJcmV0dXJuIHN0YXR1czsKK30KKworc3RhdGljIGNvbnN0IGNoYXIg Y21kX3BpcGVsaW5lX3NlbGVjdG9yX2dyb3VwX21lbWJlcl9kZWxldGVfaGVscFtdID0KKyJwaXBl bGluZSA8cGlwZWxpbmVfbmFtZT4gc2VsZWN0b3IgPHNlbGVjdG9yX25hbWU+IGdyb3VwIG1lbWJl ciBkZWxldGUgPGZpbGVfbmFtZT4iOworCitzdGF0aWMgdm9pZAorY21kX3BpcGVsaW5lX3NlbGVj dG9yX2dyb3VwX21lbWJlcl9kZWxldGUoY2hhciAqKnRva2VucywKKwl1aW50MzJfdCBuX3Rva2Vu cywKKwljaGFyICpvdXQsCisJc2l6ZV90IG91dF9zaXplLAorCXZvaWQgKm9iaikKK3sKKwlzdHJ1 Y3QgcGlwZWxpbmUgKnA7CisJY2hhciAqcGlwZWxpbmVfbmFtZSwgKnNlbGVjdG9yX25hbWUsICpm aWxlX25hbWU7CisJRklMRSAqZmlsZSA9IE5VTEw7CisJdWludDMyX3QgZmlsZV9saW5lX251bWJl ciA9IDA7CisJaW50IHN0YXR1czsKKworCWlmIChuX3Rva2VucyAhPSA4KSB7CisJCXNucHJpbnRm KG91dCwgb3V0X3NpemUsIE1TR19BUkdfTUlTTUFUQ0gsIHRva2Vuc1swXSk7CisJCXJldHVybjsK Kwl9CisKKwlwaXBlbGluZV9uYW1lID0gdG9rZW5zWzFdOworCXAgPSBwaXBlbGluZV9maW5kKG9i aiwgcGlwZWxpbmVfbmFtZSk7CisJaWYgKCFwIHx8ICFwLT5jdGwpIHsKKwkJc25wcmludGYob3V0 LCBvdXRfc2l6ZSwgTVNHX0FSR19JTlZBTElELCAicGlwZWxpbmVfbmFtZSIpOworCQlyZXR1cm47 CisJfQorCisJaWYgKHN0cmNtcCh0b2tlbnNbMl0sICJzZWxlY3RvciIpICE9IDApIHsKKwkJc25w cmludGYob3V0LCBvdXRfc2l6ZSwgTVNHX0FSR19OT1RfRk9VTkQsICJzZWxlY3RvciIpOworCQly ZXR1cm47CisJfQorCisJc2VsZWN0b3JfbmFtZSA9IHRva2Vuc1szXTsKKworCWlmIChzdHJjbXAo dG9rZW5zWzRdLCAiZ3JvdXAiKSB8fAorCQlzdHJjbXAodG9rZW5zWzVdLCAibWVtYmVyIikgfHwK KwkJc3RyY21wKHRva2Vuc1s2XSwgImRlbGV0ZSIpKSB7CisJCXNucHJpbnRmKG91dCwgb3V0X3Np emUsIE1TR19BUkdfTk9UX0ZPVU5ELCAiZ3JvdXAgbWVtYmVyIGRlbGV0ZSIpOworCQlyZXR1cm47 CisJfQorCisJZmlsZV9uYW1lID0gdG9rZW5zWzddOworCWZpbGUgPSBmb3BlbihmaWxlX25hbWUs ICJyIik7CisJaWYgKCFmaWxlKSB7CisJCXNucHJpbnRmKG91dCwgb3V0X3NpemUsICJDYW5ub3Qg b3BlbiBmaWxlICVzLlxuIiwgZmlsZV9uYW1lKTsKKwkJcmV0dXJuOworCX0KKworCXN0YXR1cyA9 IHBpcGVsaW5lX3NlbGVjdG9yX2dyb3VwX21lbWJlcnNfZGVsZXRlKHAtPmN0bCwKKwkJCQkJICAg IHNlbGVjdG9yX25hbWUsCisJCQkJCSAgICBmaWxlLAorCQkJCQkgICAgJmZpbGVfbGluZV9udW1i ZXIpOworCWlmIChzdGF0dXMpCisJCXNucHJpbnRmKG91dCwgb3V0X3NpemUsICJJbnZhbGlkIGVu dHJ5IGluIGZpbGUgJXMgYXQgbGluZSAldVxuIiwKKwkJCSBmaWxlX25hbWUsCisJCQkgZmlsZV9s aW5lX251bWJlcik7CisKKwlmY2xvc2UoZmlsZSk7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyIGNt ZF9waXBlbGluZV9zZWxlY3Rvcl9zaG93X2hlbHBbXSA9CisicGlwZWxpbmUgPHBpcGVsaW5lX25h bWU+IHNlbGVjdG9yIDxzZWxlY3Rvcl9uYW1lPiBzaG93XG4iOworCitzdGF0aWMgdm9pZAorY21k X3BpcGVsaW5lX3NlbGVjdG9yX3Nob3coY2hhciAqKnRva2VucywKKwl1aW50MzJfdCBuX3Rva2Vu cywKKwljaGFyICpvdXQsCisJc2l6ZV90IG91dF9zaXplLAorCXZvaWQgKm9iaikKK3sKKwlzdHJ1 Y3QgcGlwZWxpbmUgKnA7CisJY2hhciAqcGlwZWxpbmVfbmFtZSwgKnNlbGVjdG9yX25hbWU7CisJ aW50IHN0YXR1czsKKworCWlmIChuX3Rva2VucyAhPSA1KSB7CisJCXNucHJpbnRmKG91dCwgb3V0 X3NpemUsIE1TR19BUkdfTUlTTUFUQ0gsIHRva2Vuc1swXSk7CisJCXJldHVybjsKKwl9CisKKwlw aXBlbGluZV9uYW1lID0gdG9rZW5zWzFdOworCXAgPSBwaXBlbGluZV9maW5kKG9iaiwgcGlwZWxp bmVfbmFtZSk7CisJaWYgKCFwIHx8ICFwLT5jdGwpIHsKKwkJc25wcmludGYob3V0LCBvdXRfc2l6 ZSwgTVNHX0FSR19JTlZBTElELCAicGlwZWxpbmVfbmFtZSIpOworCQlyZXR1cm47CisJfQorCisJ c2VsZWN0b3JfbmFtZSA9IHRva2Vuc1szXTsKKwlzdGF0dXMgPSBydGVfc3d4X2N0bF9waXBlbGlu ZV9zZWxlY3Rvcl9mcHJpbnRmKHN0ZG91dCwKKwkJcC0+Y3RsLCBzZWxlY3Rvcl9uYW1lKTsKKwlp ZiAoc3RhdHVzKQorCQlzbnByaW50ZihvdXQsIG91dF9zaXplLCBNU0dfQVJHX0lOVkFMSUQsICJz ZWxlY3Rvcl9uYW1lIik7Cit9CisKIHN0YXRpYyBjb25zdCBjaGFyIGNtZF9waXBlbGluZV9jb21t aXRfaGVscFtdID0KICJwaXBlbGluZSA8cGlwZWxpbmVfbmFtZT4gY29tbWl0XG4iOwogCkBAIC0y MTY4LDYgKzI2MjksMTEgQEAgY21kX2hlbHAoY2hhciAqKnRva2VucywKIAkJCSJcdHBpcGVsaW5l IHRhYmxlIGRlbGV0ZVxuIgogCQkJIlx0cGlwZWxpbmUgdGFibGUgZGVmYXVsdFxuIgogCQkJIlx0 cGlwZWxpbmUgdGFibGUgc2hvd1xuIgorCQkJIlx0cGlwZWxpbmUgc2VsZWN0b3IgZ3JvdXAgYWRk XG4iCisJCQkiXHRwaXBlbGluZSBzZWxlY3RvciBncm91cCBkZWxldGVcbiIKKwkJCSJcdHBpcGVs aW5lIHNlbGVjdG9yIGdyb3VwIG1lbWJlciBhZGRcbiIKKwkJCSJcdHBpcGVsaW5lIHNlbGVjdG9y IGdyb3VwIG1lbWJlciBkZWxldGVcbiIKKwkJCSJcdHBpcGVsaW5lIHNlbGVjdG9yIHNob3dcbiIK IAkJCSJcdHBpcGVsaW5lIGNvbW1pdFxuIgogCQkJIlx0cGlwZWxpbmUgYWJvcnRcbiIKIAkJCSJc dHBpcGVsaW5lIHJlZ3JkXG4iCkBAIC0yMjY2LDYgKzI3MzIsNTcgQEAgY21kX2hlbHAoY2hhciAq KnRva2VucywKIAkJcmV0dXJuOwogCX0KIAorCWlmICgoc3RyY21wKHRva2Vuc1swXSwgInBpcGVs aW5lIikgPT0gMCkgJiYKKwkJKG5fdG9rZW5zID09IDQpICYmCisJCShzdHJjbXAodG9rZW5zWzFd LCAic2VsZWN0b3IiKSA9PSAwKSAmJgorCQkoc3RyY21wKHRva2Vuc1syXSwgImdyb3VwIikgPT0g MCkgJiYKKwkJKHN0cmNtcCh0b2tlbnNbM10sICJhZGQiKSA9PSAwKSkgeworCQlzbnByaW50Zihv dXQsIG91dF9zaXplLCAiXG4lc1xuIiwKKwkJCWNtZF9waXBlbGluZV9zZWxlY3Rvcl9ncm91cF9h ZGRfaGVscCk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoKHN0cmNtcCh0b2tlbnNbMF0sICJwaXBl bGluZSIpID09IDApICYmCisJCShuX3Rva2VucyA9PSA0KSAmJgorCQkoc3RyY21wKHRva2Vuc1sx XSwgInNlbGVjdG9yIikgPT0gMCkgJiYKKwkJKHN0cmNtcCh0b2tlbnNbMl0sICJncm91cCIpID09 IDApICYmCisJCShzdHJjbXAodG9rZW5zWzNdLCAiZGVsZXRlIikgPT0gMCkpIHsKKwkJc25wcmlu dGYob3V0LCBvdXRfc2l6ZSwgIlxuJXNcbiIsCisJCQljbWRfcGlwZWxpbmVfc2VsZWN0b3JfZ3Jv dXBfZGVsZXRlX2hlbHApOworCQlyZXR1cm47CisJfQorCisJaWYgKChzdHJjbXAodG9rZW5zWzBd LCAicGlwZWxpbmUiKSA9PSAwKSAmJgorCQkobl90b2tlbnMgPT0gNSkgJiYKKwkJKHN0cmNtcCh0 b2tlbnNbMV0sICJzZWxlY3RvciIpID09IDApICYmCisJCShzdHJjbXAodG9rZW5zWzJdLCAiZ3Jv dXAiKSA9PSAwKSAmJgorCQkoc3RyY21wKHRva2Vuc1szXSwgIm1lbWJlciIpID09IDApICYmCisJ CShzdHJjbXAodG9rZW5zWzRdLCAiYWRkIikgPT0gMCkpIHsKKwkJc25wcmludGYob3V0LCBvdXRf c2l6ZSwgIlxuJXNcbiIsCisJCQljbWRfcGlwZWxpbmVfc2VsZWN0b3JfZ3JvdXBfbWVtYmVyX2Fk ZF9oZWxwKTsKKwkJcmV0dXJuOworCX0KKworCWlmICgoc3RyY21wKHRva2Vuc1swXSwgInBpcGVs aW5lIikgPT0gMCkgJiYKKwkJKG5fdG9rZW5zID09IDUpICYmCisJCShzdHJjbXAodG9rZW5zWzFd LCAic2VsZWN0b3IiKSA9PSAwKSAmJgorCQkoc3RyY21wKHRva2Vuc1syXSwgImdyb3VwIikgPT0g MCkgJiYKKwkJKHN0cmNtcCh0b2tlbnNbM10sICJtZW1iZXIiKSA9PSAwKSAmJgorCQkoc3RyY21w KHRva2Vuc1s0XSwgImRlbGV0ZSIpID09IDApKSB7CisJCXNucHJpbnRmKG91dCwgb3V0X3NpemUs ICJcbiVzXG4iLAorCQkJY21kX3BpcGVsaW5lX3NlbGVjdG9yX2dyb3VwX21lbWJlcl9kZWxldGVf aGVscCk7CisJCXJldHVybjsKKwl9CisKKwlpZiAoKHN0cmNtcCh0b2tlbnNbMF0sICJwaXBlbGlu ZSIpID09IDApICYmCisJCShuX3Rva2VucyA9PSAzKSAmJgorCQkoc3RyY21wKHRva2Vuc1sxXSwg InNlbGVjdG9yIikgPT0gMCkgJiYKKwkJKHN0cmNtcCh0b2tlbnNbMl0sICJzaG93IikgPT0gMCkp IHsKKwkJc25wcmludGYob3V0LCBvdXRfc2l6ZSwgIlxuJXNcbiIsCisJCQljbWRfcGlwZWxpbmVf c2VsZWN0b3Jfc2hvd19oZWxwKTsKKwkJcmV0dXJuOworCX0KKwogCWlmICgoc3RyY21wKHRva2Vu c1swXSwgInBpcGVsaW5lIikgPT0gMCkgJiYKIAkJKG5fdG9rZW5zID09IDIpICYmCiAJCShzdHJj bXAodG9rZW5zWzFdLCAiY29tbWl0IikgPT0gMCkpIHsKQEAgLTI0NjgsNiArMjk4NSw1MiBAQCBj bGlfcHJvY2VzcyhjaGFyICppbiwgY2hhciAqb3V0LCBzaXplX3Qgb3V0X3NpemUsIHZvaWQgKm9i aikKIAkJCXJldHVybjsKIAkJfQogCisJCWlmICgobl90b2tlbnMgPj0gNikgJiYKKwkJCShzdHJj bXAodG9rZW5zWzJdLCAic2VsZWN0b3IiKSA9PSAwKSAmJgorCQkJKHN0cmNtcCh0b2tlbnNbNF0s ICJncm91cCIpID09IDApICYmCisJCQkoc3RyY21wKHRva2Vuc1s1XSwgImFkZCIpID09IDApKSB7 CisJCQljbWRfcGlwZWxpbmVfc2VsZWN0b3JfZ3JvdXBfYWRkKHRva2Vucywgbl90b2tlbnMsIG91 dCwKKwkJCQlvdXRfc2l6ZSwgb2JqKTsKKwkJCXJldHVybjsKKwkJfQorCisJCWlmICgobl90b2tl bnMgPj0gNikgJiYKKwkJCShzdHJjbXAodG9rZW5zWzJdLCAic2VsZWN0b3IiKSA9PSAwKSAmJgor CQkJKHN0cmNtcCh0b2tlbnNbNF0sICJncm91cCIpID09IDApICYmCisJCQkoc3RyY21wKHRva2Vu c1s1XSwgImRlbGV0ZSIpID09IDApKSB7CisJCQljbWRfcGlwZWxpbmVfc2VsZWN0b3JfZ3JvdXBf ZGVsZXRlKHRva2Vucywgbl90b2tlbnMsIG91dCwKKwkJCQlvdXRfc2l6ZSwgb2JqKTsKKwkJCXJl dHVybjsKKwkJfQorCisJCWlmICgobl90b2tlbnMgPj0gNykgJiYKKwkJCShzdHJjbXAodG9rZW5z WzJdLCAic2VsZWN0b3IiKSA9PSAwKSAmJgorCQkJKHN0cmNtcCh0b2tlbnNbNF0sICJncm91cCIp ID09IDApICYmCisJCQkoc3RyY21wKHRva2Vuc1s1XSwgIm1lbWJlciIpID09IDApICYmCisJCQko c3RyY21wKHRva2Vuc1s2XSwgImFkZCIpID09IDApKSB7CisJCQljbWRfcGlwZWxpbmVfc2VsZWN0 b3JfZ3JvdXBfbWVtYmVyX2FkZCh0b2tlbnMsIG5fdG9rZW5zLCBvdXQsCisJCQkJb3V0X3NpemUs IG9iaik7CisJCQlyZXR1cm47CisJCX0KKworCQlpZiAoKG5fdG9rZW5zID49IDcpICYmCisJCQko c3RyY21wKHRva2Vuc1syXSwgInNlbGVjdG9yIikgPT0gMCkgJiYKKwkJCShzdHJjbXAodG9rZW5z WzRdLCAiZ3JvdXAiKSA9PSAwKSAmJgorCQkJKHN0cmNtcCh0b2tlbnNbNV0sICJtZW1iZXIiKSA9 PSAwKSAmJgorCQkJKHN0cmNtcCh0b2tlbnNbNl0sICJkZWxldGUiKSA9PSAwKSkgeworCQkJY21k X3BpcGVsaW5lX3NlbGVjdG9yX2dyb3VwX21lbWJlcl9kZWxldGUodG9rZW5zLCBuX3Rva2Vucywg b3V0LAorCQkJCW91dF9zaXplLCBvYmopOworCQkJcmV0dXJuOworCQl9CisKKwkJaWYgKChuX3Rv a2VucyA+PSA1KSAmJgorCQkJKHN0cmNtcCh0b2tlbnNbMl0sICJzZWxlY3RvciIpID09IDApICYm CisJCQkoc3RyY21wKHRva2Vuc1s0XSwgInNob3ciKSA9PSAwKSkgeworCQkJY21kX3BpcGVsaW5l X3NlbGVjdG9yX3Nob3codG9rZW5zLCBuX3Rva2Vucywgb3V0LAorCQkJCW91dF9zaXplLCBvYmop OworCQkJcmV0dXJuOworCQl9CisKIAkJaWYgKChuX3Rva2VucyA+PSAzKSAmJgogCQkJKHN0cmNt cCh0b2tlbnNbMl0sICJjb21taXQiKSA9PSAwKSkgewogCQkJY21kX3BpcGVsaW5lX2NvbW1pdCh0 b2tlbnMsIG5fdG9rZW5zLCBvdXQsCgpodHRwczovL2xhYi5kcGRrLm9yZy9yZXN1bHRzL2Rhc2hi b2FyZC9wYXRjaHNldHMvMTc2MjUvCgpVTkgtSU9MIERQREsgQ29tbXVuaXR5IExhYgo= --===============1205789897346066449==--