From nobody Mon Oct 20 14:27:13 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cqySH6gxQz6CVsv for ; Mon, 20 Oct 2025 14:27:27 +0000 (UTC) (envelope-from obiwac@gmail.com) Received: from mail-oa1-f46.google.com (mail-oa1-f46.google.com [209.85.160.46]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cqySG6hlTz4Pw2 for ; Mon, 20 Oct 2025 14:27:26 +0000 (UTC) (envelope-from obiwac@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=freebsd.org (policy=none); spf=pass (mx1.freebsd.org: domain of obiwac@gmail.com designates 209.85.160.46 as permitted sender) smtp.mailfrom=obiwac@gmail.com Received: by mail-oa1-f46.google.com with SMTP id 586e51a60fabf-3c972dec6easo2706446fac.3 for ; Mon, 20 Oct 2025 07:27:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760970445; x=1761575245; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=zwcdEvtywydbKViHTi7ejQxYehtpg8IHAlDc4isVLTU=; b=t49izIGagwbDNnzkqB9hFdKpW3qFbMf6StbjvvPJBvRxivmt61r75KQ1//0sPlWTH0 Vh2I6KM6GOfxLjExszRztROrZD7lgemHPJqaP5MLgOPMukemCUndSJSfFtNcjfMJex0Y ErMKJKYqRAJvsZbIBmEmO6Zfu2LvOhCDiu5zYbqvS/GotFiFjT8YuZHmR8eoSq9QdWED 4y4b1swmrGutrZcRnWfa5DcklebuiJl6ipETyYFyk06t29hBBe3M9yt9GtyHMFi5U3LP KK1tgASUI4iWjOvVcjDpK6zDpEn3twx019WT+wsr1/kns9lfwmZRSw66uw4guk7t90g+ Tgkw== X-Gm-Message-State: AOJu0YwTE8jHEETUjEs0DucCmityU+8pWROBPQ3w5XAaHOAN7YOeHVfi DgP4/LmLEK1Pke+90aFlsIphr+lCH/yBM72Dm4gEzHVpfocMIljNsmnQuwuFNA== X-Gm-Gg: ASbGncs2A8RIa8KFqX5RrBfCUv4N0vDB6fdmb02Tea80bWX8YQ4I8NHmvyox3PdR/iK wmOPLniND42jip+K2ILl5mYB6c97P0JOiSwkm2/9dWhMlad+54sgex9v4r/q7c7v+AXqvK8Qpm1 ClPn9Lly03UmkxQE4p3E3W5/euDphTsPIqiJVCO/dlRfNQ8Ny85z1Phzmxm++Dha4n6SS7N0uEs ak4IvRlZA2IzRPaRZxMHdDrRA5XHIXXpNmWazqSTljXRtQIG2ELRaSTRAypVrf6JcajM/rJcpzK SaZOPSsjFo6yS/VWvUQm6eXudUwuoXkgLnXXaHONuXDybaK4TtWQkJdoyP7Cfa+e7acmIbenfkt k5kkw6cZAWbp6NJxXP8asUAvUwDdikEFmkI3e84EHeDY6ow0rATaikNnxS1I+yIqqHR8tnoI8kb TKH/9+G2PCgXv/gbBciBMUkQzjEa5aN4iCX9TJzyaAplQg4JvzrCbe/o7P X-Google-Smtp-Source: AGHT+IFpH5CY5sN3vuldN6XV1hsFKoUHkn5RbpAei9lsch5a71Y/pAXP3QLP+oNkFG9zI7TbX6vVQA== X-Received: by 2002:a05:6870:6123:b0:36d:535f:830c with SMTP id 586e51a60fabf-3c98cf4305bmr4819726fac.17.1760970445175; Mon, 20 Oct 2025 07:27:25 -0700 (PDT) Received: from mail-oa1-f45.google.com (mail-oa1-f45.google.com. [209.85.160.45]) by smtp.gmail.com with ESMTPSA id 586e51a60fabf-3c9af360cedsm2211203fac.18.2025.10.20.07.27.24 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 20 Oct 2025 07:27:25 -0700 (PDT) Received: by mail-oa1-f45.google.com with SMTP id 586e51a60fabf-3c96de7fe7eso2877299fac.0 for ; Mon, 20 Oct 2025 07:27:24 -0700 (PDT) X-Received: by 2002:a05:6870:64a9:b0:3ae:f15:5df3 with SMTP id 586e51a60fabf-3c98d0a57d6mr5666990fac.27.1760970444682; Mon, 20 Oct 2025 07:27:24 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 From: obiwac Date: Mon, 20 Oct 2025 16:27:13 +0200 X-Gmail-Original-Message-ID: X-Gm-Features: AS18NWDzJWe1nTcZRHDtMbwLPMmS08XpO_TBWs2mg3xw4QvyE7C_znHKf495nso Message-ID: Subject: S0i3 sleep testing image To: FreeBSD CURRENT , freebsd-hackers Content-Type: text/plain; charset="UTF-8" X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.90 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; NEURAL_HAM_MEDIUM(-0.90)[-0.900]; FORGED_SENDER(0.30)[obiwac@freebsd.org,obiwac@gmail.com]; R_SPF_ALLOW(-0.20)[+ip4:209.85.128.0/17:c]; MIME_GOOD(-0.10)[text/plain]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), No valid DKIM,none]; RWL_MAILSPIKE_GOOD(-0.10)[209.85.160.46:from]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; MISSING_XM_UA(0.00)[]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEFALL_USER(0.00)[obiwac]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]; TO_DN_ALL(0.00)[]; FROM_NEQ_ENVFROM(0.00)[obiwac@freebsd.org,obiwac@gmail.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; RCVD_COUNT_THREE(0.00)[3]; RCVD_TLS_LAST(0.00)[]; R_DKIM_NA(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; FREEMAIL_ENVFROM(0.00)[gmail.com]; RCVD_IN_DNSWL_NONE(0.00)[209.85.160.46:from,209.85.160.45:received] X-Rspamd-Queue-Id: 4cqySG6hlTz4Pw2 Hia everyone! I am currently working on S0i3 support for FreeBSD, and I have prepared a sleep testing image to make it easier to test this on a wide variety of different hardware. You can find these images here: https://people.freebsd.org/~obiwac/s0ix/ They are expected to successfully enter S0i3 on 7040 series AMD processors, and may work on a wider variety of (AMD) machines (I do not expect this to work out of the box on Intel, but I have never tried this out). Instructions about how to read the S0i3 entry metrics are available in the /root/README file or on that page. You can also of course build the kernel yourself instead: https://github.com/obiwac/freebsd-s0ix/tree/everything If you are interested in trying this out for yourself, it would be great if you could send me the ACPI dump of your machine (acpidump -dt) as well as the SMU metrics sysctl tree on AMD (sysctl dev.amdsmu.0). Thanks! Aymeric From nobody Mon Oct 20 18:17:32 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cr3ZY49gyz6CtB2 for ; Mon, 20 Oct 2025 18:18:13 +0000 (UTC) (envelope-from freebsd@walstatt-de.de) Received: from smtp6.goneo.de (smtp6.goneo.de [85.220.129.31]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4cr3ZY1w7Zz41b6 for ; Mon, 20 Oct 2025 18:18:13 +0000 (UTC) (envelope-from freebsd@walstatt-de.de) Authentication-Results: mx1.freebsd.org; none Received: from hub2.goneo.de (hub2.goneo.de [85.220.129.53]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp6.goneo.de (Postfix) with ESMTPS id 4021B240F42; Mon, 20 Oct 2025 20:18:11 +0200 (CEST) Received: from hub2.goneo.de (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by hub2.goneo.de (Postfix) with ESMTPS id 081972402E6; Mon, 20 Oct 2025 20:18:09 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=walstatt-de.de; s=DKIM001; t=1760984289; 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=WyI8xMzddbNgIlgOb8GDAp3mcV4i8C3PkBCkQ6Q0vz4=; b=XkdCO6vrV+m7w/d1dQ65SqS4b5ZfGvTyT2oXSO6M/tvOcsaipMHpI91Mu2srVLYgaof9R1 IfoRLVwy4DTLf6ADWBoYS9LiVtvybMfJusWke62ssvPNrVeQO/R4iWMEnKlzzUjkiCw6xO icMttVWHVUonszmDkDWWVayAFzuoOx5jpvY0KkHLu0lAs4jOIPFoqVEsuBTV1ri5scHOIu 3VAojAXQCWXGSjGl8R3gGSH0AWYDHDniP81Pffm3/E3Tan+Gl9JMTo9qaoj/I72s9Y1Daq SpW0H3qfPcYSxj2/1E8sL7e5fgYg7GIWyFnRlT/2N/Ozk4vOewMadIhOiH0+WA== Received: from thor.sb211.local (dynamic-2a02-3100-2eec-4002-a2eb-a836-6d10-df36.310.pool.telefonica.de [IPv6:2a02:3100:2eec:4002:a2eb:a836:6d10:df36]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by hub2.goneo.de (Postfix) with ESMTPSA id 9814A24027A; Mon, 20 Oct 2025 20:18:06 +0200 (CEST) Date: Mon, 20 Oct 2025 20:17:32 +0200 From: A FreeBSD User To: bob prohaska Cc: FreeBSD CURRENT Subject: Re: Inverted mouse wheel since refurbishment of moused? Message-ID: <20251020201759.2b41f4b0@thor.sb211.local> In-Reply-To: References: <20251019193257.4e608978@thor.sb211.local> X-Mailer: Claws Mail 3.21.0 (GTK+ 2.24.33; amd64-portbld-freebsd15.0) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/signed; boundary="Sig_/Fe+Y.4I3=43QnEUjeHc_iW6"; protocol="application/pgp-signature"; micalg=pgp-sha512 X-Rspamd-UID: e6a784 X-Rspamd-UID: 29f7ea X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4cr3ZY1w7Zz41b6 --Sig_/Fe+Y.4I3=43QnEUjeHc_iW6 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Am Tage des Herren Sun, 19 Oct 2025 14:33:14 -0700 bob prohaska schrieb: > On Sun, Oct 19, 2025 at 07:33:15PM +0200, A FreeBSD User wrote: > > A while ago /usr/sbin/moused has seen some refurbishment. Since then in= X11 the mousewheel > > is inverted. I'm on CURRENT and 15-STABLE. Mouse is right hand. Moving = the wheel "away" was > > supposed to scroll DOWN towards the last entry (i.e. within an xterm), = moving (or > > rotating, if you like) the wheel towards me was supposed to scroll UPWA= RD towards > > historical entries. Up to the time of this inversion there was no diffe= rence between > > Microsofts handling of the mousewheel. Now, switching between M$ Window= s and my lab's FBSD > > installation is a pain, my limited brains capacity doens't compute the = inversion of the > > axis very fast. Since I do not use fancy things on how to configure the= mouse in Windows I > > suppose its the standard how I use the mouse (I use Windows for departm= ent's Email, just > > that), in FreeBSD's X11 I used for years now either no extra config or = =20 > >=20 > > Option "ZAxisMapping" "4 5 6 7". > >=20 > > First guess was to shuffle "4 5 6 7", but whatever the order of the num= bers is, it has no > > effect. > >=20 > > What triggers this inversion and how to restore the "legacy" or, more = suitable, the > > traditional way? > > =20 > Have you tried a different mouse? =20 Lots of. At work there are several types of cheap standard USB mice, most o= f them HP, Fujitsu (no matter what vendor they use) or Logitech, at home I use a Razer. Somehow I caught by surprise just compiling a new world/kernel and the mous= e wheel is inverted ... >=20 > Just to be clear, on a RasPiOS machine I see > Wheel top surface away from user, text scrolls down in window > wheel top surfacace toward user, text scrolls up in window >=20 > It's been a while since I last used X on FreeBSD >=20 > I _have_ observed scroll wheels "going backwards" on=20 > a pair of old Dell mice that I use a great deal.=20 > Contact cleaner applied to the encoder, which seems > to be a mechanical switch, fixes it for extened intervals. > That behavior was quite erratic, but debris in an optical > encoder might conceivably do something similar, perhaps > in a more consistent way. >=20 > hth, >=20 > bob prohaska >=20 >=20 --=20 A FreeBSD user --Sig_/Fe+Y.4I3=43QnEUjeHc_iW6 Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iHUEARYKAB0WIQRQheDybVktG5eW/1Kxzvs8OqokrwUCaPZ81wAKCRCxzvs8Oqok r656AP4mn7heB+SwrTbGEhFYZGiLcKflXkoNKs1+VXAJP/T+BgEAwGFpStEZMD50 qLk5Li77Qwf5k7o2jBGzMKsjtIxqfwc= =SfG0 -----END PGP SIGNATURE----- --Sig_/Fe+Y.4I3=43QnEUjeHc_iW6-- From nobody Mon Oct 20 23:09:32 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crB2R6Ypmz6DJLk for ; Mon, 20 Oct 2025 23:09:19 +0000 (UTC) (envelope-from gperciva@tarsnap.com) Received: from mail.tarsnap.com (mail.tarsnap.com [54.86.246.204]) by mx1.freebsd.org (Postfix) with SMTP id 4crB2Q2R5Tz3ktg for ; Mon, 20 Oct 2025 23:09:18 +0000 (UTC) (envelope-from gperciva@tarsnap.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=pass (policy=none) header.from=tarsnap.com; spf=pass (mx1.freebsd.org: domain of gperciva@tarsnap.com designates 54.86.246.204 as permitted sender) smtp.mailfrom=gperciva@tarsnap.com Received: (qmail 11578 invoked from network); 20 Oct 2025 23:09:17 -0000 Received: from unknown (HELO localhost) (127.0.0.1) by mail.tarsnap.com with SMTP; 20 Oct 2025 23:09:17 -0000 Date: Mon, 20 Oct 2025 16:09:32 -0700 From: Graham Percival To: freebsd-current@freebsd.org Cc: Colin Percival Subject: FreeBSD Git Weekly 2025-10-13 to 2025-10-19 Message-ID: List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.44 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.98)[-0.977]; NEURAL_HAM_MEDIUM(-0.76)[-0.762]; DMARC_POLICY_ALLOW(-0.50)[tarsnap.com,none]; R_SPF_ALLOW(-0.20)[+ip4:54.86.246.204/32]; MIME_GOOD(-0.10)[text/plain]; RCVD_NO_TLS_LAST(0.10)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; MISSING_XM_UA(0.00)[]; ARC_NA(0.00)[]; RCPT_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; R_DKIM_NA(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[54.86.246.204:from] X-Rspamd-Queue-Id: 4crB2Q2R5Tz3ktg Hi all, I'm happy to announce FreeBSD git weekly for 2025-10-13 -- 2025-10-19: https://freebsd-git-weekly.tarsnap.net/2025-10-13.html It's a list of the 184 commits in that week, split into categories. Highlighted commits: - blocklist: Add an UPDATING entry - packages: Rename unbound to local-unbound - UPDATING: Belatedly note OpenZFS sysctls moving "Highlighted" commits are selected automatically if a commit modifies UPDATING, or if the commit message contains a "Relnotes:" line. If you think that another commit should be highlighted, let me know and I'm happy to make it so. To see all reports: https://freebsd-git-weekly.tarsnap.net/ This work is funded by cperciva@ and Tarsnap Backup Inc. Cheers, - Graham Percival From nobody Mon Oct 20 23:20:21 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crBHS3PNZz6DK2y for ; Mon, 20 Oct 2025 23:20:36 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Received: from mail-ed1-x532.google.com (mail-ed1-x532.google.com [IPv6:2a00:1450:4864:20::532]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4crBHR5wbjz3mkZ for ; Mon, 20 Oct 2025 23:20:35 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=fE01TTVR; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of rick.macklem@gmail.com designates 2a00:1450:4864:20::532 as permitted sender) smtp.mailfrom=rick.macklem@gmail.com Received: by mail-ed1-x532.google.com with SMTP id 4fb4d7f45d1cf-63c12ff0c5eso9920284a12.0 for ; Mon, 20 Oct 2025 16:20:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761002434; x=1761607234; darn=freebsd.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=aJl1FJR/ZFdsJw/3BFcPQBibj9xQI1wPun2y28U/GBY=; b=fE01TTVRzQACu2WZYZ3eEqjg52tWeiAbeIOpBlKT37KwJ10U1IZrPqdZ+i03I585ko VacCVKmQOZLjpUSZCubp/ZUrKxq+gkCoWQnfFGZYjBNCWE0PYKXHkp/CEnA83YCuqMA2 krf+D7k7MdJgLyvyvoYr23Xt/+DJAjQKjIaZwrA9WgvZK6UgOeQUmqABkWyqAFNpABUG 7XSZ7MtMLREvm3r+adf7zeR2Apl2SUUjivHKT48tTd9yjRpEqnQtndzLzNr/8TIpNm4u x24UBH9CPRvP0qw1RChwfCtUQvgPbqbHgEU8GTgSFMTWw5sJ3vdrqVSKEw3s38om4+uL uxcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761002434; x=1761607234; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=aJl1FJR/ZFdsJw/3BFcPQBibj9xQI1wPun2y28U/GBY=; b=cLCF+X5g9VB0H5e2Pab2GL+Ym4NdhlYtIuLNVCHa8RAww+7hIbrZPAEWWjEYrp2Bhv oqfI7hNMDvD3XHY9PKWMrcqJSKwD7z3z/nIjEbrLhs2elGLKP7pHsifO9vQpXH/EZnQ/ WCGowWwWksJ4DQe/FtqQ3S5zGEp4kPA1lMxYA40vQJTz1wv+S5SzeB1IwhPNhiCFSnBn ooWH8xN9y0yfeRKJsYUamzColFZZMxh6E0J/wub6TLUZvlpvwrcA1PsMIURcXqX15JCs WfXIFhkISVtMBvx9MdEs0GCULcWoccqkr+MCWy4r3CC2ygSilvqFkHveMT8p/d5OF3b8 BK+w== X-Gm-Message-State: AOJu0YxRNsB5m1WpE4Pxq+4SCSZM3pIMOE8eMC4XPiZsxasGJNHe8j7v zfphmzVsPXkdCZ6rRaXvTB7qBvXJj/hYo4RgHJ5Hbpj3MWQcEFRSBhi8qBFOLZRQ4p3ZNnItZkg mn6AXkgh9M4f/9nHFxb2XTwi/o1R2XMIFSqA= X-Gm-Gg: ASbGncvqN7vjr0gn2j04FqZy6Lj6KypgEZsgwG16gjMSTtIfpPktzBVGLkymIQzDgkM d/Kk5eWKgGvKBmIaYH362pufRLm6X0/cIAvH/H9f/8pSV9ZFlnategQfz+mqymqyqVS9S8M1a70 U9oFve4eS/3P3E1N/wSjtPCvtRQ/Wp1HlOwKlJ5MbmAYuBLG8mbqWy9CGIOKZ4ScjmVYnar+GMb FqSZaq25gFxtqgc23wV6zpNhk1OqCYWf1yjE/aImd2BXwNF0YthaAY5atGY/4FFAf2Oa2xi1ch7 ZD3wTq3rmgv2Hy/jReQ6Tu27GLo= X-Google-Smtp-Source: AGHT+IFUrFp6lzzEhr6KjECvOWf+sKLWkv4+rRe/qNfYfCLSTzMmiZKy4IQriZEr6rRtXOJuTkKWX8UOMikpeJxxivI= X-Received: by 2002:a05:6402:5c8:b0:63b:ee76:3f63 with SMTP id 4fb4d7f45d1cf-63c1e1f21c4mr15272145a12.7.1761002433617; Mon, 20 Oct 2025 16:20:33 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 From: Rick Macklem Date: Mon, 20 Oct 2025 16:20:21 -0700 X-Gm-Features: AS18NWApvQIxOeRwtuqU2X65TJNhj6aozYJiwTf_AY2i7Rkd3cQdJYzytH_EkmY Message-ID: Subject: RFC: _PC_HAS_HIDDENSYSTEM rename To: FreeBSD CURRENT Content-Type: text/plain; charset="UTF-8" X-Spamd-Bar: --- X-Spamd-Result: default: False [-4.00 / 15.00]; NEURAL_HAM_SHORT(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[text/plain]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; TAGGED_FROM(0.00)[]; MID_RHS_MATCH_FROMTLD(0.00)[]; MISSING_XM_UA(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; RCVD_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::532:from] X-Rspamd-Queue-Id: 4crBHR5wbjz3mkZ Hi There are three flags UF_HIDDEN, UF_SYSTEM and UF_ARCHIVE defined in sys/stat.h (their origin is in MS-DOS). If a file system implements any of these flags, they implement all three of them, afaik. Commit afd5bc6309 (in main) defined _PC_HAS_HIDDENSYSTEM to allow pathconf to indicate if a file system supports the first two of these. I had ignored the third, since it is listed as "deprecated" in RFC-8881. It now turns out that the Windows NFSv4.1 client folk want support for UF_ARCHIVE and consider that it should not be deprecated. I do not think adding a separate _PC_HAS_ARCHIVE pathconf name is useful, since it is supported when _PC_HAS_HIDDENSYSTEM is returned non-zero. However, the name _PC_HAS_HIDDENSYSTEM is misleading, so what do others think I should do? - Add an alias for _PC_HAS_HIDDENSYSTEM called something like _PC_HAS_HIDSYSARCH or _PC_HAS_HIDDENSYSTEMARCHIVE? (Since _PC_HAS_HIDDENSYSTEM is now in the OpenZFS code, it needs to remain in unistd.h, at least for now.) Or - Just leave the name as is and document it correctly in pathconf(2)? Thanks for any comments, rick From nobody Tue Oct 21 00:02:28 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crCD300Rlz6DN5p for ; Tue, 21 Oct 2025 00:02:43 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4crCD15jbQz3tpB for ; Tue, 21 Oct 2025 00:02:41 +0000 (UTC) (envelope-from kostikbel@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=fail reason="No valid SPF, No valid DKIM" header.from=gmail.com (policy=none); spf=softfail (mx1.freebsd.org: 2001:470:d5e7:1::1 is neither permitted nor denied by domain of kostikbel@gmail.com) smtp.mailfrom=kostikbel@gmail.com Received: from tom.home (kib@localhost [127.0.0.1] (may be forged)) by kib.kiev.ua (8.18.1/8.18.1) with ESMTP id 59L02SXk004495; Tue, 21 Oct 2025 03:02:31 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 59L02SXk004495 Received: (from kostik@localhost) by tom.home (8.18.1/8.18.1/Submit) id 59L02SPO004494; Tue, 21 Oct 2025 03:02:28 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 21 Oct 2025 03:02:28 +0300 From: Konstantin Belousov To: Rick Macklem Cc: FreeBSD CURRENT Subject: Re: RFC: _PC_HAS_HIDDENSYSTEM rename Message-ID: References: List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on tom.home X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.71 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.99)[-0.994]; NEURAL_HAM_MEDIUM(-0.72)[-0.719]; DMARC_POLICY_SOFTFAIL(0.10)[gmail.com : No valid SPF, No valid DKIM,none]; MIME_GOOD(-0.10)[text/plain]; RCPT_COUNT_TWO(0.00)[2]; TAGGED_RCPT(0.00)[]; RCVD_TLS_LAST(0.00)[]; MISSING_XM_UA(0.00)[]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US]; FREEMAIL_FROM(0.00)[gmail.com]; MIME_TRACE(0.00)[0:+]; FREEMAIL_TO(0.00)[gmail.com]; R_DKIM_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; FROM_HAS_DN(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; HAS_XAW(0.00)[]; R_SPF_SOFTFAIL(0.00)[~all]; TO_MATCH_ENVRCPT_SOME(0.00)[]; TO_DN_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; ARC_NA(0.00)[] X-Rspamd-Queue-Id: 4crCD15jbQz3tpB On Mon, Oct 20, 2025 at 04:20:21PM -0700, Rick Macklem wrote: > Hi > > There are three flags UF_HIDDEN, UF_SYSTEM and UF_ARCHIVE > defined in sys/stat.h (their origin is in MS-DOS). If a file system implements > any of these flags, they implement all three of them, afaik. > > Commit afd5bc6309 (in main) defined _PC_HAS_HIDDENSYSTEM > to allow pathconf to indicate if a file system supports the first two of > these. > I had ignored the third, since it is listed as "deprecated" in RFC-8881. > It now turns out that the Windows NFSv4.1 client folk want support > for UF_ARCHIVE and consider that it should not be deprecated. > > I do not think adding a separate _PC_HAS_ARCHIVE pathconf > name is useful, since it is supported when _PC_HAS_HIDDENSYSTEM > is returned non-zero. > > However, the name _PC_HAS_HIDDENSYSTEM is misleading, > so what do others think I should do? > - Add an alias for _PC_HAS_HIDDENSYSTEM called something > like _PC_HAS_HIDSYSARCH or _PC_HAS_HIDDENSYSTEMARCHIVE? > (Since _PC_HAS_HIDDENSYSTEM is now in the OpenZFS code, it > needs to remain in unistd.h, at least for now.) > Or > - Just leave the name as is and document it correctly in pathconf(2)? IMO the 'just leave' action is good enough. From nobody Tue Oct 21 05:39:01 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crLhK3txgz6DsnQ for ; Tue, 21 Oct 2025 05:39:13 +0000 (UTC) (envelope-from t.hantzsche@hzdr.de) Received: from smtpout2.fz-rossendorf.de (smtpout2.hzdr.de [149.220.4.206]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4crLhJ4JHdz3XjN for ; Tue, 21 Oct 2025 05:39:12 +0000 (UTC) (envelope-from t.hantzsche@hzdr.de) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of t.hantzsche@hzdr.de designates 149.220.4.206 as permitted sender) smtp.mailfrom=t.hantzsche@hzdr.de Received: from fz-rossendorf.de (cg3.hzdr.de [149.220.17.80]) by smtpout2.fz-rossendorf.de (Postfix) with ESMTPS id 6987660101 for ; Tue, 21 Oct 2025 07:39:04 +0200 (CEST) Received: from [149.220.16.9] (account hantzt@hzdr.de [149.220.16.9] verified) by hzdr.de (CommuniGate SPEC SMTP 8.0.8) with ESMTPSA id 51460652 for freebsd-current@freebsd.org; Tue, 21 Oct 2025 07:39:03 +0200 Message-ID: <987e33f3-2f90-4d87-a21e-5fd92002184b@hzdr.de> Date: Tue, 21 Oct 2025 07:39:01 +0200 List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird From: Torsten Hantzsche Subject: releng/15: top averages shifted To: freebsd-current Content-Language: de-DE Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="------------ms080708090705000305050601" X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.35 / 15.00]; SIGNED_SMIME(-2.00)[]; MIME_BASE64_TEXT_BOGUS(1.00)[]; NEURAL_HAM_LONG(-0.99)[-0.986]; NEURAL_SPAM_MEDIUM(0.87)[0.872]; NEURAL_HAM_SHORT(-0.53)[-0.533]; RWL_MAILSPIKE_EXCELLENT(-0.40)[149.220.4.206:from]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; R_SPF_ALLOW(-0.20)[+ip4:149.220.4.206]; MIME_BASE64_TEXT(0.10)[]; DMARC_NA(0.00)[hzdr.de]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCPT_COUNT_ONE(0.00)[1]; ARC_NA(0.00)[]; TO_DN_ALL(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_TLS_ALL(0.00)[]; HAS_ATTACHMENT(0.00)[]; R_DKIM_NA(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:680, ipnet:149.220.0.0/16, country:DE] X-Rspamd-Queue-Id: 4crLhJ4JHdz3XjN This is a cryptographically signed message in MIME format. --------------ms080708090705000305050601 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 SGVsbG8sDQoNCmFmdGVyIHVwZ3JhZGluZyBhIHRlc3QgbWFjaGluZSB0byAic3RhYmxlLzE1 IiwgSSBub3RpY2VkLA0KcnVubmluZyAidG9wIiB1bmRlciBYLVdpbmRvd3MgaW4gYSBzdGFu ZGFyZCBzaXplIG9mIDgweDI0LA0KdGhhdCB0aGUgMyBhdmVyYWdlIHZhbHVlcyB3ZXJlIG5v dyBzaGlmdGVkIHRvIHRoZSByaWdodCBhbmQNCnRoZXJlZm9yZSB0aGUgMTUtbWluIHZhbHVl IGdvdCBtb3N0bHkgaGlkZGVuIGJ5IHRoZSAidXAiIHRpbWUuDQoNCkkgZm91bmQgaW4gY29t bWl0IGI3ZjYyYzYwNDJmOGI0YjMyMmQ5ZmEyMGE4YzZhODFhOWE1OGMxNjQNCnRoZSBleHBs YW5hdGlvbiBmb3IgdGhhdCBzaGlmdCBhbmQgdHdlYWtlZCAyIGxpbmVzIHRvIGdldCB0aGUg b2xkDQpkaXNwbGF5IGJhY2sgZm9yIG1lOg0KDQoNCmRpZmYgLS1naXQgYS91c3IuYmluL3Rv cC9kaXNwbGF5LmMgYi91c3IuYmluL3RvcC9kaXNwbGF5LmMNCmluZGV4IGI2Y2RlMGU2M2Fh Ny4uZDc2YzMzMzg3NjU5IDEwMDY0NA0KLS0tIGEvdXNyLmJpbi90b3AvZGlzcGxheS5jDQor KysgYi91c3IuYmluL3RvcC9kaXNwbGF5LmMNCkBAIC05Nyw3ICs5Nyw3IEBAIHN0YXRpYyBj aGFyICogc2V0dXBfYnVmZmVyKGNoYXIgKiwgaW50KTsNCg0KICBpbnQgIHhfbGFzdHBpZCA9 ICAgICAgIDEwOw0KICBpbnQgIHlfbGFzdHBpZCA9ICAgICAgIDA7DQotaW50ICB4X2xvYWRh dmUgPSAgICAgICAzMzsNCitpbnQgIHhfbG9hZGF2ZSA9ICAgICAgIDI5Ow0KICBpbnQgIHhf bG9hZGF2ZV9ub21waWQgPSAgICAgICAgMTU7DQogIGludCAgeV9sb2FkYXZlID0gICAgICAg MDsNCiAgaW50ICB4X3Byb2NzdGF0ZSA9ICAgICAwOw0KQEAgLTI0OCw3ICsyNDgsNyBAQCBp X2xvYWRhdmUoaW50IG1waWQsIGRvdWJsZSBhdmVucnVuW10pDQogICAgICAgICBwcmludGYo Imxhc3QgcGlkOiAlNWQ7ICAiLCBtcGlkKTsNCiAgICAgIH0NCg0KLSAgICBwcmludGYoImxv YWQgYXZlcmFnZXMiKTsNCisgICAgcHJpbnRmKCJsb2FkIGF2Z3MiKTsNCg0KICAgICAgZm9y IChpID0gMDsgaSA8IDM7IGkrKykNCiAgICAgIHsNCg0KDQpDb3VsZCB0aGlzIHBvc3NpYmx5 IGJlIGNoYW5nZWQgdG8gcmVzdG9yZSB0aGUgdXN1YWwgZGlzcGxheSBiZWhhdmlvciANCmFn YWluIGZvciB2MTU/DQoNCg0KVGhhbmtzDQoNClRvcnN0ZW4NCg0K --------------ms080708090705000305050601 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIAGCSqGSIb3DQEHAqCAMIACAQExDzANBglghkgBZQMEAgEFADCABgkqhkiG9w0BBwEAAKCC DUYwggZYMIIEQKADAgECAhBqHCdWo0TYmmQRxwqusYWuMA0GCSqGSIb3DQEBDAUAMEYxCzAJ BgNVBAYTAk5MMRkwFwYDVQQKExBHRUFOVCBWZXJlbmlnaW5nMRwwGgYDVQQDExNHRUFOVCBQ ZXJzb25hbCBDQSA0MB4XDTI0MTExODAwMDAwMFoXDTI2MTExODIzNTk1OVowgdQxCzAJBgNV BAYTAkRFMRAwDgYDVQQIEwdTYWNoc2VuMTUwMwYDVQQKEyxIZWxtaG9sdHotWmVudHJ1bSBE cmVzZGVuIC0gUm9zc2VuZG9yZiBlLiBWLjEWMBQGA1UEYRMNTlRSREUtVlIgMTY5MzEiMCAG CSqGSIb3DQEJARYTdC5oYW50enNjaGVAaHpkci5kZTESMBAGA1UEBBMJSGFudHpzY2hlMRAw DgYDVQQqEwdUb3JzdGVuMRowGAYDVQQDExFUb3JzdGVuIEhhbnR6c2NoZTCCASIwDQYJKoZI hvcNAQEBBQADggEPADCCAQoCggEBAPE966gYfAyeDNdFJtlMiesz45xGHlqon8lFID6p+aAG ptQLBRdiAefaJ4mJ9aF2HICizJ5GNkWZissI6zEh61ADvYTIRwgqs5lUrm/hdmlEDO6tu2ik ZEgmPS1wIrEJC8agNVnnnTUkh40hXP6YiZM2SLFCgZB4PeXp+60nWLFSxczSK4hWQDGFnBys lsHR3X5sRENMIREacxX4IteNr8D8r4q+PctU9dBUWavIz2jiR4QRNHqyyX6kdV2pRgLoAVCS HCrZsRYXLFUiFyQlLMI20kXJW+U6+iDbIBGrO6OFW14cnGKiUWNfa8VSXpwXVtMGI96SYzXn LoLWlmumA+cCAwEAAaOCAbEwggGtMB8GA1UdIwQYMBaAFGkAocchWPjgxRsgsArdp1G/E9nk MB0GA1UdDgQWBBQy6eQyxqs1XXQ3qqs3vQtgTqOuuTAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0T AQH/BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDBAYIKwYBBQUHAwIwUAYDVR0gBEkwRzA6Bgwr BgEEAbIxAQIBCgQwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly9zZWN0aWdvLmNvbS9TTUlNRUNQ UzAJBgdngQwBBQMCMEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6Ly9HRUFOVC5jcmwuc2VjdGln by5jb20vR0VBTlRQZXJzb25hbENBNC5jcmwweAYIKwYBBQUHAQEEbDBqMD0GCCsGAQUFBzAC hjFodHRwOi8vR0VBTlQuY3J0LnNlY3RpZ28uY29tL0dFQU5UUGVyc29uYWxDQTQuY3J0MCkG CCsGAQUFBzABhh1odHRwOi8vR0VBTlQub2NzcC5zZWN0aWdvLmNvbTAeBgNVHREEFzAVgRN0 LmhhbnR6c2NoZUBoemRyLmRlMA0GCSqGSIb3DQEBDAUAA4ICAQBl9/52O35zctc0KHgTkxs0 BS99rh2Lju8+MiqdMHcgHlqjUWWpz8vibpd+tBVNE70NCSHCKoEmQlqLBOWGSA3jBKxFrflr cnSp9HQeRv8+/JiCMOh9At2HIRCSTooO+ucDJPpXWchu7MoeHOopghfhxNePmt3XMDGZziSI 40sxuBi/udip48iExaGr8i68bbUVTYHqqg8SZllElGVOQlWolrHt4vLkpOHjIlT4TuncZFNd 9Gp4/P5Cq/AbTeBNcNXTDizmnSxBCAp1R0zi7Bh6EYEgDtu8R6MsycttQX8ZANQxWpYNwvYc r1oLXZ6ZgMZuoQvBDfJ4md02KxPYkSyTJZCTNoSqn+vZOMTFZ7RgnvXdcbVPHKZdoG6wjKTu XsLMZOCBuMWVqXAkqqCMuAYUgkmyOrjQQfKIS7w2Ty3hLb+VK8pJ17HjfTFNNlTdkz7iwAfs WWC+BzF56/vDXA0S9Ra0oWlON/HfxZ8eZjubNiFIhiz1/gi2YefuSfEULPF29tGsSBMg+TFo o+38GGrwtu1BefgnLXY8seFDVpVdJ8S+mT+3vUzM0jGulO8eeANDPFrOB42FFNg/vDPyjZYT 3toYAfqWvHe2KwPVH30cFJmQjMnfNSUPlb61ty9C69cZRaGXKuV01r+TpUtdHUb0+Oryv8W2 kfAGsX5Wu405ezCCBuYwggTOoAMCAQICEDECcNQ1vpskmvhW0OHihUkwDQYJKoZIhvcNAQEM BQAwgYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtKZXJz ZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYDVQQDEyVVU0VS VHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTIwMDIxODAwMDAwMFoXDTMz MDUwMTIzNTk1OVowRjELMAkGA1UEBhMCTkwxGTAXBgNVBAoTEEdFQU5UIFZlcmVuaWdpbmcx HDAaBgNVBAMTE0dFQU5UIFBlcnNvbmFsIENBIDQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw ggIKAoICAQCzSuIiXidb6QRbFAQ1MiAUrrTSMUDGzVDAHqFEyq+eSmF/LZDeYpszai2kQsqW ATz/cBA9gGjunvJ45G48ycC4D6gwZFvbBt5JotxlunBeB8K+crGar3v+RCQ4VfvToX07v+HT J6EeEONR3IzJPTMyzgAwENGsAWf9va9HePQFJiChCzXqhKpp0zen53S+8f9itEy06GS8aku7 Mvyb4tMBBa9An3Y3ALIqIeymg/iYs8m9WkSkMyekNtFRB1+1KlnNUpM05G8+sY9EucnQQRUI dHzYsvqjP3XlaSuB4Jj0ia66UGfi5Wx31mm5sKAz8Re9UGVWIqq6wKFKxkSfuO4iwYiIPJoi GEux3dqabwFLduAroDF1IxE40PqGIdPXzYuZ/wL6BEfFAb0xy8bfm5S9G7y/ts9mIlFpPtkL Z/nQ/iVOWdsu9ale/nK/uGF47xsxeW2LIvB4sH5U2+D4ad8vpNbcCrXIXXKtkBnNHgxumNNZ 0R1Isq/Pz7TALCxxDzWdsM7AO32/Jn7R4ldtGRZmKpJyfACDn8HU1QPhOtiWsjifrMWnanJh Q6K7M/5qz8BmfPrca+MUrr1Y4NHZb9MrgPtWKQQyGDXy+G5F/iHGdZk7LS+F8NH+Ddolt2wZ pz52JqGMTDPIH5Qok4LLO95wbxtn+79Tw+wQxmDTuIg+LwIDAQABo4IBizCCAYcwHwYDVR0j BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFGkAocchWPjgxRsgsArdp1G/ E9nkMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0GA1UdJQQWMBQGCCsG AQUFBwMCBggrBgEFBQcDBDA4BgNVHSAEMTAvMC0GBFUdIAAwJTAjBggrBgEFBQcCARYXaHR0 cHM6Ly9zZWN0aWdvLmNvbS9DUFMwUAYDVR0fBEkwRzBFoEOgQYY/aHR0cDovL2NybC51c2Vy dHJ1c3QuY29tL1VTRVJUcnVzdFJTQUNlcnRpZmljYXRpb25BdXRob3JpdHkuY3JsMHYGCCsG AQUFBwEBBGowaDA/BggrBgEFBQcwAoYzaHR0cDovL2NydC51c2VydHJ1c3QuY29tL1VTRVJU cnVzdFJTQUFkZFRydXN0Q0EuY3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1 c3QuY29tMA0GCSqGSIb3DQEBDAUAA4ICAQAKBU57DY8fEzkA/W/sYsbD7e0XquMBzHjcP0eX XXRD4EAEAGCWSs+QRL9XIxmx+52zx9wMa8YTejlR+NKejiyKPTF0q63zMxrO/z/hUwo8IDcR RLS0NSgvTW6AN2rCXJe5iLN5fIfYgIBB9cy1L6trPuZ/vjUJm87nQ7ExQzGqWN5F9U8MlAk0 c5iLanG7GCMoNjHiF1n0baj6guUeG7n5qcwOQTyDS19+NEqfwjUPUGasN1ZH8h1sE6PrzvRp ti+rKzWpiU+i2/k3l2b5fFDy+Wu9jv6R9BoBh47es/UMzwEZ2kSrIVVr4jSukk+FpmR5Zbtw iYNAV6sdb1srMGsILzXlrdasSE2nGHvZklk2zUdgn7b01MHq67g0mNozGmT6Dam41Kbhv25W MFs871XqwVIb4gGoT1yRf/VePMm1jwauqijhKJFvrNweGnebGPeipaLxIo2iEA4qdRztEg/q yzWGogXK/TFdmivg322fMPQWjQkMhRGMM8SCjlZN22L8x0ZOYoVA2rHJm5P25IjZe+HPyn7i kJiSJmqlqFmUeowXF3D1dFlCCs/5yC06RYRqI2REFu+28t2nswIvY6xCFAR0RtS8Mz2yXNld 0js2MmiRUGrc7imWzdUPbPcv9sdUF7SsERGPIzYL8dIiHzit+YCoGCSXMg6peF37hHNp1TGC AzgwggM0AgEBMFowRjELMAkGA1UEBhMCTkwxGTAXBgNVBAoTEEdFQU5UIFZlcmVuaWdpbmcx HDAaBgNVBAMTE0dFQU5UIFBlcnNvbmFsIENBIDQCEGocJ1ajRNiaZBHHCq6xha4wDQYJYIZI AWUDBAIBBQCgggGvMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8X DTI1MTAyMTA1MzkwMlowLwYJKoZIhvcNAQkEMSIEIP+0UCdXjLget52Ld47Etia5IGT9oAhA uvg2UCqbjbjxMGkGCSsGAQQBgjcQBDFcMFowRjELMAkGA1UEBhMCTkwxGTAXBgNVBAoTEEdF QU5UIFZlcmVuaWdpbmcxHDAaBgNVBAMTE0dFQU5UIFBlcnNvbmFsIENBIDQCEGocJ1ajRNia ZBHHCq6xha4wawYLKoZIhvcNAQkQAgsxXKBaMEYxCzAJBgNVBAYTAk5MMRkwFwYDVQQKExBH RUFOVCBWZXJlbmlnaW5nMRwwGgYDVQQDExNHRUFOVCBQZXJzb25hbCBDQSA0AhBqHCdWo0TY mmQRxwqusYWuMGwGCSqGSIb3DQEJDzFfMF0wCwYJYIZIAWUDBAEqMAsGCWCGSAFlAwQBAjAK BggqhkiG9w0DBzAOBggqhkiG9w0DAgICAIAwDQYIKoZIhvcNAwICAUAwBwYFKw4DAgcwDQYI KoZIhvcNAwICASgwDQYJKoZIhvcNAQEBBQAEggEAcskQT0h8+xWkm67JyQaUNH+cDIX1owLw EEqa/cnuJJb0s+LFppLwnm1jJMhdVCw+Pcyyy4fbiftZNgSEBUdDy5EDXhiKgSNIcqC97Mwz xdYDsxPi6OtDr8HiUIgt7jsXj1sAkAsZPXDLDcGARsAoCTvxlFXT4Pbr52/Lx8vi6RWyIplZ FphIKeanRnmexXT8GQBHqKPMqNyXdB6ZBtaromjRorRanoAXuwAYMm09HAxs2LRv6FYCUB46 PWHGkxYQOew/gPJXhgBbiZpf1xTvIjgN/C7NgkcO24G0YbCdetAE2HOff6Q5Wg7Z+fHvPesg n6YOqOpiivJgx+4tiHO4GQAAAAAAAA== --------------ms080708090705000305050601-- From nobody Tue Oct 21 07:34:46 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crPG464ykz6F2Nk for ; Tue, 21 Oct 2025 07:35:08 +0000 (UTC) (envelope-from freebsd-current-freebsd-org111@ketas.si.pri.ee) Received: from mail.ketas.si.pri.ee (d004-fea2-0bff-021e-13e8-8437-07d0-2001.dyn.estpak.ee [IPv6:2001:7d0:8437:13e8:21e:bff:fea2:d004]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4crPG34NN8z3kQT for ; Tue, 21 Oct 2025 07:35:07 +0000 (UTC) (envelope-from freebsd-current-freebsd-org111@ketas.si.pri.ee) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=ketas.si.pri.ee header.s=ketas-si-pri-ee-20240416002854-4096 header.b="n/vazq6M"; dmarc=pass (policy=reject) header.from=ketas.si.pri.ee; spf=pass (mx1.freebsd.org: domain of freebsd-current-freebsd-org111@ketas.si.pri.ee designates 2001:7d0:8437:13e8:21e:bff:fea2:d004 as permitted sender) smtp.mailfrom=freebsd-current-freebsd-org111@ketas.si.pri.ee X-Original-To: freebsd-current@freebsd.org DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ketas.si.pri.ee; s=ketas-si-pri-ee-20240416002854-4096; t=1761032087; bh=nufyK+iZbawOqR7Jdis6O833j56O+zx1CVKI86smNvc=; h=Date:From:To:Subject; b=n/vazq6MvttD5Rfhz0cJpXWIJiyquJ7WbBC8hEWbd73PQv9Abo4Czj15Ry/kfGeti HlZ7Z7VR8/CWZnUsptOIp01F4nV3IO1F5ZivyLFMI5VRHBgzwCzVdntpw7fXkl7V3J eM80MvtkxvHxmZ1eAr5pLi92h2OYLVgExi+tctr2M1cwbvLPKJRnlUSExFVxqNxosZ yfEC0kxiy76XMOGuiryd7JfPWgTMvTox6ZqyRJS6BhbcS1NBF5vnAdrosrXAzBSpum oGyZRBxsYRJQqqj8A/vBJWCpE4jrQcDjtk5E2YNr2eyMqcahX5qBCip2q/+Y39r68v OO0vXjnInEqbcM/SnDaSXUveR1IFhxDLfFxYL6JGpAkQ8jAZ4+eP541OmHuWK4IN/p Ayi69Z5Kb+9EVa2f5L+rPzMUk/ou7uBeYENp4po8Pgf9BfyGDJ3qOwIaLQmEJgwjKU YYBbsC71zCbDEhjPdtZNfDaCj/KcO4VwcTs2PCh8QVbMci4Evpi80a0fShkERQ3Oc7 FW6TZqFOgdmYzqcO2DqtnFrz/nYpY9vb8B98piWuFqm2XkQRuQ9zNuUUQoZUs7/3pg iIr4c3qONJ7YQHMpjTHpLHl1YqHmwbxBY251Ms3Ov6VOnQ8EsCRwXUY37wE6tz0K/P 1iDhUa04+oI+9LQOcctSfD+s= Received: from ehlo.thunderbird.net (0115-0000-0000-0000-13c8-8437-07d0-2001.dyn.estpak.ee [IPv6:2001:7d0:8437:13c8::115]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.ketas.si.pri.ee (Postfix) with ESMTPSA id E0CBE5B957A for ; Tue, 21 Oct 2025 10:34:46 +0300 (EEST) Date: Tue, 21 Oct 2025 10:34:46 +0300 From: Sulev-Madis Silber To: freebsd-current Subject: text buffer size in boot User-Agent: K-9 Mail for Android Message-ID: <696264F7-5182-421A-8511-9B3AE250F861@ketas.si.pri.ee> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: / X-Spamd-Result: default: False [-0.80 / 15.00]; HFILTER_HOSTNAME_5(3.00)[d004-fea2-0bff-021e-13e8-8437-07d0-2001.dyn.estpak.ee]; NEURAL_HAM_SHORT(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-0.999]; DMARC_POLICY_ALLOW(-0.50)[ketas.si.pri.ee,reject]; R_DKIM_ALLOW(-0.20)[ketas.si.pri.ee:s=ketas-si-pri-ee-20240416002854-4096]; ONCE_RECEIVED(0.20)[]; R_SPF_ALLOW(-0.20)[+ip6:2001:7d0:8437:1300::/56]; MIME_GOOD(-0.10)[text/plain]; RCVD_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_TLS_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; TO_DN_ALL(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; DKIM_TRACE(0.00)[ketas.si.pri.ee:+] X-Rspamd-Queue-Id: 4crPG34NN8z3kQT might not be current issue at all but i don't recall seeing it elsewhere=2E but then, others booted bios and= not some weird sbc uboot-efi+serial console inside a sbc (allwinner h3 btw= ) anyway, what i see is that as if text that comes out of init is somehow li= mited=2E like cut off in mid line at some character i was basically trying to echo most of the motd out right before the getty= =2E i did it from one of my initscripts=2E that cut off, then i did put tha= t thing (back) into /etc/rc itself=2E no luck=2E turned off getty on ttyu0,= still same i also tried to tune kern=2Emsgbufsize & kern=2Econsmsgbuf_size, assuming = it controls that, first at double, then with 1000000, no change even looked up elsewhere to remind me what buffers control the text that's= outputted out console / "console" there=2E no help eh what's fun is that i log all the syslog and everything what's printed to c= onsole is in there in full=2E except i don't see it all in "actual" console how to get more text out? also where/what/why is there a limit? limit is f= unnily only cutting the last <1kb off=2E anyway i don't get this confusing = behaviour at all From nobody Tue Oct 21 12:20:39 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crWbl4FLrz6FNL6 for ; Tue, 21 Oct 2025 12:20:51 +0000 (UTC) (envelope-from freebsd-current-freebsd-org111@ketas.si.pri.ee) Received: from mail.ketas.si.pri.ee (d004-fea2-0bff-021e-13e8-8437-07d0-2001.dyn.estpak.ee [IPv6:2001:7d0:8437:13e8:21e:bff:fea2:d004]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4crWbk3nLzz4Gtb for ; Tue, 21 Oct 2025 12:20:49 +0000 (UTC) (envelope-from freebsd-current-freebsd-org111@ketas.si.pri.ee) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=ketas.si.pri.ee header.s=ketas-si-pri-ee-20240416002854-4096 header.b=K0LezL8B; dmarc=pass (policy=reject) header.from=ketas.si.pri.ee; spf=pass (mx1.freebsd.org: domain of freebsd-current-freebsd-org111@ketas.si.pri.ee designates 2001:7d0:8437:13e8:21e:bff:fea2:d004 as permitted sender) smtp.mailfrom=freebsd-current-freebsd-org111@ketas.si.pri.ee X-Original-To: freebsd-current@freebsd.org DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ketas.si.pri.ee; s=ketas-si-pri-ee-20240416002854-4096; t=1761049240; bh=QKSKeLjRIo935surK/GbOQMesz1oGaIYbhcvqEj/W3Y=; h=Date:From:To:Subject:In-Reply-To:References; b=K0LezL8BV/YW5pad1IiSUM3m2Ohoq+lq5cW08BjzuAT/rSgeWp6oljSjHkuhluH8P KjTAKrsxW7GgNzdBl/ZeFEVpdUst2pj7Tb4PsUorp6XvD/ivwDiCMUfbQ0mTetBSGU C4ThMGec1rZ3WqBnLcLT4jJXyukcsY8uaXuuvXqAF5CMhV9vpGG0jD5EBnAJAlTyi1 lYqfnLSl/Y9+aYUIzD90zkjUfH71DkegaD6Vwt323X6UsISKYoeqosz/5fJG1hV/rJ 4iMoXahtcgTP+Kkxb8IyRwgN2+6iFiSuThiLn9XifUhRBPICKVkGpLlcM3+Msm23h+ Ewd8davaJQXpjPeYIzQYt7K21L3gCZyibNv/yr/cXyryR2FYoF5Y/fQFk3J4TWvhbM o23ZqRFOeN/CsGV+IdgbkmT1/meYidqjuh6gG5p19osx8d9bEMGwnGulTt9Bdl6IVb buvlmBPfx820H7bJwqTv5Q+sYyxLP+yJLfmOpYQ50xhNMnvz8NeeFCGhnRJaYtBslF +vL9rxR++IHr5MOADQaYjkgBD+4NUpKNGJ6Uwv/AAOknzFZxGBQcmEdxzQl84esH3c eESxMbUWpGnnW9MAhNSCqoBwArFyY5OA5uuqMZtMuuiHRuaHU2R7yhVjf/j/VypJCP 2oR9TWZM6xgJvKPJdLYbG0LI= Received: from ehlo.thunderbird.net (0115-0000-0000-0000-13c8-8437-07d0-2001.dyn.estpak.ee [IPv6:2001:7d0:8437:13c8::115]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.ketas.si.pri.ee (Postfix) with ESMTPSA id 114A15BBD17 for ; Tue, 21 Oct 2025 15:20:40 +0300 (EEST) Date: Tue, 21 Oct 2025 15:20:39 +0300 From: Sulev-Madis Silber To: freebsd-current@freebsd.org Subject: Re: text buffer size in boot User-Agent: K-9 Mail for Android In-Reply-To: <696264F7-5182-421A-8511-9B3AE250F861@ketas.si.pri.ee> References: <696264F7-5182-421A-8511-9B3AE250F861@ketas.si.pri.ee> Message-ID: List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: / X-Spamd-Result: default: False [-0.80 / 15.00]; HFILTER_HOSTNAME_5(3.00)[d004-fea2-0bff-021e-13e8-8437-07d0-2001.dyn.estpak.ee]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-0.999]; DMARC_POLICY_ALLOW(-0.50)[ketas.si.pri.ee,reject]; R_DKIM_ALLOW(-0.20)[ketas.si.pri.ee:s=ketas-si-pri-ee-20240416002854-4096]; ONCE_RECEIVED(0.20)[]; R_SPF_ALLOW(-0.20)[+ip6:2001:7d0:8437:1300::/56]; MIME_GOOD(-0.10)[text/plain]; RCVD_COUNT_ONE(0.00)[1]; MIME_TRACE(0.00)[0:+]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_TLS_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_TRACE(0.00)[ketas.si.pri.ee:+] X-Rspamd-Queue-Id: 4crWbk3nLzz4Gtb or maybe it is current issue after all=2E or fix or workaround that can be = added basically i thought what if i add: ---------------------------------------------------------------------- --- /root/files/fbsd/current/src/libexec/rc/rc 2025-07-15 11:59:53=2E7198= 93000 +0300 +++ rc 2025-10-21 12:50:29=2E281862000 +0300 @@ -149,4 +149,5 @@ echo '' date +sleep 10 exit 0 ---------------------------------------------------------------------- this fully fixed everything=2E seems like i don't need full 10s, but <1s= =2E eg too fast for human to notice it seems like something is writing text in 4kb chunks and i'm assuming ser= ial isn't taking data that fast=2E then maybe init goes multiuser and data = in buffer is lost i recall tests of fbsd being able to boot really fast in some vm platforms= =2E or maybe things there never wrote more than 4kb out i actually never tested what if init happens really fast=2E but usually it= doesn't, and it actually starts things up slowly one at time=2E i vaguely = recall that init can also do parallel launch i'm wondering if this is also happening on other console types, including = bios and efi, but it's never a problem since they output text short and slo= w then comes my initscript and blasts ~600 bytes out fast, doesn't wait, exi= ts, and it expects it all to reach console but apparently init (?) has problems here again, it's all there if system is booted up and syslog has recorded boot = log (i have all=2Elog as well as console=2Elog configured)=2E it only affec= ts whatever physical console there is so is this a bug that only affects some hw? From nobody Tue Oct 21 21:07:44 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crlHr4Z7Cz6D0yJ for ; Tue, 21 Oct 2025 21:07:52 +0000 (UTC) (envelope-from saper@saper.info) Received: from q.saper.info (q.saper.info [IPv6:2605:2700:0:2:a800:ff:fec7:5c61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "q.saper.info", Issuer "E6" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4crlHq5JdMz43Qs for ; Tue, 21 Oct 2025 21:07:51 +0000 (UTC) (envelope-from saper@saper.info) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=saper.info header.s=Sep2014 header.b=KDGSTQPd; dmarc=none; spf=none (mx1.freebsd.org: domain of saper@saper.info has no SPF policy when checking 2605:2700:0:2:a800:ff:fec7:5c61) smtp.mailfrom=saper@saper.info Received: from q.saper.info (localhost [127.0.0.1]) by q.saper.info (8.18.1/8.18.1) with ESMTPS id 59LL7iQj044880 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO) for ; Tue, 21 Oct 2025 21:07:44 GMT (envelope-from saper@saper.info) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=saper.info; s=Sep2014; t=1761080864; bh=MPE1OdFnigzUxSG4vhUVHWA4K+kCAUE5C6c5SMBgiuI=; h=Date:From:To:Subject; b=KDGSTQPdt6eBXKIXhO4P2a+AXM/ww1BasJk/7mKHNxkwJUjVTiDomb2B0zBvqEeec cn3orSZXRsTZwhNx6GY/OOKM19pOa7RY76gNWCkcdf7ri+DAVw3MTn49iKiGq/hrku yWyKzlWEX+wQPpl3f8WXlQnqJbYjTEwQnBM5ojAk= Received: from localhost (saper@localhost) by q.saper.info (8.18.1/8.18.1/Submit) with ESMTP id 59LL7ijW044877 for ; Tue, 21 Oct 2025 21:07:44 GMT (envelope-from saper@saper.info) X-Authentication-Warning: q.saper.info: saper owned process doing -bs Date: Tue, 21 Oct 2025 21:07:44 +0000 From: Marcin Cieslak To: FreeBSD Current Subject: usbhid(4) breaks passkeys? Message-ID: <08428s9n-72o9-28r1-22n6-rn0r885n62q0@fncre.vasb> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="2201072851-1948269662-1761080864=:62059" X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.40 / 15.00]; SIGNED_SMIME(-2.00)[]; NEURAL_HAM_SHORT(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; SUBJECT_ENDS_QUESTION(1.00)[]; R_DKIM_ALLOW(-0.20)[saper.info:s=Sep2014]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; DMARC_NA(0.00)[saper.info]; TO_DN_ALL(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; RCVD_TLS_LAST(0.00)[]; RECEIVED_HELO_LOCALHOST(0.00)[]; ARC_NA(0.00)[]; HAS_ATTACHMENT(0.00)[]; MISSING_XM_UA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; HAS_XAW(0.00)[]; DKIM_TRACE(0.00)[saper.info:+]; RCVD_COUNT_TWO(0.00)[2]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; ASN(0.00)[asn:47066, ipnet:2605:2700::/32, country:US]; R_SPF_NA(0.00)[no SPF record] X-Rspamd-Queue-Id: 4crlHq5JdMz43Qs --2201072851-1948269662-1761080864=:62059 Content-Type: text/plain; format=flowed; charset=US-ASCII Hello, I've just noticed that for some time that my USB passkey does not work in my browser (Firefox). Setting sysctl hw.usb.usbhid.enable=0 and re-attaching the device (so it gets the "uhid" driver) fixes the problem: sbhid0: on usbus0 hidbus2: on usbhid0 (** does not work **) ugen0.4: at usbus0 (disconnected) usbhid0: at uhub4, port 1, addr 21 (disconnected) hidbus2: detached usbhid0: detached ugen0.4: at usbus0 uhid0 on uhub4 uhid0: on usbus0 (** works **) This is an oldish FreeBSD 15 from August... Is this a known problem? Marcin --2201072851-1948269662-1761080864=:62059 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: BASE64 Content-Description: S/MIME Cryptographic Signature Content-Disposition: attachment; filename=smime.p7s MIIOdgYJKoZIhvcNAQcCoIIOZzCCDmMCAQExDzANBglghkgBZQMEAgEFADAL BgkqhkiG9w0BBwGgggq9MIIEvDCCA6SgAwIBAgIQeEqpEhjRpCYIUTzTZlVD ozANBgkqhkiG9w0BAQsFADBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3Qg Q0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs U2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yOTAzMTgwMDAwMDBaMFsxCzAJBgNV BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMSBDQSAyMDIwMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvxvJBqEapaux2/z3J7fFslRO WjKVJ5rCMfWGsg17dmD7NSnG7Spoa8d3htXsls1IMxoO8PyouQajNQqYmlYo xinlqenMNv7CJyEKMOAtglBmD6C/QC7kT+dSx4HfSTs8xmv8veJOldMzF8S/ BEn/tD4w/Dvpg+oXOqDyOiHPTacRFK0QHoq5eEbBmVS8W0rwcaRotO9fGTA+ NjF0My7GLRNK0eMPGh2hcPZURQhXy7wRQ8XFIfEA6kaQHHN22ncnVtwqiTmA wTR+4GNNVinG3KjNZLAVSnGrdCvT2I4Zo19hKy5PX6o7wrVXvMR4zV5VBFwV 6ZDM+xewao7Mup+SbwIDAQABo4IBiTCCAYUwDgYDVR0PAQH/BAQDAgGGMB0G A1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDASBgNVHRMBAf8ECDAGAQH/ AgEAMB0GA1UdDgQWBBSFu/DMxDa1CmJ2o5kuj7s6aq3FUTAfBgNVHSMEGDAW gBSP8Et/qC5FJK5NUPpjmove4t0bvDB6BggrBgEFBQcBAQRuMGwwLQYIKwYB BQUHMAGGIWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMzA7Bggr BgEFBQcwAoYvaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQv cm9vdC1yMy5jcnQwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i YWxzaWduLmNvbS9yb290LXIzLmNybDBMBgNVHSAERTBDMEEGCSsGAQQBoDIB KDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9y ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWWtqju12g524FdD2HwUX U1rSxeM5aSU1cUC1V/xBjXW0IjA7/3/vG2cietPPP/g3lpoQePVJpQAKZml8 1fHwPPivFK9Ja41jJkgqGzkORSC0xYkh2gGeQg1JVaCzcrRzJElRjT442m6F pbLHCebxIHLu0WBNjLZreB6MYMaqdPL6ItbXtD/BU4k517cEuUbczoBFZAra jq7oUBWXuroln5AMnRwVNwgJN4Np0s4kkJ94KepzbFOLzcbnfUB0+xT4foXm bM0GmmcPGOy0qvqEHJsBwDZXDxIk8oqCnnLngi7N94Sn4eTcmpZ9NH2dDN1O TEPVXgRG5X1pBcNtMWG6MDCCBfkwggThoAMCAQICDCKqoJRMYYx5sYJHGzAN BgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFs U2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMgUGVyc29u YWxTaWduIDEgQ0EgMjAyMDAeFw0yMzAzMDcxNjExMDlaFw0yNjAzMDcxNjEx MDlaMDwxGTAXBgNVBAMMEHNhcGVyQHNhcGVyLmluZm8xHzAdBgkqhkiG9w0B CQEWEHNhcGVyQHNhcGVyLmluZm8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw ggIKAoICAQC8MB3fTYVrTadH5qE2CIa4VLvlL6QHgDriMRLkTA49SPszYCO0 fZTEpdSw8fc6kK9p2fD63LAfOHeD7jzey5aHBzpIGlxeFkn0Ce2BCYY5yLxK i9byoCwrpLchTR1Itpk1w+zy5E4T9KBTL1+c+w+TKpaIvFLXtjZtz4wQGi0p e/nRkRK9htGG3mETh+APitedl+ImGaI8NK9PELxuSkXnYAvGPpnXir8vbszk tJU1b0TevL/i3Sy6fhOhunZmTo1QDM7Zw4UyVjkQgTvL3y4I0tIrVjlam08x XZeMp+i/Gl51eHGvRVfvdJUJAjrWhrFEp8+2FZouWxWzAlHdd2sRp1AekNdP CeRgHeIF6uNtSseL1grKAjU+4BiixWPp1y1niB0humoQHoub/6fO/mU+//rW l3gTwZNu4FuKgZlfPw+qnvuka0c9dUNIZRCE5z8yXjS8R9yZWirnHNhYxf/e R2y4jaiHzPAjZlZZ2rGx8xVfB2n2JsAicj2+ZxmXlQ1yd5RW1pfxG3cdNNC5 uZ+j4JIN2ElsIjEKmMn9gHdoaEMAy/ENwNiMDBadLnc8qWirq/Ktp2dBSf2y /sH9xMpVyk8wuYjpbCnX4xslAensno5A20MYdKGPRFaItEhNPNbfzc1+4br8 exoXFX1F9ZJK9gGUO2nLbdRycphdyzxzgQIDAQABo4IB2jCCAdYwDgYDVR0P AQH/BAQDAgWgMIGjBggrBgEFBQcBAQSBljCBkzBOBggrBgEFBQcwAoZCaHR0 cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyM3BlcnNv bmFsc2lnbjFjYTIwMjAuY3J0MEEGCCsGAQUFBzABhjVodHRwOi8vb2NzcC5n bG9iYWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWduMWNhMjAyMDBMBgNV HSAERTBDMEEGCSsGAQQBoDIBKDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3 dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1Ud HwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2Ny M3BlcnNvbmFsc2lnbjFjYTIwMjAuY3JsMBsGA1UdEQQUMBKBEHNhcGVyQHNh cGVyLmluZm8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB8GA1Ud IwQYMBaAFIW78MzENrUKYnajmS6PuzpqrcVRMB0GA1UdDgQWBBTW/RrdlRFR y6MgS7liTThMnQA5ozANBgkqhkiG9w0BAQsFAAOCAQEAAwoUJShHMueocVlD 1+vYJbTTTbk9tabr2L4Iyyy4Btu1d1wwl6d9Yx2N9qaVERWcEeP0aR+NB2B7 xIKl/ZnZVuSxep0Raw4s284a/jSIJlsAi4SJItDCU2VrYJDWxP7MxzZHnzPI MLDoTHXPV18gvYTewoNk5/Yo89Kb0v/GpPTpP2sVdrWLHa4uKUHYrAZ0aByp kNw6lXp6o6DXvXaOd6KDTQN5XhmmHwLnuLceODF1t9gicsZIOY+KAxN6YZ6t EqwN48b4OFMpckDE3fm1iTZRqnEIqUHOKOcoCImkub1woEN0zXDQmLXaZigl uVztWSTM4/fapWLrlHBNxfjs1TGCA30wggN5AgEBMGswWzELMAkGA1UEBhMC QkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNVBAMTKEdsb2Jh bFNpZ24gR0NDIFIzIFBlcnNvbmFsU2lnbiAxIENBIDIwMjACDCKqoJRMYYx5 sYJHGzANBglghkgBZQMEAgEFAKCB5DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN AQcBMBwGCSqGSIb3DQEJBTEPFw0yNTEwMjEyMTA3NDRaMC8GCSqGSIb3DQEJ BDEiBCBQNdTSpFsLzuwgSy2/8CF+Ie2bw+nv0sHpeHTdIChBEDB5BgkqhkiG 9w0BCQ8xbDBqMAsGCWCGSAFlAwQBKjALBglghkgBZQMEARYwCwYJYIZIAWUD BAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIB QDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAgCo /5PGl2xtm3iSvoltOJWyH7Y41yOdeglSLoRe4KEwNUinz5e08htsCvZ10exk Hh3qfsOfPageURN0/9dXFS6f0qiDO6JMHC12QtqEMR8VfNJDJ9+Oh98hcRym TQZT/tBH2GV039Gg2i0WlHGIrBkTN+4tkXVNRvPa0IuBNwutLA2352h95w1D LSVi9NRRlyCiJr+N95T1vjdZ1a/OrlLMjiAm6iHW27XuId17POGjaUdM75PW pe0y6n7hcK6wN7RjoU763F8R+eDrjhSYyT2+eGIZuJWfQJKs+ZSULhU4Zyz+ CMEgXbCWIe14mZs+nMp5OumFT2UYOAioADyBMdAKktqk35CpBQuN624XQSul g+4jrcXOKmreVPAZD+sqcxsf65nbLCemoHFXXoH116DUxapa2+ZNwxECs3As q0rBw2Ai6IyEup5H8xAdMyAIMr+DouxNa1k1QLjXtoO0G69ZlhF9D2fnnEo2 n/nipPabl61tInKhZTsgeUSFpxvi5UATwQohog2i80Nxh0tHs3O2s7kUZr4J Io6ycP9extLLzPE/Wk9zCP3I/jvoMNhFgglISl7TVu/8YaCQT5BwlBUCij1u OcPmogR8io85ArKPZdHvK5kBsAmRxhELTIqreuFol0w4ii7mFRtcNoZKV1gU mlHLDXM1tAwE0n3v3m014g== --2201072851-1948269662-1761080864=:62059-- From nobody Tue Oct 21 21:11:53 2025 X-Original-To: current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crlNW22wKz6D1WX; Tue, 21 Oct 2025 21:11:55 +0000 (UTC) (envelope-from saper@saper.info) Received: from q.saper.info (q.saper.info [IPv6:2605:2700:0:2:a800:ff:fec7:5c61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "q.saper.info", Issuer "E6" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4crlNV5hrjz44YX; Tue, 21 Oct 2025 21:11:54 +0000 (UTC) (envelope-from saper@saper.info) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=saper.info header.s=Sep2014 header.b=EFOVPdcC; dmarc=none; spf=none (mx1.freebsd.org: domain of saper@saper.info has no SPF policy when checking 2605:2700:0:2:a800:ff:fec7:5c61) smtp.mailfrom=saper@saper.info Received: from q.saper.info (localhost [127.0.0.1]) by q.saper.info (8.18.1/8.18.1) with ESMTPS id 59LLBrXk044923 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 21 Oct 2025 21:11:54 GMT (envelope-from saper@saper.info) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=saper.info; s=Sep2014; t=1761081114; bh=jhTlIxRkKPMX+Us+/PIVscdwAybYzTMNaFNNMC6KRms=; h=Date:From:To:cc:Subject:In-Reply-To:References; b=EFOVPdcCaiCzWpRD/QIEs0ZKJx0yZ+jUlBVs6Nu+wJ4FxM68Z+waJ1argyiYDBSta myerwvX2U/HRQ1oKJ7Y0CO60IZljLv473FfV7Zj19R4EQcrUZ8/thPJudhwmL4pL6L kVXgY5QRCZEavOFPrgidQhwiKRZmxMNc1A1BFaSY= Received: from localhost (saper@localhost) by q.saper.info (8.18.1/8.18.1/Submit) with ESMTP id 59LLBrTW044920; Tue, 21 Oct 2025 21:11:53 GMT (envelope-from saper@saper.info) X-Authentication-Warning: q.saper.info: saper owned process doing -bs Date: Tue, 21 Oct 2025 21:11:53 +0000 From: Marcin Cieslak To: Lexi Winter cc: Olivier Certner , fs@freebsd.org, current@freebsd.org Subject: Re: openat("./...", O_CREAT) fails even though the directory exists In-Reply-To: Message-ID: References: <2507674.THHZn3L5Ee@ravel> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="2201072851-494370640-1761081113=:62059" X-Spamd-Bar: ----- X-Spamd-Result: default: False [-5.40 / 15.00]; SIGNED_SMIME(-2.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; R_DKIM_ALLOW(-0.20)[saper.info:s=Sep2014]; MIME_GOOD(-0.20)[multipart/signed,text/plain]; R_SPF_NA(0.00)[no SPF record]; ARC_NA(0.00)[]; HAS_ATTACHMENT(0.00)[]; ASN(0.00)[asn:47066, ipnet:2605:2700::/32, country:US]; MIME_TRACE(0.00)[0:+,1:+,2:~]; MISSING_XM_UA(0.00)[]; TO_DN_SOME(0.00)[]; DMARC_NA(0.00)[saper.info]; RECEIVED_HELO_LOCALHOST(0.00)[]; MLMMJ_DEST(0.00)[fs@freebsd.org,current@freebsd.org]; FROM_HAS_DN(0.00)[]; HAS_XAW(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; FROM_EQ_ENVFROM(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; RCVD_TLS_LAST(0.00)[]; DKIM_TRACE(0.00)[saper.info:+] X-Rspamd-Queue-Id: 4crlNV5hrjz44YX --2201072851-494370640-1761081113=:62059 Content-Type: text/plain; charset=US-ASCII; format=flowed On Mon, 13 Oct 2025, Lexi Winter wrote: > after some more debugging, i think what's going on here is that pkg(8) > is deleting and recreating /var/spool/mqueue on upgrade, which means > smmsp's open fd to that directory is no longer valid, and therefore > openat() returns this unusual error. (leaving the restart discussion on a side) I think mail spool queues should be left untouched by pkg(8). There might be some mail there waiting to be sent. Marcin --2201072851-494370640-1761081113=:62059 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: BASE64 Content-Description: S/MIME Cryptographic Signature Content-Disposition: attachment; filename=smime.p7s MIIOdgYJKoZIhvcNAQcCoIIOZzCCDmMCAQExDzANBglghkgBZQMEAgEFADAL BgkqhkiG9w0BBwGgggq9MIIEvDCCA6SgAwIBAgIQeEqpEhjRpCYIUTzTZlVD ozANBgkqhkiG9w0BAQsFADBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3Qg Q0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs U2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yOTAzMTgwMDAwMDBaMFsxCzAJBgNV BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMSBDQSAyMDIwMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvxvJBqEapaux2/z3J7fFslRO WjKVJ5rCMfWGsg17dmD7NSnG7Spoa8d3htXsls1IMxoO8PyouQajNQqYmlYo xinlqenMNv7CJyEKMOAtglBmD6C/QC7kT+dSx4HfSTs8xmv8veJOldMzF8S/ BEn/tD4w/Dvpg+oXOqDyOiHPTacRFK0QHoq5eEbBmVS8W0rwcaRotO9fGTA+ NjF0My7GLRNK0eMPGh2hcPZURQhXy7wRQ8XFIfEA6kaQHHN22ncnVtwqiTmA wTR+4GNNVinG3KjNZLAVSnGrdCvT2I4Zo19hKy5PX6o7wrVXvMR4zV5VBFwV 6ZDM+xewao7Mup+SbwIDAQABo4IBiTCCAYUwDgYDVR0PAQH/BAQDAgGGMB0G A1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDASBgNVHRMBAf8ECDAGAQH/ AgEAMB0GA1UdDgQWBBSFu/DMxDa1CmJ2o5kuj7s6aq3FUTAfBgNVHSMEGDAW gBSP8Et/qC5FJK5NUPpjmove4t0bvDB6BggrBgEFBQcBAQRuMGwwLQYIKwYB BQUHMAGGIWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMzA7Bggr BgEFBQcwAoYvaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQv cm9vdC1yMy5jcnQwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i YWxzaWduLmNvbS9yb290LXIzLmNybDBMBgNVHSAERTBDMEEGCSsGAQQBoDIB KDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9y ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWWtqju12g524FdD2HwUX U1rSxeM5aSU1cUC1V/xBjXW0IjA7/3/vG2cietPPP/g3lpoQePVJpQAKZml8 1fHwPPivFK9Ja41jJkgqGzkORSC0xYkh2gGeQg1JVaCzcrRzJElRjT442m6F pbLHCebxIHLu0WBNjLZreB6MYMaqdPL6ItbXtD/BU4k517cEuUbczoBFZAra jq7oUBWXuroln5AMnRwVNwgJN4Np0s4kkJ94KepzbFOLzcbnfUB0+xT4foXm bM0GmmcPGOy0qvqEHJsBwDZXDxIk8oqCnnLngi7N94Sn4eTcmpZ9NH2dDN1O TEPVXgRG5X1pBcNtMWG6MDCCBfkwggThoAMCAQICDCKqoJRMYYx5sYJHGzAN BgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFs U2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMgUGVyc29u YWxTaWduIDEgQ0EgMjAyMDAeFw0yMzAzMDcxNjExMDlaFw0yNjAzMDcxNjEx MDlaMDwxGTAXBgNVBAMMEHNhcGVyQHNhcGVyLmluZm8xHzAdBgkqhkiG9w0B CQEWEHNhcGVyQHNhcGVyLmluZm8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw ggIKAoICAQC8MB3fTYVrTadH5qE2CIa4VLvlL6QHgDriMRLkTA49SPszYCO0 fZTEpdSw8fc6kK9p2fD63LAfOHeD7jzey5aHBzpIGlxeFkn0Ce2BCYY5yLxK i9byoCwrpLchTR1Itpk1w+zy5E4T9KBTL1+c+w+TKpaIvFLXtjZtz4wQGi0p e/nRkRK9htGG3mETh+APitedl+ImGaI8NK9PELxuSkXnYAvGPpnXir8vbszk tJU1b0TevL/i3Sy6fhOhunZmTo1QDM7Zw4UyVjkQgTvL3y4I0tIrVjlam08x XZeMp+i/Gl51eHGvRVfvdJUJAjrWhrFEp8+2FZouWxWzAlHdd2sRp1AekNdP CeRgHeIF6uNtSseL1grKAjU+4BiixWPp1y1niB0humoQHoub/6fO/mU+//rW l3gTwZNu4FuKgZlfPw+qnvuka0c9dUNIZRCE5z8yXjS8R9yZWirnHNhYxf/e R2y4jaiHzPAjZlZZ2rGx8xVfB2n2JsAicj2+ZxmXlQ1yd5RW1pfxG3cdNNC5 uZ+j4JIN2ElsIjEKmMn9gHdoaEMAy/ENwNiMDBadLnc8qWirq/Ktp2dBSf2y /sH9xMpVyk8wuYjpbCnX4xslAensno5A20MYdKGPRFaItEhNPNbfzc1+4br8 exoXFX1F9ZJK9gGUO2nLbdRycphdyzxzgQIDAQABo4IB2jCCAdYwDgYDVR0P AQH/BAQDAgWgMIGjBggrBgEFBQcBAQSBljCBkzBOBggrBgEFBQcwAoZCaHR0 cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyM3BlcnNv bmFsc2lnbjFjYTIwMjAuY3J0MEEGCCsGAQUFBzABhjVodHRwOi8vb2NzcC5n bG9iYWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWduMWNhMjAyMDBMBgNV HSAERTBDMEEGCSsGAQQBoDIBKDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3 dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1Ud HwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2Ny M3BlcnNvbmFsc2lnbjFjYTIwMjAuY3JsMBsGA1UdEQQUMBKBEHNhcGVyQHNh cGVyLmluZm8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB8GA1Ud IwQYMBaAFIW78MzENrUKYnajmS6PuzpqrcVRMB0GA1UdDgQWBBTW/RrdlRFR y6MgS7liTThMnQA5ozANBgkqhkiG9w0BAQsFAAOCAQEAAwoUJShHMueocVlD 1+vYJbTTTbk9tabr2L4Iyyy4Btu1d1wwl6d9Yx2N9qaVERWcEeP0aR+NB2B7 xIKl/ZnZVuSxep0Raw4s284a/jSIJlsAi4SJItDCU2VrYJDWxP7MxzZHnzPI MLDoTHXPV18gvYTewoNk5/Yo89Kb0v/GpPTpP2sVdrWLHa4uKUHYrAZ0aByp kNw6lXp6o6DXvXaOd6KDTQN5XhmmHwLnuLceODF1t9gicsZIOY+KAxN6YZ6t EqwN48b4OFMpckDE3fm1iTZRqnEIqUHOKOcoCImkub1woEN0zXDQmLXaZigl uVztWSTM4/fapWLrlHBNxfjs1TGCA30wggN5AgEBMGswWzELMAkGA1UEBhMC QkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNVBAMTKEdsb2Jh bFNpZ24gR0NDIFIzIFBlcnNvbmFsU2lnbiAxIENBIDIwMjACDCKqoJRMYYx5 sYJHGzANBglghkgBZQMEAgEFAKCB5DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN AQcBMBwGCSqGSIb3DQEJBTEPFw0yNTEwMjEyMTExNTNaMC8GCSqGSIb3DQEJ BDEiBCDeI7hJMiU4usWErzmsblU08ZNDhmJ6r8uSb99UN0DR+jB5BgkqhkiG 9w0BCQ8xbDBqMAsGCWCGSAFlAwQBKjALBglghkgBZQMEARYwCwYJYIZIAWUD BAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIB QDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAgAu WFrM0Y0EjSxhc4RA/mxHBtfcx+VLedtl/u0zUH3uL7rpOY1YaYtBFLk3bdEp xTYIKA88g+l5v7M8ahnenJPKM08RFlV4M/5oag01Xx57nsnTOx4GMWPBBuls Rogzc1/Aaq7o3kpVnqQgYjmSUHdx6mT7pTgjctuDTvIyCOH0lX/VVucLFZZH 90e+MVjPzG3xR0vZj7DB6gnkH4kQpSZZYn8QnFUBrcsemQ/Y+L5XnPbHgDzG bWT6NhuOq9DVS3zPYnhq7vAuS6RB421BIMXGa0Yow5KHy7i65uMtQofvaH90 B2l0wfvdDigIJxZUx/2m1Qy21GayRDwJ7iNc+ZzogYVZ/zj5DthXiNL0DOLO V4EV+qi6ko8qkGN6SMSuhK45TfqwdsovyHN75/gKx3kBOFGF1IqgI1RJ/GOL i3fguKLDiSY6AdPjYK9xjQ91awuY/5YlTVFn++bus0EQy7pvwspYJ1hHoyjc mfuABh3ir62VTjONggiqxKn5GnbVBuGrL8HiwmH8ow/NRESfiZwEzzzHyQXN aXwZoU/A64ifiUmcZnM3plVYRUtq7iayryZO1Q1Gr+mlSKpkRuannIWJcT/R UjX8K1r6MJ7o3Z53IsURLepochvPNL1CXtFWGRxRH1T21A56d83ZFDIeybag kYKjHxYVaLk4uNemesNeiw== --2201072851-494370640-1761081113=:62059-- From nobody Tue Oct 21 22:31:27 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crn8Y5yKcz6D7kV for ; Tue, 21 Oct 2025 22:31:41 +0000 (UTC) (envelope-from asomers@gmail.com) Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4crn8Y3wkxz3Hlr for ; Tue, 21 Oct 2025 22:31:41 +0000 (UTC) (envelope-from asomers@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-63c4c346bd9so7399711a12.0 for ; Tue, 21 Oct 2025 15:31:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761085900; x=1761690700; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Q2HUGododKemPYq62RqlOp86ikF59zkDk11Wr+nTkeY=; b=CORmlI8avOj84+Al8K6VQaw1BH6T8HkJPJkXQ/MNkOmMEQjv2LUYdQZ/nr8RJLwQw4 n8ffJF/YZsNwJJTogQz4Af3eOduRwO4Ww13SEiItfqD/6oQ4BA82OM3i4eb3i/b5yJeH G4kcSrSKR7Y999IMWJyHo/6pZOcaEAm6iakFoxma35Xf9GRvBVzx3qYLG4O7OLpPQDbC dJxhgTUmTsjP9Y3XiBJ0/iKJYk0eNMM+1OvOIwM9QjCejs+GRwZUCr19WLazvL7akk4+ skfdg/sWHmOge4Yt94dncB62sVz84iFwVnAiXZ3L22cOiyOpPAVhfBF+6lq4GFv67GRe hJGQ== X-Gm-Message-State: AOJu0YycmKPTbg3gXSPk2VEREdY3AiU+JzUfV2UCv2dlM+W1mRnotPaJ nFOlRDtFYGrfmJhdCxuMixP6igymp2OHEiwcCY4GLaHXbq7cdLV7ItC3XSD8k1MIuRTXaZHmMPy 1K/igEZ1hossylyNze8ptoiwejZGBEagsPA== X-Gm-Gg: ASbGnctCWpbscKrR5mexk3yM8AgcN4MVFlMnsqvcGpE6ZhfqlxW3xfX6kHKGRqpCGuG /2Ez0dlJ33+qWsnJ0IyHR3JxuxlakaOwa4bLIyYErk0PwExdBPRA2Bc93eXFfTKt5peHgx5JK88 6o2j9rfTz+xLKiOBpDU7E+mtQ5jVUtGsqJnHcfyLYcLqZ3zxk+iyPt4aWFUXozRz5YipVS+DZ84 iUDTEGJcYz1B5LPmUt6hhfbe0MWilJRZJml1RpPqchgTMqI/9oJU6ZJ0wHin0xBUWaZYDg= X-Google-Smtp-Source: AGHT+IG2pd+OYqQKJdSXoSfAb6xtEbyHDxy3dSXMkGtlXGyXWo3yHZPypfCuyt8Z/v89Gt/g6HL3Ro82ElmQnSD3rYs= X-Received: by 2002:a05:6402:2354:b0:639:dd3f:f27f with SMTP id 4fb4d7f45d1cf-63c1f626e94mr16752804a12.4.1761085899545; Tue, 21 Oct 2025 15:31:39 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 References: <08428s9n-72o9-28r1-22n6-rn0r885n62q0@fncre.vasb> In-Reply-To: <08428s9n-72o9-28r1-22n6-rn0r885n62q0@fncre.vasb> From: Alan Somers Date: Tue, 21 Oct 2025 16:31:27 -0600 X-Gm-Features: AS18NWAs0EaLZITLvYE8llA1gScX5QGT1ssWqsZGaP41BdZp31PeP6juULaHFGw Message-ID: Subject: Re: usbhid(4) breaks passkeys? To: Marcin Cieslak Cc: FreeBSD Current Content-Type: multipart/alternative; boundary="00000000000076209b0641b2c363" X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4crn8Y3wkxz3Hlr --00000000000076209b0641b2c363 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Oct 21, 2025 at 4:25=E2=80=AFPM Marcin Cieslak w= rote: > Hello, > > I've just noticed that for some time that my USB passkey does not work > in my browser (Firefox). Setting sysctl hw.usb.usbhid.enable=3D0 and > re-attaching > the device (so it gets the "uhid" driver) fixes the problem: > > sbhid0: on > usbus0 > hidbus2: on usbhid0 > (** does not work **) > ugen0.4: at usbus0 (disconnected) > usbhid0: at uhub4, port 1, addr 21 (disconnected) > hidbus2: detached > usbhid0: detached > ugen0.4: at usbus0 > uhid0 on uhub4 > uhid0: on usbu= s0 > (** works **) > > This is an oldish FreeBSD 15 from August... > > Is this a known problem? > > Marcin I'm currently using a Yubikey on FreeBSD 14.3 with usbhid and it works fine. But these things have multiple functions. Maybe usbhid only breaks one. Which function are you using? I'm using PIV and GPG. --00000000000076209b0641b2c363 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, Oct 21, 2025 at 4:25=E2=80=AFPM Marci= n Cieslak <saper@saper.info> = wrote:
Hello,
I've just noticed that for some time that my USB passkey does not work<= br> in my browser (Firefox). Setting sysctl hw.usb.usbhid.enable=3D0 and re-att= aching
the device (so it gets the "uhid" driver) fixes the problem:

sbhid0: <Nitrokey Nitrokey 3, class 239/2, rev 2.10/1.07, addr 21> on= usbus0
hidbus2: <HID bus> on usbhid0
=C2=A0 (** does not work **)
ugen0.4: <Nitrokey Nitrokey 3> at usbus0 (disconnected)
usbhid0: at uhub4, port 1, addr 21 (disconnected)
hidbus2: detached
usbhid0: detached
ugen0.4: <Nitrokey Nitrokey 3> at usbus0
uhid0 on uhub4
uhid0: <Nitrokey Nitrokey 3, class 239/2, rev 2.10/1.07, addr 22> on = usbus0
=C2=A0 (** works **)

This is an oldish FreeBSD 15 from August...

Is this a known problem?

Marcin

I'm currently using a Yubikey on= FreeBSD 14.3 with usbhid and it works fine.=C2=A0 But these things have mu= ltiple functions.=C2=A0 Maybe usbhid only breaks one.=C2=A0 Which function = are you using?=C2=A0 I'm using PIV and GPG.
--00000000000076209b0641b2c363-- From nobody Tue Oct 21 22:41:05 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crnMX5d1fz6D8H2 for ; Tue, 21 Oct 2025 22:41:12 +0000 (UTC) (envelope-from saper@saper.info) Received: from q.saper.info (q.saper.info [IPv6:2605:2700:0:2:a800:ff:fec7:5c61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "q.saper.info", Issuer "E6" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4crnMX34zHz3K8R; Tue, 21 Oct 2025 22:41:12 +0000 (UTC) (envelope-from saper@saper.info) Authentication-Results: mx1.freebsd.org; none Received: from q.saper.info (localhost [127.0.0.1]) by q.saper.info (8.18.1/8.18.1) with ESMTPS id 59LMf6Qe045473 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 21 Oct 2025 22:41:06 GMT (envelope-from saper@saper.info) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=saper.info; s=Sep2014; t=1761086466; bh=KIFp/a7TGxiEcV51YEqUhVPZ0zsvts+0tkZckLe0ltg=; h=Date:From:To:cc:Subject:In-Reply-To:References; b=f5b6wJ9tDf7FmjNFKn573A74YBXmFMTXxsXa+oz3S6kvT8jnz25FKtYCrfq6VXNGy 35EBS7LbRNO63TdH0EWGA+f9XtywHO/5C1z7XKwfE+NTGcA8Klqo7cY0gHDowCqYC2 ZESkR1HbEzGCDH1dXS3lenRK6QziBwu35/MI6+Do= Received: from localhost (saper@localhost) by q.saper.info (8.18.1/8.18.1/Submit) with ESMTP id 59LMf5Cc045470; Tue, 21 Oct 2025 22:41:06 GMT (envelope-from saper@saper.info) X-Authentication-Warning: q.saper.info: saper owned process doing -bs Date: Tue, 21 Oct 2025 22:41:05 +0000 From: Marcin Cieslak To: Alan Somers cc: FreeBSD Current Subject: Re: usbhid(4) breaks passkeys? In-Reply-To: Message-ID: <68s56803-588s-q21n-9937-p6r47345po1q@fncre.vasb> References: <08428s9n-72o9-28r1-22n6-rn0r885n62q0@fncre.vasb> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="2201072851-218862265-1761086466=:62059" X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:47066, ipnet:2605:2700::/32, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4crnMX34zHz3K8R --2201072851-218862265-1761086466=:62059 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8BIT On Tue, 21 Oct 2025, Alan Somers wrote: > On Tue, Oct 21, 2025 at 4:25 PM Marcin Cieslak wrote: > >> Hello, >> >> I've just noticed that for some time that my USB passkey does not work >> in my browser (Firefox). Setting sysctl hw.usb.usbhid.enable=0 and >> re-attaching >> the device (so it gets the "uhid" driver) fixes the problem: >> >> sbhid0: on >> usbus0 >> hidbus2: on usbhid0 >> (** does not work **) >> ugen0.4: at usbus0 (disconnected) >> usbhid0: at uhub4, port 1, addr 21 (disconnected) >> hidbus2: detached >> usbhid0: detached >> ugen0.4: at usbus0 >> uhid0 on uhub4 >> uhid0: on usbus0 >> (** works **) >> >> This is an oldish FreeBSD 15 from August... >> >> Is this a known problem? >> >> Marcin > > > I'm currently using a Yubikey on FreeBSD 14.3 with usbhid and it works > fine. But these things have multiple functions. Maybe usbhid only breaks > one. Which function are you using? I'm using PIV and GPG. GPG works fine (as this is a CCID interface, not HID). FIDO2/Passkey is a different function ... You can try with https://webauthn.io/ Marcin --2201072851-218862265-1761086466=:62059 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: BASE64 Content-Description: S/MIME Cryptographic Signature Content-Disposition: attachment; filename=smime.p7s MIIOdgYJKoZIhvcNAQcCoIIOZzCCDmMCAQExDzANBglghkgBZQMEAgEFADAL BgkqhkiG9w0BBwGgggq9MIIEvDCCA6SgAwIBAgIQeEqpEhjRpCYIUTzTZlVD ozANBgkqhkiG9w0BAQsFADBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3Qg Q0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs U2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yOTAzMTgwMDAwMDBaMFsxCzAJBgNV BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMSBDQSAyMDIwMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvxvJBqEapaux2/z3J7fFslRO WjKVJ5rCMfWGsg17dmD7NSnG7Spoa8d3htXsls1IMxoO8PyouQajNQqYmlYo xinlqenMNv7CJyEKMOAtglBmD6C/QC7kT+dSx4HfSTs8xmv8veJOldMzF8S/ BEn/tD4w/Dvpg+oXOqDyOiHPTacRFK0QHoq5eEbBmVS8W0rwcaRotO9fGTA+ NjF0My7GLRNK0eMPGh2hcPZURQhXy7wRQ8XFIfEA6kaQHHN22ncnVtwqiTmA wTR+4GNNVinG3KjNZLAVSnGrdCvT2I4Zo19hKy5PX6o7wrVXvMR4zV5VBFwV 6ZDM+xewao7Mup+SbwIDAQABo4IBiTCCAYUwDgYDVR0PAQH/BAQDAgGGMB0G A1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDASBgNVHRMBAf8ECDAGAQH/ AgEAMB0GA1UdDgQWBBSFu/DMxDa1CmJ2o5kuj7s6aq3FUTAfBgNVHSMEGDAW gBSP8Et/qC5FJK5NUPpjmove4t0bvDB6BggrBgEFBQcBAQRuMGwwLQYIKwYB BQUHMAGGIWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMzA7Bggr BgEFBQcwAoYvaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQv cm9vdC1yMy5jcnQwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i YWxzaWduLmNvbS9yb290LXIzLmNybDBMBgNVHSAERTBDMEEGCSsGAQQBoDIB KDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9y ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWWtqju12g524FdD2HwUX U1rSxeM5aSU1cUC1V/xBjXW0IjA7/3/vG2cietPPP/g3lpoQePVJpQAKZml8 1fHwPPivFK9Ja41jJkgqGzkORSC0xYkh2gGeQg1JVaCzcrRzJElRjT442m6F pbLHCebxIHLu0WBNjLZreB6MYMaqdPL6ItbXtD/BU4k517cEuUbczoBFZAra jq7oUBWXuroln5AMnRwVNwgJN4Np0s4kkJ94KepzbFOLzcbnfUB0+xT4foXm bM0GmmcPGOy0qvqEHJsBwDZXDxIk8oqCnnLngi7N94Sn4eTcmpZ9NH2dDN1O TEPVXgRG5X1pBcNtMWG6MDCCBfkwggThoAMCAQICDCKqoJRMYYx5sYJHGzAN BgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFs U2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMgUGVyc29u YWxTaWduIDEgQ0EgMjAyMDAeFw0yMzAzMDcxNjExMDlaFw0yNjAzMDcxNjEx MDlaMDwxGTAXBgNVBAMMEHNhcGVyQHNhcGVyLmluZm8xHzAdBgkqhkiG9w0B CQEWEHNhcGVyQHNhcGVyLmluZm8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw ggIKAoICAQC8MB3fTYVrTadH5qE2CIa4VLvlL6QHgDriMRLkTA49SPszYCO0 fZTEpdSw8fc6kK9p2fD63LAfOHeD7jzey5aHBzpIGlxeFkn0Ce2BCYY5yLxK i9byoCwrpLchTR1Itpk1w+zy5E4T9KBTL1+c+w+TKpaIvFLXtjZtz4wQGi0p e/nRkRK9htGG3mETh+APitedl+ImGaI8NK9PELxuSkXnYAvGPpnXir8vbszk tJU1b0TevL/i3Sy6fhOhunZmTo1QDM7Zw4UyVjkQgTvL3y4I0tIrVjlam08x XZeMp+i/Gl51eHGvRVfvdJUJAjrWhrFEp8+2FZouWxWzAlHdd2sRp1AekNdP CeRgHeIF6uNtSseL1grKAjU+4BiixWPp1y1niB0humoQHoub/6fO/mU+//rW l3gTwZNu4FuKgZlfPw+qnvuka0c9dUNIZRCE5z8yXjS8R9yZWirnHNhYxf/e R2y4jaiHzPAjZlZZ2rGx8xVfB2n2JsAicj2+ZxmXlQ1yd5RW1pfxG3cdNNC5 uZ+j4JIN2ElsIjEKmMn9gHdoaEMAy/ENwNiMDBadLnc8qWirq/Ktp2dBSf2y /sH9xMpVyk8wuYjpbCnX4xslAensno5A20MYdKGPRFaItEhNPNbfzc1+4br8 exoXFX1F9ZJK9gGUO2nLbdRycphdyzxzgQIDAQABo4IB2jCCAdYwDgYDVR0P AQH/BAQDAgWgMIGjBggrBgEFBQcBAQSBljCBkzBOBggrBgEFBQcwAoZCaHR0 cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyM3BlcnNv bmFsc2lnbjFjYTIwMjAuY3J0MEEGCCsGAQUFBzABhjVodHRwOi8vb2NzcC5n bG9iYWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWduMWNhMjAyMDBMBgNV HSAERTBDMEEGCSsGAQQBoDIBKDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3 dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1Ud HwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2Ny M3BlcnNvbmFsc2lnbjFjYTIwMjAuY3JsMBsGA1UdEQQUMBKBEHNhcGVyQHNh cGVyLmluZm8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB8GA1Ud IwQYMBaAFIW78MzENrUKYnajmS6PuzpqrcVRMB0GA1UdDgQWBBTW/RrdlRFR y6MgS7liTThMnQA5ozANBgkqhkiG9w0BAQsFAAOCAQEAAwoUJShHMueocVlD 1+vYJbTTTbk9tabr2L4Iyyy4Btu1d1wwl6d9Yx2N9qaVERWcEeP0aR+NB2B7 xIKl/ZnZVuSxep0Raw4s284a/jSIJlsAi4SJItDCU2VrYJDWxP7MxzZHnzPI MLDoTHXPV18gvYTewoNk5/Yo89Kb0v/GpPTpP2sVdrWLHa4uKUHYrAZ0aByp kNw6lXp6o6DXvXaOd6KDTQN5XhmmHwLnuLceODF1t9gicsZIOY+KAxN6YZ6t EqwN48b4OFMpckDE3fm1iTZRqnEIqUHOKOcoCImkub1woEN0zXDQmLXaZigl uVztWSTM4/fapWLrlHBNxfjs1TGCA30wggN5AgEBMGswWzELMAkGA1UEBhMC QkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNVBAMTKEdsb2Jh bFNpZ24gR0NDIFIzIFBlcnNvbmFsU2lnbiAxIENBIDIwMjACDCKqoJRMYYx5 sYJHGzANBglghkgBZQMEAgEFAKCB5DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN AQcBMBwGCSqGSIb3DQEJBTEPFw0yNTEwMjEyMjQxMDVaMC8GCSqGSIb3DQEJ BDEiBCDP7eCCmIb0I1guYoNsvLHh033Wn8vIQYaA2YhHEi2QaDB5BgkqhkiG 9w0BCQ8xbDBqMAsGCWCGSAFlAwQBKjALBglghkgBZQMEARYwCwYJYIZIAWUD BAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIB QDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAgAe AM9U+Q1EYK+9/BzOnHrUVgFX8vuJJtnkzXQm/Hi7V4DVWTBoM+F9YJ5OJKqx Pa6xvnPYlDxebWY3oXONnUqInNU/lImkDOmsV9fR1LQQc6WgpAyEByLgNqB4 xr9xkfyElw9YXx8ReQneO8XWAZ7e9v0e8zx7s7lvd3+JheKaEcDc0mrS59NG tIICi3nIMMa4TNJu3wfeRnEEnRRfspqNNdRy4P83OGJ1kvxlFx/l4jEiC7Dt hkoJ4ezl+fnxPYMnWWZVTCJzOdt/J3QbNguQxn4Kymm3YEdp6bG0f4JoE+3H i6fb31OSbsaYm17vXN4HtKY33DYFKI/BucgLFx3MVtc82hX2iu/deaNdkAS+ Ys16MSMMaKSuLEDlYsUseTaSEMmkfG7i5dOo6yFAKFYESJFZTOEoD9GsOXa3 yIy572zV3YVEQ+OYlew4zvSMia4wfzC1Q81yyGrrWw5sL4Q5FAG29ssnakkJ r7303XhGHAkJjFr1u1Ybd0JK0LpfLqe8U2MRcW1jBJrVe0jMq1j71WmqJGr6 rnCSRzSqq0QDHi9K84NfZdwceW6sKcvEnnqxtyuZ857VA/nnqUSNHdoUW0qL vqQi/Nh2yKjXZa9NRjKNR6OMPafI3GBqE7vQmVXldCwpGPwP8r7u6rtM3wnz 96aD+6v3yoCZWyL+8kjdyg== --2201072851-218862265-1761086466=:62059-- From nobody Tue Oct 21 23:38:38 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crpfD5js6z6DDd0 for ; Tue, 21 Oct 2025 23:39:00 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic310-22.consmr.mail.gq1.yahoo.com (sonic310-22.consmr.mail.gq1.yahoo.com [98.137.69.148]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4crpfD29m7z3Qf3 for ; Tue, 21 Oct 2025 23:39:00 +0000 (UTC) (envelope-from marklmi@yahoo.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yahoo.com header.s=s2048 header.b=pxLsGPBR; dmarc=pass (policy=reject) header.from=yahoo.com; spf=pass (mx1.freebsd.org: domain of marklmi@yahoo.com designates 98.137.69.148 as permitted sender) smtp.mailfrom=marklmi@yahoo.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1761089933; bh=y2lPjBMr/u6yloOoy+/FY0rNNLPV/CBYV3g8vvhNrWk=; h=From:Subject:Date:Cc:To:References:From:Subject:Reply-To; b=pxLsGPBResTZa/BvGkEN8HVDjjD09qPrwZYbsP/xMdNY4UbuRNeQk0MZD5MKYRVe5SkiAZZe8XfI5xHsN4/ODu9Y1pvfqBcrPpijmTymp6D7wHtzlxPl3P2xbDHttkV+dLqP2Q/hY+LNyM0QfQ26lLwf+7wAQW9yubhvBWK8x7BIdmc4iuTOX27wQwZyq/yNDBqavkHWjvabpYduEd1taLsITcYJQiH0LsuQ84UCh+zl9nPYhls6Ji2ognLMlG0UgjidQKA/TTca9IYO9Db/KJIQKTLVZi8FkIfcNANXShb+UAkfp1BdhM82GFxxO57CGEI3hVBtkqxDu+dMppplRw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1761089933; bh=K96NGgAFxjCnavbtAVVyZZJrmzdtKxFwqrSCp947it4=; h=X-Sonic-MF:From:Subject:Date:To:From:Subject; b=uB8GEO6ihLNntwq/rg1OK7p9+i69bCmCWxFXYVmrZ/oamHUW2UBZZFkV8puoBidzt9fR224b4hnK1zXrJalen/M5B9LrUw1+JNXZ4zK1Of8ErRwX5yZGpvATjVl/pbHbEdxSo9pW9s5Xmwyjef2G3ffzJKkqZD82fidm3MAhlf6JiWXWS8zTtsEWR59e0+qc/quBAWU9ryWeiVLmqvKoPEoqPZTgw0phE5ErEel8TrzViB8dbcRoUYYgJ+HYntAue5LLUOxIeH06J4vGzsCX4n0If9fzBTuyzuAt3UhZH2w4hIAJabBqJefYORtHyElNvhwCuT//rybf/x/wOJyVPg== X-YMail-OSG: G8lTjJcVM1mMXPp4RSv07ui.qzJSJ413GqUea7s2rL3gmkWVCQu2rXXCsJZXq7m xevH4VpvoSpDtIb.RDWLXjY7hDxqEf3.NoNo11uavpksWzo4.AdjpM5cW_DGkUUOOwTStXfih02d 2A7oLLsPN5Y3PlL3uVer2qZkx9sXqSkiZaVR9Nw3aekcs202lUnpD9ERFtS4xRsyMNEyf1kQIg8Q sBJVytqmkBqdOHA8Px6MjlextQXfusgmjpuux9ZKhHCLG7GsaxYAs8xuT2GaGCkT0tVYs5eZGGaf nElr7DUvMQTR.LmYyXMJuv6.dWYnoDQsAkXrliDjnrGq96TOAwylXG07TLoNNmKEEtk0bFvGWXPh FQH6dQXUf7RL9J6dzdtL_L0B_rv.BwS3Vby.ZwxTAgRGZLJTGOYIz.G_wfs2qy6i3qbv8IUovKGx xaRtfo69oWrBTH_RIH6jERWbiQhmZ9InRu4oZzcRJq4inZmTJ6fMYMhtRNBkW7kmTFSxBXb8JoKm l1YvRFUlJ7BUhbzmxtwkR0X2wIa0M_EBsgV4AgZlOH3mj.SMOFxfdlbX0Vf9cHKR80W2gnVnkeM8 NVDHLOUDMLt8rj8TqWcAJwdooOcUGbdUppNfI8cwmo2KNMfoiJiN1yVol2gs8AnGEk1szweB3SCI yZknfOTbmD2u.oTqaU2gEJLcvbPDnFNO3ezFBLcfdigGBmO3Rnvm9GqnPtPDUIoEY0.K9IU4hnQC QsYrJ5iwxLnpqK2wb2gSDX5.kQDk.m21o9CwMPnfZdmc_wBZUFa5GzqC9MJqlm5Csj_KxoYhL9lC wV4SUHVcTalmtaZK824l.sb6OUSP70Y8dDNSwEoIFEohPbR9gCSVt4.2QahzwbV1PWM47pcmWiMF 2RXoPXR8sBa1dckuScXNFBsysvT.n66viiDN_A_RmPEIY9QFYcSqRzVutQ8AappQzUF.Z2sfXgmd HiE3KuZsv.nsZCU0EVTAELbgvc9OuYJp25CirSdDRSptBfltFMjGhRFFORvOubw2TOhtfXhiREIf tywHtBmDqaxUNWXZzGkyJQDEOg5MkweiimDsNDZzd5Hx9XzQVNQBLtApi5A96KJ.88XJYJcEn4Fz 4v_Pci8UHkk2JX8Z.4R_15tcgNPFoJjUIJT310PhKaJnuKDErjFCDVtJ4Uh58116ZFIBnoGnZk9q R38kKNxTNJwZt7o93SV3dTSlcBT9Jg3dXwVkk9987H5HBFgEWQeB3qQ.5MgRYp1kC6W7cznkM79y X3MOtWA.20YihUIX4Ays69bakhRfJK0xS5pjbt4hqCVe_9yms0v4_AQvv7kejN6Thpqy0ON9yl97 rLNgk1J9glcnm6.Qj2EZZ88QBd9kUCetHx2wncugoF8nZI2SuYesmxihfwdJ2tAskDPrE9nLefHK 6aUT_JdgXiaa.ZGRyq.cTecVF3gR5tiWKt1bfCsK6wf8Pu92p7Xm77MV2_lwx0TNRHbNYZ_UATaJ U4yGBeQ4HDkKY_9WOnJc1LgOCkWcaALfgrWPI7ac5rqGzk6NX8OID.5ZkCxJ2BKfzjm5rv7cqjey j4ituQaxgA5DAOvtKiXPnUJ6MqylnjXaN9Mzbte_Q2igYt860lY6TWelH9eIdJXUCi82vUB8f014 1CQCtN3Cj12ok58CGkAB_tFz49aIPKABNy_KBpdK8c2Ld40VXWglUIQQ8PcvPb2lmu1XR9mVyNO7 J6lr_JBY0yefMaTb.55FAE0GX96XsiKC2Z4TmzgH4I4c0JccfWX1hYHqEzL76x51e9RAhcNp5Bzm 67mDWwAbZeN.AqQ4vTqHk7161o0EKWqQ_X1_ZfaP6t2klj5XPFdx3VBYtmiZETA3b7MLePpgan21 2GNH8FIAqaKHskYN4GPMCm6QOGGKdREyT1cIqB1TOlwxzn1DpjrkfiSc.fu4Hx1hK9KYL_kambRU tHfMu17QNTUW.r1hPEdIpSFwCbmvXG1pmbN8SvpxGMxW9Lk3beHJRJhBfAhkGxXkfacUuDACRAQA I0P.SB1q5S336nbp1BWWM00qmjwcrvhcBZxdBIxaB_mNKWuZPrwVOdPv0nm85_XqvxPOGlUBqsi3 GnjGI4P61vgvVqe0Z75c.OodZ4TcPVD6EEAzzojTt16QSdbe0oFW81piplzTw9sKtab5IpITfA_M cRTQJfgd6bZiyK2OT6RMBkiMpj82r56r8RfhHZAD9WBtBlnJRQecPC7VfCqMmdcC1aVFs4TFoXkC wEFI6Wo2gXKrZ1PRpU6sDWgxyY23_DqJUhZzuowAB3AXrFo9eDuL9uW4oiJNNw8.MTimx094cm.E B5WYR7mL1.7bfZxYEX96jDsNpmTztyV4- X-Sonic-MF: X-Sonic-ID: fadcfc1e-a298-496f-8826-358985ab8f30 Received: from sonic.gate.mail.ne1.yahoo.com by sonic310.consmr.mail.gq1.yahoo.com with HTTP; Tue, 21 Oct 2025 23:38:53 +0000 Received: by hermes--production-gq1-6b8576c5cf-6dsfz (Yahoo Inc. Hermes SMTP Server) with ESMTPA ID a00542cfb934fb0bd697bef1c922bbe6; Tue, 21 Oct 2025 23:38:49 +0000 (UTC) From: Mark Millard Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.700.81\)) Subject: RE: usbhid(4) breaks passkeys? Message-Id: <30520EB7-086A-4549-9874-4CB362B8E0C6@yahoo.com> Date: Tue, 21 Oct 2025 16:38:38 -0700 Cc: FreeBSD-STABLE Mailing List To: Marcin Cieslak , FreeBSD Current X-Mailer: Apple Mail (2.3826.700.81) References: <30520EB7-086A-4549-9874-4CB362B8E0C6.ref@yahoo.com> X-Spamd-Bar: -- X-Spamd-Result: default: False [-2.99 / 15.00]; SUBJECT_ENDS_QUESTION(1.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-0.998]; NEURAL_HAM_SHORT(-1.00)[-0.998]; NEURAL_HAM_LONG(-1.00)[-0.996]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MIME_GOOD(-0.10)[text/plain]; DKIM_TRACE(0.00)[yahoo.com:+]; TO_DN_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com:dkim]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_FROM(0.00)[yahoo.com]; MIME_TRACE(0.00)[0:+]; RCPT_COUNT_THREE(0.00)[3]; RCVD_VIA_SMTP_AUTH(0.00)[]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:36647, ipnet:98.137.64.0/20, country:US]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; APPLE_MAILER_COMMON(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; RWL_MAILSPIKE_POSSIBLE(0.00)[98.137.69.148:from]; RCVD_IN_DNSWL_NONE(0.00)[98.137.69.148:from] X-Rspamd-Queue-Id: 4crpfD29m7z3Qf3 Marcin Cieslak wrote on Date: Tue, 21 Oct 2025 21:07:44 UTC : > I've just noticed that for some time that my USB passkey does not work > in my browser (Firefox). Setting sysctl hw.usb.usbhid.enable=3D0 and = re-attaching > the device (so it gets the "uhid" driver) fixes the problem: >=20 > sbhid0: on = usbus0 > hidbus2: on usbhid0 > (** does not work **) > ugen0.4: at usbus0 (disconnected) > usbhid0: at uhub4, port 1, addr 21 (disconnected) > hidbus2: detached > usbhid0: detached > ugen0.4: at usbus0 > uhid0 on uhub4 > uhid0: on = usbus0 > (** works **) >=20 > This is an oldish FreeBSD 15 from August... Before vs. after: QUOTE A commit in branch main references this bug: URL: = https://cgit.FreeBSD.org/src/commit/?id=3D1685192ea1faac28f2d4feede53e70b6= a380500f commit 1685192ea1faac28f2d4feede53e70b6a380500f Author: ShengYi Hung AuthorDate: 2025-08-21 17:59:15 +0000 Commit: ShengYi Hung CommitDate: 2025-08-23 04:50:09 +0000 hkbd: remove erorr detection in KDSKBSTATE ioctl . . . END QUOTE If before, you may want to test after. If after, you may want to report that fact. > Is this a known problem? =3D=3D=3D Mark Millard marklmi at yahoo.com From nobody Tue Oct 21 23:42:38 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crpkY2HZ9z6DDpY for ; Tue, 21 Oct 2025 23:42:45 +0000 (UTC) (envelope-from saper@saper.info) Received: from q.saper.info (q.saper.info [IPv6:2605:2700:0:2:a800:ff:fec7:5c61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "q.saper.info", Issuer "E6" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4crpkX6wTDz3Sg3 for ; Tue, 21 Oct 2025 23:42:44 +0000 (UTC) (envelope-from saper@saper.info) Authentication-Results: mx1.freebsd.org; none Received: from q.saper.info (localhost [127.0.0.1]) by q.saper.info (8.18.1/8.18.1) with ESMTPS id 59LNgcno045856 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Tue, 21 Oct 2025 23:42:38 GMT (envelope-from saper@saper.info) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=saper.info; s=Sep2014; t=1761090158; bh=fxNLkUx662iHYrcEomsmwPrnwO0+4HmTq9fzk9wQSPI=; h=Date:From:To:cc:Subject:In-Reply-To:References; b=KK1toi4l5Ys1rOXBViAlttEdL2g8P5GrO59jJOn0H7XEJanhXJhMZSBhyGjoLGRYH PikpSjyWB5UOnXx07svzn/uQHukbhwVEBS78f+1ETtnonUlTkhooSfEp0hY0mQKMyv ulF9kZqI4MkGqEp3b0xUSKxMvQTs6B2q8h+09YXo= Received: from localhost (saper@localhost) by q.saper.info (8.18.1/8.18.1/Submit) with ESMTP id 59LNgca5045853; Tue, 21 Oct 2025 23:42:38 GMT (envelope-from saper@saper.info) X-Authentication-Warning: q.saper.info: saper owned process doing -bs Date: Tue, 21 Oct 2025 23:42:38 +0000 From: Marcin Cieslak To: Sulev-Madis Silber cc: freebsd-current@freebsd.org Subject: Re: text buffer size in boot In-Reply-To: Message-ID: References: <696264F7-5182-421A-8511-9B3AE250F861@ketas.si.pri.ee> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="2201072851-1681334036-1761090158=:62059" X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4crpkX6wTDz3Sg3 --2201072851-1681334036-1761090158=:62059 Content-Type: text/plain; format=flowed; charset=US-ASCII Maybe switching the loader to "comconsole" works? What is the real serial device behind your console? https://lists.freebsd.org/archives/freebsd-current/2024-September/006455.html For one of my boards eficonsole pauses the boot loader IF anything is connected to it : https://lists.freebsd.org/archives/freebsd-arm/2023-March/002433.html Maybe switching to the com console early can work for you... Marcin --2201072851-1681334036-1761090158=:62059 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: BASE64 Content-Description: S/MIME Cryptographic Signature Content-Disposition: attachment; filename=smime.p7s MIIOdgYJKoZIhvcNAQcCoIIOZzCCDmMCAQExDzANBglghkgBZQMEAgEFADAL BgkqhkiG9w0BBwGgggq9MIIEvDCCA6SgAwIBAgIQeEqpEhjRpCYIUTzTZlVD ozANBgkqhkiG9w0BAQsFADBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3Qg Q0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs U2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yOTAzMTgwMDAwMDBaMFsxCzAJBgNV BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMSBDQSAyMDIwMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvxvJBqEapaux2/z3J7fFslRO WjKVJ5rCMfWGsg17dmD7NSnG7Spoa8d3htXsls1IMxoO8PyouQajNQqYmlYo xinlqenMNv7CJyEKMOAtglBmD6C/QC7kT+dSx4HfSTs8xmv8veJOldMzF8S/ BEn/tD4w/Dvpg+oXOqDyOiHPTacRFK0QHoq5eEbBmVS8W0rwcaRotO9fGTA+ NjF0My7GLRNK0eMPGh2hcPZURQhXy7wRQ8XFIfEA6kaQHHN22ncnVtwqiTmA wTR+4GNNVinG3KjNZLAVSnGrdCvT2I4Zo19hKy5PX6o7wrVXvMR4zV5VBFwV 6ZDM+xewao7Mup+SbwIDAQABo4IBiTCCAYUwDgYDVR0PAQH/BAQDAgGGMB0G A1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDASBgNVHRMBAf8ECDAGAQH/ AgEAMB0GA1UdDgQWBBSFu/DMxDa1CmJ2o5kuj7s6aq3FUTAfBgNVHSMEGDAW gBSP8Et/qC5FJK5NUPpjmove4t0bvDB6BggrBgEFBQcBAQRuMGwwLQYIKwYB BQUHMAGGIWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMzA7Bggr BgEFBQcwAoYvaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQv cm9vdC1yMy5jcnQwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i YWxzaWduLmNvbS9yb290LXIzLmNybDBMBgNVHSAERTBDMEEGCSsGAQQBoDIB KDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9y ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWWtqju12g524FdD2HwUX U1rSxeM5aSU1cUC1V/xBjXW0IjA7/3/vG2cietPPP/g3lpoQePVJpQAKZml8 1fHwPPivFK9Ja41jJkgqGzkORSC0xYkh2gGeQg1JVaCzcrRzJElRjT442m6F pbLHCebxIHLu0WBNjLZreB6MYMaqdPL6ItbXtD/BU4k517cEuUbczoBFZAra jq7oUBWXuroln5AMnRwVNwgJN4Np0s4kkJ94KepzbFOLzcbnfUB0+xT4foXm bM0GmmcPGOy0qvqEHJsBwDZXDxIk8oqCnnLngi7N94Sn4eTcmpZ9NH2dDN1O TEPVXgRG5X1pBcNtMWG6MDCCBfkwggThoAMCAQICDCKqoJRMYYx5sYJHGzAN BgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFs U2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMgUGVyc29u YWxTaWduIDEgQ0EgMjAyMDAeFw0yMzAzMDcxNjExMDlaFw0yNjAzMDcxNjEx MDlaMDwxGTAXBgNVBAMMEHNhcGVyQHNhcGVyLmluZm8xHzAdBgkqhkiG9w0B CQEWEHNhcGVyQHNhcGVyLmluZm8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw ggIKAoICAQC8MB3fTYVrTadH5qE2CIa4VLvlL6QHgDriMRLkTA49SPszYCO0 fZTEpdSw8fc6kK9p2fD63LAfOHeD7jzey5aHBzpIGlxeFkn0Ce2BCYY5yLxK i9byoCwrpLchTR1Itpk1w+zy5E4T9KBTL1+c+w+TKpaIvFLXtjZtz4wQGi0p e/nRkRK9htGG3mETh+APitedl+ImGaI8NK9PELxuSkXnYAvGPpnXir8vbszk tJU1b0TevL/i3Sy6fhOhunZmTo1QDM7Zw4UyVjkQgTvL3y4I0tIrVjlam08x XZeMp+i/Gl51eHGvRVfvdJUJAjrWhrFEp8+2FZouWxWzAlHdd2sRp1AekNdP CeRgHeIF6uNtSseL1grKAjU+4BiixWPp1y1niB0humoQHoub/6fO/mU+//rW l3gTwZNu4FuKgZlfPw+qnvuka0c9dUNIZRCE5z8yXjS8R9yZWirnHNhYxf/e R2y4jaiHzPAjZlZZ2rGx8xVfB2n2JsAicj2+ZxmXlQ1yd5RW1pfxG3cdNNC5 uZ+j4JIN2ElsIjEKmMn9gHdoaEMAy/ENwNiMDBadLnc8qWirq/Ktp2dBSf2y /sH9xMpVyk8wuYjpbCnX4xslAensno5A20MYdKGPRFaItEhNPNbfzc1+4br8 exoXFX1F9ZJK9gGUO2nLbdRycphdyzxzgQIDAQABo4IB2jCCAdYwDgYDVR0P AQH/BAQDAgWgMIGjBggrBgEFBQcBAQSBljCBkzBOBggrBgEFBQcwAoZCaHR0 cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyM3BlcnNv bmFsc2lnbjFjYTIwMjAuY3J0MEEGCCsGAQUFBzABhjVodHRwOi8vb2NzcC5n bG9iYWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWduMWNhMjAyMDBMBgNV HSAERTBDMEEGCSsGAQQBoDIBKDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3 dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1Ud HwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2Ny M3BlcnNvbmFsc2lnbjFjYTIwMjAuY3JsMBsGA1UdEQQUMBKBEHNhcGVyQHNh cGVyLmluZm8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB8GA1Ud IwQYMBaAFIW78MzENrUKYnajmS6PuzpqrcVRMB0GA1UdDgQWBBTW/RrdlRFR y6MgS7liTThMnQA5ozANBgkqhkiG9w0BAQsFAAOCAQEAAwoUJShHMueocVlD 1+vYJbTTTbk9tabr2L4Iyyy4Btu1d1wwl6d9Yx2N9qaVERWcEeP0aR+NB2B7 xIKl/ZnZVuSxep0Raw4s284a/jSIJlsAi4SJItDCU2VrYJDWxP7MxzZHnzPI MLDoTHXPV18gvYTewoNk5/Yo89Kb0v/GpPTpP2sVdrWLHa4uKUHYrAZ0aByp kNw6lXp6o6DXvXaOd6KDTQN5XhmmHwLnuLceODF1t9gicsZIOY+KAxN6YZ6t EqwN48b4OFMpckDE3fm1iTZRqnEIqUHOKOcoCImkub1woEN0zXDQmLXaZigl uVztWSTM4/fapWLrlHBNxfjs1TGCA30wggN5AgEBMGswWzELMAkGA1UEBhMC QkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNVBAMTKEdsb2Jh bFNpZ24gR0NDIFIzIFBlcnNvbmFsU2lnbiAxIENBIDIwMjACDCKqoJRMYYx5 sYJHGzANBglghkgBZQMEAgEFAKCB5DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN AQcBMBwGCSqGSIb3DQEJBTEPFw0yNTEwMjEyMzQyMzhaMC8GCSqGSIb3DQEJ BDEiBCDmD/kOZJUiuCDHFFyrI26yE9WlESJarfxClUiskW7tmjB5BgkqhkiG 9w0BCQ8xbDBqMAsGCWCGSAFlAwQBKjALBglghkgBZQMEARYwCwYJYIZIAWUD BAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIB QDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAgAJ vhQKABfdt86kOK8ZpFi5h6pRc1Il2xwmtzZ5LuLnsCGRQ8vxYOMAbHLY9JvL dOKCLbAYjwVK9QQzHhi8mQZGuRPMQU3U0kkI1YbouPoNASGIvEWEajDtP8t2 LUI5M2nTO5lH9L0NXx0l5r9+1rinHhvjCY8So+QMcIYsy14qCUy3yADg16i7 OO4+k2AtfRUm9Gle34j4AVAj80QVZA88BzSmu3P++M5WukUtXjGV7ccyKP9c F9ucH9Ls971vjwmUu7exb1htpqtsSZr7ye7iSuDvLWfmM00XLjJs9aYMpG6f PwdKfmqmonqh8GedaoFHofUuFJeMZNFNM+fMvzKStu5FCM6+2EOyZAvqOYIn ufrLXqBEwPKeAhy7SeZOiEoryiDqfdq7pw15EI0YCNy9zeADwC+a2fAaO3sO jc1OHrX6uio0Acn8DVBtuFjTBW1TMhakGTf/cG3fj58SArOTDkgLwkMSaH8+ Cw8Qm6V9TJq2bLrqOc+XZK8+GHhPVK3aGuuwXCv2ijd6SMTKmpzFpf0f2EEv EdJ0FBpvxWqCsk3euEdsEdKgrPXiz2mUzCKE8VYIkmP/i+mU9vrqf44gQyui Qvsz/xJsD4DW/74eV94flYTOLeWx7n6Zj8W9zdNezOFoYy1fTdlZWaLzk3JB XX7Wm6zd9cUzhUyuLODHyg== --2201072851-1681334036-1761090158=:62059-- From nobody Wed Oct 22 00:02:41 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crq9j0rS6z6DGK8; Wed, 22 Oct 2025 00:02:49 +0000 (UTC) (envelope-from saper@saper.info) Received: from q.saper.info (q.saper.info [IPv6:2605:2700:0:2:a800:ff:fec7:5c61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "q.saper.info", Issuer "E6" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4crq9h5LD9z3Vqr; Wed, 22 Oct 2025 00:02:48 +0000 (UTC) (envelope-from saper@saper.info) Authentication-Results: mx1.freebsd.org; none Received: from q.saper.info (localhost [127.0.0.1]) by q.saper.info (8.18.1/8.18.1) with ESMTPS id 59M02fuL045995 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NO); Wed, 22 Oct 2025 00:02:42 GMT (envelope-from saper@saper.info) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=saper.info; s=Sep2014; t=1761091362; bh=wGWDhC3OJOm6/s2juTl69d173h/GvuQ+u/bjW01ipEA=; h=Date:From:To:cc:Subject:In-Reply-To:References; b=owQya+XiQ/IDTIYTSU8US+zf77GSHB1naKBXQ+s85fmagXn6LDbg61B3LrxbQARFi hBmQhhpBBRpeECD0WyBXH1x50gyuYJaot6XCdbL/UelP9gsTGWSDqbxzlHHdIhGTX6 3R4qMunQl/F0XkXGBe5BiiOROtpifW+vdEScHlzw= Received: from localhost (saper@localhost) by q.saper.info (8.18.1/8.18.1/Submit) with ESMTP id 59M02fLM045992; Wed, 22 Oct 2025 00:02:41 GMT (envelope-from saper@saper.info) X-Authentication-Warning: q.saper.info: saper owned process doing -bs Date: Wed, 22 Oct 2025 00:02:41 +0000 From: Marcin Cieslak To: Mark Millard cc: FreeBSD Current , FreeBSD-STABLE Mailing List Subject: RE: usbhid(4) breaks passkeys? In-Reply-To: <30520EB7-086A-4549-9874-4CB362B8E0C6@yahoo.com> Message-ID: <40o188r3-0638-1q09-6o4r-n0pp4514p161@fncre.vasb> References: <30520EB7-086A-4549-9874-4CB362B8E0C6.ref@yahoo.com> <30520EB7-086A-4549-9874-4CB362B8E0C6@yahoo.com> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="2201072851-1648931245-1761091361=:62059" X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4crq9h5LD9z3Vqr --2201072851-1648931245-1761091361=:62059 Content-Type: text/plain; charset=US-ASCII; format=flowed On Tue, 21 Oct 2025, Mark Millard wrote: > Marcin Cieslak wrote on > Date: Tue, 21 Oct 2025 21:07:44 UTC : > >> I've just noticed that for some time that my USB passkey does not work >> in my browser (Firefox). Setting sysctl hw.usb.usbhid.enable=0 and re-attaching >> the device (so it gets the "uhid" driver) fixes the problem: >> >> sbhid0: on usbus0 >> hidbus2: on usbhid0 >> (** does not work **) >> ugen0.4: at usbus0 (disconnected) >> usbhid0: at uhub4, port 1, addr 21 (disconnected) >> hidbus2: detached >> usbhid0: detached >> ugen0.4: at usbus0 >> uhid0 on uhub4 >> uhid0: on usbus0 >> (** works **) >> >> This is an oldish FreeBSD 15 from August... > > Before vs. after: > > QUOTE > A commit in branch main references this bug: > > URL: https://cgit.FreeBSD.org/src/commit/?id=1685192ea1faac28f2d4feede53e70b6a380500f > > commit 1685192ea1faac28f2d4feede53e70b6a380500f I don't have it, but I noticed that https://reviews.freebsd.org/D45659 says "Work on a FIDO/U2F driver and moused(8) is in progress." and multiple changes like https://reviews.freebsd.org/D51605 https://reviews.freebsd.org/D51608 https://reviews.freebsd.org/D51609 https://reviews.freebsd.org/D51612 got merged later in August 2025. Will check what was holding off my update and try again. --2201072851-1648931245-1761091361=:62059 Content-Type: application/pkcs7-signature; name=smime.p7s Content-Transfer-Encoding: BASE64 Content-Description: S/MIME Cryptographic Signature Content-Disposition: attachment; filename=smime.p7s MIIOdgYJKoZIhvcNAQcCoIIOZzCCDmMCAQExDzANBglghkgBZQMEAgEFADAL BgkqhkiG9w0BBwGgggq9MIIEvDCCA6SgAwIBAgIQeEqpEhjRpCYIUTzTZlVD ozANBgkqhkiG9w0BAQsFADBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3Qg Q0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs U2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yOTAzMTgwMDAwMDBaMFsxCzAJBgNV BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMSBDQSAyMDIwMIIBIjAN BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvxvJBqEapaux2/z3J7fFslRO WjKVJ5rCMfWGsg17dmD7NSnG7Spoa8d3htXsls1IMxoO8PyouQajNQqYmlYo xinlqenMNv7CJyEKMOAtglBmD6C/QC7kT+dSx4HfSTs8xmv8veJOldMzF8S/ BEn/tD4w/Dvpg+oXOqDyOiHPTacRFK0QHoq5eEbBmVS8W0rwcaRotO9fGTA+ NjF0My7GLRNK0eMPGh2hcPZURQhXy7wRQ8XFIfEA6kaQHHN22ncnVtwqiTmA wTR+4GNNVinG3KjNZLAVSnGrdCvT2I4Zo19hKy5PX6o7wrVXvMR4zV5VBFwV 6ZDM+xewao7Mup+SbwIDAQABo4IBiTCCAYUwDgYDVR0PAQH/BAQDAgGGMB0G A1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDBDASBgNVHRMBAf8ECDAGAQH/ AgEAMB0GA1UdDgQWBBSFu/DMxDa1CmJ2o5kuj7s6aq3FUTAfBgNVHSMEGDAW gBSP8Et/qC5FJK5NUPpjmove4t0bvDB6BggrBgEFBQcBAQRuMGwwLQYIKwYB BQUHMAGGIWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL3Jvb3RyMzA7Bggr BgEFBQcwAoYvaHR0cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQv cm9vdC1yMy5jcnQwNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i YWxzaWduLmNvbS9yb290LXIzLmNybDBMBgNVHSAERTBDMEEGCSsGAQQBoDIB KDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9y ZXBvc2l0b3J5LzANBgkqhkiG9w0BAQsFAAOCAQEAWWtqju12g524FdD2HwUX U1rSxeM5aSU1cUC1V/xBjXW0IjA7/3/vG2cietPPP/g3lpoQePVJpQAKZml8 1fHwPPivFK9Ja41jJkgqGzkORSC0xYkh2gGeQg1JVaCzcrRzJElRjT442m6F pbLHCebxIHLu0WBNjLZreB6MYMaqdPL6ItbXtD/BU4k517cEuUbczoBFZAra jq7oUBWXuroln5AMnRwVNwgJN4Np0s4kkJ94KepzbFOLzcbnfUB0+xT4foXm bM0GmmcPGOy0qvqEHJsBwDZXDxIk8oqCnnLngi7N94Sn4eTcmpZ9NH2dDN1O TEPVXgRG5X1pBcNtMWG6MDCCBfkwggThoAMCAQICDCKqoJRMYYx5sYJHGzAN BgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJCRTEZMBcGA1UEChMQR2xvYmFs U2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMgUGVyc29u YWxTaWduIDEgQ0EgMjAyMDAeFw0yMzAzMDcxNjExMDlaFw0yNjAzMDcxNjEx MDlaMDwxGTAXBgNVBAMMEHNhcGVyQHNhcGVyLmluZm8xHzAdBgkqhkiG9w0B CQEWEHNhcGVyQHNhcGVyLmluZm8wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw ggIKAoICAQC8MB3fTYVrTadH5qE2CIa4VLvlL6QHgDriMRLkTA49SPszYCO0 fZTEpdSw8fc6kK9p2fD63LAfOHeD7jzey5aHBzpIGlxeFkn0Ce2BCYY5yLxK i9byoCwrpLchTR1Itpk1w+zy5E4T9KBTL1+c+w+TKpaIvFLXtjZtz4wQGi0p e/nRkRK9htGG3mETh+APitedl+ImGaI8NK9PELxuSkXnYAvGPpnXir8vbszk tJU1b0TevL/i3Sy6fhOhunZmTo1QDM7Zw4UyVjkQgTvL3y4I0tIrVjlam08x XZeMp+i/Gl51eHGvRVfvdJUJAjrWhrFEp8+2FZouWxWzAlHdd2sRp1AekNdP CeRgHeIF6uNtSseL1grKAjU+4BiixWPp1y1niB0humoQHoub/6fO/mU+//rW l3gTwZNu4FuKgZlfPw+qnvuka0c9dUNIZRCE5z8yXjS8R9yZWirnHNhYxf/e R2y4jaiHzPAjZlZZ2rGx8xVfB2n2JsAicj2+ZxmXlQ1yd5RW1pfxG3cdNNC5 uZ+j4JIN2ElsIjEKmMn9gHdoaEMAy/ENwNiMDBadLnc8qWirq/Ktp2dBSf2y /sH9xMpVyk8wuYjpbCnX4xslAensno5A20MYdKGPRFaItEhNPNbfzc1+4br8 exoXFX1F9ZJK9gGUO2nLbdRycphdyzxzgQIDAQABo4IB2jCCAdYwDgYDVR0P AQH/BAQDAgWgMIGjBggrBgEFBQcBAQSBljCBkzBOBggrBgEFBQcwAoZCaHR0 cDovL3NlY3VyZS5nbG9iYWxzaWduLmNvbS9jYWNlcnQvZ3NnY2NyM3BlcnNv bmFsc2lnbjFjYTIwMjAuY3J0MEEGCCsGAQUFBzABhjVodHRwOi8vb2NzcC5n bG9iYWxzaWduLmNvbS9nc2djY3IzcGVyc29uYWxzaWduMWNhMjAyMDBMBgNV HSAERTBDMEEGCSsGAQQBoDIBKDA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3 dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1Ud HwRCMEAwPqA8oDqGOGh0dHA6Ly9jcmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2Ny M3BlcnNvbmFsc2lnbjFjYTIwMjAuY3JsMBsGA1UdEQQUMBKBEHNhcGVyQHNh cGVyLmluZm8wHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMB8GA1Ud IwQYMBaAFIW78MzENrUKYnajmS6PuzpqrcVRMB0GA1UdDgQWBBTW/RrdlRFR y6MgS7liTThMnQA5ozANBgkqhkiG9w0BAQsFAAOCAQEAAwoUJShHMueocVlD 1+vYJbTTTbk9tabr2L4Iyyy4Btu1d1wwl6d9Yx2N9qaVERWcEeP0aR+NB2B7 xIKl/ZnZVuSxep0Raw4s284a/jSIJlsAi4SJItDCU2VrYJDWxP7MxzZHnzPI MLDoTHXPV18gvYTewoNk5/Yo89Kb0v/GpPTpP2sVdrWLHa4uKUHYrAZ0aByp kNw6lXp6o6DXvXaOd6KDTQN5XhmmHwLnuLceODF1t9gicsZIOY+KAxN6YZ6t EqwN48b4OFMpckDE3fm1iTZRqnEIqUHOKOcoCImkub1woEN0zXDQmLXaZigl uVztWSTM4/fapWLrlHBNxfjs1TGCA30wggN5AgEBMGswWzELMAkGA1UEBhMC QkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNVBAMTKEdsb2Jh bFNpZ24gR0NDIFIzIFBlcnNvbmFsU2lnbiAxIENBIDIwMjACDCKqoJRMYYx5 sYJHGzANBglghkgBZQMEAgEFAKCB5DAYBgkqhkiG9w0BCQMxCwYJKoZIhvcN AQcBMBwGCSqGSIb3DQEJBTEPFw0yNTEwMjIwMDAyNDFaMC8GCSqGSIb3DQEJ BDEiBCDmoawdRQoEOhbEijLnq7AnKyqLKSAyK9xuXRvnD5X0jjB5BgkqhkiG 9w0BCQ8xbDBqMAsGCWCGSAFlAwQBKjALBglghkgBZQMEARYwCwYJYIZIAWUD BAECMAoGCCqGSIb3DQMHMA4GCCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIB QDAHBgUrDgMCBzANBggqhkiG9w0DAgIBKDANBgkqhkiG9w0BAQEFAASCAgCM 7P2dwsk+q5jUgjN2/3ONZqspuTYWfYqa+k2u/mHCrYuTg1Or9pS/NOqxDpn9 TEOvfsQ1ey+WI8DSuRNHXbVtihYnVOpT4V1ERNYyPVYG08D1n1sJgC9e/Rv8 g6CAVHzAxsXrQ/C8wYvctmrDXqZX4p9ekhULRJ9JWRxDhYwgVopA7jCRZfoZ YdZdMlorE15RLATfaIL18X2u+8LYJG9C3DH7hXxevh1gBOwgsG+gF22RA/pi hpLce4JvwB3tE5QOocsUnbKMskwFTI04ZOcUasRJx8wbo6TiGvGKURTITITr gTBRDDFgG4klh+quC6/bVNR+vGPIKewGUH/Ll/UM6OPvUeys91FalHUSEyGE AtkUWzfBoDU6rIsXmj3NeA9X4E18/BnDlE0gS1quyNovwlbSwsC6x12D/fG0 dGag5neKvb8fTayhR0B81o8F6tDjqpUdbp8iirLZS4j2oGjBMI5EpRlZtJ2l LJ7ck2lHHLOQt4pVSM9EWqNbKVr9s20RkUA0P0ZWIqKHTS07d0d9mUxa7DVC 1wI2FeQH1YEvwkYaYbagpAiMkPpGT8mU8G8bTjKmlIfBzrr+bSdadeioZhGZ qo806nz2CHt1BMuAIrxQgYlp0L/2dfz3UfeQ7m6Xngn73oZZDxEZicmozQ0f YJWkjKshfwPw/Dp9h0PoHg== --2201072851-1648931245-1761091361=:62059-- From nobody Wed Oct 22 00:38:29 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4crqz739p1z6DJwJ for ; Wed, 22 Oct 2025 00:38:43 +0000 (UTC) (envelope-from freebsd-current-freebsd-org111@ketas.si.pri.ee) Received: from mail.ketas.si.pri.ee (d004-fea2-0bff-021e-13e8-8437-07d0-2001.dyn.estpak.ee [IPv6:2001:7d0:8437:13e8:21e:bff:fea2:d004]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4crqz60pQDz3ZvP for ; Wed, 22 Oct 2025 00:38:42 +0000 (UTC) (envelope-from freebsd-current-freebsd-org111@ketas.si.pri.ee) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=ketas.si.pri.ee header.s=ketas-si-pri-ee-20240416002854-4096 header.b=0EGhw3Va; dmarc=pass (policy=reject) header.from=ketas.si.pri.ee; spf=pass (mx1.freebsd.org: domain of freebsd-current-freebsd-org111@ketas.si.pri.ee designates 2001:7d0:8437:13e8:21e:bff:fea2:d004 as permitted sender) smtp.mailfrom=freebsd-current-freebsd-org111@ketas.si.pri.ee X-Original-To: freebsd-current@freebsd.org DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=ketas.si.pri.ee; s=ketas-si-pri-ee-20240416002854-4096; t=1761093509; bh=CZ+mBH413dssWO/Qn4rsvjcYUnQVBNO0sTPsAN9BRpE=; h=Date:From:To:Subject:In-Reply-To:References; b=0EGhw3VazrRpKiPmgWKf23KJQMMXDQrEZ+zTZxWnt6PX4HgoQ7W9vY38U7FkLqATC ul0yv39zHtmiBCH02PYX6DyYYUe1GXZk4qyVL3P2KG1GCP8OZYeuGPxZk8JLAOSRyU Qk+viXGFWmJ6jyosGDe3+9VEsooCg/knYwzf8B9Jk48xY/aWmNiI+ajvoAvhkL86x7 qjKKjWuwXf1faqk+jFtjKp5SXqeZLiAawVR+isOm0N1/NuebMx5dKy/8fTglu48OXk 14FBdMM2UY/w7UMrFPOSvGmm49ekVvz/DQsJ8hIheuLTHpkxFc02OvMbrNuJj+7b4q +8hpqT5dUHzVFVWU777nIwJKjy1aJwqIWrxHM6O9272sQGq+rMah3NqgfCRhRb46QR XJEg8hpfnxNyddmBiT/9TmKbsVNDqvQfDoWd/zXWTX/C6u/drS5FISwufSHqWHLPqD DnwnWYcnHDGLKiRzxOE+q7I9M5K8J/VGLSA3aBRHRBg4HL8D//aDKenXG0AzW9uaiZ IIbH2zsRxXEj/fTJMzsYuDphRehd5rV3vDCzDvySjxvyi3lOEf915XqzKem+imqfjE rse/tVLTgxFlloQjsd2+jMEKR26LNQyGXBZlfOsJeeVEoWHpgkNtpFWHym6rcRN3lq MtHXyM09A6Ly/0rZ/eUyLJRU= Received: from ehlo.thunderbird.net (0115-0000-0000-0000-13c8-8437-07d0-2001.dyn.estpak.ee [IPv6:2001:7d0:8437:13c8::115]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mail.ketas.si.pri.ee (Postfix) with ESMTPSA id 810365C1F88 for ; Wed, 22 Oct 2025 03:38:29 +0300 (EEST) Date: Wed, 22 Oct 2025 03:38:29 +0300 From: Sulev-Madis Silber To: freebsd-current@freebsd.org Subject: Re: text buffer size in boot User-Agent: K-9 Mail for Android In-Reply-To: References: <696264F7-5182-421A-8511-9B3AE250F861@ketas.si.pri.ee> Message-ID: List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: / X-Spamd-Result: default: False [-0.77 / 15.00]; HFILTER_HOSTNAME_5(3.00)[d004-fea2-0bff-021e-13e8-8437-07d0-2001.dyn.estpak.ee]; NEURAL_HAM_SHORT(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-0.97)[-0.971]; DMARC_POLICY_ALLOW(-0.50)[ketas.si.pri.ee,reject]; R_DKIM_ALLOW(-0.20)[ketas.si.pri.ee:s=ketas-si-pri-ee-20240416002854-4096]; ONCE_RECEIVED(0.20)[]; R_SPF_ALLOW(-0.20)[+ip6:2001:7d0:8437:1300::/56]; MIME_GOOD(-0.10)[text/plain]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:3249, ipnet:2001:7d0::/32, country:EE]; MIME_TRACE(0.00)[0:+]; RCVD_COUNT_ONE(0.00)[1]; RCVD_TLS_ALL(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; TO_DN_NONE(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DKIM_TRACE(0.00)[ketas.si.pri.ee:+] X-Rspamd-Queue-Id: 4crqz60pQDz3ZvP tl;dr - nothing helps to get full boot output serial except sleep in the en= d of /etc/rc (or inside last ran initscript) i tried comconsole=2E same thing and that chars might be cu bug again i've seen it with tio too, something appears on console=2E unsure why=2E m= ight be stray noise supposedly you could get breaks and other things out of it somehow=2E eg i= f you have break to debugger enabled=2E or it interrupts boot in uboot or l= oader due input but this all seems unrelated here as i somehow fixed this with my favorit= e bad hack method, sleep=2E here i need 100ms sleep (sleep 0=2E1) to get mo= td out and actually to console too line runs 115200 8n1, on one end is h3 uart0, other end i run isolated cp2= 102 based usb ttl adapter=2E that one is cheapest and it has eeprom into wh= ich you can put own serial and use it with custom device symlinker script but that all doesn't really matter as apparently vt/init/kernel, at least = here on this setup, doesn't like fast data in the very end of the boot with= abrupt end in the end of this all that's how it looks like never tried to emulate it in vm yet, although this changes a ton of parame= ters i'm also unsure how serial control passes from uboot to loader to kernel t= oo=2E like it says Dual Console: Video Primary, Serial Secondary but there's not really any "video"=2E i mean device is some tv out capable= =2E and hardwarely iirc it has hdmi=2E but that's not enabled at least by l= ogs anyway=2E for some reason i need to wait in the end so that entire buffer = gets out=2E internally it's saved there are no other issues either=2E i'm kind of puzzled=2E never seen this= before but then i iirc didn't try to boot like this at bbb=2E and that was= whole other hw too=2E completely different serial adapters then=2E in fact= then i used old phone data cables which needed vref from system anyway, that's kind of difficult to hit too=2E you need to output certain = stuff=2E but once you do=2E or i do=2E it hit same issue in every boot=2E b= oots are exact same outputs=2E and it cuts out in exact same byte in every = boot i don't know where's the issue or what else it affects as i don't have lar= ge set of hw here again, there are no other issues with console io, except it cuts off in ex= act same char=2E that is unless i add a short sleep before /etc/rc exits and that all took me long time to debug since kernel perfectly saves full = boot log and it's available in syslog previously i just wondered if i'm hitting some limits which was strange probably someone else who has worked with all that has idea why sleep ther= e fixed all my problems unsure if this is hw too anyway, feels like something was cut off early, and instead of flushing bu= ffers, it just deleted it=2E i don't know what handles it=2E i haven't work= ed with kernel enough=2E supposedly there are threads or something there=2E= "processes", kind of=2E i really have no idea what interrupts or whatever = is even involved on getting text out to serial port only thing i know is sleep fixes it oh and getty is perfect there, that the next thing the init puts there i spent like long time figuring out why my text is cut off as if something= deliberately stopped there=2E it seems like stoppage also didn't happen so= mehow mid byte, as that would maybe cause nonprintables=2E but no, perfect = output, except cut off On October 22, 2025 2:42:38 AM GMT+03:00, Marcin Cieslak wrote: >Maybe switching the loader to "comconsole" works? What is the real serial >device behind your console? > >https://lists=2Efreebsd=2Eorg/archives/freebsd-current/2024-September/006= 455=2Ehtml > >For one of my boards eficonsole pauses the boot loader IF anything >is connected to it : > >https://lists=2Efreebsd=2Eorg/archives/freebsd-arm/2023-March/002433=2Eht= ml > >Maybe switching to the com console early can work for you=2E=2E=2E > >Marcin From nobody Wed Oct 22 06:56:12 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cs0Lm4RD9z6DnDL for ; Wed, 22 Oct 2025 06:56:16 +0000 (UTC) (envelope-from guru@unixarea.de) Received: from ms-10.1blu.de (ms-10.1blu.de [178.254.4.101]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4cs0Ll4v1dz3C2k for ; Wed, 22 Oct 2025 06:56:15 +0000 (UTC) (envelope-from guru@unixarea.de) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=unixarea.de header.s=blu3434000 header.b=Fn700qfv; dmarc=none; spf=pass (mx1.freebsd.org: domain of guru@unixarea.de designates 178.254.4.101 as permitted sender) smtp.mailfrom=guru@unixarea.de DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=unixarea.de ; s=blu3434000; h=Content-Transfer-Encoding:Content-Type:MIME-Version: Reply-To:Message-ID:Subject:To:From:Date:Sender:Cc:Content-ID: Content-Description:In-Reply-To:References; bh=lClVP1lYEI28zfwORBWnqT+wEni1vRQ5hgNDrYZFxwQ=; b=Fn700qfvTfnY27BNYv/FmZ9YdF yD9i6I6FdIBjz7J0Dg6Vq3C2hXDTK68kq/wAoXnr9RDESaB/2OQ+6cwjxziIE4Qmrt52KNq3rQgX4 mVieG2kMKeiwpffaLi7fmX+5iZCtqtEhxniXsSEZ1F+eN8smWzE6hKK4LY0pdh0CRVNY/jP7oO3LX rygeZR83Jy1W3A4orFc2Ahfyr8euAT152pu6lwGpg7UziBoiWwczvpa2sIcuFXM5z92O7TqFRI8Bh A20pe6ZvrDc5NPiCCeu7NMVGJvJyvHkv6qrl4cIpMCBB/Io3p3cvW/fiXFh5IkQUUD9vMjjP7MFev FM9HUfDg==; Received: from [62.216.210.192] (helo=localhost.unixarea.de) by ms-10.1blu.de with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1vBSlZ-005Uih-Fv for freebsd-current@freebsd.org; Wed, 22 Oct 2025 08:56:13 +0200 Received: from localhost.my.domain (c720-1400094 [127.0.0.1]) by localhost.unixarea.de (8.17.1/8.14.9) with ESMTP id 59M6uDvC007097 for ; Wed, 22 Oct 2025 08:56:13 +0200 (CEST) (envelope-from guru@unixarea.de) Received: (from guru@localhost) by localhost.my.domain (8.17.1/8.14.9/Submit) id 59M6uCWh007096 for freebsd-current@freebsd.org; Wed, 22 Oct 2025 08:56:12 +0200 (CEST) (envelope-from guru@unixarea.de) X-Authentication-Warning: localhost.my.domain: guru set sender to guru@unixarea.de using -f Date: Wed, 22 Oct 2025 08:56:12 +0200 From: Matthias Apitz To: freebsd-current@freebsd.org Subject: old shared lib is missing on installworld (by poudriere) Message-ID: Reply-To: Matthias Apitz Mail-Followup-To: freebsd-current@freebsd.org List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable X-Operating-System: FreeBSD 14.0-CURRENT r1400094 (amd64) X-message-flag: Mails in HTML will not be read! Please, only plain text. X-Con-Id: 51246 X-Con-U: 0-guru X-Originating-IP: 62.216.210.192 X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.20 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; MID_RHS_NOT_FQDN(0.50)[]; R_DKIM_ALLOW(-0.20)[unixarea.de:s=blu3434000]; RWL_MAILSPIKE_VERYGOOD(-0.20)[178.254.4.101:from]; R_SPF_ALLOW(-0.20)[+ip4:178.254.4.101]; MIME_GOOD(-0.10)[text/plain]; DMARC_NA(0.00)[unixarea.de]; RCVD_TLS_LAST(0.00)[]; HAS_XAW(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; RCPT_COUNT_ONE(0.00)[1]; SUSPICIOUS_AUTH_ORIGIN(0.00)[]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MISSING_XM_UA(0.00)[]; HAS_REPLYTO(0.00)[guru@unixarea.de]; TO_DN_NONE(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DKIM_TRACE(0.00)[unixarea.de:+]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; HAS_XOIP(0.00)[]; ASN(0.00)[asn:42730, ipnet:178.254.0.0/19, country:DE]; RCVD_VIA_SMTP_AUTH(0.00)[]; REPLYTO_EQ_FROM(0.00)[] X-Rspamd-Queue-Id: 4cs0Ll4v1dz3C2k Hello, I did on a 15-CURRENT system compiled and installed in March, now with sources from git: make buildworld make buildkernel make installkernel and installed it in single user mode with reboot to single user make installworld reboot to multiuser The new system boots fine (if I not count outdated entries in /etc/sysctl.conf causing panic with messages about ACPI). But now, creating jails after also updated /usr/ports fails with: # uname -a FreeBSD jet 16.0-CURRENT FreeBSD 16.0-CURRENT #0 main-n281256-7d6221ff1447:= Sun Oct 19 12:57:22 CEST 2025 guru@jet:/usr/obj/usr/src/amd64.amd64/sy= s/GENERIC amd64 # poudriere jail -c -j 160-CURRENT -m src=3D/usr/src [00:00:00] Creating 160-CURRENT fs at /usr/local/poudriere/jails/160-CURREN= T... done [00:00:01] Copying /usr/src to /usr/local/poudriere/jails/160-CURRENT/usr/s= rc... done [00:02:57] Starting make installworld --- installworld --- make[1]: /usr/obj/usr/src/amd64.amd64/toolchain-metadata.mk:1: Using cached= toolchain metadata from build at jet on Sun Oct 19 10:12:02 CEST 2025 --- _installcheck_world --- -------------------------------------------------------------- >>> Install check world started on Wed Oct 22 07:28:02 CEST 2025 -------------------------------------------------------------- --- installworld --- mkdir -p /tmp/install.DDxtHqxvPf progs=3D$(for prog in [ awk cap_mkdb cat chflags chmod chown cmp cp date e= cho egrep find grep id install ln make mkdir mtree mv pwd_mkdb rm sed ser= vices_mkdb sh sort strip sysctl test time true uname wc tzsetup makewhatis = ; do if progpath=3D`env PATH=3D/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/o= bj/usr/src/amd64.amd64/tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bi= n:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.a= md64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/ob= j/usr/src/amd64.amd64/tmp/legacy/usr/libexec:/sbin:/bin:/usr/sbin:/usr/bin = which $prog`; then echo $progpath; else echo "Required tool $prog not fo= und in PATH ("/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd64.a= md64/tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr/src= /amd64.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/us= r/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/usr/src/amd64.am= d64/tmp/legacy/usr/libexec:/sbin:/bin:/usr/sbin:/usr/bin")." >&2; exit 1; = fi; done); if [ -z "" ] ; then libs=3D$(ldd -f "%o %p\n" -f "%o %p\n" $= progs 2>/dev/null | sort -u | grep -Ev '\[.*]' | while read line; do $lin= e; if [ "$2 $3" !=3D "not found" ]; then echo $2; else echo "Required l= ibrary $1 not found." >&2; exit 1; fi; done); fi; cp $libs $progs /tmp= /install.DDxtHqxvPf Required library libutil.so.9 not found. *** [installworld] Error code 1 make[1]: stopped making "installworld" in /usr/src make[1]: 1 error make[1]: stopped making "installworld" in /usr/src make: stopped making "installworld" in /usr/src [00:02:57] Error: /usr/local/share/poudriere/jail.sh:installworld:12:Failed= to 'make installworld' [00:02:57] Error while creating jail, cleaning up. [00:02:57] Removing 160-CURRENT jail... done I investigated the problem and two commands in /usr/obj/usr/src/amd64.amd64/tmp/legacy/bin are missing libutil.so.9: /usr/obj/usr/src/amd64.amd64/tmp/legacy/bin/cmp /usr/obj/usr/src/amd64.amd64/tmp/legacy/bin/mtree Note, this reads here poudriere related, but I'm sure and tested it that the next=20 # cd /usr/src # make installworld DESTDIR=3D/foo would face the same problem.=20 A workaround was: # cp -p /usr/local/poudriere/jails/150-CURRENT/lib/libutil.so.9 /lib =2E.. install -N /usr/src/etc -C -o root -g wheel -m 644 /usr/src/usr.sbin/pkg= /FreeBSD.conf.latest /usr/local/poudriere/jails/160-CURRENT/etc/pkg/FreeBSD= =2Econf [00:05:36] Recording filesystem state for clean... done [00:05:37] Jail 160-CURRENT 16.0-CURRENT 1600001 amd64 is ready to be used Sould I file a PR? matthias --=20 Matthias Apitz, =E2=9C=89 guru@unixarea.de, http://www.unixarea.de/ +49-176= -38902045 Public GnuPG key: http://www.unixarea.de/key.pub From nobody Wed Oct 22 13:42:15 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cs9MT0fn4z6FJ5T for ; Wed, 22 Oct 2025 13:42:29 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cs9MS5xzzz3wkS for ; Wed, 22 Oct 2025 13:42:28 +0000 (UTC) (envelope-from carpeddiem@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-93ba2eb817aso637474039f.2 for ; Wed, 22 Oct 2025 06:42:28 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761140548; x=1761745348; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fmb+hqLA6o5ZEMVI7upYvYJBHMQo0q9hP9jAaUTrFoI=; b=Ri2RNKf7xAsDBBfxtKKGBOPFhxEuQYXJz6dC28pQbPVL3vFQ9betsYHPIiJf0k0+VU 8K8Lo5HLhetFabQnDqsTxb0FMJJPonZ9ZaEDNKzGgM6HZrbHKwj4An9eFR9JBJfYbKHV 4IWAbxZNoIcRx9clbT3Xrzt477OBe+SDPbdCpdT71BLd0xuHS0rfikczv2OPDcVy4vP9 rxjMicexEMGxyEYOI/2lPowoTPyGfHyc7jCaXcbPzyAMRDY8PQU/aA1ZJSwcGwTSNwS1 LE6e0lHgxFKT8VNxDLbA1hkbLXWoZPIUKg33j3jXZCUtKXdy0D4OJMZoUdUZZbxEaEBa y+sQ== X-Forwarded-Encrypted: i=1; AJvYcCU2vLEIbGttb26mjpX+OIErpNbMpvTZyI1GNzm3o9lWYtzC3aYLueLW25GSc3D0SFhOdN6EyW2+kgEcIKmu3+s=@freebsd.org X-Gm-Message-State: AOJu0YzyayxUPbR8u5z59szB+q7oUl7PBVDfpTf/hx12TzLON8FnT3Ll 2cIltZSuBNi8rjoO2m6mJdl0M3qF3EKoKprjLWujTmy4zFR64G9tymaG/AF7zuby320aXeUAfaQ vv1/eLcIxTHvhOjzWReSH00cXxx4+BXk= X-Gm-Gg: ASbGncvGy2xkV/nxanFthWz9LaPhJr9gX1OytU4PdQ6orLU4wutkVApPoh/kTvgiI/j eqBiXkvO0qBOmHrsXgqDCoLAnaJxknl5V9HIYddE2wkwgW72Q4TmUz1GBMM7iew6qVz4TE4DFKt /9CMb6shKGiCerEJQZUZFZ1m/4O3miDAJTB1wiWcqv9qb7uFM2tqm5KuR/Ig7lWaeaTl9ru8lTT FLL6XdxOEtKpY9+L60g0N74Kx2f1cFYaH+pnttYzdcgjLsA8sb1RmeVqSJhklgjrwTDOQ3jTE9p +0LZEyBT7DP7Ec5Hgh0= X-Google-Smtp-Source: AGHT+IHlhZPcehP7wTft7MaafMdyi8oojDjXWbunCjKlMS32ecZW+LKx7Pxyz8/3xPECIGtOp+qw0C8nh71GMkwWEOE= X-Received: by 2002:a05:6e02:190d:b0:42e:2c30:285b with SMTP id e9e14a558f8ab-430c52becd2mr278638015ab.20.1761140547665; Wed, 22 Oct 2025 06:42:27 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 References: <08428s9n-72o9-28r1-22n6-rn0r885n62q0@fncre.vasb> <68s56803-588s-q21n-9937-p6r47345po1q@fncre.vasb> In-Reply-To: <68s56803-588s-q21n-9937-p6r47345po1q@fncre.vasb> From: Ed Maste Date: Wed, 22 Oct 2025 09:42:15 -0400 X-Gm-Features: AS18NWASywD9dh8hjYA3II3XovHknleZE8ndpbHvwhf0_hXO57D8jLFG97HKmYA Message-ID: Subject: Re: usbhid(4) breaks passkeys? To: Marcin Cieslak Cc: Alan Somers , FreeBSD Current Content-Type: text/plain; charset="UTF-8" X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:209.85.128.0/17, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4cs9MS5xzzz3wkS On Tue, 21 Oct 2025 at 18:41, Marcin Cieslak wrote: > > FIDO2/Passkey is a different function ... You can try with https://webauthn.io/ Yes, the webauthn demo will work with Firefox and Chrome on a kernel built from a tree containing the u2f changes referenced in this thread. Anything from October will be fine. From nobody Wed Oct 22 14:34:39 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4csBX23GMgz6FMyB for ; Wed, 22 Oct 2025 14:34:58 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Received: from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com [IPv6:2a00:1450:4864:20::52c]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4csBX164vZz476j for ; Wed, 22 Oct 2025 14:34:57 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=NaPmRmjz; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of rick.macklem@gmail.com designates 2a00:1450:4864:20::52c as permitted sender) smtp.mailfrom=rick.macklem@gmail.com Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-63c1a0d6315so12582686a12.1 for ; Wed, 22 Oct 2025 07:34:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761143692; x=1761748492; darn=freebsd.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=WOMQVKfdVsWV4nO1TV7WgN9kSQVVnqLtMTtOLAFEgzw=; b=NaPmRmjzE1MA3kpyP7TRq8VyVSVTutr4iywGHWiVykR2Oynk0t8zHtR6xBc3E1wH9q AiWV0/Jr9ykHYr+3IeInOxhMn3sk4CFOmdbCYZziUpJn8sr9NT0fD2B5K73NNHhWm6iI zAEQXK4FDlIvIBe/F/awT7u/LXhbSB+WiNvSAYWdyGNWPfczPJLyQHRNUU56YgjNsbLa k8V6cu7T1bwm/1P7NiypDiQHghVMptKsCmS1YLFvGT9mCJJwhNvdeF7IWCLFm3yL9FU5 gPVYg/PnvImA8l2wKTMKuxLMFwW5nYHTDMVB7LgnJUwXH67oJpb/nYE9vOf2RpS41x/m Rjbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761143692; x=1761748492; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=WOMQVKfdVsWV4nO1TV7WgN9kSQVVnqLtMTtOLAFEgzw=; b=SEKb1cxcsoqsVDi+G2Ew0Pl4sCSu9QQm2z8K5Qs64rkc3Vh9P9eeue5gJRxEm9MEpv vM5gm5YqQbUIkbdhkGwtW2RAPQqZKGE3N8w7LzYS84tkzA9D47YtTuOnWOHAeCvJXfZ3 evs6p/y1ebgxNfamTwug7WleWkZhxwem8TtRZa+lOdsbTrST8vow8AIoyvyhY+F8gWXg 3xvehWnYJYX9bm4e1uyoGzL9nvGG7y7Qwoca1NxJgZLMzGy8lnTfSiSz1uLUhIJC42uO frsy/vzPxqAEkDkmm+mHkLTlQ8la5VhA9r0oAPL6o8HE9DsKD7hJoBvlFp59IIUnnejm 5gag== X-Gm-Message-State: AOJu0YzmOwKsWPlXN92HsyNWbZSBH9cJtqBkhxRDgSBSrkEdwdi7atFl I+04WJE/Rvn19ljIe+dqfNqXzwn2klw6exU/1PZrcTgcOZrbT3sf4STpR8O8ygnRx+nXyEdBYfX CXefjjlVaLX6bBWPS7WitcOkjgwP2mCqadxc= X-Gm-Gg: ASbGncvqDbRftFCTkJl+L3mnDUwpB5uZNbkMx6UujPzPxU6va5VmsucYTKpLDSNhcUJ DqEGlXtICkQhDrhGuxwlK0N9YwTjsf7MzNhkwWU1+EAZ2VS9Ehtt/9FHoJF+ViEMhT6/sSgq8U7 QZijyLWeFFEYWgKNz7D/j4x0+EJ0dK6H3xTvh13Y5H0z83Mw6Y9tDYQuGMJc4S2fr8B5rx5ZDYB nFGeA+vjil/bBrwOcBvl/RY1VUlC5mRwKnAIKV5p4YHVj2kYl3FWBcgP+EvmUnBpxzTZTcIxtye F/L2+AfOZx2VjWphr5YJZhhnTO787jucbgzThA== X-Google-Smtp-Source: AGHT+IH0qLqiJ2quScudGaRnk31R/ZT/BLKZW+HOtAn9ZFSyDFkyIz2iDv30Iqrl9WzuBvkJfI4DaTeKuKrG57Atapg= X-Received: by 2002:a05:6402:4444:b0:63e:b49:c9c3 with SMTP id 4fb4d7f45d1cf-63e0b49cd06mr5587789a12.31.1761143691451; Wed, 22 Oct 2025 07:34:51 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 From: Rick Macklem Date: Wed, 22 Oct 2025 07:34:39 -0700 X-Gm-Features: AS18NWBcx_E_UcUksGqTzzWAazhYaHEbbqw6eDuSGFl4a_lPP1q2n4guU8fzbkA Message-ID: Subject: RFC: How ZFS handles arc memory use To: FreeBSD CURRENT , Garrett Wollman , Peter Eriksson , Alexander Motin Content-Type: text/plain; charset="UTF-8" X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.99 / 15.00]; NEURAL_HAM_SHORT(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-0.99)[-0.994]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36:c]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; TAGGED_FROM(0.00)[]; TO_DN_ALL(0.00)[]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; FREEMAIL_FROM(0.00)[gmail.com]; DKIM_TRACE(0.00)[gmail.com:+]; MISSING_XM_UA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCPT_COUNT_THREE(0.00)[4]; MID_RHS_MATCH_FROMTLD(0.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; RCVD_COUNT_ONE(0.00)[1]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::52c:from] X-Rspamd-Queue-Id: 4csBX164vZz476j Hi, A couple of people have reported problems with NFS servers, where essentially all of the system's memory gets exhausted. They see the problem on 14.n FreeBSD servers (which use the newer ZFS code) but not on 13.n servers. I am trying to learn how ZFS handles arc memory use to try and figure out what can be done about this problem. I know nothing about ZFS internals or UMA(9) internals, so I could be way off, but here is what I think is happening. (Please correct me on this.) The L1ARC uses uma_zalloc_arg()/uma_zfree_arg() to allocate the arc memory. The zones are created using uma_zcreate(), so they are regular zones. This means the pages are coming from a slab in a keg, which are wired pages. The only time the size of the slab/keg will be reduced by ZFS is when it calls uma_zone_reclaim(.., UMA_RECLAIM_DRAIN), which is called by arc_reap_cb(), triggered by arc_reap_cb_check(). arc_reap_cb_check() uses arc_available_memory() and triggers arc_reap_cb() when arc_available_memory() returns a negative value. arc_available_memory() returns a negative value when zfs_arc_free_target (vfs.zfs.arc.free_target) is greater than freemem. (By default, zfs_arc_free_target is set to vm_cnt.v_free_taget.) Does all of the above sound about right? This leads me to... - zfs_arc_free_target (vfs.zfs.arc.free_target) needs to be larger or - Most of the wired pages in the slab are per-cpu, so the uma_zone_reclaim() needs to UMA_RECLAIM_DRAIN_CPU on some systems. (Not the small test systems I have, where I cannot reproduce the problem.) or - uma_zone_reclaim() needs to be called under other circumstances. or - ??? How can you tell if a keg/slab is per-cpu? (For my simple test system, I only see "UMA Slabs 0:" and "UMA Slabs 1:". It looks like UMA Slabs 0: is being used for ZFS arc allocation for this simple test system.) Hopefully folk who understand ZFS arc allocation or UMA can jump in and help out, rick From nobody Wed Oct 22 15:05:53 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4csCCs6VZvz6ChR3 for ; Wed, 22 Oct 2025 15:06:01 +0000 (UTC) (envelope-from mavbsd@gmail.com) Received: from mail-yw1-x1130.google.com (mail-yw1-x1130.google.com [IPv6:2607:f8b0:4864:20::1130]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4csCCr72Slz3Fbg for ; Wed, 22 Oct 2025 15:06:00 +0000 (UTC) (envelope-from mavbsd@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=NjCOIKjj; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=freebsd.org (policy=none); spf=pass (mx1.freebsd.org: domain of mavbsd@gmail.com designates 2607:f8b0:4864:20::1130 as permitted sender) smtp.mailfrom=mavbsd@gmail.com Received: by mail-yw1-x1130.google.com with SMTP id 00721157ae682-78485808eb3so55267857b3.3 for ; Wed, 22 Oct 2025 08:06:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761145555; x=1761750355; darn=freebsd.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :sender:from:to:cc:subject:date:message-id:reply-to; bh=Ph/2qZhvnoOvGBUHKebUDeACbjfZcgqDMYisL/XGEas=; b=NjCOIKjjeuajg4UVxt26ZNco9DSc+VyZANETGK0XMaO/PPebMqPjBqIMvFXCneFuYt ecuxdC1ck32wt82vpCvKsgwQECOvYZaJMhpiJCKz6M6eiy5yBpiRx5tZn1L05aCXPKg6 dGWl/0Gm5h9sRVS6BUh1gvWFb1rruKsC5uoMXeFIm5F3160DL5EqGewUe338h0DdZd2w /3eiok8XXWlAMmyUg7o3Hd9dI1YMN2AhZM7UbE0zOVyDcfkPMOhd4bCtuda2KFOYwi5T Ad/ymICxgvNreXv1Sj5MhfVj8HdHsnhWrvYjUWwQ+ttgomUd+Ak49RW5EZW6CoRxl8vu 1EsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761145555; x=1761750355; h=content-transfer-encoding:in-reply-to:from:content-language :references:to:subject:user-agent:mime-version:date:message-id :sender:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Ph/2qZhvnoOvGBUHKebUDeACbjfZcgqDMYisL/XGEas=; b=eMW0reiyo8glKHEYrY4zkTK98rFsqJqP4/zEZ4WrvfkXuGCA/b/TSszW94IkYLqEx3 AUgzx42JEk2Z/H6A1NqwCC5qVP1hhiSi7NCiWxD0gqGJipoJLC6jDVpIj3ppuiwApmI1 D8lsQjo4b420pxiVhog+XkpT2VOKlNmq2vaZvxoQ3Gb8+N5OXmo37NSkRamFeET67nX8 ajapFCYFks9SUw1r2+eN80BNb4o5hL6hAov/RmCOB+YsLPzrgdEsqJOazWTUu4LkTV8A 4b3YuwxX2wfJA2s9NOIVt56AYtEJ7ZktYOFhd2mMX+O5Qmukab1VF0DnkxqbTnEFhSvS 4N0A== X-Forwarded-Encrypted: i=1; AJvYcCUa9vvEJEi3e5lSniCymONP0NpxPtmJUhJBLXfgDRWTggNxOZ+OsVfUUF8M1kAvIYjTSHPYCcDxHGIp0OVe6IE=@freebsd.org X-Gm-Message-State: AOJu0YwI/2p8VEVcHRrk4nd/H5QWTNJedk2yg+bfHLlwhDj6ogqJadyD wP8Cr2E3pQ2w0mrza38hjCjwKusetrTXGUEUpNUFAJq4z+s7ZM3E1gEL X-Gm-Gg: ASbGnctZ0BnOdTtzcTCO8rKcvOEchCepCbArXHZUeO0Nui0WHOSUtXV5SBZddMx86yz s7eLk6I5lAVcf1wihC6m5QsZpwHCd6wORORPa4UMXAsRx9gFLJHv26r0NrSG4pU3FIDt+LMhOxS KLeIz6m50FaMaf0mKaW9+yjc9j8frANFEZxaTR/rhpr3IB9SucR15FHfdt/RmHKjy+aWxvWm1eM e/BoAnzMcGk0wxACYYiy3h0Z+kbQn9EcY33igK2MDtH1UfypuR5jUjXj/CGbsKksMPU85gWftM6 zmvazXTvTvblPt+h+dHBTUdKPiB12VrgdrKbSTcV5x7Awe6vgpautxgcrxnAdDMefxw3Oj2Sjgf t9AETe+S1g4mFs1PzsVMnwIuIlrm6bp8X9iCogJzAhs+cqqzWCbPChXEmFMjIDo5EMSKJHIe086 uwCJtgzpIOAw== X-Google-Smtp-Source: AGHT+IFERjt0IqWBFjDNCMaOlxzqofzAFungSsNgODDE6fzAeIqSi4AhAluJYH/Jy1zJn5Edkid6hQ== X-Received: by 2002:a05:690e:1487:b0:63c:ee51:5cf6 with SMTP id 956f58d0204a3-63e16109eb3mr16217916d50.15.1761145555106; Wed, 22 Oct 2025 08:05:55 -0700 (PDT) Received: from [10.230.45.5] ([38.32.73.2]) by smtp.gmail.com with ESMTPSA id 00721157ae682-784673c2ae7sm37254557b3.19.2025.10.22.08.05.54 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 22 Oct 2025 08:05:54 -0700 (PDT) Message-ID: <8cc739c5-9cd7-42b6-a9ca-c6c864744fba@FreeBSD.org> Date: Wed, 22 Oct 2025 11:05:53 -0400 List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: RFC: How ZFS handles arc memory use To: Rick Macklem , FreeBSD CURRENT , Garrett Wollman , Peter Eriksson References: Content-Language: en-US From: Alexander Motin In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Spamd-Bar: - X-Spamd-Result: default: False [-1.60 / 15.00]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; FORGED_SENDER(0.30)[mav@FreeBSD.org,mavbsd@gmail.com]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; MIME_GOOD(-0.10)[text/plain]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), DKIM not aligned (relaxed),none]; TO_DN_ALL(0.00)[]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_TO(0.00)[gmail.com,freebsd.org,bimajority.org,lysator.liu.se]; MIME_TRACE(0.00)[0:+]; ARC_NA(0.00)[]; FREEMAIL_ENVFROM(0.00)[gmail.com]; DKIM_TRACE(0.00)[gmail.com:+]; FROM_HAS_DN(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::1130:from]; TO_MATCH_ENVRCPT_SOME(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; RCVD_COUNT_TWO(0.00)[2]; FROM_NEQ_ENVFROM(0.00)[mav@FreeBSD.org,mavbsd@gmail.com]; RCPT_COUNT_THREE(0.00)[4]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; TAGGED_RCPT(0.00)[]; MID_RHS_MATCH_FROM(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; RCVD_VIA_SMTP_AUTH(0.00)[]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim] X-Rspamd-Queue-Id: 4csCCr72Slz3Fbg Hi Rick, On 22.10.2025 10:34, Rick Macklem wrote: > A couple of people have reported problems with NFS servers, > where essentially all of the system's memory gets exhausted. > They see the problem on 14.n FreeBSD servers (which use the > newer ZFS code) but not on 13.n servers. > > I am trying to learn how ZFS handles arc memory use to try > and figure out what can be done about this problem. > > I know nothing about ZFS internals or UMA(9) internals, > so I could be way off, but here is what I think is happening. > (Please correct me on this.) > > The L1ARC uses uma_zalloc_arg()/uma_zfree_arg() to allocate > the arc memory. The zones are created using uma_zcreate(), > so they are regular zones. This means the pages are coming > from a slab in a keg, which are wired pages. > > The only time the size of the slab/keg will be reduced by ZFS > is when it calls uma_zone_reclaim(.., UMA_RECLAIM_DRAIN), > which is called by arc_reap_cb(), triggered by arc_reap_cb_check(). > > arc_reap_cb_check() uses arc_available_memory() and triggers > arc_reap_cb() when arc_available_memory() returns a negative > value. > > arc_available_memory() returns a negative value when > zfs_arc_free_target (vfs.zfs.arc.free_target) is greater than freemem. > (By default, zfs_arc_free_target is set to vm_cnt.v_free_taget.) > > Does all of the above sound about right? There are two mechanisms to reduce ARC size: either from ZFS side in the way you described, or from kernel side, when it calls ZFS low memory handler arc_lowmem(). It feels somewhat overkill, but it came this way from Solaris. Once ARC size is reduced and evictions into UMA caches happened, it is up to UMA how to drain its caches. ZFS might trigger that itself, or it can be done by kernel, or few years back I've added a mechanism for UMA caches to slowly shrink by themselves even without pressure. > This leads me to... > - zfs_arc_free_target (vfs.zfs.arc.free_target) needs to be larger There is a very delicate balance between ZFS and kernel (zfs_arc_free_target = vm_cnt.v_free_target). Imbalance there makes one of them suffer. > or > - Most of the wired pages in the slab are per-cpu, > so the uma_zone_reclaim() needs to UMA_RECLAIM_DRAIN_CPU > on some systems. (Not the small test systems I have, where I > cannot reproduce the problem.) Per-CPU caches should be relatively small. IIRC in dozens or hundreds of allocations per CPU. Their drain is expensive and should rarely be needed, unless you have too little RAM for the number of CPUs you have. > or > - uma_zone_reclaim() needs to be called under other > circumstances. > or > - ??? > > How can you tell if a keg/slab is per-cpu? > (For my simple test system, I only see "UMA Slabs 0:" and > "UMA Slabs 1:". It looks like UMA Slabs 0: is being used for > ZFS arc allocation for this simple test system.) > > Hopefully folk who understand ZFS arc allocation or UMA > can jump in and help out, rick Before you dive into UMA, have you checked whether ARC size really shrinks and eviction happens? Considering you mention NFS, I wonder what is your number of open files? Too many open files might in some cases restrict ZFS ability to evict metadata from ARC. arc_summary may give some insights about ARC state. -- Alexander Motin From nobody Wed Oct 22 15:21:42 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4csCZL6t8tz6CjgJ for ; Wed, 22 Oct 2025 15:22:02 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Received: from mail-ed1-x531.google.com (mail-ed1-x531.google.com [IPv6:2a00:1450:4864:20::531]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4csCZL4xsnz3Hcn for ; Wed, 22 Oct 2025 15:22:02 +0000 (UTC) (envelope-from rick.macklem@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-63c0eb94ac3so12500524a12.2 for ; Wed, 22 Oct 2025 08:22:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761146516; x=1761751316; darn=freebsd.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=H5Qfd4YnFMY7xXOSe9ArwCBXoEL9YNRsBYMUtMEGTzI=; b=AZXwM9Shm6dPGacIFBY9Z69n4TzLuP827rT+3owsn6Bp8zQG7r9cAlzDuTCVm3hnIE FcA9QMR3EwG6PVa7mqrGoUhIx5XUwlA/xfFpDjugwjhQVV9At/0kIDyvweGvKHSivDOs uo9u98XS4E7g+urZGIQ816F8Avnjb0F0wn0Bb+VW0y+CUSpACBAbUkrRFAg2x76jAKwt pmLdF7sDv5rWqbhSEYXEeITCqqyahEkOuadNadk5TOFxsHpCOxjjttoKk95Wl0c8C+51 Vq4pTgux9KRSQjuwdXDQ1SdUg/LONFaSLVG552QgaFxIeHgMLG9w8MnQm+/wX40OQw8a Ju6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761146516; x=1761751316; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=H5Qfd4YnFMY7xXOSe9ArwCBXoEL9YNRsBYMUtMEGTzI=; b=HLw2sWqWF/17/Cw2tOkLmTU6STqtR/JPukdENTG1Sm7Tswc+6R1oyrLWgpX6QBAUot SazfNCgodYybGhrkTGENWyOEfu9FFMVfn6FmWROtmssoboHa3O8r0CkJgBxtwpWclw4X OJfgEbQzDFEuuL+QUzgmfGo/0CKWRycK0cyWWJJtvvV4m3DCLzXkOiw90PWqgYgAwuRd Is54qMlVkUwP5neWuIAh2/7/Y407ILFNjCB9w18FguMDjsbyMBgU5Nsp4XCydu9weVMo 9kKyWum24aTBkYkom6P0mGOL4Us74KuRDlZYjxrUMbggPqn1nTkUJjhAT0Xk+uFOHjF7 QR9Q== X-Gm-Message-State: AOJu0Yw8GV/mOSXP/zNS6mRSO7ZauDR7YhlEcPQyhMfR0qVzdXtLJ6q0 745MiN2HBsA+FAd/OAjQxdMCmQdOBzMZ4ljI1cXrnhX5RzUDPo+9LI1mlNu+It8bg5WXEcLKdnO v3dWdypitTGn4WgMog3yNYcUMimS9SQ== X-Gm-Gg: ASbGncsl9ZbUtb1qNyxpn6Q5Wf6lrP1Xq22MQRoElP9C4WNnoqJcX+vf98rgU5u+S6c 4cghn+F/MswEe78T5uYiatw/VE+rf7amxRJNQGOjgIRIGm3ZTElB7HLP9RTUhETXvxtm9QtxUP1 DfxFUpmhxQvqbuYMXS+yutxpbsV+p/t7HejBRemFIjh1xWBWAiVV95Ua57Y4W+k3TQDkmidCVaN KgCoN0GDWWRaF40vPVCKlMwMiDR0gWE/bSKYVYnwp0/RmZfjBAaRkIJzasfXQhYbJQHWhGUjZ30 VcaPX44Mko/nQO6Ue7FWNTGyVSE= X-Google-Smtp-Source: AGHT+IHYRe58VYL4tsIaGWneCpCMdEXO4uMuSle+xmeORJVKoUjkEI2aHjqtPL+8Vi5m9+KWH9bQpiEHnmX9fJwYPMo= X-Received: by 2002:a05:6402:34c5:b0:63b:f5cb:e1fa with SMTP id 4fb4d7f45d1cf-63c1f64fd4emr20662412a12.11.1761146515269; Wed, 22 Oct 2025 08:21:55 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 References: <8cc739c5-9cd7-42b6-a9ca-c6c864744fba@FreeBSD.org> In-Reply-To: <8cc739c5-9cd7-42b6-a9ca-c6c864744fba@FreeBSD.org> From: Rick Macklem Date: Wed, 22 Oct 2025 08:21:42 -0700 X-Gm-Features: AS18NWCXW6VxaAYIeTce1__aL7pFXN65I2gqmhDW5E3lwY-oRPLoI_rY9RU-QHQ Message-ID: Subject: Re: RFC: How ZFS handles arc memory use To: Alexander Motin Cc: FreeBSD CURRENT , Garrett Wollman , Peter Eriksson Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; TAGGED_FROM(0.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4csCZL4xsnz3Hcn On Wed, Oct 22, 2025 at 8:05=E2=80=AFAM Alexander Motin w= rote: > > Hi Rick, > > On 22.10.2025 10:34, Rick Macklem wrote: > > A couple of people have reported problems with NFS servers, > > where essentially all of the system's memory gets exhausted. > > They see the problem on 14.n FreeBSD servers (which use the > > newer ZFS code) but not on 13.n servers. > > > > I am trying to learn how ZFS handles arc memory use to try > > and figure out what can be done about this problem. > > > > I know nothing about ZFS internals or UMA(9) internals, > > so I could be way off, but here is what I think is happening. > > (Please correct me on this.) > > > > The L1ARC uses uma_zalloc_arg()/uma_zfree_arg() to allocate > > the arc memory. The zones are created using uma_zcreate(), > > so they are regular zones. This means the pages are coming > > from a slab in a keg, which are wired pages. > > > > The only time the size of the slab/keg will be reduced by ZFS > > is when it calls uma_zone_reclaim(.., UMA_RECLAIM_DRAIN), > > which is called by arc_reap_cb(), triggered by arc_reap_cb_check(). > > > > arc_reap_cb_check() uses arc_available_memory() and triggers > > arc_reap_cb() when arc_available_memory() returns a negative > > value. > > > > arc_available_memory() returns a negative value when > > zfs_arc_free_target (vfs.zfs.arc.free_target) is greater than freemem. > > (By default, zfs_arc_free_target is set to vm_cnt.v_free_taget.) > > > > Does all of the above sound about right? > > There are two mechanisms to reduce ARC size: either from ZFS side in the > way you described, or from kernel side, when it calls ZFS low memory > handler arc_lowmem(). It feels somewhat overkill, but it came this way > from Solaris. > > Once ARC size is reduced and evictions into UMA caches happened, it is > up to UMA how to drain its caches. ZFS might trigger that itself, or it > can be done by kernel, or few years back I've added a mechanism for UMA > caches to slowly shrink by themselves even without pressure. > > > This leads me to... > > - zfs_arc_free_target (vfs.zfs.arc.free_target) needs to be larger > > There is a very delicate balance between ZFS and kernel > (zfs_arc_free_target =3D vm_cnt.v_free_target). Imbalance there makes on= e > of them suffer. > > > or > > - Most of the wired pages in the slab are per-cpu, > > so the uma_zone_reclaim() needs to UMA_RECLAIM_DRAIN_CPU > > on some systems. (Not the small test systems I have, where I > > cannot reproduce the problem.) > > Per-CPU caches should be relatively small. IIRC in dozens or hundreds of > allocations per CPU. Their drain is expensive and should rarely be > needed, unless you have too little RAM for the number of CPUs you have. > > > or > > - uma_zone_reclaim() needs to be called under other > > circumstances. > > or > > - ??? > > > > How can you tell if a keg/slab is per-cpu? > > (For my simple test system, I only see "UMA Slabs 0:" and > > "UMA Slabs 1:". It looks like UMA Slabs 0: is being used for > > ZFS arc allocation for this simple test system.) > > > > Hopefully folk who understand ZFS arc allocation or UMA > > can jump in and help out, rick > > Before you dive into UMA, have you checked whether ARC size really > shrinks and eviction happens? Considering you mention NFS, I wonder > what is your number of open files? Too many open files might in some > cases restrict ZFS ability to evict metadata from ARC. arc_summary may > give some insights about ARC state. I don't know if this helps, but the original post is here: https://lists.freebsd.org/archives/freebsd-stable/2025-September/003126.htm= l Then you'll find the email thread that follows it here: https://lists.freebsd.org/archives/freebsd-stable/2025-September/003145.htm= l Hopefully Garrett can respond with more information, rick > > -- > Alexander Motin From nobody Wed Oct 22 15:42:11 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4csD1n2Yzxz6ClTJ for ; Wed, 22 Oct 2025 15:42:21 +0000 (UTC) (envelope-from markjdb@gmail.com) Received: from mail-qv1-xf2f.google.com (mail-qv1-xf2f.google.com [IPv6:2607:f8b0:4864:20::f2f]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4csD1l6Pv3z3M2H for ; Wed, 22 Oct 2025 15:42:19 +0000 (UTC) (envelope-from markjdb@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=cSwDzWwH; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=freebsd.org (policy=none); spf=pass (mx1.freebsd.org: domain of markjdb@gmail.com designates 2607:f8b0:4864:20::f2f as permitted sender) smtp.mailfrom=markjdb@gmail.com Received: by mail-qv1-xf2f.google.com with SMTP id 6a1803df08f44-7ea50f94045so11441206d6.1 for ; Wed, 22 Oct 2025 08:42:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761147734; x=1761752534; darn=freebsd.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=FPa6m89FiBaNpcPGKlBhk1GGihfJesq3XGhvWNglBqA=; b=cSwDzWwHPto0WrQV6WCLN4/RL8nflaerX9uqpUGB4h0WJJH/PPs4Z1I/jv/gcKvWut cg8g/XajZ1VU2aWkZFeRLnKN1do6XqEiazqUCDJp6RLqQBR9tFoETWXmvEaQsLmEakBA Y5sSfOrFSfpZ30CsVMp0LcqJasLVFxtg0CPN3LyJAmGz4wwDfSGpKSjmG0wYo3jfKyDr osAcpipY1hA2WbhNpGIRhsUjWaiyKyCVhC7b3EVOF/gCSIhj2jqc6S4r1xlN9BhiweDM BPzxYvuWf8ZODVxDNQB+fpouN4AeTTVNJtdzzd74uuWKsWAHE3XbuAa4SjkLNWTOdVxI QfnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761147734; x=1761752534; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FPa6m89FiBaNpcPGKlBhk1GGihfJesq3XGhvWNglBqA=; b=AGvNgs5KNdCaQ4K7W6Wvp7LDmW2cM86VJMz+nK9DsAL1Uiwi5MnlvN1Vj/2b2P1xAa Ay8IftVik5eccMsZc5ECzRk5seKpwgLVBvQdhAec3gBQIZKRMc3xGw3nJy0z/E7nJF2F nqPDeqjhxy8zD8jMeE6z3ezDesFxfWFjIDkeL6RBrOfdIpyqA7L3Tb1z6TbgtV7mktIi oOgR9sLIZ1HxS2QJMe+NDSE61xRZ5dSHFK29rnrm1h3eO3HqC/hlcQUmqyoHWw4Xe9Vq YYqPohtCnuGJk/NZHY+2HFLifhcCfguwIyu5oEiZs/LR+541IaIjzwY8OeefwlRh+qC2 OFtA== X-Gm-Message-State: AOJu0YyhS/Pbr251i68dLRJ62jz6Zy7+EPnT9LqhfdgSSl6a2gW53ckA Waanyf9EOu0NNA8KSFHUFgRQFMlBS+doMs3qXYpVJc4HGj9yjcDD48kexbNDYIuGb8hY5g== X-Gm-Gg: ASbGncuTuTo7uPQ9XzaYO4v3tK2QZsFqMeHaxdag8j7mo4kA/KVAUqewhAqM+/pNN+d TSMDRdePqukheblVDLrq7VZF+yrLudczerJJs2AFf0u2vpxaNq2rx5Atheke/KKcRehZCSeohkb k9swr9Zq9jQ4OjlrSfAsl/XRIdPRizmRLkEkC5S9eWQ7++XDhjs6Q+zQ2bxEeEpwVyItEsgl75R 56UiaEGjdO7qB3XNmDw11xj4RoQaPK5PfRIOyvNeOWJiUAvapXlHgWsEuUfdaJy5neM2demrt3H DPO+EPZi598JLfWnH346jcDsPceNMy5trnsoIbKTu+FsvFNpjb3RusXJQQ3lMulC9mxYoe//hOo 7w8Be6IbM1glrvI3L8yFCp4ghHLiNmoJou8SCbHjhQQZ3m66302sntboC2/nEjANIJjAMzLdp3k 3FvciUI6k= X-Google-Smtp-Source: AGHT+IHTvxravF7mm1gvhVwF1HnD40IyE7w/FLYhkrlgsYtI6p2Ku+s4S68mjrGfPhevCJSWCucD4g== X-Received: by 2002:a05:6214:b61:b0:87c:2470:160e with SMTP id 6a1803df08f44-87dfdbace15mr23025336d6.32.1761147734085; Wed, 22 Oct 2025 08:42:14 -0700 (PDT) Received: from nuc (192-0-220-237.cpe.teksavvy.com. [192.0.220.237]) by smtp.gmail.com with ESMTPSA id 6a1803df08f44-87d02d90b05sm90618186d6.63.2025.10.22.08.42.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 22 Oct 2025 08:42:13 -0700 (PDT) Date: Wed, 22 Oct 2025 11:42:11 -0400 From: Mark Johnston To: Rick Macklem Cc: FreeBSD CURRENT , Garrett Wollman , Peter Eriksson , Alexander Motin Subject: Re: RFC: How ZFS handles arc memory use Message-ID: References: List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spamd-Bar: - X-Spamd-Result: default: False [-1.10 / 15.00]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; MID_RHS_NOT_FQDN(0.50)[]; FORGED_SENDER(0.30)[markj@freebsd.org,markjdb@gmail.com]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36:c]; MIME_GOOD(-0.10)[text/plain]; DMARC_POLICY_SOFTFAIL(0.10)[freebsd.org : SPF not aligned (relaxed), DKIM not aligned (relaxed),none]; RCVD_TLS_LAST(0.00)[]; TO_DN_ALL(0.00)[]; FREEMAIL_TO(0.00)[gmail.com]; ARC_NA(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::f2f:from]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_FIVE(0.00)[5]; TO_MATCH_ENVRCPT_SOME(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; RCVD_COUNT_TWO(0.00)[2]; FROM_NEQ_ENVFROM(0.00)[markj@freebsd.org,markjdb@gmail.com]; DKIM_TRACE(0.00)[gmail.com:+]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; RCVD_VIA_SMTP_AUTH(0.00)[]; TAGGED_RCPT(0.00)[]; MISSING_XM_UA(0.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim] X-Rspamd-Queue-Id: 4csD1l6Pv3z3M2H On Wed, Oct 22, 2025 at 07:34:39AM -0700, Rick Macklem wrote: > Hi, > > A couple of people have reported problems with NFS servers, > where essentially all of the system's memory gets exhausted. > They see the problem on 14.n FreeBSD servers (which use the > newer ZFS code) but not on 13.n servers. > > I am trying to learn how ZFS handles arc memory use to try > and figure out what can be done about this problem. > > I know nothing about ZFS internals or UMA(9) internals, > so I could be way off, but here is what I think is happening. > (Please correct me on this.) > > The L1ARC uses uma_zalloc_arg()/uma_zfree_arg() to allocate > the arc memory. The zones are created using uma_zcreate(), > so they are regular zones. This means the pages are coming > from a slab in a keg, which are wired pages. > > The only time the size of the slab/keg will be reduced by ZFS > is when it calls uma_zone_reclaim(.., UMA_RECLAIM_DRAIN), > which is called by arc_reap_cb(), triggered by arc_reap_cb_check(). > > arc_reap_cb_check() uses arc_available_memory() and triggers > arc_reap_cb() when arc_available_memory() returns a negative > value. > > arc_available_memory() returns a negative value when > zfs_arc_free_target (vfs.zfs.arc.free_target) is greater than freemem. > (By default, zfs_arc_free_target is set to vm_cnt.v_free_taget.) > > Does all of the above sound about right? It's been a while since I've looked, but that sounds roughly correct. Note that the vm_lowmem eventhandler is invoked when fewer than v_free_target pages are available, and this should pressure ZFS into shrinking the ARC. > This leads me to... > - zfs_arc_free_target (vfs.zfs.arc.free_target) needs to be larger > or > - Most of the wired pages in the slab are per-cpu, > so the uma_zone_reclaim() needs to UMA_RECLAIM_DRAIN_CPU > on some systems. (Not the small test systems I have, where I > cannot reproduce the problem.) The number of wired pages belonging to per-CPU caches should be fairly small, since the size of each CPU's cache is bounded to 2*bucket size*ncpu items. For instance, the ZFS ABD chunk zone on my build system has $(sysctl -n vm.uma.abd_chunk.bucket_size) == 220 items per bucket. Each item is a page, so that gives an upper bound of 220*2*32 pages in the ABD zone per-CPU caches. That's about 56MB, which is not a huge amount on this system with 128GB of RAM. > or > - uma_zone_reclaim() needs to be called under other > circumstances. > or > - ??? > > How can you tell if a keg/slab is per-cpu? > (For my simple test system, I only see "UMA Slabs 0:" and > "UMA Slabs 1:". It looks like UMA Slabs 0: is being used for > ZFS arc allocation for this simple test system.) A slab is the backend allocation unit for (most) UMA zones. A keg is a structure which manages slabs. When the frontend needs to allocate a new item, it asks the keg for one; the keg then either returns an item from an existing slab, or allocates a new slab from the VM system. The frontend is a "zone", it employs per-CPU caching to try and make the allocation and free paths cheap and scalable, i.e., in the common case there is no need to acquire any locks. The zone maintains several "buckets" of free items per CPU. When an allocation misses in the per-CPU cache, a per-zone linked list of full buckets is used. If that list is empty, we go to the keg and ask it to give us more items. When a keg allocates a slab, it must also allocate a structure which tracks the state of each item within the subdivided slab. These are the "UMA Slabs" zones you referred to. For some types of items, the slab header can be stored within the slab itself, so no explicit allocation is required. For other cases (including ZFS ABD buffers which are used to populate the ARC), a separate allocation from these zones is required. > Hopefully folk who understand ZFS arc allocation or UMA > can jump in and help out, rick > From nobody Wed Oct 22 20:46:50 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4csLng61klz6DMRP for ; Wed, 22 Oct 2025 20:47:19 +0000 (UTC) (envelope-from pen@lysator.liu.se) Received: from mail.lysator.liu.se (mail.lysator.liu.se [IPv6:2001:6b0:17:f0a0::3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4csLnd3kR0z4PGS; Wed, 22 Oct 2025 20:47:17 +0000 (UTC) (envelope-from pen@lysator.liu.se) Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=pass (policy=none) header.from=lysator.liu.se; spf=pass (mx1.freebsd.org: domain of pen@lysator.liu.se designates 2001:6b0:17:f0a0::3 as permitted sender) smtp.mailfrom=pen@lysator.liu.se Received: from mail.lysator.liu.se (localhost [127.0.0.1]) by mail.lysator.liu.se (Postfix) with ESMTP id 08813302B; Wed, 22 Oct 2025 22:47:04 +0200 (CEST) Received: by mail.lysator.liu.se (Postfix, from userid 1004) id DC3B1310A; Wed, 22 Oct 2025 22:47:03 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on hermod.lysator.liu.se X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=disabled version=4.0.1 X-Spam-Score: -1.0 Received: from smtpclient.apple (unknown [IPv6:2001:9b1:25fc:8e00:a0f0:6652:1f76:d1f7]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.lysator.liu.se (Postfix) with ESMTPSA id 001613026; Wed, 22 Oct 2025 22:47:00 +0200 (CEST) From: Peter Eriksson Message-Id: Content-Type: multipart/mixed; boundary="Apple-Mail=_1264604B-2605-4B3A-828A-D40F44EB733D" List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3864.100.1.1.5\)) Subject: Re: RFC: How ZFS handles arc memory use Date: Wed, 22 Oct 2025 22:46:50 +0200 In-Reply-To: Cc: FreeBSD CURRENT , Garrett Wollman , Alexander Motin To: Rick Macklem References: X-Mailer: Apple Mail (2.3864.100.1.1.5) X-Virus-Scanned: ClamAV using ClamSMTP X-Spamd-Bar: - X-Spamd-Result: default: False [-1.77 / 15.00]; SUSPICIOUS_RECIPS(1.50)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-0.997]; NEURAL_HAM_SHORT(-0.97)[-0.973]; DMARC_POLICY_ALLOW(-0.50)[lysator.liu.se,none]; MV_CASE(0.50)[]; R_SPF_ALLOW(-0.20)[+a:mail.lysator.liu.se]; MIME_GOOD(-0.10)[multipart/mixed,text/plain]; RCPT_COUNT_THREE(0.00)[4]; RCVD_TLS_LAST(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; TO_DN_ALL(0.00)[]; FREEMAIL_TO(0.00)[gmail.com]; ASN(0.00)[asn:1653, ipnet:2001:6b0::/32, country:EU]; FROM_HAS_DN(0.00)[]; ARC_NA(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; MID_RHS_MATCH_FROM(0.00)[]; R_DKIM_NA(0.00)[]; TAGGED_RCPT(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~,3:+] X-Rspamd-Queue-Id: 4csLnd3kR0z4PGS --Apple-Mail=_1264604B-2605-4B3A-828A-D40F44EB733D Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 I too am seeing this issue with some of our FreeBSD 14.n running = =E2=80=9Cbackup=E2=80=9D servers. However they are not NFS servers - = they are rsync targets backing up the user-facing NFS(&SMB) servers.=20 Every now and then (once a month) I see the load numbers spiking and = disk I/O going thru the roof - and then performance grinds to a virtual = halt (responds extremely slowly to shells/console I/O) for many hours, = before it resolves itself (partly). A reboot fixes the issue better = though, and then it runs fine for a couple of months before it happens = again. Our user-facing (NFS & SMB-serving) servers are all still running = FreeBSD 13.x though in order to avoid running into this issue - but = eventually we will be forced to upgrade to 14 when 13 gets EOLd next = year (so it would be nice if this issue could be fixed before that = :-)...=20 Our 14.3-running servers involved have each 512-768GB of RAM, many many = (22k on one 111k on the other) ZFS filesystems and many files and = directories (somewhere around 1G on one 2.5G on the other).=20 I=E2=80=99ve seen some posts that this issue (or something similar) has = been seen in the Linux world too and there is (I think) was related to = inodes/vnodes directory caching causing pinned memory being allocated = that couldn=E2=80=99t be released easily - and since my rsync backup = servers will scan all files/directories when doing backups this sounds = plausible=E2=80=A6 Here=E2=80=99s a graf showing some measurements when this happens - the = grafs aren=E2=80=99t perfectly aligned but things starts at 22:00 when = the backups start - when the load number starts to spike, and at the = same time something causes the vfs_numvnodes counter to drop = drastically. The ZFS memory usage doesn=E2=80=99t seem to be happening = much at that time though=E2=80=A6 We measure a lot of different values = so let me know if there=E2=80=99s some other number someone would like = so see :-) --Apple-Mail=_1264604B-2605-4B3A-828A-D40F44EB733D Content-Disposition: inline; filename=FB14-ZFS-Memory-Load.png Content-Type: image/png; x-unix-mode=0600; name="FB14-ZFS-Memory-Load.png" Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAABNcAAAJQCAYAAACtjoJ+AAAABGdBTUEAALGPC/xhBQAAACBjSFJN AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAUGVYSWZNTQAqAAAACAACARIA AwAAAAEAAQAAh2kABAAAAAEAAAAmAAAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAATXoAMABAAA AAEAAAJQAAAAAP9Do/8AAAFZaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHht bG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6 UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5z IyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5z OnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIj4KICAgICAgICAgPHRpZmY6T3Jp ZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAg IDwvcmRmOlJERj4KPC94OnhtcG1ldGE+Chle4QcAAEAASURBVHgB7N0JfFNV+jfwX7e0TbrTzVJo yypIBREUFEEBF1xwAR3BEZwBHXEU3EUdEFAEFfcRUPE/wqi44YK+oI7oAKOgiIogiFTWUpZC96Rt 0uV9zk2Tpmm2lqYbv+sHk9x77rnnfk/apk+fc05AbFxSNbhRgAIUoAAFKEABClCAAhSgAAUoQAEK UIACDRYIbPAZPIECFKAABShAAQpQgAIUoAAFKEABClCAAhTQBBhc4xuBAhSgAAUoQAEKUIACFKAA BShAAQpQgAKNFGBwrZFwPI0CFKAABShAAQpQgAIUoAAFKEABClCAAgyu8T1AAQpQgAIUoAAFKEAB ClCAAhSgAAUoQIFGCjC41kg4nkYBClCAAhSgAAUoQAEKUIACFKAABShAAQbX+B6gAAUoQAEKUIAC FKAABShAAQpQgAIUoEAjBRhcayQcT6MABShAAQpQgAIUoAAFKEABClCAAhSgAINrfA9QgAIUoAAF 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 9ifQVoJrSj61YyePC9o0VXDN1sthYeEyHLUryiWwtmdPln0RB/VzolQy69TPmva8tURwjQsatOd3 FO+NAhSgAAUoQAEKUOCkESgqLoL6x40CFKAABVqXQFOtFO3rXamhqa4WLeDPCF8FG16OCxo03Ixn UIACFKAABShAAQpQgAIUoAAFKEABClBAE2BwjW8EClCAAhSgAAUoQAEKUIACFKAABShAAQo0UoDB tUbC8TQKUIACFKAABShAAQpQgAIUoAAFKEABCjC4xvcABShAAQpQgAIUoAAFKEABClCAAhSgAAUa KcAFDRoJx9MoQAEKUIACFKAABU5egeKSIqjV3Zp6KykpRnm5GZGyohs3ClCAAhRwL1BaavLL90tV b6mpzC/f413djVrdubCo0NUh+z5//cyxX6CdPVE/S9Xmj5/TjlSOfRcQG5fEdboddficAhSgAAUo QAEKUIACFKAABShAAQpQgAI+CnBYqI9QLEYBClCAAhSgAAUoQAEKUIACFKAABShAAWcBBtecRfia AhSgAAUoQAEKUIACFKAABShAAQpQgAI+CjC45iMUi1GAAhSgAAUoQAEKUIACFKAABShAAQpQwFmA wTVnEb6mAAUoQAEKUIACFKAABShAAQpQgAIUoICPAgyu+QjFYhSgAAUoQAEKUIACFKAABShAAQpQ gAIUcBZgcM1ZhK8pQAEKUIACFKAABShAAQpQgAIUoAAFKOCjAINrPkKxGAUoQAEKUIACFKAABShA AQpQgAIUoAAFnAUYXHMW4WsKUIACFKAABShAAQpQgAIUoAAFKEABCvgowOCaj1AsRgEKUIACFKAA BShAAQpQgAIUoAAFKEABZwEG15xF+JoCFKAABShAAQpQgAIUoAAFKEABClCAAj4KMLjmIxSLUYAC FKAABShAAQpQgAIUoAAFKEABClDAWYDBNWcRvqYABShAAQpQgAIUoAAFKEABClCAAhSggI8CDK75 CMViFKAABShAAQpQgAIUoAAFKEABClCAAhRwFgh23hERGYmoqGgEBQU5H+JrClCAAhSgAAUoQAEK UIACFKAABShAAQqc9AKVlZUoKixESUkx6gXXVGAtL/84qqurT3ooAlCAAhSgAAUoQAEKUIACFKAA BShAAQpQwFkgICAQcbFxWnCt3rBQlbHGwJozGV9TgAIUoAAFKEABClCAAhSgAAUoQAEKUMAqUF1d ZR/1WS+4RiQKUIACFKAABShAAQpQgAIUoAAFKEABClDANwEG13xzYikKUIACFKAABShAAQpQgAIU oAAFKEABCtQTYHCtHgl3UIACFKAABShAAQpQgAIUoAAFKEABClDANwEG13xzYikKUIACFKAABShA AQpQgAIUoAAFKEABCtQTYHCtHgl3UIACFKAABShAAQpQgAIUoAAFKEABClDAN4HGBdcMndCzT19k 9umFVINvF2qRUlo7/dhGf9ffImi8KAUoQAEKUIACFKAABShAAQpQgAIUoICvAsG+FrSVMwyfjcXT hiDWbIYZOuh0edjw/E2Y+5XRVqRBj6PufRmDji7EI8u2NOg8nwqfMRmz7+uHrU9dibn/8+mMhhXy d/0Naw1LU4ACFKAABShAAQpQgAIUoAAFKEABCjSzQAMz1/ri79cPQcjWZ/Gna0fhmmtH49kfdRh8 /V3IjOkqmWxdEeNwAzEZkt2WEWvfo73u0Qm2ZDdDx17omdENPXvIuQ774aIubZ8q45Qt5lyn/WI+ PTEgtUfdNtpPq8nO69nR1lr7EZzYNWvr4TMKUIACFKAABShAAQpQgAIUoAAFKECBti3QwMy1CITo 1A3rEKLdtxFrZl+JNep5xzuxaO7FMC4dhXs/UDsG4pZH5iNz23TcuCgWD7/0AAYbVLabnG3ejtfv vwfZ4/6BoanyOvFmzL63N5685VkYHnwddw2KgCTGSVZcSW1W3Jj7MW+4DruNyUiNlYw54//w8c7e GNU/QsrpkL/xCdw67wv4nD+XcRteeHIMukiLzHI+jnyNl+56DGukgoxJL+Pp0d1Q0wgY7XV3xdgn n8FNPXXaIXN+nrpRbhSgAAUoQAEKUIACFKAABShAAQpQgAInqUADM9e+wVsrvocl8+94472P8dqT s3HbxX2tmWgHX8WanUCXQddbXw+5HP1j92Pz8k3AmDEYLM8/vkllu92O17/LhzkR2LjgBqzeDZT8 +ASuueUxbLz4H7h5UAm+vFOVG4U71pRg8KR/YJStcyQGtnWeHLvpJWw1DMEIw1LcKOX+vHI/YgeN wVhbOa+PnXDbvWOQenQF7lAZeOOfkPouwE1TBsqZnZCKw9i49BatDdcs/BkGqXu8qvPiyRjbE9j8 /Fg5NhZzt5kR4fVaLEABClCAAhSgAAUoQAEKUIACFKAABSjQXgUaGFwD9nzyIG4cfxNmLvsau9Eb I297BosfvEgCaka8vzFL0r7OxSgZSTlqRD9EZG/B+weFbs0m7DZ3xqiX/oUFD44BvnsJK3+qTzqo fzdEmHXoMvVlvPDsy7irp2SwRcRJsKtmM+/Hb3vkuTEPJZLZdnTPp1qmWsHO/SiR3VpSna2sx8eL capUmv3jQqjqYPwC634vQWxHFVw7gPUrPsVvEeMwW9qwaFxve71a+0p+xpfa/HJGbP3qDxzxeB0e pAAFKEABClCAAhSgAAUoQAEKUIACFGjPAg0LrtnmO5MA1I+fPIe591+LG1dk1WaNffA5tpq7YdDF l2NQDx1+W/MqspXewSWYevMteGnlDuTHDsT4h97CCxM61XM1WiRiZs7D7t934Df1b9s3+PKzz7G5 XskT3VGiDet0XcvlmP3SfIw/Q0aKrl+BhSt+1gJ3qqzWPtcncS8FKEABClCAAhSgAAUoQAEKUIAC FKDASSjQsOCacSBueuSfmHfv5UhV8/wb+mJUj2QZ15mHoxrep/hShkp2uWQceuqysPED6wxoiVfM xqKHxsH4+ZMSkJPhn0d0kiXW2c6tM1gHV27dKhloEckw7HwVCxc9h9XmJJwq5XzPSLNX6eXJN9iZ bUZq/zuRqe4j5hqM7BGBIwdlCCs6IzaiBDs/eQwLP/gGSE22X9/avn4YOVwt0mDAiDEDkeTlSjxM AQpQgAIUoAAFKEABClCAAhSgAAUo0H4FGrigwQd4ZVlf/GPCXVj81l1WFfNhrFv0GFbXGK3/bBNu mXUBQn5cjvdr9h396htkj3kA/3j9XFk+QBYjMP+M19+WwJVsq3/ajlFj7sKnbw7EEzc8hlczX8Hf p63EB1OkpM6MrUuXYGNNPY17iMDg+9bg0/tqzi75n1znEbz6wlJ0eexmzHvrCu1Aye7P8dwiFVyT +9l6MW6atlraIIl0R/PUkgfWkz+X9vWXBRemvY9Pp0EWUfhecvh611TMBwpQgAIUoAAFKEABClCA AhSgAAUoQIGTTSAgNi6p2vGmO3VOw9Fc7zOJxWT0lan/92PrnnzH02XV0PuxaOG5yH7qSsz9X91D ho69ZP60/dh50JrRVveo46tYZEgm2dHfD/i++qfj6Q14rtqUaNyBPQV1T/LY1piu6Gk47MN91K2T ryhAAQpQgAIUoAAFKEABClCAAhSgAAXah0BiQhIO7N+HRgfXXDGMeuRNTJRhojpZhfOeu2oWC3BV kPsoQAEKUIACFKAABShAAQpQgAIUoAAFKNCGBWzBtQYOC/V0x0n4bf0nWP3jH/j4k01wSgTzdCKP UYACFKAABShAAQpQgAIUoAAFKEABClCgTQo0YXDtCPZ89Tb2tEkGNpoCFKAABShAAQpQgAIUoAAF KEABClCAAg0XaNhqoQ2vn2dQgAIUoAAFKEABClCAAhSgAAUoQAEKUKDdCjC41m67ljdGAQpQgAIU oAAFKEABClCAAhSgAAUo4G8BBtf8Lcz6KUABClCAAhSgAAUoQAEKUIACFKAABdqtAINr7bZreWMU oAAFKEABClCAAhSgAAUoQAEKUIAC/hZgcM3fwqyfAhSgAAUoQAEKUIACFKAABShAAQpQoN0KMLjW bruWN0YBClCAAhSgAAUoQAEKUIACFKAABSjgbwEG1/wtzPopQAEKUIACFKAABShAAQpQgAIUoAAF 2q0Ag2vttmt5YxSgAAUoQAEKUIACFKAABShAAQpQgAL+FmBwzd/CrJ8CFKAABShAAQpQgAIUoAAF KEABClCg3QowuNZuu5Y3RgEKUIACFKAABShAAQpQgAIUoAAFKOBvAQbX/C3M+ilAAQpQgAIUoAAF KEABClCAAhSgAAXarQCDa+22a3ljFKAABShAAQpQgAIUoAAFKEABClCAAv4WYHDN38KsnwIUoAAF KEABClCAAhSgAAUoQAEKUKDdCjC41m67ljdGAQpQgAIUoAAFKEABClCAAhSgAAUo4G8BBtf8Lcz6 KUABClCAAhSgAAUoQAEKUIACFKAABdqtAINr7bZreWMUoAAFKEABClCAAhSgAAUoQAEKUIAC/hZg cM3fwqyfAhSgAAUoQAEKUIACFKAABShAAQpQoN0KMLjWbruWN0YBClCAAhSgAAUoQAEKUIACFKAA BSjgbwEG1/wtzPopQAEKUIACFKAABShAAQpQgAIUoAAF2q3ASRdci0+Ib7edeTLeGPuzffU6+7P9 9Cf7sv30pboT9mf76U/2ZfvpS35tsi/bl0D7uht+r2V/ti+B9nM3/vzaPOmCa+3nbcE7oQAFKEAB ClCAAhSgAAUoQAEKUIACFGhpAQbXWroHeH0KUIACFKAABShAAQpQgAIUoAAFKECBNisQfCItj4mJ wcUXXqpV8fl/VqGgoMBeXWpqZ5w/dDiyD2Zj/f++RmVlpf0Yn1CAAhSgAAUoQAEKUIACFKAABShA AQpQoD0INDpzrXPnNDzx+HPIzOyHXr36YMGT/0Rmn76ayaBB5+Kx2U8iLS0D140djwfum4GgoKD2 4MV7oAAFKEABClCAAhSgAAUoQAEKUIACFKCAXaDRwbW+mf1hKjXiiacew6w5D6G4qAhn9DtTq/iS iy7Dd99vwNx5j+DFl55Gp9Q0nH3WufaL8gkFKEABClCAAhSgAAUoQAEKUIACFKAABdqDQKODa3v3 7UZ4mB4jhl+EUZdcgdDQMGzf8SsSEhLRIS4e2dn7NZ8dv/2K0jIT0tPS24MX74ECFKAABShAAQpQ gAIUoAAFKEABClCAAnaBRs+5diB7H/Ly83DFZVdrlRUVF8jr4wgPD0e17FHPbVtQYJAWfLO95iMF KEABClCAAhSgAAUoQAEKUIACFKAABdqDQKODa9dc9SdUVVXilikTtMUKZj8yD1dfORavLFmIyooK xHeI13zUXGtmiwV5ecfqeen1eugN+nr7/bkjLraDP6tn3c0swP5sZnA/X4796WfgZqyefdmM2M1w Kcf+/FOnfJyXUILbf+zUDFfmJZpawLEvm7pu1tf8AuzP5jf31xXZl/6SbZl62Z8t4+6vq7I//SXb /PV660uT0QSTydSohjU6uKYCY0CAdlEVQFMN0OlCUVxchJxDB2WhgzPw6aqPcdbAwYiMiMDefXvq NVCd09iG16usATuO5dYP9DXgdBZtZQLsz1bWISfYHPbnCQK2otPZl62oM5qgKao/E8OqcF5sMQIq q8H+bQLUFqqCfddC8H66LPvTT7AtUC37sgXQ/XhJ9qcfcVugavZnC6D76ZL+6stGz7m26rNPEBUV jbff/BhvvfEhumR0xSeffqDd/ooP30HHlFRt/7Q77sW3G7/Bll9+8hMNq6UABShAAQpQoDkEokOr UVoZgDL5x40CFKAABShAAQpQgAIUsAo0OnNt9+4sTL3zFpeO6tiU2//i8hh3UoACFKAABSjQNgVi dFUoMgcgRoJs3ChAAQpQgAIUoAAFKEABq0CjM9cISAEKUIACFKDAySUQratGoaXt3XP/DhYsH1nY 9hrOFlOAAhSgAAUoQAEKtAkBBtfaRDexkRSgAAUoQIGWF1DBtSJz2/voMDCxAinhlS0PyBZQgAIU oAAFKEABCrRLgbb3CblddgNvigIUoAAFKND6BazDQtveR4eBiWbkmYNaPzBbSAEKUIACFKAABSjQ JgXa3ifkNsnMRlOAAhSgAAXavoBa0KDY0rYWM+gZXYkQ+bRTZG77/rwDClCAAhSgAAUoQIHWKcDg WuvsF7aKAhSgAAUo0OoE2uKw0JIKILBtxQNbXb+zQRSgAAUoQAEKUIACngUYXPPsw6MUoAAFKECB k1agR0wl3r2wwH7/0bJaaElF24pU6WVd9DIJsHGjAAUoQAEKUIACFKCAvwQYXPOXLOulAAUoQAEK tHGB0MBqnBZbG5nSMtfK/XdTp0ow7+0RTbuqpz6oGqWVbSsg6D9h1kwBClCAAhSgAAUo4A8BBtf8 oco6KUABClCAAu1AIEwCU9XVtYGpGG3OtUCUSbBqYIJFu8Ohp1jwZhMFxNKjKtBTgnkhAdVNpqcP rpLMNX7caTJQVkQBClCAAhSgAAUoUE+AnzbrkXAHBShAAQpQgAJKIFyGVFbWUATLJ4ZgCXplFQVh xe4w3NSzFPrgalzWuQwdwqpOCExlx624qABnxltwvCwQ0WFNF1xT91Bqu4kTaiVPpgAFKEABClCA AhSggGsBBtdcu3AvBShAAQpQ4KQXMEjWl1my1IIkeS09shL7S4I0ky+ydfi9IBhzBpZADRU9Yjqx jxPHJKCWKAG6kR3NyDEGIkbqbKpNHyLDQtvYPHFNde+shwIUoAAFKEABClCgeQRO7NNw87SRV6EA BShAAQpQoAUEIiXIZZasL11AlWSxVaPIXDtE9F3JXiuXwNvC7fomaVleeQC+zNFJcC1Igmsnlgnn 2CCVXaeGsXKjAAUoQAEKUIACFKCAvwROKLgWFBSE84eNxJ/H34TU1M512qheq/3quCrHjQIUoAAF KECBtiUQJVlf5RLnCpG51zrqK3HYIUPtkDx/+PuIE85as4kUmAMxd3ME8iWA15SZayooyOCaTZmP FKAABShAAQpQgAL+EGh0cE0FzB6d/STGXH0d0tIy8Jg8HzToXK2N6lG9VvuvGzseD9w3gwE2f/Qe 66QABShAAQr4USBCgmtllYGSuQacYqjCoVLXHxtSI6qw7IKmWeUzXzLY1FDTptr0as612gVPm6pa 1kMBClCAAhSgAAUoQAG7gOtPyfbD7p+MGH4RQkJ0mDHrfsyd9wjWrf8aXTO6aSdcctFl+O77Ddr+ F196Gp1S03D2WdbAm/saeYQCFKAABShAgdYkEBUiK23KkMqQoCqkSObaQRmy6WrbdCREjlehsYMv VVacmndNbSqDLS6s6VYgUMNCOeeaq17jPgpQgAIUoAAFKECBphJodHAtrXMGystLce/dD2Ppv95F UHAQ3n73DSQkJKJDXDyys/drbdzx268oLTMhPS29qdrMeihAAQpQgAIUaAYBNedamWR96WSVUBU8 U4sNOG9HJJttugwPLbQEIFIy3Rqz9YytxO+F1sBdfrkE10IbV4+ra+slMFgq2XetecvsUIGPL86X fwWtuZlsGwUoQAEKUIACFKCAGwEZLNG4LSkxGd269cTSZUu0QNrtf78bJqMR67/5L9RH4rz84/aK gwKDEBoaZn/NJxSgAAUoQAEKtH6ByBCgSn6oP9nvIKorVOaa+yBVkWScRYVWocjiOrvN092em2zG 4pqFEQpkWGhTBtfC28Cw0I6GSi3rr09cBUICq2GpamwOoCdlHqMABShAAQpQgAIU8JdAo4NrBYX5 2L07C6s/+0Rr2w8/fIeM9K5Y+emHqKyoQHyHeG2/mpvNbLEgL+9YvXvQ6/XQG5pmlbF6lbvZERfb wc0R7m6LAuzPtthr7tvM/nRv09aOsC/bWo+5bm+coVSyvgKgD6nAf45FI6pDguuCsrc80IzOiTEo Cw91W8bVgbM7mBCiM+NwUDLipfpqgxnJUUflufVzhKtzGrIvNsICXUQ0QmUF0qaqsyHX96XsoNRc rMsLQwdDAXp1jEFOmUQ1/bTxa9NPsC1ULfuzheD9cFn2pR9QW7BK9mcL4vvh0uxPP6C2UJXe+tJk NMFkMjWqdY0Orv2+6zf07pWJLl26Yd++PejcKR0FhXkoLi5CzqGDyMw8A5+u+hhnDRyMyIgI7JUy zptqdGMb7lxXQ14fy60f6GvI+SzbugTYn62rP060NezPExVsPeezL1tPXzS2JWEoxyFTEPJDAzHz G5W15v7nZ26xGZXGPBzL9RwY6hRRiWcHl+CJn/XYJGUHdC7ByqwQOc9ad1R5pUwnYbG/bmzbu0VX Yv7ZJcgrC8ARSaYvTyk/4Tob2xZv53U/vQgP/BKBWAQhpOyYV0Nv9Xk7brP2Vo7H24YA+7Nt9JMv rWRf+qLUdsqwP9tOX/nSUvanL0pto4y/+rLRwbU1X32B0zP74fHHnoYa9nnocA7+tewVTXPFh+/g PpmL7a03PkR1VRVWffYptvzyU9uQZispQAEKUIACFIBOhieqTc25FiBzrnnbisyyyqcPc651iapE sZS9qWcpjpgCkShzuf2//bXZbtklgUiVANyJbmVSRbeoCmRJwCpQ4oIlFa1zqGVfGQpaIvPVZZcE 4bDMX5cUVnWit87zKUABClCAAhSgAAWaWaDRwbXKykoseGaey+aq4aJTbv+Ly2PcSQEKUIACFKBA 6xdIj6rSAj5miau5n2mt9j4KJWDmy4IG3SIr8dWhEPSRRQz+3LMMvxyv+1HELPONqXneVHBPPVfb qTGVmHtWMcZ8EVN7QS/PDDL1W6HM3xYriyNszw9GVwnq6YKkThnm2po2FfSrrra26bBkCSZJsJEb BShAAQpQgAIUoEDbEvDl83LbuiO2lgIUoAAFKECBExaolBhPoMR8KiQYpR69bcWWQETLggbetq4y XPOPwmB8czgEI1LM8qird4pJMrkMDqNLzRJt6x0rKXQN2PTBVThWHqRl06n68spkFVJZ/bS1bVEy F1yRtE9thyWTLyncu2Fruwe2hwIUoAAFKEABCpzsAgyunezvAN4/BShAAQpQwIWALeijssd8iK1B Za5FuRkW2ksyzz64qFC7SlcZqvlHURB2SoBtnWSwbcurm7mmChkloGcIqQ0yaW3wpREO96GX4Nzx MiBYstVUSC2vJovNoUireBolAb9Cs7Uph2RYaCKDa62iX9gIClCAAhSgAAUo0BABBtcaosWyFKAA BShAgZNEwBb0qdAy2GoDXe5uv9gsmWuSheVqU4EtNf/ZqM7lOFoahCMSRNpZEITZmyNcFYfRAqhh nbbNooZySoSsIfE1Q3A1jkm22rtZYVo1eWVBMkTUdfts1/H02EMChO9daA0Qeirn7Ziq590LC+zF 1Dx1RWKnNrMMEVVDV7lRgAIUoAAFKEABCrQtgfp/Lm5b7WdrKUABClCAAhTwg4At6KOGhAb4ENUq lKGN7jLXVPNUNlofGdq5r9j73/WMMsTUmrlWG2HT5mGTwFO5CrT5sKlhoQeMwVj0a7hW+riWudb4 4FoHXSV6xDRsaKqrZqrhtqmGKtzcy4TzUyxYJYs5qKw/teXJY2c5xo0CFKAABShAAQpQoG0JeP+E 27buh62lAAUoQAEKUKCRAmolzxU1wzcjteGKAbDIsFBfPiyoFUCjZfEAd5tRgm9nxldgW4H3v+uZ JIblOOeaqrNKJv0P9aUhNQ1Qw0JNkgFn2/LKAhB3AitxnmKQwJ7KLKtZRdVWb0Mf1XDbA7Ii6pgu 5egg7YkW5+KaOdfKZYVTnWTccaMABShAAQpQgAIUaFsCDfiY2rZujK2lAAUoQAEKUKCBAtVq4QBr RMoW9LFIwMeXXDGV06WystxtJglMdZPFDFzNseZ8jrFCMtck88xxU5lroQ0IPBmCqmCSemxbXnkg 4sNqA1dqHrj3ZHim3sc6O0dUyvDNugst2OpuyKMabrurMAi/HAvBEVnAIErmliusGRaqAplqNdMg X8AbclGWpQAFKEABClCAAhTwq0Dtp06/XoaVU4ACFKAABSjQ2gVCJaqj5jdTASdb0MciGWO+rBZ6 oDgInSKqEOIms6tKomOf7NMhu6R2qKc7DzXnmt4pwU2F2hqSNabONzqM4jwumWtqWOqbI6zzppVX VmuZY9dklLtrRp39Krimhm06LrRQp4CPL9Rw2yMy79zTv+i1M1SwTWX92TazBDNDOe+ajYOPFKAA BShAAQpQoE0IMLjWJrqJjaQABShAAQr4X0AFjtScZhEquFYT9LFmrtVmfHlqxWFZqCBJXzfjzFa+ UOZRc7eAga2M7dFt5loDgk7hEsQy1Qy3VPXmmYPQU7LV1NDXkIBqRMqw0T2yaumgpJqlOm0Xd/Oo gmvHJCjmuNCCm6Ied9uG29oKqUUgbAsaqH3lkr2m8x5/tJ3ORwpQgAIUoAAFKECBViDA4For6AQ2 gQIUoAAFKNAaBAyS7VUqmVMREvCxBX3UaqG+LGig2n/IKMG1cNfBtYbcnwqKuZ5zrTbDy1t9arVQ k8PiB2rOtTUHddqCCtEyPFQFuQ5JMNDTAgLqXtS/zA4VKJChm2rhgRPOXFNBS4egX6RaLdThtVox NMxN9p+3e+ZxClCAAhSgAAUoQIGWEWBwrWXceVUKUIACFKBAqxNQK2yqudEiJKvLFvQxy4xrvgwL VTejZa6dwKIBNhC1sqhBgk6OmzbnWgMy1/RS1ij3YtuOlQXikR8MKCgPQowEuCIlS69A5mELcVNn jCzO8M8hRZgzsAQpEmBTw11dLbRgq9/XR9twW1t529x2ttdlkrnGYaE2DT5SgAIUoAAFKECBtiHA 4Frb6Ce2kgIUoAAFKOB3AZUtpgJSkZL1ZQv6qDnYfE2kOmwKcjsstCGNVyuLqgUJHDf1SucmEOZY zvZcrRZa6rBaqG1/QXmABNeqtMw1FVyrlGBWbQjOVgpa9lixDGVdsTsM13UtRbAUcjVctfYM357Z htuq0mHirBZpKHHMXFNzrjnNN+dbzSxFAQpQgAIUoAAFKNBSAk0SXOvcOQ3duvWocw+pqZ3x5/E3 4fxhIxEUxMlD6uDwBQUoQAEKUKAVCqgVOtXk+tGhVdpQUBX0qZCUMV+HhR6W1S+bYlioWtCg/rBQ CUY14OOEuhcVDHPe8uX+VOZalGTGqeGZZm2Os7pZcuoclT1WLoHGL7J1+KMoGMkyl5yrhRac6/f2 2jbcVpVT1mtzdHVOUXOuMXOtDglfUIACFKAABShAgVYvcMJ/G+11am9Mv/8RFBTkY9rdt2o3PGjQ ubj15juwK2snzhk8VP4NwRNPPYrKSvlzLDcKUIACFKAABVqlgApoqYBT9+hKmezf+hHBrDLXZAEA XzY1h1liE8y5ZqwMlNVC62auVcuqpQ1bLVQN46yfk5YvmWsqKy9CgmsHZY44bXVOicGVO31EUYG8 8pomfLo/VCvXFJlrtuG2R8Rq8troeqyqHZxzrR4Ld1CAAhSgAAUoQIFWLVD/T7oNaK7KSBtzzTgc zT2C8vIy+5mXXHQZvvt+A+bOewQvvvQ0OqWm4eyzzrUf5xMKUIACFKAABVqfgMr2Uqt6dpQsrQMl 1sBUhQS1AnwMrpVIJlZDssvcCbjOXKtu8LBQxznXbNdSCxPEhVVK5loVSiSzTQXQ1NBM503tUyun qu2X48HvfK4DAABAAElEQVRY8ItBW33UOaPO+Txvr23Dbd2VK69QWXPujnI/BShAAQpQgAIUoEBr FDih4NolF1+G+A7x+F4CabYtISERHeLikZ29X9u147dfUVpmQnpauq0IHylAAQpQgAIUaIUCarXQ QllVMyOqEtsKbJlrslqoj21VCxqkR1Zqk//7eIrLYtqqpRJkctzUggZhPn5qCZfAmEUywNQ5zlu+ zLMWJ4sVqNVC1bBMlZnnKiNOGxZaE1yz1eFqoQXbMV8eQyRIqYbYOs6x5nweh4U6i/A1BShAAQpQ gAIUaP0CPn5MrX8jSYnJuHDEKPxnzWqUldVmrYWHh0N9ls3LP24/KSgwCKGhYfbXfEIBClCAAhSg QOsT0MtQSRV8SjVIcC3PGlyzSGaXr3OuqTvSVgyVzLcT2Qol6KWGbTpuatSmzkWGmWMZ2/O0iCoc ksUVXG1qQQMtuFYzBNasMtdcLJSgMvDKnG7D1UILrq7hbl/nyCpkG123y3aOCva5ao/tOB8pQAEK UIACFKAABVqfgPWTcyPadc3Vf4Kp1IRDh3JwWu9MhOhCtEUNjhw5jMqKCi2jTVWrho6aLRbk5R2r dxW9Xg+9QV9vvz93xMV28Gf1rLuZBdifzQzu58uxP/0M3IzVsy+bEbsJLxUXYUYSQhAYaEZZeBLi w2VhgegyWSnThPiEeJ+ulF9VgZ7JUSgrlJNrtrjQCoTqzD7X4VxevQ4KLEFcVITUEWOr1u1jgJSP 0VtcXq/aYEZy1FGES0BNFyn3JCuHJnWIRVFoaJ36EmJLEBxaWqeOYEMpOkQW1tlX5yQvL/ThFkTI P0+WQeF5iJc/SsaX1p+PzUv1Ph3m16ZPTG2mEPuzzXSV14ayL70StakC7M821V1eG8v+9ErUZgp4 60uT0QSTydSo+2l0cM1oMmrZaDeM/wvCw8IRExODyy+9Cs+98CRyDh1EZuYZ+HTVxzhr4GBERkRg 77499RqoGt3YhterrAE7juXWD/Q14HQWbWUC7M9W1iEn2Bz25wkCtqLT2ZetqDN8bEpQRRl+PVyN a1IqYeu/XDW+srrK/tpbVXuTzAgtz5PytcGqIFnkoNxc7nMdzuXVa3NFJcymYqnDabyoiwY5n+9Y JELS0UypZsRKdtveI3ko7liO0qJ8HJN51Ry38vBy5AfUOqhjOWIRmGzy+T4c61PPY2WhiEKj2eP5 +XGlMqQ1QMrIkql+2mx966fqWW0zC7A/mxncj5djX/oRtwWqZn+2ALofL8n+9CNuM1ftr76s+0my ATe17N9L7KWvuOxqnDdkmBZYUztXfPgO7rv7Ybz1xofyebwKqz77FFt++clenk8oQAEKUIACFGh9 AgaZ5P94WaBkndcOyVTDQldk+55FdViGYyad4LBQVzJq/jSd5xGVrk6rt29vcSAyJMilhl+Wymqi 5iqZc83hfm0nuB4WKpl8Mpy0sZtermOSRRQ8bWrONVdzwHk6h8coQAEKUIACFKAABVpWoNHBNcdm f/L/PoT6Z9t2787ClNv/YnvJRwpQgAIUoAAF2oCAWkjgmMy59ubO2nlSs4qC8OIuNSTUt6zvw6ZA nJvsPbusoRxq+rOmCjqpoFqB3Kfa1LxqrlY4DZNAmG21UK2g/E+t4ll6Areml9VY1bU9beVy3BDm NNmbpxN4jAIUoAAFKEABClCgxQU8//m0xZvHBlCAAhSgAAUo0BwCaoXNSonp7MgPwlO/GBp9yUOy YmiiDONsiu30uAosH1moVVVV3XQZXSoAGCMrhqrNLMEyV0G7UPFQ2W2O224JNMbKeeqf89ZNsuFW XFTgvLvO63AJXpq8BOfKhS40sO5161TCFxSgAAUoQAEKUIACrU6AwbVW1yVsEAUoQAEKUKD5BTrK UM4DXlay9KVVlTKsUa12qfdxZU9XdcZL5laJZHCdEW+BQeo5I8ECbVhoYP2glqvzve3LKwtASE1d 7oaFqiw159VCVb37S4LQOUKtXVp3K5YVTk+TYGBIgPs2qtVYvWWuqYCeq2Gqda/GVxSgAAUoQAEK UIACrUmAwbXW1BtsCwUoQAEKUKCFBFRArMRy4hlTe2ROs98LgnFNRnmj7+TX/GD8Lv+u61qOzw+E 4iwJrlVLzErXJJNZAHnmIMkOswbBVKZYmItPQ+p4mVPmmrohd8E1daxCykeHeQiuSaDQ5G1YqJs5 4FT93ChAAQpQgAIUoAAFWqeAi4+TrbOhbBUFKEABClCAAv4TSJbMtSMypLMptq8P6TBYVg1t6BZ3 Shdce99y7bSvcnTYcCQYy/8IQ9eoSqisL13TNE9btMEWXNMy11xk2ak518pcBML2lwRK5lrtsNcO kmW34qJCnH+KGSqfLUbnPrimht6WSvDM01ZeUe0y2OfpHB6jAAUoQAEKUIACFGhZgSb6G3DL3gSv TgEKUIACFKDAiQkkyzxpR2QusqbYVD0REgxr6BYQEIyE1FO107bmBWNrXoT2/K1d4bggxdxkwyXz y2XoZc0nILME0FzNuaYWOSivP/oTB4qDcF6yxX5rKYYqWRwhABd1KschNZebTgXeXC9rqpdrHjLa T3X5RC2iwGGhLmm4kwIUoAAFKEABCrRagab5FN1qb48NowAFKEABClDAF4FkCRI1VeaaL9dzVSYk NByVlTJvWai+zuHPs3V45bewJgs6HS8L1OaFUxcpV8MwXXwaUsNkXQ4LlXnpVLbaQBmqqraO+kr8 cjwYk9ZG4+uDOo+Za2oeOlOFi4tpNVn/524OOIcifEoBClCAAhSgAAUo0MoEPH/Ca2WNZXMoQAEK UIACFPCPQHJ4JY5I0Kklt1BDFCzmUujC6q9WqmV0NVHz8iTT7J2sMO1WzZJopnORaKaCa+qazpvK entPhqre1LNUO3SKBCXVCqlqU8eiPQwL1QdVeZ1zTQX0bENWtUr5PwpQgAIUoAAFKECBVi/QRB9T W/19soEUoAAFKEABCngQOEXmXDvaRMNCPVzG46HQ8GhYyk0ICbMOB3UsrGV0OawW2iOmEu9fWOBY xOfn22WxhPk/WwN4Zhn66WpYaKhkmZW5GBaqLvKzZKp1knnX3hxRiBTJXDtYs8pqgTkQcWFuTpLz wmVYqKnCczPVAguugn2ez+JRClCAAhSgAAUoQIGWFGBwrSX1eW0KUIACFKBAKxGIk1UuW3pYaGh4 JCylxQgNrx9cC5HAmhrCadvKJUjVI7oShkbM7WarQz1aM+Lqzw+n5lxzNSzUdm6CzFGnEt4y4yqQ Y7RlrklwLbR+XbZz1LDQUm/DQrU54Gxn8JECFKAABShAAQpQoC0IMLjWFnqJbaQABShAAQr4UUAF iHYWuBgb6cdruqo6VB+Fcgmu6VxkruVIdlgnGYKpgmxqUwsmFMu0Zx1ln/Om5kE75uMQV+eMOFtd amhmWaX7j0mf7Q/FWzK0tGtklWSuWcuphQ28Bde8Za6FSXabq+GotnbxkQIUoAAFKEABClCg9Qm4 /9TY+trKFlGAAhSgAAUo4AeBPhJc+621BNdMRS6Da+q2D8vcZkkyfFVtKmOt0BykDctMkiwy9c+2 9YytxO+FvgULtWGhNSuH2s5Xj2HanGuOe2qfqwy/2ZsN+ENWDv1onw4qQKe2fBkWGhta247aM6zP tAUNXMzj5lguR4bmdopwP7TUsSyfU4ACFKAABShAAQq0DgEXHyd9b1hMTAyGDhmO8PAwfP6fVSgo qJ37JDW1M84fOhzZB7Ox/n9fy+pf/KDouyxLUoACFKAABZpP4NxkMxZvr7tCZ/NdvfZKalhoqbFA 5lyrv6CBKnVIMsRUEC27JAgGGWKpFiY4PbYCd/QxoVIS2iwS5Lp5bRQacj/uVwv1PCxUtefXvGD5 VzuEtUraUFVdO3RVlXHcrHOuuT+uylZIbE79s64s6rmsY918TgEKUIACFKAABSjQcgKNzlzr3DkN jz/6DM46axB69eqjPe/SpZt2J4MGnYvHZj+JtLQMXDd2PB64bwaCgnz7C3LLUfDKFKAABShAgZNP 4DQJToXLj+htEihq6S1MhoWWluS7nHNNtU3LXAuzZoapYaHHJIOsf4IFG46EaAsMFJgD8NTgYpgl O8zX+1FlnRc0UENPg+VfpfskNJdU+yXo5ynrTB8sq4VavAfMiqVMhAQPuVGAAhSgAAUoQAEKtA2B RgfXevU8DcePH8Mjsx/ErDkPoby8DEPOPV+760suugzffb8Bc+c9ghdfehqdUtNw9lnntg0RtpIC FKAABShwEgmouclUIKk1bDqVuVZ0XIaFRrpszmFTkH1YqAquqWCbWjV0U24I1Bxoj22OQEF5IJ7a 4jrzzVWlZkk308kQUMdNLWZQLgsLNHRzzDpzPjdcgmUqkFf3Ss6lrK9LLIGI0DUwsue6Ku6lAAUo QAEKUIACFGgGgUYH19Qw0Bmz7teGe6qMteCQEBw4sBcJCYnoEBeP7Oz9WvN3/PYrSstMSE9Lb4bb 4SUoQAEKUIACFGirAipzzVh0TDLXXAfHDst8ZLa51dSw0GIJQn1+QIe1OTptDrRDcvzh7yOgHn3d rKuF1i2dKoskHC5tXMa9u6yztIgqaZdvdaqFGiJC6raJryhAAQpQgAIUoAAFWq+A758+3dyDmnft tlvvxOHDOVi3/muZfy1c+6tsXv5x+xlBgUEIDQ2zv+YTClCAAhSgAAUo4CgQFCTDUgMCYSo+JnOu 1c5j5ljmkGSqJdYsXKAWNNhTpBYWcF3W8TxPz12tFhoomXwV1b7kmNWv2V3WWb7MDxcuw0J92VQd kRwW6gsVy1CAAhSgAAUoQIFWIXBCE6yoedRUYM1sLsdLi57Vstjy8/NRWVGB+A7x2g2qMmaLBXl5 x+rdsF6vh97QvBMox8V2qNcO7mi7AuzPttt3rlrO/nSl0jb3sS/bTr/FhVYgVGdGfIL157arltv6 M7nLAJw2bALW/GuqvVh8dIX2/Fhh7UeKLhHlqAiSzwI1dfp0jY69UFp4CIawEETFxNvPtV9InuhC LYgxWOtNiD6K3RaDlDOg59nXIuXUc/D10rsci0Mfab0nFbBztyWHWVDt0FZVLlLaHy5zu9na7+5c V/srgi1ITYhGUWh4ncO+GNhOqJKstVPiwxBfdWKBQ1t9jo+2vnTcx+dtV4D92Xb7zrnl7Etnkbb9 mv3ZtvvPufXsT2eRtvvaW1+ajCaYTKZG3WDtJ+EGnq6CZtPvn4lYCVY99vg/7CuFFhcXIefQQWRm noFPV32MswYOlg+pEdi7b0+9K6hGN7bh9SprwI5jue4/ZDegGhZtJQLsz1bSEU3UDPZnE0G2gmrY l62gE3xoQpBkgpXLH8kc+ys5oy/OvfoerHzpVnRJLsbsSQcw+fE0JPc4DzpDHE7tXISbLj+Gf76t x903GuWPbIEIlHnL1GtTKXDzTSZUfQXEmo9gV6FM8t/BgiMy1tHxGs5NSz71FGRn/Ywjhw6gV0Cw y7Lqp3dyZikKj+ci0GxCzvFKBISlIyHjTFjMZuii05CTtVmrOio+FcOvnY3i/MNY/co058vZX1vr NNa5XrcAMw4Vmevss5/g5UmunFdZUiDnGuuUdOVcp4DDiyPx4lem+qTMYW/TPfXUD013FdbUXALs z+aS9v912Jf+N27OK7A/m1Pb/9dif/rfuLmu4K++bPSw0IsuvBT9zxiAzp3S8PKiZXhn+UqMv36C 5rHiw3fQMSUVb73xIabdcS++3fgNtvzyU3NZ8ToUoAAFKEABCvgokJh2GlK7D8SYu5fhlC5nyOO/ MezikTitixmnDroKQTH98UfCJ7hyyhMICTCh/NgvGDE0EQUlgZg23oRP1oYhvWMFftkVjPGjSpGa XCXZZdXICw5ApqxEqrao0GoUSgDO3RYRnYiMzAuw/7cNEqQLQVCwDtfe/7bL4tqKofoqmZOsCkYZ Ptl78DX49dsV+H7VQpwx8i/o2u9CqPpikzNwdN+vsJSWoGOPs+rU1bnXObj+wRX2fWpRh8SaVUjV zpiwauTLwgiN2UpkIYQIXeOGlNqup+4rUu6PGwUoQAEKUIACFKBA2xBodOba6s8+gfrnatu9OwtT bv+Lq0PcRwEKUIACFKBAKxJISu8rixJtR1VVJc656m4c2b8NZw2/EsmWOTi132U4lh2FoupuiCm5 FxdkfIQD4Q+i7GhHvLx0PyZeXoq1P4SgW2oonntDj9lTjLjwbAu2ZgXj0ovNCP8PcCgqENMvisLv 5WMQsvVDWMrrptondOqF86+fgSN7tyF3/6+aTJkxHxkS6Is7pRvyDmVJ0K8fRk6cD2PBERRtu1UW NSiyTvgfeQoi4k7BrndX20X7Db8RvQZdiRIpq84tMxWha9+RKDyyVyvTtf9F6HbGJdBHxyMsIhZl JfkoCYzD+Clz8NLCuVr74iQ4llfW8NVC1QWKzYBabOFEtmIJ0HWWACU3ClCAAhSgAAUoQIG2IdC4 P8u2jXtjKylAAQpQgAIU8CKQ3OV0WUggAD/+53WYjm3HTWctR1LFJ/hl/SdICtuBcy8ahfjKL3FB +gd494swfLAqD6t+6ILDxwLxxOsGnNJvIn6P/UDLFtu4NQRnnGrGFxtDsPHoaTj9tLMxbmQZossK oOvcG5f85XFcNfU1hITWzreqMs9+/urfWPfe40iMrdL+Ze/ajGpZUKDX4KtxzV2vo9Opg1FRVoKd 33+K4NTB6BgVIgGsKujiukjA7aj9DtWQ0FWv3IkdGz9GxunDkX94Nw789i1iE9Nx+W0LJUA3Dx1S euLzf92Hfb+uR3R8J+3cwyUVkrlWjb4SmOt7wZ8lc+9aJHfLwOtzinDe0B5aNl9KtzO1sqd1rcRr s4rs13R+0hRZZyVmyX5j5pozLV9TgAIUoAAFKECBVivA4Fqr7Ro2jAIUoAAFKOBfgaT0TAQHh8q8 ZIck2LQWlt9no+jIrzj47Wxs+yMIA5I/h+nQepT8dD82b9fhiw06FOcdQkRsktawU88ejbTeQ1At WW/n/elhZOdGYM13ofjmZx1e/m4I9qEHko2dUHo4EAW6GKQl5AHGnTj/6lu0YZ8quKWPScSuzatx anoFnrq7GA/81YRDWT9g7/b1SDttCEqNheh6xsX48s1H8Os37+FAoRmZp/aBQSb91yV017LTnJWO 7Nkiwb5oPHzDFgRY8rDmjX/g6P4d+PLf/8BXb85Aidxv0bEDiE6wBteOm4MRXPwHElN7Ia1bD/QI 34RTz70YWUc64oIrxyPU9A0GXXoTVICtV4YMdY3sh7/MXOp8We21yjqLlLap7TQZFvv2iAIMTLBY d/j4f1XHiQ4t9fFSLEYBClCAAhSgAAUo0AQCjR4W2gTXZhUUoAAFKEABCrSggBpSmbt/O44X7pJW RKNP1wqs+iYUX27UISayGju37sAz/7dAWzXTNvlrZUU5Tj//BskskwULZF6zr96apQWrzr7s70ge PAe7Yk+Rec/e0OZQe2vXekxLjMXBDmfgq+924ZLkR5EW3xElZzyBsrAuyDx/PI7u3aoJXHWBGW+u Cse5/SwY0mMbrkq/B//aMl2y0D5Cz4GX24eM/rT1Z4wbkomwQgOSTumOX75ZZRdMTazCY7eXYMex HuikW4aSwlw8+vdqRMgw0rsWzIDJYX2AwlwJrsV31s4NikvB2WHfotf+Z7G8NAxlpwDm1DTsj34B pbt2YZD+KVREj0T0tTfgzOr/YvO+TMR0T7Vf1/GJlnUWY50vbWyXMvySF4KbepbiqZ8NjsU8PjdK 5lqkDC3NjKvAP/qX4E9fxngsz4MUoAAFKEABClCAAi0rwMy1lvXn1SlAAQpQgAItJpDcORPHc363 X18NedyxO0h7XVAcgHn/Vzt801bIWHgUe7f+F/rIOKx/b74WWFPHfv32A1TKqqNb/vsmTjt3DFTw au26z7DAMgm3vfsb/vPWc7jnmUjc90QRtq57B9EVG3DawGHaIgYqG6xrpwotM04NLR01pAwJkcdg 3DZLFiXYhp1rrENG1XV2Hy1ERN53CE/rhcz+mSjN/0Pt1rZBp1vwR3YQYvAj8n9+DAuW6lFYHIiD uUH46Ll89O9lXWBBFS7MzbZnrgWnnIXE4l+RmFSFv8hqpNWl1Thc0R0bPn8X7y1+XGv3O29/I4HB QuwrHYJDpZkyLLUYi+bokZCYaL14zf9tWWdJsgprWmQVXjpwKkIyx+P6/gl1ynl6YasjThZZiJfh qmcnNSzzzVPd7o6p9qp/anN87q4891OAAhSgAAUoQAEK1Aowc63Wgs8oQAEKUIACJ5VAogwLzd36 Go4FBeLGy8pwNC8AB49ag2vuIPIO/YHP/+++eofVUMuv3npE2//HT1/Yj6shmc7bB+/+F1Wmveg2 8DpceNpmXDhIgnI7rWMpN/4SgrP7WPDfTTqMGGhGj84VGHamGWWSzbXrQDDO6WJB5O+VCJPVPI2H /oerhxxAYEA1Bp1uhrE0EC+9Gy4BwtqPN3NeMeC0bhUIC6nGhMtV6loYftwRjEIZFqoChCOvm4pw QxHCyvLxZFYEJqSXotRUjY3fb9aGq9rars4peXszktMvQ+ee/RAaUiGZbS9jzJRjWDz7Llsx2LLO 1I4gaVenXoOxyZSIqzK2IU8Cf2qLlIzBi/+6AN9+9AzUPHHOW5g0v0zigL1jKvDj8WBcnFqOEksA jsn9HZF/Tb1dnVGG67uWwSjDUdceEvcUM0orA7BkRzg25daMcW3qi3qoL7NDBR7uZ8Rf10bBJG3i RgEKUIACFKAABVq7QNN/Qmvtd+ymfRHRidpkzImdT5OJi5e5KcXdFKAABShAgfYhkJzRFxZZJKBT wGGEdAD6nVqBF5bXz1Tz192uXbcHKUUzJXhWiekvROK5t6zXzi8KwKzFBnz2bSiSOlRpx2cuisDS T8IRJ5lgr30ZhiQZdllRdBTvvfyUzNVmQZeOlaisCsCBw0F1Amu2tv8qq5c+9M8IrFwbihtGlaJf zwosvH8f0qpewrDBUegZsxxHYoPwr/Xh+OinMCTqyrD6vedsp9sftcURZChsweHfUFCegC8/fAPx scEYMiTdXkZlnXWQDLBTYysRGiTBNVmM4aOvv0Z1eQES4wRatv/P3nmAx1VcbfjTarXqvVnFsiT3 3nvDGINtsCk2PXRMTQKhhhZqICEhIZD8CS3U0BKaqQaDARtsjHHBvRdJVu9dq13951z5rle9WJIt +5vnkfa2mTv3PXfmzpw5c0aVmmVFedCVTc0QGTfA8EOn+zsLPLGjwIpT4qvwZao3ekh6Nwwuw0Nj S0TRVoXLZJrp6zML6/hymxZjx3/kWFuDKtb0Pr9fF2Ao1AYEO3DnD4F4d4+PMZ3VTK8rrdni/B3w tNTgTxOL8cqMtj+TmWf+kkB3JxAe2xcLb3+9uz8G808CJEACxzwB1QdNnH/zEeXz8NDuESXTvSPr yPXc6/5uOHTeseZjY/UwdbKso9oMJEACJEACJHA8EnDYK+F0VGNu70r4DavBDc8EITO368bcVIl2 yxMBTaKtf17zptZjGt6u8sEMsa7SFUt1qmlrw1ervQxLuJsuKsMPMv00KuwH/P2RnzGkjwODk3yM ZL5Is8FX/J05xadc/VBenIcPnl5kDMYVF5Xjx6+XIC4xGXNO64+y3F1G/krsFlR6huCuuX2xq9Qf Drvd8Be3PtEHs5I0/5XQ6bgHti5H4uBpxiIJar1WXpInK5n2hU9AKCpK8rFMLMiuHFiOdTlWfJYS ZGRFF0ZQ/21FVRZ8cNAbNw4rw0axLBstxyvF0i1cppG2JeiCC7N7VuKBNYFIL7PgxuW199E0nDVW 3DrcYSjxfpJ7jI2sQq7c9/aVgZ1uTTZcfM29t8/HUB56e7ftmdry/LyWBI51AhZPK8Kik2Dz8UdV Remxnl3mjwROGALhsX1w0oUP4p0nLj5hnvl4f9CwuH6yYFddVx9tfWYq14RYgDgyzk3bDg8PC/rK imS5B3eJk+ZkKtfa+jbxehIgARIggW5DwDcwHJN8vsNAWcTgtX2+XapYO1JIW8Wqa34vt9UJ2pDg +197IzjAiX/9z9cVSxV3X/5QO/1xS74V+tdcKBG/c9+8/XvjknVrNsHqPRHXXrwc6ZHP4+3nX8Qb 0SehOP0g/EOisfqDvxrXrUkpxLwksb6L6WNYrm1c8abLei07ZatxTXVluTHAp8o1nQz59m7vOtNA dYqm/p0xrRILZBpvlGgAz82RRRNKvTDM146U3RYMFsWUhpNF+ajKuEuXBRv7jf3TBRcWixJLFWuN BVWqfZPuBbWK+83KIJwn11/ev8I4Zk5RNf20dcR0Vb3PtYPKjKz8Z5ePWO3Z8PiE4sayxmOdSEDf L11g5P9kirWp0O7E2zHpZggEhPRAmSj1A7WvclAXnmEgARI4Fgh4evkgTCzZzQGxYyFPzMOREUga Mh37Ni0/okQab00dUZLdL3KQ+D4pyc8wnCrH9B6F9D1rpbAkd78HYY5JgARIgARIoJUE4uJCMM66 Bn/5xt81JbOVUY/6ZVvzrHhvb62lWVszo9Zuf3yp9St3tpR+5r5NqLD0whfbT4Xd6Yvpc+fAXimW cR//A1/953euBR80z1+X9pfFHhaivDgXRTlp2LNhqQzu7cRwmR7qGxyB6ipRrkX2NG6ZFTwG2056 t8HtByRWY9b4Kvz5FX+szvDCPWsCkGqz4LNSsbgTPZpOH9W/PkG101Kn9qidLuon1njuQZViuuDC xwe83Q+7tlVZ9vvtyVhR1BN3rw4wFHBvy1TRwaF21xTVW8Vy7k+i/DKnq6piz/3PVLy5Em1h4/SE CiQGVCOnwoLUklr/dDq1VtNsa1ot3OqYOq2r3L70UBFmjrcjKrTtlnoapz3xGoOg6cwT5dony23G FGq/Q8Ws/j0unFOBZ+4tgnm+sbR47MgJBIiCXvso6qfRDKYrG3Ofv92bgMozMmGQYRHdvZ/kxMq9 oT+QgTad7RaTPIJupbq5+IMi4sXgKqaOr932PFLzQ7PtSfEYjKMNgnDxz5JbYEFjTZaA0BiZEpqB gqy92L3uC6TJ9IwB4+Y3eBKt/DToiDVD9yGQMGgKTjrvbpFbNjYsew1FeWkoL8yhHLuPCOvkVMuh dkJ1dCG2zxi8/9RVdc4f6Y7ZQcnK59jDkbKsH78xJ+4qz96jTkXvEbOw6sOnGnXuXj+dpvbd63pT fpRnU7SA8X094SF+v17f3D4lVdMpd/6Z7YWeeHxDxynIjiTHamW29ot/Y8xpi7B6+Tc4Pe4ReHp6 4pL7xa/bIcsffQ8tITX4d2o4Bs+SBQ4++ZfrlrrK6rSFdyK+z1ixoPdEcHitci1G6reAkBhDaaJt mPDgGtx0cZnhV+7jFd7YvNtq/GlCX/5gMxZtCJxfjud+9MUdV5RhxzYLpoaIxVlAGXSKrVqcnRpX iddSfbC8xCl+5hzIrahdLKAxS6UB4+djwPgzDYXf2qUvGmXTmDq64vAU1bOTKg3/bPHiI02nqxrm dq4nA6ySfGsXRUiQNCJF4WexeODzFJsrlVxZuEKVhW1JyxW5m2yYq9zOnVyB+dNh+BdUi7HG6jTz kcxzU8cUYnT/EmPBD/VL2B5LM/f2rb5rNjHifPcrb5k27cTFcyuMFYR/c0kp9h204r5/BKBXTDVO lUVINsvCIfOmV+KtJY0raM288hcYFW7H7SPLcOHSpi1JG+MUENYDhbkpolyLM05H9hyIqVJfOKur ERAeh5WyKArbtY2R6x7HtOzNufYplBRkip9JT5h1bffI/YmdS9UfFB1adVy3g+TbrUpSDbFirNMR 7doTm3DXPn2oWCGWFhy5jqdbK9e0YfHk7cV44QM/bNzhKQ1PJ+5eVIZrHw5CgDTQzj65EnMmVyIz z4JqWfVKVxp78s2G6jXt8O3b9C2y9m82/vyCwo0VxGL7jJZCk2J05LWQ9Bk5G17ePobPAyppuvaF b8/dTCXM4ElniyItBxu+/g/6jzsdVi9f2O3irPrZm4xkzQaqKl/NDnl77sc4nUdAR4VmXfYHpO78 UVbqG4pKccKuDUsN+vHK3LuhVcrS5mSt506ZUOValXDxNz5GvWK+EwPFWsSsX8raNxut8wAdxZSV mwbl5L7dWJZMJ+7Tzr3LqEcP7l5nyLMo96BRPkeecgV8A8JalKcpq5PH2fHGZ7VyGjfUblhbmHW9 dgBPHidT52ZWIK/IE7c249ursbwej8fU4kmVLmu3eWFEv2r4ogTbN6lijQ7jj1Te6jNt8aFVP3MH +uCMqZXybnobq5NOGuGJob3tKBFLMIttNb7P+aHOyKiusvrJczcbdVny8JNdlmuDRo5CfIwF1z30 HIL3XQwfWw12p3gairLPVx5WPpl5z5apraHSDrpoTiVWG/7knHhuiw/O7V+J4iQL5qVUIDnMgRt7 ZOHu6dXYfsATr230kQUhai3hPl1hwwXzgpFS2svoGMT2HYulr94rHYZYaNnUNlBYTLJrQMOcoqr3 V6Vb/VVFVWF37bhyPJFYjD1xnrj8scNKhcaUeZNlSqhOx91fbHVZ06n1nOkHTlcwVQVe/fuYz9+d f1W59sL7PsZiHGq9dtWZZSIXm/E90jpNw9/frJ3GPG2U3dW21XfK7rBAF/yIE+s3XQ1X3zct3+t3 WI1fVfCmZlhcg8zmN81sI2n7NmnoDHhCrCZL/4uJiauxYWuVcU+dQn37paWyAIgdy3+yGe3ou68u QVykw1jd983PffBbqVN2yrvUHqWecZOj9E+/I+bAu8mko7IyUeR500WlcMoiK1c/FAxtM5whvi3j Ah0Y1cduLByi99J2p367dAqufsvKxQ+mpdpZpy2qlms5qdsQnTgE/ca8Kr4Z87Hx27cMf5m9R84y 2rU1otWmYqajpNe56aiF06SzbsHm7/6HQZMWiGx3IE+m+3752n1IHn6KsciNuglQ62eGo0dg0nA7 rjyrHFc/eNgPaf3cqP4gL32XMSDWo/dwcSd1AGNmX2tcVlla5GrX6gFtI0yOFqvvIWW4+MvD38L6 aTa1f5FYCp83qwI5MrCodcXBLA+j/ujouqup+x+rx937A+ZgZnN51etVd/TcYn8sy657ZVh0b0Oe dY+2fc/T1zfgAfdowcEhKC07coeZ8fEJmH/G2QgLi0BK6n7U1NSdjuB+z7Zu94hw4O+/LUF8j9rR teS4apw01o5SmUYwY0wVkuMdhj8SXxlIy5XR2kdfCMDb0gDQ1cSG9nWiqNiOSIGrfzJAisQx56Ng zxL0CM419gsKK2QEIQNj51yH4Sf9wvC/ZvMJxJolz8I/OBrbf/zI+Jj1GjgF8QMnYddPn7X1EXh9 BxHw8/dDWVndD9DwGZdg1qWPIn7ABGmMDEOZKNY+e+EW5Gfslg7NZ0jbsRrJw2bAUW1Hn0Qv3HR5 IEYNcmLS0AI01mHpoKyeMMloxZUQIxYIh8rYqROrxNqiHKlZnkiX6Vg6leRXF4gT7h1e8PaqkXLr YZTXOy4vl4a7FzxqKoy444fY8avbzoffgNvEsXZt/WHz9sPydx7Hlu/+K1amn6MoNw1DpixEksgz wKcSXh7FKCw8/D5oB07T1bpBG7tXnFmOIX0dOEnqiaw8TzgcMPKqedRz3jJa/yeZarUnzYoFJ1cY 9UqfBCeuWSB5CpNV/3o4MEj8U2nndWCyA1efLdYh+61GvaHPcbyFwfKsf5WP0FaxTlB5Dkh04Ilb SxAdUWMwUa53Ssdq7GApS8pJVmGcOKgaafmeeOj6AhSW1BgKAa1nld1V156O/Ts2y3FPox6NjO+P LV/+AQc3foDUvXtkxCgT4077hfi+PBnZB/cgQix9hiYVGvdUBZnK8PbLy7DwlArYZUXGj0UZcM6M CtmvlE5SDR553t9V158ustfpcMGbnXDEe2Dx8lrLCu2c3yJT2dRZektBp6ElytQ6tWEslft193D1 2RWGciZCLFO+2+CFMcGR+GJLJX5OK2rx0Rqra1uMdIJeoPXcN6KI2JvmaXSSh/etNqZwvvulN7Jz KzFvyBJRiHi4ysaMcVVGPZW6by+2bfgJCcPmy7drOHrF+yDSe6soLTzxv09L8eYHOVgqFmrfrW+o WFPU/r41GD3IIW0cizHNV/OwZr8XXv7JFwcKxcJocCV8K2uwNCQYyzYCE6R8f1XiLUppWZF0tQ1Z 1gWIG/trhPccDodHIFaKrzhV/BXnpRtlM67fWGPaUlbKZikTHqiqbLqtqAq780+txOKVPhgfIVM6 y2vg7VODCWJJ9/BUab/1d6LnLifmDqrE2TGVeHOHD64TX2tv7vbFf2XqqRkGJlXjn/cUGwry6CQn zhtaifPF19z/VorvOi8nAvQb0kFls6nyrsc78j7ms5m/+ozakXtFrM40lJZ5YMLwagSKPPV79PWP NkwYVo1RA2v/gv1rXG1bfafW745Edk45nCKOQhnk6Cdy/eQ7G/rLKrz6e8np5bhodgV6JUZh8sQ4 hEdH4rrrTkbihGswbfpgePsFwnbgIUzsvQXO6IuwNvcsVMbeZIzgV1T74guR4ftLq7FKFLb6HVfF nU6r3rTRigirE6XlHjh9RiVWrPOWehnG9N3O4NWUfEyOrfk12yfmN3/M4GqD7Yp1NiPvrUmjNdf8 Ym4lAmW12wFxsqqxfAC1PFwmi5NU+4k1qSjah8t9TxpchXPECCBWvl0/fG/FGWMqMKFPBaaMrECS twP3DC7Bynwbeo27BDm7lmDotAtxcNuXqJCVS9aJJWl+xh7sXv+F0a7Vfoi2aUfM+AXyMvdIXyWy xTLamufgNUdGoLHvZr+xZ6CPDApbvGzY8v07hhui1Z/8UwYcS5AvsouWVbxnXHQ/fPxDMW7u9Yb/ b62DGTqGgNYBZ0p9pW3Jy+dXIFvaqzpwpW1cs7+ibdt5UytkwKIGb4n+wAwJsTacOr7A6NPoNT2G nIfsPd+j99iF8q3Mwkf/utHQCRRv+QTZW79CZcku+HmkY8C0K+V7KX2HhHQk+lVgdaYnrLI4un6z zb6D5st9X+/pXl9NHmFHugygrZO64t6BJRgt34TJMsC886Cnqw/ifr32uzSP+j0x72E+x/Hyq8/7 xG0lRhtd+wPnzap0ta3MPqjZb9E+hMp59qQqBAXUyCJW1UiKq3L1ZfTcSaK3Ornft1j+fWa7vgf+ /gEoKiyER2hYdB2tV8+EXsjKzjwi7hMmTMZ1i36Fnbu2Iy62J1LTDuCPf3pYOrLSk+2AoNYlJ0vn 2FIJvPaJDzZJR1gbHTrSdzDHU0ZvgGfeaeicuUeEEw9faYe1UiIeCh7y8UsPfwoxZbehtKbaGJUz LRzUIiaq12BpYD5pXl7nV0f9Trrwd9i66gPDJFtPcrphHUSdvhMRGYGc7BzXfdTCacZFD6CitAAr 3v2zy9eN6wLZ0EbOL68bgp8KrzWmPOQW+YuixQMjPW/Fx18WYM3mbm3Q6f6oXb6tfmMeukEaCNK5 M0NxiQeWr/cyOnC7Uj2RFOsQ5YoHJktnYts+T+xMsRrHPpGK8eyZHqg8VD6tvtHIj/2LjOrthEfI JPSrugXbN281Gvb1R20WLhyGYdMvgcXTC/5F/8XSb7MR5p2JEclp0HTnigVrcakF/xQH5uq4XOuL ReeUISbcid1Sf2gezXNmvvVXr1MLFFVEaH7fk2kyahGr+6eIzyPt5JSLRaxVfALVt3RzT6e7bqvS 6jKZZqYKRA368Sku9ZBReA+DgSq5ekoH12Md4Aj3gDPdieDQGuQlilzT/BEVXCrT3Dyg9SxqPJAW /EfElD6B5avzkSsWxf2lUzltkAyI5DhltUJ/eMUCMyaFIiXwYWTLiH5UmAX+hf9FdcEGeNdIJ19k uHGX1bCaeOpNaZlI0I/rDeeV15Gf1vXXnFOOgC1O9PCXgZSkGtz2dgDGiHP36TFVCLM5xU9VIEyH 7EZCbv+0Ezc7oRJqKVMsHXedjvaudPhTxTpH42iIkGvM0FQ65vlj4VfL5s2/EP9Y//Rz5f3peXG4 SZSOG/ccaDGL9evaFiPwgiYJaL1ysSiifUTfGyGWZqnZnq56yipFbVfRREQPOBuRxU/iyRfzpWyd JRZjvbFq8d+aTLM1J4aFy1S+uEq8lN7L+G6a+ciRzsV7Wy5A0vCZKFj/MM6fvg8ffivvhcwIcB8V 1zbP1PPvMW7VkpWMWjOt3WZ1DVj96pQynBNbiQz51g6LFaXedht25VoxKdmOvtHVWL7bC0HiYu3x XX6u0XgdHFHL08xcT3iJvzgt/8EHnTgrshLLCrxgzZc2lygpzbKp5XuelNsQ7xrc9UNAmyzczk6q wNmJlag+1CJ+4ufaKccRohC8dViJWOZ5GvdZL3nuiIUb3OWlddhDN5bgukdqLSS0/tGg99HVXO8b VYIXt/tJXebAafFV+OvPfnWe7cZRnjgzJgcZUj+589A0/MUSePTwQIT3HYlN1Wcj1pqCARF5KJb6 uCL9JXz/Y3aD76O2fUePHAur1YZ8j1DDIkrbuc70NfCzZxv1qHIOEsXmzmLpJEr9GBRbg+ga8d+3 1RvDZfpj/XxoXjS415X6nGY92li9qvLU5315u6/x7PXr47bKQt8n9SWn1n7u3/zrFpbDIRZmHywT BXMHuIPQuvbeC0uQtFcGGWUgo0YG7bKdnti7VwadVvvjXpGnTp8OkXdrkJSFHRmeyBHZafDx9kag TwUSZDBKPQ6GiBXbB73/D/7V96PE91oEZP4Jt/5TVuttxHrevXxqWlpGzf4J+yZKpOtDY9/NeTf+ EzXSH/76rd832keJ6jVUlKSXoFpm2OzfskKm5s83lKlq+dRS0P6Nu3W6tpXr1+MtpXE8n1c+t11W Jpa8nkZbcvRAO7ylXSsNVeOxzf6K9hnKpJ4IEp+k2kcxLYEn9ROjnYN2fLPFGxOlD5CT+BEi0q/C z/a7EZX+R1zuL9/O7d7oL35DfaV/4BMNBJbVYGPEUGyyXImFZa9gu6MP8ktFAZ6cgaqyLMMieeQA sR6XafYh0pewS39ErcqnxNrRo8yJA06xSK+owROr/bApw4pL+1bgoHwLh0VVY4gM8u/zkXpf6pi1 W70M5WC2tK39ZWA7ON8p969BqL0Gv1waJAr76ka/H+7yNutks+6t/61xv/ZY2B4uAz3nnVqBe/5e u+q8tmlumVmKIWUyABEoUCRo20FdS1TrmKTI2az7B/UNxNRhWUZfZsHECoieEwfiXkDxjvuQkpLb LlcHUZHRSDmwv3OUaw/87lFkZmbin8/8DQMHDMavf3kbXv3Pi/h+5bfGgx7pv5vF50hgpmgdIdZq 0vHRRpD5IuhHWDtAjQW9Zk6iFIwyu+t0TI8IhEbF4cD29ciQgnSKdPTu+DkIvcXKbZJMpXhAPmL7 pJNnBvPFmzayCqeK9tPDfwi+yrsSdr8QRItly4EMG/aseQ8J4QcwcWA63pePdUFFFKpKc1BRnGk0 GjWt/lG1isbtMgrY2MfcrCD/Lh1I0++GxtNrB4mviwhpPKpVXmPBvfGi57XhpqbvGlqa+qjXat5C pcNcUGIx7lE/PSOhVvzTtDQ09nzu0d3zp8c1j2bQuPXTMff1mrDwMGzbVWBcrseHn3SeTN0NEivD 55u8rzb6C4o90DdBnCZLp+LpdxONDkNclAW+0pFX64CWQv2GijZqNDTnj898d9x5msc0blPH65/T /a4IavVznfi5WfRNEMpaaRmgyphAUWa8+MHhVfjMvJqKKlV8R4isZoqCfMUGm6G8MpXh7g0RZXr6 okcxwvv3KPI9B6s/fMxQcKliSz98WkmqUstUzq1f5okbR9rwTNRTiBXlit1pxVeLF2P//sZH/MYN qUYfKeevH/IVU1+mZr5b86vPpsr9CrvFmH5oytWUaf391qR5LFyjdW3afk/4ZTtdnRz3+nWcWBee 27MCSzZ4I9rPKVYnPvjNiDIZDarG7oP+MsJeO5ARJg2UHrFRKKjuiYqsn5AYW1s3qJVDZrYFsTK6 b5XOzVbpTry/2tsYVSwRA8Slm0eh78DpOKf6f3hmbyz25jS0lKkoqS3/PgEhdZANCypCf+8cPPqj BW9dUICDmRbszbbiDcmjuRqhu9LMjGx2pveUWvG8WNFsEh9DuuKi6U8qQD7UMdIp1E6lGdzTac23 yIynv+b1uirjaLmP+dvSt8zsdKo8WrUqpJTNKSGiWMx1GgpDPyk7Xv3PwjVvbJQVK1uu89zLpnv+ ud1+AvrNqq8YNuvJTeJPrU98NR5/2R++gWGY+YuHDb9urelgtZSj+rJUH07jT7/R1dnTPKjyTxV9 7j68zG+vfpfVbYZOFd0mShf3afl6jQ6ADu3jwF1PH/aJFxpUg/sWlSLYU6xB06vxrXROHvxJFPBy /Z9+UYykSie2+FnhOPTp+E4GZEaLFezjL/nVWcVW/cTdMrIUA/tX4+mN/ijM8BDFkmgapDlUJA3o n0X5NTbKDkkKO2X6jJap9w96I12UGzkyEFI/qB+7uxeUoOonD/xlqx90et0V8eUyaAL4SmPcWwYG NmRZseygzagDrNI8qe9DTut3bWPpIgyNtVnq39N9X5+/Xy8H7p1Vgry1FqP8j4uqgq/UMyXyPSmo lI6WrIzbL6QaRVViESkrt56VWCWLeXgbbV2tP2b18kBeSRUeWx8A9X139dAaxIm/vtKibLF+CYFX dRmqxarp483ZmBya41IgfpNua7ReN+tAU6FYGT4Y88YNwQiPjSh12rBv/16s3JOPOLnXn6X9rfXj VVLvRw2qQeZmC95I8UG0j1iHiEVifeIWjxrDathXVrk1lWXK2U/eizB5Zvd6VeWpzzuvV6Xx7E9t 8jOmH+v91MpR+8OmEtT81rqzNbdNxleJpflvnwqs8z7pNToYc59MdTW/32a89v5qO+gkqWv37ZSp uNJWN1fbffpQ/s109b25eWgZzOfS41o2k5COOT2r8P5+b9w1wx+x0T3w1ZrNGBRYLf2VGryQ6+fq +GkaGuorfPWZIxPHoNfYS2VQzAPe3hZs/+F96fjVtod0KvD4UaOwd83/sH3fDlQUZcFDipG6xSnx Fj+PtipZoTQXezNFgy3BvT0YKEpVDeY99V4RIm9tu581shI3DinFhFciEOhxWHmq15syMttDekyD eVzT0WD2GdyvM68xLpB/7ufMY/obLvVMjQxaaP/I47Adhes76/5d1WvNcJtMfX7lY19sFQWoBu3j TZoglvvv1vbB9Jjes3+0AzlSJrekW42+WJ9wh9FX0mOanvad8qXc6v2VhyMgyhjIMPMbIxbJySNm 4jvxk+f+TOZ5vY8e16B1So0YTVlCxmH4uLPEImoJ9mblG0Ycel59D2vQtquGXpGymvOCAcgLPQeB 2U9g5Yp1RltZ63Ed/G3rNEL3PGn6ZlvFVHa7t0H0vPvz6H79+O7X6DkN5jtk7LTiX/145j3c793Y MTNp7f95p9Wgv0PcIkj/b5AslPNJinej9aDGGZjkwFR5pzfITJvT+lbBluWFgwXVxoDCVyX9ETbm F8j+6RHhXIHoCieixbN7mdhR6bcM0lyt2A58tteGK4ZVwL+3EzElTmwKHYwoRzT2VPXCOMdHyPYS C+DSPCzbW4PpSR7ILPVHSGA5MvLtyBbFWdEuD6wuijDqQYe9EmmFduPbqfkz26ZhQU706SlW62Kl tm2f1fgWGt8KmYo+RqahO6SyzJZzXqLsq9zrgT+v82+gQ1D5mnWyWfe6f2vM9/KZqUVYLroO/ba6 l6fG3g/39qw5OGQe6wjFnda1caLIXCqDgWa4dmAZesm3KbW88Ta6tpen9KjC03t7Ij8/33iv9blr /KMRKtN8P9qwBWPj7Fj0SdPTgc171f/tNOVaZGQUfnfPI/j8i0/x4cfvGff9y5//gTVrfsDrb75S Jx8TR0ViQK/AOsdas3PRwEzk7azAy5m9cWHoXiNKkVOWpy+NwMmB6Q0+5maaes17VcOxVwqGGQaM Phdpe1YiNO0jLOxRjMRgGXGThopF/PLGVOjomwXvHQxAsIxEnRxXDvsBiSnK0BARXK50rkIDZHRJ PvA7vLyx6oAPRgzrjTK/+dKxFyuOEgdOKXgL62JOQ4ktElZkwWFLRkLOO4gqLpWpsrnYHLMI2/d8 K1YceUaWEhP7IjR2LPxKPkRY1i70dubjnZo+YlpehUrRx3lll2OwJRfilQHZMs3DTz7cwZKX/Zm1 GlpNxCIftD2BkYjtacEB6Uz2lCkZlfZDTRxtKErnsvCQAnK4NQ+DrDl4o6IfekbK1ITQPEQWFqDK IpM+JEpBoYfh2DYzKQY/bJcGk5gtj/TKxpdVcciRWr+vvIBjAvPg3FtiHCu32TBzpFi6pHrV3lfy nCU+VBIkbY0fJIqXgTISqfnSY/XzZ5XGlb+M5lXIh0qfV+Ma+ZdtzbfGHyQjpjapt/Qa6ZJjjfgV 0ePKKNtbpvFWvIZI2045b8HSdeIjT0a2F8o0lMXf+yNUOvm9RTn57KfBBm/3f/G9+mLatJkIztiC XqWb8EnIxcbpfhU/o0/FRte+HvTwsIiyNAV+oQMQl/oahvtVYaNNnFfmfowvyiMNNu5p97MUYbhw K6/RKYROfF8VgzAP+XgHZcnIsvirkeesliFz87h5rZmGGUeZm0HTdJeFebyjfmfa0uDrUY39DlEw VwfikqBdSE2IwTd7glzvj3mvYTFlOM2xF1vC42XkOkRMl0VAh8JgnwJMCcjEewViFVt9OP/mefff gIAAlJTIqK4EL58g9B0xH2Xf3ouZ4aV442AQ0qsOpzsltAyz5L57xEz7wx/8MS+oFAm+djx/IBhR MqVidrworsOmIbl6F771mQW7xYZ5pW9hk20kku07jWP5nrWNE72f1eqLftaDiN//Kv6b06PFvGoc 9xAoyqVZkxNgKQpHfPr7qKqu9Vmz2R5hyL76UM30XmWye7QO2W7vuxAoAxTn+ezGB5WJDd5ZzdiZ wwsRvC0DW0qDm6xfcxze+Hv2wAbPERgUhOKiw9MNzbp239alDa7VAyODKnBRbFGD+ls7t3bvCISJ VaqHdH3rB0+LFzytUs6riuucKvcIwOd+C/HTlpXSCN6LPuLP6TvxP+Ue+lkLMcuW4n5IphY7UCbT zfP6x6BSlMrfibN/NSc3w7QeUejj54l/7zmstHVPp1TqpI32cEzwap0FuHn9EK88bLKHwfxtLr4Z x7xG360oSwVekXq8qbCwTxYqDpTjT6mDkH2oHE6Z9yA+fOFi8Qt0+JvYVPzQ0FCjIdLUeR7vXALR PUdg0LiLsWfjxygpykBU/Agk9JuObWveMvYbu3t8nyni03A81ix9os7p1pbNadJJPn18Kf69JBhD kqowQ6ZTl8l394XPar+fgVGjEDf0CknbAynr/iGDFTItLbnS8AmzWCzH8t0U0GYGIvuGIrx3KLZ9 tsc8VOc3RNpUF51UZExnaSoNjdBXvveniJJN1o1oUEb1vJbJibYM5Eo9NNUnQ/xTAXulXVQuU7HC K4oRL36rdgT3gN1X2irZWcgU5XyqWHlpEIMfpEkbJVnqDLMO0AGCUdJRKdtfjqkeqfg5PxBx1SXY 5QjC0IBC+IseUdtde0vkOxJWjn7pqXgpp3ej9apxE/mnbS5tt1hllCEhPQP/2puMsX65+LgoDqcH pxp17jDfPPwjp279OsS3AAuC9xl1ZWPtWpV7RMxglJXk4OcVz8O/8iDuSJbVaastePZAiLSbPFz7 3+X7YnakWBibmZJfrXN3lnlheZ6fq04us/hjVcLt2Lx3G5KHzHG9h2Y0U27mflO/EdKG7F9wUKYp ++Ct4mSEx1iMdyYivwAl4hPwtcI+TUWtc3xiYgnO9thptH0DpP0XLu3gj/Njsa+01qLZvNhk7JBP h7azvpJOZWNBv98LphRhiSh864fGvq+NHTPb0+n94hGyPRP/OtgPOyrbmzj0nAAAQABJREFU1kFr rGwGH3gfo8q+xvuZAbixd4FMG7TDKUrln2V14L42eUdFevv8vNBP/OJFy7vklH5KbownimSwyiGG CCO8K7EpeDB8PAYgMncrPgy+GAMcGzCq8kvphwSjytMP+d4yqyevAk6fWNhDo+CXuw9VoqVKFSvv CVWbsbVQGqoSfPw8ECuWdUXSFsuLCcOOAj9p/xYgsqgAmcVeCBM5+DmrkOobghgpH6lFNtjEMkjl kyXKjDXVvTBbvvUHS4tlGmuFYVWSEFGFlfYYBEd7Gu1+betrX8O9HezeBlb25jlT9ipbvU+Enx1e Mv3OLhqlg8U2Vx9pS6av8V0+JSTdyEuxdLwDfB1isQjki5uKGLEQrZB+kvar1AtJrFj56nTBorgw rEwJNPKj7XU/wVAjdUmKwx/J1mJU1Fhgs8h0PqcYe0gfU/tONilhfqIE2VYsqzjLghMDgvMRK/XN njwf+Ab1QqBnBkqL04WVzJwol+nbosh0yGCiU7rDB3LENYp8juN95asur84eqZ+0k5koxyuD+uN7 2zTYA+PEKioM6enpSKjaicHl63EwaLTUaWtkqmkN3kxLgGfCDFi3PG+0vcuCE6XNYsfPERGw1mTW 6QOqTOu/y7o/KbASATKSsK+4tj2u17m3O9y39Zy2m6J9quDtKxagxT1hK692yUjPm0HlmOYIkPo5 X9jJit9NtIfNsqR9UzOYctf+b57TBwMljQKnd4N+lb4bjbW3/b2dOCMxB1lbK/FVcQymBmSJLKTf KO2hlvQHmgf3ulbr4HPDDyI0Ihnp+1YbWTTr1wy3foqZd23fXhFfiF1Sr76aGox7+uTC7hOF9Lhz MMi+CdtsI5BU/C1WRF9v5EcXNirI2Y2ouGHISvsZEbFD5BtmF7mHiy++EuOYnmvu+2/eW3/1ezlp YAVS9gNXBm2TPqzMuqn0FNcDDqNerJJ3X2X6QUUS8oWphsCokRgR1QMjDvxdfFyXG31X5R4pbc18 qRu0vWq2QfV693fC3HZvz9Y/NsmWKX1e8Scp/dr676Cm15qg7VqPlGLkSjkyQ2N9Evdvpl3qxQCL lDmrN6qrZNBKyu2reb0RPvwSaF0727EU28Rt0KM/HFbYmWm39NtpyrUEmVZ62y334K23X8N3339r 5ONvf/kX1m9YixdffrZOvt6/YzjCZUStLUEbAOXWQCwWxUehV2RbohrXelk9ZR6t1IyHgt2ej/1p L5q76F9dgDlVKSi1yEhlUBwWxOxGQkYJqsUsM7PaD6V95YMiU88+3pOEvMpa8GYcVyKHNgK8gmAX pVpl6W542YJkFDQavl4e8uL64B3vAUjy64Opef+Fj+fh/MjkKlRW5cv1UShz+CDEowB2D6k8HFap X3VExhefhV+ECp9QsRQpMz4CVmkIacPBDNFFOzAw7QtDweclFZnGlUFCI3jJtd6ehztSTnkWm71U fELYJC3JG0KwNPJ8g22gfLSTrGkYt+s12I0PiANVtgCkhQxFUtYqSa82UbuXP1JDhxnHtPOrRzUt M882i8MVX49rWpov89c9f+qbyVfy5x7X3NZ8a/xKGYH2ljT1uI4i2yx243iFjKjaq2W+deVO0WSX olDkE+6jFUKNjNSKI2nJmf4elFGByurDneVaMrX/A+UjFxVQLiO94qdJMyPBKb/u+3rM4REGmY0v H9EclFkS4WvPhMO7FLvDFiAx6we5wk0gsqfc1sefiVLvMKh8BqV9Lsf88VPc2ThYI4o2Xxn1KNru Om5eq/fSYMZxT7cxWdRe3TH/y+Qd2xQ7F2P3vA4vZyUqpNw5hYvyrh+s0pjS96BGWiplMmrnHso9 A7EjYBSGFS6XJmDtaJX7efdtVVrWyNSS2iANQ2cZsiukI2ONwMSqDPdLUS3X+tdow7JWlgUWb6y0 yqpLh8qvxhlWnStxw424NilbpaKIqZLrzWPuCdps4XD49MLOwDGtyqt7XHPbKgpTX588rE74FZyS v/G7X3PJvka01brfGaG974LKrdIrAJ7y0XZ/tzSP+vZ7iNJlj7U3voi+VA+1KbRU17YpsWYuDpNR XT/fZKSmv9ngqkD/AeIfbg685BXpFdR6p/0OqWMOSifNJtYUWs+6s/GQd84prV6p4Rrc72gd8JNv RnPvVmPfTYuUhYrKNBxIa9076e8r37/ytn2vjxaP4/W+5vusI1/VjhLxrbYBYcGTpKDWfqvqP3eN lF+rOHZxSDl3D60tm6HSKT+/304jamm1FcvT4jC71373pKR9Eok0y13GMbPcVDoa/74aF0nP1VN8 dzjMRkmd1Nq+o+2U+mXUPRUzTz2Kt2NizkfGN6j+N6lIvhEfxy5yRdM0w0WBkO5WBzikDVhYaUOQ dxUCc/dgZNEyHAwZgtiCTVgbdxYq8ksxMfdDaZtUi9LAAQ8fn0brVddNZMPVTnJUId03sV31rKZX X576bqRnvCODqrnut+uwbff3sD2JusvMlE9jdW1zaSs7s+2raQSITCbkfChR6ra9TMYtvW7a3POz NmzbaB4a+742dkzb097SnlYvnSkePfFJ7NXNPUKj5+rLsrE+yjzLAfjGyztaWIl98f7wlpHo2LQK lNqt8NHOcrAvPETBpu3koEA7Pq1IwLDSXFE02dFT2qnyKqPcUxQbNUmioNyLpc7JGCmd+d2J05BU 9TyiMtJxID4QHvZkxKfaUS11SLn0YTbFzsbQlA+xPHIhYsS6rn/qUmnLVxv9hlWxC5FoSUFC9o/4 0W86JpQuNa7zCg6Qsl5bdgbaf5b4n6AwIBprep0vkpJFGIR7eMFODDz4OSqkXa79HG3rK1/3drB7 G9j9nMpey6W2ofU+RQUVmJr+Nn6MWwDfEF8pYzJw6tZHMq/XcmyW7xj/UpmdYTX6DFqXaB60vvPM PIBpeYulj2Y38qPt9Z32nuhdvhmjpPwvCbsQ2ZYo9LSkY3rmW/jwUL90WPH3GOTcipTQoUZfrNQS gM29ZKDYJ0zaVDnIzHgBg8PyUJjmjSnV6dhaE4Y+1gK84yfK9ahMROWXw7fIiffKkjC5OEMsOitg lZlRqzyicWplitS5PYw2iI9zuygRPZESPkYYiqVk5H6s2y9T98UKyt8vSWRc2/YeKG1vm3zrYYuR tlDdPmBj77fyzfVPgJ8ocdb2OrPR97T+QW2DDN//QW1bv+Bb4eVfR37m9SrH3tnfY0f0dHkXPjIP N/h175uaJ025B1TmoH/GMvHP7MSaxPMb9Kv0vWmsva1fyTLpx5hyMtNty697+bRIv7msYj9SD77R liQavVbr1IjQaTLDorbeNvcLSzYgOGC4cVx717E9FhrffT2m55r7/jd6o0MHzW9c0aGyU7/e1Ms8 a4oRhBUo8JhtlFVTdhvi5xvMm0u/Nefql+n6uoWW0lB5dpY+aP/3B5G2LqulLDQ432nKtcDAIDx0 /x/w9TdL8cGH7xrL0f/h0SexYsUyY989J35+flBnj10ZwkLDkZffOQ2OrnwO3quWAOV5fL0JlOfx I0/K8viRpT4J5Xn8yJOyPH5kybJJWR5fBI6vp2FdS3keXwSOn6dpqWyWlYqlfr0FE1t6elO5Zm3p wraeLy4uwsH0NAwdOhIfffIBxo2diECZ6qU+GuoHzXRbM14/jfbsuzvAb098xjm2CFCex5Y8jjQ3 lOeREjx24lOWx44sOiInlGdHUDw20qAsjw05dFQuKM+OInn006Esj74MOjIHlGdH0jz6aVGeR18G HZWDzpJlhyvX9IHfee8t3C5TQ19/7T3UOJ345LOPsOHndR3F4ojSUU0kw/FDgPI8fmSpT0J5Hj/y pCyPH1mybFKWxxeB4+tpWNceP/KkLI8fWeqTUJ6U5/FF4Ph5ms4smx6hYbJOq1voKT7TsrJb54jZ LRo3SYAESIAESIAESIAESIAESIAESIAESIAESOCEIWBOC63refyEeXw+KAmQAAmQAAmQAAmQAAmQ AAmQAAmQAAmQAAkcOQEq146cIVMgARIgARIgARIgARIgARIgARIgARIgARI4QQl4+voGPOD+7MHB ISgtK3U/1OHb8fEJmH/G2QgLi0BK6n5ZKrl2Zqqvry/mnDZPFkGYICt65qGoqLDFe3t6emLC+MmY NfM0eHt7Iy0t1RVHz02fNhNTJk9rNr2BAwZh7pwz4eNzdOK7MtxNN1RuAwcMFn4+KCw8LLPW8q// 2E3JQ69LkGnLCT0ToQtnVFdX149q7DcVv7X5OdL4jWaqGx3sKnnqfaZPOxmTJ05l+eyk96OrZBkS EoJTT5mLsWPGU5adJEtNtqvkaT5CZGQUeiUkIl++x+Z32jynv0daVx5pfPe8dLftrpJlnz79RIZJ iOkRa/w5HNWykFTDNt6RyuJI43c3+dXPb1fJU+87ftxEzDx5NqqqKpCTk10/K8b+kcrjSOM3mqlu crArZGneIy62p6tsBsjib3l5uQ0oHaksjjR+gwx1swMm687uo+h9WtOHPVJ5HGn8bia+BtmlPBsg 6bYHOlqW2hfp328gnOLv372d05H9/583rm+St79/AIpED9LlyrUJEybjjlvvhcPpwMTxUzBs6Ah8 v3I5dJ7qA797DEmJybBarThv4UXIyEpHampKkw+hsH57x+8wY8YslJWX4YzTRWEXGoZ163+Cnrvz 9vswccIUWDwtOHfBhY2md+b8BVh01Q0oLy/H7FNPR1R0NNau/bHL4jf5cN3kRHJSb9x95wOYd8Y5 6BEVg29XLDNy3lr+9R+zOXlcdMGluO6aX4tCZga279iGjIyD9aOjufhd8T40yFA3O9BV8gwMDML9 9/4eA0Sx7eHhiQXnnG/4eqxf3inP9r9AXSXL5OQ+eOC+RxEdFY3AoCAsOPs8o97WVaPdA2XpTqPt 210lTzNn2kh56IE/YPrUk7F2/Y91Bk70GsrTJNX2366U5b13P4TxYydh0KAhGDZsJCorK7Fz1/Y6 maYs6+Bo805XyvM3N92JU0+dK4q1Kpxz1rmG0nv79q118kx51sHRpp2ukmWi9HV+cdHlGD1qnFEu p02dgUEySP3Fl5/VyS9lWQdHm3e6Sp7aptU+bO/kvtKmteCC835hGAHs3bu7Tp4pzzo42rzTVfKM jurRKp0E5dlmEboidLQsx46ZYCymecbpZ8p3EVi/4SfjXq3VR7RWlstXfO16hvobR025dvWV1xuK kb88+Qfs2bvLsHbIlZGaoUOGGYq1+x/6LZZ+uQTx8T0xXBqCX3/zZf28u/YjIiJl5HwIXn3tBSz+ 8F2EhoRixPBR+GzJR6JUm4rJk6fiib8+ZpxLkNF3VeS5p6eV4eWXLcIXSz/D8//+J/IL8sQCbg62 bt+MAf0HNxlfradsNm9DAdee+K4HOA42Zp0y27BqKBPlpAZTudYa/vUfvzl5+Pj4YuqUkwzZqlZ6 9Y+rGijXmotPedan3fh+V8kzSixitDw+/Y8n8MmnizFsyAj06pWEFd9948oY5elC0a6NrpKlNkJ0 QOQPjz+EZV8vxYzppxgdPvPDppmnLNslwjqRukqeaqWm4fJLFyFEvqkOsRD+ftXyOso1yrOOaNq8 01Wy1HI5bcoMfPDh//CvZ5/G51980kCxRlm2WXwNInSVPBN69sKMk07B3+W7+cHid1Ajo/MJ8t1c vXqlK0+UpwtFuza6Spa7d+/EV8u+MMrkhg1rMVEs+JctW4odO7e58k1ZulC0e6Or5BkbE4fx4ydK m/av+PCjdzFk0DBER/fAd99/68o75elC0e6NrpLnRJkRp8Y+zekkKM92i9GI2JGy1AR1RuT69WuM WZEZmeku5Vpr9BFtkWVzT20q17rU55pOMQmXqaCpqQeMvG3dthnlFWVI7JVo7Nur7aLpLza2dXQ1 JDjU2G7qX3Z2Fv76tz8iJzcHY0aPx5Ahw7Fl2ybjck1T09izZ5exr6MHYaHh0DyYoac0VPz9/LF3 7x7j0L79e1ADp1Ggmorft09/wyJOlYTtie9+fzMf3fn37f+9gRdffg6GmtjtQZri19zzN8fz4MFU /PFPDzc5BUJv3Vz8pvJDeboJTTa7Sp4bN23AnXf/BgcO7JcOfAhCxOJ0T70RPsqzrmzautdVsly5 aoU0KP+CJLFinTN7HnxkaoQOULgHytKdRvu2u0qemrva7+kwY+CpsemglGf7ZGjG6ipZ+vsFiLsM H2l0noOXX3wb117zS2NqsZkP/aUs3Wm0b7ur5JkoijSd7qIzBV59+b/oJwONOrjsHihPdxpt3+4q WbrnbP68c1BRUY6vv61rTEBZulNq33ZXyVP7KI5qhxgBTDcMAWJiY7F5y891Mk151sHRrp2ukqdm riWdBOXZLhG6InWkLDVRHUD8QAyt6oem+v/u+oi2yLJ++o3tWxs72FnHdG6tWOqJT57DPgU8LZ5G 42/F99/gFPGb9uD9jxk+B0aOHANVnpnh0kuuNizZdD8lZT+efOpx85T4+ZmAeTIlVH2u7du31ziu DcrS0hLXNbphtXrVaVh6i/VZtfgfKSk5fJ1Fpqj5+fobeWosfqX4uLjxV1cb6Y4cMabN8ZXBiRBa 4t+YPJuTR2uYNRe/qfxQnq0hiybLg/k+t1eeaq574/W/MTKx5POP6mSG8qyDo8N2mioLRyrLM+ae ZVgOZ+dkISsrs05+Kcs6ODp0p6PlqWXyrDMXinuENWIdnN5oXinPRrEc8cGOlmW5uMtYKVaHag1T VlaGX954C5wOJ5574f9ceaUsXSg6fKOj5al+ihMTk2Sa9k948+1XcfOv78BVV1xvzNAwM095miQ6 9rejZWnmTmfCjBo51rDgV1/C7oGydKfRsdsdLc+c3GykpqUYbmu0T6ruiDIz2Q7qWKk1nVpHy/OH H79vViehOWH5bFoeR3KmPbJs7n4tpadx2yrL5u6n57pUuZafn29MMYkIjzDypY34KrtdlGk5hgXL 7x74rfEy68klSz4Wf0yDjev039fffIGNh5zIFZfU/QDptDL9O3XWHGNET61iSkqKoeZ5eg+HwwGL xQMlomxzX/BAlWoesCA4ONi4jyrWqsV6Ll18eanjy86O73q443CjJf6NybM5ebQGUXPxKc/WEGz6 ms6S55VXXIse0TH4qyjLCwoK6mSA8qyDo8N2OkuW5oDH7bfeg/PPvRiP/fFBV54pSxeKDt/oaHmq 34nAgEAZdd+IHj1iYPWyisPtOOPbqd9SDZRnh4vxENfm2y1t/W5mZmXg1f+86MrsqlXfYejQ4a59 3aAs6+Do0J2OLpvajklNTZFpZ+8Y38tvxG3KlMnT6+SZ8qyDo8N2OlqWZsZOm3W69E2KG1it6XnK 0qTU8b8dLc+5s+dDp4bedMt1Rtm8/tqbsFB8fa/56QdX5ilPF4oO3+hoeeqsmuZ0EvoAlGeHi9FI sD2ybC4nLaWncdsiy+buZZ7r0mmhOiqjTq6HDh1pKL3GjZ0ojfgA7Nu/F9OmnoQ7ZAGClT98JyNy r4nz3aHYseOwk1Z90dfJXFr927Vrh5F/vebJJ/5pWEvoAbVMM4OO1Pr5+snKoxONe+k9s6ShaXYO 9Lo9e3eiqLhQpsCMM6INHz4S4onSsIxrLr6ONKk5YXvjm3k8nn+b46fP3Zg8m+PZGlbNxW8uP5Rn y3Sb49deeS66+gaMEWe+qlgzp2+754TydKfRcdsdLcsLzr8Ejzz0uGEVrIMZFkvDzwpl2XHyq59S R8uzoqJCLLIdOE8UpHNlmq+6ctCBq7CwcNetKU8Xig7d6GhZqgXFX5/4h7Gqq5bNuLieoiStu0gU ZdmhIqyTWEfLU9Pz8vIyfA3rjXQqi8NZU+eelGcdHB2209Gy1Ixp23PkyNEy/f5Tw/l9/cxSlvWJ dNx+R8tTFd9ax5qhQlweue/rccrTpNPxvx0tz5Z0EpRnx8vQTLE9sjTjNvbbUnoapy1ls7F71D/m ERoWXefL3FMq+6zsuqas9SMdyb6uLHf7LfcgLDzccMb6yWcf4ZVXnzcqoTtvvxcjR4w1nGHv2LkV f/7Low2sWdzvrRXXDdfdhCni6F6DUzoEiz96D2+8+Yqxr37RZkmnQENWZkajnXhdvfS6Rb+Cr58f 7LL60usSV63gNDQWv0Cs7x5+6I/G6KFaZrQ1fmNKBONm3fSfruB5pkwhskmDT0Npaan4APk3lojj 5Mb4tfT8TfGMjY3HXXfeLysS9hCrQm/xTyH+9GRBjN+K3y730FR8vaax/FCe7vSArpKnLlaiK/2q QtxZ4zQyoU6ZdQES90B5utNo23ZXyTI+PgG33Hwn4uMSZNp/DQoL8vF///qbOBNdWyfDlGUdHG3e 6Sp5umdMXR9cfunVeOLJx4wBEfdzlKc7jbZtd5UstY30m5vukEHGSUbZZDuobXJq7dVdJU/Nj7pg mDv7DBnE8JTR9mKjrnW3jtFrWDaVQvtCV8py0VU3oHfvvrjnvtvqDPy755yydKfR9u2ukqf6Dr5N +ra64Jq2aStkkbcXX3q2gUUi5dl2GbrH6Cp56rezNToJytNdOm3b7mhZ3vqbuzBu3ETDjZFDZiEW FhYafvl1NmNj/f/6+ojWyvL8C+c3+aBRkdFIEWOwLleuNZkjniABEiABEiABEiABEiABEiABEiAB EiABEiCBbkLAVK41nL/TTR6A2SQBEiABEiABEiABEiABEiABEiABEiABEiCBo02AyrWjLQHenwRI gARIgARIgARIgARIgARIgARIgARIoNsSoHKt24qOGScBEiABEiABEiABEiABEiABEiABEiABEjja BKhcO9oS4P1JgARIgARIgARIgARIgARIgARIgARIgAS6LQEq17qt6JhxEiABEiABEiABEiABEiAB EiABEiABEiCBo02AyrWjLQHenwRIgARIgARIgARIgARIgARIgARIgARIoNsSoHKt24qOGScBEiAB EiABEiABEiABEiABEiABEiABEjjaBKhcO9oS4P1JgARIgARIgARIgARIgARIgARIgARIgAS6LQEq 17qt6JhxEiABEiABEiABEiABEiABEiABEiABEiCBo02AyrWjLQHenwRIgARIgARIgARIgARIgARI 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 UwNx0FbnOu6QAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQwAlBwGq1oqS4CPsP7DOe19vmK9v7kZOT 3eD5PULDokWVdjiEhoYhIDDw8AFukQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJuAjoaqElJSUo LMhHA+Wa6ypukAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJNEuACxo0i4cnSYAESIAESIAESIAE SIAESIAESIAESIAESKBpAlSuNc2GZ0iABEiABEiABEiABEiABEiABEiABEiABEigWQJUrjWLhydJ gARIgARIgARIgARIgARIgARIgARIgARIoGkCVK41zYZnSIAESIAESIAESIAESIAESIAESIAESIAE SKBZAlSuNYuHJ0mABEiABEiABEiABEiABEiABEiABEiABEigaQLW+qcsFgt8fX2hvwwkQAIkQAIk QAIkQAIkQAIkQAIkQAIkQAIkQAJ1CTidTpSVlaGmpgYNlGuRUdFwOKvhcDjrxuIeCZAACZAACZAA CZAACZAACZAACZAACZAACZAAPMUoLSAwCJkZ6Q2VazabDVnZ+cREAiRAAiRAAiRAAiRAAiRAAiRA AiRAAiRAAiTQBIGoyGjjDOd+NgGIh0mABEiABEiABEiABEiABEiABEiABEiABEigJQJUrrVEiOdJ gARIgARIgARIgARIgARIgARIgARIgARIoAkCVK41AYaHSYAESIAESIAESIAESIAESIAESIAESIAE SKAlAlSutUSI50mABEiABEiABEiABEiABEiABEiABEiABEigCQJUrjUBhodJgARIgARIgARIgARI gARIgARIgARIgARIoCUCbVOuhfTG0CG9EVI/1aaO17+utfv+PdF/yEDE+7c2Aq8jARIgARIgARIg ARIgARIgARIgARIgARIgga4n0DblWtKFuOP3f8FvTqub0Tm3/R2P/fpC9Kx7uP17I6/Gg7//Ay4b 2f4kGJMESIAESIAESIAESIAESIAESIAESIAESIAEOptA25Rr65ZgY34A+k84wy1fF2BmfxtSNr2M jfBHfL/hSBLTNv+4gRjar6ccqRcMK7fGrdJCkoY3HkeTaNI6rvaeQ5NC692IuyRAAiRAAiRAAiRA AiRAAiRAAiRAAiRAAiTQuQSsbUv+R3y6KQPTRk7GHHyETzXyOZORbDuApe+kyM5JuOz++5CctQv+ 8Qmw2WxA5hL89ZrHsVzUbDPvegm/mRCAqirIuSpsfPkW3PXubonXGwsf/wsuFyWdnqvKz9OUD4X6 8Uqw8m+X4/dflQJJN+CpxxcgHhIJcq98815mXP6SAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQOcR aJvlmuRj4xsbkBIwAtMOTQ1dOKEPbKkbsDjtcCb9S5fgunPn4JJHV6A0ejJOOVnOnXYvFk2w4ae/ LcQ5cu5Xi/PQ/8KbsVBN2067Ggv749C5hfj9pioEmMkZ8Uqw9OY5tfG+LMHEq+4V5R4w4YIZSK5a jX9Ieudc/kd8uqMEiDMj8pcESIAESIAESIAESIAESIAESIAESIAESIAEOpdAGy3XJDNpb2Bj6mk4 ZapMDV0SgAlJNuz57DmkuuUza++7KND9HzKRL2qy0CRRhEX1QUDJeixVizMJe9/8EZnzT0N/8as2 YVTdcxu/2o3MmWHGdcY5MWdL/vUzeEqP2MTyLSBMrNWAT5dvQf6EKVj07DOYtuNHrPrsZSx3U/IZ CfAfCZAACZAACZAACZAACZAACZAACZAACZAACXQSgbYr15CCl9fuwtzZMzBHrNeSsQWvv1mrMGsu j6V2nbrZeGjxXFUe9uzYbUz+1BS2bTqAn3Rjxf24bu9YzJx5GkaPn4cbf38aRv3pXPx+hZ5kIAES IAESIAESIAESIAESIAESIAESIAESIIHOJdDmaaGandI3l2Eb+mD+/EFigvYdPm1Zt4aNq3ahRKaT nnKyLjzgj6FXjUXPqgPYvk6mmm48UOfczAVjEX3ouWvP9YD/9ufwf/98Ep9WRWNAnPhzk/MTrn8a f766N7595RHcf8cb2FYVhujkQxH5QwIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAKdTKBdyjWUfohV e23oKXMz96x6E63QrYmV2eN4bnkJht70P3z0wWI8NlX8r73yJP6nkZc8gudWVWH0oXOXV20R+7hD Qc8t13OL8e5/P8XTotArXSv3l9OrPtsK+5BFeE2Ov/v6IiTnL8MH75gR+UsCJEACJEACJEACJEAC JEACJEACJEACJEACnUvAIzQsusb9Fj0TeiErO9P9UAdvhyKpXwCydqQ0VMqF9EZ//wxsT2tMXdd0 vJCk4QjN34C9hqO3Ds4ukyMBEiABEiABEiABEiABEiABEiABEiABEiCBegSiIqORcmA/joJyrV5O uEsCJEACJEACJEACJEACJEACJEACJEACJEAC3YyAqVxr37TQbvawzC4JkAAJkAAJkAAJkAAJkAAJ kAAJkAAJkAAJdAYBKtc6gyrTJAESIAESIAESIAESIAESIAESIAESIAESOCEIULl2QoiZD0kCJEAC JEACJEACJEACJEACJEACJEACJNAZBKhc6wyqTJMESIAESIAESIAESIAESIAESIAESIAESOCEIEDl 2gkhZj4kCZAACZAACZAACZAACZAACZAACZAACZBAZxCgcq0zqDJNEiABEiABEiABEiABEiABEiAB EiABEiCBE4IAlWsnhJj5kCRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAp1BgMq1zqDKNEmABEiABEiA BEiABEiABEiABEiABEiABE4IAlSunRBi5kOSAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAl0BgEq1zqD KtMkARIgARIgARIgARIgARIgARIgARIgARI4IQhQuXZCiJkPSQIkQAIkQAIkQAIkQAIkQAIkQAIk QAIk0BkEqFzrDKpMkwRIgARIgARIgARIgARIgARIgARIgARI4IQgQOXaCSFmPiQJkAAJkAAJkAAJ kAAJkAAJkAAJkAAJkEBnEKByrTOoMk0SIAESIAESIAESIAESIAESIAESIAESIIETggCVayeEmPmQ JEACJEACJEACJEACJEACJEACJEACJEACnUGAyrXOoMo0SYAESIAESIAESIAESIAESIAESIAESIAE TggC1rY8ZXhYOHLzcl1RAgODEBoa5tqvrKhAZlaGsW/z8sKgQUNhs9mwafPPKCsrc10XExOL5KQ+ SM9Iw549u13HLRYL+vUbgNCQMGzfvhV5+YfvFRYajv79ByK/IA87dmyD0+l0xWsqveby0Fx6roS5 QQIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQALNEPD09Q14wP18cHAISstK3Q+5ts+cv9BQlJkHpk+d gVNnzUViYpKhFIsIj8CWrZvg5+eHc865ACNHjEbPnr2McympKaJgK8WokWNw5rxzEBXZAyOGj4LV 6oX9+/dCFWunzz0TUyZNR4/oGAwbNgI5udnIz89D7959sXDBBYiP64nBorBThd6uXTtQU1PTZHrN 5aG59Mxn4y8JkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJNEXA3z8ARYWFaNO00D7Jfeuk17//IAQG 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 yAvB3AkTzfWn3vW8dxlZn5FyhEo/7cdUeXlcXFRi7mt1uIzOPKkhRRwTrz9HGp6XQ6ndDBnJkpaW ZiY2cPYYtXpJ7SwS3n2HSj+dRESfL9Mlnrbed/b09ogH/hkT3sKxp9TPkcbIy6HSz1s7APUbWTMr R6C1myvPBnpvouFGdKSf2mj0/kRfKrl65na2AXir3fZXtlmHMOx7Ym4eKiSWIo1rw9BwAwmQAAmQ AAmQAAmQAAmQAAmQAAmQAAmQAAl4JmAZ1wZcfDzn5V4SIAESIAESIAESIAESIAESIAESIAESIAES IAEXBGhccwGFm0iABEiABEiABEiABEiABEiABEiABEiABEjAGwI0rnlDiXlIgARIgARIgARIgARI gARIgARIgARIgARIwAUBGtdcQOEmEiABEiABEiABEiABEiABEiABEiABEiABEvCGAI1r3lBiHhIg ARIgARIgARIgARIgARIgARIgARIgARJwQYDGNRdQuIkESIAESIAESIAESIAESIAESIAESIAESIAE vCFA45o3lJiHBEiABEiABEiABEiABEiABEiABEiABEiABFwQoHHNBRRuIgESIAESIAESIAESIAES IAESIAESIAESIAFvCNC45g0l5iEBEiABEiABEiABEiABEiABEiABEiABEiABFwRoXHMBxdoUFRUF /XiTvM3nTV3Mc50ANbjOIlxL1CBc5K+3Sw2us+ASCZAACZAACZAACZAACZAACUQagbAb12JiYhAb G+sVF33AjIuNQ3SU9902ZeLiEPfmJzr6ellt19ruqg95eQXQj6bo6Jhhhjbth+mP1FlWNg0pKale HUekZQqnBspVNYgVXV2lkTSw+q46j2UN9PzTY/Em+XId6Hlvnev67ct1oO06lrP6Sg0sEp6/3Wlg 6Wnp4+o8sK6DG10DzwS5lwRIgARIgARIgARIgARIgAQik0BMUlLqFx27lpGRifaOdsdNQV1+38Mf xKa778WuV3cY41V/f/9ge9aDpH7r9tLSSfji576CquprqJaPbreStazf+rGMANOmzcAXP/9V3LPp frzl/reiu6cHZ86eEkNDPP7ubz+DR977Qdx7zwOYOnU69u3fi76+PqtK/NXH/gaLFy3BkaOHTR+b mpvQ1tY6uH+R7Pv7T/8zmpoa8OgHPmL6ePbsaZf9Giz05oL2T/vp6nid8wZ7PVwaqHHyvvsewD/9 wxewauUa/Pn5rcMOdSQNrL5XVFzCJ//678esBv/0D19E2ZRpcq4ddHteWOfLaK8DuSKwYsWt+Nxn /w1333UvNm/egqqqa7hytRLZWdn4zD9+Ee96x8MjXge1dbVYsXyVXD+nh+hEDbz7LVq5YrVLDfQ3 6nP/9G948IF3yG/U2zAhJxdvHHx9CGPrOrjRNRhy0FwhARIgARIgARIgARIgARIggQgnoE5WLc3N 8Mu4FhUtj+0jfdQAdt1eNgyLGq8yMjJgt9uxaOFiNDTUo7Oz0xjHCvILsfrWdcjIzESdPNinpqZi 5fLVOHT4DWNEyZ2QK4atRvH4icXMmbPR0dGB4qJiqS8TCxcuQWJCojEaXLx0AV/4l39Enxjo1q5Z j72v7cGmjfdg1qy5+Mw//y32v74Xd92xCc0CRI00VrpypUL2vYaSklI8+OA70dragvq6GnR1dZks 2r9FC2/CC9v+bPp08NAB5GTnwFW/uru7rWqRlpaO5ctWYqp4u2mderzqrTJ3znwsvWU5Wlpb5Vja hxjeBgs7LKhpMUYc8dQZz+NHM0agBqrZnRs2CuN9htsL255zOLqBxZE00PMnXXhuffYpXLhYjlBr ADFcDXg1qmejGkxdfdSIOuzQhmxYs3qd0TwjI8sYemtra+SasI14HSQmJiJBzvO29jYkJ6dg2rTp aGxsxKTSyYPXQVZWDh56+7vx8o4X8bWvfwl63i5evASv7HwZa1avx/RpM/HZz39ajMt7cNeGTVDm 1dVVg/3T9dffeB0rlq0SI+haVFZekuu0QY5pwBDtiwZqKJwg1+9yqbOkuNRc93q8Pl8Hco7HyEd+ jlx+9GdopBRIDVpaWjFzxkzRJNkcY0d7Jz7w/r90qcG9m98Ce7cd//jZTwnbCtyz+X6Ul59FrfzW WMkXDfS30NW5YekWSA2sfvKbBEiABEiABEiABEiABEiABMYTAcu45t14TBdkkrISMWVVIWKTPFfR 09mDC7uvorNxwCDloipMmzoD8fEJ6BGvsk0bt+Ab3/qqPPDPwANveQjHjx/Fpk334syZ03jiyccH i28Ub7eiwmJ86aufR1FREf7yg3+Fn/zsR9i88T5MEaOVerZtF2OCGtpe2bndlDty5CBuX3+XMWpN Ki0TQ1qFGNSazKeuvhYzps/EbvGgs9K73/k+492jdSUlJYrRY6o89J5Boxj0HFPexDwx4j1i2ldj m6t+HTw04ImihsB//LvPo7ev1xjWNsvxfu0bX8KWex8U49oCnL9wFvff93Y89vjP8cKLzzo2M2x5 Yk4f7ltrQ0qSZ8tNe2cUntqRgOr660NinSsLhwbK5PCRN6DGBXfJWw0cz4FQapCamYdZK+5HQqL7 IcG2rjac2vNHtDVdN1i5Ot6lS1dgopxLWeJNdtedm/CVr34By8QI6+k6sPj830//R4w5s/G+hx/F N/7/r0K3W9eBekElJMTjxIljplldf++cvzBGY/UWtDwGS8WIrAZoNXQ7Jq2rprbWXAMpYsCbM3s+ LldcNuevY77RaKDDHNVjUb3nkhKTsH7dBvzblz+PD/zFh0d9HeQl9+LBKTakxbm/Dlq7o/D7Cwmo 6vA89DZQGvzqsZ/iLx75sLnOL4lxv6Wl2a0GP/35j4y3og4LLZsy1RhZ6xvqHNEaPUergf4WKl/n c+Py5Uum7kBqMKSzXCEBEiABEiABEiABEiABEiCBcUbAs2XMA4x1n74ZWZPSPeS4vmvyikI889ld 1zc4LbWKp5Z61HS0t+NL//o18d5agRe3PYtjx45Ah2K+9YGHMHfuAqdS7le13Le+/e8oLZkkxrYt 4snTYDL3qafNmy5Eaiy7du3qYCWOwzMHN765cOzEETF2bMbu3TvNkFLn/aNZ12F46s3y2v5X8cyz fzKeJdlZWZgjXms/+dn/mCGojzz8AfHYWzuice2Hn2vBrCm9XjV/7xob7vtkptu84dDAbWdc7IhU Dd7yyf9DbslsFz0eumn2si34+Rc3Dt3otKZG3K/8+xclzl8+PiPDRBcvvgUH3tjn93WwSLw4V69a K95tA0Oae3uHnzM5ORPwnne/H0ePHcLJU8edegZ0d9vkeqkUw3ERfvv7Xw/bP9oNWZlZxkvtoBj6 9u571cSDKyub6tN18Mt1LZiT3TNiFx6YbMPtW7M85gukBj29PfjDE4/jpZefFw/XJejt6XWrQWFB IT79N59FgXyrJ2xD/cBvlmNnI1kDx35ymQRIgARIgARIgARIgARIgATGGwGfjWs6HLSvt18GxXlO 6kuieT0lHRqpsczUwKXx3hLEi23pzStlKOZDxjvGbrO5Lv5mtTq8ybEjGgNNkw637JUYamo40KRe Y+IiYtrRIaTqIaRJy2sMNMvApuvWssng9M9I+62+OPdL13Wo1x/++Dg2b9pivPQuX75gPIfS09Px LvEQeuht3cIr2gwPc2p22KoOBZXndau5YfutDaqB5vWUwqGBp/6MxHik/RaUYGsgYsl1IIYd0dZt UoOu5Bsp6dBnTTU11WZIaFJS0ojXQb+M9zXHKOWsb1OJ/GNdBzYdbhkbI8NnM8wu9ZDSc8I6x9Vr 9MMf/Djq6+vw05/+yCpu6rPyDG50WPBHg1OnT8h5/wzUA/W973m/iTX30ssvwqfrIKofPTpC1YME esDRkm+kFEgNesUT1zLse9JAJ7OokmG4n/r0R03cvU998h9w4dazeGn7i35p4OncUO0CqcFIXLmf BEiABEiABEiABEiABEiABG5kAj4b1/b84DDy5k2Qh3ZPT7QQb41+VB8bOsTJGWh2To4ZStll65LY WxNw7PgRLFiwCLt27cDPfvFjM+RS1x1TS2sz5mTMk7hqSSibPBVpqemOu82yGrIaG+sxW2Kr7Xhl m5mcQB94NX6RxufSeFMaHy1L4qRNmDBR8rxkZvzUmFTl588O1qcGBv1P40Hpp1hiRLW1tQzud1xw 1y818GnMOI3rpka9r3/zK8iU+Fp//YlPm6GrzU1N2PrMH7Fr9w7cdNNSuDUoOjT2j99OxfKF3Ygf QUW72H72HnY9G6dVXTg0UIOmxVQNimr0Ua+qpKRkExdsLGjw5//9W5TOXiXXQbyFcth3b48dl0/u HrbdeUNRYYnxZJw+fYZhUFdXJ8Ml7/B4HWjssyKJraXsZkg5jbHlnCorL6OzoxPzxPvz9JmTWCLn lw6HrpChnQMTe3zWnJvflOHY0RLET891VxoYz08xyujMrn0yrFknYLhWdd3707Hdka4DNcz3o0/i jP0NdGKQ97zrfWbYpC/XwV+/mo5bC+yI92C/tIvxbdc19xpZfQ+HBp+SiTi6umz40f9+z8Re65cX AnFi8NSx+86/RaPRwN25Yf0WBVIDix+/SYAESIAESIAESIAESIAESGA8EhjBLOMeScPFFujH36TG FJsY1XQYXKx419TLhAYvi8eGGl40Ftf8+YtMTKbGpnrjadPd021m9NS4UbetuQP/+e0foKOzA+0y pFRn+tShWI7D3nRY1l9+6BP4r2//CLFxsfjt735tvMe2vfS8Mbr9+1e/bQ7hqMzSqMa8h97+HmPQ +NrXvzxYlxoh1CD3oUc/ij+/sBXrb7sTxyV+1e5XX5HZRwf6Y32769cj731UYlxNknhy/24mQdB4 SH19/WiQIas7pd2EhAS8990fkPhabzeB6X/92M9HRHusPBb68TeFS4M7br/bTDihQfnVe+cH3/sp fvXYzzAxN89rDdTjUTVXA2g4NKi5dAz68TfpMahh6+tf+0+kyLDhk6dOYL9MMFBYWDjCdbAPH3z0 Y3Id/NAMq+6Ua0FZOF4H6pX4p61PyPn1F1h32waJq9aHH/74e6bL99/3oJlIxCbeod/6xvdNvDV3 GuhMpjoBxZdl6PZzEqtNh5E+8+wfzfU2Wg1+JO2vXXM77pSJRHSYtA5FfU0mGtFhkaO9Do40xEI/ /qZAaqC/Rdb5qP3ypMEOmVjigx/4KL77nR9L7L5E6G/Riy8+5/K3aHQauD43rN+iQGrgL3uWJwES IAESIAESIAESIAESIIGxTCAqKztvyFipktJJEry8OuTHpEHN48XApB41VtLJCFJTUiQo9xVr0w3z rcemBkRr2JgeWEx0DPLz88N2vNQg/Bqot5Kmdpn900o38nWgXpxqiHK87sN9HVCD8F8H1rnPbxIg ARIgARIgARIgARIgARKIZALqHFQhk8ZFjHEtkmGxbyRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiTg SMAyrnmIUuSYncskQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQALOBGhccybCdRIgARIgARIgARIg ARIgARIgARIgARIgARLwkgCNa16CYjYSIAESIAESIAESIAESIAESIAESIAESIAESUAIxMTGDIPyf Ym+wKi6QAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQwI1LICoqChprrV/+0/810XNtgAP/JQESIAES IAESIAESIAESIAESIAESIAESIAG3BNSwlpeXj8ysbHR1dQ3mo3FtEAUXSIAESIAESIAESIAESIAE SIAESIAESIAESGA4gShEIT+/AJkZmaipvobW1pbBTBwWOoiCCyRAAiRAAiRAAiRAAiRAAiRAAiRA AiRAAiQwlIB6rBXkFyItPR1VVVXosnUiOTllMBM91wZRcIEESIAESIAESIAESIAESIAESIAESIAE SIAErhOIjo5GYYEY1tLSxLB2DZ1dnSgpLkVqaupgJhrXBlFwgQRIgARIgARIgARIgARIgARIgARI gARIgAQGCBjDWmGRGNLEsCZDQbvEsFZaUmp2Og4LpXGNZwwJkAAJkAAJkAAJkAAJkAAJkAAJkAAJ kAAJOBCIihKPNTGs6fDPa+qx1jngsdbb14srV6+go6NjMDeNa4MouEACJEACJEACJEACJEACJEAC JEACJEACJEACQExMDBITEnHt2lW0tDQjMTEJPT09Zr2jo30IomETGthsNqSJu1tvX9+QjFwhARIg ARIgARIgARIgARIgARIgARIgARIggfFAQIeENotRrbe313ivDay3QD3a1JstRvarDU1TVFZ2Xr8j FM2s1jj9ZiIBEiABEiABEiABEiABEiABEiABEiABEiABEhhKoE+c0jQGm34P81zTjc7ubUOLc40E SIAESIAESIAESIAESIAESIAESIAESIAESEAJ0D2N5wEJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJ +EiAxjUfwbEYCZAACZAACZAACZAACZAACZAACZAACZAACdC4xnOABEiABEiABEiABEiABEiABEiA BEiABEiABHwkQOOaj+BYjARIgARIgARIgARIgARIgARIgARIgARIgASGTWigSGJjYxHF2UJ5dpAA CZAACZAACZAACZAACZAACZAACZAACZDAMAL9MiFoT0+P2T7MuJadk4P4hASZSrR/WEFuIAESIAES IAESIAESIAESIAESIAESIAESIIHxTiAmJgpdnV1obGjAMONaUlIy6uprxzsjHj8JkAAJkAAJkAAJ kAAJkAAJkAAJkAAJkAAJuCWQkz0BjWjAsJhr0RwO6hYad5AACZAACZAACZAACZAACZAACZAACZAA CZCAEoiJiTEghhnXiIcESIAESIAESIAESIAESIAESIAESIAESIAESMA7AjSueceJuUiABEiABEiA BEiABEiABEiABEiABEiABEhgGAEa14Yh4QYSIAESIAESIAESIAESIAESIAESIAESIAES8I4AjWve cWIuEiABEiABEiABEiABEiABEiABEiABEiABEhhGgMa1YUi4gQRIgARIgARIgARIgARIgARIgARI gARIgAS8IxDrXTYrVwqKZ0xDVry13oaKY+Voslbdfg+Ui6s5jAsjZ3ZRi9WuHY0XTqKyfWiWzCkL UZICtFX6Wv/Q+rhGAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAt4QGKVx7RY88oXPYUWqY9UN2PPt 9+HLLzlZvByzYKBc3ku34xM/HrJj5JWUO/H33/oU1mQBdsTLf+fw5N9/GD+8oEWn4oPf+i9sKZN9 diBejH7nn/q4tFE+cr3MQQIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAJ+EvBpWGjb3n/DPVtul89b 8ZPTqVjxjk9h/mBH1MtsIebPKIE4kw1PKSWYOW8qMq09mVMx31of3JeFKfNmo1gqKH74nViTcgLf fd9GPPC2D+HJmlJs/Mg7Bup+4JPYWFyFJz+p+zbir7Y1oOzuj2KjVTe/SYAESIAESIAESIAESIAE SIAESIAESIAESCCIBEbpuebck0Y0tovLWIoM19RdUz6K73ztQZSJj5nxMmvfhW997AvY5ujUtvhR /Mvf5WPbFvE+0zIP/j2+eh/wpK6bfXPQXp2NvLw27PmPd6FmXinazvwaz5o6yvHDbeew8Z2rxID2 GH73h7/CA3/QShySurAxkQAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEAICPhkXIuf+Qi+8613yjjM fBRnXsaTX/0uKqWzxUVA9Ws/xLe+/hgu4B589befwpZ3ANtGNRQ0Fe2vfQj3mKGdt+GzHwEa39h9 HUVNA+zSrowSHUzzH/4qPnjrHPF0a8OLP/4Snh3cwwUSIAESIAESIAESIAESIAESIAESIAESIAES CB4Bn4aFovEyTp05iVPH9otRbQ42fuARTJE+Vu4SDzMZJvq2L/wA3/nuI5g5OPHBaA7gMo46x0xL yfZYQeP5cpw6uBtH27Nxx8OfwmqPubmTBEiABEiABEiABEiABEiABEiABEiABEiABAJDwCfPNXvN y/je97cP9OB0Ch7761V427zv4eiDP8HHZlThlV0v48nf27HmMx8b4mE2+i5vR2XN57Bk4kIpWmGK p8zMR6oM/dRhqClFs1EWX4Wju36E7+2SDeI59/3vrcKaW4Gdus5EAiRAAiRAAiRAAiRAAiRAAiRA AiRAAiRAAkEk4JvnmtUhmYzg9mWlSEUbGmX2zuJMWTrze3zt+49hL0ox0ZXnWlM32pGPsnt1YOdU vFWMZZ7StmPngJkP4qPzZHYDmTn0k6unwX5htxn6WfbgP+OrX/vmwD6Z4mD+3VORJ31pb/JUI/eR AAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQGAI+OS5lrr8c3j6yc8N9MDegKM//Rp+KBMOFO88hNsf +Qf8QWKtwV6FRplboNu5n8d+imeP3oL3Pfo7PP2oHef3nhBzWKpzrsH1yh9/Db+a8k2878tPYZNs tVfvwnf/5TEx0EGGj34Nv534r3jbm/sgNR39/efxw2ODxblAAiRAAiRAAiRAAiRAAiRAAiRAAiRA AiRAAkEjEJWVndfvWHtJ6STU1FY7bhrdckoJZsrwzMozFcYANrrCHnJLvcVxFah06ZWWhSkS9O3C BTNnqYdKuIsESIAESIAESIAESIAESIAESIAESIAESIAE/CcwMTcPFZcvwSfPNY/Nt1fg9BmPOXzb KfVWui3ZKIY1tzu5gwRIgARIgARIgARIgARIgARIgARIgARIgASCQsC/mGtB6RIrJQESIAESIAES IAESIAESIAESIAESIAESIIGxQYDGtbGhE3tJAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiQQgQRoXItA UdglEiABEiABEiABEiABEiABEiABEiABEiCBsUGAxrWxoRN7SQIkQAIkQAIkQAIkQAIkQAIkQAIk QAIkEIEEaFyLQFHYJRIgARIgARIgARIgARIgARIgARIgARIggbFBgMa1saETe0kCJEACJEACJEAC JEACJEACJEACJEACJBCBBGhci0BR2CUSIAESIAESIAESIAESIAESIAESIAESIIGxQYDGtbGhE3tJ AiRAAiRAAiRAAiRAAiRAAiRAAiRAAiQQgQRoXItAUdglEiABEiABEiABEiABEiABEiABEiABEiCB sUGAxrWxoRN7SQIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkEIEEaFyLQFHYJRIgARIgARIgARIgARIg ARIgARIgARIggbFBgMa1saETe0kCJEACJEACJEACJEACJEACJEACJEACJBCBBGhci0BR2CUSIAES IAESIAESIAESIAESIAESIAESIIGxQYDGtbGhE3tJAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiQQgQRo XItAUdglEiABEiABEiABEiABEiABEiABEiABEiCBsUGAxrWxoRN7SQIkQAIkQAIkQAIkQAIkQAIk QAIkQAIkEIEEaFyLQFHYJRIgARIgARIgARIgARIgARIgARIgARIggbFBgMa1saETe0kCJEACJEAC JEACJEACJEACJEACJEACJBCBBGJ96VNsbBzi4+MGi/b29sFm6zLr0dHRSE9Lh343tzSjt7d3MF9i YhJSUlLQ1dWJ9vb2we3OC5onKSkZdpsNbe1t6OvrQ1QUkJCQJPXKgqS+vn5psxP9/c6luU4CJEAC JEACJEACJEACJEACJEACJEACJEACoSHgk3FtyuQylJVNR09Pt+llc3MjXj+wDzExMZgs+5YtXYn4 uDjsP/Aazp07I0YwGzIzs7B40RJTrrrqKl7btwe1dTVDjlINaPl5hbh5yVIUFZWgrq4WR44exKXL F8W4FoXly1YiLi7eGNvUaHf+wllcuVI5xIA3pEKukAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEAQ CcQkJaV+0bH+jIxMtHe49yrTvA++5SGsX7cBMbExyMvLF4+yRBw7dhjFxSX4+Ef/xniZqUPZxrvv Q2XlZdTW1uDBBx7C7evuROWVCtxyy3JMnlSGQ4cPDDGM5WTn4KMf+aQY4KahqvoaSkom4c4NG3H1 6hVT58c+8ink5xcgJTUV8+bMx8qVa3Dgjf3o6OhwPISwLMfGxhqjX1gaZ6MBI0AdA4YybBVRw7Ch D1jD1DBgKMNaEXUMK/6ANE4NA4Ix7JVQx7BL4HcHqKHfCMNeATUMuwQB6QB1DAjGsFYSDA1TUlLR 0twMn2KuqRfapcsX8OSTv8dvf/sr/OGJ3xhAt65cawxM3//v7+AH//NfqKmpwto1txuvNfVGe/7F Z/Gzn/8Yv//DbzBzxmyUTZk2BOxdd91j8v7nd7+Jn/z0h/iPb3xZjHZHMXfOPJNPvdVefXUnvvOf X8dvfvtLY9TLyysYUke4VjKzMsPVNNsNIAHqGECYYaqKGoYJfACbpYYBhBnGqqhjGOEHqGlqGCCQ Ya6GOoZZgAA0Tw0DADHMVVDDMAsQoOapY4BAhrGaYGro07DQfgl0pta5Rz/wEWNMe/qZP+L1118z nmsNDfWDnm+VlRWYI4axgvxCJIp3W0XFZYPxWtUV9Mt/xcWlOHnq+CDasslTcebMSRnqWYFUqV+N eFulbrvdjoTEBERJvLWcnAmYOXO28Zzr7rYbA95gBVwgARIgARIgARIgARIgARIgARIgARIgARIg gRAS8Mm4tv/1vcaoduz4Ebz33e/HOx96GOXlZyXmWiw6OzsHu69x0qKjomUSghj0yqQEaiSzUhSi TIw2a12/+/r70COTI2iaPn0mNtyxEZkZWWiSmG6PPf5zxEr9y5etMsY1dedrbW1Bskx84Crp/lAm PfZQtxnK4xsvbVHHsa80NaSGY5/AjXEEvBbHvo7UcOxrqEdAHce+jtSQGo59AjfGEfBaHPs6jqSh TqapH1/SqC1QOgvoOTGkdUhctsbGBpmY4FXMm7cAE3PzZAKCGpSWlslwzQSZ7KDHzAxaU1ttjGPa wby8PJw6fVy2p0mstR4TS82x0+r1ViwTGaSlpg1OhHDnhk0mrpvm6+7uxjPPPoU/bX1CvNoy8aV/ /Q+skrhrOuGBc0qVuGyhTDrDqa1rYMbUULbLtgJLgDoGlmc4aqOG4aAe2DapYWB5hqs26hgu8oFr lxoGjmU4a6KO4aQfmLapYWA4hrMWahhO+oFrmzoGjmW4ahpJwy6x6ejHlzRq41qczAL6vocflQkH qvDy9hcwZ/ZcMzTzmswAeuz4Ucybu8jMFtrc3CSGtinYueslM6mBDvW8+eZlqJAJDpYvXYHmlmaZ 3GBgmKjVcTXUPfyeD+DOOzfh4KEDZuhpiQwd3bd/r8liDQstkwkP0tPSzWQIWo+r1NTU5Gpz0LbF xsUi1G0G7WDGccXUceyLTw2p4dgncGMcAa/Fsa8jNRz7GuoRUMexryM1pIZjn8CNcQS8Fse+jsHU cNTGNZvNhu07tuFumXzggx/4qHiodePZ5542Xmz79u/BrJlzsOnuew318xfO4uWXXzRudVufeRIP vOXtDmX+BPVUc0xqUJs4MR9rV6/DzUuWyXBS8ZI7f0a81Z40M4SqgW7WrLlmWKjuO3X6BF555SXH KrhMAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiEjEJWVndfv2FpJ6SToUE6m0RGYkDsBdbV1oyvE 3BFHgDpGnCSj7hA1HDWyiCtADSNOEp86RB19whZRhahhRMnhc2eoo8/oIqYgNYwYKXzuCDX0GV1E FaSOESWHT50JhoYaIq3i8iWM2nPNpyNgIRIgARIgARIgARIgARIY5wSiY2RKr5joUVPolwm/+nqH vA8fdR0sQAIkQAIkQAIkEDwCNK4Fjy1rJgESIAESIAESIAESGIcEXBnR4hJjkDoxGXHJo7z9joqC vc2O+nLXcYbHIV4eMgmQAAmQAAlEHIFR/nWPuP6zQyRAAiRAAiRAAiRAAiQQVAKujGXuGnRnRMso SkOaGNfsHd3uirrcHiXebml5Kdj57Tdc7udGEiABEiABEiCB8BOgcS38GrAHJEACJEACJEACJEAC EUogPiUO6QUpXnucuTOidXf24OgTZ9HVYh/1kd75hRVQAx+Hho4aHQuQAAmQAAmQQEgI0LgWEsxs hARIgARIgARIgARIYKwRiImPwZSVRUgvTPHa48wfI5o7PmqQS8xIQEdDl7ss3E4CJEACJEACJBBG AjSuhRE+myYBEiABEiABEiABEohMAuqxljsjC3nzcrDvx0d98jgL1JHZmmlcCxRL1kMCJEACJEAC wSBA41owqLJOEiABEiABEiABEogwAmosSkiLR2dTF3q6eiOsd5HVHfVYm7S8ENmT03H1cG1YDWtK pqvFZjzXIosSe0MCJEACJEACJGAR8Mu4Fh0djYT4BNi77ejtHbhJ023paenQ7+aW5sHt2mBiYhJS UlLQ1dWJ9vZ2qw/DvjVPUpIEfLXZ0Nbehr6+PshESUhISJJ6ZUFSX18/bLZO9HNW8mH8uIEESIAE SIAESIAEHAlYwxuzp2ag8vVqVJ+oR4+tB1Ex0UjJTjTGI13XmF4a20uNcCm5iWhoCF2cL+2jc18c jyGUyxOmZSJrUioO//Z02A1retxdzTYkpceHEgHbCiABvabi5ZqKS4hFa7X7Z6AANsmqSIAESIAE QkzAL+NaUWExZs2ai5OnjqGysgIxMTGYPLkMy5auRHxcHPYfeA3nzp0RI5gNmZlZWLxoCcrKpqO6 6ipe27cHtXU1Qw5XDWj5eYW4eclSFBWVoK6uFkeOHsSlyxfFuBaF5ctWIi4u3hjb1Jh3/sJZXLlS OcSAN6RCrpAACZAACZAACZDAOCfgOLzx9HMXUHJLgQnO33ylDfEpsZi+rhRXDtWgSdbbazqQKjNa Fi7IReGciWj7dRtar7UbQ1yggulbHnS99l7ExMUYY4MaH3JnZGLG7ZMG+lLZihZpNzE9Aa1VoTNG GCOIePgVL8nDpb1VEWFY09NXY66l5SeP8zN5bB6+nu86IUb+vAnInZ6F7d94Hf3iJMBEAiRAAiRw YxGISUpK/aLjIWVkZKK9Y+SbmNSUVDzyyAdxz+b7UVtTgzNnT6G4uAQf/+jfGC8z/ZOx8e77xOh2 GbW1NXjwgYdw+7o7UXmlArfcshyTJ5Xh0OEDQwxjOdk5+OhHPikGuGmoqr6GkpJJuHPDRly9esXU +bGPfAr5+QVISU3FvDnzsXLlGhx4Yz86OjocDyEsy8kpyRHRj7Ac/A3UKHUc+2JSQ2o49gncGEfA azEydDQea6uKkDc7BzWnGlCxvwodjV2YOCMbOeKdlVOWgaqjdcgsTUfhwlwxtsWZvMarrTcaacUD s2Sqh1uvTUYpyMvOaFnWcQSOowfUKBUthjLdlyB1JGUloq9HRh7ISIY0MdbZ2rqNR5zmKbu1CJNX Dgy5nLyiENWn6pFRmGqGYdacbJDJA9KQOysLcYlxmHNvGSoPVCNlQhK623uCClWPPbMkDYWLJpqR EuU7KoPa3mgqTxSvtZypWWaI6mjKaV5ei6MlFpj8ek2oB2jpskIUiGHN3t6N9PwUXDlYg15736ga oYajwhWRmalhRMoy6k5Rx1Eji7gCwdAwRWxjLc3N8MlzTT3UVq9ehwk5E1AtRjAr3bpyrfEq+/5/ fwedMvTzs5/5F6xdczsuV1wy3mjPv/gstj7zpPFse+S9j6JsyjTxejtuFcddd91jPNz+4xtfEY+0 CjO09EOPfhxz58zD9leqjSHu1Vd3YuuzT8q2+fjgox9DXl6B8XAbrIQLJEACJEACJEACJEACiEuK Nd4yzsMbmy63Qj+ZpWliSJuA8lcqjRFg1t2TjQHs6BNnjafUhNwJ6EmyYdLSAmRPyUDDhWYTr01H E9jEUKB1aFIjgtYVmxBj1jOK0mRIZboZfqqGvJvfMxvbv3nAeF6pAato8USceLocE2dlozO+C9PF W00Ncq1VHaYvWsn09aWYtKwA8YmxKJg/AWWri7H/J8fRXt9p2gj0P9ovjbGWWZxq2jj954uBbsKv +tQ4mZgW51cdLBw6Ano+qbfaBPFUS8pMgHVNqVdocnaSMTYHojd6zakhu626Q4zd9IYLBFPWQQIk QAK+EvDJuFZYUGSMZjt3vYy1YmSzknquNTTUD3q+6VDROWIYK8gvRGJCIioqLpus16quoF/+Ky4u HWJcK5s8FWfOnDSGNfWM06GkW5/5I+x2OxISE+TtZxRyxKA3c+ZsrF+3Ad0S662mpspqnt8kQAIk QAIkQAIkMO4JqLFLPc3UE23+A9PEKHXC5fBGy8imwGytdokvdmYYOyuPGs/UyJaWl4xYMXglS5y2 cy8P3NfFp8YbbzQ1vmnq7uzB+R0VZvhpW0074lPjMHVtsfEKU282dXurFg81/Wi9BTIE9czzF4f0 sULiwiVkxCNXvOvy5uSg+WqbeADlo3y7hAOROvp7+0x8uGEdlg16/JpGGsZqxXjrllhzxTfly3DY pEEjiKkggv7RWMPGXTCC+sSuuCZgxTdML0wxhtqTW88PntsdDV1IzklE4+UW14VdbB24ngfOaefd 6nG64IHpOPCLE+Ip2u9TPDfr98LTNeXcLtdJgARIgASGExi1cS0hIQGbNt4nExK0Sdy0V3HbmvUm 1pp6s8XExKKz8/obRX2zGR0VLR5oMeiVSQnUSGYlue0z5ax1/e7r70OP3Cxpmj59JjbcsRGZGVlo am7EY4//HLFS//Jlq4xxLTZWAoK2tiBZJj5wlXR/KJMee6jbDOXxjZe2qOPYV5oaUsOxT+DGOAJe i6HXMUqMSuqtljIxUWKqiYfYwomoOd6E+jMyVMGH+yJHDduuduL4H8+bg9KhburlVjh3olnXoZ7X DtXj3EsDxjbryHttwBQZklp9rEFiuE3Eya0XTKwpHQJq9UfrPXt1oJy1Tcv3dPTiwvar8nI1Xgx/ 3bi45yrm3lcmBrt8MVTYzLamiwOec3rclkFNDRupeUnGsNZ8qU0sbdeNbVa/rO8cmdxhxh2TTKy5 uPhYnHz2vLTbN9g3K18kfPfZ+hErfUxISRgYnjuKTjnqOIpizOoDgbjkWBlunWEMxq+Lp2VX88Cz j3Vu25q7ZZh0itfnWEx8NDJKU2WyuFS0treIUbnfnNv6red9RkGqnA99mHfvNHPN7/u/Y2L8jkFn nW2YJ5vm16RlraT9Tc1PMsPB9Tqzrilrv3VtqaHasZy1n9/eE+B16D2rSM5JHSNZHe/6NpKGOpmm fnxJo7ZAFctEAzok8/U39mHhgpvMrJ55efnIzZ0owzNrUFpaJrN6JqCnp8fMDFpTW22MY9rBvLw8 nDp9XLanyRDPHhNLzbHT6vWm9aelpg1OhHDnhk1SLt9k6+7uxjPPPoU/bX1CvNoy8aV//Q+skrhr OuGBc0qVuGyhTDrDqa2rK5RNsq0gEKCOQYAa4iqpYYiBB6E5ahgEqGGokjqGFnp0XLQMxUxDhsxw mZgVB3tHD9qrbLi0owq+3hO51VCezcufvTrsAJ3b6Wnow9k/VSBWDH5Fy3LQfkmsbZI6Khq865ND O7GIw9XX6pG3KBvRk6LNULvjj19AdGyUGNPEmy5pYEiqGtaSc+NNrLeLL1eZiRusfc4dzp2bidoT zWZSh0t7qhHbGy/9iswZOePEW9De3IOyW0pQe6oJPV3ex59zq6MzkBtoPTpW4gKKMckYo9RbMshJ 21NDVf7CHKQVJaLupBi0XZ1PNpm4Y2Y2mks6zTDqzibbEC21Hh062imzw6rBOGtKGkpWTURvSz+S cuJN3Da7xB5svdqOjJJUlCzKQ9XhehkaGo+kbGDe5ulIL07GiccvQr3kNGmdMfL7oPnV67OtutMY aNUIV7B4AlLy5LlNYsDp8FW9pkysRGlbh5ym5CbJccVIuz3G8KajiDQZD1SzxH+8JTAer0Nv2Yyl fIHW0fqtUgbufq+8yRNIhtqe/p7Fy0s659+oQLYTrrpG0rBLbDr68SWN2rim3mcnxUCWLZMP6CdV DGE68cDE3DwcO34U8+YuMjHVmpubxNA2BTt3vWQmNdAYajffvAwVlZexfOkKNLc0y+QGQ99wqifc w+/5AO68cxMOHjogRjj5oyFDR/ft32uOzRoWWiYTHqSnpZsYbFqPq9TU1ORqc9C2xcbFItRtBu1g xnHF1HHsi08NqWGkENCYO+rh09nUJQ9PEgh+nCVeiyMLrg/Peo7EJog3fvXIk0l5qjFLAvEXrchG nQzNPPH4QMw0T/m92RcwDeWWrO6Pdd406TGP3mdVnBgw6i1+xywkFcUgMTPRxEmzd3Sbsl0yguLE r86i5OZ8FK7MNkYAa59z5fWXGnHqzxecN0fmujDsft6GabeVoq0tFteONbr8XXE1xC9gOvpJRvum v4vqVRms30WrjdTM5AFvrDY7mspdPyv4eTiDxbXNnKmZyJqagujUfrz+K/FYk9ldXaW4+mjMmjoJ uUvSjRHt8r5ruHKgftDLTA1cSx6cAZ1MQ1llFCbjwt4r6JXLJ31GIpKzEpD5/9h7D+i6jutceAO4 6L13gARIgr2IFClRIqneLMmyYyu24/ZiyU7cnv8/f9b/svKy3kuc5MVRHMdK7Dhy4iLbsiwXSZbV aFVKIilK7AQ7QaITvff29jcX+2LuwbnArcAFMMMFnnNPmTNn7zMze3+zS1IijUYOU+GNTmCs+vE6 pQAjw+/qe5ZTW3Unpa1JoL5jvQyyj1BiGgPObM1afGM2jzP9FJE0Tt3sZp1enqLae+Qpp9s4+lRC iUOBclCsUwsTVTISAG94ZtvVdgVEAwDorna6tc7mem1Hg6V6LFz64VKlf7De21c+IhlNdHw09XIm bomLKLES+zmGKOKZOuLYxJrLcN8Y9db3uI3tALoylqcoq3QV71Qb02S8x71Wt+6ZzuF6FLtr9PEM bbOOUc47F/b/vvLQl7f1GVwDOIaEBVK++uU/U0DYiZPHVAKC1RVr6Z677lOnqy5foNdff0WZ1SGR wYc/9CA9/LkvslXbCL340nMqPpvUgy0AtZycPBXHbdvWHaq+i1Xn2VrtWZUhFADd6tXrlFtoJGef OnvuNO3b95pehdk3FDAUMBQwFDAUmFcKQJCCUpS7NouDWaepoO6Np1rchCVpIFz44lJjOZB7YMCK 1Ge24U0BXZDFfioHz0dctIzSVHqTA/6L4O3PWyAuWcOpVo6DVuvP7Qvunpbz7SrhAeKlnfjVdDAR MdvQv6reqvMIdCy0l0b8u4tv1CiADW1vOt1GKqsrx9dL5Bh4oEVi5qSLHytgbTagkv4NyvvrShmU vgSuY4JjvGFcwvWqcKiXJLZiQoIKWSxQ13Iw/W4vxi/UAwBK/UFh46y1DcdbpimE0iZ/thh3JYkA MtQiTh3G4/d+WKnoFAwgyI5+iEO4/oMrOIZgG7s+T8VXs3sHWJNV72/guNFjVM2uzsVbcxno6lP0 HmJADmD72Mi4ArVG2Drx+C/Pqe8XyUUun3AaJSDZBxJ81L7vtMyEZQlK68UOpmkSXXmngTb/YQUV bWOrtso2lSxklOtEn8A1iJ2YU8GJFph3B7533NU/8D0t31VIw5w8A6AcYidKIgY8c83dy/kpExTF 7smItzg2PEZtVaEFLtWLmf8MBRYoBTBelO8ppoxlqXT0ybPKIhXjLUCr9feX04lfX6BNH1lFLRc6 1BvGsuX0VR5HOq50q/4VxSEXHLGRtPau5dSF8ZiBNsQ7PfjYCe6HUWq8AxAO0A3jBdzQsXAxzv0d Yy2sU1Fgedo1CdqhTbCOxfWYL+T+ock5A2PQRgb4G0+2uMaojsvdIUsmpBq4iP7zGVyzvvuj//ZN 1yG4fv7o8e+7fus7J08dJ/zNVl7e+zzhz1p6envo63/3V9bD5rehgKGAoYChwCKlAAQHKIz9NpZf ouDoSiGOoQRDgfJEUjzDammkPxeCDwSpIlaYOmq6VFD3kh0FKolP/eFmBZ7gerHeyCxLpbLdRfTG I++pAPR4rv5OntphjocXBfRvwFPLRPEXQRagat66TOpvG6QRduFMzIpXgjfuxzeAgqQE3nwPABAg rJ969qK6byn8182ZRZNyE+nYU07wwfrOiMt2moGOxVZ0gA3fUld9r7ImWnlziYodh6yrAiq9+18n FRCGby85MlEpXUggAdBRL7rilcUJJLZ8fA0DLMP09neOKeVtHMkjWFkDYHOBwds6BmlQcO0GBpV+ //fv6tXZ7iflJboAqJr3GmnZzkKlPEKha6/iWGI+ZrpEn9P7B95Rz/YKUAhVbuBg/wCZQKeexr6A QDbMSXC9ttIvi5XYlgudnAF39u+tr6WfTnDbpCQwwAXQCm7dALcSOdlB89kOOvXM1DVyrWwBkuF6 AMd6gSv42Redlpg4l7smk0YZxLMmC8E3hEy9iH2oW9gBeEvjLL9IRqIfxzN0sBoJFLZ/dj21X+mi Iz8/q+hhFoh0Tph9QwFScl5qYZLqa1d54Wv5rgK14IExL4P7GVy/kaQHQLYkE8pbn0lr7y1XlqhI MpTImYWR/ERfONv5J5t4HEpVGbmR3Rr3I8kQngWgHeNzL48zAPzRR1EA2jUwWNZ4opWBvhQe41e7 gHfcr4N20TyW4piMZ5BNSrbn0QWOqYrxypvFlKXMf/fZdSlTIgzeXQQFvSneCNX69WbfUMBQwFBg sVAAilvF7aV0mVfhdcsvASmwlZU2OQZlSlbngm0VJs+A601mWRq9/k/vqZVDCCpQPmElgmyDAMwQ 36b64FWVDRFJ/spvLKTOajb1Z0MR9skAAEAASURBVMsSrBhmrUxXgpGDg1VDGQYwIqCLv8rmYuH7 QnsPUbg5J5P69gBCWAFYfDui+IsgjO/72C/OKYUaViEQvFsvdrpWoOF6hW9CBz5AG6usEM0r02W7 iqmvdYC6GTxYKgWKR/XBRkW/pfLO8p4CsMECSY0dHG+u/mgzxTDICiBFQKX89dnUfK6diq7Lptjs fJUUovjaXPWtSF3Ywk2ziS2cAO5kw6KJgd/BrkGV4TWdLS4wbvU1D/D33aesnqAownoN10IRUwnM eMzDYghAGVyvL3Lg+y/i2GACQKF/wJID1r0xSQ46O3hFue96co1WblXcRlh9xXCfQH0Y37HFeNlZ 26v6l122V1hYCZ06WNHsrOvxCOZZ+5ZOI+xnr0pTFmPoa3pR2XH3uQNd+vmZ9gW0aqvqZLA9S1mT VM1SF4Djcy9fmalaBuja1Z+ni+zOA5w7/dwl21t0sLrlfAfhu4AiX3FHqbKQee0fDtneZw4aCixF CkAuwJyft44DIfK6L+TYijtKVKITAOgYP8+/Wq3CFzQw4CWlg+VEjK9tlzopg0H7IQbg8jZkccbv SrlEAWbF23KUfCBW2xhTkZEb9xVfm0/ZY+lqvBWQHqAdQgpgIW8tu45DvoDlmg68C2iXwzEh0Q4p rWxVt4bvyeQ+v+EjK+m1b7zndcxFjKko+nwg9S7WrQHXwoSzIpzrq2HiV+3Pil6YvJZphqGAoYCh gF8UUMoYW39BYYS7GwoUP1g3LGeLh5QCjjnDLikwjz/80zNKQMEKHuNYLiUxf2MWld9UTG8/elQF cQ5ksQICwrLrC9TKIAQSCEsoAEiQbRDt2v/dY0phhPLWfK7DpfS3sJKTxhYCAE9GBsaUu08fx9mA dUD26kzlFoqMis7VwyilbFZ2X3K5DywlocRJ1YXzP74LUbghLMOdo58VbwXAsmC879tHCOAXhF1d 8YcgrLJo8jeNAgUbgjeEWlmBhpUNvgmsODeysA0XOtQFcBagm5TUwmSKTYlW7mhybClsAa6dfeny UnhV23cEwIY/WKLlrsmiSxZABqASlKnErDhOcpFIdSeuKmAIMeYwluoFdeDamETOdMkWEfjuat5r YuUwnyp/e0mNe8Vs/XXsl+fVdwvQDmAQrCe6OVYgLBuQSGLVraVUf6xZAVhoG45jvCy6Js/tGwXv xFIDwDKywMalxNJ7P65U1nXidoo2Yi4o212srDyRzTV7RTrlrc9i5a/bNQdUcXyydE7kIYqm/m46 nZbvLKKsVekk46t+nV3f0s9jv+iaXBULzUo/63W+/NZBq6Yz7b7cOm/XtrIC72DLuL6WAeZduUp8 kMyWiXBrRcKEQObaeXsp82BDAT8pYAcgQTbEmHT57XpOFIJFhyE6zuELEFNx19eu4QzabdTK1q74 0wvGRrEYw3iAbMCwPtUXzto5rircNk8+c9FlYarfN9Q3okC8y9qc0FXXywshDuVVUa/c8SeUJZr+ bFi56aCdnBth2QZu5dls7YoEB7m8hbu5WBsDw5CFFWQ3lhiyoAtcUyHDyqK31LmYt1Hx8Un/W3/B 1NQ06utfOiuf+rsHsp+QmED9/f2uKvBBITU9LBIQ04B4RZuX9sjBxxCzYojjGegFAjUEDHy0EEbw l5ybpFYFIRhE8scan8rxNBhx1gsEdJhoDnNHMiVwClj5GHiNpoa5poDh4VxTPLjPwwJDZnE6Za5O UdZfZ9jFBTF+ShicAKCArICF1+TQ0SfOUN3hJj6ep1xbYpOjlRIIc3W5No9BOVhwIGNcbFI0K2kx DG6N8IobIDjfClz44Lpz5GdnlOtVFluuAUBbweN2w4lmgltQd2O/ip8FC5ArHFNHL3D9y2ZhC3GM YHHQeLJVWY/AVQlxi3AMQCJWLBNYEMuuSGMLJWe2poEOZzwdvb6FsB8OfRFzMZIh4TsIdhHBsXQH WwQxv7sbexkgW6bmZFgyJmaxXNAxoKxRsFKtx2JCrCJYqUkZHRpjwKNdgR4QnGGdI9/E2OiYcjWG hQ4sW+Dqhe9RZAWsQF94pdolZEudwdiGAw+D8R6LuQ7E2IG1grXgOMbO7FWcpbVhiC6+VaPi78Da z1rk2rx12eymPECwTEI8MAC92I7yogBCv9Qy4CbjMZSmAbYkg0UuxqvM5TwmsjKYUpDMSlg6Ay0j tOUTa9S3Cssz/fvXn4+xMTk/UY3jqZyUY4LH50HEEGOZGTI03OqT2SIYcYQg72IMBahz5oUq1xyQ ztbDl99uICiQngreUR9fMS5IH8LWrm/p57Hf387Zd5ke81HCqS9C58A4BYUeoGgCj29pJc45O471 EszVGJcAKlj1lvmgXbg8M5x4GC40WWjtwLyfwMk9+nudOj/Af3z7cakxapzEODHKsQpXc4y0mkNX lRsm+ooUFUONwaiL7GKJeX+2It4Z+nVYpI1iudHTWISxrpXHcL1+ZJtetrNAxdE8/VyV6r96ndjH u2HR7/wrNW5jKWIwIjYb4sNiYRjxHuuPNKuYjBjbMXaqeIw8pubz/oqbi1X9wD8AAiKGJwyGMK5j /BZ5LBjymTd1QK8AX/AeUkLRF5GIs7uriwy4JlT2sMVH483koDMJCC6yeiCoKj44rPzBRQjKXRoL Dls+VkE17C6ENNb4KACQreBYGdUHGl0rYlgV04UAmM8vv75QBQ6FuT0EHgRQhQ80PuKGYy1uJpqo F6tIaAsmPkxu3nyAdtfgGIBCGGpIh/BArgV/WOfjgn+ZJfoChocLl/EYa2AZsOGj5crVB7FjIByI 4pezKkNN0lAk4dKCAmu1oq15HLD6lAIX9Gv7Wgep6u06wn2YWLPZFRMKWy9bWvg6lkEwAah36Y06 tZiRxdYTsJ7DgkjVW/XO+tkiAuO+Epp4pU8vAp5AadUFHoAs1mMCxCH2Daz2JL6RXl8g+wDzkrIT pi3yBFKn3b3z3ReV0MtzLrJJAlSFWWMwgbZktkbc/NEKNS9DyIXAK6AYgDNYVeK78xX8sn4TytqR 53upS0A3yAn4s34/drzw99h889Dfdpv7nBQQQGm0nbM7dvTYgnBCK7kW1hKwTEJQfQGAdQVPxtg4 tsDAWIdg/Fg4APB04dUal+yKOGdwn8S9M4G/GA87a3tYXo2kBl5gKNjsdHeCzAwZGsA0XBVh3Ynv HWM/2ijjKOaAbB574WLtTZHxFeA3+pT8oZ9a+5b0MdkKPbx5TrCvCce+iG9EFojAu0wOb5BalKx4 GMcWt2U3FrEVI2ICRnN8vXE3PcJO3wg2zeaqPm/0JFyjgzJz1TbznOBRQGSK1JwU6mnvURZacP0s Ztkwm41ksKiGOGdwo8TCr1ig6S2wzu/6OW/39bHZ23uciRFmBvVmAu1kgQXjJyzzYd2M8R0hKVT4 FrbQQxIZyFgpbE2PmI6QgXo4NuqVA/Vq0RuW0YiTCVdX4ArASuLYcGgMICPL5r7iDCqLKodhQR0Q 8IDXwJgJYBqAPWAvOAY5GnyBFaGUxJREQmZxqy4QyLgk4NqUX4E8bQlvwSRYlWHCxkeo0NndRWo1 7ghbSeC3NwWmoPB7xken4jC8WasEBIBhMAcFmJa7NkMJLRJ7Z5TN5jF5W4u4isAkE4FG4VbUcLxV AWur717G97RTH68cFmzKYh/sHk6x7bQ6RODYaz+zTpnNIxji8V+fV5PbBK88wrQUgBuCqsZghSkW abcH1MeI4MC4BllK0AF0M3nEfQk0GKz1/cxvQwFDAUMBUEBc4/M5tkTX5b5pVg7i2mOlFmLtFG5m AI7dUaRYr8VvFMScWHXbMjXeeetuj4kWAhXGamSploLxejXHoIDLlLg4YQKH5YVkbpNrfd2K+wAW SNbeV6YEFMw/aAuK7iaqYhFZUrzjGiVc8HyD1O9yvVybmB3HQcg5bgYnUbCWxeLOA55JjDMIe+Ku CUFKn8cUTSZjOfny7vheJYaUuCbqbhmgq7i9WWns62/5vny9z1xvKBAqCljHWLg76UXiiHmbqVXv O3BpQow0yMyQoT1ZvMnznHNAjvycdSvj66wXmgu8ooDOO4Ce0HNu/MoWdgOOUXqLuPzCpVf0iEiH M1shxuOF5i4mijvmEbjFYa7Bohqs9WDIgG8W1uZwj8Ux6FiwukznxbKU5ERqudoyja4yN4t1piRx cjs+CVSIK56dPDCtYnMgYAoosGVSH0Z4B4D58Yns7u4YYsvaGBXu4fTvLtHK25epBVhYR+WxdXkI jOUDehe9n3qqCICZJESxXtPFlvn4K2TrtUEGx7AosZLDAMQwkFVziI2DJl1Q0f+R0KvxRJdy24dr KuRzZLku312sgHeAjgDanOFQRpWVG+rEQoy3sjnah1Aba+8p46RnQ2rRG22CbI4+if4GHAbHENs4 hhfIYfGPhXJYX6cWJ9J44gj31UEn5tPKmAhk/UkcxC7TtpUmnn4byzWNMsl5CbSNASkMkoit01nb zWh0nmJ6KncmrKzp7kSqw7HQjslBVpRwDKagV3gV+xLHgMCKMpgrq14IFgpoFkoTzCRVJh8G1jyZ hwLoA4CGeno5mCxWBzPZYgIBbLFaiNU8xKYAmFe4JVet7MGMvpTN6MfYRxtKHkz8YQ2CzCQZjPBG x0XTug+WKxeWkh35VIZYPzwY5PIKITpNLseygMm9WN6JCwpcABTqzO8sbko6DUBK/bfsQ7ERawE5 BpqFYxE+hmPbTJu8o4DhoXd0CrerxDUeQVRrXmtWVhbetHGCBVjE9NHN7j3dh1U5xKdCEG4ohxB+ Pa2UYaxSgB+7G8GSopQzOiE72xUOSosCQUVcpuR5GDft3LPkvK9bjMtwEYXLE+YRZHaDFZas8mGs h3k+rAPaeUEEggOUFlmpQ5Y8WA3geigEcq2yomY3hu6rvS6rDQggsGaDMjDYOQVU6m0GTXyxYp6v vijAGgQvBX72DbvcNeG+IfMYFKEVt5SqVVcoNXAb5sVTRUerlYWVDjns9gZXOCj+YkGjX7NY9ueL h4uFfuHyHnPNR/SJFrbe8KdvwDJOZGZvrDJ9mQPChR/+tGOueehPG3GPWMjAWhHAJ8bhEVba4dIL PQJzDLbQLZAUAQX6TCiLL7oHroWOBvkAOh/mTsyPmI/VogonBNnErm7wLoIVEuZVWFhi/s1dk6Fc +BEPFvMsdC94HWE+gYdSJutw1e/WK70RwJmytOEXR4ZxzOO4DsHmYVABeQLxXAFAQM9Dpl6AlypM EMsB0NHwTJnfJQSR7nYXSpou5rrle0GiF3iciT4MK1rIFFHj0bRsT77yGIMMAC8JADZRDocau+Cx BllWPCwWF60iaIj7M8KyAMc4v/cKh0aZSsgA+QsYyslfX1CuozIHYFyHnI5FE/R/JP6q2lfP+Ea7 8i5JzktSFmZIWqPCAtgQTfgiGEL+hmzVV6rfbVBtEetZ9AHsA+DHNjLGwYZN0fw7lgG+IhrsGVK4 SUJOHCcXcyapgeERZH3gILC8Q4xbX4tYrhlwTaNcNrsOYaDCygpio8WwSXNXQy/VvHuVB8gcFroj lcUDJg58HFBEoOhAGE/PT6WxCFZgeNLAYIrOZlegIEH5AjgmJuiIvSMfn909cgzXAGhDB45gC4qT v7mg7oOSh48Sg7/Ed4HvN4C3q1w3QDkMCECjY9jCoYRXBBPYmg3mmgDJgFSX31Sk/LAvswsV4scg UxRoIW1ELCA8t2BjDmctyaZa9iNHB8KgI8qeMs/k94JVHMwzocQiDgMmD7RnqGdEdSjse1Le5F3n a7tQhJf5os9CeK7h4ULgknsbMWHKogTc63zhocR+ca/R/hcEYd3dHta5WHWTxQK5C2MZJn9kAV3J CRGQLh1x1AbY7UlAPH/M8qV+X7Ywwcf8k1acouK6ARzCPCMuUxinu3megjU0QgRg/MUclMauOVhc gYuOKDO4Fi6xOazUYB7COI95Q/4kzifM+OHuKrE8oVzInAeAD/VZaWb3Tr7w0e5+f45B+YEyAoVO LF50d03E5Mtbm61iQsF9AO5kfbxiKYqfCFoCtgmQifh3+AOgCZrCKg6ywUwxnvxpf7jdMx88DDca LIb2LGY++jIHLGReLhQe6m5v0FsAMEDPAWAKPQJhGqD8wgUXViNY4L/Kwd0RKsdaIBtgQQdjr3Uh zKpoC1gl85acx/1Q5KEHRTqiXGFy9NA5sAaDSxv0GuhG2z69joZZZ4GSjzhT6x9YoYCCrBWpPPYX 8vFBnms5xha/H5T1oz8/q2KmwoACWaMRdw7zKuYPZeDAoSuuHKyn3IpM6qjrUm1QCzucaRX6HJ6J eRwhLpC8BgHjMceWcZZxZPvNXZepgL74dGeW3RUMxhXzPB/Lc7jM7xKCCHKNv7FlrfRfSr8hOySz 1RIWKCHnAKwE2ILYvaIPi3t7TBSDmjTi5u4O8AhyFXTyOL73EltqeaPbLzQaq/G2qkuFa7HGdcO7 gFZjDAbXc7gqa8HYIOMAgMjqgw2qHhyDbJ7O8u26+8oVsAVwW+QubB3MH2AnkHFFLgMg3cL9QyWG 0IyZxLAJ7QPuAtd11R/5+agrj/tTw8F2qj3RqIB0JI1Q/ZkX6pForJc9+yB7+1oCAtcAJiVx0LaU lFRlkTQyMhUgDm4zqXw8ISGBhkeGlcmsNC4uLp6QMCGSLZn0e+S8bBMTObApX+eIYhPb0RFVh1pN 5vtjYtiNMTqaovjc2Jh7cH+5398tzBi7Oc04QKj49Fg1oF7goH5wx8GEgCDZCMgHK7YtH69g5SZG BTGEMF5+cxGbICIQK38MbN0AUMtTgVKGD8mbFTm7OqQDyznUB6s6DM74eKzxXdC5ZQURH0ssg1vJ OYnKFxxWGKgPneXcy9VqNUUPrq23Edd11nSrOG/oBAgym89WbqLsIdC4CubMSDYUOwxIhTz4A4SE 7zUmjo0fWsmIMFsBstUIYscJ+izvMt/bhSK8zDedwvn5hofhzB37tiXyGKEvSoSahxgHYQUM828E X23hbE0QpDB2YgwFcLX5IxVqDqh+t5HO7a1W7vQCrNm/RWiOYvzG/IMVQigjAIckhpyM9bAOyOJ4 csrdkYUHrNSN8/R4/Jfn3JQZCIb9vMKKuCAnf3NRzUOYi+RPgMdlNxSoeCFw7YIgUrglhwOTr1Zz Htxj8zhTIBZYZiuh5qPd82EBmbc+gyqfveRyFdaVPcxj8p5YaEJGxYuv1boEviTmv9XKAt8Dvgv8 wUIBFhc9Tf0egwnbtWuhHpsPHi5UWoVzuw0fw5k73rVtMfAQ46+u/2AuRvxSLMhjUQeAGEAvAFRY 1MFCBqyGICPoC2EAQgCYIe4fLMqUFffuYlp9Z6lStDHmZ3LSISj6iI2KcBCYx5BptoP1JTzj2s+u U/NqyTa2SucFtU0PrlJGATgHgESyMuuJkTD+I24TYmQ7F72SWREfdFm5QJFXMQEn51XoUDBwcHCW ZwSAzyzNoPSyZBUXCgAajA9geY+FIMzjuO7876vVcVhHgwaVv61iC3aOb8hzVTpn9YV1G9znEGD+ 1LMXXWClWO1gwQhWH/7ElvXuS5z/qxQIyu+PBbKZLPUEYPWka4pV4jjr0QBcNvM3APAGCaoQ4gnx zg//9LQCTnV9OC46jqqP1duCZ9DJ9Wvnn1pz2wL0R8TsnKlgHLDz8hji40rW4sVReLyJ3IUtYhAL xgBAGWBYARv7XHqjVll2zvQ8AfXAF8TFxQJz1cuN1N7YqfATxPuEfI1FABgC+QOs4fl+g2sAuQoK imjn9bvo2m07KCsrh9o7eDWCM2VGRfGK8fJyuvmm22ntmvUKXOvu7mIQbIzS0tLV9dfzfdlZ2dTR 0cH3uJsBo+78vAK6Yeduum7HDZSfX8gg3DD19vGA44hWx5YtK6eiwhIq5DaMj49Rb2+vG4CHlwND YF2mI54z7WNQhmKFAbbxZAtbpw26MiMhUQAKPgQB2MQl8xSnwIWiA2F8tJvjlPFqRD5bdl1+p16Z 86ob5+g/+XD0Scvu0VDUgOCiSJYRTCLtl7vVMV0JUQcs/8FXuZhBSLhDiXmsKHtQ/vDh1h1xmooC /QXdAVYChIPLDYDKPo4BhEkDE8pM1g96JlQMkFihscuYammi208ZWHXXVP0C60qXVXjB/bJqhpUo PF9WxfR6zH74UMDKw/BpmWmJHQXQx+CS7oiPci1KhJqHGAdhBQyQBYJ9JluolfHqMwS1tfeWqVVl 4pV1ZLA788LlkAf+t6OLfgzzj6wQinKij/V4H7wLhHpZqRPBRa4XYU8PTK4/Q/YhVOC9sSgCS2gI NQA+oSBgzmur6lS/7TIOSh2yDTUf5TmyhcK16vZSldFwNosyvCcUGf09QCs7KwtdwBNrbqShXwpl rnm4FGg6H+9o+DgfVA/uMxcrDx1skIBg8JiTMfdc+9n1yopNXEcBkCWxQQAWwnANgKPsVWnszr9M WR5jTgPohYyySdmJKqkC9DgEMIdeAhAO4zxkdwmTA0tvWMK0V3erYwDesOhfzVmf4QoIVzfRbfTE SJItVha9AO5VQbnnOdhTwTnMx9CvBurYGCV6XHkQIXwQ9C+xhpLrUI8CHXnBrI0thDAnwUAC1+L9 MZdjrhoZHFHJ7EQWALCHfckujTkbFj4AoqC7ILY3aBksPUb0K0/AlSd64D60A+Ag2gaLRT3kktwn +hd0QV33wzxfzq64pZz5EgHrYaknlkzQOUWnxzl4UAkAKziAbgFZuDlbWUrBuh31tbN8A5deAC39 8OxioAX0t5bF2het7znXv/GNt17sUovf1oQzOsaABeYU9thD//VVFkM/hJv1YBOPB4xdzYZ7+EID Adci0jNy3aJfFZeUUnNLk8e6YmJi6c/+n/+h0Llz507TDgbBzpytpO9891tUXFxC//0rf05XrzZQ HwNna9dsoB/88Ht04uQx+vjHPk3Xbt1Bh4++R+vXbaT6+jr63mOP0tAQp9ueLJkZmfSVL/8ZwcLt LNedm5On6vzhj75PLa1N9D//4uvU1s6mxc1XKSsji2Lj4ugbj3ydWlvdTQ/hdohAdt4WdD61AsKd /e1Hj6oVAU/3pvGqQe6aLO54l90uycrOot6hHiq9Pl91SreTi+gHBrnVdy1zJmqYDFLozevhnnzO LgKgDX7oGz60gqLZGuDAd49PA0cx2AL0QuDIbLYKfOc7x9g6junOqwrpRSl07KlzPJhGKBdddBBc G83urpLMQf3myRHWB7BMYW9eZZGCCUAlcWCLQ1h4wMIQKDhWjw48dlzVkZzAGWD6u1mR5BU0Po9M JrDkQ8GKFyb7fd8+osywEaQU10lwUW/oYK4JPQXQF1tbPFuOhr4F5gneUACCE/o6VoeXs+sDUpZD MESZSx4i6xESE3TwJI3JGha1EMrqeJUZK1xnWchaakXGeXlvrORJ0H64h278yCo6+NgJlU1QrrHb ziUf8T3lcLybIo6T+v7jlXbNMcf8oMBc8tCP5plbvKSA4aOXhArjyxYrD+HCDyDs9POXqYhjR8dn xLKBAycGgIuWpmdc80drqJ/jkHVxrFAs+MDKBLobCpII1PPCPrxlsAACKxdYwtUdueqms8EqqWxX oYo5DauxC5ztFsfmSncDD0OtK8r8DZAQ1vYwAIFl+wlObJfHhg6wyoJeNc4LiCiQcxysz4gOpQ7a /CcyG+qFnARwDHqVNSEF5Dq0AaEVoKOh4F7IeuAp7oPchbb0sA6FbOiQ/VAnki/hWgBo0Pugf0Hv gu539Mmz6hr8LudwHedeuqxA1Wh+Ht4Tz0OBTu8KZs8eXQ62/oPVHwq8z5AwBUAqEvat4+8O4B5k v7Os14sMqi6e4b/F2hdneOVFdyoUPMzJ5tj3NdXkc7ZQuGxWV1+m994/SA0NnHY1OZVKGJBDuXHn Hu6s4/Tv33uUBgYH6C//4q9pz+5bqaa2mrZt3U57X3mRnn/hWdqxfSd95lMPUdnyFQqYE47deee9 ysLtkW/+PYNvbPXELqaff+jLtG7tenpjX5OygNu//y16/sVn+dgGevihL1Fubv40cA3xxOAa4m3B oAy/34TMhBmBNdSHDok/u4IMREC7F3MBquxPBjS4rSIODragExRWPQseaCYDN0C1vHW8qsTWcZhg MSnAmgRWhciYuvLWYuV3DTfW1kucQfWGIhVEVIFePFiW7S5W5r0NJ1oonWPCxfPgqrL68DMQJ6Fg Uw7t//fjDLzBfTWJomIjVUBSmAAPd3B2n9R8lV0VSiSsIHRXMJiOw+pOBvsTHPcOAzNANoB4KJKZ D++DFRUUX7LQqRv8/E9/pvW51nPW894+EvWgyCQo93n7rvr9cq9s9XP6vpwP9tbTMzwdl+fPdl6u M9spCoBm+EbQF1DQh/CHOCcQgr0VaqZqDM4expSG40kqUQEEbADw6x9YqcabQLN+BqeFc1/LTOM8 3CGhvECAbb/SNfeN4yfKt6Q/HPHxitn6HCCtKYYChgKGAoYCC4MCsLBCZr41dy9XMaAr2dVRz/4t b9HBAMrqu8s4eHqzEzjjgOoIqq6XroYqBZaVsQeTZKrVdTboH6ctMbHnWncL9fNk/gY4hay7CFYH ryPoYPAeGh8dU9kcEdQdBYYD0LPe+3GlsuKB5xeANsyzAMkAvME6EO65uE6AK1iIAZ5DPFrIb4iR BcAKOhzCJQlohuPQp7Z+aq2yusN9oAGs7ZvOtKnr4eYHr6r+dsQI5xAMLBci3hz0L+jokNOW7yrg fU5KxfHQEGweyR3wJ++JZ6DgenhOZbB8iSyey/i9BROAXokQSgDbIMPAmg+6JGS/+ZJBVaPNf4uK Aj6Dax0d7fTEk4/TstIy2rXrZqpYtZqOHT+siFJUVEzt7W3Kag0H6upqaS0DY3D1jIuNo9paJ3Lc eJUzpfC/oqISN3CtjF0+z58/o4A1xHSDK+nzLzxDw8PDbKUWq9w9MzOzqKJiDd1y8+3KZbSZrdis BZ1RB0Ss583vuacATLQRp0CU1R52p+3g7HYl2/PYIuKKsgSTgRtpfHEtVpXgBw03XCRdQOperDCt +cByNQjmckw3ZNGLYws4Ab0wWCZwvDxkesXEgIEVK1lY/YJpMIC4bk4ljEEaddUdbVLWa8go0lnX Q4UbEXS0Tk3yoBJiDiGTK4pzNYjUIC2DPUA/mJYf5xUhZKCD0gkzbjwbwAHcjlCQJENf3bFTDnHd bCAc7kMRAE/9mPwPKz2I+4cYAihqhYYnRAgt1nPW8/htbZOAIFiFwh9ca8EHmOpOMIgOgUjFxuCl K8RRlHfVU5EjMKiscmGC1le7AHiCv6gb76POTdYNsCWFJ1A8R9IhW9uH1TZ1L2dzsq644VqsksF0 HhO7HV1xL745rLyhLSIY4DhM1pFtV1JC68+G8IC69ftAPyl2z5JzS3WL7w9WoBDwIKQNcUwGBAiG MHPy6Qu2gvRc0QoBiGFRi4LFEXwTV9i1X8aquWrHQnoOQDWMvXMFrtn1PwjjKBjnUNZ8oEzFtDEC siKH+c9QwFDAUGDBUACyNmRXAcTsGo44Thc5SPyFV50yud01OGYHoHm6djEfF2MQ6C4KcJq0AoTn 0LoPlnP4hCn9GbIZZLJhzqwNK64D/8EGCCznwsIMgBr4A2MEgHMCXMF1FnrViptKlA4HyzHoYNDh cA1ANszTOA5rORhXwHIN9+ngKSzJAAIqXY/3Ab6Njoy76V/Q1yruKFF6CmLJ6vfLe1p5CeANRTcI cepxy1x6HGQ+1IWtKYYCwaKAz+CaPLiwsIg2b9qqEg7AZzU6OkYlGRgYGJBLlNAbyeY8kZFRNMZK MkAyKWzDoGK0yW9sxzmC5eikVcPKlRV0+213U1pqOnV2ddCTT/1EJThALDaAaw7OMtHT000J8U6k Wq8H+zg/lwUJFub6mXP5foE+q79liC6+WudGo7ZzXVRxVymvQsDVNoMySlPVwH1hb40CRfDM7Ip0 XqlaxkBcj7p3tH+MTv7yomoOEikUbMyiS6/VqZWJgnU5agI5+wIPlgyqSDn/knMi7u0f4HsvKOCk gi3SBloZeDrfTU357WpCj+WYcDHjDAIfauYVk2iq4sypqEf4OjYwTpVPV0m1qp7oGF65YdPqdfeU K4CJGNR5//HTzoDoH13N4IzTsgNmy42VLQpQRDDShExk+Il21SU7IzyxdDewD7gWvwEusFAuAVDA 2g5AVFe1M9Yg3NfiOHtQXzMHaOcgpkjnPcBAJgpWaGKSHXTwP06q+BSw6JNz+vnDj5/htkTx+3Af ZgAMBfoqJmO8W/bKDP5LV89pqmynxDQ2BY/kNvAqU1p+MkXGRqiVoNbzzgCWqCcpP0EFCUfSDwQE ReYVxHDCNj45lvv6hLI6TMqO53h82Xx8wHkNm69H8Ds1M+iCZ0YwOHfguyfUBJ2UF+9GMwSkR/Za gCAH/oNd1CZphr6YlJVI1z28kS7xBI9Mj6CrM1guZ5zh2F4AAJFZCabm0hZcl8aCgXpXnsi7m3qp 8plLDPqN8SpanOvZuCaVhQ/9PkW0SbrBhU74I8eDucX3gAIgdyEUAKjZbO0JF+zu+n5yJESq7D49 /J1L35Q+Ju8zn+Op3Vgl7TJbJwXAR8QqqZ5lng0GHyGc631f+h+AfhRkf4tLY/Cfu8PFV2pd47Wz peb/QCkQDB4G2gZzf+AUMHwMnIbzXcNi5iFk+/MvO2V1qzwgdB9oG6bLbzYs6DF+PngI3UWXtXoa 2HptaEqfAeA0wdMp4sLlsqsmLNfKdhUrORdgGzKHQ9Y/wwYOolu1XXDG6YZedeXtRgbH8ii9MEXp DaLDjbFhnH78nKab6Tzu5fZUPlOlkuNBpzvzu8uu58h1+D4qn3EuguJ7kOPybXi7tepx/tY1H3z0 9h3Ndd5RYDYewhMTf/4UnxGoeI6HlpWdQ0ePvU/v7N9Hd95+D91774forXfeZPfMZnYRLaPYWPaX H2W/anYhRfw2gGNoYG5uLsdSq+TjnO2EM33CrVQvsHorKiym5KRkunjxvIrHdgfXn5ubpy5DhtEX XvwtPff802zVlkZ/+zePqOQH1TVX9GrUflJS0rRjoTyAdx0a9D1tayjbFO51j/HY3FM3QOvvX6lW Sy7tbVDBIxkSoiQGZVBG2jkT6pVeani3jY+583SUz9W80cxXRdClFxvU9fhPv991UN/hEACXXnJe zzZZqg7cg/a0n2Dlfyyaat5s9qoeXBeTHE2Oax1U/14rld1SQOU7ShgA407JIJq0K3NVqgIXhjqH GQxiwC4ukq3Apme7xSTXdq6bmhnEUvbW3O50tviB6yqAtYTsGLYgi6QqphVApXgG6TZ9cgUdfuwc lXF68IZDrdQ+OekhK+ymT62g4vWc1XUbpx3WzoEcOL/xj8pp9a1lHJ8igQAAtl1yTpgA5lIKGAxj CzIknWh4v42zvDLwNRpBF16so8IdWSrmxdEfnFf7MLOWd00vT6aMFcM80aYqwKvh3VZKLUlkHjq3 4HMs0yx3szMde+u5Tm5zj7rmyhtNtPETK2iibJywv+aDpZRZwNn/NmVSYi5nhdJoBuCv5QxnfuF2 L9taRKgHJT03ldLTEhmt531uQ3qhM6YEvrVoti5Mzo9nAHOATcaT6OSTVa624DoAdHjXuBQn8Ana AFyLS492PRvX6O+A+6QgTh9W3a68ziuCrOyDRzA797fEsFUmAMpBdseG+zHiTyQyIIk4fwCnAqnb 2iZYfwpwh3MA7/DM2cpM9+Fc5spU/kYyqekEJzvZ30zFO3Oo9NpCuvxGw7Q+Lc8y46lQIjy3432c 0S2HM4anMzjNK8yeSqB8xPefvyXLre9L/0OgYSnLb8unhHVxHr8nuc5sfadAoDz0/YnmjlBQwPAx FFSd2zoND+eW3qF4WjjwcLh1lGoONk/NlyyrOnUp9tbpaCYYxcTGxSg5F7LmOE+19aw/OMamdDOd NtDFRKfCcdHBPB3X79X3RaeT+/Vz4bYfDnwMN5ostPbMxsNBxnTw50/xGVzLLyikL3ActNfffIXO XzhLOZx0oK+XTT0Z+DpVeZKTFWxWMdW6ujoZaFtOb739GruH1ihXz22cXbSW96/bfj11cRbRunp3 0953D+2nT3/yc3THHfcweHdYJU0oLiqhQ+8dVO8GtzS4hZaVraCU5BQVgw312JXOzpnTwNrdE8gx R7SD5vqZgbQ3XO4dfHuAyiIKPZuCMxtbfzV3Wdn84iO3sbnWmVTDcZTY5bRQBfGsPtzo+iYGzvRT bE6UWhlCHIDLWpBWnRfZnFyhnLMWdrd3qaCbADdKbspW7leDbBV6+okLKq5QxkYGq44PUP8gu1bG cb/YlERDbBla9d5Un4qnWJqIGKfM9UnUVt3hdg7PjOWJsvlCG41wENHzb7QoN1wEd1XnGOQr31Pk FkxWnZj8b2iMLc3ae9V7y758/52HO+my01N86pb3J3dlyz9rT08Bouosn4M5+cREGV14q4YBsF4G 6QsofV0iRSZN0JGnTruZgkvlMFsvYCua7k6nRVfiKgY72c23an+dy6VXYjIMcizI+lcb+fpcAn+E b9PawpWLGfoIg2mnn7J3XbS7b+UtJVSwM4MB0SiO/9RI9YfbFBgm7dW3ursbjotLKY4DNMyucMau gKub0+Q+UcUoY1mIRiOROYqzMVsAMFj6WJNtWJ+jtwH7ytU1jQFWzdUO7ptdVd3T2q7XNdN9iEEI 1+i0igQ6s3cqUCz6/PCY+7dqbY9f/dBaifkdOgrwmLdypJDGYvgbaXFmn7Z7WCB8xHe2Yhu7gczQ 9+WZVftH1XgkY5AcN9vAKRAIDwN/uqkhWBQwfAwWJeevHsPD+aN9sJ4cDjyEetxwyT1Wnev9+FzL E62un9hpqXP/7XZyif4IBz4uUdIH7bVDyUOfwbUrV6pUxs89u2/hZAW3KIu01998lVrYQq2trYVW V6yle+66T7181eUL9Prrr6hrkMjgwx96kB7+3BdZYR6hF196TsVn06kEQA1g3R6O5baNM4siocHF qvNsrfYsJbLVEpIcrF69TrmF4hwyiu7b95pehdlfYBRYbLEREHQTWYoQb0CPCYAAo4gZhyJxAOxY 1cIpn+HuuOHDK6jtcreyHGq50EmnnrnguhyxDxB7ABkWAb4hLTey7lT+9pLrGuzAfbT+aLNngGyG 5BR6e90qnfzRxcAX/lD0/cnTfm/Q5ssc7wpgEqz42jkuH5TsMxyAVqen/gDQHO7DErAU8d9mi8kw Ew+kbnybx381RXc5PttWYoeALsVbc6mTs+PC5dRaJHabG6DF7qt9nBwDsS4Q50JiV6g08xysFa66 iFFmjXOh1w1ASzIr4bnW5+jXyj7iZCCxgO5qF5PkoMruS25tt9Y1030IoruJs0oi66YeBwt0NfEt hPILd4vYlcnsHg338FAUpF3HuHboByc99n15bjDHIKnTbA0FDAUMBQwFDAUMBQwFDAUMBXyhQER6 Ri6MIFylmDN/wpXTFN8oEIqUrr61wFwdDAqEAx+RCQcZSVsudlI+W2V5snKDNRbOIyNP4ZYcV1D2 YNBhIdcRDjwU+sGKLS4thjMd8XKgpViBKcliBLAUQJcKHOvBwhFViTUeQCy9qFh5DFIithyea32O fq3s68Fu5Zhd2611zXRfN7sUI97Gvn85IlV6vQ0nHnrd6CV24fIbCig+PV4ljfH06oHwsfjaPJVx 7OgTZz1Vb47PAQUC4eEcNM88wksKGD56SagwvszwMIyZ42XTDA+9JFSYX2b4GOYM8qJ5oeBhTnYu 1dZUs2u0KYYChgJhRQHdCkNPIW5tpJ4hR7IdWq8xv+eXAmJlKFZ1emvECk0s8iSLESz1vMmgqfNf rxf74tKK51qfY73W02+7tntTl9yHRBYNJ4w7gSf6LvTj3ZxhN2d1psoSPDrIgSyDWBCrL5dd5GsP m4W+IJLVVGUoYChgKGAoYChgKGAoYCgQQgoYcC2ExDVVGwoYCixtCvjiWgpXXD1leCCU8+W5np7j bx3+3uepHeZ4eFKgh92X4ZaObL+Np1pUnMlgtTQ1P1El79DdiYNVt6nHUMBQwFDAUMBQwFDAUMBQ wFAgFBTgkNOmGAoYChgKGAoYChgKGAp4T4Hh3hG68HqNiouG2GhSYHkZFROlYiXKMV+3uWszqfXS dFdqX+sx1xsKGAoYChgKGAoYChgKGAoYCswVBQy4NleUNs8xFDAUMBQwFDAUWEQUgGvylf31VLIt jxNnOFSG24zlqZS7JoPSl6UQRVgCAnrx7tHxDsooS6VmTu5iiqGAoYChgKGAoYChgKGAoYChwEKh gHELXSicMu00FDAUMBQwFDAUCDMKIAFH0TW5nFwlizP8xlJaURKNDo8Tss027GunqM4omhgbV9mL Z2s6rN7yN2TRMGfNRUw3UwwFDAUMBQwFDAUMBQwFDAUMBRYKBQy4tlA4ZdppKGAoYChgKGAoEIYU QGy05bsKqb990JWMA9lmC67NotHYIQbLRqmHwbIxjtHmqQBYQwZcuITWHLrq6TJz3FDAUMBQwFDA UMBQwFDAUMBQICwpYMC1sGSLaZShgKGAoYChgKHAwqBA68UOSitNoao3a0my3yJrbOYDGYSMtdEJ 0dR+uYsGOgc9vlBMUgyV3VhIjZxh1iQy8Egmc8JQwFDAUMBQwFDAUMBQwFAgTCngN7iWEJ9A8QkJ NDg4QH19U+4bkZGRlJKcQth2dXfR2NiY69Xj4uIpMTFx2j2uCyZ3cE081z88NES9fb00Pj6uQrfE xsZzvc4YLuPjEzQ0NEATE9a7zW9DAUMBQwFDAUMBQ4G5osBw/yidfu6S2+OQNfbii3XU2tKqLNJK t+dTcm6C2zX6j8joKAIgd/G1Gv2w2TcUMBQwFDAUMBQwFDAUMBQwFFgQFPALXMvKzKYtW7ZRcVEJ NTU30qFDB6mltZmioqJo2bIy2rF9J8VER9N7h9+lixfPMwg2RGlp6bRl81YqK1tJTVcb6N1DB9Q9 OpUQ+zgvt4C2bd1OhYXF1NraQidOHqXqmisMrkXQdTt2UnR0jALbANpVXb5A9fV1bgCeXp/ZNxQw FDAUMBQwFDAUmF8KIPEB/kwxFDAUMBQwFDAUMBQwFDAUMBRYrBTwK1voR/7gY3TXHR+gAbZa27P7 FvrExz+jQK+CgkL60y98lQryC5RV2598/qu0ds16Bbrd+4EH6IH7P0IjI8O0e/Ke2NhYN7pmpGfS Fz7/Zbrhhj00ODRI5eUr6atf+f9o/bpNlJOTS5/42Gfolptvpw0bNtFtt9xBX/nSn1F6eoZbHeaH oYChgKGAoYChgKGAoYChgKGAoYChgKGAoYChgKGAoYChwFxRwC/LNXhi/vrpp2j/gX3KKu2mPbco y7Qbd+5RVmX//r1HFfD2l3/x1wy+3Uo1tdXKGm3vKy/S8y88qyzbPvOph6hs+Qo6c7bS9a533nmv queRb/49W6TVKtfSzz/0ZVq3dj29sa9JWajt3/8WPf/is3xsAz380JcoNzdfWbi5KjE7hgKGAoYC hgKGAoYChgKGAoYChgKGAoYChgKGAoYChgKGAnNEAb/Atf947F9V8+DquZzdQGsZPGtpaaKiomJq b2+jvn5nDLa6ulpay8BYfl4BxcXG8XXOWCqNV+tpgv8VsVupDq6VLSun8+fPKGAtKTFJAW3Pv/AM DQ8PU2xcLEVwvLXMzCyqqFijLNhgBdfcbLKKzdG3Yh5jKGAoYChgKGAoYChgKGAoYChgKGAoYChg KGAoYChgKGChgF/gGupIZPDrg/d9mAoLiuiHP35MVRsV5aCBgQHXIxAnLTIiki3QomiMkxIAJJMS QRHKXVR+Yzs+MU6jY+Pq0MqVFXT7bXdTWmo6dXZ10JNP/YQcXP91O25Q4JrD4aCenm5CYgW7gvNz WfDuc/3MuXy/pfIsw8eFz2nDQ8PDhU+BxfEGpi8ufD4aHi58HuINDB8XPh8NDw0PFz4FFscbmL64 8Pk4Gw+RTBN//hS/ECgAa4h9tn79JnYP/QWdPHVcPbuVkxqUlJQRYqmNjo6qzKDNbNEGcAwNzM3N pbPnKvl4Mrt4jlJDQ71bm2H1VsSJDJKTkl2JEO64/R6+L09dNzIyQi+8+Ft67vmn2aotjf72bx6h G3buVgkP3CriH0lJSdZDIf2NDKdDg4MhfYapPPQUMHwMPY1D/QTDw1BTOPT1Gx6GnsZz8QTDx7mg cmifYXgYWvrOVe2Gj3NF6dA9x/AwdLSdq5oND+eK0qF9juFjaOk7F7XPxsNBxnTw50/xC1zbs/tm +ugffJzeePNVauTMnyXFpbxtpFOVJzn5wGYVU62rq5OBtuX01tuvUV1djXL13LZtB9Xy/nXbr6eu 7i6qq3e6iUrD3z20nz79yc/RHXfcQ0ePHVbWcchIeui9g+oScQstK1tBKckpKgYb6rErnZ2ddodD dswR7aC5fmbIXmYJV2z4uPCZb3hoeLjwKbA43sD0xYXPR8PDhc9DvIHh48Lno+Gh4eHCp8DieAPT Fxc+H0PJQ7/AtYpVa6iJY53BdRN/sDj70eP/ySDYAVpdsZbuues+RfWqyxfo9ddfUVZrSGTw4Q89 SA9/7ots1TZCL770nLpPZw8AtZycPNqz62ZOgLBDJTS4WHWerdWepUS2REOSg9Wr1ym30MjISLaC O0379r2mV2H2DQUMBQwFDAUMBQwFDAUMBQwFDAUMBQwFDAUMBQwFDAUMBeaMAhHpGblI/ukqxSWl BFdOU3yjQFZ2FrW2tPp2k7k67Chg+Bh2LPG5QYaHPpMs7G4wPAw7lvjVIMNHv8gWVjcZHoYVO/xu jOGj36QLmxsND8OGFX43xPDQb9KF1Y2Gj2HFDr8aEwoe5mTnUm1NNUX61SJzk6GAoYChgKGAoYCh gKGAoYChgKGAoYChgKGAoYChgKGAoYChAPnlFmroFjwKSFJTzv+gCn47oiY4a2oEu88G7zmmJkMB QwFDAUMBQwFDgaVBAZElPL2tkTE8UcYcNxQwFDAUMBQwFDAUMBTwjwIGXPOPbgHfBcE3JXGcSvLG aYIdcxtbIykxfoKy0sYpPmaCuvoiqak9kuJ4/2pbpAHbAqa4qcBQwJ0CVmDb/az5tVAoYPi4UDhl 2jlXFEhNmqDlhWOUkuA5jTxkjMv1UdQ/FPyFPNMn54rT5jmGAvYUwBiQnjJOzaxH9A9G2F9kjhoK GAqElAKYC3WDGTM3hpTcYVO5AdfmgRUi+F6zepSK88YUuNbdF0FlRWOUljROR89GU3IiW6+NR1B5 0Sj9+Nk4BbZdqGFB2EyS88Ax88jFRgFMcBtXjnDG4QiXginvaCxGhRLhv8VYijFyjMfKc9VRtg02 Fjq2ZDEHFwEFRHDXX8XB3eD+PUNKnuju9axUQ8aorHLQBe43Jy4ELgrGxU5QYfY49fRHUAFvsWgI 8G540gLf9EOdSwtr3/qdGV6GN/8wL95z4xBtYR3j9wdj6N2T0aofJsRN8KL+BLV3RZp+Gd4sVK2z 9ju9yaYP6tQIz33R9bHIhcUsGNGYuTE8eRXsVgUuUQW7RYu0PhkkdcG3sSWS/u3JeMrKmKBdW4bp mddiKSd9nJ7cG0cVy8fo9h1DdJ4F361rRyktZYLeOhpNr/BEacr8UwD8hOWhVVCRlpmJTygRntv8 zDH60oMDVN0YpRTMK/WRCqARK1IIoSKAGl6GHw+l/915/TBtWjXCVr9Ev9wbO62hERxVtLMnUvHY gKbTyGMOLDAKiByBZmOMguW71TotLXmCrt84TH/13SRqYyXaU4GM8ZFbBuiGTSP0v7+XGJAFGyzs d24coT9+YIDePx1NUCowlp665KDW9giSfggA3IynnjgSXsfxrUnBQlQSf28o4GUvA6j4tmSOlOuw NfzVqTE3+zHRxMD2mOKJwzFBmBeLcsfpV7+PpTtvGFaL9eiHK0rGafXyUTrIYJv0y47uyKCA63Pz pkvnKTowY/fWAGuMwYUdZeb/mC6friodIyxyYTELRjTWuRGtNbycf54FuwXa9Bnsqk19QgF9kLQT fNu6iM5dZu1QK+cuR/GxBNeRnSwA/8Ftg3SIJ8VQuHG4HmR2ZqWA8BOWh7qgot8YSpcb/Tlm3z8K rCkbo/M1DnrmjVilYN63e1xZWUAhxASI1SURQM3E5x+NQ3UXBBcoe5tXjVEmu9E/9psE+iBb6mAR wloS2NU+L3Oc/vPpeJeFogHZrFQyv+eTAgKYeQIlAFzlZY0rq3WMSwKmQVGG5bvVOi2aFe23jsbM CKzhfSFjfPeXCfSVjw3QbdcN06XaKL/7yOaKUbr/piE1Zg4OR9BPfhenFg3v3jlEpXkMBE72QwDg MjfCok3eWWhgxwe5xu6cORZ8CohiKCFLwKcv8kJU5UWnugBeriwZU+6GMkdKK3QQVY4Z/gklQreF C/j/+8l+evlADHu/TKh58QfPxKkxoKs/kqQf9g1EKMBt5+YRV7/MTJ0IGFwP3ZstzZqhY8DyUIAZ OyoArDlwIpreOcY6ofFosiPRvBwD0L2ufIS2VDjlUxjQYCECi1kworHOjWik8BIWpka/nxe2Bf2h BlwLOkndK4Sgcu/uIVpR7BSCvRV83WshOsOCcBdbYIgQbFYsrBSam9/6pAfLQ6wMiqCitwCDJVbt A1FY9PrMfvAoAB5eu26UXj0U7VIwP3rbEP361ViXFanOV5n4jBATPB4EUhOse7/2RwP09pFoEgXi Wz+bWojQ60bMmc/eN0gfZMVf+qMZO3UKLcx9zKvpyePKegvWp74U3IsynyAr2oA4LGJ9lsrhIGBh aefajEWcj989qOYSjF0CpkFRFsHd+Ua+/w+rlV/8Pk4p3+vLR5WF50UOP6G3A+AeXD6l6GAJ3gMW 3LfuGKEnX46jg6zsSXEuGjr7pfRDAOAyN8JyBkCbuMoIaCj3y1YH4+SY2fpOgZn4KLXhmjVlo0ox lJAlw6MRdORMNH33KecCMHiJ+fLYOcc02UcHUVGnDrbp3408z2yDQ4HrNozQSQY/Sxhs7+dxQeZF 1G5dqMexQ5XOfgpe6uC6mRtBnfkt6IMf2DVEhTnjM47vAGsevH1QNdaAMvPLM/3pALo/e/+gWoyY 3g+dY6g+N+Je4SXmRqMz6tScn33INRmT8Sr9bUFEekbulNTEtRSXlFJzS9Os9UVFRVFsTCwNj4yw kDriuj4yMpJSklMI267uLo5pNOY6FxcXT4mJiTQ4OEB9fX2u49YdXBMfn0DDQ0PU29dL4+PjFMGh Q2Jj47leZwyR8fEJGhoaUK4H1vvn43dWdha1trROezRAta/9UT/9r39PnHUledrNlgPogFiBgiui WbGwECdIPz3xEdWjw/3hHYPKqkkfNO0erfPKKPV2FArdMU88FEUQLhO5mRP0Lz9ztxb11CKZ+KA4 GoDNE5WCe9wTDyF4wor3I6zcffH/JHv9UL0/mrHTa7IFfKEnPgZSsQAAu7aMqhXiP/9Wsls8oZkC eOPetQwijTJgEIw4Y768B8afktwx6mXlVyzQxPpslMUkWFjauTbfsn2ETrDinJE6Tk/zAsBMrp6+ tMd6LfoI3ETzsibc2pGSmkrdXWxeP1kEEJMETBtWcOIEBv18GU8hx0CSgzIhrjICGspzZKuDcXLM bH2ngM5HHfTSawKQ+8AtQ3SR3Xf1xSZvvzsBUaVOHWyzgqQGbBMqeb+1G08BfP/dl/sUEIMYh74W Mzf6SrHArrfjoV4jgNJ7bhymbz/htHjSz1n3RTatnFzIN+ColUKh+23HR8zxn7pnkPoY83yKwzv5 UvR+GMxYqL60Yalda8dD0KCY5bSP3j5E//xT+0X7meiUk51LtTXVxJ+C7wXg17JlZVRSXEoXL16g CxfPqUoAuOH4ju07KYZNtN47/C6fP88g2BClpaXTls1bqaxsJTVdbaB3Dx2gltZmt4cDQMvLLaCj GlRSAABAAElEQVRtW7dTYWExtba20ImTR6m65gqDaxF03Y6dFB0do8A2gHZVly9QfX2dG4DnVuE8 /4B56M3XDtNpDhocDIFYVqDQCT9+16ACHF97L2ZeV+DnmcRz+nhYzOzZOkx/8ejMsWzQKJ1XUCRg FQCl3qwwzSnLXA/DpKe7EgIc9baAl0+xdYdZJfSWYqG7TtzPEH/Sl6L3R+GjAUp9oWB4XIt+fM0a JwBQ2xhJLR1Oa249npAE8IZ7hRRYqcm9H+O5E+7f//+3kzy6Jc6k+KMeWJ2hzHRdErvPZWdwIGOO t4IFMawL/t1XetUcIBZoYn3Ga4XKwtLOtflKQxT9hkG1UBf0EbiJwtJTb0d8wgAN9E+5XAsgJgmY 3mYX1J/8zvv2SV/E+0CWEVcZTzKSKB1wLzXFfwrofNRBL71GALn41sQC0S5kiX69dR+WkLoVsYBt VotF3AewzYABVgr6/hsL+FGRE8ql2/e73WVVMzf6Q8Hg3IN5RayAX3hndrd+PFVkU6uOobvcB6d1 ppbZKAD+If7vhpWj9K/sCuprkXkR812wYqH62gZzvZMCCBsEL8NACn8OvpdtW6+ju++6l5YzkPbS y8+7wLWCgkL60y98la4yeNbX30d/8vmv0g9++D0GyI7RvR94gK7duoMOH32Pdu++hcrLV9H3HntU AW/Sgoz0TPrC579MsHA7e+40X7OSbrrpVvrhj77PQFwTfeJjn6G29lZqar7K7ltZFBt3P33jka8r EE7qCKctzEPLeeJ75Ee+o58zvQc64d79MQywDVBTW6SaVM1gOhPFAjsnk15FqdPiwZMSYPcUfcCE 4CJmv0aotKNW6I4tyx9TcWMQs3A2q0O7VogQo/NQMuHNpGDb1WWO+UcBABJ27me+1KbzEfdJFjXD Q1+oOD/XYhwGQH4HxwcTAEAHXiSeEAJ4w5JKT1JSczWKs2eOqntfeDuW/uDWQdq+dsTWLdGTVQ/e GgmJKpaNUuKkm6QABHCdE8BNMvKtXzGqLJ1ffy9WxebEItswxyOD5RrirljnER2UmB8KE1nBEbTD urorgJiegMnf9jrnx5kVEZlD/X2Guc9JAZ2POuil0wdArgBr+nF/9/XvSe+rqA+ykFlw9JeyU/fB Crax1XeLtakanHt2c6OJ/2SlUmh+izU24nRhHvOlD8r4iP4l8mlbZ4RJ5BQaVnmsNYPDVCDu4d4D sX4D3agc/AxWLFSPjTUnPFIAfXE7hw16hcMGBVL8AteysrLoxZeeow8/8KDbs2/cuUdZlf379x6l AXb9/Mu/+Gvas/tWqqmtVtZoe195kZ5/4Vll2faZTz1EZctX0Jmzla467rzzXmXh9sg3/54t0mqV a+nnH/oyrVu7nt7Y16Qs1Pbvf4uef/FZPraBHn7oS5Sbmx+24BrMe4+cCY7VmotIkzuIwVZV53DF EpL4JZ4UfigmKPMZZ8bZgoX1vz7pQTnz1WJG3lYEF7sVJlyjK/fglShqcv9MW9wrxfBXKDG1BQ9h QYq4MY/9ZmZFbuqu6XtWHsLdV4QYPUaR8MNbHgrvpY/iybhXjk9vydI7Ah4iDomvgqcdpYSPIoha x065x1c+6vehH0o/NnwUygS2hfD63z8xQK8finEpH+ClnvgHT0AAb6z86klKAK7tumaY3jocw4Cq g9YscyjrLLHCEksy3O/JqgfnkJDog+w2d+qCc0JFFm8AtA0cf1NihklGvmjO2od4cOjLiOF487Zh eokXxX7+kvdWs3hmuBUnzf0fR8PtfZZie3TQa67e39pXdTBA4gxhkdiumDHUjipEwVIEpXZ9bsQC hTX+os4Hmd/kXk9b/R5P1yz147DI/zCHuoA7ti9WwDrdhHfQMdYsd0/kZO1X4AmKLqMaPunU9G+/ h7Mo//i5wOd3jM96LFQJLST6vd464ZuuP+C8rgvKOf2YXofZn6IA+mIEWwL7AnBP3T215xe49uvf /ELVYAXXioqKqb29TVmt4YK6ulpay8BYfl4BB8SNo9raGnVf49V64kTtVFRU4gaulS0rp/Pnzyhg LSkxSQFtz7/wDK/2DrOVWiy/cARlZmZRRcUauuXm22lkZJia2YrNWjjcG7uluoWSs14S9N+Y5PSg v8kJE4SVawkCG+wHinCkrwZCUUAntCqLstqOODN2nTPYbVvI9Vn5qMcg+Rb7X1utDXx5VxEudaES vEKReCRIo44sXaKozVY/rCx6eUAfG49Qrk4IDg3LiXbOTgNXo1x2S4LrlHVyna3ehXzejofFnJYe MSwCLToPdSFGYiXp/PCWh+A9+FaUM6ZcvcHLmQKcB/oOC+F+Ox6uXjYWFB7i/XVBFO5m+tgp9Olm kAYASTyP7b4U4afE1ZK+vZj6oAh0vtBFrvVX0IOZPoTXH80ivIK3WPnVk5Q8sHuQXjk4BWyJlRjG YqtboierHrQfbdDrQfy/z394gC6zxY/EDBMLOgSG//FzU2OOBBEXOpitocBSpoA+BiNshsiudjRZ jGOo3XvOdsxuXgyGIqg/V/iCBYqbOAyKyDa4Rvjgi5wq9yym+U+nl6/7Vh5CXodFvlhj+1qffj14 h8UmmcMkkZPoGXKtnWwjfIpleQfxNBELE+EMoEsY3gnlprZWPmKhbYR17GAV4aXo+J7GSPBNkgLh 2ZBZh0emdH1JmoRQGLp+aHjqXJzQcRvpiwgtEmjxC1zz9NCoKAcNDAy4TiNOWiRrm5GRUaz8jyuQ TE5GcDhbxGjTy/jEOFtrjKtDK1dW0O233U1pqenU2dVBTz71E0bZHRx37QYFrjlYQu/p6eZV5uku lxn8ka8rn0qkoD8jVPspqQPUzZl6pGxaNUZX22OotilWWTDI8WBvL9U66N9+4Yx3spoVhbt41aK8 iCgpYZQDNk9Qa0cEr7aPc5DaYappdLiOBbsdi6U+Kx9v3T5Kv30z0YVii2IYyPuCZ0+/7nDxCnUJ v8Cr0oIJ6ull1MyLEs8T84qiYbpy1UHcfaizlxikmaD9xx28cjFBD94xRL95LU59B15UtygusePh 3ncTWDCMDlpflH4nQsyOjU7S6fzwlofgPfhWwIHEczPGFC8BhOdmDPocFHVRMJBfYi55CJrpY6fQ MDtjhAPPj9Hxc75NtMLP9BQGg7gfS9/GWLwYCmKHtfdEUOWl2eNsQSbAXC0FK+Xry4dohFfOvblf 7sO2JH+YWjvd69PP6/s9/UQ/+K2Tb12cO+mbP3O2VWuKuhz9+FKt+znc+6+/mJnnUs+F2kjOvEcq +Lt14eUIh6KV6/S2LbR9Kw8XWvtNe50UCEc+yjxqN/7qfFtsY6j+br7se5oX9THWl/o8XQu+PPZ0 tIq/KLINrhU++CKnyj2LZf7zRDNvj1t5uKJkjIZGHPT+6figzRcyh3nqV3ayjfAJi7ybK0bo7WMx tLZsXOkShnfTuWvl40bW+S/UQN+fknem3+X7kdnGSPAN+gPkTQB+kFlxj+j/+L6gU1r1Q8PT6XqG tS8imSb+/ClB/QpaOUFBSUkZZ/WMZcWe45Jw4gNkHgU4hgbm5uZyLLVKPp7MLp6j1NBQ79ZmWL0V cSKD5KRkVyKEO26/h+9zRrId4cykL7z4W3ru+afZqi2N/vZvHqEbdu5WCQ/0inIzx0ifEPRzodpP iB/hFNhTtfcPRtNvXk+lpCQngBgZ5fTfHR+byqw6dXVw9upaiP7zWWddK4qH6JZtPRzzja34HBH0 5pFkXhmMcx0LzhMXXy1WPta3xtGpqnTmY3DfVecVahZ+4bv54XOpHPvGHXj29PS05DG698Yuev6d VMpMHaUd6/vod+/E07Vr+pjvRIfPJPA3MKG+A091LLbjc8VD0G2Ex93vP8uz2mTR+eEtD8F78O2n LyXRrs29ipdYZXrwto45H8fkPeZ7O5c8xLta+yOObV7VT8vyR+iZN1Px0+si/JR+LH0bY/FiKLDI TGX3yL/6XuasrwMZYGiQU2dNlrysUfraJ7sZJIumf/xJIs+Z7oAj5FLdVUXuw3bLmnFlIZYU7MFY f4iP++j/T+x13hRGzZr2FpA/IhnolDLO8pe3soiVh1KH2S4sCoQzH+3GX526i20M1d/Nl/25nBet sg3aKXzwRU6VexbL/OcLv+yutfIQtPy1piva3ePvMU/9yk62ET6NjfGCU30kxcc5XLqE4d10Dtjx 8XdvT+n80+8I7IgnXoJv0B8gb5bmDSmZ9VTVlK4vfdWqHxqeIgTIdNxG74uDLLviz58yJW35cDfi nGGijmEQLZVBLmQIbWq6SqcqT9L6dZtVTLWurk4G2pbTW2+/xu6hNcrVc9u2HVTL+9dtv566uruo rt7pJiqPfvfQfvr0Jz9Hd9xxDx09dpifkUTF7Dp66L2D6hJxCy0rW0EpySkqBhvqsRakJa68ZD0a 2t9Z2anU2mIFznrUQ+MS0ygjs4QBxlFqunKS3ff8Q0J9eYP3O4ne59gyUwWuTQOWY1NnzZ6TAvZ8 ZGKGuLjzy/ndePPITm7av/0cVm49dJn/f/8k9ofo9YM6772pafFcM188BAV1fnhLUSfvwbd+On7G yUvc+48/NDx0p2Ho+6H+vDcOyS/fnjvFT2c/du/bUufC3RazhfZXPz5AI0MdKgbeTG/iiHZwn5ii 37K8EV5VneCg/qO0uqiF9nMGZSkIX1BeMJUsQI5jC3frFYXDKguXXp9+jdmfogCANFnQi4lNoLTM IoqJn1oEGOrrovamKuZhP4NsHgJdTVZn5eHUU8zeQqLAQubjYhtD/f1u5lO2QZvd+eCdnOp+j79v vnjus+ehd7QMFhXsZBt7Pi1tXWImeocDH9E+J9+cesPlGmmxVdc3+qFQRt+Gkod+aW+33XoXg2gb qL+vjwryCxgQ+2N64uePMwh2gFZXrKV77rpPtb/q8gV6/fVXlNUaEhl8+EMP0sOf+yJbtY2ohAiw VNMLALWcnDzas+tmToCwQyU0uFh1nq3VnqVEXhZGkoPVq9cpt9BIDqyGjKL79r2mVxF2+xByV++4 n7KL13A8pUg60PVt6mlvCLt2mgYZChgKGAoYChgKzEaBWk4O0MxxHHesH3EDx+zus1qhIfZhXRPH hal20O4tI25Bd63JAvT6EOvs+HlHQFm49PoWy74Oosk7RXK4jeyiNRTNoBpKZsFKSs0uoaH+qYXI WAbamqpPUnvDRWptOK9ANrnfbA0FDAUMBQwFDAUMBQwFDAX8o4Bf4NrPnvihx6f96PHv2547eeo4 4W+28vLe5wl/1tLT20Nf/7u/sh4O+9/pOcuoePUN9OpP/5JWbLmDVl37ATr11i9ojAFGrCjHJqRQ b2eTEW7DnpOmgYuNAuImNZvlxmJ778X2PoaPc89RZMi0gmO2rYgeov4eDrA7aRy1gZP87DsSQycY KNu6ZkRl7JT7rMkC5LjZOilgBdKURVpOiZtFGq6MS0qjtdd/mK3kT6gbhwf76OBzj1J/d6uzIv4/ ixf7KrZxyI3SDVRzdj9VV74VFBlEbyPcTs3Y6iK52TEUCBkFHDFxlJye79Il0A/jElKNfhEyipuK DQU8U8Aqk1p/e77TnFksFPALXFssLx/q94hyxFDZ5tuppfaUEmwvHt1LO+79sgLZ+rpa1Ipydsla unjkZao9e0ABbtY2GQHVShHz21AgcApgsstfvlkpf966RwX+VFNDsCgA/sHtTQCGCU6Na/gYLOrO Xs+xs9PBMbu7sjO7KSt5RGWwRhbv0oIoajmwkgZGm+lbP3WPt2Z3/2I6hm82LbuU+rpbXHP9TPO7 COTYpmQUUEJKFjliprKP2lmkgV5RjliCrHHijZ95JF9r7RnCH0C2Dbv+UF1nJ4N4G5cNFaBtuaXr lcUcrPQH+zqppe6siu1mQDaPrDAnDAUCpkB++TW05eZP0+mDT1P9+UOUkb+C8pZvItEvggWeB9xQ U4HPFJB5wIyhPpNuXm4A0J1TvJYTCIwrmTSK5dQ0XgQTGRWGNTPN+/PSaPPQoFPAgGtBJ+lUhRn5 5ZTJf/t+9Q/qIFaOT7LVGlaM03JKCSvKp956ilZuvYti45MJgJu1+BIbxXqv+R06CmDCi09Kp5i4 JOpqrTUr9KEjdUhqhkXp9vu+TF1N1dRUc0q5RxlFMCSkDmqlEFx0oEEABg5k6XJzA8gGAQbFCDFB Jb+rsu6+CAbHpmfqdl0wuXPdlmS6bm0TB9olTnQ0QQfPFNDm+/+JRl9+jC4xABRIwdibmJpFHU1X GNhxt9wIpF5f7tUVH+u+zA9D/d3KggSA0+2f/QbP+U+65nqZ3+V7lWeLa+c4f8exiam05dbP8jvG UsPFw3KJkh+sFmmuk17uAGCDTAKAzU4GQfsiRrv42Zxy1aYI+AYrmbyyzbT5lk8ri7no2ERKzsin k/ueJP0dTX+0IaI5ZCgQAAUw9q3gRfxLJ15lL5nrKSWzkJat36MW7EW/QPU6eG76YQAEn8NbVbzu vOUuYMabGJlz2DzzKI0CmP+xeJaSVURrrvsgh2HoUTIpeIiwDCKjQs83c6JGuDDcBS8TkjOVJbC/ zTPgmr+U8+I+THT1LAzr7hiyYqzfPsixUARw049j35/YKLqQL/XhmAQ4lmNmO50CUdFxagVezliF ENARigRWIkrX30T5ZVvowDP/rFYodAXJep/U5+1W+BVoPd4+b7FfJ/TEe8Laafmm26iR++bFY6/Q +hs+SmUbb3EpgnDThsBqQNPw+irAw4IV22jr7Z9zAQ3i8paQmu1yc0MsKVmoECEmEKEUz0UxK8e+ fw8X62Lp4NEpEC4lM4nuKhujldfcRbVn3lEAkbe16mAa7illBXLTno/Tr775SYLlxjW3fpZOvfMr quI+PRdJgzBG5JasU5nPO5urKWNSCeruaKTUzALX/FBduU9ZkDRXn6LRkSG1sIbFNRSZ3+V7VQf5 P3Ht7GTgMCY+iS6fep0B41E6+eYTcknQtgKw2ckgaF9f+2WKSUW6HPcCsHB4sIcVvzGm/1Z+/xUu izkAi9fc/sdUuHKb2ztKf5S5UuY3fXx2f4r5FSwKzCbbzPQcKIjgaX9Pm1q4EL7NdE+g58y46x0F MfZFRERQ5du/pKbiU7T2ugdc/RA1QL+wgud6P5wLXnr3JuYqoQC+fegZK7beTVmFq1zADGJkyuKh 4ZtQKzy2CUkZvHj2D9TVUkOVLIf093YomdQqo2Lu1+d96YuByKjhQYHF0woYX6zmcfSdp//J75da lOBaBPufwDViLotVcIllgTiHXSTe/d2/zdoMO8BNbpLYKPm8KnyF46JUHX/VpeTZCaRWNykIsXJM zxYm9ZutOwVSUlMpPmMq8LMMfKCjWBPA3B4rEQM97dRWf5bWXP8htUKhK0i4zy5QtB3P3FtArucg ILX+fFyHNiSl5TF40OyyzrHev9R/W/ui9fuHtVM8xyU6vPc/FfD97u/+1U0RHGdlEW4VOmiqCzLe 8FB4gHEAoEBPx1U5ZLZeUMATD1dec6ct0IAFDIyjMl5awQsRSnUBxhs+yrejm/R70fxFf4neH3x5 2dTsYmqtP0ejwwNUVHEd1ZzZ7/XtyzbeRBt3f5yeefQhNactW7dLgeCJablUzmB59em3eXsrAcSa KWkQViRj2FK8s/nKtGfjmwCIAMsru/P6DVBqN9/8SZXKtLrybZcSNMiWanFsbSbzA+qEBUnZxpvp wuEX3Nw1rd+r1C+unQ2XjrA1ynV07NXH5VRItp5kELRv8+4/IEd85rTngkaZrPh1XK1S9H7nmX9y LSQOsGLxztPfVPfo76grFTiJ+U3ASCOfTCNxUA/oso3utqs/BOMd4gALiIZzkDnWsKKRu3wjA+L7 mcdtQXH5nWn8dY67yxRIDotyU5wUsJsXMfbBDRwF/Xgf/+kFx3SPGZyTfgheDvS209XL9vGwZ+KR /gyz7z0FrDzEnXq/EzdCLFggFACsk+0WDz3pGNISwzuhRGi2Vj5G8WIbo6DKE0bkGvQ9KSKj4ve0 OXHSewYLw3aLuIaXQsXgbq08RO3oizC+GBsdCuhhEekZuRN6DcUlpdTc0qQfWnD7CSnZlMOxzOay QHDp7poCZQDAwFJs/zNOATPQtpSsuYE2sSD//ov/4ebHbRVIrW5SAHzkmJ4tLND2LNb74xMSaaB/ ygVGhBDQUawJYF6vViYmA0TLQKnTBPchULRuiu8UGKcHoNbvw748BwGp9efLOSiYeL4O5lnrWMq/ rX3R+v1jJUnnn04r8HIlJx6JiUtUAD0mO12Z8JaHUicUcFg3Hvn9f8khs/WCAp54CMDjyO9/4EUN zkukb0o/EpBNBFjr+GmtWL4d3aTfes1S/G0F/T3RIDMrk9pa21ynN970CRoZ7GewuVG5Ll05+Ybr 3Gw7q3fcR+l55XTg2X9RcxpANQfHNQWYxaYbtJ9XGTfu+QRFc99F0iAdSEXdEFBhDbDuxgcZ2NtB z333T90eKX0bFsmYv63n9Ytx7fYPfIndNN+nzbd+lhoZBANYDyVoOVvUeRpf9DoWyn5Wdha1tkwl Q5B2A4Rcz+6kvryr9EepA/1SwEgjnwhVQrPVZRvdbVd/GsY7xOkCiCbyBeSRVds+oMbd0rU3KODZ 6vKL8dQKykm9AOJRdM8J6Wuexl+0I6twNYPgicqiXOpa6lu7eTGWrQox9vlSpB/iOwCA8+pP/6dr vBRFfjYe+fI8c+0UBaw8xBm934kbIRaIrGOr8A33iI6hx9MzvANl5qZY+ajGya330G+/8wWfGgCe wnsGYyr0ezHKMLz0iYx+XWzlISpBX8SYKMYXvlack51LtTXVtCjBtRzOgLXymjt8pUlA1+uCCyqa SYH350HiZiFKogzAVoFUnisrHaFoiz/tXyj3WBUJfTKDNUFnS7Wb5YGn98J9MMWHFYUIqei0sHiz 8sxah/4c/fm4DudGhvqUomi9z/x2UiBYfVForysi3vJQeDE+NsZAXYJyB5NjZjs7BYLFQ3mS8HK2 8VOul63deCrnlvJW6Chjmyda6MILrGXWXP8AHfjtt5WF07a7Pq/cXTzdaz0+MjTAir0zoL/OFx3M glCEpEHNNZWuOIqox93quJQtU8vo/Zcec3vEVN/uZjfHLdPO6xfjWii1Rxk09xVg0utZCPvWOTGY bUa/1PkXzLpNXe4U0Pko8qT7FU65tbHqGAFEk6LLIzim3yvjQGJiMhWUrlVZZ7u722mMotTtuuuw DqRN9bWpBWl5Hrbo35eOvsLjxQf1w0t+P9jzInh5/f1fc8Ur1a1IZ+PRkmeGnwSw8hDV4HuXfidz mx5OyO5RGDuhY2ABH38IhZBdtEYllDG8s6NYcI9Z+WgdJ315moypGE9hlIFvAaElMGYaXvpCSd+u tfIQd3vb/zw9aVGDa55eOpTHdcElmM+J5gxrjsgp48IsHjzLGB3v7++ftqoRzOcu1bqCwUfhGXi1 6tp7aHQ8gv8C77RLlSe+vncgPBTe6c+M51gKWzh+EHjYz1aN1tVE/VqzHxwKBJuH0iozfgolAtsK WDlbLbrwAuETFmtHX/nhbLcFdB5tk5VgBNRHEWtgKCGelHYRqhBDDPHCZipy7WwK0Ex1LJRzgfTF hfKOS6GdvvJR5kLILyM890mR4/iN8XTt9nuoNKKRumuPUCGHL+mNSKKLg2nq8piYBErhWHwtV6vd FhWXUv8RugVj6ysPZ3qm8FHk1KiYZOrt61Uu7VgANjyaiXr+nwsWD8G/vJLVvLjzUbp66TgNj41T xc6PqoQyhnf+88fbO4PFRzxP74vgZ19PDzkSM9SYaXjpLUd8vy6YPJSnhx24xl4dlJSUQjHRMdTT 203Dw8PSVrXF+VhetY6M5B0u4+MTNMQr2ZwkLixKIEySjuXgV8tLGKfu4QhKjJ6gvpEIKkoao5QY 95fsHIqk851R1DfqpEVYEGCRNMIfPgr/QIIExwQtS3bnGfh1qTuKBphfupC6SEgWdq/hLw9TYsan 8U5/OdPvdGqEdt8fHqJF8dz/NmSMqvHTroUsj1Ib98djrYsy3KjdK8/rMX/5GGijZSVY6glkVVnq WKrb+eLhUqV3qN7bFz7q46jIL5Bd7OSbdJZPP1I2QMfbotW4W5AwRj+76LQwjWPLi7wtH6IXX3uZ urqc7uFWsC5U77sY6/WFh9b3n01OjczkwPnL7qD33vw1h7iZcuW31mN+B0aBYPBQ74dpuctp2dob aTA6k47VdtKBV54IrIHmbq8o4C8f9X6IB+m8xG/wM618N/3u1b3U0m76IWgSquIvD2dqj4BrYaFh ADgryC+iHdt3UlpaOlWePkmnKk9QH6+iSImNjaPrduykaAbfxsfHOUPXGFVdvkD19XVqX65bCFu9 c+kdC0LKH60coENN0QpUq+uNotTYCepisE0vANveboymfY0xBmDTCTMH+zrv8Didf/i9KnWMShkQ 1XkGfp1sc9DZLodR6kGkeS5WHgLUXpM+SluyRqfxTm9qOvfFNxqiaW9dLDG2b8o8UsDKQzQFffEa 5uF/q+hXip5d87BokRU3Tn9+INmMnXYEWiDHdP7ryrrr+GA7HXnOGYdIP79AXm9BNdNFc261Tmv9 +IJ6oUXa2Dj2gABoNluxjqOQX47zYkQLL0rYyTexURP0Um0sPX4+njJix+nhNQO0PdsZZ42XMiil +vu0O5Xvj4skLG50DEXQyfZos9A4GyP8PG/X77yTU0/RycqzVBbNciqFhWroJwUW9m12/MMb6Tx0 64fj54lOnadclk8vs3zKZigLmwCLqPVWXuo8lNd04yUOMj/Ta85RY2I0vdRueCl0WmjbsBhBk5NT 6aHPfZGt0Caorq6GPvOpz9Gzz/2GXt77vIueOTm59ImPfYba2lupqfkqZWVkUWzc/fSNR75Ora0t ruvCdUc6mSjyUPJQ9I4FIeWdq9E0NBZBP+eVvy1ZI/Rf5+KpdRAiyVRZy0DAp1cOcl4SUkLN1Bmz F0oK6Ku58hydfzgGa8N/PpHgxjPw6w/LB2l3wbBR6oVw87BFH7SzTpOV9/1XY6bxTm/mdTkj9NGy QarscNDV/iijHOjEmcN98HEzj41Jk2OoPBp9cWXKqEvRk+P6Fsrfn23qp935w2ZxQifMAtpPYx6W p0xZB4tlTTSDB1arYbyWnBerYbEQbxqIDLs+rINTVpbgu0fBe4g84TwS3P9naoP1STov0DwAJ2c6 HW6KoPUe83t+KJCS2k/dDgG9PLfBOo5Cfrm3dIiWcyQ1O/lGr6mdAbhvHEvUD5F+P+ReWLZ9pzLR WPO7USnwH57kG9Tsq5z6P95NNp4WgbPE5xrsdAypROehXT/clTdMH1sxSPubYtQc4cs4Ls8w2+BQ wFNf1HkoTzK8FEosrm1YgGtbr9lO2VnZ9H/+8W/YEq2WomNiaNeNN9Grr+2l0dEpYQDWavv3v0XP v/gsrVu7gR5+6EuUm5s/DVyD5yiAqrksM60K6mi1KPIwoUex61jS7v1swWZXTrNy/3xNjNtAaned OeY7BTzxETy0s4qZiX/ydPDr2ycTXEr9O5OTn5w32+BSwI6HAmrbWafpK+8zteRgczStZADnD8uH 6LX6aKVEznS9Oec/Bex4KLXBMvRrG/rpBFuD6gV98R9YsbMuRujXQPn72YU4+gQLoSimL+rUCf7+ THz052kYh+8tGaKKtCnrYLGsSY+bsLU8lfOwvEERC/FfXIxT1jj+tCNU91iBQHmOyBDjExHU0Bdp Gy5Crg1kqwNkUo8nHlp5IcAJXALtlAipz2znhwIJCX3UHzMlT3tqhXUchfyCP3+Lfr9Ytn2EF6lg DXeh26FANgG+/X3GUrlvpr6IhYVt2fbW977KqXcVDRnehOijmomHdjqGNGM2HmLRt3M4ksA7hL6Q hQ6532yDS4GZ+OipL87GQ2mh4aVQIrRbTzyEvpjMC0EN/ZMrmn40w/8Z04+HebqloKCQBjl+GoA1 lAZ29Vy/biNlZmZSU9NV120RjJplZmZRRcUauuXm22lkZJia2YrNWjJ5ZXt95qj1cEh/p6YOUJeH VUFd0PRWkZ+tsXrnE6VhtnvM+dkp4ImP4OFsVjEz1a4r9ei0hmczUSuwc3Y8FFB7Nuu02Z78Ym0M fWV9P31xXb8rrsxs95jzvlPAjodSyxYe299noPNbDFj7U6DsPcHACgA20xf9oaD398zER+9rmboS 43B23JibhalYxvTbWA3jTjkPyxsUsRBfxtZvckydCIP/rECgNElkCCwZdrN1mF24CLk2kK0OkEk9 nnho5YUAJ3AJ9FaJkGeYbegpkJOTw/Jyc+gfNMMTxLJN+uQmduMXl9MZbjOnJikwU1/EohOAd6vn hC/EEzkVloqGN75QzvtrZ+JhMHQM8G599KiyEJXYh963zlzpLQVm4mOgfVHvh4aX3nLE9+s88RD6 4rr0Efr6kSTfK528IyzANUeUg4aHhgmx11SCAt5GRkTyb97RCq67bscNClxzOBzU09NNCfHTFax8 NjvfmT+3lmtJSSPUm2D/zL6RKHr0tLtFBTc/oNLNesIvLkcqc/2VykE0oOrMzZMU8MRH8PCfTjl5 6C/vzvc46KkrDsOzEH9tdjyEQv1KY6KKC4PH+8vDTsbsv3PWQQ+vHpjzMSbEZAur6u14KA3sG3HQ k1VxzEP/V5VMXxRqhnY7Ex/9eTLG4f88n0ido5GuPgxe/vOpOFd11r5tPe+6MAx3BHSwzukiQ+TE j9PNBSP049OxM1po+vtqGRyP0Dq2eeKhlReQSb55Ksbt0VZeuJ00P+aUAvHx8dxnAhQ8g9Ri6ZOe vvcgPWbRVTNTX9R1jEDYbHgT2s9mJh4GQ8fAXGg3jof2rZZe7TPxMRh9Ufqh4WXovi1PPIS+eKUn lhNoRqoY//+3vesAjKpowhMCgRBKqKF3kF6kdxAERCkiIF1UEBUREFFRUQQVFcWK+lsRwYKdohRR qUoRBBSkdwi9BkII4Z9vLnt5d3nXwuUCOAuX17Z+szs7Ozu7m5YcXBE97bHjRyl7VBTlzJlLFGZR 2aPo1OmTPMt20KVMFy5coB9/mkEzZ3/HBx9E07NjJ1DjRs1o1+6dLv7W8Wapu5McR4G7fEjHh7xs ZXfsqJeTPRjpHGlXgtrmfDdb+L+91faTvkwjAl7pGAQaKs3SSJgAgnmjYTDaIM4xnrQ1VwA5Uq+B IuCNhhKXtsVAIc0Q/z7pmJZcBYH2aUk2FGG89g9cbnz/ZBfnJJ0wsONtXmmYTvkIBdb/tTTCWeOS IxgdYBCB81rfg5jOtRJVKNui0iZ9ak0oaGjHx9OnNP/dWENBR6CrtEy/OuaVhpxsREQ8xcc7tpAJ NBcsGmW8+3fTBmrRvBUv9WxD//ApoZUqVaHt27ek0hiaZaFlypSjXKyIwx5sJ0+dtC3AiRMnbN+n 10toOEOdZnqV5b8cr9Lx6qe+0lBpePUjcG2UQNvi1U9HpeHVT0OUQOl49dNRaag0vPoRuDZKoG3x 6qdjetLwilCubdmyiRYt/o2XfDai+vUa0bFjR+nHObNcKJeQkCB7slWsWEWWhQIUKOUWLfrFxV9G PZw9ezajktZ0g4iA0jGIYGZQVErDDAI+iMkqDYMIZgZGpXTMQPCDlLTSMEhAZnA0SscMJkAQklca BgHEDI5CaZjBBAhS8krHIAGZgdGkJw3D8uSNcdkorHiJknTosOtyzAwsuyatCCgCioAioAgoAoqA IqAIKAKKgCKgCCgCioAioAhccQgULBBDe3bvorTvCH3FFUkzpAgoAoqAIqAIKAKKgCKgCCgCioAi oAgoAoqAIqAIhBaB8MjIHGOsSebOHU1xZ+Osr66a+4iICIrOnUdORLpw4bwz31hCmjtXboqKysH7 tCXKXm3Ojx5ucFBpDvafi8NhrzccpmAcvuHwhZw5cnqNL1u2SAKemTIovMnv1XYFvYAdcMO+esb5 i7vxb66e6IDvqDMREVl5f7+LfFKtixGnCS55UTo64fDrJlQ0RDpohzm0LfpFl0A8hYqG4eHhzJ+j ffJnT+3YX75wueEDwe5K8hsqOpoyZ86cRXgq+lo7d7l0uNzwdnm60t+FioZZs2ajrFkjKEuWLPJD l5iUlJQKnsulweWGT5Whq+RFqOgIOKL4kDDIr5BrEhO1LQarioSChiaNiAhHO0R7zJQpXMYb7uW4 3LZ0ueHd83M1PBt803uMgXT8GXteLg0uN/zVQDO7PCod7VC5ut4Fm4YYT0Sy/gCjeavsEsxxwrlz nrcBg57p1MmTdM0o11CgGtVrUdMmLahokWJ0ig86OHPmlAiIpUuXpRYtWlPVKtUoPDwzHzxwnJVl OIPD3oEIRTiORg2bUt069Sl//oKEE02xPle+FS5GzZq2pJo1rvcYX3R0HgnbkOMokL8AHT9+nMPH hSy8fcmu/LdZs2alUiVLU60atUU4jI09IJn2F3f3EnqjQ968+aha1ZpUvnwFOnrsiO2pIN7CFwlB PXAvz9XwHCoagomWLlWGGjVqSjVq1KJwFj5PnDyRqm0rDQOvNaGiIdK5rkJFatK4ObfFGsxPmYbH j7lMZiD3SsPAaYgQoaKjyR3oh362fLnrKDZ2f6pBvdLRIOX/NZQ0rF+vAZUtW4GKFS1BxYuVpIus lDlx8rhLZpWGLnD4/RBKOsbEFBL5tU6dBjxJHCUyr/upZ0pHv0nn9BgqGubMmZPq1K5HJUuUlnZY umRZyps3L+3du8eZF9woDV3g8OshVDQU+bR0GWrZ4kaqwn1iZh57nuZx6fmEFMMPpaFfJLP1FCo6 QrHtjw5B26Itmby+DDYNMaFUrlwF0QVdSrok+/cjA/7qD/yl4Zq//vRYrmtOuXZDy9bUvWsvOnBg P1WoUIlq16pLq9esYiVZURoyeIQAAYu89jd1oHPnztG2bVs8ggNLpvsGPSgN6uDBA3ySaWuKiSlM K1f+ITOBg+8bTgULxogCr3271PGBqd7W5XZqxaef7t23h+rWbcAKozL019o/KXv2HOQpPKyowsIy 8S8sTeE9Fugq+lCJD6zo1+duGWzny5ufFi35VXKPGVhPuHkqnjc6hIdnoW639aDWrdqJELph4z8y GLTG5S280tGKlOt9qGiIGcEHhzxM2SOz06nTp+iW9p3obFwcbdu+1ZkhpaETioBuQkVD8MVBAweL wIlZpk4db6ODhw7S7t07nflVGjqhCPgmVHQ0FsZQdg++fxhdX7M2/bl6BZ3kGTzjlI4GicCuoaIh ZI+hD45kxVpxysGDeyhoTjNf3bNnlzPDSkMnFAHfhIqOWVl+HTTwASpTpjwdPnKIB/etKSJLBP2z Yb0zz0pHJxQB3YSKhpB9GzduJpP8aI8wGsiXj+XhxQ55GJlWGgZEOqfnUNEQq10eGvYYt72sdPLU CerU4TZKYKOOzZv/deZFaeiEIuCbUNGxePGSPnUISseAyScBgklDRNioYTPRnbRknQ0OwYTOBc4f /UEgNPRHuXZFnBYqpb+MP1iGgs5nNWsTP5r8PyrFAv7IEU9Q7evrUX7ukDKxsurd994UQRED8aZN mtPcebM9pgjt565dO2jlqj9o//59vAQ0N5Xggx7gECcs0ca/NFZOL83CCjGkveCXeTxL71g6Cu0n Zp3m/fwTzf7xBzkB9Y6+A6hM6XJUqFAR2/ALFy6g6tVr0ukzZ+jQodiAw1vT91iwq+BDoUKF6ffl S6mGm9mlP7i7F88bHY4cPcImo5fo+xnfUJ9e/d2DyrO38EpHW8jkZahoiKXae/fupq+++ZwOHz4k VmxV2foJ7c44paFBIrBrqGiIWcFlfyylmbO+kyXaoF+xosVcMqs0dIEjoIdQ0XHjv/9QVPYoVo52 paPMW/PkyZcqn0rHVJD49SJUNDzGFqNYerZ69UqZmDwTd1poac2k0tCKRmD3oaIjtkgoXLgoffHl pzxRESsW+ZmZz1qd0tGKhv/3oaIh+Ok7774hGbuOjQUG3zeMFi/5zSWjSkMXOPx+CBUNM7GRBZbZ z5k3i7Zs2URly5TjsWlpl3wqDV3gCOghVHSsWqW6Tx2C0jEg0jk9B5OGiDR//vz005yZ1KVzd2ca uPFHfxAIDV0i9/BwTRxokC9fPtZMRrMibK8Uc+fO7ZRwPl6s1uLYkiXpUhLvxRYtM7FgdhA+jMNs UPFiWAJRgmIKFpLXx1nI/OyLKbw0KZGa8vJPLFvatGmDfIMlXPz5c6JYw4v9+/bKvmrIg3GFWYGW jdPZs2e3vDoQu4/X/16iYpyGp/DFihUX8+H69RpSWsJb0zf5uBqvPy+YKwNtWTBtKYAn3Ey57ejo DcfDfCLuJ59+IMslLMm43HoL7yk/SkeiUNFw67bN9OakiQTrUgguUIJDKLU6paEVDf/vQ0XDdev/ oulfTaMqlauy5WFnypI5M23Zutklo0pDFzgCeggVHXn+irAFQuHCRWjJ0kXEGz2lyqfSMRUkfr0I FQ1h8YTZ3io8mIDlfp/edwo9rZlUGlrRCOw+VHSEpQUmLRo2aCJWweXKlqcVK353yazS0QUOvx9C RUOTIaxmadf2Ztm2BCtnrE5paEXD//tQ0TCWV1HFx5+jZmx80eqGNlSgQEEeR250yajS0AWOgB5C RUdfOgRkWukYEOmcnoNJQ0T6zbdf0sJFvzjjNzeexutGfwB/gdDQxOvtem1YrvEMAYR57GkGB0Ef SxywUd7qv1ZSnTr16I5+A2SJCgSNc8zwjGvW9AaCaSLcgQN76eNP3jefqChbUNTkvb8usEUa9lvL wqb1WDefcD5B0pDxA6eVidPCUk7jZONRXuIEQdW4MAoTM25P4c/EnaEXJ4wT79Wr1aKLAYa3pm/S vJaunnAz5bajozc6+IONt/Ce8qN09IysJ8wul4YFCxSinj3uYOu1g7TEbXZXaeiZHmn5kl40LF++ Iu+VUD7V/k7Io9IwLZTyHibYdMzLlmoYQMBcHvudok1nYYtydItGz6Z09E6TQL8Gm4awVPtt4XxZ kh0ff57uv2+ozABjAsM4paFBInjXYNMRB/xgxcbcubPp8y+niKK0K2+B8QKvtjBO6WiQCM412DQ0 uarAE/sVuG+Edb77QXNKQ4NScK7BpuElNuqAoQb27I6MjJJxo+kLTY6VhgaJ4F2DTUdfOgTkXOkY PPohprTQ0FsOfMWHsAHR0Ftiyd+uCeXaiRMnxPQdmkcI8zjJE9ZqWCoWx8ssf+Clf1gqmsAbSZ6L P0uFYoo4ofn9j8W0IXkvCqOcw0kT+XmWYc1fq2jpskXU9sb2dMstt9LipQvlYIPsvGwUaWA/EiyF OXX6JC/lPOiMExsAY/+gmJgY+ncTL5eJcpwqiiWmmFH0FB6zVFiqmNbwzgxcgzc4UMITbiiuHR29 4egPRN7CKx39QdDVT3rQsAALLj179JVTtKZ+NpmXVZ92SVRp6ALHZT8Em4Y4VAT89svpU1kJkyTL +W9s3Y5W/bncmVeloROKoN0Em46w8I6MjJTBRBm2IsVGtdjzaQ9vwI1+F07pGDTySUTBpuF5tvZf //dalpsO03m2zoeVRRk+DMrqlIZWNIJzH2w6QjaB7Lti1e+8j+wBpuk6qsf7/lqd0tGKxuXfB5uG yBHGA9i3OZYt892t1vBdaQgUgueCTcMmTVqytVoMjRn7GK+QOUGD7hlCrW9oS/Mt25YoDYNHPxNT sOnoS4eAdJWOBv3gXNNCQ28p+4oPYQOhobuS3C7ta+K0UOy9VKpUaTklAnsw1a/biGAaP3/BHFnW 0LNHP8Lyo928SfYNLW+UjZY3JW8qeYaVb9gjBj/MuMOVKFGK7h80lAd7l0RJB8s2LCtdwoo2zO7W vr6uWKHhJC3M1mN/tj95nxLjoHSrXq0m769WmJesxVITPs0wO59mOnf+bLGuswu/dt0aqsWbQOdg pd2OHVsDDm9N3+TjarxisI39QurXb0TYz277jm2iqIR5tR1uptx2dPRGh8TEi7K3EwaC2OtuJ9Mw ng+6wMb4xnkLD0WsXX6UjsSnWoWGhrAGHXD3vbKMacbMb6Vt4TCSOLYCNU5paJAI7BoqGuJE5tu6 dJcl/dG58zAPrMsKmqO832WKck1pGBjtrL5DRcfsPMmEU5Ly836kRfkUZRwABB65afNGWRqDPCkd rZTx/z5UNMTWGAMHDJbTlrG5LzZU38ayiHXzXqWh/3Rz9xkqOqLd4ST7pItJQsvGjZrxIV7xPFG8 0JklpaMTioBuQkVDHLpWqVIVanPjTfT9D9/Qjp3bUuVTaZgKEr9ehIqGOBCmPJ+8vIPHFtjHuzKP I7GiynoohdLQL5LZegoVHbHljDcdAjKndLQlkc+XwaQhEoPciXbXjCd7sYoMExPnz5+Xg0TsxutG f4CwgdDw2LGjCGLrrrnTQnHCXOVK1WSfiaK8L9oiXh72B2+Mjw1dsUF2wwZN5QSz3Xt30YwZ37os 2XRH6OTJE7whc15qUL+xKFCwnxfW8a5bv0aOdo3kQxEasPKnVq06stT02++/EsKYeKCUQxw1qteS wwxwasycubPklBgQxS48wnTj006xqR6E2UDDo2JcC645L9PtcuvtYuEHAb8ab3B+4sRxWsfKRzvc vJXbGx1AUxxkUKliZbGsKF6U98PjU5lWrEzZm8RbeKWj59oWKhqW4mPO0a7j4+NFsQ7mmSNHLlrP inTjlIYGicCuoaLhCeaTEF4aN2wm/BRK9Fmzf5A9ZkyOlYYGicCvoaIjTpREf4sfrGVwOtP0r6fR kSOHnZlWOjqhCOgmVDTEBCOs7Ruy3GNkm+9/+Fplm4Co5dlzqOgI2QRbmICOOFgL+/1+98NX3BYP OTOnbdEJRUA3oaIhMoWJJxgOoA2CXu5OaeiOiH/PoaLhITasKMp7aTdp3IKu57EiJn5n//g9bz+0 35lRpaETioBvQkVHf3QISseAyScBgklDRNi5Uze6qe0tMrGUI0eUbPkF46etvI+zL/1BIDRc8Mtc jwU2yrWwPHljXLh2cT4V8xDvXaROEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBOwRKMhL wffs3kWZ7D/rW0VAEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBHwhYAq13whpN8VAUVAEVAE FAFFQBFQBBQBRUARUAQUAUVAEVAEFAEPCKhyzQMw+loRUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQU AUVAEfCFgCrXfCGk3xUBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAQ8IqHLNAzD6WhFQBBQB RUARUAQUAUVAEVAEFAFFQBFQBBQBRUAR8IWAKtd8IaTfFQFFQBFQBBQBRUARUAQUAUVAEVAEFAFF QBFQBBQBDwiocs0DMPpaEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBHwhYAq13whpN8VAUVA EVAEFAFFQBFQBBQBRUARUAQUAUVAEVAEFAEPCKhyzQMw+loRUAQUAUVAEVAEFAFFQBFQBBQBRUAR UAQUAUVAEfCFgCrXfCGk3xUBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAQ8IqHLNAzD6WhFQ BBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUAR8IWAKtd8IaTfFQFF4D+NQKmSZSgyMvt/GgMtvCKg CKQvAgUKFCT81CkCioAiECgC0dHRdHP7jlSsWIlAg7r4Vz7kAoc+KAKKgCIQMAKZAw5xhQTImTM3 3dCyNS1fvoxiDx7IsFy9NP41WrxkIc2c/Z3HPPjjx2Ng/lD7+roUHZ2HFvwyL5U3dIQ339SJLlxI oJ/mzKJjx4+m8mNetL+pI/W8vR9dvHhBXr37/lv0xx9LzWcqU6YcPTlqLG3fvpWeHf+UvB949/3U tGlLud+1awe98urzdOLECWcY3CDc0AcepkKFisj72Nj99PpbL0s8r778Nnf2xSnp0iVKunhRyvDB R++4hLc+lChRkp5+8nk6evQIjXpyBOc1UT737X0Xde50G03+5AOvWFvjSsu9L4wgwCB/mTJloqEP 3StJ9Os7gNq1aU+JnNe4M2dowsTnpezW9K9mjDp1vI169byDpk79WLAPD89M99/7IDVu3JzC+N/m Lf8664WV3sDi1ddfpPV/r7VCEdT64hJxOjyUKV2WHn7ocZo7/0f6YcY3QUnhcvnBLTd3oi1bNtOm zRtd8gMFYGS2SHpg8HCaOet7oUtc3BkXP9aHQjGF2e9DVPG6SvTJlA+d7Qp1ddiQkZQnTz4KDw+j X39bQO9/+DbfZ6bhQ0dS9erXSzSe+AHaUI/b+1DWrNnE38qVv3M9mEBFixal0U88S7mYd3O1oQsJ F2j6V9Noxqxvrdlyuc9ofgBMhwweQQ3qN2JMv6OPP3lP8gcsRo4YRZUrV5fndetWSxnBrzre0oXb Sz8KYx5x+tQpeve9N2nVn8tdygWMrzae6am+gEZWuh46dJBeeOkZio2NpUcefoKur1WHkpIuufAJ KxjBrC/WeK+2+0EDHuB2EUbPPj86KFm/XD4TLLkDg/3hQx8VOeBSUhL9yHLKlE8/kH7Ajs/YFR7t xV02sfpDH9y+3S3S5qxpuNdNf3hOh5tvpf53DKDvf/iGPp32kSSD9j7+2VcoX7789Myzj9Pu3bus yafL/aCBQ6h5s5Y04ZXnac1fq2j8cxMFMySWievJyZMnaexzT7jkpVePftSpU1dnfsKZB1l5u/ng CS+UvW+fu+gS/4M7cuQw9+3jU8kzJh5c77zjHkKf9D+WJ+fN/0k+gVc8M+YFij93ziknWcMEeg+5 6/FHx1ChwkW57Jno73/+YlzGi3wIftu9W29KSDjPzScT/e+DN13kWqRVs8b1dN+goRSdJw8lnE+g z7+cQj/+NMMlG8HkyS4Rh+AB44CnnnyOTp8+xfL5Sdq7d3eaU/2v8SErUL7amJ38bw0fzL4so/mQ J75tLa+5dx8jAKcRwx+nkiVLixerfGTC4BpMPhQKvEy5ypYp6yjX+hQ+1KBBY0LbuYSxLvdzdnKf P7KhSaNC+YoiJ1tlSPDaDrfcShcSHWP4nTu20XiWtdzH5FaM9T5jELgsy7U8pXNRTKW8Xn/w482h U4BlSIvmreWHwYy5h0BjXOVKVaQDh3+4MqXL0I2tb6KaNWuz4ilaBn4Q4m9q18Hj7C/iQ4U1ViiI C8IXHOJo2aI1NW3Swvkd793TNX7btrmZalSvhcc0O6SP/CLfpqzIG/KAvCBPeG5Qvwm1aHYDlStX wSWt/PkLEJRfzZu1Yiza0e3de4t/hAGmVod3jRs1o8+++IT6392Tli5bTF06dbN6odu79aLz5+Od 7xo1bEY1WCgZ/8LT9OCwgZQ1IisrNNs4v+MG+R5w130y0O/VlweV/Dt0+KDkC9+g9Jvy6Ud0e8+O POAaK/SqXLmaSxzuDxCSULb69RrJJyhSq1WrKYKD8Wvo1bBBEyd2+AZ6QtAD3eBQbtC8MCv+2t7Y 3lk30opRl863U/aoKMbpvMQP5Uu1qjVEAO7XvzvtP7CPOndMEW7hKaMwQhmtdQn5AC6mDeGKOmWH hRSO/wDPltw2T506aV4JXUqVKkvDht9Lg+7vRxFZshDqStGixcTPixOeFXrfNbBXKsVaemBhMlal bCLVr3rB4w/ffTl3zHbxIOq1NybIoAF41apZx/kz7RFlQhsGT0C9TKvzhx/AD9pgvboNnHQ06VXh djX6iXFUvlxFbn/3cXtvKp880bdP7/4shO/hgdM2E4VcWzA/2cPv+/bvShNfe4nq1KnPSqRqVLVK NSpVqgy98OIYupN5CPhBwwaONEwEaAu3tO9EH3z4jtSBUU88ROXKXkc9mDfBnY2LEz4AfjBl6gfU 6oY2qcph4jLXjOIHSL9rl9spS5bM9NfaP0125NqpYxeKKVhYefgQowAAJNBJREFU+OKYsaOoRPFS 0i7QXtq2vZk+mvw/Kf/KVcup/U0dXMKmRxvwByP3+oW6CrqifsChPsNPoPUlT3Reoeujo4ZJmYcM HUj79u1lZUcHKlKkGA0Zeo/wCbv+Iz3qiwG7YMmqVPy6Bh5/+O7NAQf0HeCZnVlhAbwqVazsvEdY 0Bt8rxlPQFWqWNWjfOGeDuK28mZ8nzLtQ1ZQvCk0yGg+g/wFQ+5AuTrc3JkOHNgrdePNSa9S9Wo1 BDdPfAZh3J27bGL9DjkQ/PDpZ0ZJGq+9OYGaMz3wHi4tPOfs2XMs+9QiyB5wkEWgmIm3yEemPVnl QNMXWOVQ+EM9gT+rfIn6ZPpMScTyp07t+qwQqkWnz5x2vgUvBd/Eb+GiX2j7jq0uijV4/OyLKU4/ k96eSPv376O161c748CNL7x27tzmjGPnzu2p5BmXyJIfgFejhil9QSPueyKyZHXKSXa4gN8AFzhg cV2FSiIrARM8Wx36mfDMWWjwkAH05FMjqUjhYlyPaoqXJo2b8cTXVwR5Y9nvi6h1y7bWoHLfsUMX WrJ0oZTr+x++lryijhuXHjzZxF0t7wVqFJPg8Yfv3hzyBj4EWbPLrd3FMg2KD3OP72VKl2PFYhgt Wvwr/bNhreCKegdn+Bj82TkzxjG0MHwI4cCfDS/CvcHMhDFp2MXr6x3icueBCGPiRn7gJ1A+hDjs Vht44kPwb5yvNuYu/5twuKZHX5ZWPoT8AL+0joUQ3h+8TDruYwS01xxROUQ+eurpR6l4sZIiP8K/ cenFh3zxbXdcUIdR59A+8AMfMrzZnQ81bewwNOnb/3Z6/MmRIve1aH6D9BPdbuvFBi4zhA/ZyX1I 15dsCGzuvvNemSjof3cP4VfLVy7jyZ6BhAkLuNWrV8r7Xn26iNFK+3Yd5b3+ubIQsOe2fuSx0f01 qXQjh6WSL++7VxygxW+ssfV2S/vOwmBhhVGiRCnq3rUn7du/lxtjCbbYqsOzZi/QwAH3s6BRm3aw MHHbrT1p6mcfUbZs2Sg7M94K5a+jgwcPskVWb+l8jxw5JJ3ORJ5t2/jvBpc0YTkx+L5hNHnKBzIT iLSLsvAPS6rHHxtDB9jiKnv2KBkkQ1C76857UqWL2cL77x1Ke/ftpmxZIymmUCGXNPx9gPl2t9t6 8gzcOrZ0uFXyOumd1+iJUc+I5vvs2Ti6lZVf77HFSIECBSh37jyEwfPWrZtdkojgAS4UYmGZwigq Rw751rVLD2rdqg09/8IzTuuWc+fO0hOjH5bv6LAKFSpMBw/FOuMCo8ufP4YHkWuoACu24EqVLCVK FYPjlq2bqDIPIL6l6c5wGHDnzJmLfl4w12llNumdV2Xg6fSUfJMvnyPe+Phz7p9cnhMSEkSRVosV pxCW0GmFh4ezVd4x8VemTDl6ePgoVgDs5jwXFE3+aGbgd/S9m5qwNdU6nk1AJzhn3my28NnElicP 0fETx+j4sWPUs0dfeuvt13ggVCVgjJAPKHOhmKxa2TEw284zByMfHSL5AvODhSEs/6wuIzACI39s 5FN09NgRzkqYCMiwRhRBiRVBb7/7uljO/PLbfGrIylv3+mLy37VLT9q9Zxcz9pR6XoXLfvhwLN3G igcoQb+YPk3aEwTALBERLLy3pVs7d6M5c2exVedvJiq5pgcWiPjlEaepY7MEl7TsHuYsi6AHX8xp 90k6Vvf2N3nK+1yvBgjPKFy4iCiDELhggUK0adMGnjUaS4+OfJItGgrwLP8h6npbD3rjzZdTKRVt E7S89JcfzJj1DUWx0FKyRGnu2EsyHQ45Y8nMSiBYVJ6LPyvvjCBsxw/g4eWJ48UfLFysDooh4yCk wvrgGFuSwkL4gQcHyicIHeGZM4sQYPziWqtWXbY6PSxCPp7RFp5/8WncpnLALJGtWePjHYrqVB6S X2QUP0Dyn077WHIBqxmrAy7gP5gxxO8w0/66ChUpLu60zFru3LlDvMfG7uNBdU0ZREPhBJcebcAX Rp7qV59e/WnXrp0yUMfs88TXXmAr3Fts+YGn+pIjRy7KzAr2Pr3v5DaUib765gvasGE95cmbj06w JbWxLD995pRgJCAk/0mP+oKob7rndapUv5M1Kdv7zat+pFnv3G/7reJ1laXvgDwCdzMrjdHeLnKd bd2qHT373Gjq1/tuKlu2gtB/yZJfmT+0TSVfGCtwkwgEeHc+8/wLYyQupIV+GUpnuIziM8GSO1DW Umy9sJb75KdHPyeWUC+zJRbqhCc+Y3AyVzvZxHzDtU7turRx4z9OWQfW+LC4OnnyBA/OI61ehU/7 w3OOcb8J2QoKnKXLFkobPsh5FqtbjhFWCnf1H0SbWW6F/LaZ5YwPPnqXRj/+TCo5FMqBZk1voF27 t1PuXNEsr3ShcVx3Bt79AFt2lCIMPq0rDoAZlLmr16xiXlHdJf94gIIXfe20zz9J9c28QByYhIHV uLuVnTe8GtRrbKIQxUauXLlEQed86eHmAE8qQhZAvmDJjnyjvJDRoaC0w6UYD7jBc9BfYvAIPoRJ PFhgQS5+861XnKlB7s7CPKYI98ExybLIyVMn5PsZts4uUCBG+kXItaC91YFX584dzf3MWRr3zIu0 bfsWem780wSZ2Lj04MmIe1KTU9SltPf+Df5m7YqggYscilw8Wx3GLcOHPiIy8Sm2hIaFzhHuj0+e OM4TWZ3FYrACKwTMeGgHy6QYW4CXwNIafKx/vwH0ymvjU9WF3rwioRFPuv/Lsgzq5dfMu+vXbShh Fy/9TSwCs2fPTlE8LkJ/P+65J2V85D4es1tVYy2D+70n+bQNj0Os+Zk3b07A4x/I6SMffpJmsUX8 9K8/l6S98SH3vOHZro3Zyf/WsOnRl6WFD2G1CHjT5YyFAsHLbozw05yZrGiaKfAUYWtTuAuJrpPb 6cGHfOFlh8sinqiAlTDGQlAI1uLx0XvvT6IRD41KxYewQs2sUkMdhoOlfvHiJXilRgT9veFveffn 6hXUl+Uh+DH8F5OQsGjzJhtiYgETtai3hj9NnTaZlvLEwEmLgQMSwTgdK1WsEz6SuP65IhBIk3It a64IKlEvxu8CFK9TiHIUiKQzh+2VKkd4MDbhledkOQ1mv8a/+Axr3DuLpVV5Vp5BqYRlSevWrRET dMxKfvjx/6hN6/a0eOkiVqasoePHj7CAe5gtlArLMh4IvEYp5CujeXkQgI575ao/6HcWzLKygqAM m33apXucB1KYMYQwjMHtoyNH+4re9vsKXir111+reWB2nLp168nKmuqUN29eUVRBoTSLl3VhcAzl SN06DSiRGdOMmd+6xAUh4h1WksAUWZaFzp0tDXLqZ5PpMxa8ki4lufjHAwTVfn3ulGU6MFuFi2bB o82NN/Hyr3ncYFPoimVdUPIZhzy4Owg6GNDHnz/HYQvS3XfdK0snjh49yjR6h3GN4GUGdzqWSfHM 2sJFv4oQ5R6P+/N6Fq7qXF9PtPWNGjURS4hCMY68tWMLoZ27totyADR4iBVtmFmGMgcYXUy6KJ1L eZ4ZhXINz5/ykkbUk+d5aUflSlVl0BwIRlDuQeBdu3Y117Wj7tll5W5f+X7s2FFasfIPl+8ZgdHh w4fppZefZSFpH9efetSn152sSC5OX371GaFNjRj+mGA6+8cZMli0w6Jpk+bcaZRky60XafC9w5xl KlgwhirxTA8Uqmd2nuHlFkNYwJvE7e8gK7oPsPC6lTuaSBGYiZeXYNm0cemBRd7cSdSukW/FGvLQ psF5KhaTnfYeDDdZcl7t2l/2qJTZbQgLqGOYBcfg+ovpn0q9Q70H/8KAEUp6zMa6L4V1JuLhJhB+ 0ObGm2WwisGX1a1jxfhWXi6KCYSZs7/nuv+vfPbGD6zhrffo5B9hARWC0RzmK+CtxqEt3HvPg6JE Q3u2uhiuG+dZOQ6HAWgnFtiheFm3fi23/Z9l8uIRVkbyDILMuv0w42seNKRYRVrjst5nJD+w5sPc gzfvZ2sc4y7xske4v/9ZT2fY2qR3rzvYUmIRWyDfKOUHZsalRxtA3N4wsqtfWMI6lZWHmCyqVas2 zWU6Y2C2Y8d2j/2HKYP1ij7i0MFYVgaspLJlyovS/tXXX+D+bRU147YA5TSWzOPbFrfJofSoL5E5 81KF2g6rJWs+7e7LX9+OcucvTieP7LH7zMrjBPpy+lSK4zIOf/ARGXxCgMcyR7MNwvp/1tJrPKDB hCCUa76cHZ+BDGTclcJngiF3FC1SRJSsTRu3oO+5rdev15CG8dLy58aPEWWBNz4DPDzJJgYrXLFU M5brHxwsxm5o2Zqnk8Jowa/z2YpnXZp4DiYsQZOGDRvTtm2b6brrKtFK7tfrseIBri3z4CXcr039 7GPZtgN1vEiRojJp5S6Hwj+UZ2OffVJkD/Dn0qVKy1YK+IYBl9Xd2rmryFSwQrJTrkFphr4GbdqT a8T5xrJ+s4zd6s8bXvAH6+TPp34nQU6wgvKrZAWFNQ73eyjOIWcBH0x8QymM/EFpBf6AyTx3XGb/ +INYiTw07DGZ/Jz+9TSWrY7RfYPv4ugd/NSks3HjelaWHqcxT43HymlaznFDGQeHrWF680AW/S54 rxnUy0f+gwnPmIKFqD4rOWf/+D1vo9KRYh4oTC9OGGe8iMIu2HJsvmwX6ZYSvhVryER79lc86iLt iUvpJ5yZ45uLXEfm/TyHFi5cIDIsJi1ncVleeP5VsXRdtHgBy8t1ZTwE5aa/riBbXx9iZT76gfBM 4QR6Q7kGt23bFrYGfUys4oaxcm/uvB/ZoCCb7bgoUOWaJ/nULj+5cucKaPwDxeydd/VwGf/44kPu eLm3MV/yP8KnR1+WFj4E+f5yx0L+4uVpjGDwBP/G0s9/eLJt40aH4sl8Sw8+5AsvO1ywNcm3309n w4t+snUR5GUYktjxIZP358ZNkImEVX+uoK3cTtA/XEy8yPznlHjBBJy780c2zMs8O5KV2Wbc/SBv twTF3Tme4MZWCnBQ/oE/g1+BB8JKTt2Vh0CalGvnTyXQqskbqET9wpQpcyavpUpKTKLdyw94VKwh MGarIGA4KqRjvTIGK9yHymwUZp2w51ZSz0TZU2Hv3j3c9SZ3vjxIy8kWW3fdOUg0vpj1xYAYwpW/ buO//8gAEoPm/v3u4UHCCvpt4S8y2+WeLqxGoLAQDfSuHWy272hM/qZl/NWp3YBnhXrJkoVzyZZc mBX/5tsvxBKrw81dWIm3hSay5R4Goigu1nK7O5T3E7bEAx7m+yVWql1M7VWC/rxgDv3y6zxRZHbr 2kss4XA9Hx/PypZ9LFiVpQjWwJfgBn2el2fCks84zFy5u4Ms1AILdLoIP5Nni0ryTGFb3oMMWnUo /cCsIEiVZrP2oUMekX1EfmHB15vbvPlfsRps3aotFStanAW8L6hTh1slSJ48ecVy58Xxr/JzmCgU UeZWrPC4kf3DSg1QHUm26sGykGOsfEU+IXyhowwUo+Zs+gvGN+/nn3jZ3XUyYC5XtrwwVmTqCx6A Tf/6M56NHix7ljw15lHJK/5kBEZYBjvkgYcoV67cYm2RJSKLLBtITLxAf/+9jrqw1dm3301nocWx JMG9vqBTvLVTd7ZkXE15ovNJeXPnzi2DHTB60GfKlA9RLWX2vRov9Zn8yfsyI+yoh2EygCjLSwKt yrX0wOLYyUw09t0ouqnJeYrI7LndJyReop+WZLVVrIFOdu3vS1agGYdyYXCI2VXUaSgRK7IFJISE 4cNA70vS4e3Zs9sE8fsaOD9Iae8mkbM8E4/fON6zCXn1hx+YsO5XWFkNH3E/K0TKETp4CFG/sWAP h30f0AZfZKs9U39MeMzilS1bTh43seXwl1xXmjZpKfwELyE0vMNK/bW8zLJB/caEmXPUxw1ugpeJ z1wzkh+YPFivmFWM5plI42A5DAeFFSwuYLnZjDH7fflSGXwfP+6wsoCf9GgDiNcbRnb1C2E2cTuG 1R34xZJlC5PrzCWP/QfCuDssmV3Le86hvmHGG3tTlWMeCZ6PQTWWl6CfxOTGed7vyOrSo76cO32M fpn2FFWoczNbW2S1JudyfzHxPG1eNdujYg2eIayfSlb+mjZlJq2wDAsOky3oW9AH++Ps+Iz088mB kc6Vw2cuT+44x3IFZAsMvufxvpUY+A9jJSUUrag33vgM4OjVs7+tbLLbwmMxkQerHThYDKB9QUEF S3Io19LKc5YuWyKTZi1ZWYeJRQyijHINFl316zfk7Sqqi6wJ61VYyfXmvRZheeAuh5o6groEhW0m bieoM+4O+19im48Fv8wlTGJB5sLKBcSNfrdq1eo8sVWNlSEfOfm7exyQb9q17cCK/rVOBZTVjze8 MGG7c9cOwvI4OMgzt/N+ZlgN4M1BXse+klgOhrweOXpI5DCE8SSfo55DvmjYoBHLCL+KYg3+k1hJ 5+46yxYmYdTvzu48AZ2Tnnx8nFgM/rl6Od3M24B8yFaDS5b+Jsv4e3TvK3wN+4/BJbAMevbsWZ5Y nEqreCAKS7feXK8g45p6lB48+Wh8OD2+Igd1LMVyiZdhUgJXgxk7s3pUrKEMF7n+YR9i7LUE2RXY Sf3hK8Y6eBbHV+e9443Xvxhv9OrZl7BX7vmEeLbYedvpH/HkZvlxAG8xAcMGKMexTYzdeMwZyM8b T/KpbX5QNvw3ZbSkYT/+Qf/lWod88SFLlLZtDP25N/kf4dOjL0O8gfIh4HS5YyF/8PI2RoCSFnzo 3kEPyvj+o8nvpaJfevAhX3h5wgX1u0vn7iI/L1/xu+T1klsdQtzGYaUUlPaPP/a0jNeh0A3PHM6W b45VMSi7u/NHNsTkwjnmVWbc/dPcmTLBjRUxWCEAt+avP9kAaQyPNcLpsUdG8wqiHjK5556ePmcs Al5YvveMbVu4h36dsJIWjF/u9Qc/8OvVeZFJMUuMDf1mzPyGHh01nDvIabSQZ/SsDgqhXGxuP2bc KHqd90fytMwIAxzMrmG2FJW/NO/bBgeLnkTe5H/EyCH0Bm/EX6Z0ea7ckbbpIj/Y+wDhYToMxUNa HPZoWrz4Nxoy7B4emPwlSkMwKyhD0HCgnMEAFhZCvhyEfWvHA+HGbCRpwqLM4597VYQfKDHjzp4R az0o0iLYUg/acgiG1avWFMVV8+Y3smC2Q5ZBQOBD3irysicImFa3Y8d2ZgZxzhn7DRv/kfX1EGag hISD4IU0IbglJiY4Nzq3xuN+DwEUgpfMRp4+TX/wINW4A7EHZAkv1rwDq19ZUQeLMsySfs3CApQC +/d7qHPJdS1QjLJnzyEzYd2YkTVkixwsk8QyIQi7L73wuix3ElxZcDPL8Ux+MwKjyrx08wJjOHBQ P/riy095RsZRcNRdYIqlM5jlB13tsMASDwxKqnH5+vS6Q8oLSwbUx11sNQgTZwwwcvMP91CQQwHz 3NgJMkucgxXe6AywF5TVpRcWX/2cje5+Jjf1G53L4w/f4c+Ts2t/ZXgQaBy+Q8j/k/c8+P2PJdLm cHgHyv4xCw/gT7AEhJAfqAsqP8BA3yKI2tHXW/6wBOWeAYNFeMeeP6g5pk5jf0Usj3j/g7edy7St cUFJhiU6qGPH2SoXAzUsLzem8fCLDcfRVmTAybwLVsO+XEbwA295QhuApRLqBNoUBsJYBoUBG2b5 wdOfHvs45eelr7AMsFrnpVcb8IaRXf1C+bBcFO0XljDYMwQu0PqC7Qsw2MVMapHChaUvgSKgXdtb qBtv8/DmpFfYguZ9KsxWkJgRtrr0qi9/L/6Svn2tP331ck+PP3yHv8t2yX2KJ/nCPX47PmPt568a PuOH3AFFIqzvi/IEGXgSJsogO6E9eOIz1vrnSTaxYrqeFT9VuO/H0jgMcGHhlC9vfpY/UmSAtPAc yBxYetiMJwfQntG+jIOiY+PGDcLz33hrIv268GfZaN+jHJpcR0x4qGVBZ8hlVgdrM/S7WNKFdoVy tGJLNWxfAoeJHcg2y1cscwaz4oWXsJZF3wxlpp3ziRfTCfwZvxOMpT/8GeksW7aYeUAY7z9al37/ fYkoRPDek3yO8mNPKPSnUFpCzoQDJvhmddEsC0PRjclaLBHFPcoNGSOCV0eciWPLOfQp3Ocgv7Ce M/HsZUUs+jEsT0YdxNXhN8ViOr148mfbIqnXgmjqOt/zD9/hL5gOOMCSEq5cufIeZW5YOc2a/QPd PbC3KLrr8v6qVteVl5fCfTl9mmDnz3jMGt7TvSf51Fd+7OJzH//AD8Y/qB/GeeND7u3Hro15kv9N /LimV18WKB9CXb7csZA3vAzf8jZGAI8fOeIJGc+++783Uk3CAq/04kPe8PKECxRUmJjGATCYmIEz /EMekv9ghRJWp2BiDXwo6SIblrARCXgMJg7RD8Fdz1akUO5D7jV4+SMb7t23R2Sxli1aSf3FNlBQ 4sGIJPbgfombG6LwL/DCU9w/RWbzPIHoCKB/MwKB1KZIfuaC6YupBD99p90bKif2vMAmf7CwwiwY 9ppYw0tQMCB44P7hBO0uZnMeGTFa9h7DHgF2DgLdRlb+wPwT+xbAYgzWTZnCw9ji6SbegLkjW8pF 8f4DG1n5sEwEGvd0YbkES443Xv2fzGbiFExfzro0En5hLo8ZXFinYe8CpAlrq4ushMLGvJ063CaK nJM8G/ovW38kJl6kJqy4GPPU87JXBwQDb67Lrbzn2g038n5Q42RPEPjFDPG/bKGHJUB38klYkWyR 9hUvEcR7KBSN699voHTKMBOHdFSrZh167NExQmucQDR3/izjVa6Yif2IB06DOd5pU76Wd2A67773 BjOARBZ0UpaF4iNMzf9YzoKXH27FiqVykMNatnhAXMZh00ic4PjW6++Lld0e1BEW5vbu3SOzD+gc oSzcsX2bCZLqGihGn079iKYmG0VhyTKE3zcnTRSlKAbPTz4+lpfG8ow0M13301AzAiPsKwJLzDde fVf2QYMAipO0unfrw0qAXWJRMurRp2RWEktqWrV0rS+wynqKlwQYh+UH2BD4D16Cgf22UC/eeuN9 5vmZeA+B7bykeD4ro08zLi1owouvM72SZE8q9yUa6YUFmqEfTdEUx/Zq1/6wz6NxHRhP7F+CPVxg UYnl4U8+9YhsuPsILw/HoCgzWyTAWsebc28TgfKDTZX+FatX8A1YTPpydnUdYWDajo2QMRDBUqAG bEHwxOiRspzxnoGDqR4vtca3v3nfnvm8JKVF81ayHBb7ao0b+5IAjmXYn7Py1jhYL2AgOJCVc+A1 ELIwq4clLLA4wIycWRbKFZL+ZLN6mMv740LND5AnKAAw8MP+SzVrXi8/LLeev2CeHAbw2sR3uQ2E CUaLFi8UIRJLIAbdM1iWRcfxoA7KJatLrzaANDxhZNffQCmI5S84NQ974w1liyIoxLAXnnv/gbg9 1ZdfF87nutOEPnr/M1HEor5gw/WcOXPIxuET2SoCDpY07hbL6VVfRLnsZeZZMhTkP57kC/dk7PgM +vlWyRuxXyl8JhhyB8qOCQfwk8kffi7taC6fKIm9SrFs2o7P3N69j7P+eZZNUlCdw8vVoNB/hpcM QmbBwGcpK3p++fVnlmWKpJnnQOaAdR32IES7wgDbOCy7v59Pn3zrjQ/Yai6KlW9rmA9+4pccauIY wIdRYZ9h7O+LiQY4DAyN4gxbXsAiGls5oD/GRF7ZMhXkBFPr5ImVv2MJKw7DgqWZWTZp0jNXb3jd xO3fuiwUCkVY5PvjsGfxtm1bZQLud5YTsH0LHAaFdvI5FDeJiYksf06UQ7H69rmb3vtgEo165Cnp E97iAxmMm8mT69j+A3UIFhuY1PqJt2jAtipQzo0YNor3u+SJzWS5Fv3waFb4o29BPFitAQs88DfI Qug3rRMe6cWTIZN4l9ZNCYN7xRL9e+8ZQu+/O4WVBuecpwu6p4ItCrBtC2S3qBxR0s9DmQuH/QZR l6Dgfvftj8XiD/vj2Y3H3OO1PtvJO9gP2V0+RRi7/KCOBDL+QTt5+KEnWGn4nSzjN3nxxIdgHWv6 uwhe4WHXxjzJ/yZuXNOrLwuUD8Hq9XLHQiiPJ7xGcDsE38JBTp7GCBir44R1HPw26c0PZWJi6meT uX79hKjFpRcf8oaXHS7IZw0eh7//4STRL8Cq9ciRI3IIl+EfJs8reOsobHfy4XtTnXwIq7XAP1Df cNJyGz44Dw77tsEZPg+8fMmG8I894bFP+OQPv5AJbvBg7P0by0YlcGZZKO5hhWvSwbO6KweBsDx5 Y5j9p7jivAEfTnsMlcvEg3NWykolglCEXxJbNrjfZ+aTggrx4QH7eemhmanATDkCo+OGf8xIHeSZ S2zAXZk1yA8+MEI2KDRlwUAQlm/w6xiIO4qO9BAXzH4RNzpskwf3dBEXwsOsGaavmKE3ZtomHfcr 4kYY4yAY4QfLNAyQsZwSQqHJBzTVwAX7dJh8QDFi/Jh4PF3hF0oeg5PxJ+95ZhFlR3YQt1VIgz8r PeQZeQeB2GHZC8K4O5TN/MQfx28wsSu7XRzWOBHG5At5tsZlsLOjF95ByEZOsaeD5JgLi7yZNOGH P+N/mjEyZbXGiXfAFc7k1/Hk+GvC4AoHv8Yf8mTeO77Z4ywBk/8gjDeM4A11t3ix4nLyIxSySM+k g7wLFuwPebGrL8lJycWkZ9K05hnv3LFwYJzy3hpXsLGwxn259yiXtf2hbMivo9xhjJlrOzY4wrIL M1SwqjR09ZQXK3bwg7jx85cfoI1iGSLSduTLU0qO9574gV0+EKeDPuA3Dj6BNMx7hLE6uzwgvNWf CY9wGBglNwGJxvrNGq/1HnGZcoaaH3jCCPmTbza80cpnmbpO+lrLFOw24AsjpO1ev4BpSt129GsO nJl+TCT3/iMtWHjCyB0L+DPOWifSUl9MPJd7NTRCHYczGCN/5h5+wOuAlfHjwBRPl2TPrCEe5BAr n0EaggH6BQ55JfAZR/lBF3s+jhJanSc+Y+IRzsl/kngS0fRFCAMnMDr5jL384i6bWNM2PNG8u5w6 5Mivg7+avCO/cHg2vBD3KXLgWXkPGlrlUNQLkZ+k3Cl1BPlDeDhTv+TB7Y+pZ8Y/wuAeP+PccZd6 xB+9xpvch5g4EJ8plwkv35LrtjU9E8ZcrXQxYU1cBi+8T4WLpfwp4Rxty73OIR75gd/yf5Nf5AFh Hbg46hHSxnfwDhMPviOfQA3JGj8Ib5wzjeR8AWLTl5s0jF9r+uZdel6RPtJ0lMv3vbW8wABu3DMv iZW1yaeZHDRjHIxDTLtEEE7NwZOSAxg88GjCWMdjJl73qx12KIedfGqN2+QH7xx8wl8+5KC1e//l oC/GM4jQyodS+I0jrdRtDO+NM/UEdcjdCe5MK+Os9STQvsyajsl7IHzo8sdCaHOp8QI94dzLb62j 7jigPrnTA3F44tv+hkccxvmDF/LoCRfQCg7x4N6uzpk0DE+30tfxzUp7w4dS8BJezbK7IylHezbp mnLg6tJmLNilxiuFR1nD633GIVCQdRAw+Mlw5VpwIQDbTGkgwhiEkzpSsetQg5u+xqYIXGkIpLSJ Ky1nmh9FQBFQBK5lBIzAnTxel6KqHHItUxxl0z7XnsKKiz0uoXnrMmDnJK2KgdDkwC4VrRN2qOg7 RUARuDoRMMq1NC8LvTKL7VCsIW/oOLxtSHhl5l9zpQgEG4GUNhHsmDU+RUARUAQUAc8IqBziGZtr 94v2ufa0VVzscQnNW3dLo9Ck6isVrRO+ENLvioAicPUhkGLDePXlXXOsCCgCioAioAgoAoqAIqAI KAKKgCKgCCgCioAioAiEHAGsVDDuGrNcM8XSqyKgCCgCioAioAgoAoqAIqAIKAKKgCKgCCgCioAi EHwEsmbNyqfNpqjUUu6Cn5bGqAgoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIqAIXDMIZMuWjQ8P LMknM8fRhYQLUi5dFnrNkFcLoggoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIpBeCECxVqJEKbp4 8SIdOLDfmYwq15xQ6I0ioAgoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIpAagWzZIqlUydJ04cIF 2r17J4WFpajUdFloarz0jSKgCCgCioAioAgoAoqAIqAIKAKKgCKgCCgCioAiQDi2IFtkJJUsUZri 48/Rnr17KDo6mt+mHGiQomZTwBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRUARUAQUAUXAiUBk9uxi sXbu3FlWrO0WxVqxYsX5QANVrjlB0htFQBFQBBQBRUARUAQUAUVAEVAEFAFFQBFQBBQBRcAdgezZ o0SxFnf2LO3dt5ty546mYkWLyX5rhw4fcnrXZaFOKPRGEVAEFAFFQBFQBBQBRUARUAQUAUVAEVAE FAFFQBEgtkwL56Wgpej06dOyFDQqKjsVLVqUlWx76OjRoy4Q2SrXIiIi6NKlSy4e9UERUAQUAUVA EVAEFAFFQBFQBBQBRUARUAQUAUVAEfgvIJAlSxY6E3eaYg8eoCxZMlPWrNkoNjaWTp06xc9Z+ECD FBTC8uSNcdGiweQN60mtnlK8650ioAgoAoqAIqAIKAKKgCKgCCgCioAioAgoAoqAIvDfRgBGaWd5 ueg5/v0fqAnhOo6g/7kAAAAASUVORK5CYII= --Apple-Mail=_1264604B-2605-4B3A-828A-D40F44EB733D Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii - Peter > On 22 Oct 2025, at 16:34, Rick Macklem wrote: > > Hi, > > A couple of people have reported problems with NFS servers, > where essentially all of the system's memory gets exhausted. > They see the problem on 14.n FreeBSD servers (which use the > newer ZFS code) but not on 13.n servers. > > I am trying to learn how ZFS handles arc memory use to try > and figure out what can be done about this problem. > > I know nothing about ZFS internals or UMA(9) internals, > so I could be way off, but here is what I think is happening. > (Please correct me on this.) > > The L1ARC uses uma_zalloc_arg()/uma_zfree_arg() to allocate > the arc memory. The zones are created using uma_zcreate(), > so they are regular zones. This means the pages are coming > from a slab in a keg, which are wired pages. > > The only time the size of the slab/keg will be reduced by ZFS > is when it calls uma_zone_reclaim(.., UMA_RECLAIM_DRAIN), > which is called by arc_reap_cb(), triggered by arc_reap_cb_check(). > > arc_reap_cb_check() uses arc_available_memory() and triggers > arc_reap_cb() when arc_available_memory() returns a negative > value. > > arc_available_memory() returns a negative value when > zfs_arc_free_target (vfs.zfs.arc.free_target) is greater than freemem. > (By default, zfs_arc_free_target is set to vm_cnt.v_free_taget.) > > Does all of the above sound about right? > > This leads me to... > - zfs_arc_free_target (vfs.zfs.arc.free_target) needs to be larger > or > - Most of the wired pages in the slab are per-cpu, > so the uma_zone_reclaim() needs to UMA_RECLAIM_DRAIN_CPU > on some systems. (Not the small test systems I have, where I > cannot reproduce the problem.) > or > - uma_zone_reclaim() needs to be called under other > circumstances. > or > - ??? > > How can you tell if a keg/slab is per-cpu? > (For my simple test system, I only see "UMA Slabs 0:" and > "UMA Slabs 1:". It looks like UMA Slabs 0: is being used for > ZFS arc allocation for this simple test system.) > > Hopefully folk who understand ZFS arc allocation or UMA > can jump in and help out, rick --Apple-Mail=_1264604B-2605-4B3A-828A-D40F44EB733D-- From nobody Thu Oct 23 06:19:36 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4csbVQ4wcQz6DqSR for ; Thu, 23 Oct 2025 06:19:58 +0000 (UTC) (envelope-from kob6558@gmail.com) Received: from mail-yx1-xb129.google.com (mail-yx1-xb129.google.com [IPv6:2607:f8b0:4864:20::b129]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4csbVP701sz3GsB for ; Thu, 23 Oct 2025 06:19:57 +0000 (UTC) (envelope-from kob6558@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: by mail-yx1-xb129.google.com with SMTP id 956f58d0204a3-63e3a7a67a4so482853d50.1 for ; Wed, 22 Oct 2025 23:19:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761200396; x=1761805196; darn=freebsd.org; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=MWjvtECAWp2+ANQki6tibWfp4h+IB5Ayy7PccQBJMX0=; b=Ayjjp7G58vTOwgGdsxyVlIlGgOY3rbtO9w4gXehtp6JMKrSrCzrFTzy68i1WyPK9wY FlT9DYxCIidy1gWSxjNlup9aU43OS/fZtQvHwkU2qxOo3eCAfDf2f5Dirdkt6UdM/HQ+ 2J+pXR1ezzeQmu6LQbK3cj+4ssJ8QPdImlccK78fwlni6riBhCNGbLYJZOh/OMrkyBn6 KV6XV9uHGk9cnqPqdSSKJJX5ny5J4uwF8t5UouHb0zyQsd3fnnsRn9WQRZm0B1Vh0+A4 J2fXuRLzpHLb+IbAyxXTC8/VNwTrNlV628fEk9ICUxWI/u4rRF1j5PSSHR5s6mnSxmUS SNdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761200396; x=1761805196; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=MWjvtECAWp2+ANQki6tibWfp4h+IB5Ayy7PccQBJMX0=; b=CIGrY8DuYZcy+9PP8cnBnLtcQYV2Kilzr7jcrDZLH51lTO4s9cJYuqg7JQ99ng/5bv Q8pJIMEqI2jWBHUvfVa2kSu5V18Op5mEgQxlCFA48ZoRnRwV43Mf628Gus8Ue0wZoyt9 vgf0uVo3UmNaAUb4BDaq2GJ3VgylDcuvililhKHGjYh2xQ9zAYUyjkM/YEKwVlzQ/DQV JkknatIU32hYFRRsmKeypy7O8TAUqr31+WEmOGB0T1t3CRNT7nrtErzEZ6OwkPH3a4cI t9taOtFhcx2uncVvRcRakTsZyxa5ASkIatIlX6t5p5UkxU5LCX0Yo/u8d1m9sMKCqkW7 l5xw== X-Forwarded-Encrypted: i=1; AJvYcCVqR2fvfVV5D1m6KoFceXwBleAmEn5YLo1L2g3Z3CmPY7nHiumEmXYRi5FmqNvEQELkl7AImzP+vB3NDtXDOX0=@freebsd.org X-Gm-Message-State: AOJu0YwxYpEglJmVGp0dYYLlneTHpJgioyovMfsKZqgOnZeXEET4HqXR aGr6oxqdc/omV3/7aaa52aOGEPoZd01FJXi3tRFrVWnc4tIaK/3XX4qlftDtT7pYOj/nI9ZeF3M NVBKNrJUwDV5xtEAVIv8kyXJfe9sH12VA+A== X-Gm-Gg: ASbGnctHzw6BkdLOM4ud23xq/yVXsZNhyGEB1ib5Ff/ilf5QK6KMEk+n2HZSVm//E/j vZ8LaL9OETlnf7DDfksv4ZtX2NyElokJ1O4mvAFalpuJyIpf/lMO6Uvp7FFbiZ5EXbL6zircEku UwGZEPk4UQcjwu/NXF2fmC+1j9wEWjG5DrD1Dg+r5Jb50S85hyHlMdW1PkO7SEknmiL6kHaiBYp ITJaTwFxZbgUR9FSD3PkYiaJ9MS0g2NHh4bSUMa+k2SOLgFUx8BOPYx9gJ/C8eQ1Hv/MRmkzYkL CH0kEpAKDiAsNajI0g== X-Google-Smtp-Source: AGHT+IFTLD6KKg0nouMBqmUkGpXDIAqAj5kcjxV3uKQ/7citPHvg/jaZdPZMgp5uPjWnQowcpGQ2MEZcaxC1RL4ssj8= X-Received: by 2002:a05:690e:4241:b0:63f:2123:f966 with SMTP id 956f58d0204a3-63f378e21e2mr718968d50.69.1761200396029; Wed, 22 Oct 2025 23:19:56 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 References: In-Reply-To: From: Kevin Oberman Date: Wed, 22 Oct 2025 23:19:36 -0700 X-Gm-Features: AS18NWDNl0YBd6v_gC_FBq9MTgWnS1pykmsQ2i8zm0BH5taeLo5ii7grqR8BAoI Message-ID: Subject: Re: old shared lib is missing on installworld (by poudriere) To: Matthias Apitz , freebsd-current@freebsd.org Content-Type: multipart/alternative; boundary="000000000000fbd2ce0641cd6b4f" X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4csbVP701sz3GsB --000000000000fbd2ce0641cd6b4f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Oct 21, 2025 at 11:56=E2=80=AFPM Matthias Apitz = wrote: > > Hello, > > I did on a 15-CURRENT system compiled and installed in March, > now with sources from git: > > make buildworld > make buildkernel > make installkernel > > and installed it in single user mode with > > reboot to single user > make installworld > reboot to multiuser > > The new system boots fine (if I not count outdated entries in > /etc/sysctl.conf causing panic with messages about ACPI). > > But now, creating jails after also updated /usr/ports fails with: > > > # uname -a > FreeBSD jet 16.0-CURRENT FreeBSD 16.0-CURRENT #0 > main-n281256-7d6221ff1447: Sun Oct 19 12:57:22 CEST 2025 guru@jet:/us= r/obj/usr/src/amd64.amd64/sys/GENERIC > amd64 > > # poudriere jail -c -j 160-CURRENT -m src=3D/usr/src > [00:00:00] Creating 160-CURRENT fs at > /usr/local/poudriere/jails/160-CURRENT... done > [00:00:01] Copying /usr/src to > /usr/local/poudriere/jails/160-CURRENT/usr/src... done > [00:02:57] Starting make installworld > --- installworld --- > make[1]: /usr/obj/usr/src/amd64.amd64/toolchain-metadata.mk:1: Using > cached toolchain metadata from build at jet on Sun Oct 19 10:12:02 CEST 2= 025 > --- _installcheck_world --- > -------------------------------------------------------------- > >>> Install check world started on Wed Oct 22 07:28:02 CEST 2025 > -------------------------------------------------------------- > --- installworld --- > mkdir -p /tmp/install.DDxtHqxvPf > progs=3D$(for prog in [ awk cap_mkdb cat chflags chmod chown cmp cp date > echo egrep find grep id install ln make mkdir mtree mv pwd_mkdb rm sed > services_mkdb sh sort strip sysctl test time true uname wc tzsetup > makewhatis ; do if progpath=3D`env > PATH=3D/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd64.amd64/= tmp/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr/src/amd6= 4.amd64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin= :/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/usr/src/amd64.amd64/t= mp/legacy/usr/libexec:/sbin:/bin:/usr/sbin:/usr/bin > which $prog`; then echo $progpath; else echo "Required tool $prog not > found in PATH > ("/usr/obj/usr/src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd64.amd64/tmp/u= sr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr/src/amd64.amd= 64/tmp/legacy/usr/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/usr= /obj/usr/src/amd64.amd64/tmp/legacy/bin:/usr/obj/usr/src/amd64.amd64/tmp/le= gacy/usr/libexec:/sbin:/bin:/usr/sbin:/usr/bin")." > >&2; exit 1; fi; done); if [ -z "" ] ; then libs=3D$(ldd -f "%o %p\n= " -f > "%o %p\n" $progs 2>/dev/null | sort -u | grep -Ev '\[.*]' | while read > line; do $line; if [ "$2 $3" !=3D "not found" ]; then echo $2; else = echo > "Required library $1 not found." >&2; exit 1; fi; done); fi; cp $lib= s > $progs /tmp/install.DDxtHqxvPf > Required library libutil.so.9 not found. > *** [installworld] Error code 1 > > make[1]: stopped making "installworld" in /usr/src > make[1]: 1 error > > make[1]: stopped making "installworld" in /usr/src > > make: stopped making "installworld" in /usr/src > [00:02:57] Error: > /usr/local/share/poudriere/jail.sh:installworld:12:Failed to 'make > installworld' > [00:02:57] Error while creating jail, cleaning up. > [00:02:57] Removing 160-CURRENT jail... done > > I investigated the problem and two commands in > /usr/obj/usr/src/amd64.amd64/tmp/legacy/bin are missing libutil.so.9: > I believe the correct solution is to install misc/compat14x which includes several libraries that have been upgraded in 15.0 including libutil.so.9. > > -- > Matthias Apitz, =E2=9C=89 guru@unixarea.de, http://www.unixarea.de/ > +49-176-38902045 > Public GnuPG key: http://www.unixarea.de/key.pub > > -- Kevin Oberman, Part time kid herder and retired Network Engineer E-mail: rkoberman@gmail.com PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683 --000000000000fbd2ce0641cd6b4f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On Tue, Oct 21, 2025 at 11:56= =E2=80=AFPM Matthias Apitz <guru@uni= xarea.de> wrote:

Hello,

I did on a 15-CURRENT system compiled and installed in March,
now with sources from git:

make buildworld
make buildkernel
make installkernel

and installed it in single user mode with

reboot to single user
make installworld
reboot to multiuser

The new system boots fine (if I not count outdated entries in
/etc/sysctl.conf causing panic with messages about ACPI).

But now, creating jails after also updated /usr/ports fails with:


# uname -a
FreeBSD jet 16.0-CURRENT FreeBSD 16.0-CURRENT #0 main-n281256-7d6221ff1447:= Sun Oct 19 12:57:22 CEST 2025=C2=A0 =C2=A0 =C2=A0guru@jet:/usr/obj/usr/src= /amd64.amd64/sys/GENERIC amd64

# poudriere jail -c -j 160-CURRENT -m src=3D/usr/src
[00:00:00] Creating 160-CURRENT fs at /usr/local/poudriere/jails/160-CURREN= T... done
[00:00:01] Copying /usr/src to /usr/local/poudriere/jails/160-CURRENT/usr/s= rc... done
[00:02:57] Starting make installworld
--- installworld ---
make[1]: /usr/obj/usr/src/amd64.amd64/toolchain-metadata.mk:1: Usi= ng cached toolchain metadata from build at jet on Sun Oct 19 10:12:02 CEST = 2025
--- _installcheck_world ---
--------------------------------------------------------------
>>> Install check world started on Wed Oct 22 07:28:02 CEST 2025 --------------------------------------------------------------
--- installworld ---
mkdir -p /tmp/install.DDxtHqxvPf
progs=3D$(for prog in [ awk cap_mkdb cat chflags chmod chown cmp cp=C2=A0 d= ate echo egrep find grep id install=C2=A0 ln make mkdir mtree mv pwd_mkdb= =C2=A0 rm sed services_mkdb sh sort strip sysctl test time true uname wc tz= setup makewhatis ; do=C2=A0 if progpath=3D`env PATH=3D/usr/obj/usr/src/amd6= 4.amd64/tmp/bin:/usr/obj/usr/src/amd64.amd64/tmp/usr/sbin:/usr/obj/usr/src/= amd64.amd64/tmp/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/sbin:/u= sr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd64.amd64/= tmp/legacy/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/libexec:/sbin:/b= in:/usr/sbin:/usr/bin which $prog`; then=C2=A0 echo $progpath;=C2=A0 else= =C2=A0 echo "Required tool $prog not found in PATH ("/usr/obj/usr= /src/amd64.amd64/tmp/bin:/usr/obj/usr/src/amd64.amd64/tmp/usr/sbin:/usr/obj= /usr/src/amd64.amd64/tmp/usr/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/us= r/sbin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/bin:/usr/obj/usr/src/amd= 64.amd64/tmp/legacy/bin:/usr/obj/usr/src/amd64.amd64/tmp/legacy/usr/libexec= :/sbin:/bin:/usr/sbin:/usr/bin")." >&2;=C2=A0 exit 1;=C2= =A0 fi;=C2=A0 done);=C2=A0 if [ -z "" ] ; then=C2=A0 libs=3D$(ldd= -f "%o %p\n" -f "%o %p\n" $progs 2>/dev/null | sort= -u | grep -Ev '\[.*]' |=C2=A0 while read line; do=C2=A0 $line;=C2= =A0 if [ "$2 $3" !=3D "not found" ]; then=C2=A0 echo $2= ;=C2=A0 else=C2=A0 echo "Required library $1 not found." >&= ;2;=C2=A0 exit 1;=C2=A0 fi;=C2=A0 done);=C2=A0 fi;=C2=A0 cp $libs $progs /t= mp/install.DDxtHqxvPf
Required library libutil.so.9 not found.
*** [installworld] Error code 1

make[1]: stopped making "installworld" in /usr/src
make[1]: 1 error

make[1]: stopped making "installworld" in /usr/src

make: stopped making "installworld" in /usr/src
[00:02:57] Error: /usr/local/share/poudriere/jail.sh:installworld:12:Failed= to 'make installworld'
[00:02:57] Error while creating jail, cleaning up.
[00:02:57] Removing 160-CURRENT jail... done

I investigated the problem and two commands in
/usr/obj/usr/src/amd64.amd64/tmp/legacy/bin are missing libutil.so.9:

I believe the correct solution is to in= stall misc/compat14x which includes several libraries that have been upgrad= ed in 15.0 including libutil.so.9.

--
Matthias Apitz, =E2=9C=89 guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub

--
Kevin Oberman, Part ti= me kid herder and retired Network Engineer
E-mail: rkoberman@gmail.com
P= GP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683
<= /div>
--000000000000fbd2ce0641cd6b4f-- From nobody Thu Oct 23 10:49:05 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4csjSz2jyFz6D8q3 for ; Thu, 23 Oct 2025 10:49:07 +0000 (UTC) (envelope-from des@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4csjSz25Kwz3rWH; Thu, 23 Oct 2025 10:49:07 +0000 (UTC) (envelope-from des@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761216547; 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; bh=KIe7UHFmm1RUuy53c0p33BbJ+mhcRxANnbnn6ab/1iE=; b=fuq45E6N+O3K4H6SABQDFlnD622YE1DPmE5aPGTBDlwYwvEBmvFUKQH9HBADyEzpI/7Wh9 QdwRQrDsWAbuz4ebuebMa0lcNJ6qf56jgO40hD+RzuyP2wExdzcmZDsX1Rx8LR1w1G1aAG tL+s7deXg5rKx/UG/l1Q/jR6fzFx1qYv/Nxw1WReOBeAaUjKJWdmer7eg7N4kNhRxQzgyB 1xrhX+KdpLKzXOez/IWaK8dcperW5rYBVehaQyuqcV1ggxKlWSdUYBuCjxitQ6+GXcd1yz ey/GoHpTD4WT12C9zvyGHffg6NC3sPSjIEbzhqNCRH/3VbstIzxbZzjWJD+6dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761216547; 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; bh=KIe7UHFmm1RUuy53c0p33BbJ+mhcRxANnbnn6ab/1iE=; b=iZId5BttgNsQIe1QjTm1FVr/ZSi/bEdgSIUnr30GFqhQdXR/rri0DnRl/P/t/r4y3ieKNX D89uTOQ22dfhnajKCFEkQna6fioK4PTqFXBOZXjYVfh5/KKnSfoHUzMPl8qGCV7lKbye77 Cf97CjpJYB99bZs7e96WeB6QBdOltvPwOIAcFmWrNTi38ygAUGWe5TA1MucwbqmI+F4B5/ 2+QklbFMNUzy3r/0Mk7hefaJw6WnmGwuzwwwboMZIpP1uupNdtqHBR/7GTSXVB5DIUB6ID 9js4mDLeCEy0FqGKZCS1chUJQJ0yyIuKYv7hWEd5Q3g1pawN+f7Oetq2GkEd7w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1761216547; a=rsa-sha256; cv=none; b=ob8KVEMTYoL1Eg1ck6nSGDDFUj1sVOm5CDTfrqItAKAf48pjul44iS215R8S6VZZb2pyma sJUsSYFPPAvvhjuMad8uARV2gjdgmMEP5ZZABq5YJBTcAYTs+s1jKTEI7xhmgCvUf6bJk4 BhiVz4r7ydnAfejIc158p6l4RnlLdjsMgjifZsopVHgdhcwsy9/xEGN1MsHFhb1M3VVwHp tKvEhTxycQDmdwaJIGIhWNSyKeNoiwI2DDmdDFsacRkhxc61pcURvq495rA6DOVlCOhN8T n/TPHhbH24blQLVm88e3QWNRV1+iIXeR8xoxJs/xagCroFWz/MfdE3kXklwDhQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from ltc.des.dev (unknown [IPv6:2a01:e0a:c54:bed0:922e:16ff:fef1:acef]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: des) by smtp.freebsd.org (Postfix) with ESMTPSA id 4csjSz0r0qz8by; Thu, 23 Oct 2025 10:49:07 +0000 (UTC) (envelope-from des@freebsd.org) Received: by ltc.des.dev (Postfix, from userid 1001) id E53F888C0A; Thu, 23 Oct 2025 12:49:05 +0200 (CEST) From: =?utf-8?Q?Dag-Erling_Sm=C3=B8rgrav?= To: Kevin Oberman Cc: Matthias Apitz , freebsd-current@freebsd.org Subject: Re: old shared lib is missing on installworld (by poudriere) In-Reply-To: (Kevin Oberman's message of "Wed, 22 Oct 2025 23:19:36 -0700") References: User-Agent: Gnus/5.13 (Gnus v5.13) Date: Thu, 23 Oct 2025 12:49:05 +0200 Message-ID: <865xc551we.fsf@ltc.des.dev> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Kevin Oberman writes: > I believe the correct solution is to install misc/compat14x which > includes several libraries that have been upgraded in 15.0 including > libutil.so.9. No, that's a workaround. The issue is that the build tries to reuse bootstrap tools built prior to the upgrade instead of rebuilding them. You can force a rebuild (which should be quick since you're already running the same version that you're aiming to build) by deleting /usr/obj/usr/src/amd64.amd64/tmp. DES --=20 Dag-Erling Sm=C3=B8rgrav - des@FreeBSD.org From nobody Thu Oct 23 12:41:48 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cslz165gbz6DPmf for ; Thu, 23 Oct 2025 12:41:49 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cslz15M4xz49lg; Thu, 23 Oct 2025 12:41:49 +0000 (UTC) (envelope-from kevans@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761223309; 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; bh=XQe1+88F+9oY/29s/WZCOkwFKsWS3kgAN3vwGJ4tV1g=; b=BXPnscQWnO7I1O61tekpgQ2C4po75sX6fgnl2GFdTc4RlQhfWqvBPlqh7r0Onhx/0AR/M/ viqMeNlionh8trIxbbUn13XwYYyyrA7W6XRYGF+x8Icg1KgaR2heXadgaU/o/VCblLvFny v167T9YHL1Jer1tvOfjzxKGw48LhxIQhwHmma1hwNGjb7ekprAmjzjfJ4fACuR5H2AlEAI Q2zAzRWF7FBEUgwEcHc0HYTl1NGAcJjTOYpfAgTV4rLkP7ASNJp42IqHX4lDtOOG1uO0M3 HLMdQMibK46NPNV8l8nyBbL2U1PVNFq4h/HQPSCCjRY0G8kwoXgZa58CAoegbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761223309; 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; bh=XQe1+88F+9oY/29s/WZCOkwFKsWS3kgAN3vwGJ4tV1g=; b=ZFjb7RMc2gZJ9gidZ6DDaXei1mkZmPL0vcS/iZebK+6lPV/MOwXbqlGe2DAnOA0UOLoX3v HPFPp2ho4maPbUPTC+XT/dz+nX/uNSmjvaMOrN3NGpJHLVLFjpRPPAuzWyRpOLuYD04AMI Hq/AipMBiY04JLhymshnhN0rnLShd18OUhpjkD3kKclGsgU8eC8+3YAD0ih4EamqTcdj3U VBRdIMbQFjntiGwz/ZlAo5Pjo90MEVwnUtsLvWRsjNPiuOWmHoToKm2GnA7+yGMSh2Rw8I QivqRYyOgnH1GwZv7+fBE0omeiZZNFA0zE61IPmQjGv1a6G+HMAJ1405zeRpcw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1761223309; a=rsa-sha256; cv=none; b=JxLDh/oHMjpzRw7Q/qUXzrc61GW2k0ltHZrJAdEVo17HqZ8LRHmEPkkgCYFG11o4/N6E1E QkoSGJKR2oCf3r6nqnlqUAVtLJS8Qwr+imerLX5/b7SVfpLLFOODdV/yTpMkGWPzGAsTkx U+1ASWVXNZB2or3tWjX29/c2yA1u/eVvUyZLuXD6pDVZwzBqB9oaLczAmkZhgFHm52sgVU CqccZECO7J3q7+KHXCuFBxyiYleWpYzQlkF8PSbcoXra0VvIZ2lbduAgNc2Ymj2HF+I8bz NWlFLte2DulNoRU26nRTY/uLf6Dka1kp6PJcSLwoeOW2+3gII+bn9Mbvx934HQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from [10.9.4.95] (unknown [209.182.120.176]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: kevans/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4cslz12k5SzBfg; Thu, 23 Oct 2025 12:41:49 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Message-ID: Date: Thu, 23 Oct 2025 07:41:48 -0500 List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: FreeBSD CURRENT From: Kyle Evans Subject: evdev-induced panic (devfs / destroy_dev race?) Cc: wulf@FreeBSD.org, Konstantin Belousov Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, Not sure if anyone else has noticed this, but I seem to have scared up an evdev panic: Fatal trap 9: general protection fault while in kernel mode cpuid = 1; apic id = 01 instruction pointer = 0x20:0xffffffff80b98b5b stack pointer = 0x28:0xfffffe01a62b4b60 frame pointer = 0x28:0xfffffe01a62b4c00 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 7339 (moused) rdi: fffff80001b55128 rsi: 0000000000000001 rdx: 0000000000000000 rcx: fffffe0186e5b570 r8: fffff80353686cd0 r9: fffffe01a62b5000 rax: fffff800027d7780 rbx: fffff80001b55128 rbp: fffffe01a62b4c00 r10: 0000000000002af8 r11: 000000000000298c r12: fffff80353686780 r13: deadc0dedeadc0c0 r14: 0000000000000001 r15: 0000000000000000 trap number = 9 panic: general protection fault cpuid = 1 time = 1761098215 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe01a62b48e0 vpanic() at vpanic+0x136/frame 0xfffffe01a62b4a10 panic() at panic+0x43/frame 0xfffffe01a62b4a70 trap_fatal() at trap_fatal+0x68/frame 0xfffffe01a62b4a90 calltrap() at calltrap+0x8/frame 0xfffffe01a62b4a90 --- trap 0x9, rip = 0xffffffff80b98b5b, rsp = 0xfffffe01a62b4b60, rbp = 0xfffffe01a62b4c00 --- _sx_xlock_hard() at _sx_xlock_hard+0x18b/frame 0xfffffe01a62b4c00 _sx_xlock() at _sx_xlock+0xac/frame 0xfffffe01a62b4c40 evdev_dtor() at evdev_dtor+0x5c/frame 0xfffffe01a62b4c70 devfs_destroy_cdevpriv() at devfs_destroy_cdevpriv+0xab/frame 0xfffffe01a62b4c90 devfs_close_f() at devfs_close_f+0x63/frame 0xfffffe01a62b4cc0 _fdrop() at _fdrop+0x1a/frame 0xfffffe01a62b4ce0 closef() at closef+0x1e3/frame 0xfffffe01a62b4d70 closefp_impl() at closefp_impl+0x71/frame 0xfffffe01a62b4db0 closefp_hl() at closefp_hl+0x70/frame 0xfffffe01a62b4e00 amd64_syscall() at amd64_syscall+0x169/frame 0xfffffe01a62b4f30 fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe01a62b4f30 --- syscall (6, FreeBSD ELF64, close), rip = 0x2b5f166d5eaa, rsp = 0x2b5f133b49c8, rbp = 0x2b5f133b4ab0 --- KDB: enter: panic This was seemingly the result of removing my mouse's USB dongle. Presumably detach revoked the client and woke it up, which then triggered the above close() from moused to race with destroy_dev() for invoking the cdevpriv dtor. I spent a few minutes thinking about it and didn't really come to a good idea of what the fix might be, though I suspect there's nothing evdev can really do about it at the moment and we might need to somehow coordinate this in destroy_dev(). Kyle Evans From nobody Thu Oct 23 14:07:03 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4csnsc4khbz6DZpn for ; Thu, 23 Oct 2025 14:07:16 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from kib.kiev.ua (kib.kiev.ua [IPv6:2001:470:d5e7:1::1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4csnsc1Wtmz3Nvv; Thu, 23 Oct 2025 14:07:16 +0000 (UTC) (envelope-from kostikbel@gmail.com) Authentication-Results: mx1.freebsd.org; none Received: from tom.home (kib@localhost [127.0.0.1] (may be forged)) by kib.kiev.ua (8.18.1/8.18.1) with ESMTP id 59NE73uZ022480; Thu, 23 Oct 2025 17:07:06 +0300 (EEST) (envelope-from kostikbel@gmail.com) DKIM-Filter: OpenDKIM Filter v2.10.3 kib.kiev.ua 59NE73uZ022480 Received: (from kostik@localhost) by tom.home (8.18.1/8.18.1/Submit) id 59NE7376022479; Thu, 23 Oct 2025 17:07:03 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: tom.home: kostik set sender to kostikbel@gmail.com using -f Date: Thu, 23 Oct 2025 17:07:03 +0300 From: Konstantin Belousov To: Kyle Evans Cc: FreeBSD CURRENT , wulf@freebsd.org Subject: Re: evdev-induced panic (devfs / destroy_dev race?) Message-ID: References: List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,BAYES_00, DKIM_ADSP_CUSTOM_MED,FORGED_GMAIL_RCVD,FREEMAIL_FROM, NML_ADSP_CUSTOM_MED autolearn=no autolearn_force=no version=4.0.1 X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-26) on tom.home X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:6939, ipnet:2001:470::/32, country:US] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4csnsc1Wtmz3Nvv On Thu, Oct 23, 2025 at 07:41:48AM -0500, Kyle Evans wrote: > Hi, > > Not sure if anyone else has noticed this, but I seem to have scared up an evdev panic: > > Fatal trap 9: general protection fault while in kernel mode > cpuid = 1; apic id = 01 > instruction pointer = 0x20:0xffffffff80b98b5b > stack pointer = 0x28:0xfffffe01a62b4b60 > frame pointer = 0x28:0xfffffe01a62b4c00 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, long 1, def32 0, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 7339 (moused) > rdi: fffff80001b55128 rsi: 0000000000000001 rdx: 0000000000000000 > rcx: fffffe0186e5b570 r8: fffff80353686cd0 r9: fffffe01a62b5000 > rax: fffff800027d7780 rbx: fffff80001b55128 rbp: fffffe01a62b4c00 > r10: 0000000000002af8 r11: 000000000000298c r12: fffff80353686780 > r13: deadc0dedeadc0c0 r14: 0000000000000001 r15: 0000000000000000 > trap number = 9 > panic: general protection fault > cpuid = 1 > time = 1761098215 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffe01a62b48e0 > vpanic() at vpanic+0x136/frame 0xfffffe01a62b4a10 > panic() at panic+0x43/frame 0xfffffe01a62b4a70 > trap_fatal() at trap_fatal+0x68/frame 0xfffffe01a62b4a90 > calltrap() at calltrap+0x8/frame 0xfffffe01a62b4a90 > --- trap 0x9, rip = 0xffffffff80b98b5b, rsp = 0xfffffe01a62b4b60, rbp = 0xfffffe01a62b4c00 --- > _sx_xlock_hard() at _sx_xlock_hard+0x18b/frame 0xfffffe01a62b4c00 > _sx_xlock() at _sx_xlock+0xac/frame 0xfffffe01a62b4c40 > evdev_dtor() at evdev_dtor+0x5c/frame 0xfffffe01a62b4c70 > devfs_destroy_cdevpriv() at devfs_destroy_cdevpriv+0xab/frame 0xfffffe01a62b4c90 > devfs_close_f() at devfs_close_f+0x63/frame 0xfffffe01a62b4cc0 > _fdrop() at _fdrop+0x1a/frame 0xfffffe01a62b4ce0 > closef() at closef+0x1e3/frame 0xfffffe01a62b4d70 > closefp_impl() at closefp_impl+0x71/frame 0xfffffe01a62b4db0 > closefp_hl() at closefp_hl+0x70/frame 0xfffffe01a62b4e00 > amd64_syscall() at amd64_syscall+0x169/frame 0xfffffe01a62b4f30 > fast_syscall_common() at fast_syscall_common+0xf8/frame 0xfffffe01a62b4f30 > --- syscall (6, FreeBSD ELF64, close), rip = 0x2b5f166d5eaa, rsp = 0x2b5f133b49c8, rbp = 0x2b5f133b4ab0 --- > KDB: enter: panic > > This was seemingly the result of removing my mouse's USB dongle. Presumably detach revoked the client and > woke it up, which then triggered the above close() from moused to race with destroy_dev() for invoking the > cdevpriv dtor. Do you have core dump? > > I spent a few minutes thinking about it and didn't really come to a good idea of what the fix might be, > though I suspect there's nothing evdev can really do about it at the moment and we might need to somehow > coordinate this in destroy_dev(). destroy_dev() already does the following; - clears si_devsw so no new thread could enter devfs cdev methods - drain until all threads in cdev methods return from them - destruct cdevprivs At this point no new cdevpriv structures should be created because no new threads are allowed into cdev methods. I would say that there is something else causing the problem, not a lack of coordination with destroy_dev(). From nobody Thu Oct 23 15:22:00 2025 X-Original-To: current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4csqX4202nz6DlXH; Thu, 23 Oct 2025 15:22:12 +0000 (UTC) (envelope-from ivy@freebsd.org) Received: from smtp.freebsd.org (smtp.freebsd.org [96.47.72.83]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4csqX36B9Lz3YQx; Thu, 23 Oct 2025 15:22:11 +0000 (UTC) (envelope-from ivy@freebsd.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761232931; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=fgWK3LaTJkbvmYpSwnCqVHxv8iFZmAX4MY+UMR3iwlU=; b=Q+tQ7Y2qWiyzgcJKfpPfnZuOQfkvxHtK1WL4kcI4Dq+KvIX0AUjC597Q1AYu/plNm8n/UL hHmZ8Y0FBJ+gI7RsCykxOwuYx0XPRrBWcKKlCSKxpKPD6eZP/M+5OjVB89iU139c8P2Eg9 BTQsdJV7zxFj4Ka6uMFZ4gVQikonqxTtFhOVqEFzSl8HnVtY/zcsR8L2XF7OvfpFRsWCpe Ge2pNaVZg+b+A+6lcpmXofeZPfKKKXx6npk7IWhiO/ioKqwNlxqc0wBRp9+YEVtarQo4mK qY8r0bpWSAGfLdNC9XvVaT7cYvVJxKeBg5eda8YVsMMDwXijnD8Nxxpip4ykTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761232931; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=fgWK3LaTJkbvmYpSwnCqVHxv8iFZmAX4MY+UMR3iwlU=; b=JVeAGo8E85TLI5hvtu2aEn3Vl5L4A1/cWOpQIFT4wCD06B234S2dQMbWqsku2817o7PtV8 /iPSRwoW8uhrj40IpDiZw5qtwZF2F4WAG5xVRrYXH9bTnt+O4xcwmt0KPCZ4aOYrz9CpQe ii1S8FvJHMcjfRr83X8H6Rx4jLhHdT2Ea5L6RISW4wCTZrdCNkBKt1fM1Tqnyo77zzaUw9 00HHV6tqkI906wki7zlM5GCj56/peZpH6V1309w8efKkeYGJ39E7S1RBormXkXUc5+RCMJ dm+cg4WWEvnr3Ci5MLhW/tiyvxy4KDU4KkMQ5h7cp7UPb24lzFIQtG7aIdzcAA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1761232931; a=rsa-sha256; cv=none; b=LIHDYLgGz8z70Wfp/2/NXVbMuI7CmzjQo7k7UewAsXFO9j8dmJHWgRZ5vDP3jYK4jc58cK tmd3NrQuEysMmXkVi35nIRHF7/zo0XHs46Kk9l5CWZtdHIAUSziQomP65r53EG5aL640AE ejmCQOFIS53Bm5MinINEW3WR1lpQ5QKBRWqQQZ8VLlgQCgul951eCBlfZ9fNxxX8ZJdEBX 3VLNQGGCtCkSooZLRtSBlm+NU9Wb2LQ4Wsmu8rymLvRkcvUrnEVEnmeuD00lfKSsJg1X4A hBiOUiCIDfdnoYdORbEnsX02QM3he3PFq/bIQdHAMdbfBJWPeU245aAvPRSCNg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from amaryllis.le-fay.org (amaryllis.le-fay.org [IPv6:2a00:1098:6b:400::9]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: ivy/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4csqX33RYWzFdd; Thu, 23 Oct 2025 15:22:11 +0000 (UTC) (envelope-from ivy@freebsd.org) Date: Thu, 23 Oct 2025 16:22:00 +0100 From: Lexi Winter To: fs@freebsd.org, current@freebsd.org Subject: Re: openat("./...", O_CREAT) fails even though the directory exists Message-ID: Mail-Followup-To: fs@freebsd.org, current@freebsd.org References: <2507674.THHZn3L5Ee@ravel> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="xPNM7LLxSjdYmbBq" Content-Disposition: inline In-Reply-To: --xPNM7LLxSjdYmbBq Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Marcin Cieslak wrote in : > On Mon, 13 Oct 2025, Lexi Winter wrote: >=20 > > after some more debugging, i think what's going on here is that pkg(8) > > is deleting and recreating /var/spool/mqueue on upgrade, which means > > smmsp's open fd to that directory is no longer valid, and therefore > > openat() returns this unusual error. >=20 > I think mail spool queues should be left untouched by pkg(8). There might= be some mail > there waiting to be sent. if there are files in the directory, it won't be removed, as far as i know. this is why /var/spool/clientmqueue isn't affected, because smmsp puts it PID file there, so pkg doesn't remove the directory. one proposal to "fix" this problem was to have sendmail's rc.d script create a dummy file there while sendmail is running, but this doesn't fix the underlying issue. my preference would be to fix this in pkg(8). there is some additional discussion on the review: https://reviews.freebsd.org/D53061. --xPNM7LLxSjdYmbBq Content-Type: application/pgp-signature; name=signature.asc -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQSyjTg96lp3RifySyn1nT63mIK/YAUCaPpIFQAKCRD1nT63mIK/ YIriAQDsyHJwmoCup2ZIyci17raEGnQzag5+Vr5JoGFCNMJ1JgD/f7/Om5UHTq42 L0WqYX7q9G+AlSxw0AHbefWBaHW81QY= =XAQn -----END PGP SIGNATURE----- --xPNM7LLxSjdYmbBq-- From nobody Thu Oct 23 23:29:15 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ct2LQ5LNDz6Dr75 for ; Thu, 23 Oct 2025 23:29:34 +0000 (UTC) (envelope-from f0andrey@gmail.com) Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ct2LP4gpkz3Pkf for ; Thu, 23 Oct 2025 23:29:33 +0000 (UTC) (envelope-from f0andrey@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b=l50VlJ3m; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of f0andrey@gmail.com designates 2a00:1450:4864:20::62a as permitted sender) smtp.mailfrom=f0andrey@gmail.com Received: by mail-ej1-x62a.google.com with SMTP id a640c23a62f3a-b6d53684cfdso322368066b.0 for ; Thu, 23 Oct 2025 16:29:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761262167; x=1761866967; darn=freebsd.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=LWBqvuQWnEgzdVpI77mMbokdt15i4C17Q+dffOk050Q=; b=l50VlJ3m3gdCqMuK73okj+KQ8baK+8qCYFg0xSRV/t4mresVcxJwbCEnHRrUehsEIX uqjQ8lpjZ1wIFOna2byMyYyGrhmC5L2DhCj1V/aOsuXrOJ+lqJ+GMl9GgGA3nzyk3Wv8 8UHZE9cC58BZQgIKYZhLktyJmfrgYlsM2GiIxieW5zcp8C0rpRJBH99DlsxkEpNcDWEs rOO0j+mozsVKap93pnwnYV1BpQZDnAEcu5EX+rFRXCOOn3CNBs2a5N4wpeau2bwQ0MSX ut1552oTOHNuSutUDumBobkiO5k2U6HkdosajbWVXHz/JNiFlA4wqEzJMmZGpkdzysql m4Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761262167; x=1761866967; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=LWBqvuQWnEgzdVpI77mMbokdt15i4C17Q+dffOk050Q=; b=SjvGjwk8I6grlTVJC4TNnwAPfsATs3RTam4J0E/TLxa3GeGdLm0BQkcPd6IkHQgvXF KS6XiFVH56aniZp77LIDOLZOsQvprC3YlBgp0YoB4fz1kKdNWG44ysM9Zx0+BhqA027r KPYx+r4PiuytWH1y0SeFkCvEtSu0wXhOfSlCaafdZZDW/eZ1sm6Pp1LA5Iu4aBLN5vcV i+EMYfS/09JeAHIALDHV0jl4wMcLpgf1MAGkRsmbCfqAM3CXYJ5RNAZkkDZRWfYapD9w 8nrl9kL8VYFC9Vm4e2P2ArsLwNKah8oKa31w1UaQQc/xoGQKLyr2cVBMnB6JpX3VuzaJ eO7Q== X-Gm-Message-State: AOJu0YzbuJEH5rUhX+2pfU+vyNMB4VTVGn+vM/9Duj74D+7rkBKwlS8M WcmuYWaZWUSZY99hppvEaWDUIkyusQJoeQ/SKAJEHE25tnJqRvLPnvCplzPHRtULnQnQwGrBlS+ LCURP1sx16Vk0/ibqtnIYHoE/gHMraJr9tZVh X-Gm-Gg: ASbGncvY6AchuZx0raxOUA+GGASAX4JxPvYMSIjl7SDPFeLlWm6H+LtksWp2hgDD76K FCiOoBmgGswqOdJ2dE5BRkzwd1zbtDzriBNYxi5kckA8dgbcgTPZEGMKkznnx4qUORJkka5OwYm 3I9BPovs2se7/HYFykGFL2YLhKsJnjNVu8JPHBb8DTZtmlf++MNK6tSLAB2mFWQj8W/112SwqmX T0pKcVqX9lGp+7s0BXToxyb/TNe1wHTyOAzCUfhqbBGmcXLUEJwVxhsyHnXnJOcArNQahapFX5f 1qo= X-Google-Smtp-Source: AGHT+IEUF3nWmx2o1ADDAap8D4JEMoel16M1xC7qjHQQtEoDLmY6KwYtXL00QXAxoybKAyx6Dr2bq/RQNGkRj60wybg= X-Received: by 2002:a17:907:971e:b0:b43:b7ec:b89a with SMTP id a640c23a62f3a-b64731484a2mr3108014766b.26.1761262166688; Thu, 23 Oct 2025 16:29:26 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 From: Andrey Fesenko Date: Fri, 24 Oct 2025 02:29:15 +0300 X-Gm-Features: AS18NWBjdM0sgbYL2a3rFkRoCb_j99pLb_6jrZ-FaSb1uqxFqqag_MHLrroraUc Message-ID: Subject: bsdinstall scripted regression (broken) 15-BETA To: freebsd-current , ifreund@freebsdfoundation.org Content-Type: multipart/alternative; boundary="000000000000cd46f00641dbcd35" X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.54 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-0.94)[-0.939]; NEURAL_HAM_LONG(-0.60)[-0.604]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; R_SPF_ALLOW(-0.20)[+ip6:2a00:1450:4000::/36]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; RCPT_COUNT_TWO(0.00)[2]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; RCVD_TLS_LAST(0.00)[]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_SOME(0.00)[]; FROM_HAS_DN(0.00)[]; RCVD_COUNT_ONE(0.00)[1]; MISSING_XM_UA(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; TO_MATCH_ENVRCPT_SOME(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; MID_RHS_MATCH_FROMTLD(0.00)[]; ASN(0.00)[asn:15169, ipnet:2a00:1450::/32, country:US]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; FREEMAIL_ENVFROM(0.00)[gmail.com]; RCVD_IN_DNSWL_NONE(0.00)[2a00:1450:4864:20::62a:from] X-Rspamd-Queue-Id: 4ct2LP4gpkz3Pkf --000000000000cd46f00641dbcd35 Content-Type: text/plain; charset="UTF-8" Bug 290375 - bsdinstall: pkgbase not scripted Simple install script not work now after add pkgbase bsdinstall script /tmp/installerconfig # installerconfig export nonInteractive="YES" HOSTNAME="freebsd" BSDINSTALL_PKG_REPOS_DIR="/usr/freebsd-packages/repos/" DISTRIBUTIONS="" DISKSLICE=vtbd0 PARTITIONS="$DISKSLICE GPT { auto freebsd-ufs / }" #!/bin/sh -x LUA usr.sbin/bsdinstall/scripts/pkgbase.in Need OK in Select System Components Not man, not option for select components in scripted mode, not ready for white lebling --000000000000cd46f00641dbcd35 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Bug 290375 - bsdinstall: pkgbase not scripted

Simple ins=
tall script not work now after add pkgbase

bsdinstall script /tmp/installerconfig


  # installerconfig
  export nonInteractive=3D"YES"
  HOSTNAME=3D"freebsd"
 =20
  BSDINSTALL_PKG_REPOS_DIR=3D"/usr/freebsd-packages/repos/"
  DISTRIBUTIONS=3D""
  DISKSLICE=3Dvtbd0
  PARTITIONS=3D"$DISKSLICE GPT { auto freebsd-ufs / }"
 =20
  #!/bin/sh -x

LUA usr.sbin/bsdinstall/scripts/pkgbase.in
Need OK in Select System Components

Not man, not = option for select components in scripted mode, not ready for white lebling
--000000000000cd46f00641dbcd35-- From nobody Fri Oct 24 09:13:56 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ctHJm6m8Yz6DvLf for ; Fri, 24 Oct 2025 09:14:00 +0000 (UTC) (envelope-from guru@unixarea.de) Received: from ms-10.1blu.de (ms-10.1blu.de [178.254.4.101]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4ctHJl1CwTz3W5s for ; Fri, 24 Oct 2025 09:13:59 +0000 (UTC) (envelope-from guru@unixarea.de) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=unixarea.de header.s=blu3434000 header.b=HKsHxO6b; dmarc=none; spf=pass (mx1.freebsd.org: domain of guru@unixarea.de designates 178.254.4.101 as permitted sender) smtp.mailfrom=guru@unixarea.de DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=unixarea.de ; s=blu3434000; h=Content-Transfer-Encoding:Content-Type:MIME-Version: Reply-To:Message-ID:Subject:To:From:Date:Sender:Cc:Content-ID: Content-Description:In-Reply-To:References; bh=7Ef52J0hSjBst76GXmyiOLTJ8zhWuKiFVD5LwrarKJw=; b=HKsHxO6bRX72xoGCVmf/kVMoIL 4EQeuqkorGDCPZJia2OiiuuVJ6UcZD4DbGo1VLA0fTFtpxayj/X3ozTP6QD5TrYkDRLNzNKnjQzgy LFj3I8YXWrWoMqWLlg96tfys3FRpX+GpEtwYk+zYTWEQYfhO45YAzZTw7CLqPFO2ZzJzHvihokFQa Ys4+Tcl99KQwP/CR3Blql96KmWRRWIC0Lc3Pjx5/k30UXJcWVgQTGVbZ63/TYuaQCoQN+BqA8FEcf OEP8zSN61mqjCPcJcJWFqbRbYMeCtrMEJ1iTJJE5LB7VuF/uqSEfFoWcSd6fpZLCfi4PCotDSntni zOGl2D9w==; Received: from [62.216.210.36] (helo=localhost.unixarea.de) by ms-10.1blu.de with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1vCDrx-00CtXr-2K for freebsd-current@freebsd.org; Fri, 24 Oct 2025 11:13:57 +0200 Received: from localhost.my.domain (c720-1400094 [127.0.0.1]) by localhost.unixarea.de (8.17.1/8.14.9) with ESMTP id 59O9DuHU007668 for ; Fri, 24 Oct 2025 11:13:56 +0200 (CEST) (envelope-from guru@unixarea.de) Received: (from guru@localhost) by localhost.my.domain (8.17.1/8.14.9/Submit) id 59O9DuKw007667 for freebsd-current@freebsd.org; Fri, 24 Oct 2025 11:13:56 +0200 (CEST) (envelope-from guru@unixarea.de) X-Authentication-Warning: localhost.my.domain: guru set sender to guru@unixarea.de using -f Date: Fri, 24 Oct 2025 11:13:56 +0200 From: Matthias Apitz To: freebsd-current@freebsd.org Subject: building editors/libreoffice fails with: unknown USE_QT component 'tools' invalid Message-ID: Reply-To: Matthias Apitz Mail-Followup-To: freebsd-current@freebsd.org List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Operating-System: FreeBSD 14.0-CURRENT r1400094 (amd64) X-message-flag: Mails in HTML will not be read! Please, only plain text. X-Con-Id: 51246 X-Con-U: 0-guru X-Originating-IP: 62.216.210.36 X-Spamd-Bar: -- X-Spamd-Result: default: False [-3.00 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-0.999]; MID_RHS_NOT_FQDN(0.50)[]; R_DKIM_ALLOW(-0.20)[unixarea.de:s=blu3434000]; R_SPF_ALLOW(-0.20)[+ip4:178.254.4.101]; MIME_GOOD(-0.10)[text/plain]; RCVD_TLS_LAST(0.00)[]; RCVD_COUNT_THREE(0.00)[3]; HAS_XAW(0.00)[]; SUSPICIOUS_AUTH_ORIGIN(0.00)[]; MIME_TRACE(0.00)[0:+]; DMARC_NA(0.00)[unixarea.de]; ARC_NA(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MISSING_XM_UA(0.00)[]; HAS_REPLYTO(0.00)[guru@unixarea.de]; TO_DN_NONE(0.00)[]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; DKIM_TRACE(0.00)[unixarea.de:+]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; HAS_XOIP(0.00)[]; ASN(0.00)[asn:42730, ipnet:178.254.0.0/19, country:DE]; RCVD_VIA_SMTP_AUTH(0.00)[]; REPLYTO_EQ_FROM(0.00)[] X-Rspamd-Queue-Id: 4ctHJl1CwTz3W5s I'm building ports with poudriere on a recent CURRENT: $ uname -a FreeBSD jet 16.0-CURRENT FreeBSD 16.0-CURRENT #0 main-n281256-7d6221ff1447: Sun Oct 19 12:57:22 CEST 2025 guru@jet:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 Building editors/libreoffice fails with [00:01:00] Gathering ports metadata [00:01:01] Calculating ports order and dependencies [00:01:01] Sanity checking the repository [00:01:01] Trimming IGNORED and blacklisted ports [00:01:01] Ignoring editors/libreoffice | libreoffice-25.8.2.2: cannot be installed: unknown USE_QT component 'tools' [00:01:02] Checking packages for incremental rebuild needs I've no idea where to disable USE_QT. Thanks matthias -- Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045 Public GnuPG key: http://www.unixarea.de/key.pub From nobody Fri Oct 24 11:57:24 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ctLxb0CNpz6DGSR for ; Fri, 24 Oct 2025 11:57:39 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Received: from www121.sakura.ne.jp (www121.sakura.ne.jp [153.125.133.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4ctLxZ1l0jz3rwJ for ; Fri, 24 Oct 2025 11:57:37 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Authentication-Results: mx1.freebsd.org; none Received: from kalamity.joker.local (124-18-6-240.area1c.commufa.jp [124.18.6.240]) (authenticated bits=0) by www121.sakura.ne.jp (8.18.1/8.17.1/[SAKURA-WEB]/20201212) with ESMTPA id 59OBvO36036705; Fri, 24 Oct 2025 20:57:26 +0900 (JST) (envelope-from junchoon@dec.sakura.ne.jp) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=dec.sakura.ne.jp; s=s2405; t=1761307046; bh=bFO+yPQp1TuFMnl6aV6Sw7ISn7YdpwF1fhWLjUVuqgQ=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=I8l4nt5/fi+da1BgXxMVmJHVI6aQXfYgF8GsJ7m1b/zos+USgUy8Z56Argyg2MoAi L3lNV5Q+fcirIsaE7RC+s9gSuXEzVn4EzKszd1H+TSGBhQEYBxmew5nXKOdHgLX0Bz EUI71gqfGVlgSfAak1QnfRZGKIMXEmZaO8GRu6AE= Date: Fri, 24 Oct 2025 20:57:24 +0900 From: Tomoaki AOKI To: Matthias Apitz Cc: freebsd-current@freebsd.org Subject: Re: building editors/libreoffice fails with: unknown USE_QT component 'tools' invalid Message-Id: <20251024205724.fd45bb4cb6948538ae0fe64e@dec.sakura.ne.jp> In-Reply-To: References: Organization: Junchoon corps X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; amd64-portbld-freebsd15.0) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:7684, ipnet:153.125.128.0/18, country:JP] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4ctLxZ1l0jz3rwJ On Fri, 24 Oct 2025 11:13:56 +0200 Matthias Apitz wrote: > I'm building ports with poudriere on a recent CURRENT: > > $ uname -a > FreeBSD jet 16.0-CURRENT FreeBSD 16.0-CURRENT #0 main-n281256-7d6221ff1447: Sun Oct 19 12:57:22 CEST 2025 guru@jet:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 > > Building editors/libreoffice fails with > > > [00:01:00] Gathering ports metadata > [00:01:01] Calculating ports order and dependencies > [00:01:01] Sanity checking the repository > [00:01:01] Trimming IGNORED and blacklisted ports > [00:01:01] Ignoring editors/libreoffice | libreoffice-25.8.2.2: cannot be installed: unknown USE_QT component 'tools' > [00:01:02] Checking packages for incremental rebuild needs > > I've no idea where to disable USE_QT. Thanks > > matthias > > -- > Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045 > Public GnuPG key: http://www.unixarea.de/key.pub Do you have anything in /usr/local/lib/compat/pkg/? If any, if you don't have clear reason, try moving or renaming the directory (i.e., rename to /usr/local/lib/compat/pkg-20251024) and see it helps or not. If it causes something odd to other apps, creating /usr/local/lib/compat/pkg and put back seemingly related ones only, one by one. Not exactly match your case, but Bug 268652 has looking-similar issues. (Quite a large PR, though.) https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268652 Regards. -- Tomoaki AOKI From nobody Fri Oct 24 15:17:24 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ctRNC0VNdz6DgwH for ; Fri, 24 Oct 2025 15:17:31 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Received: from smtp.freebsd.org (smtp.freebsd.org [IPv6:2610:1c1:1:606c::24b:4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "smtp.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ctRNB7341z3M5D for ; Fri, 24 Oct 2025 15:17:30 +0000 (UTC) (envelope-from kevans@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761319051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QvDfVUqzc+hABRAfKZSqbfy0u7jY/pxadnkfbldH9kg=; b=JuvTO+tPwB4CngiicGyx248cEd6XSvJyswa1i0redN/JcIywe/QCDVsMWLV+0SogwxVjhn xrXVCiD8q7RocHPc+/zk1cwO3ui50qMwKI9V6O1ZPpOKg/GSKx+46i+/hlU4dFvIzIk+Ve si8eGIgZxKapTHlB35L3GcKcyFZlHb5t39Sl8voZBWaOIljD8dffp1oNB+2NXz1CIcGzXI Yxcpyam99RATCEPlEmn8TML+k9jzC8s5xD0cAsASYr+q+SDOlSiAjrPOVhQ+r+i53bbt4l P9A+Fpkv8r0qsxsOE5PxIUABROQNIYFcRqoQ/TdQUuNzWa29xmZEaNtPks16+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1761319051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=QvDfVUqzc+hABRAfKZSqbfy0u7jY/pxadnkfbldH9kg=; b=spSuKvD2suouSoNfd8h4lAq3Exir7AnK3H7w13riTTjzyemp7QpAHC9Jq5pptEZ/X307cH i81G7wToLDYgAKxT79mjU3d5AEHSsb+sIiT4Ztkaqs9mPwxJM5UrsNKxr5Cwp0uNhQsOSG vQ68FQqEqzHtoadB7uTcoCK8pguUivGF69JKHmyJBVYBVdotr51UhVeGZ52IWAQDax8Urc GLVwBQGsQ9gWsfSq6lVrAqxRcVuAzGMfqHwHx8ucinc1CyxlFT8jbUuUyK2hQA6IykhNFo tqCCxnBZ+zdtlxfh8EoxAZtDL9VLWWhBguWdK+Ov/V6dQmPxiv+WLzdChpqZjA== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1761319051; a=rsa-sha256; cv=none; b=KbwDqG4RCN28IDgVlR80vGnRaIkFDTqH8vYqgHSQBSaqYU0oYHST8FqV96ZqIwg3iDkKZ/ btHt8KatEn3rIlDMS1ZgJMKG4QoxGVpvQl04rUZA6R3JsUZB1Fyg0k1Ei8b4qFuixeiaOm 80a0KBKExVmhU/uX3rLezASqKZKVkmt9SLqAC5MbsUo/MYb/PXmTPbN7RVmlRJLekw+B48 KJOSI9bbsaS3iuG+Tx73Q0w4OYcv2MzBCs29nNH3tru0lYcuJ7lzzOGkLGqNi+zHCJxx5X fjd6YtrX8JbpF/PkGaeGo4Ailw0WJHq+dvlRmBLXmU/wdsynT+TkADf7N6JL6A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from [10.9.4.95] (unknown [209.182.120.176]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) (Authenticated sender: kevans/mail) by smtp.freebsd.org (Postfix) with ESMTPSA id 4ctRNB5NMjz125V for ; Fri, 24 Oct 2025 15:17:30 +0000 (UTC) (envelope-from kevans@FreeBSD.org) Message-ID: Date: Fri, 24 Oct 2025 10:17:24 -0500 List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: evdev-induced panic (devfs / destroy_dev race?) From: Kyle Evans To: FreeBSD CURRENT References: Content-Language: en-US In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 10/23/25 07:41, Kyle Evans wrote: > Hi, > > Not sure if anyone else has noticed this, but I seem to have scared up an evdev panic: > > [...] >> This was seemingly the result of removing my mouse's USB dongle.  Presumably detach revoked the client and > woke it up, which then triggered the above close() from moused to race with destroy_dev() for invoking the > cdevpriv dtor. > > I spent a few minutes thinking about it and didn't really come to a good idea of what the fix might be, > though I suspect there's nothing evdev can really do about it at the moment and we might need to somehow > coordinate this in destroy_dev(). > > Kyle Evans This thread ended up going largely off-list because I was traveling, but to kind of summarize the remainder of the discussion: cdevpriv bits are properly protected by the cdevpriv_mtx, but I pitched the following scenario: Consider threads (U)ser and (D)river: - (U) has called close(2) and is in the middle of devfs_close_f, maybe has bumped the thread refcount - (D) has initiated destroy_dev, waiting for the thread refcount to drop Let's assume now that (U) releases the thread ref. What stops (D) and (U) from subsequently racing to grab the cdevpriv_mtx? I couldn't immediately see anything that might, so let's pretend that (U) wins and peels the cdevpriv off, so now the cdevpriv list is empty. (D) is free to return from destroy_dev while (U) is in the middle of executing the dtor, where we destroy the sx that (U) is trying to acquire. kib created D53303[0] to have destroy_dev() provide a release barrier for cdevpriv destructors so that callers can safely release state as all destructors have run, either by destroy_dev() itself or a concurrent close(2), which I think is the right balance. Thanks, Kyle Evans [0] https://reviews.freebsd.org/D53303 From nobody Fri Oct 24 15:32:41 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ctRjn5XVKz6DjMX for ; Fri, 24 Oct 2025 15:32:45 +0000 (UTC) (envelope-from guru@unixarea.de) Received: from ms-10.1blu.de (ms-10.1blu.de [178.254.4.101]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4ctRjn3X4fz3PVB for ; Fri, 24 Oct 2025 15:32:45 +0000 (UTC) (envelope-from guru@unixarea.de) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=unixarea.de ; s=blu3434000; h=In-Reply-To:Content-Transfer-Encoding:Content-Type: MIME-Version:References:Reply-To:Message-ID:Subject:Cc:To:From:Date:Sender: Content-ID:Content-Description; bh=4wz4Wsi4ZGs5iQOsS/caGfWG+3JNL+9OEIp/Q4kDQfo=; b=kdVG13thc/1oufLCdTyfLujm/w cZQRsJu9F9O+Qdti1Z6mtmvrC+rw9pIzHrl1lo+OOgZyGBsGMMRqQPcbWqIsnRawXzUM1adPcWdIu Aj8GxQu3CwrcP8QTPdjG4cAAGQZTGEItSeItjALZkk1nHotxM65/XLhmAsSu7/CQ99zve4swDt6ZD bH1mf/ubHk+eQ3kFBXrOYS2DSc5FlwkCeNPMaFh3qkl0S1uDORs36L9Ur4+7B9aa5ut44wPGcFDwe C7LEd/AoDxakOcLfLmas4vR0aTER8EUpVpr2YwMm3FIkevUJbfEn+eDCVhKE859CFzeKOBrmLvfoy ZGUsrQzA==; Received: from [62.216.210.36] (helo=localhost.unixarea.de) by ms-10.1blu.de with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1vCJmU-004dKe-HC; Fri, 24 Oct 2025 17:32:42 +0200 Received: from localhost.my.domain (c720-1400094 [127.0.0.1]) by localhost.unixarea.de (8.17.1/8.14.9) with ESMTP id 59OFWgHE019544; Fri, 24 Oct 2025 17:32:42 +0200 (CEST) (envelope-from guru@unixarea.de) Received: (from guru@localhost) by localhost.my.domain (8.17.1/8.14.9/Submit) id 59OFWfjJ019543; Fri, 24 Oct 2025 17:32:41 +0200 (CEST) (envelope-from guru@unixarea.de) X-Authentication-Warning: localhost.my.domain: guru set sender to guru@unixarea.de using -f Date: Fri, 24 Oct 2025 17:32:41 +0200 From: Matthias Apitz To: Tomoaki AOKI Cc: freebsd-current@freebsd.org Subject: Re: building editors/libreoffice fails with: unknown USE_QT component 'tools' invalid Message-ID: Reply-To: Matthias Apitz Mail-Followup-To: Tomoaki AOKI , freebsd-current@freebsd.org References: <20251024205724.fd45bb4cb6948538ae0fe64e@dec.sakura.ne.jp> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20251024205724.fd45bb4cb6948538ae0fe64e@dec.sakura.ne.jp> X-Operating-System: FreeBSD 14.0-CURRENT r1400094 (amd64) X-message-flag: Mails in HTML will not be read! Please, only plain text. X-Con-Id: 51246 X-Con-U: 0-guru X-Originating-IP: 62.216.210.36 X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:42730, ipnet:178.254.0.0/19, country:DE] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4ctRjn3X4fz3PVB El día viernes, octubre 24, 2025 a las 08:57:24p. m. +0900, Tomoaki AOKI escribió: > On Fri, 24 Oct 2025 11:13:56 +0200 > Matthias Apitz wrote: > > > I'm building ports with poudriere on a recent CURRENT: > > > > $ uname -a > > FreeBSD jet 16.0-CURRENT FreeBSD 16.0-CURRENT #0 main-n281256-7d6221ff1447: Sun Oct 19 12:57:22 CEST 2025 guru@jet:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 > > > > Building editors/libreoffice fails with > > > > > > [00:01:00] Gathering ports metadata > > [00:01:01] Calculating ports order and dependencies > > [00:01:01] Sanity checking the repository > > [00:01:01] Trimming IGNORED and blacklisted ports > > [00:01:01] Ignoring editors/libreoffice | libreoffice-25.8.2.2: cannot be installed: unknown USE_QT component 'tools' > > [00:01:02] Checking packages for incremental rebuild needs > > > > I've no idea where to disable USE_QT. Thanks > > > > matthias > > > > -- > > Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045 > > Public GnuPG key: http://www.unixarea.de/key.pub > > Do you have anything in /usr/local/lib/compat/pkg/? root@jet: # ls -ld /usr/local/lib/compat/pkg/ drwxr-xr-x 2 root wheel 512 Oct 21 08:36 /usr/local/lib/compat/pkg/ root@jet: # ls -l /usr/local/lib/compat/pkg/ total 0 On the host 'jet' only a few ports are installed, for example ports-mgmt/poudriere-devel; the packages are build in jails. I wanted to look into the sources of libreoffice to see if this raises the message in question and see: root@jet: # cd /usr/ports/editors/libreoffice root@jet: # make fetch ===> libreoffice-25.8.2.2 cannot be installed: unknown USE_QT component 'tools'. *** Error code 1 Stop. i.e. the problem must be in the ports Makefiles. Should I file a PR? matthias -- Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045 Public GnuPG key: http://www.unixarea.de/key.pub From nobody Fri Oct 24 18:39:55 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ctWst1HNmz6F6Ck; Fri, 24 Oct 2025 18:40:02 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Received: from www121.sakura.ne.jp (www121.sakura.ne.jp [153.125.133.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4ctWss47xVz3qjg; Fri, 24 Oct 2025 18:40:01 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Authentication-Results: mx1.freebsd.org; none Received: from kalamity.joker.local (124-18-6-240.area1c.commufa.jp [124.18.6.240]) (authenticated bits=0) by www121.sakura.ne.jp (8.18.1/8.17.1/[SAKURA-WEB]/20201212) with ESMTPA id 59OIduLW093398; Sat, 25 Oct 2025 03:39:57 +0900 (JST) (envelope-from junchoon@dec.sakura.ne.jp) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=dec.sakura.ne.jp; s=s2405; t=1761331198; bh=3gooqIPBYDG1d6+O1aZ7j0rxLm4U3m5vK2QVmE/n/Rg=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=bn3HlP/N8fk7eRWrEzH8SexeKle7b2Og1v3lwJRn6akIIXr2f//XWskifAtogW1z3 zDVBTcdKOUBaXyQDiV3lt5HtFeArJHB5znri9QQnOw1MifXVr/w4ItIj37WgjxMVNL tJ5qaKRLwqk8sAGBQtgjf6nTDqmQZuQljp/WuXUU= Date: Sat, 25 Oct 2025 03:39:55 +0900 From: Tomoaki AOKI To: Matthias Apitz Cc: freebsd-current@freebsd.org, freebsd-ports@freebsd.org Subject: Re: building editors/libreoffice fails with: unknown USE_QT component 'tools' invalid Message-Id: <20251025033955.68d2545595dfc959bb8e3510@dec.sakura.ne.jp> In-Reply-To: References: <20251024205724.fd45bb4cb6948538ae0fe64e@dec.sakura.ne.jp> Organization: Junchoon corps X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; amd64-portbld-freebsd15.0) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:7684, ipnet:153.125.128.0/18, country:JP] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4ctWss47xVz3qjg On Fri, 24 Oct 2025 17:32:41 +0200 Matthias Apitz wrote: > El día viernes, octubre 24, 2025 a las 08:57:24p. m. +0900, Tomoaki AOKI escribió: > > > On Fri, 24 Oct 2025 11:13:56 +0200 > > Matthias Apitz wrote: > > > > > I'm building ports with poudriere on a recent CURRENT: > > > > > > $ uname -a > > > FreeBSD jet 16.0-CURRENT FreeBSD 16.0-CURRENT #0 main-n281256-7d6221ff1447: Sun Oct 19 12:57:22 CEST 2025 guru@jet:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 > > > > > > Building editors/libreoffice fails with > > > > > > > > > [00:01:00] Gathering ports metadata > > > [00:01:01] Calculating ports order and dependencies > > > [00:01:01] Sanity checking the repository > > > [00:01:01] Trimming IGNORED and blacklisted ports > > > [00:01:01] Ignoring editors/libreoffice | libreoffice-25.8.2.2: cannot be installed: unknown USE_QT component 'tools' > > > [00:01:02] Checking packages for incremental rebuild needs > > > > > > I've no idea where to disable USE_QT. Thanks > > > > > > matthias > > > > > > -- > > > Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045 > > > Public GnuPG key: http://www.unixarea.de/key.pub > > > > Do you have anything in /usr/local/lib/compat/pkg/? > > root@jet: # ls -ld /usr/local/lib/compat/pkg/ > drwxr-xr-x 2 root wheel 512 Oct 21 08:36 /usr/local/lib/compat/pkg/ > root@jet: # ls -l /usr/local/lib/compat/pkg/ > total 0 > > On the host 'jet' only a few ports are installed, for example > ports-mgmt/poudriere-devel; the packages are build in jails. > > I wanted to look into the sources of libreoffice to see if this raises > the message in question and see: > > root@jet: # cd /usr/ports/editors/libreoffice > root@jet: # make fetch > ===> libreoffice-25.8.2.2 cannot be installed: unknown USE_QT component > 'tools'. > *** Error code 1 > > Stop. > > i.e. the problem must be in the ports Makefiles. Should I file a PR? > > matthias > > -- > Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045 > Public GnuPG key: http://www.unixarea.de/key.pub So you'd better posting to freebsd-ports ML rather than freebsd-current. If the issue was related with /usr/local/lib/compat/pkg, it could be fit here (freebsd-current), as in such cases mechanism to always make the directory at the end of library search path would be wanted, which should be in base. Looking into Mk/Uses/qt.mk, the "tools" in USE_QT are expanded into devel/qt6-tools and it exists. ("tools:build" means it's only applicable for build time.) qt5 doesn't have component "tool", but it's specified only for QT6 option in editors/libreoffice/Makefile. And as mine was configured with old default (still specifying QT5), tried new default (enabling GTK3 and switching QT5 to QT6), fetch succeeded and fetch-recursive, too (if specifying "DISABLE_VULNERABILITIES=yes" in the command line, due to libxslt vulnerability). My ports tree is at commit 0722733030c8. Not yet tried building, though, as my poudriere builders are too busy as of OSVERSION (comes from __FreeBSD_version) bump on stable/15. -- Tomoaki AOKI From nobody Sat Oct 25 06:27:26 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ctqZD2fMHz6DYBn; Sat, 25 Oct 2025 06:27:32 +0000 (UTC) (envelope-from guru@unixarea.de) Received: from ms-10.1blu.de (ms-10.1blu.de [178.254.4.101]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4ctqZD0V82z4LkG; Sat, 25 Oct 2025 06:27:31 +0000 (UTC) (envelope-from guru@unixarea.de) Authentication-Results: mx1.freebsd.org; none DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=unixarea.de ; s=blu3434000; h=In-Reply-To:Content-Transfer-Encoding:Content-Type: MIME-Version:References:Reply-To:Message-ID:Subject:Cc:To:From:Date:Sender: Content-ID:Content-Description; bh=suju2ngksXiYpLbHXgEqrFyBpz3U1SLz0o5VmaUJDuc=; b=bSwbv+0U3qoeo0XSnteD1rbgQE H4d4tj9tWNX3yJZJbQYu6V4eH8P4Ztfj8E25sUApPzbG+Te8Dpajf75PqGCyUkrVoLnejvmlBrr/y KIvKEOTAUDaGrGx7ginK4i5pYlKvyDvNebSsa1y+ss8OuczmDuS13JAKoNyLOOAp+1QfJHA4Dssx5 gnqWqojiR1FLwUjEixmUdIXLm4rTqx04F21B+mPH4sL2ck48faUABVp6rbf4+717rqn+nLlhlp45K nrQuZKbD0JGze/4THVdAz1FkX0HfTgcgqNKe9gNkCOeM4wX26KM1mWhaOCF3LwKJKI/TadLqFy7Bd PWtBrp5Q==; Received: from [62.216.210.36] (helo=localhost.unixarea.de) by ms-10.1blu.de with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1vCXkO-00HCYI-Qq; Sat, 25 Oct 2025 08:27:28 +0200 Received: from localhost.my.domain (c720-1400094 [127.0.0.1]) by localhost.unixarea.de (8.17.1/8.14.9) with ESMTP id 59P6RS4u011082; Sat, 25 Oct 2025 08:27:28 +0200 (CEST) (envelope-from guru@unixarea.de) Received: (from guru@localhost) by localhost.my.domain (8.17.1/8.14.9/Submit) id 59P6RQes011081; Sat, 25 Oct 2025 08:27:26 +0200 (CEST) (envelope-from guru@unixarea.de) X-Authentication-Warning: localhost.my.domain: guru set sender to guru@unixarea.de using -f Date: Sat, 25 Oct 2025 08:27:26 +0200 From: Matthias Apitz To: Tomoaki AOKI Cc: freebsd-current@freebsd.org, freebsd-ports@freebsd.org Subject: Re: building editors/libreoffice fails with: unknown USE_QT component 'tools' invalid Message-ID: Reply-To: Matthias Apitz Mail-Followup-To: Tomoaki AOKI , freebsd-current@freebsd.org, freebsd-ports@freebsd.org References: <20251024205724.fd45bb4cb6948538ae0fe64e@dec.sakura.ne.jp> <20251025033955.68d2545595dfc959bb8e3510@dec.sakura.ne.jp> List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20251025033955.68d2545595dfc959bb8e3510@dec.sakura.ne.jp> X-Operating-System: FreeBSD 14.0-CURRENT r1400094 (amd64) X-message-flag: Mails in HTML will not be read! Please, only plain text. X-Con-Id: 51246 X-Con-U: 0-guru X-Originating-IP: 62.216.210.36 X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:42730, ipnet:178.254.0.0/19, country:DE] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4ctqZD0V82z4LkG El día sábado, octubre 25, 2025 a las 03:39:55a. m. +0900, Tomoaki AOKI escribió: > So you'd better posting to freebsd-ports ML rather than freebsd-current. > > If the issue was related with /usr/local/lib/compat/pkg, it could be > fit here (freebsd-current), as in such cases mechanism to always make > the directory at the end of library search path would be wanted, > which should be in base. > > > Looking into Mk/Uses/qt.mk, the "tools" in USE_QT are expanded into > devel/qt6-tools and it exists. ("tools:build" means it's only applicable > for build time.) qt5 doesn't have component "tool", but it's specified > only for QT6 option in editors/libreoffice/Makefile. > > And as mine was configured with old default (still specifying QT5), > tried new default (enabling GTK3 and switching QT5 to QT6), > fetch succeeded and fetch-recursive, too (if specifying > "DISABLE_VULNERABILITIES=yes" in the command line, due to libxslt > vulnerability). My ports tree is at commit 0722733030c8. > > Not yet tried building, though, as my poudriere builders are too > busy as of OSVERSION (comes from __FreeBSD_version) bump on stable/15. I found an older PR in https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275711 with exactly the same subject: editors/libreoffice cannot be installed: unknown USE_QT component 'tools' btw: this can't be found with Googl with a searchlike this: libreoffice "cannot be installed:" unknown USE_QT component" Anyway, it gave me a hint and I looked into the very old ports options, and solved the issue with: # ls -l /usr/local/etc/poudriere.d/160-CURRENT-options/editors_libreoffice/options /usr/local/etc/poudriere.d/150-CURRENT-options/editors_libreoffice/options /var/db/ports/editors_libreoffice/options -rw-r--r-- 1 root wheel 540 Feb 1 2021 /usr/local/etc/poudriere.d/150-CURRENT-options/editors_libreoffice/options -rw-r--r-- 1 root wheel 540 Feb 1 2021 /usr/local/etc/poudriere.d/160-CURRENT-options/editors_libreoffice/options -rw-r--r-- 1 root wheel 540 Feb 1 2021 /var/db/ports/editors_libreoffice/options i.e. all my ports options for editors/libreoffice, in all jails have been outdated. # cat /var/db/ports/editors_libreoffice/options # This file is auto-generated by 'make config'. # Options for libreoffice-7.0.3.1_2 _OPTIONS_READ=libreoffice-7.0.3.1_2 _FILE_COMPLETE_OPTIONS_LIST=COINMP CUPS DOCS GNOME GTK3 JAVA KF5 MMEDIA PGSQL QT5 SDK TEST WEBDAV OPTIONS_FILE_UNSET+=COINMP OPTIONS_FILE_SET+=CUPS OPTIONS_FILE_SET+=DOCS OPTIONS_FILE_UNSET+=GNOME OPTIONS_FILE_UNSET+=GTK3 OPTIONS_FILE_UNSET+=JAVA OPTIONS_FILE_UNSET+=KF5 OPTIONS_FILE_SET+=MMEDIA OPTIONS_FILE_UNSET+=PGSQL OPTIONS_FILE_SET+=QT5 OPTIONS_FILE_UNSET+=SDK OPTIONS_FILE_UNSET+=TEST OPTIONS_FILE_UNSET+=WEBDAV I run a 'make config' and marked in addition 'KF5': ... │ │─────────────────── Select Qt GUI engine version ─────────────────────│ │ │ │ (*) QT5 Qt5 GUI toolkit support │ │ │ │new ( ) QT6 Qt6 GUI toolkit support (default visual style) │ │ │ │────────────────── Select KDE GUI engine version ─────────────────────│ │ │ │ ( ) KF5 KF5/Qt5 GUI toolkit support (implies QT5) │ │ │ │new ( ) KF6 KF6/Qt6 GUI toolkit support (implies QT6) │ │ │ └─────────────────────────────────────────────────────────────────100%─┘ │ and all seems to be fine. Test with poudriere still pending. Thanks matthias -- Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045 Public GnuPG key: http://www.unixarea.de/key.pub From nobody Sat Oct 25 09:34:56 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ctvkZ67pPz6DwMQ; Sat, 25 Oct 2025 09:35:02 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Received: from www121.sakura.ne.jp (www121.sakura.ne.jp [153.125.133.21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4ctvkZ1qq9z3RNZ; Sat, 25 Oct 2025 09:35:01 +0000 (UTC) (envelope-from junchoon@dec.sakura.ne.jp) Authentication-Results: mx1.freebsd.org; none Received: from kalamity.joker.local (124-18-6-240.area1c.commufa.jp [124.18.6.240]) (authenticated bits=0) by www121.sakura.ne.jp (8.18.1/8.17.1/[SAKURA-WEB]/20201212) with ESMTPA id 59P9YuhW008537; Sat, 25 Oct 2025 18:34:56 +0900 (JST) (envelope-from junchoon@dec.sakura.ne.jp) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=dec.sakura.ne.jp; s=s2405; t=1761384897; bh=2sDzBXpgEWeY9zCCr61UY6IKhcouHJf15ShQUPsFTqA=; h=Date:From:To:Cc:Subject:In-Reply-To:References; b=dPKcZeiMHPL4itI78XsFLE5Z16aaPm3QUTUPvIxyEA/4hroQ3IE0QOD48bPyromWP PJip+XhDHKH/2YzxhqbK7U3ghwPgLCivLHG0YJ/wBBr94DtTwZcw7jfl7TQNb3A5YB gybbYPEOqU6jfoSt5velVhzBI3yAtw/s7CJ+Sulk= Date: Sat, 25 Oct 2025 18:34:56 +0900 From: Tomoaki AOKI To: Matthias Apitz Cc: freebsd-current@freebsd.org, freebsd-ports@freebsd.org Subject: Re: building editors/libreoffice fails with: unknown USE_QT component 'tools' invalid Message-Id: <20251025183456.75a40a2be72fa9ed58850050@dec.sakura.ne.jp> In-Reply-To: References: <20251024205724.fd45bb4cb6948538ae0fe64e@dec.sakura.ne.jp> <20251025033955.68d2545595dfc959bb8e3510@dec.sakura.ne.jp> Organization: Junchoon corps X-Mailer: Sylpheed 3.7.0 (GTK+ 2.24.33; amd64-portbld-freebsd15.0) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spamd-Bar: ---- X-Spamd-Result: default: False [-4.00 / 15.00]; REPLY(-4.00)[]; ASN(0.00)[asn:7684, ipnet:153.125.128.0/18, country:JP] X-Rspamd-Pre-Result: action=no action; module=replies; Message is reply to one we originated X-Rspamd-Queue-Id: 4ctvkZ1qq9z3RNZ On Sat, 25 Oct 2025 08:27:26 +0200 Matthias Apitz wrote: > El día sábado, octubre 25, 2025 a las 03:39:55a. m. +0900, Tomoaki AOKI escribió: > > > So you'd better posting to freebsd-ports ML rather than freebsd-current. > > > > If the issue was related with /usr/local/lib/compat/pkg, it could be > > fit here (freebsd-current), as in such cases mechanism to always make > > the directory at the end of library search path would be wanted, > > which should be in base. > > > > > > Looking into Mk/Uses/qt.mk, the "tools" in USE_QT are expanded into > > devel/qt6-tools and it exists. ("tools:build" means it's only applicable > > for build time.) qt5 doesn't have component "tool", but it's specified > > only for QT6 option in editors/libreoffice/Makefile. > > > > And as mine was configured with old default (still specifying QT5), > > tried new default (enabling GTK3 and switching QT5 to QT6), > > fetch succeeded and fetch-recursive, too (if specifying > > "DISABLE_VULNERABILITIES=yes" in the command line, due to libxslt > > vulnerability). My ports tree is at commit 0722733030c8. > > > > Not yet tried building, though, as my poudriere builders are too > > busy as of OSVERSION (comes from __FreeBSD_version) bump on stable/15. > > I found an older PR in > https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=275711 > with exactly the same subject: > editors/libreoffice cannot be installed: unknown USE_QT component 'tools' > > btw: this can't be found with Googl with a searchlike this: > libreoffice "cannot be installed:" unknown USE_QT component" Maybe it would be a side effect to prevent too messy AI crawler DoS attacks. Polite robots would possibly no longer crawl there as of the configuration. (Recently and finally, Anubis is introduced.) Maybe even Anubis would NOT be effective enough, as attackers (AI companies) would find way to mimic something. > Anyway, it gave me a hint and I looked into the very old ports options, > and solved the issue with: > > # ls -l /usr/local/etc/poudriere.d/160-CURRENT-options/editors_libreoffice/options /usr/local/etc/poudriere.d/150-CURRENT-options/editors_libreoffice/options /var/db/ports/editors_libreoffice/options > -rw-r--r-- 1 root wheel 540 Feb 1 2021 /usr/local/etc/poudriere.d/150-CURRENT-options/editors_libreoffice/options > -rw-r--r-- 1 root wheel 540 Feb 1 2021 /usr/local/etc/poudriere.d/160-CURRENT-options/editors_libreoffice/options > -rw-r--r-- 1 root wheel 540 Feb 1 2021 /var/db/ports/editors_libreoffice/options > > i.e. all my ports options for editors/libreoffice, in all jails have > been outdated. > > # cat /var/db/ports/editors_libreoffice/options > # This file is auto-generated by 'make config'. > # Options for libreoffice-7.0.3.1_2 > _OPTIONS_READ=libreoffice-7.0.3.1_2 > _FILE_COMPLETE_OPTIONS_LIST=COINMP CUPS DOCS GNOME GTK3 JAVA KF5 MMEDIA PGSQL QT5 SDK TEST WEBDAV > OPTIONS_FILE_UNSET+=COINMP > OPTIONS_FILE_SET+=CUPS > OPTIONS_FILE_SET+=DOCS > OPTIONS_FILE_UNSET+=GNOME > OPTIONS_FILE_UNSET+=GTK3 > OPTIONS_FILE_UNSET+=JAVA > OPTIONS_FILE_UNSET+=KF5 > OPTIONS_FILE_SET+=MMEDIA > OPTIONS_FILE_UNSET+=PGSQL > OPTIONS_FILE_SET+=QT5 > OPTIONS_FILE_UNSET+=SDK > OPTIONS_FILE_UNSET+=TEST > OPTIONS_FILE_UNSET+=WEBDAV > > I run a 'make config' and marked in addition 'KF5': > > ... > │ │─────────────────── Select Qt GUI engine version ─────────────────────│ │ > │ │ (*) QT5 Qt5 GUI toolkit support │ │ > │ │new ( ) QT6 Qt6 GUI toolkit support (default visual style) │ │ > │ │────────────────── Select KDE GUI engine version ─────────────────────│ │ > │ │ ( ) KF5 KF5/Qt5 GUI toolkit support (implies QT5) │ │ > │ │new ( ) KF6 KF6/Qt6 GUI toolkit support (implies QT6) │ │ > │ └─────────────────────────────────────────────────────────────────100%─┘ │ > > and all seems to be fine. Test with poudriere still pending. > > Thanks > > matthias > > -- > Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045 > Public GnuPG key: http://www.unixarea.de/key.pub If you don't need per-builder-jail config and need bare metal builds (make, portupgrade, pkg_replace, portmaster,...) with same options, you can make /usr/local/etc/poudriere.d/options to be a symlink to /var/db/ports. My options for editors/libreoffice that is going to be used for next builds is like below. # This file is auto-generated by 'make config'. # Options for libreoffice-25.8.2.2 _OPTIONS_READ=libreoffice-25.8.2.2 _FILE_COMPLETE_OPTIONS_LIST=COINMP CUPS DOCS GNOME GTK3 GTK4 JAVA LTO MARIADB MMEDIA PDFIUM PGSQL SDK TEST WEBDAV QT5 QT6 KF5 KF6 OPTIONS_FILE_UNSET+=COINMP OPTIONS_FILE_SET+=CUPS OPTIONS_FILE_SET+=DOCS OPTIONS_FILE_UNSET+=GNOME OPTIONS_FILE_SET+=GTK3 OPTIONS_FILE_UNSET+=GTK4 OPTIONS_FILE_SET+=JAVA OPTIONS_FILE_UNSET+=LTO OPTIONS_FILE_UNSET+=MARIADB OPTIONS_FILE_SET+=MMEDIA OPTIONS_FILE_SET+=PDFIUM OPTIONS_FILE_UNSET+=PGSQL OPTIONS_FILE_UNSET+=SDK OPTIONS_FILE_UNSET+=TEST OPTIONS_FILE_UNSET+=WEBDAV OPTIONS_FILE_UNSET+=QT5 OPTIONS_FILE_SET+=QT6 OPTIONS_FILE_UNSET+=KF5 OPTIONS_FILE_UNSET+=KF6 At least `make DISABLE_VULNERABILITIES=yes fetch-recursive` at /usr/ports/editors/libreoffice did not complained with it. And what differs with my currently installed one is for GTK3 and QT6. GTK3 is unset and QT5 instead of QT6 for the build done. -- Tomoaki AOKI From nobody Sun Oct 26 23:14:31 2025 X-Original-To: freebsd-current@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4cvst36RgNz6Dpn4 for ; Sun, 26 Oct 2025 23:14:51 +0000 (UTC) (envelope-from kob6558@gmail.com) Received: from mail-yw1-x112e.google.com (mail-yw1-x112e.google.com [IPv6:2607:f8b0:4864:20::112e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (2048 bits) client-digest SHA256) (Client CN "smtp.gmail.com", Issuer "WR4" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cvst321Rxz3gKH for ; Sun, 26 Oct 2025 23:14:51 +0000 (UTC) (envelope-from kob6558@gmail.com) Authentication-Results: mx1.freebsd.org; dkim=pass header.d=gmail.com header.s=20230601 header.b="eub1gnB/"; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (mx1.freebsd.org: domain of kob6558@gmail.com designates 2607:f8b0:4864:20::112e as permitted sender) smtp.mailfrom=kob6558@gmail.com Received: by mail-yw1-x112e.google.com with SMTP id 00721157ae682-7814273415cso31604717b3.1 for ; Sun, 26 Oct 2025 16:14:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1761520488; x=1762125288; darn=freebsd.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=H5JEu/RDE5qGEeJhqkpPYawCa8dbFqEshd0heW7PPAw=; b=eub1gnB/L2tQcvw4XwC2HmV5s7544trKE8dpeMEAJwjKURh86ejzLMoYcwGPtf166C 6hyQJPKwRWCI3/OFMNNciQSPMFSNLmhMcvrNRTlG3TA/BoSPoxEjemSnmhfNQROxlthN r9yBLZ7IJOoIS6aeExmxRniZs99KpKP82JN/zvQuf6ITK6p0nO89h7z8Ftce2R9uWBxD s7yMArYeK4c4PXpJCinW2QGkiI82z39lmkp7m1EvdHtdy/CPQdTzIKlFUA7LoQrKX34x w9L2njKcTUig6uCWeeYvXlqK1ODMrximc16o+Mn6rU4OXShCu47r6DY1DPPt0WrWvYVM kpmA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1761520488; x=1762125288; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=H5JEu/RDE5qGEeJhqkpPYawCa8dbFqEshd0heW7PPAw=; b=haNg+oRCKz+OOKkeMeMjxCFaFouIi3lhZ3VA32zy/gvy/foroTUD+puXAqoGFJSxDi H4SpTiuLpWe90A2oERMpiMZN7WBCrQIS+ORD7a7yXgiIRl/7HGHXqQ5Hae/XKw97D3Dy He4o7SOyf1UqWwjqO4Uf9Biq3pXFlpNVca1iVlDJIJMDYPAUQrdNxJgv3JAENLl9c5tb 8r7NJoENroF+3WIMoxGTkLHLk/+WNkVhd9N2PnN7louX1HH/G1nGrG91L1nrPBm43huc v522aDzh5x7z6+X6MN26hnPGTb0cBLAs39ebGV53N9+yldE/l5aL+/lZWOD+M9oJfCrC N1rg== X-Gm-Message-State: AOJu0Yy4x51SJxzX0arTFrzdvfJvl1/2JZCM8cRgZjr7N1frGADUFsQD 1woUoF2ZAqyAggi6aG1JazRpjQfl6NC3Kku+BDeT+CfMbcp9qcr1Ei92QHM+lT3mB+25wyA333t BD7jsTDzdJ9knhZnrgurFNdJec9mJt+kxtA7u X-Gm-Gg: ASbGncsuaVv79oRc2tqHzP0E9cfqkWx0S+rqp8R2azubs+5OYCPu0l3Zhcp68nLTuFt 9T6CZxa578sIqHMgNdfLQY/zHt+sYx4EJN4VIgna5Bk4nho4+vVw1M7olty3EKKbVZq6zzYt6aB GvcGyc967m6AYMloKSbtAZbbm9LsymBrzo9ObbnMUNGwPoph72ZIgio9y5RvL1/WWoCtQWjNwAk JtYpyoPzpC8OBoej3ruZaTmTjizIENiA3M9UXSy8zqWzz9iFJzvttjSauME5R0iYX2xArwxE4rI C8TEhOs7HWY5UFfumA== X-Google-Smtp-Source: AGHT+IGCEjN6A5G69SoMxqAXa/mPz3p0Ya7pdDXtxhat2cZlqVTr7kFL4Om/BYsXsWIwUSUMbx+YGLhj9+2oPArufbI= X-Received: by 2002:a05:690e:2505:10b0:63e:aa3:3f90 with SMTP id 956f58d0204a3-63e160e6045mr25573217d50.14.1761520488124; Sun, 26 Oct 2025 16:14:48 -0700 (PDT) List-Id: Discussions about the use of FreeBSD-current List-Archive: https://lists.freebsd.org/archives/freebsd-current List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-current@FreeBSD.org MIME-Version: 1.0 From: Kevin Oberman Date: Sun, 26 Oct 2025 16:14:31 -0700 X-Gm-Features: AWmQ_bn7SLWLnHTw_Jn_KlbyV8IzRsvFwMMwcxVvNWPSMa6M3I8i3wno5Qirxjo Message-ID: Subject: Very odd USB events yesterday To: FreeBSD Current Content-Type: multipart/alternative; boundary="000000000000f593b5064217f25c" X-Spamd-Bar: --- X-Spamd-Result: default: False [-3.70 / 15.00]; NEURAL_HAM_LONG(-1.00)[-1.000]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; DMARC_POLICY_ALLOW(-0.50)[gmail.com,none]; FORGED_SENDER(0.30)[rkoberman@gmail.com,kob6558@gmail.com]; R_SPF_ALLOW(-0.20)[+ip6:2607:f8b0:4000::/36]; R_DKIM_ALLOW(-0.20)[gmail.com:s=20230601]; MIME_GOOD(-0.10)[multipart/alternative,text/plain]; RCVD_TLS_LAST(0.00)[]; ARC_NA(0.00)[]; FROM_HAS_DN(0.00)[]; MIME_TRACE(0.00)[0:+,1:+,2:~]; RCPT_COUNT_ONE(0.00)[1]; DWL_DNSWL_NONE(0.00)[gmail.com:dkim]; FREEMAIL_FROM(0.00)[gmail.com]; TO_DN_ALL(0.00)[]; DKIM_TRACE(0.00)[gmail.com:+]; FREEMAIL_ENVFROM(0.00)[gmail.com]; MID_RHS_MATCH_FROMTLD(0.00)[]; PREVIOUSLY_DELIVERED(0.00)[freebsd-current@freebsd.org]; FROM_NEQ_ENVFROM(0.00)[rkoberman@gmail.com,kob6558@gmail.com]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MLMMJ_DEST(0.00)[freebsd-current@freebsd.org]; RCVD_COUNT_ONE(0.00)[1]; ASN(0.00)[asn:15169, ipnet:2607:f8b0::/32, country:US]; MISSING_XM_UA(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[2607:f8b0:4864:20::112e:from] X-Rspamd-Queue-Id: 4cvst321Rxz3gKH --000000000000f593b5064217f25c Content-Type: text/plain; charset="UTF-8" In the message log I saw a very strange, long list of events that I simply can't understand. There was no connection of any USB device during these events. No idea what might have triggered them. Here is my usbconfig: # usbconfig ugen0.1: at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) ugen1.1: at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA) ugen1.2: at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA) ugen1.3: at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA) Here are about 42 lines of log which show the first of several similar series: Oct 25 11:05:54 ptavv kernel: ugen1.4: at usbus1 Oct 25 11:05:54 ptavv kernel: uhub2 on uhub1 Oct 25 11:05:54 ptavv kernel: uhub2: on usbus1 Oct 25 11:05:55 ptavv kernel: uhub2: 4 ports with 0 removable, bus powered Oct 25 11:05:55 ptavv kernel: ugen1.5: at usbus1 Oct 25 11:05:55 ptavv kernel: umass0 on uhub2 Oct 25 11:05:55 ptavv kernel: umass0: on usbus1 Oct 25 11:05:55 ptavv kernel: umass0: SCSI over Bulk-Only; quirks = 0x0 Oct 25 11:05:55 ptavv kernel: umass0:1:0: Attached to scbus1 Oct 25 11:05:55 ptavv kernel: usbhid0 on uhub2 Oct 25 11:05:55 ptavv kernel: usbhid0: on usbus1 Oct 25 11:05:55 ptavv kernel: hidbus0: on usbhid0 Oct 25 11:05:55 ptavv kernel: usbhid1 on uhub2 Oct 25 11:05:55 ptavv kernel: usbhid1: on usbus1 Oct 25 11:05:55 ptavv kernel: hidbus1: on usbhid1 Oct 25 11:05:55 ptavv kernel: hkbd0: on hidbus1 Oct 25 11:05:55 ptavv kernel: kbd2 at hkbd0 Oct 25 11:05:55 ptavv kernel: usbhid2 on uhub2 Oct 25 11:05:55 ptavv kernel: usbhid2: on usbus1 Oct 25 11:05:55 ptavv kernel: da0 at umass-sim0 bus 0 scbus1 target 0 lun 0 Oct 25 11:05:55 ptavv kernel: da0: < 0001> Removable Direct Access SPC-2 SCSI device Oct 25 11:05:55 ptavv kernel: da0: Serial Number ABCDEF0123456789 Oct 25 11:06:02 ptavv kernel: ugen1.4: at usbus1 (disconnected) Oct 25 11:06:02 ptavv kernel: uhub2: at uhub1, port 7, addr 4 (disconnected) Oct 25 11:06:02 ptavv kernel: ugen1.5: at usbus1 (disconnected) Oct 25 11:06:02 ptavv kernel: umass0: at uhub2, port 1, addr 5 (disconnected) Oct 25 11:06:02 ptavv kernel: da0 at umass-sim0 bus 0 scbus1 target 0 lun 0 Oct 25 11:06:02 ptavv kernel: da0: < 0001> s/n ABCDEF0123456789 detached Oct 25 11:06:02 ptavv kernel: (da0:umass-sim0:0:0:0): Periph destroyed Oct 25 11:06:02 ptavv kernel: umass0: detached Oct 25 11:06:02 ptavv kernel: usbhid0: at uhub2, port 1, addr 5 (disconnected) Oct 25 11:06:02 ptavv kernel: hcons0: detached Oct 25 11:06:02 ptavv kernel: hidbus0: detached Oct 25 11:06:02 ptavv kernel: usbhid0: detached Oct 25 11:06:02 ptavv kernel: usbhid1: at uhub2, port 1, addr 5 (disconnected) Oct 25 11:06:02 ptavv kernel: hkbd0: detached Oct 25 11:06:02 ptavv kernel: hidbus1: detached Oct 25 11:06:02 ptavv kernel: usbhid1: detached Oct 25 11:06:02 ptavv kernel: usbhid2: at uhub2, port 1, addr 5 (disconnected) Oct 25 11:06:02 ptavv kernel: hidbus2: detached Oct 25 11:06:02 ptavv kernel: usbhid2: detached Oct 25 11:06:02 ptavv kernel: uhub2: detached There were multiple sequences of this over a period of about 2 hours. They were not continuous. There were gaps of a few seconds to almost 2 hours. All sequences started with hub2 connected and ended with it disconnected. The last sequence ended at 13:02:14 and was followed by: Oct 25 13:02:14 ptavv kernel: usbd_req_re_enumerate: addr=12, set address failed! (USB_ERR_IOERROR, ignored) Oct 25 13:02:16 ptavv kernel: usbd_setup_device_desc: getting device descriptor at addr 12 failed, USB_ERR_IOERROR Oct 25 13:02:17 ptavv kernel: usbd_req_re_enumerate: addr=12, set address failed! (USB_ERR_IOERROR, ignored) Oct 25 13:02:20 ptavv kernel: usbd_setup_device_desc: getting device descriptor at addr 12 failed, USB_ERR_IOERROR Oct 25 13:02:20 ptavv kernel: ugen1.4: at usbus1 (disconnected) That sequence never showed up before the final sequence. Any clues what the heck this was? -- Kevin Oberman, Part time kid herder and retired Network Engineer E-mail: rkoberman@gmail.com PGP Fingerprint: D03FB98AFA78E3B78C1694B318AB39EF1B055683 --000000000000f593b5064217f25c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
In the message log I saw a very strange, lo= ng list of events that I simply can't understand. There was no connecti= on of any USB device during these events. No idea what might have triggered= them.=C2=A0

Here is my usbconfig:
=
# usbconfig
ugen0.1: <XHCI root HUB Intel> at usbus0, cf= g=3D0 md=3DHOST spd=3DSUPER (5.0Gbps) pwr=3DSAVE (0mA)
ugen1.1: <XHCI= root HUB Intel> at usbus1, cfg=3D0 md=3DHOST spd=3DSUPER (5.0Gbps) pwr= =3DSAVE (0mA)
ugen1.2: <Integrated Camera Bison Electronics Inc.> = at usbus1, cfg=3D0 md=3DHOST spd=3DHIGH (480Mbps) pwr=3DON (500mA)
ugen1= .3: <AX211 Bluetooth Intel Corp.> at usbus1, cfg=3D0 md=3DHOST spd=3D= FULL (12Mbps) pwr=3DON (100mA)

Here are = about 42 lines of log which show the first of several similar series:
=
Oct 25 11:05:54 ptavv kernel: ugen1.4: <vendor 0x0a12 product = 0x4010> at usbus1
Oct 25 11:05:54 ptavv kernel: uhub2 on uhub1
Oct= 25 11:05:54 ptavv kernel: uhub2: <vendor 0x0a12 product 0x4010, class 9= /0, rev 2.00/15.84, addr 4> on usbus1
Oct 25 11:05:55 ptavv kernel: u= hub2: 4 ports with 0 removable, bus powered
Oct 25 11:05:55 ptavv kernel= : ugen1.5: <QTIL QCC3034> at usbus1
Oct 25 11:05:55 ptavv kernel: = umass0 on uhub2
Oct 25 11:05:55 ptavv kernel: umass0: <QTIL QCC3034, = class 0/0, rev 2.00/15.83, addr 5> on usbus1
Oct 25 11:05:55 ptavv ke= rnel: umass0: =C2=A0SCSI over Bulk-Only; quirks =3D 0x0
Oct 25 11:05:55 = ptavv kernel: umass0:1:0: Attached to scbus1
Oct 25 11:05:55 ptavv kerne= l: usbhid0 on uhub2
Oct 25 11:05:55 ptavv kernel: usbhid0: <QTIL QCC3= 034, class 0/0, rev 2.00/15.83, addr 5> on usbus1
Oct 25 11:05:55 pta= vv kernel: hidbus0: <HID bus> on usbhid0
Oct 25 11:05:55 ptavv ker= nel: usbhid1 on uhub2
Oct 25 11:05:55 ptavv kernel: usbhid1: <QTIL QC= C3034, class 0/0, rev 2.00/15.83, addr 5> on usbus1
Oct 25 11:05:55 p= tavv kernel: hidbus1: <HID bus> on usbhid1
Oct 25 11:05:55 ptavv k= ernel: hkbd0: <QTIL QCC3034 Keyboard> on hidbus1
Oct 25 11:05:55 p= tavv kernel: kbd2 at hkbd0
Oct 25 11:05:55 ptavv kernel: usbhid2 on uhub= 2
Oct 25 11:05:55 ptavv kernel: usbhid2: <QTIL QCC3034, class 0/0, re= v 2.00/15.83, addr 5> on usbus1
Oct 25 11:05:55 ptavv kernel: da0 at = umass-sim0 bus 0 scbus1 target 0 lun 0
Oct 25 11:05:55 ptavv kernel: da0= : < =C2=A00001> Removable Direct Access SPC-2 SCSI device
Oct 25 1= 1:05:55 ptavv kernel: da0: Serial Number ABCDEF0123456789
Oct 25 11:06:0= 2 ptavv kernel: ugen1.4: <vendor 0x0a12 product 0x4010> at usbus1 (di= sconnected)
Oct 25 11:06:02 ptavv kernel: uhub2: at uhub1, port 7, addr = 4 (disconnected)
Oct 25 11:06:02 ptavv kernel: ugen1.5: <QTIL QCC3034= > at usbus1 (disconnected)
Oct 25 11:06:02 ptavv kernel: umass0: at u= hub2, port 1, addr 5 (disconnected)
Oct 25 11:06:02 ptavv kernel: da0 at= umass-sim0 bus 0 scbus1 target 0 lun 0
Oct 25 11:06:02 ptavv kernel: da= 0: < =C2=A00001> =C2=A0s/n ABCDEF0123456789 detached
Oct 25 11:06:= 02 ptavv kernel: (da0:umass-sim0:0:0:0): Periph destroyed
Oct 25 11:06:0= 2 ptavv kernel: umass0: detached
Oct 25 11:06:02 ptavv kernel: usbhid0: = at uhub2, port 1, addr 5 (disconnected)
Oct 25 11:06:02 ptavv kernel: hc= ons0: detached
Oct 25 11:06:02 ptavv kernel: hidbus0: detached
Oct 25= 11:06:02 ptavv kernel: usbhid0: detached
Oct 25 11:06:02 ptavv kernel: = usbhid1: at uhub2, port 1, addr 5 (disconnected)
Oct 25 11:06:02 ptavv k= ernel: hkbd0: detached
Oct 25 11:06:02 ptavv kernel: hidbus1: detachedOct 25 11:06:02 ptavv kernel: usbhid1: detached
Oct 25 11:06:02 ptavv = kernel: usbhid2: at uhub2, port 1, addr 5 (disconnected)
Oct 25 11:06:02= ptavv kernel: hidbus2: detached
Oct 25 11:06:02 ptavv kernel: usbhid2: = detached
Oct 25 11:06:02 ptavv kernel: uhub2: detached
=
There were multiple sequences of this over a period of = about 2 hours. They were not continuous. There were gaps of a few seconds t= o almost 2 hours.
All sequences started with hub2 connected = and ended with it disconnected.
The last sequence ended at= =C2=A013:02:14 and was followed by:
Oct 25 13:02:14 ptavv ke= rnel: usbd_req_re_enumerate: addr=3D12, set address failed! (USB_ERR_IOERRO= R, ignored)
Oct 25 13:02:16 ptavv kernel: usbd_setup_device_desc: gettin= g device descriptor at addr 12 failed, USB_ERR_IOERROR
Oct 25 13:02:17 p= tavv kernel: usbd_req_re_enumerate: addr=3D12, set address failed! (USB_ERR= _IOERROR, ignored)
Oct 25 13:02:20 ptavv kernel: usbd_setup_device_desc:= getting device descriptor at addr 12 failed, USB_ERR_IOERROR
Oct 25 13:= 02:20 ptavv kernel: ugen1.4: <vendor 0x0a12 product 0x4010> at usbus1= (disconnected)
That sequence never showed up before the= final sequence.

Any clues what the heck= this was?
--
=
Kevin Oberman, Part time kid herder and retired Network Engineer=
E-mail: rkober= man@gmail.com
PGP Fingerprint: D03FB98AFA78E3B78C1694B318= AB39EF1B055683
--000000000000f593b5064217f25c--