From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id D4BF13856274 for ; Mon, 16 May 2022 17:49:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org D4BF13856274 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1652723372; 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: in-reply-to:in-reply-to:references:references; bh=tQwwN5IXCnojekTFW9tZKFG8woacjT+hu5pHRDZ5Gpk=; b=D378PS6YCncDhDG9ndY55E/Mfitpgo0w3VgXlAYFQe/cNsaBye0zUN/TvdnW+RdL4/mUBP TuSozw58HBKP9sgVrF3PF5RZ8F/3zGq5CDS27+Qy3DltXAEpRONh+PdG00nYUXhj7mdAiD AIYYInY4Y1mL4vxmIqc2G5+3dHXzdMA= Received: from mail-yw1-f198.google.com (mail-yw1-f198.google.com [209.85.128.198]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-417-qw5qCWd3O1CDMurHVhWWVg-1; Mon, 16 May 2022 13:49:30 -0400 X-MC-Unique: qw5qCWd3O1CDMurHVhWWVg-1 Received: by mail-yw1-f198.google.com with SMTP id 00721157ae682-2fecfc7a95aso50649997b3.22 for ; Mon, 16 May 2022 10:49:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=qI63dX5f/TjUtbCzG9jfc847f23jgpnqri+VMzNL824=; b=btm0iQ1eHWDUPX53Bldrb6/hsL6aaQIhuevooppDQW8fUBwScrd0ekT+uqQFubqilL jiJY74wDx2g6qAzchDI4Joi9Ih+Wx/ITSAm4vdqzsqzInPogbi9rVFc+EXYBW+WzqYZK strQDnE0HqF+Jfv1THl88tmUiCzq1H/r8fGHO3X664Sl53DQcnIwnKyVPXohI12KRoN9 TvBZR/bHZBmT5mx724Rdr+Tp2SZnXHPINEOrnumtDv2fUnpXZWAlJ/MubeKKC67r5bmA h3Ovg9yuSw3n5I2yoKgU6WJ0u2kUPz14kLLwQWu2yJGhOKeEDWOxEeGFl/fLfeOzPRjC seag== X-Gm-Message-State: AOAM530GDRptM1Y+3Y/B22sL/lNMuaQjnpcSXTVDl2arDt9E5Gv9BD8Y Fyp5NJ8ew6tuMXxdf7kjeNUByV1dzUJzJaBGmjOZCdDKSCM+MOET4YiEFZMnUL+pJgMi0OJriv1 ekJk35X1vjwGVsPnqYHjzb0YMNYQTk9U= X-Received: by 2002:a81:2008:0:b0:2f8:3968:e70a with SMTP id g8-20020a812008000000b002f83968e70amr21781879ywg.321.1652723369876; Mon, 16 May 2022 10:49:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwXDRCl1Myb9xRT+9Oo9bCMrFtm4bWbXeaWPyERtov40EORnWvCiqcysBckeeEMnDF72yg6BekkPyLxs73CsXQ= X-Received: by 2002:a81:2008:0:b0:2f8:3968:e70a with SMTP id g8-20020a812008000000b002f83968e70amr21781861ywg.321.1652723369699; Mon, 16 May 2022 10:49:29 -0700 (PDT) MIME-Version: 1.0 References: <361f9d4b-38ae-894d-e7a4-65a5ae3afb18@jdoubleu.de> In-Reply-To: <361f9d4b-38ae-894d-e7a4-65a5ae3afb18@jdoubleu.de> From: Jeff Johnston Date: Mon, 16 May 2022 13:49:18 -0400 Message-ID: Subject: Re: [PATCH] add tests for tzset(3) To: jdoubleu Cc: Newlib Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=jjohnstn@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="0000000000005d631005df24a5d3" X-Spam-Status: No, score=-9.4 required=5.0 tests=BAYES_00, BODY_8BITS, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 May 2022 17:49:35 -0000 --0000000000005d631005df24a5d3 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hello, thanks for looking at it. I forgot to increase the name buffers by 1 and pass 11 to the sscanf. This will make the max test trigger when needed. I have included a new patch. -- Jeff J. On Thu, May 12, 2022 at 2:36 PM jdoubleu wrote: > Hi Jeff, > > I finally found some time to have a look at your patch. > > if (sscanf (tzenv, "%10[-+0-9A-Za-z]%n", __tzname_std, &n) <=3D 0 > > || n < TZNAME_MIN || TZNAME_MAX < n || '>' !=3D tzenv[n]) > > > + else if (n < TZNAME_MIN || TZNAME_MAX < n) > > I think the sub-expression "TZNAME_MAX < n" can never be true, can it? > sscanf will always stop after 10 characters. > > What do you think about including the TZNAME_MAX macro inside the format > string? > > > #define STR(s) #s > > #define STR_LIT(s) STR(s) > > ... > > sscanf(tzenv, "%" STR_LIT(TZNAME_MAX) "[-+0-9A-Za-z]%n", __tzname_dst, > &n) > > I'll try to update the tests in the coming days, so I can verify your > changes work as expected. > > > Cheers > --- > =F0=9F=99=8E=F0=9F=8F=BB=E2=80=8D=E2=99=82=EF=B8=8F jdoubleu > On 4/29/2022 5:46 PM, Jeff Johnston wrote: > > I have revised my tzset_r.c patch so that the tzrules are initialized s= o > we > > don't inherit the previous settings if not specified for a particular T= Z. > > As well, I defaulted them if TZ is not specified. > > > > -- Jeff J. > > --0000000000005d631005df24a5d3 Content-Type: text/x-patch; charset="US-ASCII"; name="0001-Modify-tzset_r.c-to-handle-errors.patch" Content-Disposition: attachment; filename="0001-Modify-tzset_r.c-to-handle-errors.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l390tb5m0 RnJvbSA0NWQ3OTRhYTdiZTE5OGZkOWZiYjEwZWRiZDJkYWI5YjgwMmE3YjY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIEpvaG5zdG9uIDxqam9obnN0bkByZWRoYXQuY29tPgpE YXRlOiBXZWQsIDI3IEFwciAyMDIyIDE1OjI3OjAwIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gTW9k aWZ5IHR6c2V0X3IuYyB0byBoYW5kbGUgZXJyb3JzCgotIGNoYW5nZSBfX3R6c2V0X3Igc28gZXJy b3JzIGVuZCB1cCBzZXR0aW5nIHRoZSB0aW1lem9uZSB0bwogIHVubmFtZWQgVVRDCi0tLQogbmV3 bGliL2xpYmMvdGltZS90enNldF9yLmMgfCA2OCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDggaW5zZXJ0aW9ucygrKSwgMjAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbmV3bGliL2xpYmMvdGltZS90enNldF9yLmMgYi9u ZXdsaWIvbGliYy90aW1lL3R6c2V0X3IuYwppbmRleCA5Y2IzMGIxLi5hNmYxNWY2IDEwMDY0NAot LS0gYS9uZXdsaWIvbGliYy90aW1lL3R6c2V0X3IuYworKysgYi9uZXdsaWIvbGliYy90aW1lL3R6 c2V0X3IuYwpAQCAtMTIsOCArMTIsOCBAQAogI2RlZmluZSBUWk5BTUVfTUlOCTMJLyogUE9TSVgg bWluIFRaIGFiYnIgc2l6ZSBsb2NhbCBkZWYgKi8KICNkZWZpbmUgVFpOQU1FX01BWAkxMAkvKiBQ T1NJWCBtYXggVFogYWJiciBzaXplIGxvY2FsIGRlZiAqLwogCi1zdGF0aWMgY2hhciBfX3R6bmFt ZV9zdGRbVFpOQU1FX01BWCArIDFdOwotc3RhdGljIGNoYXIgX190em5hbWVfZHN0W1RaTkFNRV9N QVggKyAxXTsKK3N0YXRpYyBjaGFyIF9fdHpuYW1lX3N0ZFtUWk5BTUVfTUFYICsgMl07CitzdGF0 aWMgY2hhciBfX3R6bmFtZV9kc3RbVFpOQU1FX01BWCArIDJdOwogc3RhdGljIGNoYXIgKnByZXZf dHplbnYgPSBOVUxMOwogCiB2b2lkCkBAIC0yMyw3ICsyMyw5IEBAIF90enNldF91bmxvY2tlZF9y IChzdHJ1Y3QgX3JlZW50ICpyZWVudF9wdHIpCiAgIHVuc2lnbmVkIHNob3J0IGhoLCBtbSwgc3Ms IG0sIHcsIGQ7CiAgIGludCBzaWduLCBuOwogICBpbnQgaSwgY2g7CisgIGxvbmcgb2Zmc2V0MCwg b2Zmc2V0MTsKICAgX190emluZm9fdHlwZSAqdHogPSBfX2dldHR6aW5mbyAoKTsKKyAgc3RydWN0 IF9fdHpydWxlX3N0cnVjdCBkZWZhdWx0X3R6cnVsZSA9IHsnSicsIDAsIDAsIDAsIDAsICh0aW1l X3QpMCwgMEwgfTsKIAogICBpZiAoKHR6ZW52ID0gX2dldGVudl9yIChyZWVudF9wdHIsICJUWiIp KSA9PSBOVUxMKQogICAgICAgewpAQCAtMzEsNiArMzMsOCBAQCBfdHpzZXRfdW5sb2NrZWRfciAo c3RydWN0IF9yZWVudCAqcmVlbnRfcHRyKQogCV9kYXlsaWdodCA9IDA7CiAJX3R6bmFtZVswXSA9 ICJHTVQiOwogCV90em5hbWVbMV0gPSAiR01UIjsKKwl0ei0+X190enJ1bGVbMF0gPSBkZWZhdWx0 X3R6cnVsZTsKKwl0ei0+X190enJ1bGVbMV0gPSBkZWZhdWx0X3R6cnVsZTsKIAlmcmVlKHByZXZf dHplbnYpOwogCXByZXZfdHplbnYgPSBOVUxMOwogCXJldHVybjsKQEAgLTQ0LDYgKzQ4LDE0IEBA IF90enNldF91bmxvY2tlZF9yIChzdHJ1Y3QgX3JlZW50ICpyZWVudF9wdHIpCiAgIGlmIChwcmV2 X3R6ZW52ICE9IE5VTEwpCiAgICAgc3RyY3B5IChwcmV2X3R6ZW52LCB0emVudik7CiAKKyAgLyog ZGVmYXVsdCB0byB1bm5hbWVkIFVUQyBpbiBjYXNlIG9mIGVycm9yICovCisgIF90aW1lem9uZSA9 IDA7CisgIF9kYXlsaWdodCA9IDA7CisgIF90em5hbWVbMF0gPSAiIjsKKyAgX3R6bmFtZVsxXSA9 ICIiOworICB0ei0+X190enJ1bGVbMF0gPSBkZWZhdWx0X3R6cnVsZTsKKyAgdHotPl9fdHpydWxl WzFdID0gZGVmYXVsdF90enJ1bGU7CisKICAgLyogaWdub3JlIGltcGxlbWVudGF0aW9uLXNwZWNp ZmljIGZvcm1hdCBzcGVjaWZpZXIgKi8KICAgaWYgKCp0emVudiA9PSAnOicpCiAgICAgKyt0emVu djsgIApAQCAtNTQsNyArNjYsNyBAQCBfdHpzZXRfdW5sb2NrZWRfciAoc3RydWN0IF9yZWVudCAq cmVlbnRfcHRyKQogICAgICAgKyt0emVudjsKIAogICAgICAgLyogcXVpdCBpZiBubyBpdGVtcywg dG9vIGZldyBvciB0b28gbWFueSBjaGFycywgb3Igbm8gY2xvc2UgcXVvdGUgJz4nICovCi0gICAg ICBpZiAoc3NjYW5mICh0emVudiwgIiUxMFstKzAtOUEtWmEtel0lbiIsIF9fdHpuYW1lX3N0ZCwg Jm4pIDw9IDAKKyAgICAgIGlmIChzc2NhbmYgKHR6ZW52LCAiJTExWy0rMC05QS1aYS16XSVuIiwg X190em5hbWVfc3RkLCAmbikgPD0gMAogCQl8fCBuIDwgVFpOQU1FX01JTiB8fCBUWk5BTUVfTUFY IDwgbiB8fCAnPicgIT0gdHplbnZbbl0pCiAgICAgICAgIHJldHVybjsKIApAQCAtNjMsNyArNzUs NyBAQCBfdHpzZXRfdW5sb2NrZWRfciAoc3RydWN0IF9yZWVudCAqcmVlbnRfcHRyKQogICBlbHNl CiAgICAgewogICAgICAgLyogYWxsb3cgUE9TSVggdW5xdW90ZWQgYWxwaGFiZXRpYyB0eiBhYmJy IGUuZy4gTUVTWiAqLwotICAgICAgaWYgKHNzY2FuZiAodHplbnYsICIlMTBbQS1aYS16XSVuIiwg X190em5hbWVfc3RkLCAmbikgPD0gMAorICAgICAgaWYgKHNzY2FuZiAodHplbnYsICIlMTFbQS1a YS16XSVuIiwgX190em5hbWVfc3RkLCAmbikgPD0gMAogCQkJCXx8IG4gPCBUWk5BTUVfTUlOIHx8 IFRaTkFNRV9NQVggPCBuKQogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODUsOCArOTcsNyBA QCBfdHpzZXRfdW5sb2NrZWRfciAoc3RydWN0IF9yZWVudCAqcmVlbnRfcHRyKQogICBpZiAoc3Nj YW5mICh0emVudiwgIiVodSVuOiVodSVuOiVodSVuIiwgJmhoLCAmbiwgJm1tLCAmbiwgJnNzLCAm bikgPCAxKQogICAgIHJldHVybjsKICAgCi0gIHR6LT5fX3R6cnVsZVswXS5vZmZzZXQgPSBzaWdu ICogKHNzICsgU0VDU1BFUk1JTiAqIG1tICsgU0VDU1BFUkhPVVIgKiBoaCk7Ci0gIF90em5hbWVb MF0gPSBfX3R6bmFtZV9zdGQ7CisgIG9mZnNldDAgPSBzaWduICogKHNzICsgU0VDU1BFUk1JTiAq IG1tICsgU0VDU1BFUkhPVVIgKiBoaCk7CiAgIHR6ZW52ICs9IG47CiAKICAgLyogYWxsb3cgUE9T SVggYW5nbGUgYnJhY2tldCA8ID4gcXVvdGVkIHNpZ25lZCBhbHBoYW51bWVyaWMgdHogYWJiciBl LmcuIDxNRVNaKzAzMzA+ICovCkBAIC05NSwxMiArMTA2LDE2IEBAIF90enNldF91bmxvY2tlZF9y IChzdHJ1Y3QgX3JlZW50ICpyZWVudF9wdHIpCiAgICAgICArK3R6ZW52OwogCiAgICAgICAvKiBx dWl0IGlmIG5vIGl0ZW1zLCB0b28gZmV3IG9yIHRvbyBtYW55IGNoYXJzLCBvciBubyBjbG9zZSBx dW90ZSAnPicgKi8KLSAgICAgIGlmIChzc2NhbmYgKHR6ZW52LCAiJTEwWy0rMC05QS1aYS16XSVu IiwgX190em5hbWVfZHN0LCAmbikgPD0gMAotCQl8fCBuIDwgVFpOQU1FX01JTiB8fCBUWk5BTUVf TUFYIDwgbiB8fCAnPicgIT0gdHplbnZbbl0pCisgICAgICBpZiAoc3NjYW5mICh0emVudiwgIiUx MVstKzAtOUEtWmEtel0lbiIsIF9fdHpuYW1lX2RzdCwgJm4pIDw9IDAgJiYgdHplbnZbMF0gPT0g Jz4nKQogCXsgLyogTm8gZHN0ICovCi0JICBfdHpuYW1lWzFdID0gX3R6bmFtZVswXTsKLQkgIF90 aW1lem9uZSA9IHR6LT5fX3R6cnVsZVswXS5vZmZzZXQ7Ci0JICBfZGF5bGlnaHQgPSAwOworICAg ICAgICAgIF90em5hbWVbMF0gPSBfX3R6bmFtZV9zdGQ7CisgICAgICAgICAgX3R6bmFtZVsxXSA9 IF90em5hbWVbMF07CisgICAgICAgICAgdHotPl9fdHpydWxlWzBdLm9mZnNldCA9IG9mZnNldDA7 CisgICAgICAgICAgX3RpbWV6b25lID0gb2Zmc2V0MDsKKwkgIHJldHVybjsKKyAgICAgICAgfQor ICAgICAgZWxzZSBpZiAobiA8IFRaTkFNRV9NSU4gfHwgVFpOQU1FX01BWCA8IG4gfHwgJz4nICE9 IHR6ZW52W25dKQorCXsgLyogZXJyb3IgKi8KIAkgIHJldHVybjsKIAl9CiAKQEAgLTEwOSwxNyAr MTI0LDIwIEBAIF90enNldF91bmxvY2tlZF9yIChzdHJ1Y3QgX3JlZW50ICpyZWVudF9wdHIpCiAg IGVsc2UKICAgICB7CiAgICAgICAvKiBhbGxvdyBQT1NJWCB1bnF1b3RlZCBhbHBoYWJldGljIHR6 IGFiYnIgZS5nLiBNRVNaICovCi0gICAgICBpZiAoc3NjYW5mICh0emVudiwgIiUxMFtBLVphLXpd JW4iLCBfX3R6bmFtZV9kc3QsICZuKSA8PSAwCi0JCQkJfHwgbiA8IFRaTkFNRV9NSU4gfHwgVFpO QU1FX01BWCA8IG4pCisgICAgICBpZiAoc3NjYW5mICh0emVudiwgIiUxMVtBLVphLXpdJW4iLCBf X3R6bmFtZV9kc3QsICZuKSA8PSAwKQogCXsgLyogTm8gZHN0ICovCi0JICBfdHpuYW1lWzFdID0g X3R6bmFtZVswXTsKLQkgIF90aW1lem9uZSA9IHR6LT5fX3R6cnVsZVswXS5vZmZzZXQ7Ci0JICBf ZGF5bGlnaHQgPSAwOworICAgICAgICAgIF90em5hbWVbMF0gPSBfX3R6bmFtZV9zdGQ7CisgICAg ICAgICAgX3R6bmFtZVsxXSA9IF90em5hbWVbMF07CisgICAgICAgICAgdHotPl9fdHpydWxlWzBd Lm9mZnNldCA9IG9mZnNldDA7CisgICAgICAgICAgX3RpbWV6b25lID0gb2Zmc2V0MDsKKwkgIHJl dHVybjsKKyAgICAgICAgfQorICAgICAgZWxzZSBpZiAobiA8IFRaTkFNRV9NSU4gfHwgVFpOQU1F X01BWCA8IG4pCisJeyAvKiBlcnJvciAqLwogCSAgcmV0dXJuOwogCX0KICAgICB9CiAKLSAgX3R6 bmFtZVsxXSA9IF9fdHpuYW1lX2RzdDsKICAgdHplbnYgKz0gbjsKIAogICAvKiBvdGhlcndpc2Ug d2UgaGF2ZSBhIGRzdCBuYW1lLCBsb29rIGZvciB0aGUgb2Zmc2V0ICovCkBAIC0xMzgsOSArMTU2 LDkgQEAgX3R6c2V0X3VubG9ja2VkX3IgKHN0cnVjdCBfcmVlbnQgKnJlZW50X3B0cikKICAgCiAg IG4gID0gMDsKICAgaWYgKHNzY2FuZiAodHplbnYsICIlaHUlbjolaHUlbjolaHUlbiIsICZoaCwg Jm4sICZtbSwgJm4sICZzcywgJm4pIDw9IDApCi0gICAgdHotPl9fdHpydWxlWzFdLm9mZnNldCA9 IHR6LT5fX3R6cnVsZVswXS5vZmZzZXQgLSAzNjAwOworICAgIG9mZnNldDEgPSBvZmZzZXQwIC0g MzYwMDsKICAgZWxzZQotICAgIHR6LT5fX3R6cnVsZVsxXS5vZmZzZXQgPSBzaWduICogKHNzICsg U0VDU1BFUk1JTiAqIG1tICsgU0VDU1BFUkhPVVIgKiBoaCk7CisgICAgb2Zmc2V0MSA9IHNpZ24g KiAoc3MgKyBTRUNTUEVSTUlOICogbW0gKyBTRUNTUEVSSE9VUiAqIGhoKTsKIAogICB0emVudiAr PSBuOwogCkBAIC0yMTEsMTMgKzIyOSwyMyBAQCBfdHpzZXRfdW5sb2NrZWRfciAoc3RydWN0IF9y ZWVudCAqcmVlbnRfcHRyKQogICAgICAgbiA9IDA7CiAgICAgICAKICAgICAgIGlmICgqdHplbnYg PT0gJy8nKQotCXNzY2FuZiAodHplbnYsICIvJWh1JW46JWh1JW46JWh1JW4iLCAmaGgsICZuLCAm bW0sICZuLCAmc3MsICZuKTsKKwlpZiAoc3NjYW5mICh0emVudiwgIi8laHUlbjolaHUlbjolaHUl biIsICZoaCwgJm4sICZtbSwgJm4sICZzcywgJm4pIDw9IDApCisJICB7CisJICAgIC8qIGVycm9y IGluIHRpbWUgZm9ybWF0LCByZXN0b3JlIHR6IHJ1bGVzIHRvIGRlZmF1bHQgYW5kIHJldHVybiAq LworCSAgICB0ei0+X190enJ1bGVbMF0gPSBkZWZhdWx0X3R6cnVsZTsKKwkgICAgdHotPl9fdHpy dWxlWzFdID0gZGVmYXVsdF90enJ1bGU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg fQogCiAgICAgICB0ei0+X190enJ1bGVbaV0ucyA9IHNzICsgU0VDU1BFUk1JTiAqIG1tICsgU0VD U1BFUkhPVVIgICogaGg7CiAgICAgICAKICAgICAgIHR6ZW52ICs9IG47CiAgICAgfQogCisgIHR6 LT5fX3R6cnVsZVswXS5vZmZzZXQgPSBvZmZzZXQwOworICB0ei0+X190enJ1bGVbMV0ub2Zmc2V0 ID0gb2Zmc2V0MTsKKyAgX3R6bmFtZVswXSA9IF9fdHpuYW1lX3N0ZDsKKyAgX3R6bmFtZVsxXSA9 IF9fdHpuYW1lX2RzdDsKICAgX190emNhbGNfbGltaXRzICh0ei0+X190enllYXIpOwogICBfdGlt ZXpvbmUgPSB0ei0+X190enJ1bGVbMF0ub2Zmc2V0OyAgCiAgIF9kYXlsaWdodCA9IHR6LT5fX3R6 cnVsZVswXS5vZmZzZXQgIT0gdHotPl9fdHpydWxlWzFdLm9mZnNldDsKLS0gCjEuOC4zLjEKCg== --0000000000005d631005df24a5d3--