From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.sourceforge.net (lists.sourceforge.net [216.105.38.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8A784C433FE for ; Wed, 5 Oct 2022 21:49:49 +0000 (UTC) Received: from [127.0.0.1] (helo=sfs-ml-4.v29.lw.sourceforge.com) by sfs-ml-4.v29.lw.sourceforge.com with esmtp (Exim 4.95) (envelope-from ) id 1ogCGv-0001hp-Vv; Wed, 05 Oct 2022 21:49:46 +0000 Received: from [172.30.20.202] (helo=mx.sourceforge.net) by sfs-ml-4.v29.lw.sourceforge.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.95) (envelope-from ) id 1ogCGt-0001hf-Rv; Wed, 05 Oct 2022 21:49:44 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sourceforge.net; s=x; h=Content-Transfer-Encoding:Content-Type:MIME-Version :Message-Id:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=kCoSuUs9/UuRmM69QeDy2i9LHinxGmdLR45ZcTaEirk=; b=DcOu3b8r7UbdjQm3GvEgLuJFn2 gWE2ewWY0P97HFFsclbQwXV/OlZxYBnzQjN/YHyfTz8kkMuenqNd4ZKbKE/YTWTjNbVsiSHXzj9go /V6QBm5PvevnMoFJpTxQ6Ew2wvfE+FTCGRDzF/nubqVTA9hg7RlqLzfo5BUle3gW9NlE=; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=sf.net; s=x ; h=Content-Transfer-Encoding:Content-Type:MIME-Version:Message-Id:Date: Subject:Cc:To:From:Sender:Reply-To:Content-ID:Content-Description:Resent-Date :Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Id:List-Help:List-Unsubscribe:List-Subscribe:List-Post: List-Owner:List-Archive; bh=kCoSuUs9/UuRmM69QeDy2i9LHinxGmdLR45ZcTaEirk=; b=M Lyv1sxDbPf6ASTQ/cD2Hqbyp9NDMRDyBXjZEabbVCrVsYnC46zwTcp3X27Unknt65XfIhnvIE8jFF KMYz5IYjF8z+8ocONNSfj26F7A5aDQrrKT+ijAZjMiYQCHRYBCIi8qfi68jW9PsrFXMIoiBzWHDvE gs9XQkSZlXWL3RHc=; Received: from ams.source.kernel.org ([145.40.68.75]) by sfi-mx-1.v28.lw.sourceforge.com with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.95) id 1ogCGq-00Dxuj-As; Wed, 05 Oct 2022 21:49:43 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 0C4BDB81EC9; Wed, 5 Oct 2022 21:49:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5AA6C433D6; Wed, 5 Oct 2022 21:49:12 +0000 (UTC) Authentication-Results: smtp.kernel.org; dkim=pass (1024-bit key) header.d=zx2c4.com header.i=@zx2c4.com header.b="Qhkl413I" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1665006550; 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=kCoSuUs9/UuRmM69QeDy2i9LHinxGmdLR45ZcTaEirk=; b=Qhkl413IKS9UgZdKh7qX9XR//PEzMC7IKCarDofy3JsuOZGgYVos7Y1lBiMvIBBMcVqGoi 7r0OnXV0Qj1WnNZ+VU3Xc8roONhraZkXZ+EkeMM0FR/6WCQ++q5bALgZsXuPr1ztLy5trS rTtCF5uZMusANY6aJcM8PEFs0H0T/ts= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 837ac4b0 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Wed, 5 Oct 2022 21:49:10 +0000 (UTC) To: linux-kernel@vger.kernel.org Date: Wed, 5 Oct 2022 23:48:39 +0200 Message-Id: <20221005214844.2699-1-Jason@zx2c4.com> MIME-Version: 1.0 X-Headers-End: 1ogCGq-00Dxuj-As Subject: [f2fs-dev] [PATCH v1 0/5] treewide cleanup of random integer usage X-BeenThere: linux-f2fs-devel@lists.sourceforge.net X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: "Jason A. Donenfeld via Linux-f2fs-devel" Reply-To: "Jason A. Donenfeld" Cc: Andrew Lunn , "Darrick J . Wong" , Ulf Hansson , dri-devel@lists.freedesktop.org, Andrii Nakryiko , Hans Verkuil , linux-sctp@vger.kernel.org, "Md . Haris Iqbal" , Miquel Raynal , Christoph Hellwig , Andy Gospodarek , Sergey Matyukevich , Rohit Maheshwari , Michael Ellerman , ceph-devel@vger.kernel.org, Christophe Leroy , Jozsef Kadlecsik , Nilesh Javali , Jean-Paul Roubelat , Dick Kennedy , Jay Vosburgh , Potnuri Bharat Teja , Vinay Kumar Yadav , linux-nfs@vger.kernel.org, Nicholas Piggin , Igor Mitsyanko , Andy Lutomirski , linux-hams@vger.kernel.org, Thomas Gleixner , Trond Myklebust , linux-raid@vger.kernel.org, Neil Horman , Hante Meuleman , Greg Kroah-Hartman , linux-usb@vger.kernel.org, Michael Chan , Varun Prakash , Chuck Lever , netfilter-devel@vger.kernel.org, Masami Hiramatsu , Jiri Olsa , Jan Kara , linux-fsdevel@vger.kernel.org, Lars Ellenberg , linux-media@vger.kernel.org, Claudiu Beznea , Sharvari Harisangam , "Jason A. Donenfeld" , linux-doc@vger.kernel.org, linux-mmc@vger.kernel.org, Dave Hansen , Song Liu , Eric Dumazet , target-devel@vger.kernel.org, John Stultz , Stanislav Fomichev , Gregory Greenman , drbd-dev@lists.linbit.com, dev@openvswitch.org, Leon Romanovsky , Helge Deller , Hugh Dickins , James Smart , Anil S Keshavamurthy , Pravin B Shelar , Julian Anastasov , coreteam@netfilter.org, Veaceslav Falico , Yonghong Song , Namjae Jeon , linux-crypto@vger.kernel.org, Santosh Shilimkar , Ganapathi Bhat , linux-actions@lists.infradead.org, Simon Horman , Jaegeuk Kim , Mika Westerberg , Andrew Morton , OGAWA Hirofumi , Hao Luo , Theodore Ts'o , Stephen Boyd , Dennis Dalessandro , Florian Westphal , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Jon Maloy , Vlad Yasevich , Anna Schumaker , Yehezkel Bernat , Haoyue Xu , Heiner Kallweit , linux-wireless@vger.kernel.org, Marcelo Ricardo Leitner , Rasmus Villemoes , linux-fbdev@vger.kernel.org, linux-nvme@lists.infradead.org, Michal Januszewski , linux-mtd@lists.infradead.org, kasan-dev@googlegroups.com, Cong Wang , Thomas Sailer , Ajay Singh , Xiubo Li , Sagi Grimberg , Daniel Borkmann , Jonathan Corbet , linux-rdma@vger.kernel.org, lvs-devel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "Naveen N . Rao" , Ilya Dryomov , Paolo Abeni , Pablo Neira Ayuso , Marco Elver , Kees Cook , Yury Norov , "James E . J . Bottomley" , Jamal Hadi Salim , KP Singh , Borislav Petkov , Keith Busch , Dan Williams , Mauro Carvalho Chehab , Franky Lin , Arend van Spriel , linux-ext4@vger.kernel.org, Wenpeng Liang , "Martin K . Petersen" , Xinming Hu , linux-stm32@st-md-mailman.stormreply.com, Jeff Layton , linux-xfs@vger.kernel.org, netdev@vger.kernel.org, Ying Xue , Manish Rangankar , "David S . Miller" , =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Vignesh Raghavendra , Peter Zijlstra , "H . Peter Anvin" , Alexandre Torgue , Amitkumar Karwar , linux-mm@kvack.org, Andreas Dilger , Ayush Sawal , Andreas Noever , Jiri Pirko , linux-f2fs-devel@lists.sourceforge.net, Jack Wang , Steffen Klassert , rds-devel@oss.oracle.com, Herbert Xu , linux-scsi@vger.kernel.org, dccp@vger.kernel.org, Richard Weinberger , Russell King , Jason Gunthorpe , SHA-cyfmac-dev-list@infineon.com, Ingo Molnar , Jakub Kicinski , John Fastabend , Maxime Coquelin , Manivannan Sadhasivam , Michael Jamet , Kalle Valo , Akinobu Mita , linux-block@vger.kernel.org, dmaengine@vger.kernel.org, Hannes Reinecke , Andy Shevchenko , Dmitry Vyukov , Jens Axboe , cake@lists.bufferbloat.net, brcm80211-dev-list.pdl@broadcom.com, Yishai Hadas , Hideaki YOSHIFUJI , linuxppc-dev@lists.ozlabs.org, David Ahern , Philipp Reisner , Stephen Hemminger , =?UTF-8?q?Christoph=20B=C3=B6hmwalder?= , Vinod Koul , tipc-discussion@lists.sourceforge.net, Thomas Graf , Johannes Berg , Sungjong Seo , Martin KaFai Lau Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: linux-f2fs-devel-bounces@lists.sourceforge.net SGkgZm9sa3MsCgpUaGlzIGlzIGEgZml2ZSBwYXJ0IHRyZWV3aWRlIGNsZWFudXAgb2YgcmFuZG9t IGludGVnZXIgaGFuZGxpbmcuIFRoZQpydWxlcyBmb3IgcmFuZG9tIGludGVnZXJzIGFyZToKCi0g SWYgeW91IHdhbnQgYSBzZWN1cmUgb3IgYW4gaW5zZWN1cmUgcmFuZG9tIHU2NCwgdXNlIGdldF9y YW5kb21fdTY0KCkuCi0gSWYgeW91IHdhbnQgYSBzZWN1cmUgb3IgYW4gaW5zZWN1cmUgcmFuZG9t IHUzMiwgdXNlIGdldF9yYW5kb21fdTMyKCkuCiAgKiBUaGUgb2xkIGZ1bmN0aW9uIHByYW5kb21f dTMyKCkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgYSB3aGlsZSBub3cKICAgIGFuZCBpcyBqdXN0 IGEgd3JhcHBlciBhcm91bmQgZ2V0X3JhbmRvbV91MzIoKS4KLSBJZiB5b3Ugd2FudCBhIHNlY3Vy ZSBvciBhbiBpbnNlY3VyZSByYW5kb20gdTE2LCB1c2UgZ2V0X3JhbmRvbV91MTYoKS4KLSBJZiB5 b3Ugd2FudCBhIHNlY3VyZSBvciBhbiBpbnNlY3VyZSByYW5kb20gdTgsIHVzZSBnZXRfcmFuZG9t X3U4KCkuCi0gSWYgeW91IHdhbnQgc2VjdXJlIG9yIGluc2VjdXJlIHJhbmRvbSBieXRlcywgdXNl IGdldF9yYW5kb21fYnl0ZXMoKS4KICAqIFRoZSBvbGQgZnVuY3Rpb24gcHJhbmRvbV9ieXRlcygp IGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGEgd2hpbGUgbm93CiAgICBhbmQgaGFzIGxvbmcgYmVl biBhIHdyYXBwZXIgYXJvdW5kIGdldF9yYW5kb21fYnl0ZXMoKS4KLSBJZiB5b3Ugd2FudCBhIG5v bi11bmlmb3JtIHJhbmRvbSB1MzIsIHUxNiwgb3IgdTggYm91bmRlZCBieSBhIGNlcnRhaW4KICBv cGVuIGludGVydmFsIG1heGltdW0sIHVzZSBwcmFuZG9tX3UzMl9tYXgoKS4KICAqIEkgc2F5ICJu b24tdW5pZm9ybSIsIGJlY2F1c2UgaXQgZG9lc24ndCBkbyBhbnkgcmVqZWN0aW9uIHNhbXBsaW5n IG9yCiAgICBkaXZpc2lvbnMuIEhlbmNlLCBpdCBzdGF5cyB3aXRoaW4gdGhlIHByYW5kb21fKiBu YW1lc3BhY2UuCgpUaGVzZSBydWxlcyBvdWdodCB0byBiZSBhcHBsaWVkIHVuaWZvcm1seSwgc28g dGhhdCB3ZSBjYW4gY2xlYW4gdXAgdGhlCmRlcHJlY2F0ZWQgZnVuY3Rpb25zLCBhbmQgZWFybiB0 aGUgYmVuZWZpdHMgb2YgdXNpbmcgdGhlIG1vZGVybgpmdW5jdGlvbnMuIEluIHBhcnRpY3VsYXIs IGluIGFkZGl0aW9uIHRvIHRoZSBib3Jpbmcgc3Vic3RpdHV0aW9ucywgdGhpcwpwYXRjaHNldCBh Y2NvbXBsaXNoZXMgYSBmZXcgbmljZSBlZmZlY3RzOgoKLSBCeSB1c2luZyBwcmFuZG9tX3UzMl9t YXgoKSB3aXRoIGFuIHVwcGVyLWJvdW5kIHRoYXQgdGhlIGNvbXBpbGVyIGNhbgogIHByb3ZlIGF0 IGNvbXBpbGUtdGltZSBpcyDiiaQ2NTUzNiBvciDiiaQyNTYsIGludGVybmFsbHkgZ2V0X3JhbmRv bV91MTYoKQogIG9yIGdldF9yYW5kb21fdTgoKSBpcyB1c2VkLCB3aGljaCB3YXN0ZXMgZmV3ZXIg YmF0Y2hlZCByYW5kb20gYnl0ZXMsCiAgYW5kIGhlbmNlIGhhcyBoaWdoZXIgdGhyb3VnaHB1dC4K Ci0gQnkgdXNpbmcgcHJhbmRvbV91MzJfbWF4KCkgaW5zdGVhZCBvZiAlLCB3aGVuIHRoZSB1cHBl ci1ib3VuZCBpcyBub3QgYQogIGNvbnN0YW50LCBkaXZpc2lvbiBpcyBzdGlsbCBhdm9pZGVkLCBi ZWNhdXNlIHByYW5kb21fdTMyX21heCgpIHVzZXMKICBhIGZhc3RlciBtdWx0aXBsaWNhdGlvbi1i YXNlZCB0cmljayBpbnN0ZWFkLgoKLSBCeSB1c2luZyBnZXRfcmFuZG9tX3UxNigpIG9yIGdldF9y YW5kb21fdTgoKSBpbiBjYXNlcyB3aGVyZSB0aGUgcmV0dXJuCiAgdmFsdWUgaXMgaW50ZW5kZWQg dG8gaW5kZWVkIGJlIGEgdTE2IG9yIGEgdTgsIHdlIHdhc3RlIGZld2VyIGJhdGNoZWQKICByYW5k b20gYnl0ZXMsIGFuZCBoZW5jZSBoYXZlIGhpZ2hlciB0aHJvdWdocHV0LgoKU28sIGJhc2VkIG9u IHRob3NlIHJ1bGVzIGFuZCBiZW5lZml0cyBmcm9tIGZvbGxvd2luZyB0aGVtLCB0aGlzIHBhdGNo c2V0CmJyZWFrcyBkb3duIGludG8gdGhlIGZvbGxvd2luZyBmaXZlIHN0ZXBzOgoKMSkgUmVwbGFj ZSBgcHJhbmRvbV91MzIoKSAlIG1heGAgYW5kIHZhcmlhbnRzIHRoZXJlb2Ygd2l0aAogICBwcmFu ZG9tX3UzMl9tYXgobWF4KS4KCjIpIFJlcGxhY2UgYCh0eXBlKWdldF9yYW5kb21fdTMyKClgIGFu ZCB2YXJpYW50cyB0aGVyZW9mIHdpdGgKICAgZ2V0X3JhbmRvbV91MTYoKSBvciBnZXRfcmFuZG9t X3U4KCkuIEkgdG9vayB0aGUgcGFpbnMgdG8gYWN0dWFsbHkKICAgbG9vayBhbmQgc2VlIHdoYXQg ZXZlcnkgbHZhbHVlIHR5cGUgd2FzIGFjcm9zcyB0aGUgZW50aXJlIHRyZWUuCgozKSBSZXBsYWNl IHJlbWFpbmluZyBkZXByZWNhdGVkIHVzZXMgb2YgcHJhbmRvbV91MzIoKSB3aXRoCiAgIGdldF9y YW5kb21fdTMyKCkuIAoKNCkgUmVwbGFjZSByZW1haW5pbmcgZGVwcmVjYXRlZCB1c2VzIG9mIHBy YW5kb21fYnl0ZXMoKSB3aXRoCiAgIGdldF9yYW5kb21fYnl0ZXMoKS4KCjUpIFJlbW92ZSB0aGUg ZGVwcmVjYXRlZCBhbmQgbm93LXVudXNlZCBwcmFuZG9tX3UzMigpIGFuZAogICBwcmFuZG9tX2J5 dGVzKCkgaW5saW5lIHdyYXBwZXIgZnVuY3Rpb25zLgoKSSB3YXMgdGhpbmtpbmcgb2YgdGFraW5n IHRoaXMgdGhyb3VnaCBteSByYW5kb20uZ2l0IHRyZWUgKG9uIHdoaWNoIHRoaXMKc2VyaWVzIGlz IGN1cnJlbnRseSBiYXNlZCkgYW5kIHN1Ym1pdHRpbmcgaXQgbmVhciB0aGUgZW5kIG9mIHRoZSBt ZXJnZQp3aW5kb3csIG9yIHdhaXRpbmcgZm9yIHRoZSB2ZXJ5IGVuZCBvZiB0aGUgNi4xIGN5Y2xl IHdoZW4gdGhlcmUgd2lsbCBiZQp0aGUgZmV3ZXN0IG5ldyBwYXRjaGVzIGJyZXdpbmcuIElmIHNv bWVib2R5IHdpdGggc29tZSB0cmVld2lkZS1jbGVhbnVwCmV4cGVyaWVuY2UgbWlnaHQgc2hhcmUg c29tZSB3aXNkb20gYWJvdXQgd2hhdCB0aGUgYmVzdCB0aW1pbmcgdXN1YWxseQp3aW5kcyB1cCBi ZWluZywgSSdtIGFsbCBlYXJzLgoKSSd2ZSBDQydkIGdldF9tYWludGFpbmVycy5wbCwgd2hpY2gg aXMgYSBwcmV0dHkgYmlnIGxpc3QuIFByb2JhYmx5IHNvbWUKcG9ydGlvbiBvZiB0aG9zZSBhcmUg Z29pbmcgdG8gYm91bmNlLCB0b28sIGFuZCBldmVyeXRpbWUgeW91IHJlcGx5IHRvCnRoaXMgdGhy ZWFkLCB5b3UnbGwgaGF2ZSB0byBkZWFsIHdpdGggYSBidW5jaCBvZiBib3VuY2VzIGNvbWluZwpp bW1lZGlhdGVseSBhZnRlci4gQW5kIGEgcmVjaXBpZW50IGxpc3QgdGhpcyBiaWcgd2lsbCBwcm9i YWJseSBkb2NrIG15CmVtYWlsIGRvbWFpbidzIHNwYW0gcmVwdXRhdGlvbiwgYXQgbGVhc3QgdGVt cG9yYXJpbHkuIFNpZ2guIEkgdGhpbmsKdGhhdCdzIGp1c3QgaG93IGl0IGdvZXMgd2l0aCB0cmVl d2lkZSBjbGVhbnVwcyB0aG91Z2guIEFnYWluLCBsZXQgbWUKa25vdyBpZiBJJ20gZG9pbmcgaXQg d3JvbmcuCgpQbGVhc2UgdGFrZSBhIGxvb2shCgpUaGFua3MsCkphc29uCgpDYzogQWpheSBTaW5n aCA8YWpheS5rYXRoYXRAbWljcm9jaGlwLmNvbT4KQ2M6IEFraW5vYnUgTWl0YSA8YWtpbm9idS5t aXRhQGdtYWlsLmNvbT4KQ2M6IEFsZXhhbmRyZSBUb3JndWUgPGFsZXhhbmRyZS50b3JndWVAZm9z cy5zdC5jb20+CkNjOiBBbWl0a3VtYXIgS2Fyd2FyIDxhbWl0a2Fyd2FyQGdtYWlsLmNvbT4KQ2M6 IEFuZHJlYXMgRGlsZ2VyIDxhZGlsZ2VyLmtlcm5lbEBkaWxnZXIuY2E+CkNjOiBBbmRyZWFzIEbD pHJiZXIgPGFmYWVyYmVyQHN1c2UuZGU+CkNjOiBBbmRyZWFzIE5vZXZlciA8YW5kcmVhcy5ub2V2 ZXJAZ21haWwuY29tPgpDYzogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpDYzogQW5kcmV3 IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IEFuZHJpaSBOYWtyeWlrbyA8 YW5kcmlpQGtlcm5lbC5vcmc+CkNjOiBBbmR5IEdvc3BvZGFyZWsgPGFuZHlAZ3JleWhvdXNlLm5l dD4KQ2M6IEFuZHkgTHV0b21pcnNraSA8bHV0b0BrZXJuZWwub3JnPgpDYzogQW5keSBTaGV2Y2hl bmtvIDxhbmRyaXkuc2hldmNoZW5rb0BsaW51eC5pbnRlbC5jb20+CkNjOiBBbmlsIFMgS2VzaGF2 YW11cnRoeSA8YW5pbC5zLmtlc2hhdmFtdXJ0aHlAaW50ZWwuY29tPgpDYzogQW5uYSBTY2h1bWFr ZXIgPGFubmFAa2VybmVsLm9yZz4KQ2M6IEFyZW5kIHZhbiBTcHJpZWwgPGFzcHJpZWxAZ21haWwu Y29tPgpDYzogQXl1c2ggU2F3YWwgPGF5dXNoLnNhd2FsQGNoZWxzaW8uY29tPgpDYzogQm9yaXNs YXYgUGV0a292IDxicEBhbGllbjguZGU+CkNjOiBDaGFvIFl1IDxjaGFvQGtlcm5lbC5vcmc+CkNj OiBDaHJpc3RvcGggQsO2aG13YWxkZXIgPGNocmlzdG9waC5ib2VobXdhbGRlckBsaW5iaXQuY29t PgpDYzogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+CkNjOiBDaHJpc3RvcGhlIExlcm95 IDxjaHJpc3RvcGhlLmxlcm95QGNzZ3JvdXAuZXU+CkNjOiBDaHVjayBMZXZlciA8Y2h1Y2subGV2 ZXJAb3JhY2xlLmNvbT4KQ2M6IENsYXVkaXUgQmV6bmVhIDxjbGF1ZGl1LmJlem5lYUBtaWNyb2No aXAuY29tPgpDYzogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkNjOiBEYW4g V2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KQ2M6IERhbmllbCBCb3JrbWFubiA8 ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkNjOiBEYXJyaWNrIEouIFdvbmcgPGRqd29uZ0BrZXJuZWwu b3JnPgpDYzogRGF2ZSBIYW5zZW4gPGRhdmUuaGFuc2VuQGxpbnV4LmludGVsLmNvbT4KQ2M6IERh dmlkIEFoZXJuIDxkc2FoZXJuQGtlcm5lbC5vcmc+CkNjOiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+CkNjOiBEZW5uaXMgRGFsZXNzYW5kcm8gPGRlbm5pcy5kYWxlc3NhbmRy b0Bjb3JuZWxpc25ldHdvcmtzLmNvbT4KQ2M6IERpY2sgS2VubmVkeSA8ZGljay5rZW5uZWR5QGJy b2FkY29tLmNvbT4KQ2M6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ2M6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3 QHN0cmxlbi5kZT4KQ2M6IEZyYW5reSBMaW4gPGZyYW5reS5saW5AYnJvYWRjb20uY29tPgpDYzog R2FuYXBhdGhpIEJoYXQgPGdhbmFwYXRoaTAxN0BnbWFpbC5jb20+CkNjOiBHcmVnIEtyb2FoLUhh cnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgpDYzogR3JlZ29yeSBHcmVlbm1hbiA8 Z3JlZ29yeS5ncmVlbm1hbkBpbnRlbC5jb20+CkNjOiBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9y LmNvbT4KQ2M6IEhhbm5lcyBSZWluZWNrZSA8aGFyZUBzdXNlLmRlPgpDYzogSGFucyBWZXJrdWls IDxodmVya3VpbEB4czRhbGwubmw+CkNjOiBIYW50ZSBNZXVsZW1hbiA8aGFudGUubWV1bGVtYW5A YnJvYWRjb20uY29tPgpDYzogSGFvIEx1byA8aGFvbHVvQGdvb2dsZS5jb20+CkNjOiBIYW95dWUg WHUgPHh1aGFveXVlMUBoaXNpbGljb24uY29tPgpDYzogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdl aXQxQGdtYWlsLmNvbT4KQ2M6IEhlbGdlIERlbGxlciA8ZGVsbGVyQGdteC5kZT4KQ2M6IEhlcmJl cnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KQ2M6IEhpZGVha2kgWU9TSElGVUpJ IDx5b3NoZnVqaUBsaW51eC1pcHY2Lm9yZz4KQ2M6IEh1Z2ggRGlja2lucyA8aHVnaGRAZ29vZ2xl LmNvbT4KQ2M6IElnb3IgTWl0c3lhbmtvIDxpbWl0c3lhbmtvQHF1YW50ZW5uYS5jb20+CkNjOiBJ bHlhIERyeW9tb3YgPGlkcnlvbW92QGdtYWlsLmNvbT4KQ2M6IEluZ28gTW9sbmFyIDxtaW5nb0By ZWRoYXQuY29tPgpDYzogSmFjayBXYW5nIDxqaW5wdS53YW5nQGlvbm9zLmNvbT4KQ2M6IEphZWdl dWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+CkNjOiBKYWVob29uIENodW5nIDxqaDgwLmNodW5n QHNhbXN1bmcuY29tPgpDYzogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KQ2M6IEph bWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNjOiBKYW1lcyBFLkouIEJvdHRvbWxl eSA8amVqYkBsaW51eC5pYm0uY29tPgpDYzogSmFtZXMgU21hcnQgPGphbWVzLnNtYXJ0QGJyb2Fk Y29tLmNvbT4KQ2M6IEphbiBLYXJhIDxqYWNrQHN1c2UuY29tPgpDYzogSmFzb24gR3VudGhvcnBl IDxqZ2dAemllcGUuY2E+CkNjOiBKYXkgVm9zYnVyZ2ggPGoudm9zYnVyZ2hAZ21haWwuY29tPgpD YzogSmVhbi1QYXVsIFJvdWJlbGF0IDxqcHJAZjZmYmIub3JnPgpDYzogSmVmZiBMYXl0b24gPGps YXl0b25Aa2VybmVsLm9yZz4KQ2M6IEplbnMgQXhib2UgPGF4Ym9lQGtlcm5lbC5kaz4KQ2M6IEpp cmkgT2xzYSA8am9sc2FAa2VybmVsLm9yZz4KQ2M6IEppcmkgUGlya28gPGppcmlAcmVzbnVsbGku dXM+CkNjOiBKb2hhbm5lcyBCZXJnIDxqb2hhbm5lc0BzaXBzb2x1dGlvbnMubmV0PgpDYzogSm9o biBGYXN0YWJlbmQgPGpvaG4uZmFzdGFiZW5kQGdtYWlsLmNvbT4KQ2M6IEpvaG4gU3R1bHR6IDxq c3R1bHR6QGdvb2dsZS5jb20+CkNjOiBKb24gTWFsb3kgPGptYWxveUByZWRoYXQuY29tPgpDYzog Sm9uYXRoYW4gQ29yYmV0IDxjb3JiZXRAbHduLm5ldD4KQ2M6IEpvenNlZiBLYWRsZWNzaWsgPGth ZGxlY0BuZXRmaWx0ZXIub3JnPgpDYzogSnVsaWFuIEFuYXN0YXNvdiA8amFAc3NpLmJnPgpDYzog S1AgU2luZ2ggPGtwc2luZ2hAa2VybmVsLm9yZz4KQ2M6IEthbGxlIFZhbG8gPGt2YWxvQGtlcm5l bC5vcmc+CkNjOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KQ2M6IEtlaXRoIEJ1 c2NoIDxrYnVzY2hAa2VybmVsLm9yZz4KQ2M6IExhcnMgRWxsZW5iZXJnIDxsYXJzLmVsbGVuYmVy Z0BsaW5iaXQuY29tPgpDYzogTGVvbiBSb21hbm92c2t5IDxsZW9uQGtlcm5lbC5vcmc+CkNjOiBN YW5pc2ggUmFuZ2Fua2FyIDxtcmFuZ2Fua2FyQG1hcnZlbGwuY29tPgpDYzogTWFuaXZhbm5hbiBT YWRoYXNpdmFtIDxtYW5pQGtlcm5lbC5vcmc+CkNjOiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8 bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KQ2M6IE1hcmNvIEVsdmVyIDxlbHZlckBnb29nbGUu Y29tPgpDYzogTWFydGluIEsuIFBldGVyc2VuIDxtYXJ0aW4ucGV0ZXJzZW5Ab3JhY2xlLmNvbT4K Q2M6IE1hcnRpbiBLYUZhaSBMYXUgPG1hcnRpbi5sYXVAbGludXguZGV2PgpDYzogTWFzYW1pIEhp cmFtYXRzdSA8bWhpcmFtYXRAa2VybmVsLm9yZz4KQ2M6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8 bWNoZWhhYkBrZXJuZWwub3JnPgpDYzogTWF4aW1lIENvcXVlbGluIDxtY29xdWVsaW4uc3RtMzJA Z21haWwuY29tPgpDYzogTWQuIEhhcmlzIElxYmFsIDxoYXJpcy5pcWJhbEBpb25vcy5jb20+CkNj OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+CkNjOiBNaWNoYWVsIEVs bGVybWFuIDxtcGVAZWxsZXJtYW4uaWQuYXU+CkNjOiBNaWNoYWVsIEphbWV0IDxtaWNoYWVsLmph bWV0QGludGVsLmNvbT4KQ2M6IE1pY2hhbCBKYW51c3pld3NraSA8c3BvY2tAZ2VudG9vLm9yZz4K Q2M6IE1pa2EgV2VzdGVyYmVyZyA8bWlrYS53ZXN0ZXJiZXJnQGxpbnV4LmludGVsLmNvbT4KQ2M6 IE1pcXVlbCBSYXluYWwgPG1pcXVlbC5yYXluYWxAYm9vdGxpbi5jb20+CkNjOiBOYW1qYWUgSmVv biA8bGlua2luamVvbkBrZXJuZWwub3JnPgpDYzogTmF2ZWVuIE4uIFJhbyA8bmF2ZWVuLm4ucmFv QGxpbnV4LmlibS5jb20+CkNjOiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpD YzogTmljaG9sYXMgUGlnZ2luIDxucGlnZ2luQGdtYWlsLmNvbT4KQ2M6IE5pbGVzaCBKYXZhbGkg PG5qYXZhbGlAbWFydmVsbC5jb20+CkNjOiBPR0FXQSBIaXJvZnVtaSA8aGlyb2Z1bWlAbWFpbC5w YXJrbmV0LmNvLmpwPgpDYzogUGFibG8gTmVpcmEgQXl1c28gPHBhYmxvQG5ldGZpbHRlci5vcmc+ CkNjOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkNjOiBQZXRlciBaaWpsc3RyYSA8 cGV0ZXJ6QGluZnJhZGVhZC5vcmc+CkNjOiBQaGlsaXBwIFJlaXNuZXIgPHBoaWxpcHAucmVpc25l ckBsaW5iaXQuY29tPgpDYzogUG90bnVyaSBCaGFyYXQgVGVqYSA8YmhhcmF0QGNoZWxzaW8uY29t PgpDYzogUHJhdmluIEIgU2hlbGFyIDxwc2hlbGFyQG92bi5vcmc+CkNjOiBSYXNtdXMgVmlsbGVt b2VzIDxsaW51eEByYXNtdXN2aWxsZW1vZXMuZGs+CkNjOiBSaWNoYXJkIFdlaW5iZXJnZXIgPHJp Y2hhcmRAbm9kLmF0PgpDYzogUm9oaXQgTWFoZXNod2FyaSA8cm9oaXRtQGNoZWxzaW8uY29tPgpD YzogUnVzc2VsbCBLaW5nIDxsaW51eEBhcm1saW51eC5vcmcudWs+CkNjOiBTYWdpIEdyaW1iZXJn IDxzYWdpQGdyaW1iZXJnLm1lPgpDYzogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlt a2FyQG9yYWNsZS5jb20+CkNjOiBTZXJnZXkgTWF0eXVrZXZpY2ggPGdlb21hdHNpQGdtYWlsLmNv bT4KQ2M6IFNoYXJ2YXJpIEhhcmlzYW5nYW0gPHNoYXJ2YXJpLmhhcmlzYW5nYW1AbnhwLmNvbT4K Q2M6IFNpbW9uIEhvcm1hbiA8aG9ybXNAdmVyZ2UubmV0LmF1PgpDYzogU29uZyBMaXUgPHNvbmdA a2VybmVsLm9yZz4KQ2M6IFN0YW5pc2xhdiBGb21pY2hldiA8c2RmQGdvb2dsZS5jb20+CkNjOiBT dGVmZmVuIEtsYXNzZXJ0IDxzdGVmZmVuLmtsYXNzZXJ0QHNlY3VuZXQuY29tPgpDYzogU3RlcGhl biBCb3lkIDxzYm95ZEBrZXJuZWwub3JnPgpDYzogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5A bmV0d29ya3BsdW1iZXIub3JnPgpDYzogU3VuZ2pvbmcgU2VvIDxzajE1NTcuc2VvQHNhbXN1bmcu Y29tPgpDYzogVGhlb2RvcmUgVHMnbyA8dHl0c29AbWl0LmVkdT4KQ2M6IFRob21hcyBHbGVpeG5l ciA8dGdseEBsaW51dHJvbml4LmRlPgpDYzogVGhvbWFzIEdyYWYgPHRncmFmQHN1dWcuY2g+CkNj OiBUaG9tYXMgU2FpbGVyIDx0LnNhaWxlckBhbHVtbmkuZXRoei5jaD4KQ2M6IFRva2UgSMO4aWxh bmQtSsO4cmdlbnNlbiA8dG9rZUB0b2tlLmRrPgpDYzogVHJvbmQgTXlrbGVidXN0IDx0cm9uZC5t eWtsZWJ1c3RAaGFtbWVyc3BhY2UuY29tPgpDYzogVWxmIEhhbnNzb24gPHVsZi5oYW5zc29uQGxp bmFyby5vcmc+CkNjOiBWYXJ1biBQcmFrYXNoIDx2YXJ1bkBjaGVsc2lvLmNvbT4KQ2M6IFZlYWNl c2xhdiBGYWxpY28gPHZmYWxpY29AZ21haWwuY29tPgpDYzogVmlnbmVzaCBSYWdoYXZlbmRyYSA8 dmlnbmVzaHJAdGkuY29tPgpDYzogVmluYXkgS3VtYXIgWWFkYXYgPHZpbmF5LnlhZGF2QGNoZWxz aW8uY29tPgpDYzogVmlub2QgS291bCA8dmtvdWxAa2VybmVsLm9yZz4KQ2M6IFZsYWQgWWFzZXZp Y2ggPHZ5YXNldmljaEBnbWFpbC5jb20+CkNjOiBXZW5wZW5nIExpYW5nIDxsaWFuZ3dlbnBlbmdA aHVhd2VpLmNvbT4KQ2M6IFhpbm1pbmcgSHUgPGh1eGlubWluZzgyMEBnbWFpbC5jb20+CkNjOiBY aXVibyBMaSA8eGl1YmxpQHJlZGhhdC5jb20+CkNjOiBZZWhlemtlbCBCZXJuYXQgPFllaGV6a2Vs U2hCQGdtYWlsLmNvbT4KQ2M6IFlpbmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpDYzog WWlzaGFpIEhhZGFzIDx5aXNoYWloQG52aWRpYS5jb20+CkNjOiBZb25naG9uZyBTb25nIDx5aHNA ZmIuY29tPgpDYzogWXVyeSBOb3JvdiA8eXVyeS5ub3JvdkBnbWFpbC5jb20+CkNjOiBicmNtODAy MTEtZGV2LWxpc3QucGRsQGJyb2FkY29tLmNvbQpDYzogY2FrZUBsaXN0cy5idWZmZXJibG9hdC5u ZXQKQ2M6IGNlcGgtZGV2ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBjb3JldGVhbUBuZXRmaWx0ZXIu b3JnCkNjOiBkY2NwQHZnZXIua2VybmVsLm9yZwpDYzogZGV2QG9wZW52c3dpdGNoLm9yZwpDYzog ZG1hZW5naW5lQHZnZXIua2VybmVsLm9yZwpDYzogZHJiZC1kZXZAbGlzdHMubGluYml0LmNvbQpD YzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpDYzoga2FzYW4tZGV2QGdvb2dsZWdy b3Vwcy5jb20KQ2M6IGxpbnV4LWFjdGlvbnNAbGlzdHMuaW5mcmFkZWFkLm9yZwpDYzogbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1ibG9ja0B2Z2VyLmtlcm5l bC5vcmcKQ2M6IGxpbnV4LWNyeXB0b0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWRvY0B2Z2Vy Lmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWV4dDRAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1mMmZz LWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApDYzogbGludXgtZmJkZXZAdmdlci5rZXJuZWwu b3JnCkNjOiBsaW51eC1mc2RldmVsQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtaGFtc0B2Z2Vy Lmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LW1l ZGlhQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBsaW51eC1tbWNA dmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1tdGRAbGlzdHMuaW5mcmFkZWFkLm9yZwpDYzogbGlu dXgtbmZzQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbnZtZUBsaXN0cy5pbmZyYWRlYWQub3Jn CkNjOiBsaW51eC1yYWlkQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtcmRtYUB2Z2VyLmtlcm5l bC5vcmcKQ2M6IGxpbnV4LXNjc2lAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1zY3RwQHZnZXIu a2VybmVsLm9yZwpDYzogbGludXgtc3RtMzJAc3QtbWQtbWFpbG1hbi5zdG9ybXJlcGx5LmNvbQpD YzogbGludXgtdXNiQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtd2lyZWxlc3NAdmdlci5rZXJu ZWwub3JnCkNjOiBsaW51eC14ZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eHBwYy1kZXZAbGlz dHMub3psYWJzLm9yZwpDYzogbHZzLWRldmVsQHZnZXIua2VybmVsLm9yZwpDYzogbmV0ZGV2QHZn ZXIua2VybmVsLm9yZwpDYzogbmV0ZmlsdGVyLWRldmVsQHZnZXIua2VybmVsLm9yZwpDYzogcmRz LWRldmVsQG9zcy5vcmFjbGUuY29tCkNjOiBTSEEtY3lmbWFjLWRldi1saXN0QGluZmluZW9uLmNv bQpDYzogdGFyZ2V0LWRldmVsQHZnZXIua2VybmVsLm9yZwpDYzogdGlwYy1kaXNjdXNzaW9uQGxp c3RzLnNvdXJjZWZvcmdlLm5ldAoKSmFzb24gQS4gRG9uZW5mZWxkICg1KToKICB0cmVld2lkZTog dXNlIHByYW5kb21fdTMyX21heCgpIHdoZW4gcG9zc2libGUKICB0cmVld2lkZTogdXNlIGdldF9y YW5kb21fe3U4LHUxNn0oKSB3aGVuIHBvc3NpYmxlCiAgdHJlZXdpZGU6IHVzZSBnZXRfcmFuZG9t X3UzMigpIHdoZW4gcG9zc2libGUKICB0cmVld2lkZTogdXNlIGdldF9yYW5kb21fYnl0ZXMgd2hl biBwb3NzaWJsZQogIHByYW5kb206IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb25zCgogRG9jdW1lbnRh dGlvbi9uZXR3b3JraW5nL2ZpbHRlci5yc3QgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvcG93ZXJw Yy9jcnlwdG8vY3JjLXZwbXN1bV90ZXN0LmMgICAgICAgICB8ICAyICstCiBhcmNoL3g4Ni9tbS9w YXQvY3BhLXRlc3QuYyAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogYmxvY2svYmxrLWNyeXB0 by1mYWxsYmFjay5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGNyeXB0by9hc3luY190eC9y YWlkNnRlc3QuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBjcnlwdG8vdGVzdG1nci5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA5NCArKysrKysrKystLS0tLS0tLS0tCiBkcml2 ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZWNlaXZlci5jICAgICAgICAgICAgfCAgNCArLQogZHJpdmVy cy9kbWEvZG1hdGVzdC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv aW5maW5pYmFuZC9jb3JlL2NtYS5jICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2lu ZmluaWJhbmQvaHcvY3hnYjQvY20uYyAgICAgICAgICAgICAgfCAgNCArLQogZHJpdmVycy9pbmZp bmliYW5kL2h3L2N4Z2I0L2lkX3RhYmxlLmMgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvaW5maW5p YmFuZC9ody9oZmkxL3RpZF9yZG1hLmMgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2luZmluaWJh bmQvaHcvaG5zL2huc19yb2NlX2FoLmMgICAgICAgfCAgNSArLQogZHJpdmVycy9pbmZpbmliYW5k L2h3L21seDQvbWFkLmMgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvaW5maW5pYmFuZC91 bHAvaXBvaWIvaXBvaWJfY20uYyAgICAgICB8ICAyICstCiBkcml2ZXJzL2luZmluaWJhbmQvdWxw L3J0cnMvcnRycy1jbHQuYyAgICAgICAgfCAgMyArLQogZHJpdmVycy9tZC9yYWlkNS1jYWNoZS5j ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbWVkaWEvY29tbW9uL3Y0bDIt dHBnL3Y0bDItdHBnLWNvcmUuYyB8ICAyICstCiAuLi4vbWVkaWEvdGVzdC1kcml2ZXJzL3Zpdmlk L3ZpdmlkLXJhZGlvLXJ4LmMgfCAgNCArLQogZHJpdmVycy9tbWMvY29yZS9jb3JlLmMgICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kc2ltLmMgICAg ICAgICAgICAgICAgfCAgOCArLQogZHJpdmVycy9tdGQvdGVzdHMvbXRkX25hbmRlY2N0ZXN0LmMg ICAgICAgICAgIHwgMTIgKy0tCiBkcml2ZXJzL210ZC90ZXN0cy9zcGVlZHRlc3QuYyAgICAgICAg ICAgICAgICAgfCAgMiArLQogZHJpdmVycy9tdGQvdGVzdHMvc3RyZXNzdGVzdC5jICAgICAgICAg ICAgICAgIHwgMTkgKy0tLQogZHJpdmVycy9tdGQvdWJpL2RlYnVnLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbXRkL3ViaS9kZWJ1Zy5oICAgICAgICAgICAgICAgICAg ICAgICB8ICA2ICstCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jICAgICAgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgICAg IHwgIDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2NuaWMuYyAgICAgICAgICB8 ICA1ICstCiAuLi4vY2hlbHNpby9pbmxpbmVfY3J5cHRvL2NodGxzL2NodGxzX2NtLmMgICAgfCAg NCArLQogLi4uL2NoZWxzaW8vaW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19pby5jICAgIHwgIDQg Ky0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXJfbWFpbi5jICAgICB8ICA4ICst CiBkcml2ZXJzL25ldC9oYW1yYWRpby9iYXljb21fZXBwLmMgICAgICAgICAgICAgfCAgMiArLQog ZHJpdmVycy9uZXQvaGFtcmFkaW8vaGRsY2Rydi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRy aXZlcnMvbmV0L2hhbXJhZGlvL3lhbS5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2 ZXJzL25ldC9waHkvYXQ4MDN4LmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVy cy9uZXQvd2lyZWd1YXJkL3NlbGZ0ZXN0L2FsbG93ZWRpcHMuYyAgIHwgMTYgKystLQogLi4uL2Jy b2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYyAgICAgICAgIHwgIDIgKy0KIC4uLi9uZXQv d2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYyB8ICAyICstCiAuLi4vbmV0L3dp cmVsZXNzL21hcnZlbGwvbXdpZmlleC9jZmc4MDIxMS5jICAgfCAgNCArLQogLi4uL3dpcmVsZXNz L21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jICAgIHwgIDIgKy0KIC4uLi9uZXQvd2lyZWxl c3MvcXVhbnRlbm5hL3F0bmZtYWMvY2ZnODAyMTEuYyB8ICAyICstCiBkcml2ZXJzL252bWUvY29t bW9uL2F1dGguYyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zY3NpL2N4Z2Jp L2N4Z2I0aS9jeGdiNGkuYyAgICAgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvc2NzaS9mY29lL2Zj b2VfY3Rsci5jICAgICAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJzL3Njc2kvbHBmYy9scGZj X2hiYWRpc2MuYyAgICAgICAgICAgICAgfCAgNiArLQogZHJpdmVycy9zY3NpL3FlZGkvcWVkaV9t YWluLmMgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGFyZ2V0L2lzY3NpL2N4Z2Jp dC9jeGdiaXRfY20uYyAgICAgICB8ICAyICstCiBkcml2ZXJzL3RodW5kZXJib2x0L3hkb21haW4u YyAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy92aWRlby9mYmRldi91dmVzYWZiLmMg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL2NlcGgvaW5vZGUuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBmcy9jZXBoL21kc21hcC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogZnMvZXhmYXQvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGZzL2V4dDIvaWFsbG9jLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBmcy9leHQ0L2lhbGxvYy5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNCArLQogZnMvZXh0NC9pb2N0bC5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDQgKy0KIGZzL2V4dDQvbW1wLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBmcy9leHQ0L3N1cGVyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNyArLQogZnMvZjJmcy9nYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGZzL2YyZnMvbmFtZWkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBmcy9mMmZzL3NlZ21lbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCAr LQogZnMvZmF0L2lub2RlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGZzL25mc2QvbmZzNHN0YXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBm cy91Ymlmcy9kZWJ1Zy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArLQogZnMv dWJpZnMvam91cm5hbC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL3Vi aWZzL2xwdF9jb21taXQuYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICstLQogZnMvdWJp ZnMvdG5jX2NvbW1pdC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL3hmcy9s aWJ4ZnMveGZzX2FsbG9jLmMgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy94ZnMvbGli eGZzL3hmc19pYWxsb2MuYyAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogZnMveGZzL3hmc19l cnJvci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL3hmcy94ZnNfaWNh Y2hlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy94ZnMveGZzX2xvZy5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9saW51eC9wcmFu ZG9tLmggICAgICAgICAgICAgICAgICAgICAgIHwgMTIgLS0tCiBpbmNsdWRlL25ldC9uZXRmaWx0 ZXIvbmZfcXVldWUuaCAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9uZXQvcmVkLmggICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvbmV0L3NvY2suaCAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBrZXJuZWwva2NzYW4vc2VsZnRlc3QuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQoga2VybmVsL3RpbWUvY2xvY2tzb3VyY2UuYyAg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGxpYi9mYXVsdC1pbmplY3QuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBsaWIvZmluZF9iaXRfYmVuY2htYXJrLmMgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogbGliL3JhbmRvbTMyLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDQgKy0KIGxpYi9yZWVkX3NvbG9tb24vdGVzdF9yc2xpYi5jICAgICAg ICAgICAgICAgICB8IDEyICstLQogbGliL3NiaXRtYXAuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDQgKy0KIGxpYi90ZXN0X2Zwcm9iZS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBsaWIvdGVzdF9rcHJvYmVzLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogbGliL3Rlc3RfbGlzdF9zb3J0LmMgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGxpYi90ZXN0X29iamFnZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBsaWIvdGVzdF9yaGFzaHRhYmxlLmMgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNiArLQogbGliL3Rlc3Rfdm1hbGxvYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTkgKy0tLQogbGliL3V1aWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIG1tL3NobWVtLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBuZXQvODAyL2dhcnAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogbmV0LzgwMi9tcnAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IG5ldC9jZXBoL21vbl9jbGllbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBu ZXQvY2VwaC9vc2RfY2xpZW50LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0 L2NvcmUvbmVpZ2hib3VyLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9j b3JlL3BrdGdlbi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ3ICsrKysrLS0tLS0K IG5ldC9jb3JlL3N0cmVhbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBu ZXQvZGNjcC9pcHY0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogbmV0 L2lwdjQvZGF0YWdyYW0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9p cHY0L2lnbXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICstCiBuZXQvaXB2 NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjQv aW5ldF9oYXNodGFibGVzLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9pcHY0L2lw X291dHB1dC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvaXB2NC9yb3V0 ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjQvdGNwX2Nk Zy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9pcHY0L3RjcF9pcHY0 LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBuZXQvaXB2NC91ZHAuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjYvYWRkcmNvbmYuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKy0KIG5ldC9pcHY2L2lwNl9mbG93bGFiZWwu YyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvaXB2Ni9tY2FzdC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxMCArLQogbmV0L2lwdjYvb3V0cHV0X2NvcmUuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVs X2h0LmMgICAgICAgICAgICB8ICAyICstCiBuZXQvbWFjODAyMTEvc2Nhbi5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX2Nvbm4uYyAg ICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c190d29zLmMgICAg ICAgICAgICAgICB8ICA0ICstCiBuZXQvbmV0ZmlsdGVyL25mX25hdF9jb3JlLmMgICAgICAgICAg ICAgICAgICAgfCAgNCArLQogbmV0L25ldGZpbHRlci94dF9zdGF0aXN0aWMuYyAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIG5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogbmV0L3Jkcy9iaW5kLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIG5ldC9zY2hlZC9hY3RfZ2FjdC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBuZXQvc2NoZWQvYWN0X3NhbXBsZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQogbmV0L3NjaGVkL3NjaF9jYWtlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDgg Ky0KIG5ldC9zY2hlZC9zY2hfbmV0ZW0uYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDIyICsr LS0tCiBuZXQvc2NoZWQvc2NoX3BpZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogbmV0L3NjaGVkL3NjaF9zZmIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IG5ldC9zY3RwL3NvY2tldC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBu ZXQvc3VucnBjL2F1dGhfZ3NzL2dzc19rcmI1X3dyYXAuYyAgICAgICAgICAgfCAgNCArLQogbmV0 L3N1bnJwYy9jYWNoZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9z dW5ycGMveHBydC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvc3Vu cnBjL3hwcnRzb2NrLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L3RpcGMv c29ja2V0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC91bml4L2Fm X3VuaXguYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQveGZybS94ZnJt X3N0YXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogMTM2IGZpbGVzIGNoYW5n ZWQsIDMwNCBpbnNlcnRpb25zKCspLCAzMzkgZGVsZXRpb25zKC0pCgotLSAKMi4zNy4zCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgtZjJmcy1k ZXZlbCBtYWlsaW5nIGxpc3QKTGludXgtZjJmcy1kZXZlbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQK aHR0cHM6Ly9saXN0cy5zb3VyY2Vmb3JnZS5uZXQvbGlzdHMvbGlzdGluZm8vbGludXgtZjJmcy1k ZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EFF0EC433FE for ; Wed, 5 Oct 2022 21:49:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=WUtsG8xMTJqrF6UIk+gMGunlmQ9BPt8zHv7Ub6ZF37k=; b=NxhSBxmpfwmlUS 2xosRym8iYc2KBTumQQRPty6P54m7BwZv80K5retaPX28uGzqJ9VB1qB/gj0nQsS7OwwonoJYJrPu vFl9Zz6fJYC70hmwkrdmVWuSaXGRxLBb5qYjAA3wWWTp9uFjvSMHCf4Olw1HNcmjfaD2GctGeFIYT 303PIng2p2KfJC8xNxfySEI73qad8S0oxkV0/sNjEm4qBJGSB8H+TC61Y3mk/9oMm9kM0SebHpWNr QdymR1NXYw0wLTcE993UBadoFCz8dBj3Nhf1E324KXhUwnxhkdyEEAxbndJCWoH2yNONUdBAgTElN y3/V7aW5MRvnhIgIaCzA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1ogCGm-00GDKE-Ae; Wed, 05 Oct 2022 21:49:36 +0000 Received: from ams.source.kernel.org ([2604:1380:4601:e00::1]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1ogCGh-00GDII-1E; Wed, 05 Oct 2022 21:49:34 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 0C4BDB81EC9; Wed, 5 Oct 2022 21:49:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5AA6C433D6; Wed, 5 Oct 2022 21:49:12 +0000 (UTC) Authentication-Results: smtp.kernel.org; dkim=pass (1024-bit key) header.d=zx2c4.com header.i=@zx2c4.com header.b="Qhkl413I" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1665006550; 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=kCoSuUs9/UuRmM69QeDy2i9LHinxGmdLR45ZcTaEirk=; b=Qhkl413IKS9UgZdKh7qX9XR//PEzMC7IKCarDofy3JsuOZGgYVos7Y1lBiMvIBBMcVqGoi 7r0OnXV0Qj1WnNZ+VU3Xc8roONhraZkXZ+EkeMM0FR/6WCQ++q5bALgZsXuPr1ztLy5trS rTtCF5uZMusANY6aJcM8PEFs0H0T/ts= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 837ac4b0 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Wed, 5 Oct 2022 21:49:10 +0000 (UTC) From: "Jason A. Donenfeld" To: linux-kernel@vger.kernel.org Cc: "Jason A. Donenfeld" , Ajay Singh , Akinobu Mita , Alexandre Torgue , Amitkumar Karwar , Andreas Dilger , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Andreas Noever , Andrew Lunn , Andrew Morton , Andrii Nakryiko , Andy Gospodarek , Andy Lutomirski , Andy Shevchenko , Anil S Keshavamurthy , Anna Schumaker , Arend van Spriel , Ayush Sawal , Borislav Petkov , Chao Yu , =?UTF-8?q?Christoph=20B=C3=B6hmwalder?= , Christoph Hellwig , Christophe Leroy , Chuck Lever , Claudiu Beznea , Cong Wang , Dan Williams , Daniel Borkmann , "Darrick J . Wong" , Dave Hansen , David Ahern , "David S . Miller" , Dennis Dalessandro , Dick Kennedy , Dmitry Vyukov , Eric Dumazet , Florian Westphal , Franky Lin , Ganapathi Bhat , Greg Kroah-Hartman , Gregory Greenman , "H . Peter Anvin" , Hannes Reinecke , Hans Verkuil , Hante Meuleman , Hao Luo , Haoyue Xu , Heiner Kallweit , Helge Deller , Herbert Xu , Hideaki YOSHIFUJI , Hugh Dickins , Igor Mitsyanko , Ilya Dryomov , Ingo Molnar , Jack Wang , Jaegeuk Kim , Jaehoon Chung , Jakub Kicinski , Jamal Hadi Salim , "James E . J . Bottomley" , James Smart , Jan Kara , Jason Gunthorpe , Jay Vosburgh , Jean-Paul Roubelat , Jeff Layton , Jens Axboe , Jiri Olsa , Jiri Pirko , Johannes Berg , John Fastabend , John Stultz , Jon Maloy , Jonathan Corbet , Jozsef Kadlecsik , Julian Anastasov , KP Singh , Kalle Valo , Kees Cook , Keith Busch , Lars Ellenberg , Leon Romanovsky , Manish Rangankar , Manivannan Sadhasivam , Marcelo Ricardo Leitner , Marco Elver , "Martin K . Petersen" , Martin KaFai Lau , Masami Hiramatsu , Mauro Carvalho Chehab , Maxime Coquelin , "Md . Haris Iqbal" , Michael Chan , Michael Ellerman , Michael Jamet , Michal Januszewski , Mika Westerberg , Miquel Raynal , Namjae Jeon , "Naveen N . Rao" , Neil Horman , Nicholas Piggin , Nilesh Javali , OGAWA Hirofumi , Pablo Neira Ayuso , Paolo Abeni , Peter Zijlstra , Philipp Reisner , Potnuri Bharat Teja , Pravin B Shelar , Rasmus Villemoes , Richard Weinberger , Rohit Maheshwari , Russell King , Sagi Grimberg , Santosh Shilimkar , Sergey Matyukevich , Sharvari Harisangam , Simon Horman , Song Liu , Stanislav Fomichev , Steffen Klassert , Stephen Boyd , Stephen Hemminger , Sungjong Seo , Theodore Ts'o , Thomas Gleixner , Thomas Graf , Thomas Sailer , =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Trond Myklebust , Ulf Hansson , Varun Prakash , Veaceslav Falico , Vignesh Raghavendra , Vinay Kumar Yadav , Vinod Koul , Vlad Yasevich , Wenpeng Liang , Xinming Hu , Xiubo Li , Yehezkel Bernat , Ying Xue , Yishai Hadas , Yonghong Song , Yury Norov , brcm80211-dev-list.pdl@broadcom.com, cake@lists.bufferbloat.net, ceph-devel@vger.kernel.org, coreteam@netfilter.org, dccp@vger.kernel.org, dev@openvswitch.org, dmaengine@vger.kernel.org, drbd-dev@lists.linbit.com, dri-devel@lists.freedesktop.org, kasan-dev@googlegroups.com, linux-actions@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-block@vger.kernel.org, linux-crypto@vger.kernel.org, linux-doc@vger.kernel.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-fbdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-hams@vger.kernel.org, linux-media@vger.kernel.org, linux-mm@kvack.org, linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org, linux-nfs@vger.kernel.org, linux-nvme@lists.infradead.org, linux-raid@vger.kernel.org, linux-rdma@vger.kernel.org, linux-scsi@vger.kernel.org, linux-sctp@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org, linux-xfs@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, lvs-devel@vger.kernel.org, netdev@vger.kernel.org, netfilter-devel@vger.kernel.org, rds-devel@oss.oracle.com, SHA-cyfmac-dev-list@infineon.com, target-devel@vger.kernel.org, tipc-discussion@lists.sourceforge.net Subject: [PATCH v1 0/5] treewide cleanup of random integer usage Date: Wed, 5 Oct 2022 23:48:39 +0200 Message-Id: <20221005214844.2699-1-Jason@zx2c4.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221005_144931_418679_4E5CD74B X-CRM114-Status: GOOD ( 26.32 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGkgZm9sa3MsCgpUaGlzIGlzIGEgZml2ZSBwYXJ0IHRyZWV3aWRlIGNsZWFudXAgb2YgcmFuZG9t IGludGVnZXIgaGFuZGxpbmcuIFRoZQpydWxlcyBmb3IgcmFuZG9tIGludGVnZXJzIGFyZToKCi0g SWYgeW91IHdhbnQgYSBzZWN1cmUgb3IgYW4gaW5zZWN1cmUgcmFuZG9tIHU2NCwgdXNlIGdldF9y YW5kb21fdTY0KCkuCi0gSWYgeW91IHdhbnQgYSBzZWN1cmUgb3IgYW4gaW5zZWN1cmUgcmFuZG9t IHUzMiwgdXNlIGdldF9yYW5kb21fdTMyKCkuCiAgKiBUaGUgb2xkIGZ1bmN0aW9uIHByYW5kb21f dTMyKCkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgYSB3aGlsZSBub3cKICAgIGFuZCBpcyBqdXN0 IGEgd3JhcHBlciBhcm91bmQgZ2V0X3JhbmRvbV91MzIoKS4KLSBJZiB5b3Ugd2FudCBhIHNlY3Vy ZSBvciBhbiBpbnNlY3VyZSByYW5kb20gdTE2LCB1c2UgZ2V0X3JhbmRvbV91MTYoKS4KLSBJZiB5 b3Ugd2FudCBhIHNlY3VyZSBvciBhbiBpbnNlY3VyZSByYW5kb20gdTgsIHVzZSBnZXRfcmFuZG9t X3U4KCkuCi0gSWYgeW91IHdhbnQgc2VjdXJlIG9yIGluc2VjdXJlIHJhbmRvbSBieXRlcywgdXNl IGdldF9yYW5kb21fYnl0ZXMoKS4KICAqIFRoZSBvbGQgZnVuY3Rpb24gcHJhbmRvbV9ieXRlcygp IGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGEgd2hpbGUgbm93CiAgICBhbmQgaGFzIGxvbmcgYmVl biBhIHdyYXBwZXIgYXJvdW5kIGdldF9yYW5kb21fYnl0ZXMoKS4KLSBJZiB5b3Ugd2FudCBhIG5v bi11bmlmb3JtIHJhbmRvbSB1MzIsIHUxNiwgb3IgdTggYm91bmRlZCBieSBhIGNlcnRhaW4KICBv cGVuIGludGVydmFsIG1heGltdW0sIHVzZSBwcmFuZG9tX3UzMl9tYXgoKS4KICAqIEkgc2F5ICJu b24tdW5pZm9ybSIsIGJlY2F1c2UgaXQgZG9lc24ndCBkbyBhbnkgcmVqZWN0aW9uIHNhbXBsaW5n IG9yCiAgICBkaXZpc2lvbnMuIEhlbmNlLCBpdCBzdGF5cyB3aXRoaW4gdGhlIHByYW5kb21fKiBu YW1lc3BhY2UuCgpUaGVzZSBydWxlcyBvdWdodCB0byBiZSBhcHBsaWVkIHVuaWZvcm1seSwgc28g dGhhdCB3ZSBjYW4gY2xlYW4gdXAgdGhlCmRlcHJlY2F0ZWQgZnVuY3Rpb25zLCBhbmQgZWFybiB0 aGUgYmVuZWZpdHMgb2YgdXNpbmcgdGhlIG1vZGVybgpmdW5jdGlvbnMuIEluIHBhcnRpY3VsYXIs IGluIGFkZGl0aW9uIHRvIHRoZSBib3Jpbmcgc3Vic3RpdHV0aW9ucywgdGhpcwpwYXRjaHNldCBh Y2NvbXBsaXNoZXMgYSBmZXcgbmljZSBlZmZlY3RzOgoKLSBCeSB1c2luZyBwcmFuZG9tX3UzMl9t YXgoKSB3aXRoIGFuIHVwcGVyLWJvdW5kIHRoYXQgdGhlIGNvbXBpbGVyIGNhbgogIHByb3ZlIGF0 IGNvbXBpbGUtdGltZSBpcyDiiaQ2NTUzNiBvciDiiaQyNTYsIGludGVybmFsbHkgZ2V0X3JhbmRv bV91MTYoKQogIG9yIGdldF9yYW5kb21fdTgoKSBpcyB1c2VkLCB3aGljaCB3YXN0ZXMgZmV3ZXIg YmF0Y2hlZCByYW5kb20gYnl0ZXMsCiAgYW5kIGhlbmNlIGhhcyBoaWdoZXIgdGhyb3VnaHB1dC4K Ci0gQnkgdXNpbmcgcHJhbmRvbV91MzJfbWF4KCkgaW5zdGVhZCBvZiAlLCB3aGVuIHRoZSB1cHBl ci1ib3VuZCBpcyBub3QgYQogIGNvbnN0YW50LCBkaXZpc2lvbiBpcyBzdGlsbCBhdm9pZGVkLCBi ZWNhdXNlIHByYW5kb21fdTMyX21heCgpIHVzZXMKICBhIGZhc3RlciBtdWx0aXBsaWNhdGlvbi1i YXNlZCB0cmljayBpbnN0ZWFkLgoKLSBCeSB1c2luZyBnZXRfcmFuZG9tX3UxNigpIG9yIGdldF9y YW5kb21fdTgoKSBpbiBjYXNlcyB3aGVyZSB0aGUgcmV0dXJuCiAgdmFsdWUgaXMgaW50ZW5kZWQg dG8gaW5kZWVkIGJlIGEgdTE2IG9yIGEgdTgsIHdlIHdhc3RlIGZld2VyIGJhdGNoZWQKICByYW5k b20gYnl0ZXMsIGFuZCBoZW5jZSBoYXZlIGhpZ2hlciB0aHJvdWdocHV0LgoKU28sIGJhc2VkIG9u IHRob3NlIHJ1bGVzIGFuZCBiZW5lZml0cyBmcm9tIGZvbGxvd2luZyB0aGVtLCB0aGlzIHBhdGNo c2V0CmJyZWFrcyBkb3duIGludG8gdGhlIGZvbGxvd2luZyBmaXZlIHN0ZXBzOgoKMSkgUmVwbGFj ZSBgcHJhbmRvbV91MzIoKSAlIG1heGAgYW5kIHZhcmlhbnRzIHRoZXJlb2Ygd2l0aAogICBwcmFu ZG9tX3UzMl9tYXgobWF4KS4KCjIpIFJlcGxhY2UgYCh0eXBlKWdldF9yYW5kb21fdTMyKClgIGFu ZCB2YXJpYW50cyB0aGVyZW9mIHdpdGgKICAgZ2V0X3JhbmRvbV91MTYoKSBvciBnZXRfcmFuZG9t X3U4KCkuIEkgdG9vayB0aGUgcGFpbnMgdG8gYWN0dWFsbHkKICAgbG9vayBhbmQgc2VlIHdoYXQg ZXZlcnkgbHZhbHVlIHR5cGUgd2FzIGFjcm9zcyB0aGUgZW50aXJlIHRyZWUuCgozKSBSZXBsYWNl IHJlbWFpbmluZyBkZXByZWNhdGVkIHVzZXMgb2YgcHJhbmRvbV91MzIoKSB3aXRoCiAgIGdldF9y YW5kb21fdTMyKCkuIAoKNCkgUmVwbGFjZSByZW1haW5pbmcgZGVwcmVjYXRlZCB1c2VzIG9mIHBy YW5kb21fYnl0ZXMoKSB3aXRoCiAgIGdldF9yYW5kb21fYnl0ZXMoKS4KCjUpIFJlbW92ZSB0aGUg ZGVwcmVjYXRlZCBhbmQgbm93LXVudXNlZCBwcmFuZG9tX3UzMigpIGFuZAogICBwcmFuZG9tX2J5 dGVzKCkgaW5saW5lIHdyYXBwZXIgZnVuY3Rpb25zLgoKSSB3YXMgdGhpbmtpbmcgb2YgdGFraW5n IHRoaXMgdGhyb3VnaCBteSByYW5kb20uZ2l0IHRyZWUgKG9uIHdoaWNoIHRoaXMKc2VyaWVzIGlz IGN1cnJlbnRseSBiYXNlZCkgYW5kIHN1Ym1pdHRpbmcgaXQgbmVhciB0aGUgZW5kIG9mIHRoZSBt ZXJnZQp3aW5kb3csIG9yIHdhaXRpbmcgZm9yIHRoZSB2ZXJ5IGVuZCBvZiB0aGUgNi4xIGN5Y2xl IHdoZW4gdGhlcmUgd2lsbCBiZQp0aGUgZmV3ZXN0IG5ldyBwYXRjaGVzIGJyZXdpbmcuIElmIHNv bWVib2R5IHdpdGggc29tZSB0cmVld2lkZS1jbGVhbnVwCmV4cGVyaWVuY2UgbWlnaHQgc2hhcmUg c29tZSB3aXNkb20gYWJvdXQgd2hhdCB0aGUgYmVzdCB0aW1pbmcgdXN1YWxseQp3aW5kcyB1cCBi ZWluZywgSSdtIGFsbCBlYXJzLgoKSSd2ZSBDQydkIGdldF9tYWludGFpbmVycy5wbCwgd2hpY2gg aXMgYSBwcmV0dHkgYmlnIGxpc3QuIFByb2JhYmx5IHNvbWUKcG9ydGlvbiBvZiB0aG9zZSBhcmUg Z29pbmcgdG8gYm91bmNlLCB0b28sIGFuZCBldmVyeXRpbWUgeW91IHJlcGx5IHRvCnRoaXMgdGhy ZWFkLCB5b3UnbGwgaGF2ZSB0byBkZWFsIHdpdGggYSBidW5jaCBvZiBib3VuY2VzIGNvbWluZwpp bW1lZGlhdGVseSBhZnRlci4gQW5kIGEgcmVjaXBpZW50IGxpc3QgdGhpcyBiaWcgd2lsbCBwcm9i YWJseSBkb2NrIG15CmVtYWlsIGRvbWFpbidzIHNwYW0gcmVwdXRhdGlvbiwgYXQgbGVhc3QgdGVt cG9yYXJpbHkuIFNpZ2guIEkgdGhpbmsKdGhhdCdzIGp1c3QgaG93IGl0IGdvZXMgd2l0aCB0cmVl d2lkZSBjbGVhbnVwcyB0aG91Z2guIEFnYWluLCBsZXQgbWUKa25vdyBpZiBJJ20gZG9pbmcgaXQg d3JvbmcuCgpQbGVhc2UgdGFrZSBhIGxvb2shCgpUaGFua3MsCkphc29uCgpDYzogQWpheSBTaW5n aCA8YWpheS5rYXRoYXRAbWljcm9jaGlwLmNvbT4KQ2M6IEFraW5vYnUgTWl0YSA8YWtpbm9idS5t aXRhQGdtYWlsLmNvbT4KQ2M6IEFsZXhhbmRyZSBUb3JndWUgPGFsZXhhbmRyZS50b3JndWVAZm9z cy5zdC5jb20+CkNjOiBBbWl0a3VtYXIgS2Fyd2FyIDxhbWl0a2Fyd2FyQGdtYWlsLmNvbT4KQ2M6 IEFuZHJlYXMgRGlsZ2VyIDxhZGlsZ2VyLmtlcm5lbEBkaWxnZXIuY2E+CkNjOiBBbmRyZWFzIEbD pHJiZXIgPGFmYWVyYmVyQHN1c2UuZGU+CkNjOiBBbmRyZWFzIE5vZXZlciA8YW5kcmVhcy5ub2V2 ZXJAZ21haWwuY29tPgpDYzogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpDYzogQW5kcmV3 IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IEFuZHJpaSBOYWtyeWlrbyA8 YW5kcmlpQGtlcm5lbC5vcmc+CkNjOiBBbmR5IEdvc3BvZGFyZWsgPGFuZHlAZ3JleWhvdXNlLm5l dD4KQ2M6IEFuZHkgTHV0b21pcnNraSA8bHV0b0BrZXJuZWwub3JnPgpDYzogQW5keSBTaGV2Y2hl bmtvIDxhbmRyaXkuc2hldmNoZW5rb0BsaW51eC5pbnRlbC5jb20+CkNjOiBBbmlsIFMgS2VzaGF2 YW11cnRoeSA8YW5pbC5zLmtlc2hhdmFtdXJ0aHlAaW50ZWwuY29tPgpDYzogQW5uYSBTY2h1bWFr ZXIgPGFubmFAa2VybmVsLm9yZz4KQ2M6IEFyZW5kIHZhbiBTcHJpZWwgPGFzcHJpZWxAZ21haWwu Y29tPgpDYzogQXl1c2ggU2F3YWwgPGF5dXNoLnNhd2FsQGNoZWxzaW8uY29tPgpDYzogQm9yaXNs YXYgUGV0a292IDxicEBhbGllbjguZGU+CkNjOiBDaGFvIFl1IDxjaGFvQGtlcm5lbC5vcmc+CkNj OiBDaHJpc3RvcGggQsO2aG13YWxkZXIgPGNocmlzdG9waC5ib2VobXdhbGRlckBsaW5iaXQuY29t PgpDYzogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+CkNjOiBDaHJpc3RvcGhlIExlcm95 IDxjaHJpc3RvcGhlLmxlcm95QGNzZ3JvdXAuZXU+CkNjOiBDaHVjayBMZXZlciA8Y2h1Y2subGV2 ZXJAb3JhY2xlLmNvbT4KQ2M6IENsYXVkaXUgQmV6bmVhIDxjbGF1ZGl1LmJlem5lYUBtaWNyb2No aXAuY29tPgpDYzogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkNjOiBEYW4g V2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KQ2M6IERhbmllbCBCb3JrbWFubiA8 ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkNjOiBEYXJyaWNrIEouIFdvbmcgPGRqd29uZ0BrZXJuZWwu b3JnPgpDYzogRGF2ZSBIYW5zZW4gPGRhdmUuaGFuc2VuQGxpbnV4LmludGVsLmNvbT4KQ2M6IERh dmlkIEFoZXJuIDxkc2FoZXJuQGtlcm5lbC5vcmc+CkNjOiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+CkNjOiBEZW5uaXMgRGFsZXNzYW5kcm8gPGRlbm5pcy5kYWxlc3NhbmRy b0Bjb3JuZWxpc25ldHdvcmtzLmNvbT4KQ2M6IERpY2sgS2VubmVkeSA8ZGljay5rZW5uZWR5QGJy b2FkY29tLmNvbT4KQ2M6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ2M6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3 QHN0cmxlbi5kZT4KQ2M6IEZyYW5reSBMaW4gPGZyYW5reS5saW5AYnJvYWRjb20uY29tPgpDYzog R2FuYXBhdGhpIEJoYXQgPGdhbmFwYXRoaTAxN0BnbWFpbC5jb20+CkNjOiBHcmVnIEtyb2FoLUhh cnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgpDYzogR3JlZ29yeSBHcmVlbm1hbiA8 Z3JlZ29yeS5ncmVlbm1hbkBpbnRlbC5jb20+CkNjOiBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9y LmNvbT4KQ2M6IEhhbm5lcyBSZWluZWNrZSA8aGFyZUBzdXNlLmRlPgpDYzogSGFucyBWZXJrdWls IDxodmVya3VpbEB4czRhbGwubmw+CkNjOiBIYW50ZSBNZXVsZW1hbiA8aGFudGUubWV1bGVtYW5A YnJvYWRjb20uY29tPgpDYzogSGFvIEx1byA8aGFvbHVvQGdvb2dsZS5jb20+CkNjOiBIYW95dWUg WHUgPHh1aGFveXVlMUBoaXNpbGljb24uY29tPgpDYzogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdl aXQxQGdtYWlsLmNvbT4KQ2M6IEhlbGdlIERlbGxlciA8ZGVsbGVyQGdteC5kZT4KQ2M6IEhlcmJl cnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KQ2M6IEhpZGVha2kgWU9TSElGVUpJ IDx5b3NoZnVqaUBsaW51eC1pcHY2Lm9yZz4KQ2M6IEh1Z2ggRGlja2lucyA8aHVnaGRAZ29vZ2xl LmNvbT4KQ2M6IElnb3IgTWl0c3lhbmtvIDxpbWl0c3lhbmtvQHF1YW50ZW5uYS5jb20+CkNjOiBJ bHlhIERyeW9tb3YgPGlkcnlvbW92QGdtYWlsLmNvbT4KQ2M6IEluZ28gTW9sbmFyIDxtaW5nb0By ZWRoYXQuY29tPgpDYzogSmFjayBXYW5nIDxqaW5wdS53YW5nQGlvbm9zLmNvbT4KQ2M6IEphZWdl dWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+CkNjOiBKYWVob29uIENodW5nIDxqaDgwLmNodW5n QHNhbXN1bmcuY29tPgpDYzogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KQ2M6IEph bWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNjOiBKYW1lcyBFLkouIEJvdHRvbWxl eSA8amVqYkBsaW51eC5pYm0uY29tPgpDYzogSmFtZXMgU21hcnQgPGphbWVzLnNtYXJ0QGJyb2Fk Y29tLmNvbT4KQ2M6IEphbiBLYXJhIDxqYWNrQHN1c2UuY29tPgpDYzogSmFzb24gR3VudGhvcnBl IDxqZ2dAemllcGUuY2E+CkNjOiBKYXkgVm9zYnVyZ2ggPGoudm9zYnVyZ2hAZ21haWwuY29tPgpD YzogSmVhbi1QYXVsIFJvdWJlbGF0IDxqcHJAZjZmYmIub3JnPgpDYzogSmVmZiBMYXl0b24gPGps YXl0b25Aa2VybmVsLm9yZz4KQ2M6IEplbnMgQXhib2UgPGF4Ym9lQGtlcm5lbC5kaz4KQ2M6IEpp cmkgT2xzYSA8am9sc2FAa2VybmVsLm9yZz4KQ2M6IEppcmkgUGlya28gPGppcmlAcmVzbnVsbGku dXM+CkNjOiBKb2hhbm5lcyBCZXJnIDxqb2hhbm5lc0BzaXBzb2x1dGlvbnMubmV0PgpDYzogSm9o biBGYXN0YWJlbmQgPGpvaG4uZmFzdGFiZW5kQGdtYWlsLmNvbT4KQ2M6IEpvaG4gU3R1bHR6IDxq c3R1bHR6QGdvb2dsZS5jb20+CkNjOiBKb24gTWFsb3kgPGptYWxveUByZWRoYXQuY29tPgpDYzog Sm9uYXRoYW4gQ29yYmV0IDxjb3JiZXRAbHduLm5ldD4KQ2M6IEpvenNlZiBLYWRsZWNzaWsgPGth ZGxlY0BuZXRmaWx0ZXIub3JnPgpDYzogSnVsaWFuIEFuYXN0YXNvdiA8amFAc3NpLmJnPgpDYzog S1AgU2luZ2ggPGtwc2luZ2hAa2VybmVsLm9yZz4KQ2M6IEthbGxlIFZhbG8gPGt2YWxvQGtlcm5l bC5vcmc+CkNjOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KQ2M6IEtlaXRoIEJ1 c2NoIDxrYnVzY2hAa2VybmVsLm9yZz4KQ2M6IExhcnMgRWxsZW5iZXJnIDxsYXJzLmVsbGVuYmVy Z0BsaW5iaXQuY29tPgpDYzogTGVvbiBSb21hbm92c2t5IDxsZW9uQGtlcm5lbC5vcmc+CkNjOiBN YW5pc2ggUmFuZ2Fua2FyIDxtcmFuZ2Fua2FyQG1hcnZlbGwuY29tPgpDYzogTWFuaXZhbm5hbiBT YWRoYXNpdmFtIDxtYW5pQGtlcm5lbC5vcmc+CkNjOiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8 bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KQ2M6IE1hcmNvIEVsdmVyIDxlbHZlckBnb29nbGUu Y29tPgpDYzogTWFydGluIEsuIFBldGVyc2VuIDxtYXJ0aW4ucGV0ZXJzZW5Ab3JhY2xlLmNvbT4K Q2M6IE1hcnRpbiBLYUZhaSBMYXUgPG1hcnRpbi5sYXVAbGludXguZGV2PgpDYzogTWFzYW1pIEhp cmFtYXRzdSA8bWhpcmFtYXRAa2VybmVsLm9yZz4KQ2M6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8 bWNoZWhhYkBrZXJuZWwub3JnPgpDYzogTWF4aW1lIENvcXVlbGluIDxtY29xdWVsaW4uc3RtMzJA Z21haWwuY29tPgpDYzogTWQuIEhhcmlzIElxYmFsIDxoYXJpcy5pcWJhbEBpb25vcy5jb20+CkNj OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+CkNjOiBNaWNoYWVsIEVs bGVybWFuIDxtcGVAZWxsZXJtYW4uaWQuYXU+CkNjOiBNaWNoYWVsIEphbWV0IDxtaWNoYWVsLmph bWV0QGludGVsLmNvbT4KQ2M6IE1pY2hhbCBKYW51c3pld3NraSA8c3BvY2tAZ2VudG9vLm9yZz4K Q2M6IE1pa2EgV2VzdGVyYmVyZyA8bWlrYS53ZXN0ZXJiZXJnQGxpbnV4LmludGVsLmNvbT4KQ2M6 IE1pcXVlbCBSYXluYWwgPG1pcXVlbC5yYXluYWxAYm9vdGxpbi5jb20+CkNjOiBOYW1qYWUgSmVv biA8bGlua2luamVvbkBrZXJuZWwub3JnPgpDYzogTmF2ZWVuIE4uIFJhbyA8bmF2ZWVuLm4ucmFv QGxpbnV4LmlibS5jb20+CkNjOiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpD YzogTmljaG9sYXMgUGlnZ2luIDxucGlnZ2luQGdtYWlsLmNvbT4KQ2M6IE5pbGVzaCBKYXZhbGkg PG5qYXZhbGlAbWFydmVsbC5jb20+CkNjOiBPR0FXQSBIaXJvZnVtaSA8aGlyb2Z1bWlAbWFpbC5w YXJrbmV0LmNvLmpwPgpDYzogUGFibG8gTmVpcmEgQXl1c28gPHBhYmxvQG5ldGZpbHRlci5vcmc+ CkNjOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkNjOiBQZXRlciBaaWpsc3RyYSA8 cGV0ZXJ6QGluZnJhZGVhZC5vcmc+CkNjOiBQaGlsaXBwIFJlaXNuZXIgPHBoaWxpcHAucmVpc25l ckBsaW5iaXQuY29tPgpDYzogUG90bnVyaSBCaGFyYXQgVGVqYSA8YmhhcmF0QGNoZWxzaW8uY29t PgpDYzogUHJhdmluIEIgU2hlbGFyIDxwc2hlbGFyQG92bi5vcmc+CkNjOiBSYXNtdXMgVmlsbGVt b2VzIDxsaW51eEByYXNtdXN2aWxsZW1vZXMuZGs+CkNjOiBSaWNoYXJkIFdlaW5iZXJnZXIgPHJp Y2hhcmRAbm9kLmF0PgpDYzogUm9oaXQgTWFoZXNod2FyaSA8cm9oaXRtQGNoZWxzaW8uY29tPgpD YzogUnVzc2VsbCBLaW5nIDxsaW51eEBhcm1saW51eC5vcmcudWs+CkNjOiBTYWdpIEdyaW1iZXJn IDxzYWdpQGdyaW1iZXJnLm1lPgpDYzogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlt a2FyQG9yYWNsZS5jb20+CkNjOiBTZXJnZXkgTWF0eXVrZXZpY2ggPGdlb21hdHNpQGdtYWlsLmNv bT4KQ2M6IFNoYXJ2YXJpIEhhcmlzYW5nYW0gPHNoYXJ2YXJpLmhhcmlzYW5nYW1AbnhwLmNvbT4K Q2M6IFNpbW9uIEhvcm1hbiA8aG9ybXNAdmVyZ2UubmV0LmF1PgpDYzogU29uZyBMaXUgPHNvbmdA a2VybmVsLm9yZz4KQ2M6IFN0YW5pc2xhdiBGb21pY2hldiA8c2RmQGdvb2dsZS5jb20+CkNjOiBT dGVmZmVuIEtsYXNzZXJ0IDxzdGVmZmVuLmtsYXNzZXJ0QHNlY3VuZXQuY29tPgpDYzogU3RlcGhl biBCb3lkIDxzYm95ZEBrZXJuZWwub3JnPgpDYzogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5A bmV0d29ya3BsdW1iZXIub3JnPgpDYzogU3VuZ2pvbmcgU2VvIDxzajE1NTcuc2VvQHNhbXN1bmcu Y29tPgpDYzogVGhlb2RvcmUgVHMnbyA8dHl0c29AbWl0LmVkdT4KQ2M6IFRob21hcyBHbGVpeG5l ciA8dGdseEBsaW51dHJvbml4LmRlPgpDYzogVGhvbWFzIEdyYWYgPHRncmFmQHN1dWcuY2g+CkNj OiBUaG9tYXMgU2FpbGVyIDx0LnNhaWxlckBhbHVtbmkuZXRoei5jaD4KQ2M6IFRva2UgSMO4aWxh bmQtSsO4cmdlbnNlbiA8dG9rZUB0b2tlLmRrPgpDYzogVHJvbmQgTXlrbGVidXN0IDx0cm9uZC5t eWtsZWJ1c3RAaGFtbWVyc3BhY2UuY29tPgpDYzogVWxmIEhhbnNzb24gPHVsZi5oYW5zc29uQGxp bmFyby5vcmc+CkNjOiBWYXJ1biBQcmFrYXNoIDx2YXJ1bkBjaGVsc2lvLmNvbT4KQ2M6IFZlYWNl c2xhdiBGYWxpY28gPHZmYWxpY29AZ21haWwuY29tPgpDYzogVmlnbmVzaCBSYWdoYXZlbmRyYSA8 dmlnbmVzaHJAdGkuY29tPgpDYzogVmluYXkgS3VtYXIgWWFkYXYgPHZpbmF5LnlhZGF2QGNoZWxz aW8uY29tPgpDYzogVmlub2QgS291bCA8dmtvdWxAa2VybmVsLm9yZz4KQ2M6IFZsYWQgWWFzZXZp Y2ggPHZ5YXNldmljaEBnbWFpbC5jb20+CkNjOiBXZW5wZW5nIExpYW5nIDxsaWFuZ3dlbnBlbmdA aHVhd2VpLmNvbT4KQ2M6IFhpbm1pbmcgSHUgPGh1eGlubWluZzgyMEBnbWFpbC5jb20+CkNjOiBY aXVibyBMaSA8eGl1YmxpQHJlZGhhdC5jb20+CkNjOiBZZWhlemtlbCBCZXJuYXQgPFllaGV6a2Vs U2hCQGdtYWlsLmNvbT4KQ2M6IFlpbmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpDYzog WWlzaGFpIEhhZGFzIDx5aXNoYWloQG52aWRpYS5jb20+CkNjOiBZb25naG9uZyBTb25nIDx5aHNA ZmIuY29tPgpDYzogWXVyeSBOb3JvdiA8eXVyeS5ub3JvdkBnbWFpbC5jb20+CkNjOiBicmNtODAy MTEtZGV2LWxpc3QucGRsQGJyb2FkY29tLmNvbQpDYzogY2FrZUBsaXN0cy5idWZmZXJibG9hdC5u ZXQKQ2M6IGNlcGgtZGV2ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBjb3JldGVhbUBuZXRmaWx0ZXIu b3JnCkNjOiBkY2NwQHZnZXIua2VybmVsLm9yZwpDYzogZGV2QG9wZW52c3dpdGNoLm9yZwpDYzog ZG1hZW5naW5lQHZnZXIua2VybmVsLm9yZwpDYzogZHJiZC1kZXZAbGlzdHMubGluYml0LmNvbQpD YzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpDYzoga2FzYW4tZGV2QGdvb2dsZWdy b3Vwcy5jb20KQ2M6IGxpbnV4LWFjdGlvbnNAbGlzdHMuaW5mcmFkZWFkLm9yZwpDYzogbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1ibG9ja0B2Z2VyLmtlcm5l bC5vcmcKQ2M6IGxpbnV4LWNyeXB0b0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWRvY0B2Z2Vy Lmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWV4dDRAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1mMmZz LWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApDYzogbGludXgtZmJkZXZAdmdlci5rZXJuZWwu b3JnCkNjOiBsaW51eC1mc2RldmVsQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtaGFtc0B2Z2Vy Lmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LW1l ZGlhQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBsaW51eC1tbWNA dmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1tdGRAbGlzdHMuaW5mcmFkZWFkLm9yZwpDYzogbGlu dXgtbmZzQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbnZtZUBsaXN0cy5pbmZyYWRlYWQub3Jn CkNjOiBsaW51eC1yYWlkQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtcmRtYUB2Z2VyLmtlcm5l bC5vcmcKQ2M6IGxpbnV4LXNjc2lAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1zY3RwQHZnZXIu a2VybmVsLm9yZwpDYzogbGludXgtc3RtMzJAc3QtbWQtbWFpbG1hbi5zdG9ybXJlcGx5LmNvbQpD YzogbGludXgtdXNiQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtd2lyZWxlc3NAdmdlci5rZXJu ZWwub3JnCkNjOiBsaW51eC14ZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eHBwYy1kZXZAbGlz dHMub3psYWJzLm9yZwpDYzogbHZzLWRldmVsQHZnZXIua2VybmVsLm9yZwpDYzogbmV0ZGV2QHZn ZXIua2VybmVsLm9yZwpDYzogbmV0ZmlsdGVyLWRldmVsQHZnZXIua2VybmVsLm9yZwpDYzogcmRz LWRldmVsQG9zcy5vcmFjbGUuY29tCkNjOiBTSEEtY3lmbWFjLWRldi1saXN0QGluZmluZW9uLmNv bQpDYzogdGFyZ2V0LWRldmVsQHZnZXIua2VybmVsLm9yZwpDYzogdGlwYy1kaXNjdXNzaW9uQGxp c3RzLnNvdXJjZWZvcmdlLm5ldAoKSmFzb24gQS4gRG9uZW5mZWxkICg1KToKICB0cmVld2lkZTog dXNlIHByYW5kb21fdTMyX21heCgpIHdoZW4gcG9zc2libGUKICB0cmVld2lkZTogdXNlIGdldF9y YW5kb21fe3U4LHUxNn0oKSB3aGVuIHBvc3NpYmxlCiAgdHJlZXdpZGU6IHVzZSBnZXRfcmFuZG9t X3UzMigpIHdoZW4gcG9zc2libGUKICB0cmVld2lkZTogdXNlIGdldF9yYW5kb21fYnl0ZXMgd2hl biBwb3NzaWJsZQogIHByYW5kb206IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb25zCgogRG9jdW1lbnRh dGlvbi9uZXR3b3JraW5nL2ZpbHRlci5yc3QgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvcG93ZXJw Yy9jcnlwdG8vY3JjLXZwbXN1bV90ZXN0LmMgICAgICAgICB8ICAyICstCiBhcmNoL3g4Ni9tbS9w YXQvY3BhLXRlc3QuYyAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogYmxvY2svYmxrLWNyeXB0 by1mYWxsYmFjay5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGNyeXB0by9hc3luY190eC9y YWlkNnRlc3QuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBjcnlwdG8vdGVzdG1nci5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA5NCArKysrKysrKystLS0tLS0tLS0tCiBkcml2 ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZWNlaXZlci5jICAgICAgICAgICAgfCAgNCArLQogZHJpdmVy cy9kbWEvZG1hdGVzdC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv aW5maW5pYmFuZC9jb3JlL2NtYS5jICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2lu ZmluaWJhbmQvaHcvY3hnYjQvY20uYyAgICAgICAgICAgICAgfCAgNCArLQogZHJpdmVycy9pbmZp bmliYW5kL2h3L2N4Z2I0L2lkX3RhYmxlLmMgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvaW5maW5p YmFuZC9ody9oZmkxL3RpZF9yZG1hLmMgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2luZmluaWJh bmQvaHcvaG5zL2huc19yb2NlX2FoLmMgICAgICAgfCAgNSArLQogZHJpdmVycy9pbmZpbmliYW5k L2h3L21seDQvbWFkLmMgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvaW5maW5pYmFuZC91 bHAvaXBvaWIvaXBvaWJfY20uYyAgICAgICB8ICAyICstCiBkcml2ZXJzL2luZmluaWJhbmQvdWxw L3J0cnMvcnRycy1jbHQuYyAgICAgICAgfCAgMyArLQogZHJpdmVycy9tZC9yYWlkNS1jYWNoZS5j ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbWVkaWEvY29tbW9uL3Y0bDIt dHBnL3Y0bDItdHBnLWNvcmUuYyB8ICAyICstCiAuLi4vbWVkaWEvdGVzdC1kcml2ZXJzL3Zpdmlk L3ZpdmlkLXJhZGlvLXJ4LmMgfCAgNCArLQogZHJpdmVycy9tbWMvY29yZS9jb3JlLmMgICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kc2ltLmMgICAg ICAgICAgICAgICAgfCAgOCArLQogZHJpdmVycy9tdGQvdGVzdHMvbXRkX25hbmRlY2N0ZXN0LmMg ICAgICAgICAgIHwgMTIgKy0tCiBkcml2ZXJzL210ZC90ZXN0cy9zcGVlZHRlc3QuYyAgICAgICAg ICAgICAgICAgfCAgMiArLQogZHJpdmVycy9tdGQvdGVzdHMvc3RyZXNzdGVzdC5jICAgICAgICAg ICAgICAgIHwgMTkgKy0tLQogZHJpdmVycy9tdGQvdWJpL2RlYnVnLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbXRkL3ViaS9kZWJ1Zy5oICAgICAgICAgICAgICAgICAg ICAgICB8ICA2ICstCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jICAgICAgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgICAg IHwgIDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2NuaWMuYyAgICAgICAgICB8 ICA1ICstCiAuLi4vY2hlbHNpby9pbmxpbmVfY3J5cHRvL2NodGxzL2NodGxzX2NtLmMgICAgfCAg NCArLQogLi4uL2NoZWxzaW8vaW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19pby5jICAgIHwgIDQg Ky0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXJfbWFpbi5jICAgICB8ICA4ICst CiBkcml2ZXJzL25ldC9oYW1yYWRpby9iYXljb21fZXBwLmMgICAgICAgICAgICAgfCAgMiArLQog ZHJpdmVycy9uZXQvaGFtcmFkaW8vaGRsY2Rydi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRy aXZlcnMvbmV0L2hhbXJhZGlvL3lhbS5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2 ZXJzL25ldC9waHkvYXQ4MDN4LmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVy cy9uZXQvd2lyZWd1YXJkL3NlbGZ0ZXN0L2FsbG93ZWRpcHMuYyAgIHwgMTYgKystLQogLi4uL2Jy b2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYyAgICAgICAgIHwgIDIgKy0KIC4uLi9uZXQv d2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYyB8ICAyICstCiAuLi4vbmV0L3dp cmVsZXNzL21hcnZlbGwvbXdpZmlleC9jZmc4MDIxMS5jICAgfCAgNCArLQogLi4uL3dpcmVsZXNz L21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jICAgIHwgIDIgKy0KIC4uLi9uZXQvd2lyZWxl c3MvcXVhbnRlbm5hL3F0bmZtYWMvY2ZnODAyMTEuYyB8ICAyICstCiBkcml2ZXJzL252bWUvY29t bW9uL2F1dGguYyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zY3NpL2N4Z2Jp L2N4Z2I0aS9jeGdiNGkuYyAgICAgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvc2NzaS9mY29lL2Zj b2VfY3Rsci5jICAgICAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJzL3Njc2kvbHBmYy9scGZj X2hiYWRpc2MuYyAgICAgICAgICAgICAgfCAgNiArLQogZHJpdmVycy9zY3NpL3FlZGkvcWVkaV9t YWluLmMgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGFyZ2V0L2lzY3NpL2N4Z2Jp dC9jeGdiaXRfY20uYyAgICAgICB8ICAyICstCiBkcml2ZXJzL3RodW5kZXJib2x0L3hkb21haW4u YyAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy92aWRlby9mYmRldi91dmVzYWZiLmMg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL2NlcGgvaW5vZGUuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBmcy9jZXBoL21kc21hcC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogZnMvZXhmYXQvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGZzL2V4dDIvaWFsbG9jLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBmcy9leHQ0L2lhbGxvYy5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNCArLQogZnMvZXh0NC9pb2N0bC5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDQgKy0KIGZzL2V4dDQvbW1wLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBmcy9leHQ0L3N1cGVyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNyArLQogZnMvZjJmcy9nYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGZzL2YyZnMvbmFtZWkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBmcy9mMmZzL3NlZ21lbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCAr LQogZnMvZmF0L2lub2RlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGZzL25mc2QvbmZzNHN0YXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBm cy91Ymlmcy9kZWJ1Zy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArLQogZnMv dWJpZnMvam91cm5hbC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL3Vi aWZzL2xwdF9jb21taXQuYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICstLQogZnMvdWJp ZnMvdG5jX2NvbW1pdC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL3hmcy9s aWJ4ZnMveGZzX2FsbG9jLmMgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy94ZnMvbGli eGZzL3hmc19pYWxsb2MuYyAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogZnMveGZzL3hmc19l cnJvci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL3hmcy94ZnNfaWNh Y2hlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy94ZnMveGZzX2xvZy5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9saW51eC9wcmFu ZG9tLmggICAgICAgICAgICAgICAgICAgICAgIHwgMTIgLS0tCiBpbmNsdWRlL25ldC9uZXRmaWx0 ZXIvbmZfcXVldWUuaCAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9uZXQvcmVkLmggICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvbmV0L3NvY2suaCAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBrZXJuZWwva2NzYW4vc2VsZnRlc3QuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQoga2VybmVsL3RpbWUvY2xvY2tzb3VyY2UuYyAg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGxpYi9mYXVsdC1pbmplY3QuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBsaWIvZmluZF9iaXRfYmVuY2htYXJrLmMgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogbGliL3JhbmRvbTMyLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDQgKy0KIGxpYi9yZWVkX3NvbG9tb24vdGVzdF9yc2xpYi5jICAgICAg ICAgICAgICAgICB8IDEyICstLQogbGliL3NiaXRtYXAuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDQgKy0KIGxpYi90ZXN0X2Zwcm9iZS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBsaWIvdGVzdF9rcHJvYmVzLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogbGliL3Rlc3RfbGlzdF9zb3J0LmMgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGxpYi90ZXN0X29iamFnZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBsaWIvdGVzdF9yaGFzaHRhYmxlLmMgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNiArLQogbGliL3Rlc3Rfdm1hbGxvYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTkgKy0tLQogbGliL3V1aWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIG1tL3NobWVtLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBuZXQvODAyL2dhcnAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogbmV0LzgwMi9tcnAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IG5ldC9jZXBoL21vbl9jbGllbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBu ZXQvY2VwaC9vc2RfY2xpZW50LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0 L2NvcmUvbmVpZ2hib3VyLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9j b3JlL3BrdGdlbi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ3ICsrKysrLS0tLS0K IG5ldC9jb3JlL3N0cmVhbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBu ZXQvZGNjcC9pcHY0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogbmV0 L2lwdjQvZGF0YWdyYW0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9p cHY0L2lnbXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICstCiBuZXQvaXB2 NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjQv aW5ldF9oYXNodGFibGVzLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9pcHY0L2lw X291dHB1dC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvaXB2NC9yb3V0 ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjQvdGNwX2Nk Zy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9pcHY0L3RjcF9pcHY0 LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBuZXQvaXB2NC91ZHAuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjYvYWRkcmNvbmYuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKy0KIG5ldC9pcHY2L2lwNl9mbG93bGFiZWwu YyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvaXB2Ni9tY2FzdC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxMCArLQogbmV0L2lwdjYvb3V0cHV0X2NvcmUuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVs X2h0LmMgICAgICAgICAgICB8ICAyICstCiBuZXQvbWFjODAyMTEvc2Nhbi5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX2Nvbm4uYyAg ICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c190d29zLmMgICAg ICAgICAgICAgICB8ICA0ICstCiBuZXQvbmV0ZmlsdGVyL25mX25hdF9jb3JlLmMgICAgICAgICAg ICAgICAgICAgfCAgNCArLQogbmV0L25ldGZpbHRlci94dF9zdGF0aXN0aWMuYyAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIG5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogbmV0L3Jkcy9iaW5kLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIG5ldC9zY2hlZC9hY3RfZ2FjdC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBuZXQvc2NoZWQvYWN0X3NhbXBsZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQogbmV0L3NjaGVkL3NjaF9jYWtlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDgg Ky0KIG5ldC9zY2hlZC9zY2hfbmV0ZW0uYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDIyICsr LS0tCiBuZXQvc2NoZWQvc2NoX3BpZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogbmV0L3NjaGVkL3NjaF9zZmIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IG5ldC9zY3RwL3NvY2tldC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBu ZXQvc3VucnBjL2F1dGhfZ3NzL2dzc19rcmI1X3dyYXAuYyAgICAgICAgICAgfCAgNCArLQogbmV0 L3N1bnJwYy9jYWNoZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9z dW5ycGMveHBydC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvc3Vu cnBjL3hwcnRzb2NrLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L3RpcGMv c29ja2V0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC91bml4L2Fm X3VuaXguYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQveGZybS94ZnJt X3N0YXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogMTM2IGZpbGVzIGNoYW5n ZWQsIDMwNCBpbnNlcnRpb25zKCspLCAzMzkgZGVsZXRpb25zKC0pCgotLSAKMi4zNy4zCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTGludXgg TVREIGRpc2N1c3Npb24gbWFpbGluZyBsaXN0Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21h aWxtYW4vbGlzdGluZm8vbGludXgtbXRkLwo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 88497C433F5 for ; Thu, 6 Oct 2022 02:51:08 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230044AbiJFCvG (ORCPT ); Wed, 5 Oct 2022 22:51:06 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37138 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229468AbiJFCvB (ORCPT ); Wed, 5 Oct 2022 22:51:01 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E6557E83D; Wed, 5 Oct 2022 19:50:58 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 199736181A; Thu, 6 Oct 2022 02:50:58 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5A5AC433D6; Thu, 6 Oct 2022 02:50:55 +0000 (UTC) Authentication-Results: smtp.kernel.org; dkim=pass (1024-bit key) header.d=zx2c4.com header.i=@zx2c4.com header.b="J8ZlHze6" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1665024654; 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=kCoSuUs9/UuRmM69QeDy2i9LHinxGmdLR45ZcTaEirk=; b=J8ZlHze6sqai3o7SvOSz7LCNjiTd0iy1m0Y4XI+eT5AImUvZr7raWMM6G4rEI94cHJCpxn XjlegKcoSMS8i1dxSH+vfMysjIZ2bhfg2hvS66iR5sZJK2Dmj1F+eRKIiZG4Kn68b6cX6p zxxQ1acjouQWyuYV2XHGTzovx3YOSQs= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 873c7cbc (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Thu, 6 Oct 2022 02:50:53 +0000 (UTC) From: "Jason A. Donenfeld" To: linux-kernel@vger.kernel.org Cc: "Jason A. Donenfeld" , brcm80211-dev-list.pdl@broadcom.com, cake@lists.bufferbloat.net, ceph-devel@vger.kernel.org, coreteam@netfilter.org, dccp@vger.kernel.org, dev@openvswitch.org, dmaengine@vger.kernel.org, drbd-dev@lists.linbit.com, dri-devel@lists.freedesktop.org, kasan-dev@googlegroups.com, linux-actions@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-block@vger.kernel.org, linux-crypto@vger.kernel.org, linux-doc@vger.kernel.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-fbdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-hams@vger.kernel.org, linux-media@vger.kernel.org, linux-mm@kvack.org, linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org, linux-nfs@vger.kernel.org, linux-nvme@lists.infradead.org, linux-raid@vger.kernel.org, linux-rdma@vger.kernel.org, linux-scsi@vger.kernel.org, linux-sctp@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org, linux-xfs@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, lvs-devel@vger.kernel.org, netdev@vger.kernel.org, netfilter-devel@vger.kernel.org, rds-devel@oss.oracle.com, SHA-cyfmac-dev-list@infineon.com, target-devel@vger.kernel.org, tipc-discussion@lists.sourceforge.net Subject: [PATCH v1 0/5] treewide cleanup of random integer usage Date: Wed, 5 Oct 2022 23:48:39 +0200 Message-Id: <20221005214844.2699-1-Jason@zx2c4.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Hi folks, This is a five part treewide cleanup of random integer handling. The rules for random integers are: - If you want a secure or an insecure random u64, use get_random_u64(). - If you want a secure or an insecure random u32, use get_random_u32(). * The old function prandom_u32() has been deprecated for a while now and is just a wrapper around get_random_u32(). - If you want a secure or an insecure random u16, use get_random_u16(). - If you want a secure or an insecure random u8, use get_random_u8(). - If you want secure or insecure random bytes, use get_random_bytes(). * The old function prandom_bytes() has been deprecated for a while now and has long been a wrapper around get_random_bytes(). - If you want a non-uniform random u32, u16, or u8 bounded by a certain open interval maximum, use prandom_u32_max(). * I say "non-uniform", because it doesn't do any rejection sampling or divisions. Hence, it stays within the prandom_* namespace. These rules ought to be applied uniformly, so that we can clean up the deprecated functions, and earn the benefits of using the modern functions. In particular, in addition to the boring substitutions, this patchset accomplishes a few nice effects: - By using prandom_u32_max() with an upper-bound that the compiler can prove at compile-time is ≤65536 or ≤256, internally get_random_u16() or get_random_u8() is used, which wastes fewer batched random bytes, and hence has higher throughput. - By using prandom_u32_max() instead of %, when the upper-bound is not a constant, division is still avoided, because prandom_u32_max() uses a faster multiplication-based trick instead. - By using get_random_u16() or get_random_u8() in cases where the return value is intended to indeed be a u16 or a u8, we waste fewer batched random bytes, and hence have higher throughput. So, based on those rules and benefits from following them, this patchset breaks down into the following five steps: 1) Replace `prandom_u32() % max` and variants thereof with prandom_u32_max(max). 2) Replace `(type)get_random_u32()` and variants thereof with get_random_u16() or get_random_u8(). I took the pains to actually look and see what every lvalue type was across the entire tree. 3) Replace remaining deprecated uses of prandom_u32() with get_random_u32(). 4) Replace remaining deprecated uses of prandom_bytes() with get_random_bytes(). 5) Remove the deprecated and now-unused prandom_u32() and prandom_bytes() inline wrapper functions. I was thinking of taking this through my random.git tree (on which this series is currently based) and submitting it near the end of the merge window, or waiting for the very end of the 6.1 cycle when there will be the fewest new patches brewing. If somebody with some treewide-cleanup experience might share some wisdom about what the best timing usually winds up being, I'm all ears. I've CC'd get_maintainers.pl, which is a pretty big list. Probably some portion of those are going to bounce, too, and everytime you reply to this thread, you'll have to deal with a bunch of bounces coming immediately after. And a recipient list this big will probably dock my email domain's spam reputation, at least temporarily. Sigh. I think that's just how it goes with treewide cleanups though. Again, let me know if I'm doing it wrong. Please take a look! Thanks, Jason Cc: Ajay Singh Cc: Akinobu Mita Cc: Alexandre Torgue Cc: Amitkumar Karwar Cc: Andreas Dilger Cc: Andreas Färber Cc: Andreas Noever Cc: Andrew Lunn Cc: Andrew Morton Cc: Andrii Nakryiko Cc: Andy Gospodarek Cc: Andy Lutomirski Cc: Andy Shevchenko Cc: Anil S Keshavamurthy Cc: Anna Schumaker Cc: Arend van Spriel Cc: Ayush Sawal Cc: Borislav Petkov Cc: Chao Yu Cc: Christoph Böhmwalder Cc: Christoph Hellwig Cc: Christophe Leroy Cc: Chuck Lever Cc: Claudiu Beznea Cc: Cong Wang Cc: Dan Williams Cc: Daniel Borkmann Cc: Darrick J. Wong Cc: Dave Hansen Cc: David Ahern Cc: David S. Miller Cc: Dennis Dalessandro Cc: Dick Kennedy Cc: Dmitry Vyukov Cc: Eric Dumazet Cc: Florian Westphal Cc: Franky Lin Cc: Ganapathi Bhat Cc: Greg Kroah-Hartman Cc: Gregory Greenman Cc: H. Peter Anvin Cc: Hannes Reinecke Cc: Hans Verkuil Cc: Hante Meuleman Cc: Hao Luo Cc: Haoyue Xu Cc: Heiner Kallweit Cc: Helge Deller Cc: Herbert Xu Cc: Hideaki YOSHIFUJI Cc: Hugh Dickins Cc: Igor Mitsyanko Cc: Ilya Dryomov Cc: Ingo Molnar Cc: Jack Wang Cc: Jaegeuk Kim Cc: Jaehoon Chung Cc: Jakub Kicinski Cc: Jamal Hadi Salim Cc: James E.J. Bottomley Cc: James Smart Cc: Jan Kara Cc: Jason Gunthorpe Cc: Jay Vosburgh Cc: Jean-Paul Roubelat Cc: Jeff Layton Cc: Jens Axboe Cc: Jiri Olsa Cc: Jiri Pirko Cc: Johannes Berg Cc: John Fastabend Cc: John Stultz Cc: Jon Maloy Cc: Jonathan Corbet Cc: Jozsef Kadlecsik Cc: Julian Anastasov Cc: KP Singh Cc: Kalle Valo Cc: Kees Cook Cc: Keith Busch Cc: Lars Ellenberg Cc: Leon Romanovsky Cc: Manish Rangankar Cc: Manivannan Sadhasivam Cc: Marcelo Ricardo Leitner Cc: Marco Elver Cc: Martin K. Petersen Cc: Martin KaFai Lau Cc: Masami Hiramatsu Cc: Mauro Carvalho Chehab Cc: Maxime Coquelin Cc: Md. Haris Iqbal Cc: Michael Chan Cc: Michael Ellerman Cc: Michael Jamet Cc: Michal Januszewski Cc: Mika Westerberg Cc: Miquel Raynal Cc: Namjae Jeon Cc: Naveen N. Rao Cc: Neil Horman Cc: Nicholas Piggin Cc: Nilesh Javali Cc: OGAWA Hirofumi Cc: Pablo Neira Ayuso Cc: Paolo Abeni Cc: Peter Zijlstra Cc: Philipp Reisner Cc: Potnuri Bharat Teja Cc: Pravin B Shelar Cc: Rasmus Villemoes Cc: Richard Weinberger Cc: Rohit Maheshwari Cc: Russell King Cc: Sagi Grimberg Cc: Santosh Shilimkar Cc: Sergey Matyukevich Cc: Sharvari Harisangam Cc: Simon Horman Cc: Song Liu Cc: Stanislav Fomichev Cc: Steffen Klassert Cc: Stephen Boyd Cc: Stephen Hemminger Cc: Sungjong Seo Cc: Theodore Ts'o Cc: Thomas Gleixner Cc: Thomas Graf Cc: Thomas Sailer Cc: Toke Høiland-Jørgensen Cc: Trond Myklebust Cc: Ulf Hansson Cc: Varun Prakash Cc: Veaceslav Falico Cc: Vignesh Raghavendra Cc: Vinay Kumar Yadav Cc: Vinod Koul Cc: Vlad Yasevich Cc: Wenpeng Liang Cc: Xinming Hu Cc: Xiubo Li Cc: Yehezkel Bernat Cc: Ying Xue Cc: Yishai Hadas Cc: Yonghong Song Cc: Yury Norov Cc: brcm80211-dev-list.pdl@broadcom.com Cc: cake@lists.bufferbloat.net Cc: ceph-devel@vger.kernel.org Cc: coreteam@netfilter.org Cc: dccp@vger.kernel.org Cc: dev@openvswitch.org Cc: dmaengine@vger.kernel.org Cc: drbd-dev@lists.linbit.com Cc: dri-devel@lists.freedesktop.org Cc: kasan-dev@googlegroups.com Cc: linux-actions@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-block@vger.kernel.org Cc: linux-crypto@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: linux-ext4@vger.kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-fbdev@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-hams@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-media@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-mmc@vger.kernel.org Cc: linux-mtd@lists.infradead.org Cc: linux-nfs@vger.kernel.org Cc: linux-nvme@lists.infradead.org Cc: linux-raid@vger.kernel.org Cc: linux-rdma@vger.kernel.org Cc: linux-scsi@vger.kernel.org Cc: linux-sctp@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-usb@vger.kernel.org Cc: linux-wireless@vger.kernel.org Cc: linux-xfs@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Cc: lvs-devel@vger.kernel.org Cc: netdev@vger.kernel.org Cc: netfilter-devel@vger.kernel.org Cc: rds-devel@oss.oracle.com Cc: SHA-cyfmac-dev-list@infineon.com Cc: target-devel@vger.kernel.org Cc: tipc-discussion@lists.sourceforge.net Jason A. Donenfeld (5): treewide: use prandom_u32_max() when possible treewide: use get_random_{u8,u16}() when possible treewide: use get_random_u32() when possible treewide: use get_random_bytes when possible prandom: remove unused functions Documentation/networking/filter.rst | 2 +- arch/powerpc/crypto/crc-vpmsum_test.c | 2 +- arch/x86/mm/pat/cpa-test.c | 4 +- block/blk-crypto-fallback.c | 2 +- crypto/async_tx/raid6test.c | 2 +- crypto/testmgr.c | 94 +++++++++---------- drivers/block/drbd/drbd_receiver.c | 4 +- drivers/dma/dmatest.c | 2 +- drivers/infiniband/core/cma.c | 2 +- drivers/infiniband/hw/cxgb4/cm.c | 4 +- drivers/infiniband/hw/cxgb4/id_table.c | 4 +- drivers/infiniband/hw/hfi1/tid_rdma.c | 2 +- drivers/infiniband/hw/hns/hns_roce_ah.c | 5 +- drivers/infiniband/hw/mlx4/mad.c | 2 +- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +- drivers/infiniband/ulp/rtrs/rtrs-clt.c | 3 +- drivers/md/raid5-cache.c | 2 +- drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 2 +- .../media/test-drivers/vivid/vivid-radio-rx.c | 4 +- drivers/mmc/core/core.c | 4 +- drivers/mmc/host/dw_mmc.c | 2 +- drivers/mtd/nand/raw/nandsim.c | 8 +- drivers/mtd/tests/mtd_nandecctest.c | 12 +-- drivers/mtd/tests/speedtest.c | 2 +- drivers/mtd/tests/stresstest.c | 19 +--- drivers/mtd/ubi/debug.c | 2 +- drivers/mtd/ubi/debug.h | 6 +- drivers/net/bonding/bond_main.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- drivers/net/ethernet/broadcom/cnic.c | 5 +- .../chelsio/inline_crypto/chtls/chtls_cm.c | 4 +- .../chelsio/inline_crypto/chtls/chtls_io.c | 4 +- drivers/net/ethernet/rocker/rocker_main.c | 8 +- drivers/net/hamradio/baycom_epp.c | 2 +- drivers/net/hamradio/hdlcdrv.c | 2 +- drivers/net/hamradio/yam.c | 2 +- drivers/net/phy/at803x.c | 2 +- drivers/net/wireguard/selftest/allowedips.c | 16 ++-- .../broadcom/brcm80211/brcmfmac/p2p.c | 2 +- .../net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 2 +- .../net/wireless/marvell/mwifiex/cfg80211.c | 4 +- .../wireless/microchip/wilc1000/cfg80211.c | 2 +- .../net/wireless/quantenna/qtnfmac/cfg80211.c | 2 +- drivers/nvme/common/auth.c | 2 +- drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 4 +- drivers/scsi/fcoe/fcoe_ctlr.c | 4 +- drivers/scsi/lpfc/lpfc_hbadisc.c | 6 +- drivers/scsi/qedi/qedi_main.c | 2 +- drivers/target/iscsi/cxgbit/cxgbit_cm.c | 2 +- drivers/thunderbolt/xdomain.c | 2 +- drivers/video/fbdev/uvesafb.c | 2 +- fs/ceph/inode.c | 2 +- fs/ceph/mdsmap.c | 2 +- fs/exfat/inode.c | 2 +- fs/ext2/ialloc.c | 2 +- fs/ext4/ialloc.c | 4 +- fs/ext4/ioctl.c | 4 +- fs/ext4/mmp.c | 2 +- fs/ext4/super.c | 7 +- fs/f2fs/gc.c | 2 +- fs/f2fs/namei.c | 2 +- fs/f2fs/segment.c | 8 +- fs/fat/inode.c | 2 +- fs/nfsd/nfs4state.c | 4 +- fs/ubifs/debug.c | 10 +- fs/ubifs/journal.c | 2 +- fs/ubifs/lpt_commit.c | 14 +-- fs/ubifs/tnc_commit.c | 2 +- fs/xfs/libxfs/xfs_alloc.c | 2 +- fs/xfs/libxfs/xfs_ialloc.c | 4 +- fs/xfs/xfs_error.c | 2 +- fs/xfs/xfs_icache.c | 2 +- fs/xfs/xfs_log.c | 2 +- include/linux/prandom.h | 12 --- include/net/netfilter/nf_queue.h | 2 +- include/net/red.h | 2 +- include/net/sock.h | 2 +- kernel/kcsan/selftest.c | 4 +- kernel/time/clocksource.c | 2 +- lib/fault-inject.c | 2 +- lib/find_bit_benchmark.c | 4 +- lib/random32.c | 4 +- lib/reed_solomon/test_rslib.c | 12 +-- lib/sbitmap.c | 4 +- lib/test_fprobe.c | 2 +- lib/test_kprobes.c | 2 +- lib/test_list_sort.c | 2 +- lib/test_objagg.c | 2 +- lib/test_rhashtable.c | 6 +- lib/test_vmalloc.c | 19 +--- lib/uuid.c | 2 +- mm/shmem.c | 2 +- net/802/garp.c | 2 +- net/802/mrp.c | 2 +- net/ceph/mon_client.c | 2 +- net/ceph/osd_client.c | 2 +- net/core/neighbour.c | 2 +- net/core/pktgen.c | 47 +++++----- net/core/stream.c | 2 +- net/dccp/ipv4.c | 4 +- net/ipv4/datagram.c | 2 +- net/ipv4/igmp.c | 6 +- net/ipv4/inet_connection_sock.c | 2 +- net/ipv4/inet_hashtables.c | 2 +- net/ipv4/ip_output.c | 2 +- net/ipv4/route.c | 2 +- net/ipv4/tcp_cdg.c | 2 +- net/ipv4/tcp_ipv4.c | 4 +- net/ipv4/udp.c | 2 +- net/ipv6/addrconf.c | 8 +- net/ipv6/ip6_flowlabel.c | 2 +- net/ipv6/mcast.c | 10 +- net/ipv6/output_core.c | 2 +- net/mac80211/rc80211_minstrel_ht.c | 2 +- net/mac80211/scan.c | 2 +- net/netfilter/ipvs/ip_vs_conn.c | 2 +- net/netfilter/ipvs/ip_vs_twos.c | 4 +- net/netfilter/nf_nat_core.c | 4 +- net/netfilter/xt_statistic.c | 2 +- net/openvswitch/actions.c | 2 +- net/packet/af_packet.c | 2 +- net/rds/bind.c | 2 +- net/sched/act_gact.c | 2 +- net/sched/act_sample.c | 2 +- net/sched/sch_cake.c | 8 +- net/sched/sch_netem.c | 22 ++--- net/sched/sch_pie.c | 2 +- net/sched/sch_sfb.c | 2 +- net/sctp/socket.c | 4 +- net/sunrpc/auth_gss/gss_krb5_wrap.c | 4 +- net/sunrpc/cache.c | 2 +- net/sunrpc/xprt.c | 2 +- net/sunrpc/xprtsock.c | 2 +- net/tipc/socket.c | 2 +- net/unix/af_unix.c | 2 +- net/xfrm/xfrm_state.c | 2 +- 136 files changed, 304 insertions(+), 339 deletions(-) -- 2.37.3 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 36B35373 for ; Thu, 6 Oct 2022 02:55:51 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ADF53C433C1 for ; Thu, 6 Oct 2022 02:55:50 +0000 (UTC) Authentication-Results: smtp.kernel.org; dkim=pass (1024-bit key) header.d=zx2c4.com header.i=@zx2c4.com header.b="beEaV76a" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1665024949; 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=kCoSuUs9/UuRmM69QeDy2i9LHinxGmdLR45ZcTaEirk=; b=beEaV76aFiazjmXVatGUmYPtOHM+zJzKnkMx3bZLKBjASxUA0U329zMCIzL4+CSBEszbG9 OqSDzfH0gmbRBg6OBVO0RqSailSFX9vwVQbD4IJMf9fL+CQg4iFVZTg09Ice7k/YQVMfNT ioiCJIlVuc0SlquHzlEsZuocI0EeDmc= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 717ab8a4 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO) for ; Thu, 6 Oct 2022 02:55:48 +0000 (UTC) From: "Jason A. Donenfeld" To: linux-kernel@vger.kernel.org Cc: "Jason A. Donenfeld" , Ajay Singh , Akinobu Mita , Alexandre Torgue , Amitkumar Karwar , Andreas Dilger , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Andreas Noever , Andrew Lunn , Andrew Morton , Andrii Nakryiko , Andy Gospodarek , Andy Lutomirski , Andy Shevchenko , Anil S Keshavamurthy , Anna Schumaker , Arend van Spriel , Ayush Sawal , Borislav Petkov , Chao Yu , =?UTF-8?q?Christoph=20B=C3=B6hmwalder?= , Christoph Hellwig , Christophe Leroy , Chuck Lever , Claudiu Beznea , Cong Wang , Dan Williams , Daniel Borkmann , "Darrick J . Wong" , Dave Hansen , David Ahern , "David S . Miller" , Dennis Dalessandro , Dick Kennedy , Dmitry Vyukov , Eric Dumazet , Florian Westphal , Franky Lin , Ganapathi Bhat , Greg Kroah-Hartman , Gregory Greenman , "H . Peter Anvin" , Hannes Reinecke , Hans Verkuil , Hante Meuleman , Hao Luo , Haoyue Xu , Heiner Kallweit , Helge Deller , Herbert Xu , Hideaki YOSHIFUJI , Hugh Dickins , Igor Mitsyanko , Ilya Dryomov , Ingo Molnar , Jack Wang , Jaegeuk Kim , Jaehoon Chung , Jakub Kicinski , Jamal Hadi Salim , "James E . J . Bottomley" , James Smart , Jan Kara , Jason Gunthorpe , Jay Vosburgh , Jean-Paul Roubelat , Jeff Layton , Jens Axboe , Jiri Olsa , Jiri Pirko , Johannes Berg , John Fastabend , John Stultz , Jon Maloy , Jonathan Corbet , Jozsef Kadlecsik , Julian Anastasov , KP Singh , Kalle Valo , Kees Cook , Keith Busch , Lars Ellenberg , Leon Romanovsky , Manish Rangankar , Manivannan Sadhasivam , Marcelo Ricardo Leitner , Marco Elver , "Martin K . Petersen" , Martin KaFai Lau , Masami Hiramatsu , Mauro Carvalho Chehab , Maxime Coquelin , "Md . Haris Iqbal" , Michael Chan , Michael Ellerman , Michael Jamet , Michal Januszewski , Mika Westerberg , Miquel Raynal , Namjae Jeon , "Naveen N . Rao" , Neil Horman , Nicholas Piggin , Nilesh Javali , OGAWA Hirofumi , Pablo Neira Ayuso , Paolo Abeni , Peter Zijlstra , Philipp Reisner , Potnuri Bharat Teja , Pravin B Shelar , Rasmus Villemoes , Richard Weinberger , Rohit Maheshwari , Russell King , Sagi Grimberg , Santosh Shilimkar , Sergey Matyukevich , Sharvari Harisangam , Simon Horman , Song Liu , Stanislav Fomichev , Steffen Klassert , Stephen Boyd , Stephen Hemminger , Sungjong Seo , Theodore Ts'o , Thomas Gleixner , Thomas Graf , Thomas Sailer , =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Trond Myklebust , Ulf Hansson , Varun Prakash , Veaceslav Falico , Vignesh Raghavendra , Vinay Kumar Yadav , Vinod Koul , Vlad Yasevich , Wenpeng Liang , Xinming Hu , Xiubo Li , Yehezkel Bernat , Ying Xue , Yishai Hadas , Yonghong Song , Yury Norov , brcm80211-dev-list.pdl@broadcom.com, cake@lists.bufferbloat.net, ceph-devel@vger.kernel.org, coreteam@netfilter.org, dccp@vger.kernel.org, dev@openvswitch.org, dmaengine@vger.kernel.org, drbd-dev@lists.linbit.com, dri-devel@lists.freedesktop.org, kasan-dev@googlegroups.com, linux-actions@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-block@vger.kernel.org, linux-crypto@vger.kernel.org, linux-doc@vger.kernel.org, linux-ext4@vger.kernel.org, linux-f2fs-devel@lists.sourceforge.net, linux-fbdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-hams@vger.kernel.org, linux-media@vger.kernel.org, linux-mm@kvack.org, linux-mmc@vger.kernel.org, linux-mtd@lists.infradead.org, linux-nfs@vger.kernel.org, linux-nvme@lists.infradead.org, linux-raid@vger.kernel.org, linux-rdma@vger.kernel.org, linux-scsi@vger.kernel.org, linux-sctp@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-usb@vger.kernel.org, linux-wireless@vger.kernel.org, linux-xfs@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, lvs-devel@vger.kernel.org, netdev@vger.kernel.org, netfilter-devel@vger.kernel.org, rds-devel@oss.oracle.com, SHA-cyfmac-dev-list@infineon.com, target-devel@vger.kernel.org, tipc-discussion@lists.sourceforge.net Subject: [PATCH v1 0/5] treewide cleanup of random integer usage Date: Wed, 5 Oct 2022 23:48:39 +0200 Message-Id: <20221005214844.2699-1-Jason@zx2c4.com> Precedence: bulk X-Mailing-List: patches@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hi folks, This is a five part treewide cleanup of random integer handling. The rules for random integers are: - If you want a secure or an insecure random u64, use get_random_u64(). - If you want a secure or an insecure random u32, use get_random_u32(). * The old function prandom_u32() has been deprecated for a while now and is just a wrapper around get_random_u32(). - If you want a secure or an insecure random u16, use get_random_u16(). - If you want a secure or an insecure random u8, use get_random_u8(). - If you want secure or insecure random bytes, use get_random_bytes(). * The old function prandom_bytes() has been deprecated for a while now and has long been a wrapper around get_random_bytes(). - If you want a non-uniform random u32, u16, or u8 bounded by a certain open interval maximum, use prandom_u32_max(). * I say "non-uniform", because it doesn't do any rejection sampling or divisions. Hence, it stays within the prandom_* namespace. These rules ought to be applied uniformly, so that we can clean up the deprecated functions, and earn the benefits of using the modern functions. In particular, in addition to the boring substitutions, this patchset accomplishes a few nice effects: - By using prandom_u32_max() with an upper-bound that the compiler can prove at compile-time is ≤65536 or ≤256, internally get_random_u16() or get_random_u8() is used, which wastes fewer batched random bytes, and hence has higher throughput. - By using prandom_u32_max() instead of %, when the upper-bound is not a constant, division is still avoided, because prandom_u32_max() uses a faster multiplication-based trick instead. - By using get_random_u16() or get_random_u8() in cases where the return value is intended to indeed be a u16 or a u8, we waste fewer batched random bytes, and hence have higher throughput. So, based on those rules and benefits from following them, this patchset breaks down into the following five steps: 1) Replace `prandom_u32() % max` and variants thereof with prandom_u32_max(max). 2) Replace `(type)get_random_u32()` and variants thereof with get_random_u16() or get_random_u8(). I took the pains to actually look and see what every lvalue type was across the entire tree. 3) Replace remaining deprecated uses of prandom_u32() with get_random_u32(). 4) Replace remaining deprecated uses of prandom_bytes() with get_random_bytes(). 5) Remove the deprecated and now-unused prandom_u32() and prandom_bytes() inline wrapper functions. I was thinking of taking this through my random.git tree (on which this series is currently based) and submitting it near the end of the merge window, or waiting for the very end of the 6.1 cycle when there will be the fewest new patches brewing. If somebody with some treewide-cleanup experience might share some wisdom about what the best timing usually winds up being, I'm all ears. I've CC'd get_maintainers.pl, which is a pretty big list. Probably some portion of those are going to bounce, too, and everytime you reply to this thread, you'll have to deal with a bunch of bounces coming immediately after. And a recipient list this big will probably dock my email domain's spam reputation, at least temporarily. Sigh. I think that's just how it goes with treewide cleanups though. Again, let me know if I'm doing it wrong. Please take a look! Thanks, Jason Cc: Ajay Singh Cc: Akinobu Mita Cc: Alexandre Torgue Cc: Amitkumar Karwar Cc: Andreas Dilger Cc: Andreas Färber Cc: Andreas Noever Cc: Andrew Lunn Cc: Andrew Morton Cc: Andrii Nakryiko Cc: Andy Gospodarek Cc: Andy Lutomirski Cc: Andy Shevchenko Cc: Anil S Keshavamurthy Cc: Anna Schumaker Cc: Arend van Spriel Cc: Ayush Sawal Cc: Borislav Petkov Cc: Chao Yu Cc: Christoph Böhmwalder Cc: Christoph Hellwig Cc: Christophe Leroy Cc: Chuck Lever Cc: Claudiu Beznea Cc: Cong Wang Cc: Dan Williams Cc: Daniel Borkmann Cc: Darrick J. Wong Cc: Dave Hansen Cc: David Ahern Cc: David S. Miller Cc: Dennis Dalessandro Cc: Dick Kennedy Cc: Dmitry Vyukov Cc: Eric Dumazet Cc: Florian Westphal Cc: Franky Lin Cc: Ganapathi Bhat Cc: Greg Kroah-Hartman Cc: Gregory Greenman Cc: H. Peter Anvin Cc: Hannes Reinecke Cc: Hans Verkuil Cc: Hante Meuleman Cc: Hao Luo Cc: Haoyue Xu Cc: Heiner Kallweit Cc: Helge Deller Cc: Herbert Xu Cc: Hideaki YOSHIFUJI Cc: Hugh Dickins Cc: Igor Mitsyanko Cc: Ilya Dryomov Cc: Ingo Molnar Cc: Jack Wang Cc: Jaegeuk Kim Cc: Jaehoon Chung Cc: Jakub Kicinski Cc: Jamal Hadi Salim Cc: James E.J. Bottomley Cc: James Smart Cc: Jan Kara Cc: Jason Gunthorpe Cc: Jay Vosburgh Cc: Jean-Paul Roubelat Cc: Jeff Layton Cc: Jens Axboe Cc: Jiri Olsa Cc: Jiri Pirko Cc: Johannes Berg Cc: John Fastabend Cc: John Stultz Cc: Jon Maloy Cc: Jonathan Corbet Cc: Jozsef Kadlecsik Cc: Julian Anastasov Cc: KP Singh Cc: Kalle Valo Cc: Kees Cook Cc: Keith Busch Cc: Lars Ellenberg Cc: Leon Romanovsky Cc: Manish Rangankar Cc: Manivannan Sadhasivam Cc: Marcelo Ricardo Leitner Cc: Marco Elver Cc: Martin K. Petersen Cc: Martin KaFai Lau Cc: Masami Hiramatsu Cc: Mauro Carvalho Chehab Cc: Maxime Coquelin Cc: Md. Haris Iqbal Cc: Michael Chan Cc: Michael Ellerman Cc: Michael Jamet Cc: Michal Januszewski Cc: Mika Westerberg Cc: Miquel Raynal Cc: Namjae Jeon Cc: Naveen N. Rao Cc: Neil Horman Cc: Nicholas Piggin Cc: Nilesh Javali Cc: OGAWA Hirofumi Cc: Pablo Neira Ayuso Cc: Paolo Abeni Cc: Peter Zijlstra Cc: Philipp Reisner Cc: Potnuri Bharat Teja Cc: Pravin B Shelar Cc: Rasmus Villemoes Cc: Richard Weinberger Cc: Rohit Maheshwari Cc: Russell King Cc: Sagi Grimberg Cc: Santosh Shilimkar Cc: Sergey Matyukevich Cc: Sharvari Harisangam Cc: Simon Horman Cc: Song Liu Cc: Stanislav Fomichev Cc: Steffen Klassert Cc: Stephen Boyd Cc: Stephen Hemminger Cc: Sungjong Seo Cc: Theodore Ts'o Cc: Thomas Gleixner Cc: Thomas Graf Cc: Thomas Sailer Cc: Toke Høiland-Jørgensen Cc: Trond Myklebust Cc: Ulf Hansson Cc: Varun Prakash Cc: Veaceslav Falico Cc: Vignesh Raghavendra Cc: Vinay Kumar Yadav Cc: Vinod Koul Cc: Vlad Yasevich Cc: Wenpeng Liang Cc: Xinming Hu Cc: Xiubo Li Cc: Yehezkel Bernat Cc: Ying Xue Cc: Yishai Hadas Cc: Yonghong Song Cc: Yury Norov Cc: brcm80211-dev-list.pdl@broadcom.com Cc: cake@lists.bufferbloat.net Cc: ceph-devel@vger.kernel.org Cc: coreteam@netfilter.org Cc: dccp@vger.kernel.org Cc: dev@openvswitch.org Cc: dmaengine@vger.kernel.org Cc: drbd-dev@lists.linbit.com Cc: dri-devel@lists.freedesktop.org Cc: kasan-dev@googlegroups.com Cc: linux-actions@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-block@vger.kernel.org Cc: linux-crypto@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: linux-ext4@vger.kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-fbdev@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-hams@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-media@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-mmc@vger.kernel.org Cc: linux-mtd@lists.infradead.org Cc: linux-nfs@vger.kernel.org Cc: linux-nvme@lists.infradead.org Cc: linux-raid@vger.kernel.org Cc: linux-rdma@vger.kernel.org Cc: linux-scsi@vger.kernel.org Cc: linux-sctp@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-usb@vger.kernel.org Cc: linux-wireless@vger.kernel.org Cc: linux-xfs@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Cc: lvs-devel@vger.kernel.org Cc: netdev@vger.kernel.org Cc: netfilter-devel@vger.kernel.org Cc: rds-devel@oss.oracle.com Cc: SHA-cyfmac-dev-list@infineon.com Cc: target-devel@vger.kernel.org Cc: tipc-discussion@lists.sourceforge.net Jason A. Donenfeld (5): treewide: use prandom_u32_max() when possible treewide: use get_random_{u8,u16}() when possible treewide: use get_random_u32() when possible treewide: use get_random_bytes when possible prandom: remove unused functions Documentation/networking/filter.rst | 2 +- arch/powerpc/crypto/crc-vpmsum_test.c | 2 +- arch/x86/mm/pat/cpa-test.c | 4 +- block/blk-crypto-fallback.c | 2 +- crypto/async_tx/raid6test.c | 2 +- crypto/testmgr.c | 94 +++++++++---------- drivers/block/drbd/drbd_receiver.c | 4 +- drivers/dma/dmatest.c | 2 +- drivers/infiniband/core/cma.c | 2 +- drivers/infiniband/hw/cxgb4/cm.c | 4 +- drivers/infiniband/hw/cxgb4/id_table.c | 4 +- drivers/infiniband/hw/hfi1/tid_rdma.c | 2 +- drivers/infiniband/hw/hns/hns_roce_ah.c | 5 +- drivers/infiniband/hw/mlx4/mad.c | 2 +- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +- drivers/infiniband/ulp/rtrs/rtrs-clt.c | 3 +- drivers/md/raid5-cache.c | 2 +- drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 2 +- .../media/test-drivers/vivid/vivid-radio-rx.c | 4 +- drivers/mmc/core/core.c | 4 +- drivers/mmc/host/dw_mmc.c | 2 +- drivers/mtd/nand/raw/nandsim.c | 8 +- drivers/mtd/tests/mtd_nandecctest.c | 12 +-- drivers/mtd/tests/speedtest.c | 2 +- drivers/mtd/tests/stresstest.c | 19 +--- drivers/mtd/ubi/debug.c | 2 +- drivers/mtd/ubi/debug.h | 6 +- drivers/net/bonding/bond_main.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- drivers/net/ethernet/broadcom/cnic.c | 5 +- .../chelsio/inline_crypto/chtls/chtls_cm.c | 4 +- .../chelsio/inline_crypto/chtls/chtls_io.c | 4 +- drivers/net/ethernet/rocker/rocker_main.c | 8 +- drivers/net/hamradio/baycom_epp.c | 2 +- drivers/net/hamradio/hdlcdrv.c | 2 +- drivers/net/hamradio/yam.c | 2 +- drivers/net/phy/at803x.c | 2 +- drivers/net/wireguard/selftest/allowedips.c | 16 ++-- .../broadcom/brcm80211/brcmfmac/p2p.c | 2 +- .../net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 2 +- .../net/wireless/marvell/mwifiex/cfg80211.c | 4 +- .../wireless/microchip/wilc1000/cfg80211.c | 2 +- .../net/wireless/quantenna/qtnfmac/cfg80211.c | 2 +- drivers/nvme/common/auth.c | 2 +- drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 4 +- drivers/scsi/fcoe/fcoe_ctlr.c | 4 +- drivers/scsi/lpfc/lpfc_hbadisc.c | 6 +- drivers/scsi/qedi/qedi_main.c | 2 +- drivers/target/iscsi/cxgbit/cxgbit_cm.c | 2 +- drivers/thunderbolt/xdomain.c | 2 +- drivers/video/fbdev/uvesafb.c | 2 +- fs/ceph/inode.c | 2 +- fs/ceph/mdsmap.c | 2 +- fs/exfat/inode.c | 2 +- fs/ext2/ialloc.c | 2 +- fs/ext4/ialloc.c | 4 +- fs/ext4/ioctl.c | 4 +- fs/ext4/mmp.c | 2 +- fs/ext4/super.c | 7 +- fs/f2fs/gc.c | 2 +- fs/f2fs/namei.c | 2 +- fs/f2fs/segment.c | 8 +- fs/fat/inode.c | 2 +- fs/nfsd/nfs4state.c | 4 +- fs/ubifs/debug.c | 10 +- fs/ubifs/journal.c | 2 +- fs/ubifs/lpt_commit.c | 14 +-- fs/ubifs/tnc_commit.c | 2 +- fs/xfs/libxfs/xfs_alloc.c | 2 +- fs/xfs/libxfs/xfs_ialloc.c | 4 +- fs/xfs/xfs_error.c | 2 +- fs/xfs/xfs_icache.c | 2 +- fs/xfs/xfs_log.c | 2 +- include/linux/prandom.h | 12 --- include/net/netfilter/nf_queue.h | 2 +- include/net/red.h | 2 +- include/net/sock.h | 2 +- kernel/kcsan/selftest.c | 4 +- kernel/time/clocksource.c | 2 +- lib/fault-inject.c | 2 +- lib/find_bit_benchmark.c | 4 +- lib/random32.c | 4 +- lib/reed_solomon/test_rslib.c | 12 +-- lib/sbitmap.c | 4 +- lib/test_fprobe.c | 2 +- lib/test_kprobes.c | 2 +- lib/test_list_sort.c | 2 +- lib/test_objagg.c | 2 +- lib/test_rhashtable.c | 6 +- lib/test_vmalloc.c | 19 +--- lib/uuid.c | 2 +- mm/shmem.c | 2 +- net/802/garp.c | 2 +- net/802/mrp.c | 2 +- net/ceph/mon_client.c | 2 +- net/ceph/osd_client.c | 2 +- net/core/neighbour.c | 2 +- net/core/pktgen.c | 47 +++++----- net/core/stream.c | 2 +- net/dccp/ipv4.c | 4 +- net/ipv4/datagram.c | 2 +- net/ipv4/igmp.c | 6 +- net/ipv4/inet_connection_sock.c | 2 +- net/ipv4/inet_hashtables.c | 2 +- net/ipv4/ip_output.c | 2 +- net/ipv4/route.c | 2 +- net/ipv4/tcp_cdg.c | 2 +- net/ipv4/tcp_ipv4.c | 4 +- net/ipv4/udp.c | 2 +- net/ipv6/addrconf.c | 8 +- net/ipv6/ip6_flowlabel.c | 2 +- net/ipv6/mcast.c | 10 +- net/ipv6/output_core.c | 2 +- net/mac80211/rc80211_minstrel_ht.c | 2 +- net/mac80211/scan.c | 2 +- net/netfilter/ipvs/ip_vs_conn.c | 2 +- net/netfilter/ipvs/ip_vs_twos.c | 4 +- net/netfilter/nf_nat_core.c | 4 +- net/netfilter/xt_statistic.c | 2 +- net/openvswitch/actions.c | 2 +- net/packet/af_packet.c | 2 +- net/rds/bind.c | 2 +- net/sched/act_gact.c | 2 +- net/sched/act_sample.c | 2 +- net/sched/sch_cake.c | 8 +- net/sched/sch_netem.c | 22 ++--- net/sched/sch_pie.c | 2 +- net/sched/sch_sfb.c | 2 +- net/sctp/socket.c | 4 +- net/sunrpc/auth_gss/gss_krb5_wrap.c | 4 +- net/sunrpc/cache.c | 2 +- net/sunrpc/xprt.c | 2 +- net/sunrpc/xprtsock.c | 2 +- net/tipc/socket.c | 2 +- net/unix/af_unix.c | 2 +- net/xfrm/xfrm_state.c | 2 +- 136 files changed, 304 insertions(+), 339 deletions(-) -- 2.37.3 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4C4ECC433FE for ; Thu, 6 Oct 2022 05:34:00 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 814C410E7E1; Thu, 6 Oct 2022 05:33:14 +0000 (UTC) Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by gabe.freedesktop.org (Postfix) with ESMTPS id 509A010E797 for ; Wed, 5 Oct 2022 21:49:31 +0000 (UTC) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 0C4BDB81EC9; Wed, 5 Oct 2022 21:49:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5AA6C433D6; Wed, 5 Oct 2022 21:49:12 +0000 (UTC) Authentication-Results: smtp.kernel.org; dkim=pass (1024-bit key) header.d=zx2c4.com header.i=@zx2c4.com header.b="Qhkl413I" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1665006550; 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=kCoSuUs9/UuRmM69QeDy2i9LHinxGmdLR45ZcTaEirk=; b=Qhkl413IKS9UgZdKh7qX9XR//PEzMC7IKCarDofy3JsuOZGgYVos7Y1lBiMvIBBMcVqGoi 7r0OnXV0Qj1WnNZ+VU3Xc8roONhraZkXZ+EkeMM0FR/6WCQ++q5bALgZsXuPr1ztLy5trS rTtCF5uZMusANY6aJcM8PEFs0H0T/ts= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 837ac4b0 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Wed, 5 Oct 2022 21:49:10 +0000 (UTC) From: "Jason A. Donenfeld" To: linux-kernel@vger.kernel.org Subject: [PATCH v1 0/5] treewide cleanup of random integer usage Date: Wed, 5 Oct 2022 23:48:39 +0200 Message-Id: <20221005214844.2699-1-Jason@zx2c4.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Thu, 06 Oct 2022 05:33:08 +0000 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Lunn , "Darrick J . Wong" , Ulf Hansson , dri-devel@lists.freedesktop.org, Andrii Nakryiko , Hans Verkuil , linux-sctp@vger.kernel.org, "Md . Haris Iqbal" , Miquel Raynal , Christoph Hellwig , Andy Gospodarek , Sergey Matyukevich , Rohit Maheshwari , Michael Ellerman , ceph-devel@vger.kernel.org, Christophe Leroy , Jozsef Kadlecsik , Nilesh Javali , Jean-Paul Roubelat , Dick Kennedy , Jay Vosburgh , Potnuri Bharat Teja , Vinay Kumar Yadav , linux-nfs@vger.kernel.org, Nicholas Piggin , Igor Mitsyanko , Andy Lutomirski , linux-hams@vger.kernel.org, Thomas Gleixner , Trond Myklebust , linux-raid@vger.kernel.org, Neil Horman , Hante Meuleman , Greg Kroah-Hartman , linux-usb@vger.kernel.org, Michael Chan , Varun Prakash , Chuck Lever , netfilter-devel@vger.kernel.org, Masami Hiramatsu , Jiri Olsa , Jan Kara , linux-fsdevel@vger.kernel.org, Lars Ellenberg , linux-media@vger.kernel.org, Claudiu Beznea , Sharvari Harisangam , "Jason A. Donenfeld" , linux-doc@vger.kernel.org, linux-mmc@vger.kernel.org, Dave Hansen , Song Liu , Eric Dumazet , target-devel@vger.kernel.org, John Stultz , Stanislav Fomichev , Gregory Greenman , drbd-dev@lists.linbit.com, dev@openvswitch.org, Leon Romanovsky , Helge Deller , Hugh Dickins , James Smart , Anil S Keshavamurthy , Pravin B Shelar , Julian Anastasov , coreteam@netfilter.org, Veaceslav Falico , Yonghong Song , Namjae Jeon , linux-crypto@vger.kernel.org, Santosh Shilimkar , Ganapathi Bhat , linux-actions@lists.infradead.org, Simon Horman , Jaegeuk Kim , Mika Westerberg , Andrew Morton , OGAWA Hirofumi , Hao Luo , Theodore Ts'o , Stephen Boyd , Dennis Dalessandro , Florian Westphal , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Jon Maloy , Vlad Yasevich , Anna Schumaker , Yehezkel Bernat , Haoyue Xu , Heiner Kallweit , linux-wireless@vger.kernel.org, Marcelo Ricardo Leitner , Rasmus Villemoes , linux-fbdev@vger.kernel.org, linux-nvme@lists.infradead.org, Michal Januszewski , linux-mtd@lists.infradead.org, kasan-dev@googlegroups.com, Cong Wang , Thomas Sailer , Ajay Singh , Xiubo Li , Sagi Grimberg , Daniel Borkmann , Jonathan Corbet , linux-rdma@vger.kernel.org, lvs-devel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "Naveen N . Rao" , Ilya Dryomov , Paolo Abeni , Pablo Neira Ayuso , Marco Elver , Kees Cook , Yury Norov , "James E . J . Bottomley" , Jamal Hadi Salim , KP Singh , Borislav Petkov , Keith Busch , Dan Williams , Mauro Carvalho Chehab , Franky Lin , Arend van Spriel , linux-ext4@vger.kernel.org, Wenpeng Liang , "Martin K . Petersen" , Xinming Hu , linux-stm32@st-md-mailman.stormreply.com, Jeff Layton , linux-xfs@vger.kernel.org, netdev@vger.kernel.org, Ying Xue , Manish Rangankar , "David S . Miller" , =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Vignesh Raghavendra , Peter Zijlstra , "H . Peter Anvin" , Alexandre Torgue , Amitkumar Karwar , linux-mm@kvack.org, Andreas Dilger , Ayush Sawal , Andreas Noever , Jiri Pirko , linux-f2fs-devel@lists.sourceforge.net, Jack Wang , Steffen Klassert , rds-devel@oss.oracle.com, Herbert Xu , linux-scsi@vger.kernel.org, dccp@vger.kernel.org, Richard Weinberger , Russell King , Jaehoon Chung , Jason Gunthorpe , SHA-cyfmac-dev-list@infineon.com, Ingo Molnar , Jakub Kicinski , John Fastabend , Maxime Coquelin , Manivannan Sadhasivam , Michael Jamet , Kalle Valo , Chao Yu , Akinobu Mita , linux-block@vger.kernel.org, dmaengine@vger.kernel.org, Hannes Reinecke , Andy Shevchenko , Dmitry Vyukov , Jens Axboe , cake@lists.bufferbloat.net, brcm80211-dev-list.pdl@broadcom.com, Yishai Hadas , Hideaki YOSHIFUJI , linuxppc-dev@lists.ozlabs.org, David Ahern , Philipp Reisner , Stephen Hemminger , =?UTF-8?q?Christoph=20B=C3=B6hmwalder?= , Vinod Koul , tipc-discussion@lists.sourceforge.net, Thomas Graf , Johannes Berg , Sungjong Seo , Martin KaFai Lau Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Hi folks, This is a five part treewide cleanup of random integer handling. The rules for random integers are: - If you want a secure or an insecure random u64, use get_random_u64(). - If you want a secure or an insecure random u32, use get_random_u32(). * The old function prandom_u32() has been deprecated for a while now and is just a wrapper around get_random_u32(). - If you want a secure or an insecure random u16, use get_random_u16(). - If you want a secure or an insecure random u8, use get_random_u8(). - If you want secure or insecure random bytes, use get_random_bytes(). * The old function prandom_bytes() has been deprecated for a while now and has long been a wrapper around get_random_bytes(). - If you want a non-uniform random u32, u16, or u8 bounded by a certain open interval maximum, use prandom_u32_max(). * I say "non-uniform", because it doesn't do any rejection sampling or divisions. Hence, it stays within the prandom_* namespace. These rules ought to be applied uniformly, so that we can clean up the deprecated functions, and earn the benefits of using the modern functions. In particular, in addition to the boring substitutions, this patchset accomplishes a few nice effects: - By using prandom_u32_max() with an upper-bound that the compiler can prove at compile-time is ≤65536 or ≤256, internally get_random_u16() or get_random_u8() is used, which wastes fewer batched random bytes, and hence has higher throughput. - By using prandom_u32_max() instead of %, when the upper-bound is not a constant, division is still avoided, because prandom_u32_max() uses a faster multiplication-based trick instead. - By using get_random_u16() or get_random_u8() in cases where the return value is intended to indeed be a u16 or a u8, we waste fewer batched random bytes, and hence have higher throughput. So, based on those rules and benefits from following them, this patchset breaks down into the following five steps: 1) Replace `prandom_u32() % max` and variants thereof with prandom_u32_max(max). 2) Replace `(type)get_random_u32()` and variants thereof with get_random_u16() or get_random_u8(). I took the pains to actually look and see what every lvalue type was across the entire tree. 3) Replace remaining deprecated uses of prandom_u32() with get_random_u32(). 4) Replace remaining deprecated uses of prandom_bytes() with get_random_bytes(). 5) Remove the deprecated and now-unused prandom_u32() and prandom_bytes() inline wrapper functions. I was thinking of taking this through my random.git tree (on which this series is currently based) and submitting it near the end of the merge window, or waiting for the very end of the 6.1 cycle when there will be the fewest new patches brewing. If somebody with some treewide-cleanup experience might share some wisdom about what the best timing usually winds up being, I'm all ears. I've CC'd get_maintainers.pl, which is a pretty big list. Probably some portion of those are going to bounce, too, and everytime you reply to this thread, you'll have to deal with a bunch of bounces coming immediately after. And a recipient list this big will probably dock my email domain's spam reputation, at least temporarily. Sigh. I think that's just how it goes with treewide cleanups though. Again, let me know if I'm doing it wrong. Please take a look! Thanks, Jason Cc: Ajay Singh Cc: Akinobu Mita Cc: Alexandre Torgue Cc: Amitkumar Karwar Cc: Andreas Dilger Cc: Andreas Färber Cc: Andreas Noever Cc: Andrew Lunn Cc: Andrew Morton Cc: Andrii Nakryiko Cc: Andy Gospodarek Cc: Andy Lutomirski Cc: Andy Shevchenko Cc: Anil S Keshavamurthy Cc: Anna Schumaker Cc: Arend van Spriel Cc: Ayush Sawal Cc: Borislav Petkov Cc: Chao Yu Cc: Christoph Böhmwalder Cc: Christoph Hellwig Cc: Christophe Leroy Cc: Chuck Lever Cc: Claudiu Beznea Cc: Cong Wang Cc: Dan Williams Cc: Daniel Borkmann Cc: Darrick J. Wong Cc: Dave Hansen Cc: David Ahern Cc: David S. Miller Cc: Dennis Dalessandro Cc: Dick Kennedy Cc: Dmitry Vyukov Cc: Eric Dumazet Cc: Florian Westphal Cc: Franky Lin Cc: Ganapathi Bhat Cc: Greg Kroah-Hartman Cc: Gregory Greenman Cc: H. Peter Anvin Cc: Hannes Reinecke Cc: Hans Verkuil Cc: Hante Meuleman Cc: Hao Luo Cc: Haoyue Xu Cc: Heiner Kallweit Cc: Helge Deller Cc: Herbert Xu Cc: Hideaki YOSHIFUJI Cc: Hugh Dickins Cc: Igor Mitsyanko Cc: Ilya Dryomov Cc: Ingo Molnar Cc: Jack Wang Cc: Jaegeuk Kim Cc: Jaehoon Chung Cc: Jakub Kicinski Cc: Jamal Hadi Salim Cc: James E.J. Bottomley Cc: James Smart Cc: Jan Kara Cc: Jason Gunthorpe Cc: Jay Vosburgh Cc: Jean-Paul Roubelat Cc: Jeff Layton Cc: Jens Axboe Cc: Jiri Olsa Cc: Jiri Pirko Cc: Johannes Berg Cc: John Fastabend Cc: John Stultz Cc: Jon Maloy Cc: Jonathan Corbet Cc: Jozsef Kadlecsik Cc: Julian Anastasov Cc: KP Singh Cc: Kalle Valo Cc: Kees Cook Cc: Keith Busch Cc: Lars Ellenberg Cc: Leon Romanovsky Cc: Manish Rangankar Cc: Manivannan Sadhasivam Cc: Marcelo Ricardo Leitner Cc: Marco Elver Cc: Martin K. Petersen Cc: Martin KaFai Lau Cc: Masami Hiramatsu Cc: Mauro Carvalho Chehab Cc: Maxime Coquelin Cc: Md. Haris Iqbal Cc: Michael Chan Cc: Michael Ellerman Cc: Michael Jamet Cc: Michal Januszewski Cc: Mika Westerberg Cc: Miquel Raynal Cc: Namjae Jeon Cc: Naveen N. Rao Cc: Neil Horman Cc: Nicholas Piggin Cc: Nilesh Javali Cc: OGAWA Hirofumi Cc: Pablo Neira Ayuso Cc: Paolo Abeni Cc: Peter Zijlstra Cc: Philipp Reisner Cc: Potnuri Bharat Teja Cc: Pravin B Shelar Cc: Rasmus Villemoes Cc: Richard Weinberger Cc: Rohit Maheshwari Cc: Russell King Cc: Sagi Grimberg Cc: Santosh Shilimkar Cc: Sergey Matyukevich Cc: Sharvari Harisangam Cc: Simon Horman Cc: Song Liu Cc: Stanislav Fomichev Cc: Steffen Klassert Cc: Stephen Boyd Cc: Stephen Hemminger Cc: Sungjong Seo Cc: Theodore Ts'o Cc: Thomas Gleixner Cc: Thomas Graf Cc: Thomas Sailer Cc: Toke Høiland-Jørgensen Cc: Trond Myklebust Cc: Ulf Hansson Cc: Varun Prakash Cc: Veaceslav Falico Cc: Vignesh Raghavendra Cc: Vinay Kumar Yadav Cc: Vinod Koul Cc: Vlad Yasevich Cc: Wenpeng Liang Cc: Xinming Hu Cc: Xiubo Li Cc: Yehezkel Bernat Cc: Ying Xue Cc: Yishai Hadas Cc: Yonghong Song Cc: Yury Norov Cc: brcm80211-dev-list.pdl@broadcom.com Cc: cake@lists.bufferbloat.net Cc: ceph-devel@vger.kernel.org Cc: coreteam@netfilter.org Cc: dccp@vger.kernel.org Cc: dev@openvswitch.org Cc: dmaengine@vger.kernel.org Cc: drbd-dev@lists.linbit.com Cc: dri-devel@lists.freedesktop.org Cc: kasan-dev@googlegroups.com Cc: linux-actions@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-block@vger.kernel.org Cc: linux-crypto@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: linux-ext4@vger.kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-fbdev@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-hams@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-media@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-mmc@vger.kernel.org Cc: linux-mtd@lists.infradead.org Cc: linux-nfs@vger.kernel.org Cc: linux-nvme@lists.infradead.org Cc: linux-raid@vger.kernel.org Cc: linux-rdma@vger.kernel.org Cc: linux-scsi@vger.kernel.org Cc: linux-sctp@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-usb@vger.kernel.org Cc: linux-wireless@vger.kernel.org Cc: linux-xfs@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Cc: lvs-devel@vger.kernel.org Cc: netdev@vger.kernel.org Cc: netfilter-devel@vger.kernel.org Cc: rds-devel@oss.oracle.com Cc: SHA-cyfmac-dev-list@infineon.com Cc: target-devel@vger.kernel.org Cc: tipc-discussion@lists.sourceforge.net Jason A. Donenfeld (5): treewide: use prandom_u32_max() when possible treewide: use get_random_{u8,u16}() when possible treewide: use get_random_u32() when possible treewide: use get_random_bytes when possible prandom: remove unused functions Documentation/networking/filter.rst | 2 +- arch/powerpc/crypto/crc-vpmsum_test.c | 2 +- arch/x86/mm/pat/cpa-test.c | 4 +- block/blk-crypto-fallback.c | 2 +- crypto/async_tx/raid6test.c | 2 +- crypto/testmgr.c | 94 +++++++++---------- drivers/block/drbd/drbd_receiver.c | 4 +- drivers/dma/dmatest.c | 2 +- drivers/infiniband/core/cma.c | 2 +- drivers/infiniband/hw/cxgb4/cm.c | 4 +- drivers/infiniband/hw/cxgb4/id_table.c | 4 +- drivers/infiniband/hw/hfi1/tid_rdma.c | 2 +- drivers/infiniband/hw/hns/hns_roce_ah.c | 5 +- drivers/infiniband/hw/mlx4/mad.c | 2 +- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +- drivers/infiniband/ulp/rtrs/rtrs-clt.c | 3 +- drivers/md/raid5-cache.c | 2 +- drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 2 +- .../media/test-drivers/vivid/vivid-radio-rx.c | 4 +- drivers/mmc/core/core.c | 4 +- drivers/mmc/host/dw_mmc.c | 2 +- drivers/mtd/nand/raw/nandsim.c | 8 +- drivers/mtd/tests/mtd_nandecctest.c | 12 +-- drivers/mtd/tests/speedtest.c | 2 +- drivers/mtd/tests/stresstest.c | 19 +--- drivers/mtd/ubi/debug.c | 2 +- drivers/mtd/ubi/debug.h | 6 +- drivers/net/bonding/bond_main.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- drivers/net/ethernet/broadcom/cnic.c | 5 +- .../chelsio/inline_crypto/chtls/chtls_cm.c | 4 +- .../chelsio/inline_crypto/chtls/chtls_io.c | 4 +- drivers/net/ethernet/rocker/rocker_main.c | 8 +- drivers/net/hamradio/baycom_epp.c | 2 +- drivers/net/hamradio/hdlcdrv.c | 2 +- drivers/net/hamradio/yam.c | 2 +- drivers/net/phy/at803x.c | 2 +- drivers/net/wireguard/selftest/allowedips.c | 16 ++-- .../broadcom/brcm80211/brcmfmac/p2p.c | 2 +- .../net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 2 +- .../net/wireless/marvell/mwifiex/cfg80211.c | 4 +- .../wireless/microchip/wilc1000/cfg80211.c | 2 +- .../net/wireless/quantenna/qtnfmac/cfg80211.c | 2 +- drivers/nvme/common/auth.c | 2 +- drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 4 +- drivers/scsi/fcoe/fcoe_ctlr.c | 4 +- drivers/scsi/lpfc/lpfc_hbadisc.c | 6 +- drivers/scsi/qedi/qedi_main.c | 2 +- drivers/target/iscsi/cxgbit/cxgbit_cm.c | 2 +- drivers/thunderbolt/xdomain.c | 2 +- drivers/video/fbdev/uvesafb.c | 2 +- fs/ceph/inode.c | 2 +- fs/ceph/mdsmap.c | 2 +- fs/exfat/inode.c | 2 +- fs/ext2/ialloc.c | 2 +- fs/ext4/ialloc.c | 4 +- fs/ext4/ioctl.c | 4 +- fs/ext4/mmp.c | 2 +- fs/ext4/super.c | 7 +- fs/f2fs/gc.c | 2 +- fs/f2fs/namei.c | 2 +- fs/f2fs/segment.c | 8 +- fs/fat/inode.c | 2 +- fs/nfsd/nfs4state.c | 4 +- fs/ubifs/debug.c | 10 +- fs/ubifs/journal.c | 2 +- fs/ubifs/lpt_commit.c | 14 +-- fs/ubifs/tnc_commit.c | 2 +- fs/xfs/libxfs/xfs_alloc.c | 2 +- fs/xfs/libxfs/xfs_ialloc.c | 4 +- fs/xfs/xfs_error.c | 2 +- fs/xfs/xfs_icache.c | 2 +- fs/xfs/xfs_log.c | 2 +- include/linux/prandom.h | 12 --- include/net/netfilter/nf_queue.h | 2 +- include/net/red.h | 2 +- include/net/sock.h | 2 +- kernel/kcsan/selftest.c | 4 +- kernel/time/clocksource.c | 2 +- lib/fault-inject.c | 2 +- lib/find_bit_benchmark.c | 4 +- lib/random32.c | 4 +- lib/reed_solomon/test_rslib.c | 12 +-- lib/sbitmap.c | 4 +- lib/test_fprobe.c | 2 +- lib/test_kprobes.c | 2 +- lib/test_list_sort.c | 2 +- lib/test_objagg.c | 2 +- lib/test_rhashtable.c | 6 +- lib/test_vmalloc.c | 19 +--- lib/uuid.c | 2 +- mm/shmem.c | 2 +- net/802/garp.c | 2 +- net/802/mrp.c | 2 +- net/ceph/mon_client.c | 2 +- net/ceph/osd_client.c | 2 +- net/core/neighbour.c | 2 +- net/core/pktgen.c | 47 +++++----- net/core/stream.c | 2 +- net/dccp/ipv4.c | 4 +- net/ipv4/datagram.c | 2 +- net/ipv4/igmp.c | 6 +- net/ipv4/inet_connection_sock.c | 2 +- net/ipv4/inet_hashtables.c | 2 +- net/ipv4/ip_output.c | 2 +- net/ipv4/route.c | 2 +- net/ipv4/tcp_cdg.c | 2 +- net/ipv4/tcp_ipv4.c | 4 +- net/ipv4/udp.c | 2 +- net/ipv6/addrconf.c | 8 +- net/ipv6/ip6_flowlabel.c | 2 +- net/ipv6/mcast.c | 10 +- net/ipv6/output_core.c | 2 +- net/mac80211/rc80211_minstrel_ht.c | 2 +- net/mac80211/scan.c | 2 +- net/netfilter/ipvs/ip_vs_conn.c | 2 +- net/netfilter/ipvs/ip_vs_twos.c | 4 +- net/netfilter/nf_nat_core.c | 4 +- net/netfilter/xt_statistic.c | 2 +- net/openvswitch/actions.c | 2 +- net/packet/af_packet.c | 2 +- net/rds/bind.c | 2 +- net/sched/act_gact.c | 2 +- net/sched/act_sample.c | 2 +- net/sched/sch_cake.c | 8 +- net/sched/sch_netem.c | 22 ++--- net/sched/sch_pie.c | 2 +- net/sched/sch_sfb.c | 2 +- net/sctp/socket.c | 4 +- net/sunrpc/auth_gss/gss_krb5_wrap.c | 4 +- net/sunrpc/cache.c | 2 +- net/sunrpc/xprt.c | 2 +- net/sunrpc/xprtsock.c | 2 +- net/tipc/socket.c | 2 +- net/unix/af_unix.c | 2 +- net/xfrm/xfrm_state.c | 2 +- 136 files changed, 304 insertions(+), 339 deletions(-) -- 2.37.3 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6EDBAC433F5 for ; Thu, 6 Oct 2022 00:22:32 +0000 (UTC) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4MjXFf6Gj2z3dqq for ; Thu, 6 Oct 2022 11:22:30 +1100 (AEDT) Authentication-Results: lists.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=zx2c4.com header.i=@zx2c4.com header.a=rsa-sha256 header.s=20210105 header.b=Qhkl413I; dkim-atps=neutral Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=kernel.org (client-ip=2604:1380:4601:e00::1; helo=ams.source.kernel.org; envelope-from=srs0=wwun=2g=zx2c4.com=jason@kernel.org; receiver=) Authentication-Results: lists.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=zx2c4.com header.i=@zx2c4.com header.a=rsa-sha256 header.s=20210105 header.b=Qhkl413I; dkim-atps=neutral Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4MjSs968tsz2xf7 for ; Thu, 6 Oct 2022 08:49:33 +1100 (AEDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 0C4BDB81EC9; Wed, 5 Oct 2022 21:49:29 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id D5AA6C433D6; Wed, 5 Oct 2022 21:49:12 +0000 (UTC) Authentication-Results: smtp.kernel.org; dkim=pass (1024-bit key) header.d=zx2c4.com header.i=@zx2c4.com header.b="Qhkl413I" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1665006550; 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=kCoSuUs9/UuRmM69QeDy2i9LHinxGmdLR45ZcTaEirk=; b=Qhkl413IKS9UgZdKh7qX9XR//PEzMC7IKCarDofy3JsuOZGgYVos7Y1lBiMvIBBMcVqGoi 7r0OnXV0Qj1WnNZ+VU3Xc8roONhraZkXZ+EkeMM0FR/6WCQ++q5bALgZsXuPr1ztLy5trS rTtCF5uZMusANY6aJcM8PEFs0H0T/ts= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 837ac4b0 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Wed, 5 Oct 2022 21:49:10 +0000 (UTC) From: "Jason A. Donenfeld" To: linux-kernel@vger.kernel.org Subject: [PATCH v1 0/5] treewide cleanup of random integer usage Date: Wed, 5 Oct 2022 23:48:39 +0200 Message-Id: <20221005214844.2699-1-Jason@zx2c4.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Mailman-Approved-At: Thu, 06 Oct 2022 11:21:39 +1100 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Andrew Lunn , "Darrick J . Wong" , Ulf Hansson , dri-devel@lists.freedesktop.org, Andrii Nakryiko , Hans Verkuil , linux-sctp@vger.kernel.org, "Md . Haris Iqbal" , Miquel Raynal , Christoph Hellwig , Andy Gospodarek , Sergey Matyukevich , Rohit Maheshwari , ceph-devel@vger.kernel.org, Jozsef Kadlecsik , Nilesh Javali , Jean-Paul Roubelat , Dick Kennedy , Jay Vosburgh , Potnuri Bharat Teja , Vinay Kumar Yadav , linux-nfs@vger.kernel.org, Nicholas Piggin , Igor Mitsyanko , Andy Lutomirski , linux-hams@vger.kernel.org, Thomas Gleixner , Trond Myklebust , linux-raid@vger.kernel.org, Neil Horman , Hante Meuleman , Greg Kroah-Hartman , linux-usb@vger.kernel.org, Michael Chan , Varun Prakash , Chuck Lever , netfilter-devel@vger.kernel.org, Masami Hiramatsu , Jiri Olsa , Jan Kara , linux-fsdevel@vger.kernel.org, Lars Ellenberg , linux-media@vger.kernel.org, Claudiu Beznea , Sharvari Harisangam , "Jason A. Donenfeld" , linux-doc@vger.kernel.org, linux-mmc@vger.kernel.org, Dave Hansen , Song Liu , Eric Dumazet , target-devel@vger.kernel.org, John Stultz , Stanislav Fomichev , Gregory Gre enman , drbd-dev@lists.linbit.com, dev@openvswitch.org, Leon Romanovsky , Helge Deller , Hugh Dickins , James Smart , Anil S Keshavamurthy , Pravin B Shelar , Julian Anastasov , coreteam@netfilter.org, Veaceslav Falico , Yonghong Song , Namjae Jeon , linux-crypto@vger.kernel.org, Santosh Shilimkar , Ganapathi Bhat , linux-actions@lists.infradead.org, Simon Horman , Jaegeuk Kim , Mika Westerberg , Andrew Morton , OGAWA Hirofumi , Hao Luo , Theodore Ts'o , Stephen Boyd , Dennis Dalessandro , Florian Westphal , =?UTF-8?q?Andreas=20F=C3=A4rber?= , Jon Maloy , Vlad Yasevich , Anna Schumaker , Yehezkel Bernat , Haoyue Xu , Heiner Kallweit , linux-wireless@vger.kernel.org, Marcelo Ricardo Leitner , Rasmus Villemoes , linux-fbdev@vger.kernel.org, linux-nvme@lists.infradead.org, Michal Januszewski , linux-mtd@lists.infradead.org, kasan-dev@googlegroups.com, Cong Wang , Thomas Sailer , Ajay Singh , Xiubo Li , Sagi Grimberg , Daniel Borkmann , Jonathan Corbet , linux-rdma@vger.kernel.org, lvs-devel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, "Naveen N . Rao" , Ilya Dryomov , Paolo Abeni , Pablo Neira Ayuso , Marco Elver , Kees Cook , Yury Norov , "James E . J . Bottomley" , Jamal Hadi Salim , KP Singh , Borislav Petkov , Keith Busch , Dan Williams , Mauro Carvalho Chehab , Franky Lin , Arend van Spriel , linux-ext4@vger.kernel.org, Wenpeng Liang , "Martin K . Petersen" , Xinming Hu , linux-stm32@st-md-mailman.stormreply.com, Jeff Layton , linux-xfs@vger.kernel.org, netdev@vger.kernel.org, Ying Xue , Manish Rangankar , "David S . Miller" , =?UTF-8?q?Toke=20H=C3=B8iland-J=C3=B8rgensen?= , Vignesh Raghavendra , Peter Zijlstra , "H . Peter Anvin" , Alexandre Torgue , Amitkumar Karwar , linux-mm@kvack.org, Andreas Dilger , Ayush Sawal , Andreas Noever , Jiri Pirko , linux-f2fs-devel@lists.sourceforge.net, Jack Wang , Steffen Klassert , rds-devel@oss.oracle.com, Herbert Xu , linux-scsi@vger.kernel.org, dccp@vger.kernel.org, Richard Weinberger , Russell King , Jaehoon Chung , Jason Gunthorpe , SHA-cyfmac-dev-list@infineon.com, Ingo Molnar , Jakub Kicinski , John Fastabend , Maxime Coquelin , Manivannan Sadhasivam , Michael Jamet , Kalle Valo , Chao Yu , Akinobu Mita , linux-block@vger.kernel.org, dmaengine@vger.kernel.org, Hannes Reinecke , Andy Shevchenko , Dmitry Vyukov , Jens Axboe , cake@lists.bufferbloat.net, brcm80211-dev-list.pdl@broadcom.com, Yishai Hadas , Hideaki YOSHIFUJI , linuxppc-dev@lists.ozlabs.org, David Ahern , Philipp Reisner , Stephen Hemminger , =?UTF-8?q?Christoph=20B=C3=B6hmwalder?= , Vinod Koul , tipc-discussion@lists.sourceforge.net, Thomas Graf , Johannes Berg , Sungjong Seo , Martin KaFai Lau Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org Sender: "Linuxppc-dev" Hi folks, This is a five part treewide cleanup of random integer handling. The rules for random integers are: - If you want a secure or an insecure random u64, use get_random_u64(). - If you want a secure or an insecure random u32, use get_random_u32(). * The old function prandom_u32() has been deprecated for a while now and is just a wrapper around get_random_u32(). - If you want a secure or an insecure random u16, use get_random_u16(). - If you want a secure or an insecure random u8, use get_random_u8(). - If you want secure or insecure random bytes, use get_random_bytes(). * The old function prandom_bytes() has been deprecated for a while now and has long been a wrapper around get_random_bytes(). - If you want a non-uniform random u32, u16, or u8 bounded by a certain open interval maximum, use prandom_u32_max(). * I say "non-uniform", because it doesn't do any rejection sampling or divisions. Hence, it stays within the prandom_* namespace. These rules ought to be applied uniformly, so that we can clean up the deprecated functions, and earn the benefits of using the modern functions. In particular, in addition to the boring substitutions, this patchset accomplishes a few nice effects: - By using prandom_u32_max() with an upper-bound that the compiler can prove at compile-time is ≤65536 or ≤256, internally get_random_u16() or get_random_u8() is used, which wastes fewer batched random bytes, and hence has higher throughput. - By using prandom_u32_max() instead of %, when the upper-bound is not a constant, division is still avoided, because prandom_u32_max() uses a faster multiplication-based trick instead. - By using get_random_u16() or get_random_u8() in cases where the return value is intended to indeed be a u16 or a u8, we waste fewer batched random bytes, and hence have higher throughput. So, based on those rules and benefits from following them, this patchset breaks down into the following five steps: 1) Replace `prandom_u32() % max` and variants thereof with prandom_u32_max(max). 2) Replace `(type)get_random_u32()` and variants thereof with get_random_u16() or get_random_u8(). I took the pains to actually look and see what every lvalue type was across the entire tree. 3) Replace remaining deprecated uses of prandom_u32() with get_random_u32(). 4) Replace remaining deprecated uses of prandom_bytes() with get_random_bytes(). 5) Remove the deprecated and now-unused prandom_u32() and prandom_bytes() inline wrapper functions. I was thinking of taking this through my random.git tree (on which this series is currently based) and submitting it near the end of the merge window, or waiting for the very end of the 6.1 cycle when there will be the fewest new patches brewing. If somebody with some treewide-cleanup experience might share some wisdom about what the best timing usually winds up being, I'm all ears. I've CC'd get_maintainers.pl, which is a pretty big list. Probably some portion of those are going to bounce, too, and everytime you reply to this thread, you'll have to deal with a bunch of bounces coming immediately after. And a recipient list this big will probably dock my email domain's spam reputation, at least temporarily. Sigh. I think that's just how it goes with treewide cleanups though. Again, let me know if I'm doing it wrong. Please take a look! Thanks, Jason Cc: Ajay Singh Cc: Akinobu Mita Cc: Alexandre Torgue Cc: Amitkumar Karwar Cc: Andreas Dilger Cc: Andreas Färber Cc: Andreas Noever Cc: Andrew Lunn Cc: Andrew Morton Cc: Andrii Nakryiko Cc: Andy Gospodarek Cc: Andy Lutomirski Cc: Andy Shevchenko Cc: Anil S Keshavamurthy Cc: Anna Schumaker Cc: Arend van Spriel Cc: Ayush Sawal Cc: Borislav Petkov Cc: Chao Yu Cc: Christoph Böhmwalder Cc: Christoph Hellwig Cc: Christophe Leroy Cc: Chuck Lever Cc: Claudiu Beznea Cc: Cong Wang Cc: Dan Williams Cc: Daniel Borkmann Cc: Darrick J. Wong Cc: Dave Hansen Cc: David Ahern Cc: David S. Miller Cc: Dennis Dalessandro Cc: Dick Kennedy Cc: Dmitry Vyukov Cc: Eric Dumazet Cc: Florian Westphal Cc: Franky Lin Cc: Ganapathi Bhat Cc: Greg Kroah-Hartman Cc: Gregory Greenman Cc: H. Peter Anvin Cc: Hannes Reinecke Cc: Hans Verkuil Cc: Hante Meuleman Cc: Hao Luo Cc: Haoyue Xu Cc: Heiner Kallweit Cc: Helge Deller Cc: Herbert Xu Cc: Hideaki YOSHIFUJI Cc: Hugh Dickins Cc: Igor Mitsyanko Cc: Ilya Dryomov Cc: Ingo Molnar Cc: Jack Wang Cc: Jaegeuk Kim Cc: Jaehoon Chung Cc: Jakub Kicinski Cc: Jamal Hadi Salim Cc: James E.J. Bottomley Cc: James Smart Cc: Jan Kara Cc: Jason Gunthorpe Cc: Jay Vosburgh Cc: Jean-Paul Roubelat Cc: Jeff Layton Cc: Jens Axboe Cc: Jiri Olsa Cc: Jiri Pirko Cc: Johannes Berg Cc: John Fastabend Cc: John Stultz Cc: Jon Maloy Cc: Jonathan Corbet Cc: Jozsef Kadlecsik Cc: Julian Anastasov Cc: KP Singh Cc: Kalle Valo Cc: Kees Cook Cc: Keith Busch Cc: Lars Ellenberg Cc: Leon Romanovsky Cc: Manish Rangankar Cc: Manivannan Sadhasivam Cc: Marcelo Ricardo Leitner Cc: Marco Elver Cc: Martin K. Petersen Cc: Martin KaFai Lau Cc: Masami Hiramatsu Cc: Mauro Carvalho Chehab Cc: Maxime Coquelin Cc: Md. Haris Iqbal Cc: Michael Chan Cc: Michael Ellerman Cc: Michael Jamet Cc: Michal Januszewski Cc: Mika Westerberg Cc: Miquel Raynal Cc: Namjae Jeon Cc: Naveen N. Rao Cc: Neil Horman Cc: Nicholas Piggin Cc: Nilesh Javali Cc: OGAWA Hirofumi Cc: Pablo Neira Ayuso Cc: Paolo Abeni Cc: Peter Zijlstra Cc: Philipp Reisner Cc: Potnuri Bharat Teja Cc: Pravin B Shelar Cc: Rasmus Villemoes Cc: Richard Weinberger Cc: Rohit Maheshwari Cc: Russell King Cc: Sagi Grimberg Cc: Santosh Shilimkar Cc: Sergey Matyukevich Cc: Sharvari Harisangam Cc: Simon Horman Cc: Song Liu Cc: Stanislav Fomichev Cc: Steffen Klassert Cc: Stephen Boyd Cc: Stephen Hemminger Cc: Sungjong Seo Cc: Theodore Ts'o Cc: Thomas Gleixner Cc: Thomas Graf Cc: Thomas Sailer Cc: Toke Høiland-Jørgensen Cc: Trond Myklebust Cc: Ulf Hansson Cc: Varun Prakash Cc: Veaceslav Falico Cc: Vignesh Raghavendra Cc: Vinay Kumar Yadav Cc: Vinod Koul Cc: Vlad Yasevich Cc: Wenpeng Liang Cc: Xinming Hu Cc: Xiubo Li Cc: Yehezkel Bernat Cc: Ying Xue Cc: Yishai Hadas Cc: Yonghong Song Cc: Yury Norov Cc: brcm80211-dev-list.pdl@broadcom.com Cc: cake@lists.bufferbloat.net Cc: ceph-devel@vger.kernel.org Cc: coreteam@netfilter.org Cc: dccp@vger.kernel.org Cc: dev@openvswitch.org Cc: dmaengine@vger.kernel.org Cc: drbd-dev@lists.linbit.com Cc: dri-devel@lists.freedesktop.org Cc: kasan-dev@googlegroups.com Cc: linux-actions@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-block@vger.kernel.org Cc: linux-crypto@vger.kernel.org Cc: linux-doc@vger.kernel.org Cc: linux-ext4@vger.kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-fbdev@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Cc: linux-hams@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-media@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-mmc@vger.kernel.org Cc: linux-mtd@lists.infradead.org Cc: linux-nfs@vger.kernel.org Cc: linux-nvme@lists.infradead.org Cc: linux-raid@vger.kernel.org Cc: linux-rdma@vger.kernel.org Cc: linux-scsi@vger.kernel.org Cc: linux-sctp@vger.kernel.org Cc: linux-stm32@st-md-mailman.stormreply.com Cc: linux-usb@vger.kernel.org Cc: linux-wireless@vger.kernel.org Cc: linux-xfs@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Cc: lvs-devel@vger.kernel.org Cc: netdev@vger.kernel.org Cc: netfilter-devel@vger.kernel.org Cc: rds-devel@oss.oracle.com Cc: SHA-cyfmac-dev-list@infineon.com Cc: target-devel@vger.kernel.org Cc: tipc-discussion@lists.sourceforge.net Jason A. Donenfeld (5): treewide: use prandom_u32_max() when possible treewide: use get_random_{u8,u16}() when possible treewide: use get_random_u32() when possible treewide: use get_random_bytes when possible prandom: remove unused functions Documentation/networking/filter.rst | 2 +- arch/powerpc/crypto/crc-vpmsum_test.c | 2 +- arch/x86/mm/pat/cpa-test.c | 4 +- block/blk-crypto-fallback.c | 2 +- crypto/async_tx/raid6test.c | 2 +- crypto/testmgr.c | 94 +++++++++---------- drivers/block/drbd/drbd_receiver.c | 4 +- drivers/dma/dmatest.c | 2 +- drivers/infiniband/core/cma.c | 2 +- drivers/infiniband/hw/cxgb4/cm.c | 4 +- drivers/infiniband/hw/cxgb4/id_table.c | 4 +- drivers/infiniband/hw/hfi1/tid_rdma.c | 2 +- drivers/infiniband/hw/hns/hns_roce_ah.c | 5 +- drivers/infiniband/hw/mlx4/mad.c | 2 +- drivers/infiniband/ulp/ipoib/ipoib_cm.c | 2 +- drivers/infiniband/ulp/rtrs/rtrs-clt.c | 3 +- drivers/md/raid5-cache.c | 2 +- drivers/media/common/v4l2-tpg/v4l2-tpg-core.c | 2 +- .../media/test-drivers/vivid/vivid-radio-rx.c | 4 +- drivers/mmc/core/core.c | 4 +- drivers/mmc/host/dw_mmc.c | 2 +- drivers/mtd/nand/raw/nandsim.c | 8 +- drivers/mtd/tests/mtd_nandecctest.c | 12 +-- drivers/mtd/tests/speedtest.c | 2 +- drivers/mtd/tests/stresstest.c | 19 +--- drivers/mtd/ubi/debug.c | 2 +- drivers/mtd/ubi/debug.h | 6 +- drivers/net/bonding/bond_main.c | 2 +- drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +- drivers/net/ethernet/broadcom/cnic.c | 5 +- .../chelsio/inline_crypto/chtls/chtls_cm.c | 4 +- .../chelsio/inline_crypto/chtls/chtls_io.c | 4 +- drivers/net/ethernet/rocker/rocker_main.c | 8 +- drivers/net/hamradio/baycom_epp.c | 2 +- drivers/net/hamradio/hdlcdrv.c | 2 +- drivers/net/hamradio/yam.c | 2 +- drivers/net/phy/at803x.c | 2 +- drivers/net/wireguard/selftest/allowedips.c | 16 ++-- .../broadcom/brcm80211/brcmfmac/p2p.c | 2 +- .../net/wireless/intel/iwlwifi/mvm/mac-ctxt.c | 2 +- .../net/wireless/marvell/mwifiex/cfg80211.c | 4 +- .../wireless/microchip/wilc1000/cfg80211.c | 2 +- .../net/wireless/quantenna/qtnfmac/cfg80211.c | 2 +- drivers/nvme/common/auth.c | 2 +- drivers/scsi/cxgbi/cxgb4i/cxgb4i.c | 4 +- drivers/scsi/fcoe/fcoe_ctlr.c | 4 +- drivers/scsi/lpfc/lpfc_hbadisc.c | 6 +- drivers/scsi/qedi/qedi_main.c | 2 +- drivers/target/iscsi/cxgbit/cxgbit_cm.c | 2 +- drivers/thunderbolt/xdomain.c | 2 +- drivers/video/fbdev/uvesafb.c | 2 +- fs/ceph/inode.c | 2 +- fs/ceph/mdsmap.c | 2 +- fs/exfat/inode.c | 2 +- fs/ext2/ialloc.c | 2 +- fs/ext4/ialloc.c | 4 +- fs/ext4/ioctl.c | 4 +- fs/ext4/mmp.c | 2 +- fs/ext4/super.c | 7 +- fs/f2fs/gc.c | 2 +- fs/f2fs/namei.c | 2 +- fs/f2fs/segment.c | 8 +- fs/fat/inode.c | 2 +- fs/nfsd/nfs4state.c | 4 +- fs/ubifs/debug.c | 10 +- fs/ubifs/journal.c | 2 +- fs/ubifs/lpt_commit.c | 14 +-- fs/ubifs/tnc_commit.c | 2 +- fs/xfs/libxfs/xfs_alloc.c | 2 +- fs/xfs/libxfs/xfs_ialloc.c | 4 +- fs/xfs/xfs_error.c | 2 +- fs/xfs/xfs_icache.c | 2 +- fs/xfs/xfs_log.c | 2 +- include/linux/prandom.h | 12 --- include/net/netfilter/nf_queue.h | 2 +- include/net/red.h | 2 +- include/net/sock.h | 2 +- kernel/kcsan/selftest.c | 4 +- kernel/time/clocksource.c | 2 +- lib/fault-inject.c | 2 +- lib/find_bit_benchmark.c | 4 +- lib/random32.c | 4 +- lib/reed_solomon/test_rslib.c | 12 +-- lib/sbitmap.c | 4 +- lib/test_fprobe.c | 2 +- lib/test_kprobes.c | 2 +- lib/test_list_sort.c | 2 +- lib/test_objagg.c | 2 +- lib/test_rhashtable.c | 6 +- lib/test_vmalloc.c | 19 +--- lib/uuid.c | 2 +- mm/shmem.c | 2 +- net/802/garp.c | 2 +- net/802/mrp.c | 2 +- net/ceph/mon_client.c | 2 +- net/ceph/osd_client.c | 2 +- net/core/neighbour.c | 2 +- net/core/pktgen.c | 47 +++++----- net/core/stream.c | 2 +- net/dccp/ipv4.c | 4 +- net/ipv4/datagram.c | 2 +- net/ipv4/igmp.c | 6 +- net/ipv4/inet_connection_sock.c | 2 +- net/ipv4/inet_hashtables.c | 2 +- net/ipv4/ip_output.c | 2 +- net/ipv4/route.c | 2 +- net/ipv4/tcp_cdg.c | 2 +- net/ipv4/tcp_ipv4.c | 4 +- net/ipv4/udp.c | 2 +- net/ipv6/addrconf.c | 8 +- net/ipv6/ip6_flowlabel.c | 2 +- net/ipv6/mcast.c | 10 +- net/ipv6/output_core.c | 2 +- net/mac80211/rc80211_minstrel_ht.c | 2 +- net/mac80211/scan.c | 2 +- net/netfilter/ipvs/ip_vs_conn.c | 2 +- net/netfilter/ipvs/ip_vs_twos.c | 4 +- net/netfilter/nf_nat_core.c | 4 +- net/netfilter/xt_statistic.c | 2 +- net/openvswitch/actions.c | 2 +- net/packet/af_packet.c | 2 +- net/rds/bind.c | 2 +- net/sched/act_gact.c | 2 +- net/sched/act_sample.c | 2 +- net/sched/sch_cake.c | 8 +- net/sched/sch_netem.c | 22 ++--- net/sched/sch_pie.c | 2 +- net/sched/sch_sfb.c | 2 +- net/sctp/socket.c | 4 +- net/sunrpc/auth_gss/gss_krb5_wrap.c | 4 +- net/sunrpc/cache.c | 2 +- net/sunrpc/xprt.c | 2 +- net/sunrpc/xprtsock.c | 2 +- net/tipc/socket.c | 2 +- net/unix/af_unix.c | 2 +- net/xfrm/xfrm_state.c | 2 +- 136 files changed, 304 insertions(+), 339 deletions(-) -- 2.37.3 From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Jason A. Donenfeld via dev" Subject: [PATCH v1 0/5] treewide cleanup of random integer usage Date: Wed, 5 Oct 2022 23:48:39 +0200 Message-ID: <20221005214844.2699-1-Jason@zx2c4.com> Reply-To: "Jason A. Donenfeld" Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org ACDC98329D DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 1DFB282F49 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org DE2C0408D7 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp2.osuosl.org A6AC240620 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1665006550; 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=kCoSuUs9/UuRmM69QeDy2i9LHinxGmdLR45ZcTaEirk=; b=Qhkl413IKS9UgZdKh7qX9XR//PEzMC7IKCarDofy3JsuOZGgYVos7Y1lBiMvIBBMcVqGoi 7r0OnXV0Qj1WnNZ+VU3Xc8roONhraZkXZ+EkeMM0FR/6WCQ++q5bALgZsXuPr1ztLy5trS rTtCF5uZMusANY6aJcM8PEFs0H0T/ts= List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces-yBygre7rU0TnMu66kgdUjQ@public.gmane.org Sender: "dev" To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Cc: Andrew Lunn , "Darrick J . Wong" , Ulf Hansson , dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org, Andrii Nakryiko , Hans Verkuil , linux-sctp-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, "Md . Haris Iqbal" , Miquel Raynal , Christoph Hellwig , Andy Gospodarek , Sergey Matyukevich , Rohit Maheshwari , Michael Ellerman , ceph-devel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Christophe Leroy , Jozsef Kadlecsik , Nilesh Javali , Jean-Paul Roubelat , Dick Kennedy , Jay Vosburgh , Potnuri Bharat Teja , Vinay Kumar Yadav , linux-nfs@vg SGkgZm9sa3MsCgpUaGlzIGlzIGEgZml2ZSBwYXJ0IHRyZWV3aWRlIGNsZWFudXAgb2YgcmFuZG9t IGludGVnZXIgaGFuZGxpbmcuIFRoZQpydWxlcyBmb3IgcmFuZG9tIGludGVnZXJzIGFyZToKCi0g SWYgeW91IHdhbnQgYSBzZWN1cmUgb3IgYW4gaW5zZWN1cmUgcmFuZG9tIHU2NCwgdXNlIGdldF9y YW5kb21fdTY0KCkuCi0gSWYgeW91IHdhbnQgYSBzZWN1cmUgb3IgYW4gaW5zZWN1cmUgcmFuZG9t IHUzMiwgdXNlIGdldF9yYW5kb21fdTMyKCkuCiAgKiBUaGUgb2xkIGZ1bmN0aW9uIHByYW5kb21f dTMyKCkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3IgYSB3aGlsZSBub3cKICAgIGFuZCBpcyBqdXN0 IGEgd3JhcHBlciBhcm91bmQgZ2V0X3JhbmRvbV91MzIoKS4KLSBJZiB5b3Ugd2FudCBhIHNlY3Vy ZSBvciBhbiBpbnNlY3VyZSByYW5kb20gdTE2LCB1c2UgZ2V0X3JhbmRvbV91MTYoKS4KLSBJZiB5 b3Ugd2FudCBhIHNlY3VyZSBvciBhbiBpbnNlY3VyZSByYW5kb20gdTgsIHVzZSBnZXRfcmFuZG9t X3U4KCkuCi0gSWYgeW91IHdhbnQgc2VjdXJlIG9yIGluc2VjdXJlIHJhbmRvbSBieXRlcywgdXNl IGdldF9yYW5kb21fYnl0ZXMoKS4KICAqIFRoZSBvbGQgZnVuY3Rpb24gcHJhbmRvbV9ieXRlcygp IGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIGEgd2hpbGUgbm93CiAgICBhbmQgaGFzIGxvbmcgYmVl biBhIHdyYXBwZXIgYXJvdW5kIGdldF9yYW5kb21fYnl0ZXMoKS4KLSBJZiB5b3Ugd2FudCBhIG5v bi11bmlmb3JtIHJhbmRvbSB1MzIsIHUxNiwgb3IgdTggYm91bmRlZCBieSBhIGNlcnRhaW4KICBv cGVuIGludGVydmFsIG1heGltdW0sIHVzZSBwcmFuZG9tX3UzMl9tYXgoKS4KICAqIEkgc2F5ICJu b24tdW5pZm9ybSIsIGJlY2F1c2UgaXQgZG9lc24ndCBkbyBhbnkgcmVqZWN0aW9uIHNhbXBsaW5n IG9yCiAgICBkaXZpc2lvbnMuIEhlbmNlLCBpdCBzdGF5cyB3aXRoaW4gdGhlIHByYW5kb21fKiBu YW1lc3BhY2UuCgpUaGVzZSBydWxlcyBvdWdodCB0byBiZSBhcHBsaWVkIHVuaWZvcm1seSwgc28g dGhhdCB3ZSBjYW4gY2xlYW4gdXAgdGhlCmRlcHJlY2F0ZWQgZnVuY3Rpb25zLCBhbmQgZWFybiB0 aGUgYmVuZWZpdHMgb2YgdXNpbmcgdGhlIG1vZGVybgpmdW5jdGlvbnMuIEluIHBhcnRpY3VsYXIs IGluIGFkZGl0aW9uIHRvIHRoZSBib3Jpbmcgc3Vic3RpdHV0aW9ucywgdGhpcwpwYXRjaHNldCBh Y2NvbXBsaXNoZXMgYSBmZXcgbmljZSBlZmZlY3RzOgoKLSBCeSB1c2luZyBwcmFuZG9tX3UzMl9t YXgoKSB3aXRoIGFuIHVwcGVyLWJvdW5kIHRoYXQgdGhlIGNvbXBpbGVyIGNhbgogIHByb3ZlIGF0 IGNvbXBpbGUtdGltZSBpcyDiiaQ2NTUzNiBvciDiiaQyNTYsIGludGVybmFsbHkgZ2V0X3JhbmRv bV91MTYoKQogIG9yIGdldF9yYW5kb21fdTgoKSBpcyB1c2VkLCB3aGljaCB3YXN0ZXMgZmV3ZXIg YmF0Y2hlZCByYW5kb20gYnl0ZXMsCiAgYW5kIGhlbmNlIGhhcyBoaWdoZXIgdGhyb3VnaHB1dC4K Ci0gQnkgdXNpbmcgcHJhbmRvbV91MzJfbWF4KCkgaW5zdGVhZCBvZiAlLCB3aGVuIHRoZSB1cHBl ci1ib3VuZCBpcyBub3QgYQogIGNvbnN0YW50LCBkaXZpc2lvbiBpcyBzdGlsbCBhdm9pZGVkLCBi ZWNhdXNlIHByYW5kb21fdTMyX21heCgpIHVzZXMKICBhIGZhc3RlciBtdWx0aXBsaWNhdGlvbi1i YXNlZCB0cmljayBpbnN0ZWFkLgoKLSBCeSB1c2luZyBnZXRfcmFuZG9tX3UxNigpIG9yIGdldF9y YW5kb21fdTgoKSBpbiBjYXNlcyB3aGVyZSB0aGUgcmV0dXJuCiAgdmFsdWUgaXMgaW50ZW5kZWQg dG8gaW5kZWVkIGJlIGEgdTE2IG9yIGEgdTgsIHdlIHdhc3RlIGZld2VyIGJhdGNoZWQKICByYW5k b20gYnl0ZXMsIGFuZCBoZW5jZSBoYXZlIGhpZ2hlciB0aHJvdWdocHV0LgoKU28sIGJhc2VkIG9u IHRob3NlIHJ1bGVzIGFuZCBiZW5lZml0cyBmcm9tIGZvbGxvd2luZyB0aGVtLCB0aGlzIHBhdGNo c2V0CmJyZWFrcyBkb3duIGludG8gdGhlIGZvbGxvd2luZyBmaXZlIHN0ZXBzOgoKMSkgUmVwbGFj ZSBgcHJhbmRvbV91MzIoKSAlIG1heGAgYW5kIHZhcmlhbnRzIHRoZXJlb2Ygd2l0aAogICBwcmFu ZG9tX3UzMl9tYXgobWF4KS4KCjIpIFJlcGxhY2UgYCh0eXBlKWdldF9yYW5kb21fdTMyKClgIGFu ZCB2YXJpYW50cyB0aGVyZW9mIHdpdGgKICAgZ2V0X3JhbmRvbV91MTYoKSBvciBnZXRfcmFuZG9t X3U4KCkuIEkgdG9vayB0aGUgcGFpbnMgdG8gYWN0dWFsbHkKICAgbG9vayBhbmQgc2VlIHdoYXQg ZXZlcnkgbHZhbHVlIHR5cGUgd2FzIGFjcm9zcyB0aGUgZW50aXJlIHRyZWUuCgozKSBSZXBsYWNl IHJlbWFpbmluZyBkZXByZWNhdGVkIHVzZXMgb2YgcHJhbmRvbV91MzIoKSB3aXRoCiAgIGdldF9y YW5kb21fdTMyKCkuIAoKNCkgUmVwbGFjZSByZW1haW5pbmcgZGVwcmVjYXRlZCB1c2VzIG9mIHBy YW5kb21fYnl0ZXMoKSB3aXRoCiAgIGdldF9yYW5kb21fYnl0ZXMoKS4KCjUpIFJlbW92ZSB0aGUg ZGVwcmVjYXRlZCBhbmQgbm93LXVudXNlZCBwcmFuZG9tX3UzMigpIGFuZAogICBwcmFuZG9tX2J5 dGVzKCkgaW5saW5lIHdyYXBwZXIgZnVuY3Rpb25zLgoKSSB3YXMgdGhpbmtpbmcgb2YgdGFraW5n IHRoaXMgdGhyb3VnaCBteSByYW5kb20uZ2l0IHRyZWUgKG9uIHdoaWNoIHRoaXMKc2VyaWVzIGlz IGN1cnJlbnRseSBiYXNlZCkgYW5kIHN1Ym1pdHRpbmcgaXQgbmVhciB0aGUgZW5kIG9mIHRoZSBt ZXJnZQp3aW5kb3csIG9yIHdhaXRpbmcgZm9yIHRoZSB2ZXJ5IGVuZCBvZiB0aGUgNi4xIGN5Y2xl IHdoZW4gdGhlcmUgd2lsbCBiZQp0aGUgZmV3ZXN0IG5ldyBwYXRjaGVzIGJyZXdpbmcuIElmIHNv bWVib2R5IHdpdGggc29tZSB0cmVld2lkZS1jbGVhbnVwCmV4cGVyaWVuY2UgbWlnaHQgc2hhcmUg c29tZSB3aXNkb20gYWJvdXQgd2hhdCB0aGUgYmVzdCB0aW1pbmcgdXN1YWxseQp3aW5kcyB1cCBi ZWluZywgSSdtIGFsbCBlYXJzLgoKSSd2ZSBDQydkIGdldF9tYWludGFpbmVycy5wbCwgd2hpY2gg aXMgYSBwcmV0dHkgYmlnIGxpc3QuIFByb2JhYmx5IHNvbWUKcG9ydGlvbiBvZiB0aG9zZSBhcmUg Z29pbmcgdG8gYm91bmNlLCB0b28sIGFuZCBldmVyeXRpbWUgeW91IHJlcGx5IHRvCnRoaXMgdGhy ZWFkLCB5b3UnbGwgaGF2ZSB0byBkZWFsIHdpdGggYSBidW5jaCBvZiBib3VuY2VzIGNvbWluZwpp bW1lZGlhdGVseSBhZnRlci4gQW5kIGEgcmVjaXBpZW50IGxpc3QgdGhpcyBiaWcgd2lsbCBwcm9i YWJseSBkb2NrIG15CmVtYWlsIGRvbWFpbidzIHNwYW0gcmVwdXRhdGlvbiwgYXQgbGVhc3QgdGVt cG9yYXJpbHkuIFNpZ2guIEkgdGhpbmsKdGhhdCdzIGp1c3QgaG93IGl0IGdvZXMgd2l0aCB0cmVl d2lkZSBjbGVhbnVwcyB0aG91Z2guIEFnYWluLCBsZXQgbWUKa25vdyBpZiBJJ20gZG9pbmcgaXQg d3JvbmcuCgpQbGVhc2UgdGFrZSBhIGxvb2shCgpUaGFua3MsCkphc29uCgpDYzogQWpheSBTaW5n aCA8YWpheS5rYXRoYXRAbWljcm9jaGlwLmNvbT4KQ2M6IEFraW5vYnUgTWl0YSA8YWtpbm9idS5t aXRhQGdtYWlsLmNvbT4KQ2M6IEFsZXhhbmRyZSBUb3JndWUgPGFsZXhhbmRyZS50b3JndWVAZm9z cy5zdC5jb20+CkNjOiBBbWl0a3VtYXIgS2Fyd2FyIDxhbWl0a2Fyd2FyQGdtYWlsLmNvbT4KQ2M6 IEFuZHJlYXMgRGlsZ2VyIDxhZGlsZ2VyLmtlcm5lbEBkaWxnZXIuY2E+CkNjOiBBbmRyZWFzIEbD pHJiZXIgPGFmYWVyYmVyQHN1c2UuZGU+CkNjOiBBbmRyZWFzIE5vZXZlciA8YW5kcmVhcy5ub2V2 ZXJAZ21haWwuY29tPgpDYzogQW5kcmV3IEx1bm4gPGFuZHJld0BsdW5uLmNoPgpDYzogQW5kcmV3 IE1vcnRvbiA8YWtwbUBsaW51eC1mb3VuZGF0aW9uLm9yZz4KQ2M6IEFuZHJpaSBOYWtyeWlrbyA8 YW5kcmlpQGtlcm5lbC5vcmc+CkNjOiBBbmR5IEdvc3BvZGFyZWsgPGFuZHlAZ3JleWhvdXNlLm5l dD4KQ2M6IEFuZHkgTHV0b21pcnNraSA8bHV0b0BrZXJuZWwub3JnPgpDYzogQW5keSBTaGV2Y2hl bmtvIDxhbmRyaXkuc2hldmNoZW5rb0BsaW51eC5pbnRlbC5jb20+CkNjOiBBbmlsIFMgS2VzaGF2 YW11cnRoeSA8YW5pbC5zLmtlc2hhdmFtdXJ0aHlAaW50ZWwuY29tPgpDYzogQW5uYSBTY2h1bWFr ZXIgPGFubmFAa2VybmVsLm9yZz4KQ2M6IEFyZW5kIHZhbiBTcHJpZWwgPGFzcHJpZWxAZ21haWwu Y29tPgpDYzogQXl1c2ggU2F3YWwgPGF5dXNoLnNhd2FsQGNoZWxzaW8uY29tPgpDYzogQm9yaXNs YXYgUGV0a292IDxicEBhbGllbjguZGU+CkNjOiBDaGFvIFl1IDxjaGFvQGtlcm5lbC5vcmc+CkNj OiBDaHJpc3RvcGggQsO2aG13YWxkZXIgPGNocmlzdG9waC5ib2VobXdhbGRlckBsaW5iaXQuY29t PgpDYzogQ2hyaXN0b3BoIEhlbGx3aWcgPGhjaEBsc3QuZGU+CkNjOiBDaHJpc3RvcGhlIExlcm95 IDxjaHJpc3RvcGhlLmxlcm95QGNzZ3JvdXAuZXU+CkNjOiBDaHVjayBMZXZlciA8Y2h1Y2subGV2 ZXJAb3JhY2xlLmNvbT4KQ2M6IENsYXVkaXUgQmV6bmVhIDxjbGF1ZGl1LmJlem5lYUBtaWNyb2No aXAuY29tPgpDYzogQ29uZyBXYW5nIDx4aXlvdS53YW5nY29uZ0BnbWFpbC5jb20+CkNjOiBEYW4g V2lsbGlhbXMgPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4KQ2M6IERhbmllbCBCb3JrbWFubiA8 ZGFuaWVsQGlvZ2VhcmJveC5uZXQ+CkNjOiBEYXJyaWNrIEouIFdvbmcgPGRqd29uZ0BrZXJuZWwu b3JnPgpDYzogRGF2ZSBIYW5zZW4gPGRhdmUuaGFuc2VuQGxpbnV4LmludGVsLmNvbT4KQ2M6IERh dmlkIEFoZXJuIDxkc2FoZXJuQGtlcm5lbC5vcmc+CkNjOiBEYXZpZCBTLiBNaWxsZXIgPGRhdmVt QGRhdmVtbG9mdC5uZXQ+CkNjOiBEZW5uaXMgRGFsZXNzYW5kcm8gPGRlbm5pcy5kYWxlc3NhbmRy b0Bjb3JuZWxpc25ldHdvcmtzLmNvbT4KQ2M6IERpY2sgS2VubmVkeSA8ZGljay5rZW5uZWR5QGJy b2FkY29tLmNvbT4KQ2M6IERtaXRyeSBWeXVrb3YgPGR2eXVrb3ZAZ29vZ2xlLmNvbT4KQ2M6IEVy aWMgRHVtYXpldCA8ZWR1bWF6ZXRAZ29vZ2xlLmNvbT4KQ2M6IEZsb3JpYW4gV2VzdHBoYWwgPGZ3 QHN0cmxlbi5kZT4KQ2M6IEZyYW5reSBMaW4gPGZyYW5reS5saW5AYnJvYWRjb20uY29tPgpDYzog R2FuYXBhdGhpIEJoYXQgPGdhbmFwYXRoaTAxN0BnbWFpbC5jb20+CkNjOiBHcmVnIEtyb2FoLUhh cnRtYW4gPGdyZWdraEBsaW51eGZvdW5kYXRpb24ub3JnPgpDYzogR3JlZ29yeSBHcmVlbm1hbiA8 Z3JlZ29yeS5ncmVlbm1hbkBpbnRlbC5jb20+CkNjOiBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9y LmNvbT4KQ2M6IEhhbm5lcyBSZWluZWNrZSA8aGFyZUBzdXNlLmRlPgpDYzogSGFucyBWZXJrdWls IDxodmVya3VpbEB4czRhbGwubmw+CkNjOiBIYW50ZSBNZXVsZW1hbiA8aGFudGUubWV1bGVtYW5A YnJvYWRjb20uY29tPgpDYzogSGFvIEx1byA8aGFvbHVvQGdvb2dsZS5jb20+CkNjOiBIYW95dWUg WHUgPHh1aGFveXVlMUBoaXNpbGljb24uY29tPgpDYzogSGVpbmVyIEthbGx3ZWl0IDxoa2FsbHdl aXQxQGdtYWlsLmNvbT4KQ2M6IEhlbGdlIERlbGxlciA8ZGVsbGVyQGdteC5kZT4KQ2M6IEhlcmJl cnQgWHUgPGhlcmJlcnRAZ29uZG9yLmFwYW5hLm9yZy5hdT4KQ2M6IEhpZGVha2kgWU9TSElGVUpJ IDx5b3NoZnVqaUBsaW51eC1pcHY2Lm9yZz4KQ2M6IEh1Z2ggRGlja2lucyA8aHVnaGRAZ29vZ2xl LmNvbT4KQ2M6IElnb3IgTWl0c3lhbmtvIDxpbWl0c3lhbmtvQHF1YW50ZW5uYS5jb20+CkNjOiBJ bHlhIERyeW9tb3YgPGlkcnlvbW92QGdtYWlsLmNvbT4KQ2M6IEluZ28gTW9sbmFyIDxtaW5nb0By ZWRoYXQuY29tPgpDYzogSmFjayBXYW5nIDxqaW5wdS53YW5nQGlvbm9zLmNvbT4KQ2M6IEphZWdl dWsgS2ltIDxqYWVnZXVrQGtlcm5lbC5vcmc+CkNjOiBKYWVob29uIENodW5nIDxqaDgwLmNodW5n QHNhbXN1bmcuY29tPgpDYzogSmFrdWIgS2ljaW5za2kgPGt1YmFAa2VybmVsLm9yZz4KQ2M6IEph bWFsIEhhZGkgU2FsaW0gPGpoc0Btb2phdGF0dS5jb20+CkNjOiBKYW1lcyBFLkouIEJvdHRvbWxl eSA8amVqYkBsaW51eC5pYm0uY29tPgpDYzogSmFtZXMgU21hcnQgPGphbWVzLnNtYXJ0QGJyb2Fk Y29tLmNvbT4KQ2M6IEphbiBLYXJhIDxqYWNrQHN1c2UuY29tPgpDYzogSmFzb24gR3VudGhvcnBl IDxqZ2dAemllcGUuY2E+CkNjOiBKYXkgVm9zYnVyZ2ggPGoudm9zYnVyZ2hAZ21haWwuY29tPgpD YzogSmVhbi1QYXVsIFJvdWJlbGF0IDxqcHJAZjZmYmIub3JnPgpDYzogSmVmZiBMYXl0b24gPGps YXl0b25Aa2VybmVsLm9yZz4KQ2M6IEplbnMgQXhib2UgPGF4Ym9lQGtlcm5lbC5kaz4KQ2M6IEpp cmkgT2xzYSA8am9sc2FAa2VybmVsLm9yZz4KQ2M6IEppcmkgUGlya28gPGppcmlAcmVzbnVsbGku dXM+CkNjOiBKb2hhbm5lcyBCZXJnIDxqb2hhbm5lc0BzaXBzb2x1dGlvbnMubmV0PgpDYzogSm9o biBGYXN0YWJlbmQgPGpvaG4uZmFzdGFiZW5kQGdtYWlsLmNvbT4KQ2M6IEpvaG4gU3R1bHR6IDxq c3R1bHR6QGdvb2dsZS5jb20+CkNjOiBKb24gTWFsb3kgPGptYWxveUByZWRoYXQuY29tPgpDYzog Sm9uYXRoYW4gQ29yYmV0IDxjb3JiZXRAbHduLm5ldD4KQ2M6IEpvenNlZiBLYWRsZWNzaWsgPGth ZGxlY0BuZXRmaWx0ZXIub3JnPgpDYzogSnVsaWFuIEFuYXN0YXNvdiA8amFAc3NpLmJnPgpDYzog S1AgU2luZ2ggPGtwc2luZ2hAa2VybmVsLm9yZz4KQ2M6IEthbGxlIFZhbG8gPGt2YWxvQGtlcm5l bC5vcmc+CkNjOiBLZWVzIENvb2sgPGtlZXNjb29rQGNocm9taXVtLm9yZz4KQ2M6IEtlaXRoIEJ1 c2NoIDxrYnVzY2hAa2VybmVsLm9yZz4KQ2M6IExhcnMgRWxsZW5iZXJnIDxsYXJzLmVsbGVuYmVy Z0BsaW5iaXQuY29tPgpDYzogTGVvbiBSb21hbm92c2t5IDxsZW9uQGtlcm5lbC5vcmc+CkNjOiBN YW5pc2ggUmFuZ2Fua2FyIDxtcmFuZ2Fua2FyQG1hcnZlbGwuY29tPgpDYzogTWFuaXZhbm5hbiBT YWRoYXNpdmFtIDxtYW5pQGtlcm5lbC5vcmc+CkNjOiBNYXJjZWxvIFJpY2FyZG8gTGVpdG5lciA8 bWFyY2Vsby5sZWl0bmVyQGdtYWlsLmNvbT4KQ2M6IE1hcmNvIEVsdmVyIDxlbHZlckBnb29nbGUu Y29tPgpDYzogTWFydGluIEsuIFBldGVyc2VuIDxtYXJ0aW4ucGV0ZXJzZW5Ab3JhY2xlLmNvbT4K Q2M6IE1hcnRpbiBLYUZhaSBMYXUgPG1hcnRpbi5sYXVAbGludXguZGV2PgpDYzogTWFzYW1pIEhp cmFtYXRzdSA8bWhpcmFtYXRAa2VybmVsLm9yZz4KQ2M6IE1hdXJvIENhcnZhbGhvIENoZWhhYiA8 bWNoZWhhYkBrZXJuZWwub3JnPgpDYzogTWF4aW1lIENvcXVlbGluIDxtY29xdWVsaW4uc3RtMzJA Z21haWwuY29tPgpDYzogTWQuIEhhcmlzIElxYmFsIDxoYXJpcy5pcWJhbEBpb25vcy5jb20+CkNj OiBNaWNoYWVsIENoYW4gPG1pY2hhZWwuY2hhbkBicm9hZGNvbS5jb20+CkNjOiBNaWNoYWVsIEVs bGVybWFuIDxtcGVAZWxsZXJtYW4uaWQuYXU+CkNjOiBNaWNoYWVsIEphbWV0IDxtaWNoYWVsLmph bWV0QGludGVsLmNvbT4KQ2M6IE1pY2hhbCBKYW51c3pld3NraSA8c3BvY2tAZ2VudG9vLm9yZz4K Q2M6IE1pa2EgV2VzdGVyYmVyZyA8bWlrYS53ZXN0ZXJiZXJnQGxpbnV4LmludGVsLmNvbT4KQ2M6 IE1pcXVlbCBSYXluYWwgPG1pcXVlbC5yYXluYWxAYm9vdGxpbi5jb20+CkNjOiBOYW1qYWUgSmVv biA8bGlua2luamVvbkBrZXJuZWwub3JnPgpDYzogTmF2ZWVuIE4uIFJhbyA8bmF2ZWVuLm4ucmFv QGxpbnV4LmlibS5jb20+CkNjOiBOZWlsIEhvcm1hbiA8bmhvcm1hbkB0dXhkcml2ZXIuY29tPgpD YzogTmljaG9sYXMgUGlnZ2luIDxucGlnZ2luQGdtYWlsLmNvbT4KQ2M6IE5pbGVzaCBKYXZhbGkg PG5qYXZhbGlAbWFydmVsbC5jb20+CkNjOiBPR0FXQSBIaXJvZnVtaSA8aGlyb2Z1bWlAbWFpbC5w YXJrbmV0LmNvLmpwPgpDYzogUGFibG8gTmVpcmEgQXl1c28gPHBhYmxvQG5ldGZpbHRlci5vcmc+ CkNjOiBQYW9sbyBBYmVuaSA8cGFiZW5pQHJlZGhhdC5jb20+CkNjOiBQZXRlciBaaWpsc3RyYSA8 cGV0ZXJ6QGluZnJhZGVhZC5vcmc+CkNjOiBQaGlsaXBwIFJlaXNuZXIgPHBoaWxpcHAucmVpc25l ckBsaW5iaXQuY29tPgpDYzogUG90bnVyaSBCaGFyYXQgVGVqYSA8YmhhcmF0QGNoZWxzaW8uY29t PgpDYzogUHJhdmluIEIgU2hlbGFyIDxwc2hlbGFyQG92bi5vcmc+CkNjOiBSYXNtdXMgVmlsbGVt b2VzIDxsaW51eEByYXNtdXN2aWxsZW1vZXMuZGs+CkNjOiBSaWNoYXJkIFdlaW5iZXJnZXIgPHJp Y2hhcmRAbm9kLmF0PgpDYzogUm9oaXQgTWFoZXNod2FyaSA8cm9oaXRtQGNoZWxzaW8uY29tPgpD YzogUnVzc2VsbCBLaW5nIDxsaW51eEBhcm1saW51eC5vcmcudWs+CkNjOiBTYWdpIEdyaW1iZXJn IDxzYWdpQGdyaW1iZXJnLm1lPgpDYzogU2FudG9zaCBTaGlsaW1rYXIgPHNhbnRvc2guc2hpbGlt a2FyQG9yYWNsZS5jb20+CkNjOiBTZXJnZXkgTWF0eXVrZXZpY2ggPGdlb21hdHNpQGdtYWlsLmNv bT4KQ2M6IFNoYXJ2YXJpIEhhcmlzYW5nYW0gPHNoYXJ2YXJpLmhhcmlzYW5nYW1AbnhwLmNvbT4K Q2M6IFNpbW9uIEhvcm1hbiA8aG9ybXNAdmVyZ2UubmV0LmF1PgpDYzogU29uZyBMaXUgPHNvbmdA a2VybmVsLm9yZz4KQ2M6IFN0YW5pc2xhdiBGb21pY2hldiA8c2RmQGdvb2dsZS5jb20+CkNjOiBT dGVmZmVuIEtsYXNzZXJ0IDxzdGVmZmVuLmtsYXNzZXJ0QHNlY3VuZXQuY29tPgpDYzogU3RlcGhl biBCb3lkIDxzYm95ZEBrZXJuZWwub3JnPgpDYzogU3RlcGhlbiBIZW1taW5nZXIgPHN0ZXBoZW5A bmV0d29ya3BsdW1iZXIub3JnPgpDYzogU3VuZ2pvbmcgU2VvIDxzajE1NTcuc2VvQHNhbXN1bmcu Y29tPgpDYzogVGhlb2RvcmUgVHMnbyA8dHl0c29AbWl0LmVkdT4KQ2M6IFRob21hcyBHbGVpeG5l ciA8dGdseEBsaW51dHJvbml4LmRlPgpDYzogVGhvbWFzIEdyYWYgPHRncmFmQHN1dWcuY2g+CkNj OiBUaG9tYXMgU2FpbGVyIDx0LnNhaWxlckBhbHVtbmkuZXRoei5jaD4KQ2M6IFRva2UgSMO4aWxh bmQtSsO4cmdlbnNlbiA8dG9rZUB0b2tlLmRrPgpDYzogVHJvbmQgTXlrbGVidXN0IDx0cm9uZC5t eWtsZWJ1c3RAaGFtbWVyc3BhY2UuY29tPgpDYzogVWxmIEhhbnNzb24gPHVsZi5oYW5zc29uQGxp bmFyby5vcmc+CkNjOiBWYXJ1biBQcmFrYXNoIDx2YXJ1bkBjaGVsc2lvLmNvbT4KQ2M6IFZlYWNl c2xhdiBGYWxpY28gPHZmYWxpY29AZ21haWwuY29tPgpDYzogVmlnbmVzaCBSYWdoYXZlbmRyYSA8 dmlnbmVzaHJAdGkuY29tPgpDYzogVmluYXkgS3VtYXIgWWFkYXYgPHZpbmF5LnlhZGF2QGNoZWxz aW8uY29tPgpDYzogVmlub2QgS291bCA8dmtvdWxAa2VybmVsLm9yZz4KQ2M6IFZsYWQgWWFzZXZp Y2ggPHZ5YXNldmljaEBnbWFpbC5jb20+CkNjOiBXZW5wZW5nIExpYW5nIDxsaWFuZ3dlbnBlbmdA aHVhd2VpLmNvbT4KQ2M6IFhpbm1pbmcgSHUgPGh1eGlubWluZzgyMEBnbWFpbC5jb20+CkNjOiBY aXVibyBMaSA8eGl1YmxpQHJlZGhhdC5jb20+CkNjOiBZZWhlemtlbCBCZXJuYXQgPFllaGV6a2Vs U2hCQGdtYWlsLmNvbT4KQ2M6IFlpbmcgWHVlIDx5aW5nLnh1ZUB3aW5kcml2ZXIuY29tPgpDYzog WWlzaGFpIEhhZGFzIDx5aXNoYWloQG52aWRpYS5jb20+CkNjOiBZb25naG9uZyBTb25nIDx5aHNA ZmIuY29tPgpDYzogWXVyeSBOb3JvdiA8eXVyeS5ub3JvdkBnbWFpbC5jb20+CkNjOiBicmNtODAy MTEtZGV2LWxpc3QucGRsQGJyb2FkY29tLmNvbQpDYzogY2FrZUBsaXN0cy5idWZmZXJibG9hdC5u ZXQKQ2M6IGNlcGgtZGV2ZWxAdmdlci5rZXJuZWwub3JnCkNjOiBjb3JldGVhbUBuZXRmaWx0ZXIu b3JnCkNjOiBkY2NwQHZnZXIua2VybmVsLm9yZwpDYzogZGV2QG9wZW52c3dpdGNoLm9yZwpDYzog ZG1hZW5naW5lQHZnZXIua2VybmVsLm9yZwpDYzogZHJiZC1kZXZAbGlzdHMubGluYml0LmNvbQpD YzogZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpDYzoga2FzYW4tZGV2QGdvb2dsZWdy b3Vwcy5jb20KQ2M6IGxpbnV4LWFjdGlvbnNAbGlzdHMuaW5mcmFkZWFkLm9yZwpDYzogbGludXgt YXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCkNjOiBsaW51eC1ibG9ja0B2Z2VyLmtlcm5l bC5vcmcKQ2M6IGxpbnV4LWNyeXB0b0B2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWRvY0B2Z2Vy Lmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWV4dDRAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1mMmZz LWRldmVsQGxpc3RzLnNvdXJjZWZvcmdlLm5ldApDYzogbGludXgtZmJkZXZAdmdlci5rZXJuZWwu b3JnCkNjOiBsaW51eC1mc2RldmVsQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtaGFtc0B2Z2Vy Lmtlcm5lbC5vcmcKQ2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKQ2M6IGxpbnV4LW1l ZGlhQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbW1Aa3ZhY2sub3JnCkNjOiBsaW51eC1tbWNA dmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1tdGRAbGlzdHMuaW5mcmFkZWFkLm9yZwpDYzogbGlu dXgtbmZzQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtbnZtZUBsaXN0cy5pbmZyYWRlYWQub3Jn CkNjOiBsaW51eC1yYWlkQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtcmRtYUB2Z2VyLmtlcm5l bC5vcmcKQ2M6IGxpbnV4LXNjc2lAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eC1zY3RwQHZnZXIu a2VybmVsLm9yZwpDYzogbGludXgtc3RtMzJAc3QtbWQtbWFpbG1hbi5zdG9ybXJlcGx5LmNvbQpD YzogbGludXgtdXNiQHZnZXIua2VybmVsLm9yZwpDYzogbGludXgtd2lyZWxlc3NAdmdlci5rZXJu ZWwub3JnCkNjOiBsaW51eC14ZnNAdmdlci5rZXJuZWwub3JnCkNjOiBsaW51eHBwYy1kZXZAbGlz dHMub3psYWJzLm9yZwpDYzogbHZzLWRldmVsQHZnZXIua2VybmVsLm9yZwpDYzogbmV0ZGV2QHZn ZXIua2VybmVsLm9yZwpDYzogbmV0ZmlsdGVyLWRldmVsQHZnZXIua2VybmVsLm9yZwpDYzogcmRz LWRldmVsQG9zcy5vcmFjbGUuY29tCkNjOiBTSEEtY3lmbWFjLWRldi1saXN0QGluZmluZW9uLmNv bQpDYzogdGFyZ2V0LWRldmVsQHZnZXIua2VybmVsLm9yZwpDYzogdGlwYy1kaXNjdXNzaW9uQGxp c3RzLnNvdXJjZWZvcmdlLm5ldAoKSmFzb24gQS4gRG9uZW5mZWxkICg1KToKICB0cmVld2lkZTog dXNlIHByYW5kb21fdTMyX21heCgpIHdoZW4gcG9zc2libGUKICB0cmVld2lkZTogdXNlIGdldF9y YW5kb21fe3U4LHUxNn0oKSB3aGVuIHBvc3NpYmxlCiAgdHJlZXdpZGU6IHVzZSBnZXRfcmFuZG9t X3UzMigpIHdoZW4gcG9zc2libGUKICB0cmVld2lkZTogdXNlIGdldF9yYW5kb21fYnl0ZXMgd2hl biBwb3NzaWJsZQogIHByYW5kb206IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb25zCgogRG9jdW1lbnRh dGlvbi9uZXR3b3JraW5nL2ZpbHRlci5yc3QgICAgICAgICAgIHwgIDIgKy0KIGFyY2gvcG93ZXJw Yy9jcnlwdG8vY3JjLXZwbXN1bV90ZXN0LmMgICAgICAgICB8ICAyICstCiBhcmNoL3g4Ni9tbS9w YXQvY3BhLXRlc3QuYyAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogYmxvY2svYmxrLWNyeXB0 by1mYWxsYmFjay5jICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGNyeXB0by9hc3luY190eC9y YWlkNnRlc3QuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCiBjcnlwdG8vdGVzdG1nci5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA5NCArKysrKysrKystLS0tLS0tLS0tCiBkcml2 ZXJzL2Jsb2NrL2RyYmQvZHJiZF9yZWNlaXZlci5jICAgICAgICAgICAgfCAgNCArLQogZHJpdmVy cy9kbWEvZG1hdGVzdC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMv aW5maW5pYmFuZC9jb3JlL2NtYS5jICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2lu ZmluaWJhbmQvaHcvY3hnYjQvY20uYyAgICAgICAgICAgICAgfCAgNCArLQogZHJpdmVycy9pbmZp bmliYW5kL2h3L2N4Z2I0L2lkX3RhYmxlLmMgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvaW5maW5p YmFuZC9ody9oZmkxL3RpZF9yZG1hLmMgICAgICAgICB8ICAyICstCiBkcml2ZXJzL2luZmluaWJh bmQvaHcvaG5zL2huc19yb2NlX2FoLmMgICAgICAgfCAgNSArLQogZHJpdmVycy9pbmZpbmliYW5k L2h3L21seDQvbWFkLmMgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvaW5maW5pYmFuZC91 bHAvaXBvaWIvaXBvaWJfY20uYyAgICAgICB8ICAyICstCiBkcml2ZXJzL2luZmluaWJhbmQvdWxw L3J0cnMvcnRycy1jbHQuYyAgICAgICAgfCAgMyArLQogZHJpdmVycy9tZC9yYWlkNS1jYWNoZS5j ICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbWVkaWEvY29tbW9uL3Y0bDIt dHBnL3Y0bDItdHBnLWNvcmUuYyB8ICAyICstCiAuLi4vbWVkaWEvdGVzdC1kcml2ZXJzL3Zpdmlk L3ZpdmlkLXJhZGlvLXJ4LmMgfCAgNCArLQogZHJpdmVycy9tbWMvY29yZS9jb3JlLmMgICAgICAg ICAgICAgICAgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvbW1jL2hvc3QvZHdfbW1jLmMgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBkcml2ZXJzL210ZC9uYW5kL3Jhdy9uYW5kc2ltLmMgICAg ICAgICAgICAgICAgfCAgOCArLQogZHJpdmVycy9tdGQvdGVzdHMvbXRkX25hbmRlY2N0ZXN0LmMg ICAgICAgICAgIHwgMTIgKy0tCiBkcml2ZXJzL210ZC90ZXN0cy9zcGVlZHRlc3QuYyAgICAgICAg ICAgICAgICAgfCAgMiArLQogZHJpdmVycy9tdGQvdGVzdHMvc3RyZXNzdGVzdC5jICAgICAgICAg ICAgICAgIHwgMTkgKy0tLQogZHJpdmVycy9tdGQvdWJpL2RlYnVnLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvbXRkL3ViaS9kZWJ1Zy5oICAgICAgICAgICAgICAgICAg ICAgICB8ICA2ICstCiBkcml2ZXJzL25ldC9ib25kaW5nL2JvbmRfbWFpbi5jICAgICAgICAgICAg ICAgfCAgMiArLQogZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYm54dC9ibnh0LmMgICAg IHwgIDIgKy0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2NuaWMuYyAgICAgICAgICB8 ICA1ICstCiAuLi4vY2hlbHNpby9pbmxpbmVfY3J5cHRvL2NodGxzL2NodGxzX2NtLmMgICAgfCAg NCArLQogLi4uL2NoZWxzaW8vaW5saW5lX2NyeXB0by9jaHRscy9jaHRsc19pby5jICAgIHwgIDQg Ky0KIGRyaXZlcnMvbmV0L2V0aGVybmV0L3JvY2tlci9yb2NrZXJfbWFpbi5jICAgICB8ICA4ICst CiBkcml2ZXJzL25ldC9oYW1yYWRpby9iYXljb21fZXBwLmMgICAgICAgICAgICAgfCAgMiArLQog ZHJpdmVycy9uZXQvaGFtcmFkaW8vaGRsY2Rydi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRy aXZlcnMvbmV0L2hhbXJhZGlvL3lhbS5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBkcml2 ZXJzL25ldC9waHkvYXQ4MDN4LmMgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVy cy9uZXQvd2lyZWd1YXJkL3NlbGZ0ZXN0L2FsbG93ZWRpcHMuYyAgIHwgMTYgKystLQogLi4uL2Jy b2FkY29tL2JyY204MDIxMS9icmNtZm1hYy9wMnAuYyAgICAgICAgIHwgIDIgKy0KIC4uLi9uZXQv d2lyZWxlc3MvaW50ZWwvaXdsd2lmaS9tdm0vbWFjLWN0eHQuYyB8ICAyICstCiAuLi4vbmV0L3dp cmVsZXNzL21hcnZlbGwvbXdpZmlleC9jZmc4MDIxMS5jICAgfCAgNCArLQogLi4uL3dpcmVsZXNz L21pY3JvY2hpcC93aWxjMTAwMC9jZmc4MDIxMS5jICAgIHwgIDIgKy0KIC4uLi9uZXQvd2lyZWxl c3MvcXVhbnRlbm5hL3F0bmZtYWMvY2ZnODAyMTEuYyB8ICAyICstCiBkcml2ZXJzL252bWUvY29t bW9uL2F1dGguYyAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy9zY3NpL2N4Z2Jp L2N4Z2I0aS9jeGdiNGkuYyAgICAgICAgICAgIHwgIDQgKy0KIGRyaXZlcnMvc2NzaS9mY29lL2Zj b2VfY3Rsci5jICAgICAgICAgICAgICAgICB8ICA0ICstCiBkcml2ZXJzL3Njc2kvbHBmYy9scGZj X2hiYWRpc2MuYyAgICAgICAgICAgICAgfCAgNiArLQogZHJpdmVycy9zY3NpL3FlZGkvcWVkaV9t YWluLmMgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGRyaXZlcnMvdGFyZ2V0L2lzY3NpL2N4Z2Jp dC9jeGdiaXRfY20uYyAgICAgICB8ICAyICstCiBkcml2ZXJzL3RodW5kZXJib2x0L3hkb21haW4u YyAgICAgICAgICAgICAgICAgfCAgMiArLQogZHJpdmVycy92aWRlby9mYmRldi91dmVzYWZiLmMg ICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL2NlcGgvaW5vZGUuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAyICstCiBmcy9jZXBoL21kc21hcC5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgMiArLQogZnMvZXhmYXQvaW5vZGUuYyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDIgKy0KIGZzL2V4dDIvaWFsbG9jLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBmcy9leHQ0L2lhbGxvYy5jICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNCArLQogZnMvZXh0NC9pb2N0bC5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDQgKy0KIGZzL2V4dDQvbW1wLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBmcy9leHQ0L3N1cGVyLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNyArLQogZnMvZjJmcy9nYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIGZzL2YyZnMvbmFtZWkuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBmcy9mMmZzL3NlZ21lbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgOCAr LQogZnMvZmF0L2lub2RlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IGZzL25mc2QvbmZzNHN0YXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBm cy91Ymlmcy9kZWJ1Zy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArLQogZnMv dWJpZnMvam91cm5hbC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL3Vi aWZzL2xwdF9jb21taXQuYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDE0ICstLQogZnMvdWJp ZnMvdG5jX2NvbW1pdC5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL3hmcy9s aWJ4ZnMveGZzX2FsbG9jLmMgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy94ZnMvbGli eGZzL3hmc19pYWxsb2MuYyAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogZnMveGZzL3hmc19l cnJvci5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGZzL3hmcy94ZnNfaWNh Y2hlLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBmcy94ZnMveGZzX2xvZy5j ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9saW51eC9wcmFu ZG9tLmggICAgICAgICAgICAgICAgICAgICAgIHwgMTIgLS0tCiBpbmNsdWRlL25ldC9uZXRmaWx0 ZXIvbmZfcXVldWUuaCAgICAgICAgICAgICAgfCAgMiArLQogaW5jbHVkZS9uZXQvcmVkLmggICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGluY2x1ZGUvbmV0L3NvY2suaCAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBrZXJuZWwva2NzYW4vc2VsZnRlc3QuYyAg ICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQoga2VybmVsL3RpbWUvY2xvY2tzb3VyY2UuYyAg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIGxpYi9mYXVsdC1pbmplY3QuYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAyICstCiBsaWIvZmluZF9iaXRfYmVuY2htYXJrLmMgICAgICAg ICAgICAgICAgICAgICAgfCAgNCArLQogbGliL3JhbmRvbTMyLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgIDQgKy0KIGxpYi9yZWVkX3NvbG9tb24vdGVzdF9yc2xpYi5jICAgICAg ICAgICAgICAgICB8IDEyICstLQogbGliL3NiaXRtYXAuYyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDQgKy0KIGxpYi90ZXN0X2Zwcm9iZS5jICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICstCiBsaWIvdGVzdF9rcHJvYmVzLmMgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgMiArLQogbGliL3Rlc3RfbGlzdF9zb3J0LmMgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDIgKy0KIGxpYi90ZXN0X29iamFnZy5jICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBsaWIvdGVzdF9yaGFzaHRhYmxlLmMgICAgICAgICAgICAgICAgICAgICAgICAg fCAgNiArLQogbGliL3Rlc3Rfdm1hbGxvYy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTkgKy0tLQogbGliL3V1aWQuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg IDIgKy0KIG1tL3NobWVtLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAy ICstCiBuZXQvODAyL2dhcnAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogbmV0LzgwMi9tcnAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IG5ldC9jZXBoL21vbl9jbGllbnQuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBu ZXQvY2VwaC9vc2RfY2xpZW50LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0 L2NvcmUvbmVpZ2hib3VyLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9j b3JlL3BrdGdlbi5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDQ3ICsrKysrLS0tLS0K IG5ldC9jb3JlL3N0cmVhbS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBu ZXQvZGNjcC9pcHY0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNCArLQogbmV0 L2lwdjQvZGF0YWdyYW0uYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9p cHY0L2lnbXAuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA2ICstCiBuZXQvaXB2 NC9pbmV0X2Nvbm5lY3Rpb25fc29jay5jICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjQv aW5ldF9oYXNodGFibGVzLmMgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9pcHY0L2lw X291dHB1dC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvaXB2NC9yb3V0 ZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjQvdGNwX2Nk Zy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9pcHY0L3RjcF9pcHY0 LmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBuZXQvaXB2NC91ZHAuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L2lwdjYvYWRkcmNvbmYuYyAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDggKy0KIG5ldC9pcHY2L2lwNl9mbG93bGFiZWwu YyAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvaXB2Ni9tY2FzdC5jICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAxMCArLQogbmV0L2lwdjYvb3V0cHV0X2NvcmUuYyAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9tYWM4MDIxMS9yYzgwMjExX21pbnN0cmVs X2h0LmMgICAgICAgICAgICB8ICAyICstCiBuZXQvbWFjODAyMTEvc2Nhbi5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L25ldGZpbHRlci9pcHZzL2lwX3ZzX2Nvbm4uYyAg ICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9uZXRmaWx0ZXIvaXB2cy9pcF92c190d29zLmMgICAg ICAgICAgICAgICB8ICA0ICstCiBuZXQvbmV0ZmlsdGVyL25mX25hdF9jb3JlLmMgICAgICAgICAg ICAgICAgICAgfCAgNCArLQogbmV0L25ldGZpbHRlci94dF9zdGF0aXN0aWMuYyAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KIG5ldC9vcGVudnN3aXRjaC9hY3Rpb25zLmMgICAgICAgICAgICAgICAg ICAgICB8ICAyICstCiBuZXQvcGFja2V0L2FmX3BhY2tldC5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMiArLQogbmV0L3Jkcy9iaW5kLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgIDIgKy0KIG5ldC9zY2hlZC9hY3RfZ2FjdC5jICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICstCiBuZXQvc2NoZWQvYWN0X3NhbXBsZS5jICAgICAgICAgICAgICAgICAgICAgICAgfCAg MiArLQogbmV0L3NjaGVkL3NjaF9jYWtlLmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDgg Ky0KIG5ldC9zY2hlZC9zY2hfbmV0ZW0uYyAgICAgICAgICAgICAgICAgICAgICAgICB8IDIyICsr LS0tCiBuZXQvc2NoZWQvc2NoX3BpZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr LQogbmV0L3NjaGVkL3NjaF9zZmIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0K IG5ldC9zY3RwL3NvY2tldC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBu ZXQvc3VucnBjL2F1dGhfZ3NzL2dzc19rcmI1X3dyYXAuYyAgICAgICAgICAgfCAgNCArLQogbmV0 L3N1bnJwYy9jYWNoZS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC9z dW5ycGMveHBydC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQvc3Vu cnBjL3hwcnRzb2NrLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogbmV0L3RpcGMv c29ja2V0LmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIG5ldC91bml4L2Fm X3VuaXguYyAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBuZXQveGZybS94ZnJt X3N0YXRlLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMiArLQogMTM2IGZpbGVzIGNoYW5n ZWQsIDMwNCBpbnNlcnRpb25zKCspLCAzMzkgZGVsZXRpb25zKC0pCgotLSAKMi4zNy4zCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRldiBtYWlsaW5nIGxp c3QKZGV2QG9wZW52c3dpdGNoLm9yZwpodHRwczovL21haWwub3BlbnZzd2l0Y2gub3JnL21haWxt YW4vbGlzdGluZm8vb3ZzLWRldgo=