spack-0.20.3-150400.9.1<>,MTe]p9|+QI͓o-A]j,PXJibݺnp$θs-1]j]3V?|$VK)zQ8T vM~m*E^զ[噴W%q33l#7jzxKOy@Ϻf}J_;]z(%hvLF */g_s!%0|H11mWZS#|IL8ore&4qYg(дP'4+r;>K"?"d  :DHTXq c_<_ _ !_ /4_ S_ __o_ N p_##:#()*X+",#<-%8'09(0:+f0=>DFG_HX_I_X4Y@\h_]_^lbcKdeflu_vdw_x_y z   !!"\"b"Cspack0.20.3150400.9.1Package manager for HPC systemsSpack is a configurable Python-based HPC package manager, automating the installation and fine-tuning of simulations and libraries. It operates on a wide variety of HPC platforms and enables users to build many code configurations. Software installed by Spack runs correctly regardless of environment, and file management is streamlined. Spack can install many variants of the same build using different compilers, options, and MPI implementations. This package provides a module file that must be loaded to use spack.e]h01-ch4c`SUSE Linux Enterprise 15SUSE LLC Apache-2.0 AND MIT AND Python-2.0 AND BSD-3-Clausehttps://www.suse.com/Unspecifiedhttps://spack.iolinuxnoarch/usr/sbin/sysusers2shadow system-group-spack.conf <<"EOF" || [ -f /.buildenv ] g spack - EOF # Replace /etc/spack/compilers.yaml export GCC_VERSION=`gcc -dumpversion` export GCC_FULL_VERSION=`gcc -dumpfullversion` #sed -i "s@GCC_FULL_VERSION@$GCC_FULL_VERSION@" /usr/lib/spack//etc/spack/modules.yaml if [ -e /etc/os-release ] ; then source /etc/os-release if [ "${ID}" = "opensuse-tumbleweed" ] ; then export SPACK_NAME="${ID/-/}" else export SPACK_NAME="${ID/-/_}${VERSION_ID/.*/}" fi sed -i "s@SUSE_VERSION@$SPACK_NAME@" /usr/lib/spack//etc/spack/compilers.yaml sed -i "s@SUSE_VERSION@$SPACK_NAME@g" /etc/profile.d/spack.sh fi sed -i "s@GCC_FULL_VERSION@$GCC_FULL_VERSION@" /usr/lib/spack//etc/spack/compilers.yaml sed -i "s@GCC_VERSION@$GCC_VERSION@" /usr/lib/spack//etc/spack/compilers.yaml sed -i "s@HOSTTYPE@$HOSTTYPE@" /usr/lib/spack//etc/spack/compilers.yaml mkdir -p /opt/spack chgrp spack /opt/spack chmod 0775 /opt/spack%V r   q$1;"cle !&Q4 bZB;!e:95}!I{x=A 3UU4FFCCF,=@1~!.7}ź)tX,rW9i[ !'-0-FW I(UHw; !rYA BWjed! "$G- J%/ e9Vx=X d(ai!z V%"x r)<d\!/J *$%,^ EB`E 13k%,^j# < -tQAsP %!v-2l ;m|% X vu'B' iC M   mX {.9T$ E:l xc7 #>LIDAe! L uV: % !. -1A* tH1S(@ Ml?3!"!ZKi S7p _<8 b0/C vF  !`&xB b" xo) q$e } w-2,v:5@1'&js|oO Y>#Gj^,FJ,)^ l B)I =;ozZ& X*0-=}/Ҭ)fHA %;3N9Ax7/;. r2>,U~ g f=/w.z M!25?  >B"L` $v)0B[ 9>z ,^S*lH%9lHDO)f{,;=-n e. 'h(K( \@`0 *.~=m ;;M; gk M) LA큤AAAA큤A큤A큤A큤A큤AAAAAAAAAAAAAAAAAAAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤큤A큤큤A큤A큤A큤A큤A큤A큤A큤A큤AAAA큤A큤A큤A큤A큤A큤AAA큤AAA큤A큤AA큤A큤A큤AAA큤AA큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤AAA큤A큤A큤AAA큤AA큤A큤A큤A큤A큤A큤AA큤AAA큤Ae]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]eA6e]e]e]e]eA6eA6e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]e]80b9d09644c74c6264195573f69430d9e7a079f076b06b6c70cc3e67678a0a605e619bfa4170f2899e34d478bdf0a8a3588ddb1c13b4d27abed60d114f417e8355b1219192d706b360a5f8b4563ebc0a666070cb8bf7d23e0eb5e7fcaaaf3265380c76625bf674c416a7f6e326107a3e869c5e5bd7cd778f50990df4c0838bd630c82058ec9f22b6bf1dd6409e52b28c2a8d909d56d0c6cc324a2ae86086a1b7f1c5ef95314cadd1ae0bbdd7ca870472f0edce2a0dbd33bcd87fc44c86b9c7accd443ef27b5eb01a9fc76377ca69fb6474f7d1a9f299d114c8f7ef0ee02bed5d17ceffcff603feea2c5ad564c8ddde9f29d386f064c3cdf87f23fff5f9b9b7363308723582c7f9541c6ef24bcad9d1b459c5074168df4d83be55e828071d461f6f25dec10a1a593bd4c6a916fce80915b8d41d71e8b3e5a2d6dc8b0615f3948347b67bfb2093025665286fd54081033df8d9e004cfcf513611c091b74d38f6c908bc4f9b72412d607c914688b43a594466853e0a3bbb05f4e5534dd475b9546e52be6f1e9c73427046bd684e9d83444c09a7aba114c64d42f4c694fdb0cc9c01649fca0901dee7d6d5dbe202608d443c62cd7f3bf79e5af04b76185240599f36c1edbfbe611d18c299a168e3b6d5271306967584360ec83c5995061d018b110252be6f1e9c73427046bd684e9d83444c09a7aba114c64d42f4c694fdb0cc9c014e93899ce5f826abd04efa081a7c9566933a1a28e0d21cfed8f2a30775580dd9ab84ebe03abe7bf35183a16c8fe8b58a1f8606cad6e24b27b0636dd15a1f12ee00a5138166fd055e787e6f9e10fcb1e4f1c452bf1fe2bb2269980eb579f0247defeca91bee94c0feb155e00e9ba77cc267b181a383f3de6775ea829bb527a55ffcbd10f7f4dfa0cf2a1ec08413956358b9a980dcd199e60e0a8375c2ed3cb1cbca4731135fb4225bf62a0158342919ef1e09f70f0be4c14114f36d390a86ad2b6c13af9d1fc5657358292eba97cabb779577ecabb42b4611fb9aae8ae82b75e08b01e330c9ed412fb8a9f9c18d3c1cb85c65b6688529fb40578b3e93469feb86330011dceca2302266118731087cfc04f62560c22dcb30b951630988e464980bc4b42a1a3a43a09c3cc21ecb8674a6911fd7e3500015a3b16f21595ee11bb5f61e5fb1af9219c056738c0d5e96a40da8a05512354ddc6dccabfd0fe5e39fc27d18856f98c5da221ffbcf365472f5887514d4c81cbf5c548f91e1edf2196db1897c74be1a8ce97042b25b15b6bf5d7425a14c4baf2221cd286059450ee35080e4e9be9f4872c0e504aa3039d21c83bbfd626705821dab72b906df158a944e0f0852ef5a4e348a5a2dfc890fdef59af00a7cd0688d565850e127a91f9aed23c400be3dd5a823a4ce900a820c5514b13f0253087cf9b558dd7b0d7e2b6d98d7031ed53e0325cd9b267e84214fc2b789b4a222a55d6917bea71713c0862f62bd7a7f6c194d6db0c64d45535d10c95142b9b0cda7b7dcc7f1ddee302b3d536f3dbe46a3b7cf26dc811202525c09148f3be3df907e14e638b8acdf2c6a92bd38adc7c762d63eac77fa5ff95893cf36d1d6b6b95653f82f81f4a1a9197bc1835a19d0572998e3f3cc4277fb47f96e7d1d1d44bc78980148b865dd5dccec71f0fefb8de2b7ed6bf88d559f2c45aea89cfff431224d4751cdda839dcbd9bf25bf4c43653c326aa3fbac3bd60fefc744d32cb914e296e6bf6f2acff1720467146f51d7f591712955bc81f802cd8d9432282e094f11b4ab04c595553a701315430c11faa67f42bf6464ebbde4e83b8e83da4225e83dbe787a92aac4d537f57bb4bb84151992e56f2581178fb88396bb566ea85d7cf7d7b60a65c673de7e8a9c13a45d5c114e5d314a66d779cf1b14bd6a1c070ed502cc13c47fa71479341fc809d89424c43e4abc5b85bf24075ed3ea73fd7bf76071763bdb375af717cbe6e273bdae8b131637419be567411df71f421714b0b01cff6658ce5d09b405f534e1ee0e0be479c17b14aa6f76f913e7cc4ac819025130f5770ba448286cf391099a5c68482500cec7f3372f75ae07baff50b5c05a3c7de7db9d290e072c1f25fa1b1cd450c636f94d609f98203193cb36b604d2627c90bfd3110cf7f5a64f118f5e8a3bf5ea7b57310a3b884ccf355a05a4aa83df4b15c2056974da08792085da7b17be8c4b67e664610c2efd020d8d533ad8f8f4e17ce26c9e8ce9fe2c209700a18829a94a9155cd9abc6c2527280cbd983b41130e366613e1014207a1329e7434089c90fcf3736997a9e7887cfb86585799666770f1da6a9e407e1c331eadb82982ca52cd6c45fd29bcd231b24844d7fc2973764a27e4d1d58d059197763796240a657d5ccd77e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855a5b09943ea44e99c630ea65f59652150579f5eda5e908538a92fd80cc2cf439dedd335d2baa94150d6d32fa22549eaf2b69b74ee56c7649ba392f035ad085e5d72938730d4add360296d342d400c014cc79666aa74bbfb31f9edf11fe8d3c91eea781bbe75a715291b7f927674af3aa6adb1a44b6bc3359329f278694bd22259882115c95dfc2af1eeb6714f8ec6d5cbcabf667caff8729f42420da63f714e9f09ecb12c655588010a2ac2ce2da89ff2f177becd5adbcbecad154bbfb78c1203bee17135bba53fd43b85fa4ee8b6f903eff499b1093a2c18c9e7e3cd732a55fb7c2044765616726237b029e9524da9cf6d8662d5f3a93929e8d78ea5d23ae0f64a50e58ba018efb7fa9f2f87ee8cbdf0e9108ecaf0f83fecba912e12b215624175cfdd35ecb6f641fa28b535993d836a4abbb59de405fcc41b0cce983cf0d45fe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855a0ac39d42ef61e1e39c13c18bc31c93fd91b89cc62321311e18e46bdda4a7474e1a8354b2543d879b73d82a2346fcd3ad47f7bb7fcd47afa1a2365e18bd7a384cb5e8e7e5f4a3988e1063c142c60dc2df75605f4c46515e776e3aca6df976e14d9f1e317e49f80fbe3c8d67588787fc23a96751fd8a393831f0642d232c13e176eef5ddd389fa0a72264572a441bb2815dc64ae4e19d50ff9b620ae1ccfde95b5193b52e3221b4508c7656e2cf7f608f7ada57e0267f7481c331b37c0a62307ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8553b49dcee4105eb37bac10faf1be260408fe85d252b8e9df2e0979fc1e094437b5772639d357e9f220737aaf08f4dcdd4cd757de8231afbfec1e887310c07d69911d80624a8bb3b5cafaf8c8596fa8f344a95e8cd6a1f242bf06b7c1a655329538c17094a62e841ad8f8c974d70ea70694981c45344f6b64dc0c17b39bddd3fd2bf9aca02563122f7c911ad2e1b3002eb2098492dcab974f912a8be9fdaaf362fbfbccacfe9a04985e67d70fd9919a2d8153407a67ed5119998e5c2aec3cacdcd18ca05c9d045fe476969128fa0ce5c97932f8aab9544b57266d7e9e7ed7a8e0daf424bd2f7ceec73e5c8a64476be9e56583b1e8220d8e406989ed279413201e26e805c4b0efc87e969db461b697489b2a900236b8dfe60ff4ed0b27697aae705573db49e9057e7e4941ff7a0b90bb1ad240312c2c58e1a34a9c1cb74c858de108a81de1eb5b009635a5d7d629c798755b96f73885a3bb017b230a9dc67d6bf1de384a30e3798924c504e9982d817ad393c4414c810e36a7675f4b05e63c5712a8eeb0a4d96ddd1d75931a89b664c4c51528db0eb1a62d3aafc897c226b71e01159e91ec4caa5deee67def0f116c43f8bc1d6d23db802d8d64e3acf04b5ab1f0ca8d110a83430ff33b911a1faac542c111ed0c27d9dbb4a36da9ac1f93475d471d4c8d724e53aa78572c05aada43661b6fb53fef2259879d928c2871f0e12673018d3c4be27e649a53708cc656e17813998de676efb1d384e3d44dfd51929a4a4282265ef532882b0e287f04706eeb1579a7b0abfe3820020bbeb2129383a2f6f8b7e063d10197b15cc4fa6f0b9fe52132bdd992f9b442cbd28c8f03793baa639b4790cc17c5f6646df0352a62dcaa604c49acfb44b22fbc8b6b25c3e85d3c83f9079d4f2ff761b031891faf43156a45aff149527ff9093f1f0b52c8103287fbde3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855c1546590498080d53aec02100ea2ef23a52434b9330eaa4b03ecf8322def9778fbccf147a4cef6452472201516c20abbc3aaf82ecf4de604759e53b40e79fa0c026e59e8b99faf65da1ff9e921f249f0c757b56b1b2e33142d926e953023df41b9d43158829aab8403099897377d6780a39a18675a300e5f97424c68cf85e9f866678bb938faea2737e7eb851fed66d042978b0e0e6c30dbfd6b84ea1e6f3c5809202e6b70f51ab012be1940278feb999d0afb16ec5f0964ba74eef2c4e195614f92a015a13c4d1a040bef018aa13430b4f1bc73b41b16bb846c346766de7439f3fc7926b65c8696d1d60df58b4dcf0970ab3187ab9bd8052f1b00cfb927fa448a7e1b6f37e2c4203219edd1841c214156671a4aeeb3335e75c6e6c311b22607bf00f5bfb4bc06626f485e72d28e9d6cf823032cedd3b3d9a723b7a6f35556049187188877d157e690b4842fdaa7bfef52f7405b372e2277bfaf627ed7803781820810adcadfe45468ca181d13a8202789f61501c4cd64b8092f9c9bd6d872a2b769da45186e4ca214201d06311f643a9da56b6695a9e4f6b459550286e776687b3649310d1e538a0fbe44e6662ea0e6fb02b4815185bf2f37863d4b8b90c16f50361ac29c4af1ffeb21e1015d9b70af4b65c62dce1f566dd9c6b4cc0c6335d9034b10af10c15474b243ef2bbb72f5d613177f7abd815b81f71fd88076f847d3f9acc0526acfef97f4ba3d31db311d05cdfe0e1430dd75fd5105430b28412919a24444e800ae7b60b41ddd5d3219e96746dcdc0a1974377c730da5c139dbcf05dd573ca6d736183ef30f12b617e91a9aa9ab13d7f7e5ad8a543191d69d5a7145dfb81203c326011eb9ce5ab3b12101fb439b664fc8d9317bcf5929f739a4b248ba458813b684112f0a87451a50ff6dbaba54915d99cd710df02c1f44e6f394c03ddb42bb6b34e956b7855f5c5f9039fabbf27b9d12545fff36bbf11b4beecf3d3832fed16de4bfb326a8bded9b718982eb95c4dd5034ed46b41729584de893dfc29dfce9f54835c3a06c03b3c5d5ec0eda77706568f9c4df7cfbc7566a51006d3d5392088261606c559b603f385329c9f1ab45b5d667eb990687453b055d405ee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855ddcf9bf422b471d19f86db94873335023b6a3ed476545bdf70a0ba1b68346bedea5c431ceca325f0a3767f6f7ce2dc5295ed365d2f2c8963ae29d2162d6d4617763c3b643eb39b9ffc160b00afd5f2624e3312b204a0f46cf12cc17b99d87166cf0f5b77f6a5e733b3026f2727422a7b29a2c1e1fa8bc93500ddc207bb7ad7c0a1bd100e8a7f9f047088bb353fab06b1fe992138a4d3409685ed692fc251880df2e8a9960bd0ab9c85bedbd6c5bcaacabec7318442c7a8cd1373a253ebbc0049967b563d9f3a7f0a3f68d29b7c2b9e5f9476c5dc2b61837b668e42d3ea6993ed47fce1b03286e6beba2c4d4e565cdd70fc8a4562a0734edee8d556c5092b4624448653432671856c2cc882111501848cbceadfc2e5cb3cf3758525f63c73574325bd5bf5a4c69edc83d353515236a029cca3aee41e038bf1ac16815c03f9cd4547082ab2bc0184123ec9f10fdf80c70723ee68f07d44382e17615c2a6ba70b0945c1ef0f39df8f05e44db30c59adf550e5370b6e9198854f92298cd8b9e9ad424d1fb9c47ad503f5e56a914644dda12d500df0dd0714396ba41c63ca3b2bddc6e78c4e16ae10726bdb0ab1057ab6804fbc32c5ddc13191f7e706ce8aed55ee165dcf1bdec46774ba29d022c21dfc3d1c8e00378a12d86732a1f117c8bd2b27a6f3414bc0185eccd4ef5206be49baff88b0f643df3252c8aebfc88c57a7fe24a765bc0e71edc8934df832b5f28be02c5346f817f367ed71e0ddefefd17350c4b2c66e3215d69dddf23eaba658fb3372216a9ccf13e6117229221a36da9200d2d12008eaf44ef8b3f5b4885571f278563f01774e65e6262aa2190bea39fdfb25b1a89fa75a5fd3ed2e060de29e945f7f918d8217700ee4a14736b0d116e312f8f9408bddcc8577e00b4243617142dd62ec5cf6791927b610b3b7cc832e95e6f2be206e4c120a7dd7f7799a67fe09eda3fac21d216c3f3ec0a499577ba6d29802121fbcc60794d9bbd63cb192243eff01b462e4720cc74c37c71fba06795ad22ca8051043c70521d8e2dd06065d9e1387ce3893e8946eabe3b23da779fb8bfda6219a439daee7ef15ade5923c4b4e4296d2ac0cd7d7ccf7f6b98ca07356774fff61d81bad4c2d82fc16a4438b316ed9483e53b0014d42ee79a0833cee090b6f9fdeba79930967d689819902314532ac1de06121bc10b3f74d03d9f260f19eea8fdfa1c94bb7f1bcf515d70aa94d2c25759fecad3b72247852e3e986a362e1737dd4489a8e1108509ed98a37bb983e11e0f7e1d31f0bd8f99a79c8448e7ff37d07eaf537b3e1422523b27afec41c5052b574a9e24ff6fff1879fa46232609dd2af6419328457e6d6819b928e496130739844753d9340cc7b04dfe6654465f91bba7b0830edc1a576d43da762dca99cc433c6fbe9669713bc8b3c399e8a0dad60e2ddbdf302b0e81b01744d2d45e4caeca89c6f2e1162985383c3a8db8c68310b018ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855a72d1c2da9cf1e36f167d2e9ed513171963788fad34339d7073e86a4c8114a5ed5c38d2c20f36f20e867f75e7a4f048bf8aa38b238a0db1e44f2c5df3be61280c6b9727aac244501f1b125d9128211fcf9624014ab322132f13a6ec91a5ede666c48d7dbc51859db7eeef12136381b6cc22159963740be1cc21092c422910ac43e92f1e4c0ab7b782e4402e69bda6d9cdffca868472fa3927d610d88184c6578bc7585061e0569e5d464ce0f7eac35663cf891a3d3fed7773e61be13163792fd379fa09bb9b420c0ccc6df675a27605d20555f29e20c9d1d275fc9f7f8a9f5401b92e0079fde4ffa4e3a4a8b999a861889625688678c19595f3a3fec2f6aa6a4da6ab3e7b3a377b06947b9c92eb6cccf7e60e35e295bf75d9c811fdf13d344ae365b61cbc7c748816ca14b5e19573229aa3df0ea99919928ef1f40c552e1c6f3765b5e48870507893de55147a04c1b074601b0ac2612763624d79aa57f3b870b92286928f19cb9dae3a3a850a6787deb930b5defc33dc133cc9dbe47aa38723173c3537237520dd957482a78d27a0cb0b2be671f2c3c05a5f1d59f6ccbb2cdd0ec42ad0b59211933a7ef4d8f5f9c9abae6aa0f5099bcb9192510c68aa32f43eeb58cf8730a241fd318bb4900c1a7eb971f94d0827222fc4af2b15b45d7bf2008fc5a263cd8468473b887220568e78da5c6c689744b0fd74b7478429cf62889ed085f4a5dfdfae99da197cedad3d33a3408970e9649e220847e175d25b5143575e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855bb3c71ab5d4b1db84072c34f9f10ea39190f8f2e872261ae949276cc505d44bd5a0f3eb3cc9e668f9695173ff938c10a3595d9ddaf6ddaf0e93da85330fb829bcb15c8c04f022e52cc9e676f046643ce5e224367651581e78ad25d5924b3b042ab837b032c5aae84503fc0c733a116a26fd272e90dc4402fa68d3c9e51aed3b0328c17581c5524b9a4001a26ff3a01b8b28cec8b0e254e655ae30de0f52c3d56174d76b7c7645faf65fed700bf67998ff201afbb327c00ee635a5837dd871c6b57422877ced1a5b68987385425aad899e604d729f2e4ed98e3138e225ef5ec83238a2b361de796817c814c67492627d88571a94956c4a83fece8bdfa6cbe18b6be61bccbe3fb6efbb75bb32ce382a1a4b466fb3619a36a11eb207df303756a3b71e197725956c97ba3dd9325c76e74a9cc8ab561101426731efd94d33c466c69432c3d4b02dc1e1bf3fddce2fab00ab175580321052cdce8321bc242f4ba7a8e7b2968e5c90f955940cfd8ff50601f2464e99cdb276f381c5c3e9d643fe590921d038dc8ca755cf2b51f63317edd9b27eec213f23813702b39cb0bf35cd3e44e1be6b1c7e23be41041fe3fe44f2a1e4a6cad42566fb9b38b49ce816807f09f8099afbed31da98fff087f81ff521d71443d599e31fa801c9d2d5fcc9a92fd92ba70914fbfd4ff130236aeef01969679e4eeff08dfa4796be8b872c8cab500b8e27935a1eb280fb2bc136955365da6ca7af6eedbc3ad5f8c262799233ae6749cef2c35c0a6f9c4a8331969963459bbdcf6cc844c434144a4084a7f03dffd7cc4482464429fd69c57cd260e211ebf3a11995d1dc1457103d2c470b947b6a2bc750084e0fe255d455849698824f9be83e313a43c5275f3b25a28e48718e761394925e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8551a4aa5d6e66071789a598306757f9705684d04ef4857cf7a48408d5f286b3180235f245236b45a8e32ce2b13aa803f5e835e319a0c5de336def6da713b66d9f2b3e2da26eee0b08c9841c67863eb16ff2df060144b29a0b55d36f3e32d1707c3658b244244c18c2b87172dab8721f8a723ad508e426b39861cd075c2523f24fa194ae0db41f5c8c15f432ca09ae0c89abd4029b193dc739315bc473f3162c3bc4bbf3146ffd4fcb4faeec0895b235594e79840cf641ef020584ba191db80f7c63e0202d423a2d4ca5fd5739f5d68eeba901107f3c6e6735a780516b945f72512a1b8b306d1f36a1a2824ffabc41509c77e56a1a1ecb0945931d6b17d58fbb1a6e2724393880e71c6874b3ea645c11d868ec5e256255200d6aecf8a347a13e63d7e19b983aceb20cb7f2037052284e19f6988043597cd6ae3e7d4e3339685fbd0a4a2756581ad120694ef50a7641e147c54b673a0d457061fe5b7e7b836d006123d2594c948cdfb7c5eba0e73f0d8f0e67b19c946b6774790500c5165755de4d88bb850c565aa389fdc16f3a46965ad23d82adff60f2393fc2762b63185e8e6c94ce39f422ee71467ccac8bed76beb05f8c321c7f0ceda9279ae2dfa3670106b373348364a59d4dad8d62f218e419dc4bdf9d6ee823bfa6676010e95338f7543b5afa8ead11ed11b8341a984605419c6ff06e1dc0c2d0253822985e102d4f3c15bda51dbc4e2e02ee8c6530d4a4ab81fb2c88c5dd60b29e00862365943774076c9d70c5a837efa62df7ee37df1c70ddffc0bb38e38df29ddfdcfa01462407cdfbcfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d309001ad99a662075a0e5a6a9a539fc75040d8063c3f7251d6839ca40b5234054ee4cde689db78d578185bc2449a440ac6045a287b2cf965af7f62c75ef6e5e179997437961039414502f3102c1cd76e4cececdcae34b12d1ec710deb238d927760693b8e0cc2e9cd12ef9d5aa7e08ef6e88e71236620d9ac245c5a9b07d33a8ae710507e3c03b19cb717cba5a6bbced70328fd152f700dd1d6378fcb4b39f26392a04e9259401f2c5cd2a3aa15ef6ae2b44e18681eba2c80c749ea530988452cb1ab24f6965faf85b687a9177cf61bc4708a4681fbfb251d54f9e32150b4e2d4d4dcb78bee65420a7c355fc9f4f97df3164a156d6e7077eceb07b79c984fbfa4f12aaaabb9601dabb1e676e1002437fb3777acea95e8ba1c96d830da4b36409c9c80011c692a8df68ae549776339e8058159c70d6e9baae265d7ccd69a628f8d19d70c5a837efa62df7ee37df1c70ddffc0bb38e38df29ddfdcfa01462407cdfbcfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d309001ad99a662075a0e5a6a9a539fc75040d8063c3f7251d6839ca40b5234054ef4247dde07952a5ff866b24e45b5cdd1fce410cdb2e038255a1635867f59c10c3721087fc3c12923face645aa131ac60a72650510f00c920e6451a006a857d2273a59f86b7e46c69f27c352c9e65bebe653872c40e7cdd122d607fd259ca1f5e0ab4d74339a40e681fc1e2a32687bc9e4b11ee170ca259143cfb9da6c3895bead90105198651fdbba6d3b9ac33bebc3815584f5580172a0387dd1cdf583b40c645389d57129c248f8a594497c0737c073096044e0bfb8affd1d27c76e7e73efec47b2a5b5dc31742c59a58806bb6d6949186d44468584bd3f560249b23e8d3937cfc81465e1015a74cd6645a3ddec5629fc6eaa82514917846f68772b03ef6ad7cfc81465e1015a74cd6645a3ddec5629fc6eaa82514917846f68772b03ef6ad9faa51e5cbeb2ce9ecfc53cf990a3734bada86562b8a6acd7d475cc939dd1cde99c6ed355e784c5e9c65aaec9e7504a407b4bf719cbec8cd0efe30993135c5a492ff5f4f9afd67c7ff99752b733ebb8b7b2f901c24a8956e8798d656b1f77ff3ca750744d25a782994908c093af82c422895819cf7dde537420848f0ac602a8ef288989c4ed7877d30fecf2619471af58597f9ede941356ceff18b213dea1685a0e7a0b71a50934ef51349e919e8f117f9267f50a2797be70b84d600919278f40c1ddc8b107e138c51d16f4804ff02ec2602913f7b4006bed46812b7aebebc8a63da8ed19e4af6e758863ea68533033ff85f5ab8c6130fcfb81c00073111470043679810b5dfc868afb32cc42112799f72a2ecc87452fa011f3c91de419d09ca1b100c9283fcc71059da44429c91cda2946cdd2ae71ed65c65de773af803ee6ea40497d40d338f479687ee78cd17bf5a86ebdc4a39110e3bbc46d403b0e0dc46e62961c9260aa8f9da92d2b70d1dc147f364eec678d204a66eff88fbce1f99d8cda279f70f196f8f6d00394d490e6e8f27b38b7020b7ab293520fd6a82051dc193f1a622ab1303397f4d675f4fea5ee6db59adde129b3c79d3e417476c2c9d00ecd93381f986722c1d39b7ff5a16b1e2d27de9c3cb750d2978f29e3b60891d3cf20044bc13ec010a0f97e2a82fd461ffb8fecef61d87825c6f4ebfea8c68b1d7c57d68d8d0818ea098d0c8697f79f2593e84fb0bc97c530a18b510dbae7d64212dfcbd779dc81603bd54cf40f61736efb465aa551c6d8bdd6cdbcf877eb1ad1d0fb5ac9f17ae0513cc4929fca2bf12d51997138dcf275d7da0d3ea19f5c92da86ced5b4e7cfa752edb72ac20ec477568f459786bb56f2fb9acf76b95c2a56496e1610e7213c6d637e8487e79d272571dd520f72668011470b75aa3e2d165cf691108fbcdfa05de71d347796840a13d6b399567be7b2d68101850b439ac2b3d3694574afdeaef4409444a48b9c633dac93d7f806b07090e63d93c13bec238f4992a1ebf99f638044091c044053e16069e05309202c6847b4835697ea5f20ad9b6dc7efcbf33530b61502cb98a9d633e4849c45b4ed279996590b7f067e7bbd93d7cfc81465e1015a74cd6645a3ddec5629fc6eaa82514917846f68772b03ef6ad6243905439ba4db269a90240db094443692834c423ec6de2d734a7157addf2b8d74d775f1575b84748f031ca054b254b7604ccc10f22d18b60ae93226d56c5a02a9ce3722034ee323d42fef667271799a05c659fe8016c061fdd12ee1105451660562edf00e31e164698ea602d3bd5d0f986457549e15c51e435d85181cdd887df44b7fb3a0b3be2be56eecd6e19ead18196a87c355f1bdb5cdcbec73baec077f002cdf1e4082c6a4fe266a38eba63ece0dac0116647f11429e5ba30a760c84fcba91344da73d56534a26f6ead2326651f48ae4dd1cd4498cf2080b56d47bf47f51530241cbe1bdc902b689a585dae935fd8c9938c6214021e1e4e360231b7cbb47a82b2b66982eea02cc64083cc0606e1982797a0f2570d0b2564a5f87a26df35e5aff82591298d2ed6f2a9b6e8aab70c0fcd990ae8ac61e24c4eec7fa1996beac4f491345d2a657bfc4f8b74a9f9a932ac0079f1e416b16d08d596ce6fd9d630ea6d8262ce186838f5f1aa8bee6802bdd719f7859c5306169c70aca486d172b5f82f41776bab3ee3b3addd279ef01f074562cfd5d431718626036135c651898fc53417fcf7b84e6d2aec564d0ca73f9fdafef40e7b3545bad9770547d0b8e03bc64bddf952e20fca89db88d7a6649a9c64e4cb79cfa2278dbc5c434afa1bf5a7d821ccd7f338545a4b3019a039f784f803597d382b0a29468324617e963544145d063c7051788add263f335b4fea8873d21508ce469d5f8c469bd8d7e38ff37146d85ee60de0a4b8aa50437e911a9b8e8e144f7919a77e87a9bbf4f25a306b1f7c02030b46773b83303e7cc449709111ec42cbe3b013b0d19b3e952db310c6133df151e0b541e2fe404445f2d039e204c587c1ca0b56b9af96fb18fb1a02599d954c18767ac9deca70b96321608b9602439e041beb8cd875c3ee2de83bad8556ec41de56645489e606b21780304c1bf746158e143b9086a25f40ba68291ba104cd3bf2eb9f61d134167c3836e9fced022fa6df865306fadfd8bb2d8fc7fbb0195abb276d0778011397e003664dd0e823479f03b8a0475815e17c0de536652071671c1cef28afd3f81a6604f214666bd5dbec04b712a8a7830bc1a1e7c34b00bc090fdb316029b7766fbab9d7a6e0df9c91a3306c07e6715db4240f5b5f2e18f6b43aedcca43f8ed99475c835a0071b8cb9e46010bb2529b6b6eb9b2cff57cd5f0e3d7c08f7579d22366fb7adc6bbfa4264c05c5df491e038fd607c958b09b91b7c85c3a3be43dbe89e011d5826c8081956d703170c010c3543fd96b66f2c102f9d2ac6ce150271ff9b6faba821d586f3baca6d8dcd41d76accc504cd22f5485a12212b2538a588d0e8b4b1662501e076549701a719e44b63a328608b2e358d71cee4d7babf9cdb46b031808faa9587ee8398cf8848f4f2f71147674321688f78b2b3067772e14333f66c183616b10f6e40fe910588505cf19a2dd33a1d0a591d59a5949d986029c8d7b4012e8f31a443fbd0fb0d5622d8245a90b1e6070cf8ef682957e1c3e780e5dc52b9b813f3e69d5123381e89674ff93a1ea970d0ec5ece5f12b1f11365217ea5871affac3b274db8d8549e7d415b955e1bbcef7038f857b0710ac3b83885ea026f0de7dfbfe9f61d409ecc595e37b0963cad530d04c55587070cf076fdaac10cb68d0d18dfa97ba6a81b4563e64b2d1074c3b8ea218b058d2b2a3b14d8c3e4440f5aa055c7ed7fc061464ae5f9c11cc9fab08a89cc3d243de4dc5287872e7a4f6f8594b33debf9a625f1c33ea4f0ff4f9c760f18081995db920ca6ba1bfe7342b7d16737495ecad465e247688aa12b389ff5a61698251fbd4aa236a406243bf0148b89ffa95a34de21c997686cad090804a90112d434495005219bacfff2c3a544709936587fb2943292d5322867709861bd97563b7f213287ed8ed2595dbc10bd1cddc3cf92eb533af581eecd4c247895f96521a4678045c2779c6416451aea0915f395e702866578a70d699509a056eb4aebaa4206dcd7fede511d97d22c8c161eaa54cd5c626fe55a23e27357e2fa0713b950503e9ee1154e0cec29a36b8868ad78e3e92738475a81962bf77db48155caff2afa47c79e5fa3575cff35233a6614af469a34b6283d637d4528a3634aa78dc5ea576a248d58c013a93a7aac1ecae9ed039bcc72c1ab33d6897c9a3069a65bdb308043a73b5d50fb156c5c0ed2408597e512dde18d7bef7e09a5b93c2f3396dbd2701d2c1582e7577da92be94294c35037884d7361f3d4dbc4690395dd8c85b593de8848751bb1aefb08935fbc9bd7c62e512a995ae8cd0459038ab068eaebf9aa060cf594804f23f4b52b498e6d31feb63a5e0bd158c29c877abb5204f4a4d40c9a64e7bdab4b40c73481424f2231c3d4ee15d30f4c013ab47d33116fdecf0466dcea0b078dfa732644b7dde4846180579130416f17971598fa8b72ae89be243b4c2434712615f999c0a469ae8c1b61cba0f1d550ae0d4867b562687aeb15ab175c0a8750c578945ef415f4b4637e7b098f3175fa068b0b7aeb664c41363650d1cab3caea7c25879bd59b18cea0c5111f41477c5ce8c9b7e3b3b8964ce15ef91cb9bd3bd509d60005ffe0d5722c9a80b1efbbdbc03dd541d157500c1b6cd719a8d3cb3f2bd965f54dcbe77b79137b580a63169470ecf6ca1202b4a939183486c862d9111c373a6f52ecb39aedf0c9fa7a0c941951666157644806364ff9861bacf4ef770472933dfc4ddc773abb278690b4a78ee6c17bdaa0d2b6e28cd470ff0eb2ef173c060ca2bf3d20e540d8ce754e7d4beb1a3907a3c947fd31cdde8ba85aa9223825bcd27d3c379eda9c9b7d2acc5c1d1de4892a71e4f012e4f07fe7ee5dd7a50567397e207c11f442d86b6e65bcdf3d0315414b95746f97c38c4bf6526d6be281851acbd12e56a3c5a0012a1125971e7a889a77c110553d25991a548b7f02579b7378b0ec3e529644c4a5f3e55642cef070d6f8959154b911950c89be67941b3bc026f25b0667e01762c89724ebf726e2f316c2fe8178e40becc7101d2533a829eba93ecb542dd250810f04efbb208f629a9ea475f1a40a32b61650d2d3f07730b18452305bdfbe58cd7336e454f05b78e12cb9dacb781a309bb8fa8dd8a58251ed2294069c3debd864cc2419f20158289e70cf9cd71914555849bb8ed81314dec7cbbbf199bf71fa166b394c9934a307e915421d3daad70562c177c5a517d5ff124b480f21d9b2eb29b934e58f9d6a21b5e217b7996d0893aead945c6c0d790c39d2432eb8dc51cea6b91e936af3fbe61babe53283084b49177dd6bd372da63c5ff5866c6f3b763c1a7ba99091ee2415417d0535a9cfb8fc31aa67baaf3e4cfd6624caa9412cc41d66f62db1cc028c2047219fee842ccaa738d6b453cd7df4497a87d65b27dd4be6b95e53428f7632c041829dcb24f30b54912193701eec9091f0b53893db9c1f745f1180f09dffc838e58cc7a4e91e2dec3ca6c6b960877eea36c7fc31be63192c5de229e046b86a1aed5e7784370124c06cbf8531f8d137e06af3a113835a654eb9f0e85975f5fe650840b6004f3a6adba6e8dc1bf44061ff90fcb2a3cd506bd3c034b9670fc581b7bed90a46054942890d5f2141703eedfbf364226c1b313a70e20fb1e1ea036e7b4a12d16f056dbd41787455fcd8e46b18a85cfb0df9be79329af2962616c7731bf08856e53e73cd04c9541a167a01dac26e4fbd09c4d3537a1eb8d7204fe35c50064981aa51fe46fb25223cb20f9d195ee28af8d1676b62c895662fbb3e910368f24fdda045fb7f1d65baafe2bf4552ef2a6e734b2fb65d44527090fd616f616a34a7d18d1b14e90715b97c849d0ea80e2b9249c26d55604425f8483ee78d249a535986fd2b3b06c0c123b782e81e24fd5bc4083143aa23c182d3c803770c62329e9406f95bb4cace4fa93e6119ba2f2f0270fac3f88ca7ae55a2273deafb73654fdc39948f27052e01169989a0c30c87e2bd740801bac8931165b3ff5869074d3995cf083352677abe3bb2bee8fe06f54bab8bd77d166de15c2e87e9ed795bc84040a52470a20f214d88e2a613abba7118f821a050364c7e74843f6466ded9dadf483fc4d3cf20250f964d7639a4ce84088c1901dc9be770a1d49fc6d081e3b23b7d4e41fe5edf508e149ac2797074dea7b924862e04b1ada06df1d055f90468cf09bacbdf2daa8ac55f2958756e2e1904499693d4e9483d3cb8336ea2b2a842a5df2c739d92df1374de9cb69972556941081e338a85b0f10edec9d48bbb3fc79021032569b721bc3ec15e42306ea39ecca317cac40347b2f40c8da7b12026062a2b4956a1b0869f5557cb4c5a725cbb78331df6cc33472b991371755ebd7a18ec5048583d789e84b9324758c2d396cb84d6e5875e424e056bc3b947d14aa3cb4fed9f7d19d23b0fb4307dbc8ec910b78f61b0046e8e920280d8d4773f50b5f37e28c50cb767799214182a48ac04bbe309232e96cc22d7a798b0974a8b1e2befceecb15b4f091de04062693f384a8153f8541bcb601a2ef59c1d7ea841a13633da20ab6779f38a2bd9ba44017ee1bdae503ac2303a66faf87da3e9dd8d8f541139f6ceaadf9538a7b4b0eec4154f70be8f9df1dac1acf2ba521f4ffb4253565d4f49458b5f567ccdf936b7196e83fcfb8e426a493aa88d6c0f02a38b46e1166e70fbf12f608261a3604834be7bb738550b91967cfdf56367f9d432e37911b29c57eaecd968d25da345bcdb0da524850f17f21bc2d762232460714628a4796284fad687cf9c5883a08ce766c3805f8de8bba0c4297462b7ab0c0082c9322ff1ab992f98d313c3113fbd339b32987f46f76243530e7d6afc6e5f1d48ac4b408c700f4b9f70997aeb558fcaf7ade1955ca5542b628e1d8e9a6bc39bea985bf3a84a95c460492529d0a7dd2977ac8c4f0237b67a081ea8ec0c9f0f00965b4c05a962255296938de35a4ab78cd95fc9dc0a9f90b57fe0712dbade06d5671ce1ca9e07975ef9fd7c2e9c7764a0f1dd23ea8d16279b2b5dc4f973827dbb42866fe6d72f8142fab268f0eee8780603b9ca9b7f1390454a77ac01037ef67ad8e4fe34f2404a572e0b4d6a4c96036a21757a05db1ec037f109f9e5037b044fb0d6dd9c9d1f75d95f4f18dd19f7d1d8b44e6c298e3f0b4b7c11ee4529eb5b88910fa872ab03caa73f15b8ae184584faa3c5afbd8b9564e09f68a2a588feb62a307b9010e676f6478b2020e16019ecdd260d097127a7bbfb0de54e378682ec074ec249387a3477dcee82ac3f74286b7e0b107782768aa1f33d9a6de9fdd3b97f72761012432562a50b2919984964bfce174ffbcce0fc8ea130b3550492c18b9bcddbb223da1ad2b83754cccbcf5a9f35d8ba3513973ccf1f394fb3ba5672c16ee1dd9372a90fd437fd8feaa40f5bfd6516cb5f3462d5845b9d570908b19dc703a81e573c127b74b0797def29d2f35a7684a25e7291262e74b719b86ef2847615e302e030bda600e51f99210b91f40b3fce26ff082ec935c287fb0739ff0484ab582c8cba7b4eaf9b365253de57dc3b0b0c1826e4aee7f9394ef4cc1ee917f3c30b7d02dc4bcc25aa9545eba12ae249de2bac3c3916a2590eafe4369072dea341c83d220ba1d7e22228b849ce6c7ee8ffba471c612231e41a94469018541010b26e2d6fde35117c9b1cc2841497ff6bef2adb4d271c9d3db07aa509cba5c1b009ca68df819d5739f388aa0c8d66309fb4d2a2f4b79550e30223a1830758fd6be2e7b9921c73a1e8d95dd699151c68a0724c45bf54102c98e27359f779b333539bd97027e52f65cc70ab24d17b9a3077be90ed49b9308ddade35ace19a980bd71fd0ca21962a86dbe2597ce92e129035274ccb9b91f51c8bf935e765e49294aa87f15ebef0ac10e0fd10ed0492c8f0ced9112fce8b93fea92e4da4493cf1a4eff05d5fe62ecaa6abf16c38de8bcf8347ee7c0dea895a04c5cb415906122383b90111b671ae4b2805261f88af90a7647f898efa6312f6cc0d25aa155eb634bb34ee5f4e04f6964ae4b70cfea41b5733d9c3ea1faf1e24bbda3799c7a21e916fd5bfa3c7b8fb46b1a96754685ebc17d6b801e8f30e1a3894ed7b7de5f7f00d344fd912c94debbca7c7c440043df9f31f752beaa4e18b14f39e162fcf969a47475af1d1fc5644d4f50becc92ed2151e4b0d5a46fcf88a68d3fb24b90161b3f6aeb77f4476bc1667c83cdb35f0928f04df03812b4e10e40927650b4478dd7b9c09213641e15fb4bcd54532c6db65152c12c1c7a4538df535e66dfd12250860ca9ac0bdcc82a3c8a0355fcff908fbc1a25625ab0cf6f2ed288f5d7a3350691acd156ee223db9b99acdd5facc3cb889517f899f1bf0ba2093c270183304edc3df7148d7f6556a93cefbe1ae5b48020bbcaf02c7e6933803b6064d6fb74c9bfc55ab3091df3fe8701efe496ed997cf053bf24faee99a3b27ade843227badc8264da074c4d88cdaed1a7df8dd6c42b0e4d5a31502ed12e0eaec293488413114370d236a16444157d4562d03d592c5184d9306f12f1bf184a3a565f9d1d245c28b25540b5158b4b41bbee51d1d0c7b9708c2b12dab2d3dc7e4cb8821c5055635fec8003302298cdc7ec92fdccc0a425c7ff8f35f3194e4f80ee8daad2291aeb33857aa03381fc8c060406c480b7704ebe6738421d66ff0f6d6e4462e3d144eb87335a301aa4df0d9b591bef81c42d7ffe057d937834f408ed95860748bca8ecbe8718b649c541eaae5ad4ae787d91cafcbb480f917d0e86ac9652d261f99ef82c01250bb68f5e4fcdbe4da53b50187fee3ef7bae7296c3cc6a5f749fbb45c811ff1b4faad3f73f9b1eb8b6b8aaa118f4993bfe8cd9a97d9c8fa1965bb8a0e737f45b2e98c17e032290081c25056fecf6fe457fb1f51c0abbacbeddb724abce65878b8ebff66cc351cd3da353bb02d42dd44f5f760b37a5ac80c54454e84b115a83b4f06fb57f13c6501eff754a78040aff3819190a66e7d3e42398e8f6c8c44965f646099555ee796eddfd4e314dfa9edfcf09473b4998f243c7844393c05982bc6141ceb20f7adbf634fbef60472ffe1afa1a47b538f58ff9a8731ebb7645b6dbf3f0670d40687ce12b5d73ef41f56e44d8d6551275144847503c82a79d8ff4d0a7cbec42c631d2b7858c3833d55d1d0e4baf65d15661896c7bf6a1d73c190ce5a4e4f105a2bced1d330ecc0b510f6ba5c8201131f614253fafb1e3b3999fe4cb3ca9695c985c481d7fe8571ef2ba82ca6cb947ad2ce4b6fafe256abe3cf46c9687d157696e51603df1f532f642ad5fe2b821635d33f390278bd7580518072250e9a201a2f69242f734bad728c09bc4a009c6982db12e62265acc4d946916ebf2bf61048837c191c64a9345acc21af1777339c1c3610fa7e2b71aec3b48ab7c7646f61b8233c110c1900ffadd79fa3313278f0e9804dc5952011eab1e7cb6113d0c942b19787caa878594a279c6caf10c8d897b5bf9d5b6003705bce3469fb4bb5873e5d0afe52e55cf24d71206b78aafa40b06131c8368256ecbf5c4923ed3aa51314507cdea5a47f5bf7dc9dbc3d97b52e9a453298413caebdb39e44f2790e61c07b2a4baf39d7310dd4ec97658f2a84b40996b5743f7b3ed12f87bfd537acd678b4ff154b191c22d81d2bb0aca0c5c308366d2af423735c0503699877f7ab8d055d29923a93dc959117caf509f5b2332a4e1b8242e39508440467eb40a0a1f602aa6561af42c2926e9f11f1f47f4cb604b8967c0537dd1b84169a468f0275d5a0615513b4ca619add0f08f19546d264a8283a1b6f18403ae86f2e55a3b499532c6e6a0066e386f0754a5c62c43ce5cba2019e5f29e3981f7bfda5f1417a826176be1b6f50c2f2d7a1f336aba4d2fe67135b410ec951dcbb942f0c84864c6d3e89a9f8b5e77458014676640e91b8d7b15bb15a3b78ec609ba2dfc710524fcdd47afabf80e75e953c975e06f88ed2405ac24283166a677143b6a08cb9a90fe8cd731bcd5649059390ccfeae411eba9a677176ba9e62d8aad4fdfbf00c39d209bbf5750ef975ed8821f99adce98d253498afa28ff0d93560d32af196de68cecc0b63408cb3396bc696913b2d10bf9c87886baa128251b9204300fb784b2e83d6fd73d8be8bcd7004dafcfb1520a318be002c4719adcea03e06d3c2d80cbdaff944351b043024c2ac5b4b9d0e103b999efd9be805fc13398c8e1360a953b5fb298c96420112933ed9f03f82c6225fa28aa896071533c65141e66170e9dd102f80725284af6b2ba93048e9dcf895e805ac9d40c905b624949ceaaad0c3218e57d0b0c8d0d5a182f235fa50318b401f6e78de166c878e517a07a29804d2f55a862e52d796b99d8de7c6cbb6c5f7cfe15d59c7b9842cc840088fff3a2df206f1a83c705f71dd7df4995a94a670155e22154c99e3a144c91a18b98f7caa72b28c2fba5f0e7f867761e8c209cdcc57df678afe6160b6b2a689dd01a851e0501f951cf87bf0b7506127f348657b571cea3d6e82d9794d3e025da124ba6c1ad55067d1df05bc42dffff46daea4d79e0b3d0e55f151ad86c32848770eb0566f54ef0402f73b6dbfc76e2bb18cc331c44aa304bd1286fbfecb4d65f463749493b4006d4679bc19adef3aaa3cbd388f82a6ef813d9c5df8d4242885094bcdec73e236ee7288f73253aac2c26068edc03934c1c586bce94e5c5ab6126f71bdeb262e2f4238add879c902eb07c1862234a31994c97297d8b203ae07a187fe49f8c78f0da7d3e1269ea88a1cfb6ecd02d4e4db460a0087cdf0e82957e7c9513bc0dc72c5b84c4257f65862d4bcb93b01605c6369f2a95be56c07d309ff7639f24b367ebaccca3cadf011400d05a11a4e93d47c6a652b12415c6ed45659e8cf1790d6152cf82d411e1a9d125a1edcbacd231885c3e25e0cde6c74130b109c74f09c1bfe5f410ab14c43b50e3b14390f0f79873f3d64c51c1c4a2960709222ecef8321e840a77338017f37f51dd84e8165ea917ea9f118c27c38cc63964f49ccf0df806efb051a6a49f2a9300872c2166b1aa3cb1f9b7cf1f58dee8e67dd5f47ecb7438bfd55bbcf427bfa1d624b529373e6b404b73d83cf7001c00a36e3556c44a83445b871b5705a3a01ad26f089566e69788548d5d191055aa7012f29fd6bb8ff23d056e67475c3045288c3c0c3f05189ca148fa2e11ae8bc8f4fb930e5f0ed78c2420da3f2e35a8847cf8ef46569d010c9fa5b30be5e0ca490f95050ee3dedae3b13974487410525ab71b444bff5fe90de5086bc0e3fc6ccec3ed018a57b3f720bbded0ee023649ab41bad3a8900d796c834c58f166c094615f9ff3355b9ee3bf1d7f3c73a08a7051b5e1abe3b62fd8944474f1aae9e4c51a6fba51281212ebbe8a11a459f0c26d1711dd6c9c932042ee4322b4a1b380785397ae38b0e5ea950c6f5b6f62d3ca07be4904d8194d0c1a1e40a926e5e2fa782d74537eb254e1f90c20b57630a81463263a3e15c78e0c7315e64b2dcb7ade4f3cc5aea00dd64566b6e6ff752be9257a7720c45e428e094bbde936c7cb523e31031d5587c4a9d41cc6781487a303de176a057bb4a4af8f370be1e8fe2c2632def9f9e941338ac69a79674b5922308f79067720fe81cc7418e586d30838d1bb38b5b90ee5c606fa8f73156254fb05d181ca7481d77dc152f87ea47cfaf65bb91fd58c85e7f1451b7eb31e765602fc5aa9f68e0578627968548a0d38d3fdc7c8a668d4a447cd72caafb16eb034ab5f29a0d81f6d66fd70b980fe4edd081cfba8e4553ed9a719229e6b800eda767a7b7ef5c6fe20c82428dccbabee5c236153b369175d11455e86d7f864398c6aeb3d705bbbb21d61b10063c40f365ee46a15c405f43ea60b468bc89a4076f4ef9d0b0defbf6d804a2b3e9c6edfa3f027548c5e7f328dcb90a254ede985a6d7b11805f3a371f2f3db53b1591eb6e0fa35f3f64fd5bc07e732bebdad9d45b4403b838be5f0bd8477f2f95f8e73052d4f95ffed306651e74f7bdd0de04be1dd3e8b03c3724c222702d5b09c1f54af3173e4bc783c0ec6bb83408b0e97377a383ea0c7f89f258712a9b52917dc7cc585829ac59e3bee090c3c60cbf83b0d6fa799e4f4c3899f1ab67c6d77421da753606792d5a354a0f485a09d3fb1da39c212d0cd41a602e9f7a9e76d897c4323e4f7f8cf28d8951c1986297cb8fef8a29e851918682b98d995aa53ea42f4345648f58079bbdbea7ad0c5c0c3f7e85c9ee3485a35f86e4de067468e9158211e09cd540472e298ab3ca1866ac391c330ab4f4100eef2ebac9af2d206d6dbf270407882b253c7c2126d79b5d71b4418e1065c511b7670445bb49099e9f875cf7eb8808b8a47ddd82bc819f87c2a9f62be819e62959955d672040fd06637881529d37138d00d88646504c51edee8f3bbc3688ff877d199f5d87c4202c7032f7d2f7f0817cab689009ae826e3a63108ad108371dc1929fbf58d7cd0511f4d497e9573ff2e4d2403c5b093419ff562c395e79394f0df27555b1880c7b40db65337aedb819ffe289b9403e072361114e308aeede26917fc30a665cdc049a041d369f9a865303b8eb7ccbf1f229e73b950e1c64e313c7cd94ab57547679382cd097d34e617d993b51aebc20245f8461e81943a8394d2adb431762f1465c75c873debaf4960303e27e6b71095c0ca6a45e8bc6032004fc291eed4af2d01e06be8e85a9ecfb0ba9f4790dbaab8fcf178fd9b2b2c20fc6b238eb3ab19982b874e5631037721a4039a3fcf9874819b8565290614c3b790f2d66f9413537b7a01d308be5183db77217aeedad15a540091d413d60259f33c94f4205d04ef04cbd91232dc926f4760c772bb1ab9b947fb3a385597f020d4c8f52d69dc811de0c07ba6e4e302002b19805b8532cf6caa19d69ace56e9fe85315501bf18a3c4a12ad0918b51d69bc47e466c77bb0c83f8b7efc2b47bededc1043da414f3c39d6407ccb69ca6bc7c4fa04fdffd894ead9d7228cdc4528f6ddde714af269cda8912b7ce8ed1d029004a2dffb5aecec31b8fd3c85eb83ad9c0b9f7cfc81465e1015a74cd6645a3ddec5629fc6eaa82514917846f68772b03ef6add8377231b89aa42f7333b94b541f31f9ef09ab158d37f6d85fdf64418113f90261b8cbc289636a38e9beb547022bdf97ed80288ec7cc18c356c0b47cc61fbe459dce694a7a96f88636156696b9ca278ed8e4ea0660521967d278d14013975f29a563bfb7761fb1a8cb2f8a072b66f696d4aab5771445ab621e4003e2eae31f4bb7a40e409763defc94f0018f349bd03492484876ba731ec428616195870f0c04c9075a0d8ea41388466b28a00941823ce85ca5ad75a74535b7d6e7fd3e66d8cdf15aec350c62472d2697ae6e71cceacc4a9fd8d2e1bb767182deaf50b41c492bd4d6e354c88adfba5117c6222d568c76a48e1ef87cf6a6de374ed9c04f336f58c12dc7a88a8a8ab0efdd1a36d60657ce59e2d6cf0d59e0f3a13968210268f8e54754eb458a7fcbca85207c889ffa58d74da6ad186fda3b08f7d7dc9371790197b82d74068166492f65fcd11aa8ae92a4eff3a5471cfa3247114f2f6ec9a5521d587b9e1fbefc15e3a5d91dd3adbbf1da42024c319860d957e57fa48dc6f6b518976f2af583a8318eca8dfc6969ba3b84bac82b6aa85b7369206ec373d133cbbf4aa5e86160746c3cccf76f1731d607395fe4a82f98a5f4a8142fd00a00847c58b14f9afaec1617c606901b92fc6626a60f2a1eb04bbbf64731788817d8c2b7ac7cfc81465e1015a74cd6645a3ddec5629fc6eaa82514917846f68772b03ef6ad9f3bec59951b6af5c10ce59dd8ad6b66ac60a5f1581a18c2f3ff46fe1cf574e77ded4793d761ba0fe36fccefaf1a1f07ffb1b85621d5a83e459381dc6c71e56a9a0b9eae58650f542a2d6af44452b9996f4dd08cf8db87f626dd5103372ead4f861aae62a18461c98a613fa26849aff7f1ca756deaf60d010f63e1c77619d6d278620b16f4470f01d7ed90e714fd5ae75ca10f8b204017802bffac2c900a9bd2eb35651c3f5e7da82a5399fd528da8e04327e529c5aa2121973bfa7a0391d182cf1e420f7851781e79135523550ce17c6852805920a5d6f8f6d129414c5e455fe1c6bade73710b8310cd0b7a269d49fb193b259be4f5326e9adba6c628898d4a247f57740d8790800d92bcbccd91538ea5d7d4851919f24fef9537cda08fb73a9ae7687160b47c89a6e57cb6d64cd82332006ed6dda6a6b8a5e479dffe47cd6e7eedea5c25a09ad72c50b00340cc3d202bacdc7aa5df95613b0b8ffef206a443696950970044a93f0894493cb62abbb5950f3656bc95097d8a677aa387e4ae0e97dc80e329a6946a4fca50996fdce910efd325c2141c4ddebe6aa6ab61748ad0f740e76a8f17577530f820015dc3347be185110f826d0a26d8489989ad35405fac73da93dee789e4081c1ccc3db501afca30ed224db5bc0fe1fd5cc990744d23e6634d0d3c40464ec4073a64dcc93f6a038a63cfa0711a803983e469f265f84860f2972c8349a33ae1277b7a3beb5e61db49f87e5901fc28d621280140dd88f36ece0e31fa70e4d8997c47ed2a00d06afa22bbaa5f52cc1d19fe1785d6530b9471351d1de8df93ef1eda021882ac9cc10b6e4e9efdc63a7432f6fa8db03824a67278fb4cce74813f59ef543e005adafbfef5b6a8efb131f72af0e97b86b4363917ffcd9147d3cab0459ef2a3bbf4139a540ad0cc3d221aa1454915883bab697817a1966af78496ae767024c91624435b21e0d409d8db8f64a00291ade7ea813d56398699023e6f30245ce3539a746945da3adc6a1649ad3e64bbbd5ae96e04a479387df93671d93ff0d1234809ad3ca7828874c21ec9deb9f144225fa7a6e0bd30a7d8f9404c318d4beac2f326f6c3927cf4421b2cfc5bd9f36d56235a83842d502646b908d68dfc947d49c15da98e36a495ff62254adb87ba59caf00970f576c848f803024b27805003cdf412d7c2792df1255b11f148854250ed044c61b01b546d099a994a1274604f8c02ab90f139cb6cd1c765532aa16876c9b7efcb49bb52ffa37fbd56de9d2d227ff2b1c135c2024e3cffb968f4007405fb5d7abf19904707cde9efdc7b2137bf8fb52681c9e4c2eb1b07dffe8d8d715167ad4f38ecbc92fc0e4f4fa9460558eedf3412b988d433a2dcbb3a9c45402a145a4fab8a6ac6b49b1f909f61384593d3fbc034bb0a7881fe5622ee65206c1fabbbe344c6caddc7489cabb97ebf79926a683feddf7e4548aee510cdb9c789bab80b2ce677aad0908edd0b438793c573399b41ea5fe9fdce3b0bfb1296e441c6f975cc9d006b28ce20c1e2ed83ff6f8e2e393115b5c9778173534b16108bcfacb3047997e8a98753db8b1ab882558483810d19e29a194dd994f222f68018fd1c5e675bfca62942a492b791781f1f137bbdfd227b534610031eeea1b2430bb092848ed06106ecae296055880acfb8abf64681af7466d8a881b7b4651101a2fc95e9c6d5280679603aa2d5fdc8352513197710a97c23166aa61a14e288659ba127b2797244f90461e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855330aac72cd0d135d72582ba9e560d9b41f236678aadb5a6e8526ab013dfbc270a6ad7ababae7aea527c546de59a5fb3b7921acb1924fb4aa88bc3d9a861df3d215ce32a2326d3fa0369cb2f074397577076667ccd0741374b82ff4608e6ea6d3f4247dde07952a5ff866b24e45b5cdd1fce410cdb2e038255a1635867f59c10cbcc37d72664fabf900214cdc6c401e61336bcc0724e05d40aaabf3fa4cd83d6d0f500a0e8bf8b43b062f9fc5e01a150d06614bb17518f84893884d02c56a7901e3ad9ded0046aa5f6dd9b1f2a036a18e493ca6dd6c879bf832af193f90ff7724cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d307b4793eb53aed16d8fdcd6041bc76f1603cf221fe204291e73aa697f99c6dcda5881f477d15fdb03dc63926ac7309acbdb52294f166be94d9cd72cb584d968f7011e64e08008e18a56f5be64e36e74459ab7bb8639eff1ed35505d91894f74e3f08006c02a52809b36f01a57575d1cba0cdeb59e78ae4edf4e1ec316c675b43d3d74745ffad3ba151a3158f13b8dd9864b14c147beb5025d0505b2169ab906b924999aaf0f6f08aa9db267ec2c371d25d3e63ba0e91280d4b6d3fde09d0b6b8692878d875ff678c8fe38d4351ffb45212e46788b3577764171e1d481c58cf2f2d38a7040929cae1df802003720e99e804c1a5466f47b4eb22a5a0641b7eb255127d05a8d032f2bec3b8e0a567a5960c36b5559e369c3ecb76ab62c5e0f46d2a2efd3cf1b681c2b59b0053c592df1841c4ed6e02643e827e58655553c1b046879f03cff307ecd8ca0bf528a2f6ff2541adcedd356d556f88e0e2376f0d67a7e0cbba27151029cfa52084efc1d800066e2b633480c1c2b904ad6ec17c3387c0cdd071617e29459f02e0424071d5b43aa8dea4cb7ebdb19cde838247c5a590dc02d885bd0972de30533732aa13793faecbad0df05eb88bff5c64891b29f8bc2e0ea0a4405c3d450afa32c08e8f1f88a9e27ef747bf17d85d6096c67a80eea9b900a9117c5219255e88494fa9bfec5b13b7f339bd77c12a2db078e371c124adc473e09f8eade5de414e05fba49a3e86ffd2518d9bb7412f41de6c14409bf7fb504f7b30890fe1eb3d3e6b6a4eb63c63fe61272a59df824bac8a6f5b827a98bce3b8271c723d8a2c2cd738970201a82ba0f153e02ffe13eaf3e1415695bdc110bab486b04f4e99ce2a463278ae564295aa6c50a35788acec26ef6681dc9f96f69ee85a02afaad48177d654c11e6582fb2cd853a36df6886dc66bda5a47b06d1f2a11d77d96fe5c42f989fb1f2060165c18bae1445bcf60d108e936d4f7c95a97f99e0ec0c2a76acd6e931d1c792ea22454439befff0438f3b5a6b9969f26efe81fa0f51b403d72ec8fe1d32b8ffb14ad8223e60e16bc5a484acfc5f7b58d54eb11c51e20add8f42aea122228d560d7e6c2af608fdece380278d181bdc48b9de6c8c1ec51bfc1c28d6bdf7bee54ee16ef1a2c39e77c97a496a8b9605a2f851cb0f48d2969eaedd27cfdbd9b9b98b52d9882a20f80f6c3c0e07daa896abd53890b73c6dede0f3b1e500407980a8081f728e6189b18145d92200ac489b0874124a2b69ae3b2f7d842f5cdd6ecee247bfa06548999d7599dda994764ee9d0a69809052ac527564e4840d86437f5dee996b8ea597a6f85090833ed5fcdecbf102feeeb8a95b9013fdb4954ccf0970047d5023a9f2a9bf27be2bf1a129d66ebc3d206089184f3c191a916dca354c9dea7c1dca800546d324f78a54e0e2072c3fe4af577f20a8c45604f8e11f280d24a0707be213da9c9d9a9c0d0d32f8eccf7805ee4ae534f02b2cd437d039e655140367d39508d6f8b35c2e07811c3bc02679c866a6719adc2d8dbf5b78c5cbd9e7e26bfcdd089fec93fd01b23988859cfd86f39056dfb143372231967219b56d671ee3db2374b5ca14f9db0220f0fd663407160ab9445a1cc598f2710960d2aee263fde74ed4d612bd118af905f69f5f1f22b5f13aa90f09f93b7b0725f5b753a214bb8c40f838a6bcd91afd44c8d3fe8e2ab3964d76c885a1b878809da68e2104ec4d0d56130b18a9bc912e8052a5b8e1660473476c13d37c1fc81fb90b95890bd66d532329c7cab044fd92666f3868f92a6da72e810c8c21a00295daa12627b1b9eca05c2701c2253e070be27a5ec0a23a33267da44538397ed05620d24e78f9959a260342d095f4632d21fd2a70efe99d45d811fe17e48f829dcca8decac3a6bc2658a85c90b3b41f245ae25021013d76c0de673d57c01639c315846461e476597a1217c9c38deccb833a8d67fb177f41691c9e6c77a2ab61f2ccd71a3697297d8c81b976149b0aaf8a92d51a7782c211f093d3470e9acee2be3c9d6603167075cd407d708104941befd2f6c7461b3d96a997df9f4e7709faaa0b8762bdcb65f1087e3d61b26e9b058e977cb8ba1be578dac8e9e94218bb6d730734b8920ed883f9cbde3b28ec5632cff9ff0dd3a7cfdbb0c4f473ca2fd5101ee50efa11a7eab7aa56cffe4c18962080f87190171961b4732377ef5f2bd73d020be8b474dae08f3866f4709eb39d1ebf198261b4e74b7f7f7179847c2716780f018b3ed0391edf4f71b8acc4b1d8a9313e84f93cffaed55521bd91560c99857b0ceb835a2184ab1b85843747c0049a17281b8f55801c91d618595821de6b951d7df78889b27537f245504b97a6d211a2ae023fe9922a4beb51238a35c1beab19ce745dfce15349eddf76c97c22276bbaac52c5b4e516e8e7920ddaf6ad59c3a7a40a781c5c8b21a4833c2a4c5b14b1034274c1b95225aeca584cf39f795f1760d6e7239df0119fba1a4f7b19e959cc5733001deb4cd32149e434a054ee16660e5d7028f9fb97560dcb3b4b3d9327fe7ae0341cd50a2698d6ccdb9eebe6eef1d361a4baf107974f1881fc8b75311c29ff6d49d734e492592e5ca95b66df6b294a4b9b7a83596fee4bda288c60fff231f2be98e4b6626850a4732c0eeafe39546111d3e5921d07e5dba7894296bdcdce81f5184166c60ea0203f5a2bc80e711b3c187cc749cc76cbc572062efd4fd692bf37852282aa1b71ab545760a935aa31c5d7e699791dcb6548b69ce6b27e7f98b77a137f6b15ec0a2bbe359243d6a35158bb66c33a03af2f2eec2edbfb9ba23a20426fb764e58f3cf1abec92a6a6d2216b6339988e2c9802d78897a5fa489de70ce4584a01e20be9079c716f3d2a2f192417a6645ebb4610f9d148cfc02b925a5a68107319c6ea43e489ac7304caa10619b3a51446d1959af847cd7f242d46b0a0856ccd0bffa1f4117a954009104eac6052429d7618dea03fbc3cd8c1ce1de57802780e2c0a0c0d37d19c03dcf77f9996c5da188e2777d82e751d7d94085d140884b3bf3a31913e9a70fa04ee10fe36502202bccafe0b97631dca90d7849cc242d047ce4c6a33d0f9c839f3c94677659bd830c36f6bc827fdf86393a67316081bd3aa36ef43d58fba755353c0a0fe36502202bccafe0b97631dca90d7849cc242d047ce4c6a33d0f9c839f3c94a88d3e2c3dff68835ffbbb7dba295a3cbc3b28733cf1e8cfd19050c80b4ca96713caa94c5808233677b1c9775f944dfc79d41b5c79ecfb0fd70ca6f567e07ef81f2131254fb638b746443fe21a6b5289808acedb004130ea8aae21491a5cf9591a23471d731c7adb9099abfccb6058c536bbdaa21d2c60a70b6866db3dd6a3c544edc2f0a5e8a37c9dec1f6f672c9f058d8684e14ba9b2788b59811df14892790a9875ed3c44e2eb82ad99d46d48caef421997f1bfd76f2e54881a01ce4eefaf6971216e0a8618f934043d937d4660e2331617b9d0ff6e80a5f7e08b6f34e0a743adade058206946d72b02f80d4e768c531d1c4ca5be11abb2a3c8835fdc5bdd7ed259a4a7c915ee7cd2413542eaf91179e90ff96e3aa123da2c2b6d38e37baa045e3b89f4e30eeec9a714abe9eaf3d47efe9b1f59d50e17613d015677cba1d0b55d94c1d7916c38a80cf28dcb93183c2cf9032160794cf7d315f3fb65b92127e2e4bc411e93166a66f9567900af77b1be00161e60c4615fbc254ee1f3e256433ab61f927575f243e8e04017b1440cca1b2cc9dd887c9eadfc50ff746dd36f840499416a9daf9e53e50c2d09a11e4b5f8aedef1f15c4991990b870c7915a59f0d70f092ef408e8b0fc809dc140b8314c55ff6425e23fa022780ff02b2cf5dc9b476a4543772f294bfe2ae516c23566986c93e9e334063d5008e7ee5fe5acc8af951d8fe1ef0618085c4f58be3d633a014aaca55ee6e47a3af1aad37182ed1fb3../cc../cpp../fc../cc../cc../cccccccc../cc../../cc../../cc../cc../cc../cc../cc../cc../cc../cc../cccccccccccc../../cc../cc../cccc../cc../cc../cc../cc../cc../cccccccc../cc../cc../cc../cc../cc../cc../cc../cc../cc../cc../cc../cc../cpp../fc../cc../cc../cc../cc../cc../cc../cc../ccubuntu_2004.dockerfileubuntu_2004.dockerfileubuntu_2004.dockerfile../../cache/spackAArootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootspackrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootspackrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootspackrootrootrootrootspackspack-0.20.3-150400.9.1.src.rpmconfig(spack)group(spack)spack@@@      (hwloc if hwloc-devel)(hwloc-devel if hwloc)/bin/bash/bin/sh/bin/sh/bin/sh/bin/sh/usr/bin/bashawkbzip2config(spack)coreutilscurlgcc-c++gcc-fortrangitgpg2gziplibbz2-devellua-lmodmakepatchpolkitpython3-clingorpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rpmlib(RichDependencies)spack-recipessudotarunzipxz0.20.3-150400.9.13.0.4-14.6.0-14.0.4-14.0-15.2-14.12.0-10.20.34.14.3/usr/lib/spack/run-find-external.sh packages/usr/lib/spack/run-find-external.sh compilers/usr/lib/spack/run-find-external.sh packages/usr/lib/spack/run-find-external.sh compilersautoconfautoconfbashbashbisonbisonbzip2bzip2ccacheccachecmake-fullcmake-fullcpiocpiocuda-nvcccuda-nvccdiffutilsdiffutilsfindutilsfindutilsfishfishflexflexfzffzfgccgccgcc-c++gcc-c++gcc-fortrangcc-fortrangcc10gcc10gcc10-c++gcc10-c++gcc10-fortrangcc10-fortrangcc11gcc11gcc11-c++gcc11-c++gcc11-fortrangcc11-fortrangcc12gcc12gcc12-c++gcc12-c++gcc12-fortrangcc12-fortrangcc7gcc7gcc7-c++gcc7-c++gcc7-fortrangcc7-fortrangcc8gcc8gcc8-c++gcc8-c++gcc8-fortrangcc8-fortrangcc9gcc9gcc9-c++gcc9-c++gcc9-fortrangcc9-fortranghostscriptghostscriptgit-lfsgit-lfsgogohugohugohwloc-develhwloc-develinfoinfojava-11-openjdk-develjava-11-openjdk-develjava-14-openjdk-develjava-14-openjdk-develjava-15-openjdk-develjava-15-openjdk-develjava-16-openjdk-develjava-16-openjdk-develjava-1_8_0-openjdk-develjava-1_8_0-openjdk-devellibcurl-devellibcurl-devellibopenssl-devellibopenssl-devellibtoollibtoollibzip-devellibzip-develm4m4makemakemakeinfomakeinfompich-develmpich-develmpich-gnu-hpc-develmpich-gnu-hpc-develmvapich2-develmvapich2-develncurses-develncurses-developenmpi1-developenmpi1-developenmpi1-gnu-hpc-developenmpi1-gnu-hpc-developenmpi2-developenmpi2-developenmpi2-gnu-hpc-developenmpi2-gnu-hpc-developenmpi3-developenmpi3-developenmpi3-gnu-hpc-developenmpi3-gnu-hpc-developenmpi4-developenmpi4-developenmpi4-gnu-hpc-developenmpi4-gnu-hpc-develpatchelfpatchelfperl-baseperl-basepkg-configpkg-configpkgconfpkgconfpython3-basepython3-baserubyrubysqlite3sqlite3tartarxzxzxz-develxz-develeH@eRdd}dx@dkY@d=4d.@d%yd?@dxc>@ccc|b5@bN@b\@b@aaa@a5aLa@aim@aV@aTU@a $@`@`E`r```c`Y@`T@`8`8`__@_j_ǁ_G@__i_@_[fbwiedemann@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comcgoll@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comcgoll@suse.comeich@suse.comeich@suse.comcgoll@suse.comdmueller@suse.comeich@suse.comeich@suse.comeich@suse.comeich@suse.comcgoll@suse.comcgoll@suse.comcgoll@suse.comcgoll@suse.comcgoll@suse.comeich@suse.comeich@suse.comaginies@suse.comcgoll@suse.comcgoll@suse.comeich@suse.comaginies@suse.comcgoll@suse.comeich@suse.comcgoll@suse.comcgoll@suse.comcgoll@suse.comeich@suse.comcgoll@suse.comeich@suse.comcgoll@suse.comcgoll@suse.comcgoll@suse.comcgoll@suse.comeich@suse.comcgoll@suse.comcgoll@suse.comaguerrero@suse.com- Update to version 0.20.3 with the following changes: * Bug fixes: + Fix a bug where `spack mirror set-url` would drop configured connection info. + Fix a minor issue with package hash computation for Python 3.12. + Improve escaping in Tcl module files. + Make repo cache work on repositories with zero mtime. + Ignore errors for newer, incompatible buildcache version. + Print an error when git is required, but missing. + Ensure missing build dependencies get installed when using `spack install --overwrite`. + Fix an issue where Spack freezes when the build process unexpectedly exits. + Fix a bug where installation failures cause an unrelated `NameError` to be thrown. + Fix an issue where Spack package versions would be incorrectly derived from git tags. + Fix a bug triggered when file locking fails internally. + Prevent `spack external find` to error out when a directory cannot be accessed. + Fix multiple performance regressions in environments. + Add more ignored modules to `pyproject.toml` for `mypy`. * Features: + Spack now supports Python 3.12.- Update to version 0.20.1 with the following changes: * Bug fixes: + Fix spec removed from an environment where not actually removed if `--force` was not given. + Hotfix for a few recipes that treat CMake as a link dependency. + Fix re-running stand-alone test a second time, which was getting a trailing spurious failure. + Fix reading JSON manifest on Cray, reporting non-concrete specs. + Fix a few bugs when generating Dockerfiles from Spack. + Fix a few long-standing bugs when generating module files. + Fix issues with building Python extensions when using an external Python. + Fix `spack compiler remove`: remove from command line even if they appear in different scopes. * Features: + Speed-up module file generation. + Show external status as `[e]`. + Backport `archspec` fixes. + Improve a few error messages.- Fix SPACK_ROOT setting in /etc/profile.d/spack.[c]sh (bsc#1214222). - Don't source /etc/os-release directly, use a subshell.- Add hwloc-devel and sqlite3 to the packages that trigger a `spack external find`. - Change /usr/bin to %{_bindir}. - Make sure, libhwloc and hwloc are installed together when spack is installed.- Do not attempt to build documentation for 32-bit, s390x and ppc64*. There are build issues on some build targets.- Update to version 0.20.0 with the following features: * Exact versions: Spack did not previously have a way to distinguish a version if it was a prefix of some other version. For example, @3.2 would match 3.2, 3.2.1, 3.2.2, etc. You can now match exactly 3.2 with @=3.2. This is useful, for example, if you need to patch only the 3.2 version of a package * More stable concretization: Now, spack concretize will only concretize the new portions of the environment and will not change existing parts of an environment unless you specify --force. This has always been true for unify:false, but not for unify:true and unify:when_possible environments. * The concretizer has a new --reuse-deps argument that only reuses dependencies. That is, it will always treat the roots of your environment as it would with - -fresh. This allows you to upgrade just the roots of your environment while keeping everything else stable * Specs in buildcaches can be referenced by hash: Previously, you could run spack buildcache list and see the hashes in buildcaches, but referring to them by hash would fail. You can now run commands like spack spec and spack install and refer to buildcache hashes directly, e.g. spack install /abc123 * New package and buildcache index websites Our public websites for searching packages have been completely revamped and updated. You can check them out here: Package Index: https://packages.spack.io Buildcache Index: https://cache.spack.io Both are searchable and more interactive than before. Currently major releases are shown; UI for browsing develop snapshots is coming soon. * Default CMake and Meson build types are now Release: Spack has historically defaulted to building with optimization and debugging, but packages like llvm can be enormous with debug turned on. Our default build type for all Spack packages is now Release. This has a number of benefits: much smaller binaries; higher default optimization level; and defining NDEBUG disables assertions, which may lead to further speedups. You can still get the old behavior back through requirements and package preferences * spack checksum can automatically add new versions to package * new command: spack pkg grep to easily search package files * New maintainers directive * Add spack buildcache push (alias to buildcache create) * Allow using -j to control the parallelism of concretization * Add --exclude option to 'spack external find' requires() directive and enhanced package requirements We've added some more enhancements to requirements in Spack. There is a new requires() directive for packages. requires() is the opposite of conflicts() - removed Add-zypper-to-the-valid-container.os_packages-commands.patch as incoperated upstream- Update to version 0.19.2 with the following bug fixes: * Ignore global variant requirement for packages that do not define it. * Compiler wrapper: improved parsing of linker arguments. * Views: fix support for optional Python extensions. * Views: fix issue where Python executable gets symlinked instead of copied. * Fix a bug where tests were not added when concretizing together. * Increase db timeout from 3s to 60s to improve stability of parallel installs. * Buildcache: improve error handling in downloads. * Module files for packages installed from buildcache have long placeholder paths abbreviated in configure args section. * Ensure file with build environment variables is truncated when writing to it. * spack config update now works on active environments; - Add: Add-zypper-to-the-valid-container.os_packages-commands.patch This adds `zypper` to the valid OS package managers that can be specified in a slack.yaml container description like: spack: ... container: .. os_packages: command: zypper .. - Add: spack_get_libs.sh This scripts obtains library and include paths for spack-build libraries and outputs shell commands which set these as environment variables. Additionally, it generates a command line to prepend these lib directories to LD_LIBRARY_PATH. Thus, the variables can be set in the current shell by running `source $(spack_get_libs.sh foo)`. When using `bash` this script may also be sourced directly. The names of the environment variables are the upper-cased library names with the strings 'LIB_' and 'INC_' prepended. Thus, for a library 'foo', they would be 'INC_FOO' and 'LIB_FOO'. These variables may be used at build time to point the compiler to the include and library files (bsc#1208751). - Drop: Make-sure-spack-environment-is-set-up-in-Dockerfile-template.patch This patch should not be needed. When building using `podman` use: `podman build --format docker ...` to enable the non-OCI compliant instructions in a Dockerfile. - Add info, makeinfo, libcurl-devel, patchelf to the recommended packages to add. Fix: openssl-devel -> libopenssl-devel- Add 'zypper' as valid command to container.os_packages. This allows to build SUSE container using non-default registries. - Add 'awk', 'git', 'gzip' and 'gunzip' to the requires. - Add 'patchelf' to the recommended packages.- Avoid running run-find-external.sh twice during installation/ update. - Stop accidental inclusion of %%pre/post/triggerin/un scripts in doc packages. - Adpot new info file installation sceme for Factory.- run-find-external.sh: Extend the range of versions of MPI flavors to be searched for when asking Spack to look for external packages (bsc#1208751).- Improve run-find-external.sh: * Extend to run 'spack compiler find'. * Separate triggers for packages and compilers. * Better handle when search patterns match multiple directories.- Udpate to 0.19.1 with following bug fixes: * buildcache create: make "file exists" less verbose * spack mirror create: don't change paths to urls * Improve error message for requirements * Fix libtool filter for Fujitsu compilers * FileCache: delete the new cache file on exception - using `--all` flag for `spack external find` in the %triggrin section, as MPI packages were not recognized any more, fixing (bsc#1208751)- Make sure the spack environment is set up correctly in spack-generated Dockerfiles (boo#1207784): Make-sure-spack-environment-is-set-up-in-Dockerfile-template.patch- Fix var_path: this regression was introduced with the update to the 0.19.0 release (boo#1207053). - Move repos to /usr/share/spack: /var is strictly for local data.- updated to version 0.19.0 with the following changes: * Spack's traditional package preferences are soft, but we've added hard requriements to packages.yaml and spack.yaml * spack install in an environment will no longer add to the specs: list; you'll need to either use spack add or spack install --add . * spack uninstall will not remove from your environment's specs: list; you'll need to use spack remove or spack uninstall --remove. * concretizer:unify:true is now the default mode for new environments * include environment configuration from URLs * An increasing number of packages in the ecosystem need the ability to support multiple build systems * package ++variant: enabled variant that will be propagated to dependencies * git. prefix to specify git tags or branches as versions. All of these are valid git versions in * spack ci generate --tests will generate a .gitlab-ci.yml file that not only does builds but also runs tests for built packages * spack test run --explicit will only run tests for packages that are explicitly installed, instead of all packages. * You can add a new shared_linking option to config.yaml to make Spack embed absolute paths to needed shared libraries in ELF executables and shared libraries on Linux * spack spec prints dependencies more legibly. Dependencies in the output now appear at the earliest level of indentation possible (#33406) * You can override package.py attributes like url, directly in packages.yaml * There are a number of new architecture-related format strings you can use in Spack configuration files to specify paths - Improvements from v0.18.0 * spack install --reuse was introduced in v0.17.0, and --reuse is now the default concretization mode. Spack will try hard to resolve dependencies using installed packages or binaries * Spack hashes now include link, run, and build dependencies, as well as a canonical hash of package recipes. Previously, hashes only included link and run dependencies (though build dependencies were stored by environments). We coarsened the hash to reduce churn in user installations, but the new default concretizer behavior mitigates this concern and gets us reuse and provenance. You will be able to see the build dependencies of new installations * concretizer:unify:when_possible will try to resolve a fully unified environment, but if it cannot, it will create multiple configurations of some packages where it has to. with spack find. * Spack now has an updated binary format, with improvements for security. The new format has a detached signature file, and Spack verifies the signature before untarring or decompressing the binary package. The previous format embedded the signature in a tar file, which required the client to run tar before verifying (#30750). Spack can still install from build caches using the old format, but we encourage users to switch to the new format going forward. * The spack bootstrap mirror command can automatically create a mirror for bootstrapping the concretizer and other needed dependencies in an air-gapped environment. * spack env depfile can be used to generate a Makefile from an environment, which can be used to build packages the environment in parallel on a single node * In addition to being conditional themselves, variants can now have conditional values that are only possible for certain configurations of a package. - removed following patches as incorporated upstream: * fix-tumbleweed-naming.patch- avoid bashism in post scripts (bsc#1195391)- Fix: Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch This is needed to prevent an AttributeError during 'import spack.environment as some_name' when building Sphinx documentation - due to an outdated Python on SLE. The original version caused errors: 'NameError: name 'uenv' is not defined' when using 'spack env activate' et.al. (bsc#1198212).- Remove unneeded build dependency. - Make dependencies of spack and spack-recipes symetrical.- Add openssl-devel, xz-devel and libzip-devel as recommends bsc#1195789.- Fix run-find-external.sh script: RPM macros are not expanded in external scripts. * Rename: run-find-external.sh to run-find-external.sh.in - Fix list of recommended packages. - Add support for container building using a SLE base container. * Add-support-for-container-building-using-a-SLE-base-container.patch- updated to spack 0.17.1 with following chnages: * Allow locks to work under high contention (#27846) * Improve errors messages from clingo (#27707 #27970) * Respect package permissions for sbang (#25764) * Fix --enable-locks behavior (#24675) * Fix log-format reporter ignoring install errors (#25961) * Fix overloaded argparse keys (#27379) * Allow style commands to run with targets other than "develop" (#27472) * Log lock messages to debug level, instead of verbose level (#27408) * Handle invalid unicode while logging (#21447) * spack audit: fix API calls to variants (#27713) * Provide meaningful message for empty environment installs (#28031) * Added opensuse leap containers to spack containerize (#27837) * Revert "patches: make re-applied patches idempotent" (#27625) * MANPATH can use system defaults (#21682) * Add "setdefault" subcommand to `spack module tcl` (#14686) * Regenerate views when specs already installed (#28113) - removed leap-container.patch as incoperated upstream- fixed the configuration files /etc/skel/.spack/{config|modules}.yaml so that spack writes to $HOME if started as user- made objects.inv (Source5) to be static as the online version is changed dynamically- added leap-container.patch which adds leap15 as os to the spack containerize command.- updated to version 0.17.0 (Upstream feature/bug references () are relative to https://github.com/spack/spack/issues/). * New concretizer is now default The new concretizer introduced as an experimental feature in v0.16.0 is now the default (#25502). The new concretizer is based on the clingo logic programming system, and it enables us to do much higher quality and faster dependency solving The old concretizer is still available via the concretizer: original setting, but it is deprecated and will be removed in v0.18.0. * Binary Bootstrapping To make it easier to use the new concretizer and binary packages, Spack now bootstraps clingo and GnuPG from public binaries. If it is not able to bootstrap them from binaries, it installs them from source code. With these changes, you should still be able to clone Spack and start using it almost immediately. * Reuse existing packages (experimental) The most wanted feature from our 2020 user survey and the most wanted Spack feature of all time (#25310). spack install, spack spec, and spack concretize now have a --reuse option, which causes Spack to minimize the number of rebuilds it does. The --reuse option will try to find existing installations and binary packages locally and in registered mirrors, and will prefer to use them over building new versions. This will allow users to build from source far less than in prior versions of Spack. This feature will continue to be improved, with configuration options and better CLI expected in v0.17.1. It will become the default concretization mode in v0.18.0. * Better error messages We have improved the error messages generated by the new concretizer by using unsatisfiable cores. Spack will now print a summary of the types of constraints that were violated to make a spec unsatisfiable (#26719). * Conditional variants Variants can now have a when="" clause, allowing them to be conditional based on the version or other attributes of a package (#24858). * Git commit versions In an environment and on the command-line, you can now provide a full, 40-character git commit as a version for any package with a top-level git URL. e.g., spack install hdf5@45bb27f58240a8da7ebb4efc821a1a964d7712a8. Spack will compare the commit to tags in the git repository to understand what versions it is ahead of or behind. * Override local config and cache directories You can now set SPACK_DISABLE_LOCAL_CONFIG to disable the ~/.spack and /etc/spack configuration scopes. SPACK_USER_CACHE_PATH allows you to move caches out of ~/.spack, as well (#27022, #26735). This addresses common problems where users could not isolate CI environments from local configuration. * Improvements to Spack Containerize For added reproducibility, you can now pin the Spack version used by spack containerize (#21910). The container build will only build with the Spack version pinned at build recipe creation instead of the latest Spack version. * New commands for dealing with tags The spack tags command allows you to list tags on packages (#26136), and you can list tests and filter tags with spack test list (#26842). * Copy and relocate environment views as stand-alone installations (#24832) * spack diff command can diff two installed specs (#22283, #25169) * spack -c can set one-off config parameters on CLI (#22251) * spack load --list is an alias for spack find --loaded (#27184) * spack gpg can export private key with --secret (#22557) * spack style automatically bootstraps dependencies (#24819) * spack style --fix automatically invokes isort (#24071) * build dependencies can be installed from build caches with --include-build-deps (#19955) * spack audit command for checking package constraints (#23053) * spack can now fetch from CVS repositories (yep, really) (#23212) * spack monitor lets you upload analysis about installations to a * spack monitor server (#23804, #24321, #23777, #25928)) * spack python --path shows which python Spack is using (#22006) * spack env activate --temp can create temporary environments (#25388) * --preferred and --latest options for spack checksum (#25830) * SPACK_PYTHON environment variable sets which python spack uses (#21222) * SPACK_SKIP_MODULES lets you source setup-env.sh faster if you don't need modules (#24545) - removed following patches as incomperated upstream: * added-dockerfile-for-opensuse-leap-15.patch - removed as not needed any more: * basic-exclude-pattern-for-external-find.patch * Fix-documentation-so-that-parser-doesn-t-stumble.patch - updated patches: * Adapt-shell-scripts-that-set-up-the-environment-for-different-shells.patch * added-target-and-os-calls-to-output-of-spack-spec-co.patch * Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch * fix-tumbleweed-naming.patch * Make-spack-paths-compliant-to-distro-installation.patch - added: * Fix-Spinx-configuration-to-avoid-throwing-errors.patch * Set-modules-default-to-lmod.patch - updated requires to actual sphinx version, so that the documentation builds - Included source: objects.inv- Fix sysuser file name.- Utilize sysuser infrastructure to set group spack.- update to version 0.16.3 (JSC#SLE-22137): * clang/llvm: fix version detection * Fix use of quotes in Python build system * Ensure all roots of an installed environment are marked explicit in db * Fix fetching for Python 3.8 and 3.9 * locks: only open lockfiles once instead of for every lock held- added tar and make as requirement- added README-oo-wiki which is the raw version of the opensuse wiki- Fix patch Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch to actually work correctly. The updated version makes sure modules are not called recursively even if modules are loaded in an out-of-order fashion from python-Sphinx. - Remove duplicates in spec file.- fix typo to export prefix in patch (bsc#1191395): Adapt-shell-scripts-that-set-up-the-environment-for-different-shells.patch- update to version 0.16.1 * Major performance improvement for spack load and other commands. * spack fetch is now environment-aware. (#19166) * Numerous fixes for the new, clingo-based concretizer. * Supoprt for automatically bootstrapping clingo from source. * Python 3.10 support: collections.abc * Fix import issues by using __import__ instead of Spack package import. * Bugfixes and --source-dir argument for spack location. * Better support for externals in shared prefixes. * spack build-env now prefers specs defined in the active environment. * Remove erroneous warnings about quotes in from_sourcing_files. * Fix clearing cache of InternalConfigScope. * Bugfix for active when pkg is already active error. * Make SingleFileScope able to repopulate the cache after clearing it. * Channelflow: Fix the package. * More descriptive error message for bugs in package.py * Use package-supplied autogen.sh * Respect -k/verify-ssl-false in _existing_url method.- Add gcc-c++ to the required packages (bsc#1185519). - Add alternative c++ & fortran compilers to the triggers list.- added run-find-external.sh which calls the command in post `spack external find` as nobody and not as root- added libbz2-devel as dependency as spack requires this, as soon as the bzip2 binary is found and removed warning for this corner case in rpmlinrc- set the right MODULEPATH in /etc/profile.d/spack.[cs]h- Remove BuildRequires for patterns-base-basesystem and distribution-release.- update to version 0.16.1 * intel-oneapi support through new packages * HIP/ROCm support (#19715, #20095) * concretization enhancements * environment install reporting fix (#20004) * avoid import in ABI compatibility info (#20236) * restore ability of dev-build to skip patches (#20351) * spack find -d spec grouping (#20028) * spack smoke test support (#19987, #20298) * abstract spec comparisons (#20341) * performance improvements for binary relocation (#19690, #20768) * additional sanity checks for variants in builtin packages (#20373) * do not pollute auto-generated configuration files with empty lists or dicts - added file: basic-exclude-pattern-for-external-find.patch * adds the functionality to exclude binaries for external search so that the call 'installdbgsymbols' can be prohibited as this leads to an endless loop when drkonqui is installed- Add * Fix-documentation-so-that-parser-doesn-t-stumble.patch: * Fix-error-during-documentation-build-due-to-recursive-module-inclusion.patch Fix documentation building. - Fix texinfo file installation.- added patch for more reproduceable output for the doc package * added file: added-target-and-os-calls-to-output-of-spack-spec-co.patch- added test for /etc/spack/no_rpm_trigger- added %triggerin and %triggerpostun for the packages which can be detected by spack- updated to 0.16.0 - added find for external packages - added dockerfile for leap * added patchfile added-dockerfile-for-opensuse-leap-15.patch- Add documentation (man and info pages, pdf doesn't build currently). * Do not ship documentation sources. - Do not distribute Dockerfiles and other container related material, yet. This needs to be fixed so that the samples work with SUSE. - Fully integrate spack into SUSE directory structure, fix paths where required. * Fix setup scripts to work correctly in above environment.- added profile file for csh - enabled projections - updated README.SUSE- added patches to be more on the traditional file system hierarchy and avoid explicit version in tumbleweed. * added file Make-spack-paths-compliant-to-distro-installation.patch * added file fix-tumbleweed-naming.patch- Initial release. Version 0.15.4 * Make-spack-paths-compliant-to-distro-installation.patch Make spack paths compliant to distro installation./bin/sh/bin/sh/bin/sh/bin/sh/bin/sh/bin/shh01-ch4c 1700645653  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOBCDSTUVWXYZ[\]^]`abcdefghijklmopqrstuvwxyz{|}~]      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~]]      !"#$%&'()*+,0.20.3-150400.9.10.20.3-150400.9.1  !!!!"#$$%%%%&&&&&&&&%''''''''''''''''''''''%(((((((((%)))))%***************************%%++++++++++,,,++++----+.........+%%//////////////////%000000%11111111111111111111%%%233333333333333333333333333333%%%4455$6666666677777688888899$$:$;;<<<<<<<<<=====>>>>>??????>>@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@>>>>>>AAAAAAAAAAAAAAAABBBAAAAAAAAAAAAAAAAAAAAAAAAAAACCCCCCAAAAAAAAAAADDDAAAAAAAAAAAAAAAAAAAAAAAAAA>>EEEEEEEEEEEEEEEEEE>>>FFFFGGG>>>>HHH>>>IIII>>>>>>>>JJJJJJJ>>>>>>KKKK>>LLLLLLL>>>>>>>>MMMMMMMM>>>>>>>NNNNN>>>>OOOOOOOOOOOOOOOOOOOOOO>PPPPP>>>>>>>>>>>>QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRQQQ>>>SSTUVVVVWXXXYZ[Z\]]]]\^^^^\_Z``ZaaabbbbZcdeeeZfghhhhhihjkjjljmhgnnopnnqrnsntnunnvnwnxynzn{n|n}nnn~nfZZZZZZZZZspack.cshspack.sh.spackconfig.yamlmodules.yamlspackcompilers.yamlpackages.yamlsbangspackspack-pythonspack-tmpconfigspack_get_libs.shetcspackdefaultsbootstrap.yamlconcretizer.yamlconfig.yamlcraymodules.yamldarwinmodules.yamlpackages.yamllinuxmodules.yamlmirrors.yamlmodules.yamlpackages.yamlrepos.yamlwindowsconfig.yamlpackages.yamlspackenvaoccclangclang++flangarmarmclangarmclang++armflangc++c89c99case-insensitiveCCccccecase-insensitiveCCcrayCCcccraycccrayftnftnclangclangclang++flanggfortrancppf77f90f95fcfjcase-insensitiveFCCfccfrtftngccg++gccgfortraninteliccicpcifortldld.goldld.lldnagnagfornvhpcnvcnvc++nvfortranoneapidpcppicpxicxifxpgipgc++pgccpgfortranrocmccamdclangamdclang++amdflangxlxlcxlc++xlfxlf90xl_rxlc++_rxlc_rxlf90_rxlf_retcspackcompilers.yamlexternal__init__.py_vendoring_pyrsistent_version.py_pyrsistent_version.pyialtgraphaltgraph.pyiDot.pyGraph.pyGraphAlgo.pyGraphStat.pyGraphUtil.pyLICENSEObjectGraph.py__init__.pyattr__init__.py__init__.pyi_cmp.py_cmp.pyi_compat.py_config.py_funcs.py_make.py_next_gen.py_version_info.py_version_info.pyiconverters.pyconverters.pyiexceptions.pyexceptions.pyifilters.pyfilters.pyipy.typedsetters.pysetters.pyivalidators.pyvalidators.pyiattrsLICENSE__init__.py__init__.pyiconverters.pyexceptions.pyfilters.pypy.typedsetters.pyvalidators.pydistroLICENSE__init__.py__main__.pydistro.pypy.typedjinja2LICENSE.rst__init__.py_identifier.pyasync_utils.pybccache.pycompiler.pyconstants.pydebug.pydefaults.pyenvironment.pyexceptions.pyext.pyfilters.pyidtracking.pylexer.pyloaders.pymeta.pynativetypes.pynodes.pyoptimizer.pyparser.pypy.typedruntime.pysandbox.pytests.pyutils.pyvisitor.pyjsonschemajsonschema.pyiCOPYING__init__.py__main__.py_format.py_legacy_validators.py_reflect.py_types.py_utils.py_validators.pybenchmarks__init__.pyissue232.pyjson_schema_test_suite.pycli.pycompat.pyexceptions.pyschemasdraft3.jsondraft4.jsondraft6.jsondraft7.jsontests__init__.py_helpers.py_suite.pytest_cli.pytest_exceptions.pytest_format.pytest_jsonschema_test_suite.pytest_types.pytest_validators.pyvalidators.pymacholibmacholib.pyiLICENSEMachO.pyMachOGraph.pyMachOStandalone.pySymbolTable.py__init__.py__main__.py_cmdline.pydyld.pydylib.pyframework.pyitergraphreport.pymach_o.pymacho_dump.pymacho_find.pymacho_standalone.pyptypes.pyutil.pymarkupsafeLICENSE.rst__init__.py_native.py_speedups.c_speedups.pyipy.typedpyrsistentLICENSE.mit__init__.py__init__.pyi_checked_types.py_field_common.py_helpers.py_immutable.py_pbag.py_pclass.py_pdeque.py_plist.py_pmap.py_precord.py_pset.py_pvector.py_toolz.py_transformations.pypy.typedtyping.pytyping.pyiruamelruamel.pyiruamel.yaml.LICENSEyaml__init__.pyanchor.pycomments.pycompat.pycomposer.pyconfigobjwalker.pyconstructor.pycyaml.pydumper.pyemitter.pyerror.pyevents.pyloader.pymain.pynodes.pyparser.pypy.typedreader.pyrepresenter.pyresolver.pyscalarbool.pyscalarfloat.pyscalarint.pyscalarstring.pyscanner.pyserializer.pytimestamp.pytokens.pyutil.pysixsix.LICENSEsix.py__init__.pyimoves__init__.pyiconfigparser.pyiarchspecCOPYRIGHTLICENSE-APACHELICENSE-MITREADME.md__init__.py__main__.pycli.pycpu__init__.pyalias.pydetect.pymicroarchitecture.pyschema.pyjsonCOPYRIGHTLICENSE-APACHELICENSE-MITNOTICEREADME.mdcpumicroarchitectures.jsonmicroarchitectures_schema.jsonctest_log_parser.pypatchesjsonschema.patchvendor.txtllnl__init__.pyutil__init__.pyargparsewriter.pyfilesystem.pylang.pylink_tree.pylock.pymultiproc.pysymlink.pytty__init__.pycolify.pycolor.pylog.pypty.pyoptrun-find-external.shspack__init__.pyabi.pyaudit.pybinary_distribution.pybootstrap__init__.py_common.pyconfig.pycore.pyenvironment.pystatus.pybuild_environment.pybuild_systemsREADME-intel.rst__init__.py_checks.pyaspell_dict.pyautotools.pybundle.pycached_cmake.pycmake.pycuda.pygeneric.pygnu.pyintel.pylua.pymakefile.pymaven.pymeson.pymsbuild.pynmake.pyoctave.pyoneapi.pyperl.pypython.pyqmake.pyr.pyracket.pyrocm.pyruby.pyscons.pysip.pysourceforge.pysourceware.pywaf.pyxorg.pybuilder.pycaches.pyci.pyci_needs_workaround.pyci_optimization.pycmd__init__.pyadd.pyarch.pyaudit.pyblame.pybootstrap.pybuild_env.pybuildcache.pycd.pychange.pychecksum.pyci.pyclean.pyclone.pycommands.pycommon__init__.pyarguments.pyenv_utility.pycompiler.pycompilers.pyconcretize.pyconfig.pycontainerize.pycreate.pydebug.pydependencies.pydependents.pydeprecate.pydev_build.pydevelop.pydiff.pydocs.pyedit.pyenv.pyextensions.pyexternal.pyfetch.pyfind.pygc.pygpg.pygraph.pyhelp.pyinfo.pyinstall.pyinstallerCMakeLists.txtREADME.mdbanner493x58.bmpbundle.wxs.inpatch.xmlspack.wxs.inlicense.pylist.pyload.pylocation.pylog_parse.pymaintainers.pymake_installer.pymark.pymirror.pymodule.pymodules__init__.pylmod.pytcl.pypatch.pypkg.pyproviders.pypydoc.pypython.pyreindex.pyremove.pyrepo.pyresource.pyrestage.pysolve.pyspec.pystage.pystyle.pytags.pytest.pytest_env.pytutorial.pyundevelop.pyuninstall.pyunit_test.pyunload.pyurl.pyverify.pyversions.pyview.pycompiler.pycompilers__init__.pyaocc.pyapple_clang.pyarm.pycce.pyclang.pydpcpp.pyfj.pygcc.pyintel.pymsvc.pynag.pynvhpc.pyoneapi.pypgi.pyrocmcc.pyxl.pyxl_r.pyconcretize.pyconfig.pycontainer__init__.pyimages.jsonimages.pywriters__init__.pydocker.pysingularity.pycray_manifest.pydatabase.pydependency.pydetection__init__.pycommon.pypath.pydirectives.pydirectory_layout.pyenvironment__init__.pydepfile.pyenvironment.pyshell.pyerror.pyextensions.pyfetch_strategy.pyfilesystem_view.pygcs_handler.pygraph.pyhash_types.pyhooks__init__.pyabsolutify_elf_sonames.pylicensing.pymodule_file_generation.pypermissions_setters.pysbang.pywrite_install_manifest.pyinstall_test.pyinstaller.pymain.pymirror.pymixins.pymodules__init__.pycommon.pylmod.pytcl.pymultimethod.pyoperating_systems__init__.py_operating_system.pycray_backend.pycray_frontend.pylinux_distro.pymac_os.pywindows_os.pypackage.pypackage_base.pypackage_prefs.pypackage_test.pyparser.pypatch.pypaths.pyplatforms__init__.py_functions.py_platform.pycray.pydarwin.pylinux.pytest.pywindows.pyprojections.pyprovider_index.pyrelocate.pyrelocate_text.pyrepo.pyreport.pyreporters__init__.pybase.pycdash.pyextract.pyjunit.pyresource.pyrewiring.pys3_handler.pyschema__init__.pybootstrap.pybuildcache_spec.pycdash.pyci.pycompilers.pyconcretizer.pyconfig.pycontainer.pycray_manifest.pydatabase_index.pyenv.pyenvironment.pygitlab_ci.pymerged.pymirrors.pymodules.pypackages.pyprojections.pyrepos.pyspec.pyupstreams.pysolver__init__.pyasp.pyconcretize.lpdisplay.lpos_compatibility.lpspec.pyspec_list.pystage.pystore.pysubprocess_context.pytag.pytarget.pytengine.pytraverse.pyurl.pyuser_environment.pyutil__init__.pyclasses.pycompression.pycpus.pycrypto.pydebug.pyeditor.pyelf.pyenvironment.pyexecutable.pyfile_cache.pyfile_permissions.pygcs.pygit.pygpg.pyhash.pyld_so_conf.pylock.pylog_parse.pymodule_cmd.pynaming.pypackage_hash.pyparallel.pypath.pypattern.pyprefix.pys3.pyspack_json.pyspack_yaml.pystring.pytimer.pyunparseLICENSE__init__.pyunparser.pyurl.pyweb.pywindows_registry.pyvariant.pyverify.pyversion.pyspack_installable__init__.pymain.pysystem-group-spack.confspackCHANGELOG.mdNOTICEREADME.SUSEREADME.mdspackCOPYRIGHTLICENSE-APACHELICENSE-MITspackbashspack-completion.inbootstrapgithub-actions-v0.3clingo.jsongnupg.jsonmetadata.yamlpatchelf.jsongithub-actions-v0.4clingo.jsongnupg.jsonmetadata.yamlpatchelf.jsonspack-installmetadata.yamlcshpathadd.cshspack.cshdockerentrypoint.bashmodules.yamlpackage-indexDockerfileREADME.rstcors-header.confsplit.shdocsdockermodule-file-tutorialDockerfilepackages.yamlspack.shgitlabcloud_pipelinesconfigscdash.yamlci.yamlconcretizer.yamlconfig.yamldarwinci.yamllinuxaarch64ci.yamlci.yamlppc64leci.yamlx86_64_v3ci.yamlpackages.yamlstacksaws-ahugaws-ahug-aarch64spack.yamlspack.yamlaws-iscaws-isc-aarch64spack.yamlspack.yamlbuild_systemsspack.yamldata-vis-sdkspack.yamldeprecatedspack.yamle4se4s-macspack.yamle4s-oneapispack.yamle4s-powerspack.yamlspack.yamlgpu-testsspack.yamlml-linux-x86_64-cpuspack.yamlml-linux-x86_64-cudaspack.yamlml-linux-x86_64-rocmspack.yamlradiussradiuss-awsradiuss-aws-aarch64spack.yamlspack.yamlspack.yamltutorialspack.yamlnersc_pipeline.ymlkeystutorial.publibspackmodulessetup-env.cshsetup-env.fishsetup-env.ps1setup-env.shspack-completion.bashtemplatesbootstrapspack.yamlcontainerDockerfilealmalinux_8.dockerfilealmalinux_9.dockerfilealpine_3.dockerfileamazonlinux_2.dockerfilebootstrap-base.dockerfilecentos_7.dockerfilecentos_stream.dockerfilecuda_11_2_1.dockerfilefedora_37.dockerfilefedora_38.dockerfileleap-15.dockerfilerockylinux_8.dockerfilerockylinux_9.dockerfilesingularity.defubuntu_1804.dockerfileubuntu_2004.dockerfileubuntu_2204.dockerfiledepfileMakefilemiscbuildcache_index.htmlgraph.dotmock-repositorypackage.pytmodulesmodulefile.luamodulefile.tclreportscdashBuild.xmlConfigure.xmlSite.xmlTest.xmlTesting.xmlUpdate.xmljunit.xmlspackspackcachegpgREADME.mdjunit-report/etc/profile.d//etc/skel//etc/skel/.spack//etc//etc/spack//usr/bin//usr//usr/etc//usr/etc/spack//usr/etc/spack/defaults//usr/etc/spack/defaults/cray//usr/etc/spack/defaults/darwin//usr/etc/spack/defaults/linux//usr/etc/spack/defaults/windows//usr/lib//usr/lib/spack//usr/lib/spack/env//usr/lib/spack/env/aocc//usr/lib/spack/env/arm//usr/lib/spack/env/case-insensitive//usr/lib/spack/env/cce//usr/lib/spack/env/cce/case-insensitive//usr/lib/spack/env/clang//usr/lib/spack/env/fj//usr/lib/spack/env/fj/case-insensitive//usr/lib/spack/env/gcc//usr/lib/spack/env/intel//usr/lib/spack/env/nag//usr/lib/spack/env/nvhpc//usr/lib/spack/env/oneapi//usr/lib/spack/env/pgi//usr/lib/spack/env/rocmcc//usr/lib/spack/env/xl//usr/lib/spack/env/xl_r//usr/lib/spack/etc//usr/lib/spack/etc/spack//usr/lib/spack/external//usr/lib/spack/external/_vendoring//usr/lib/spack/external/_vendoring/altgraph//usr/lib/spack/external/_vendoring/attr//usr/lib/spack/external/_vendoring/attrs//usr/lib/spack/external/_vendoring/distro//usr/lib/spack/external/_vendoring/jinja2//usr/lib/spack/external/_vendoring/jsonschema//usr/lib/spack/external/_vendoring/jsonschema/benchmarks//usr/lib/spack/external/_vendoring/jsonschema/schemas//usr/lib/spack/external/_vendoring/jsonschema/tests//usr/lib/spack/external/_vendoring/macholib//usr/lib/spack/external/_vendoring/markupsafe//usr/lib/spack/external/_vendoring/pyrsistent//usr/lib/spack/external/_vendoring/ruamel//usr/lib/spack/external/_vendoring/ruamel/yaml//usr/lib/spack/external/_vendoring/six//usr/lib/spack/external/_vendoring/six/moves//usr/lib/spack/external/archspec//usr/lib/spack/external/archspec/cpu//usr/lib/spack/external/archspec/json//usr/lib/spack/external/archspec/json/cpu//usr/lib/spack/external/patches//usr/lib/spack/llnl//usr/lib/spack/llnl/util//usr/lib/spack/llnl/util/tty//usr/lib/spack/spack//usr/lib/spack/spack/bootstrap//usr/lib/spack/spack/build_systems//usr/lib/spack/spack/cmd//usr/lib/spack/spack/cmd/common//usr/lib/spack/spack/cmd/installer//usr/lib/spack/spack/cmd/modules//usr/lib/spack/spack/compilers//usr/lib/spack/spack/container//usr/lib/spack/spack/container/writers//usr/lib/spack/spack/detection//usr/lib/spack/spack/environment//usr/lib/spack/spack/hooks//usr/lib/spack/spack/modules//usr/lib/spack/spack/operating_systems//usr/lib/spack/spack/platforms//usr/lib/spack/spack/reporters//usr/lib/spack/spack/schema//usr/lib/spack/spack/solver//usr/lib/spack/spack/util//usr/lib/spack/spack/util/unparse//usr/lib/spack/spack_installable//usr/lib/sysusers.d//usr/share/doc/packages//usr/share/doc/packages/spack//usr/share/licenses//usr/share/licenses/spack//usr/share//usr/share/spack//usr/share/spack/bash//usr/share/spack/bootstrap//usr/share/spack/bootstrap/github-actions-v0.3//usr/share/spack/bootstrap/github-actions-v0.4//usr/share/spack/bootstrap/spack-install//usr/share/spack/csh//usr/share/spack/docker//usr/share/spack/docker/package-index//usr/share/spack/docs//usr/share/spack/docs/docker//usr/share/spack/docs/docker/module-file-tutorial//usr/share/spack/gitlab//usr/share/spack/gitlab/cloud_pipelines//usr/share/spack/gitlab/cloud_pipelines/configs//usr/share/spack/gitlab/cloud_pipelines/configs/darwin//usr/share/spack/gitlab/cloud_pipelines/configs/linux//usr/share/spack/gitlab/cloud_pipelines/configs/linux/aarch64//usr/share/spack/gitlab/cloud_pipelines/configs/linux/ppc64le//usr/share/spack/gitlab/cloud_pipelines/configs/linux/x86_64_v3//usr/share/spack/gitlab/cloud_pipelines/stacks//usr/share/spack/gitlab/cloud_pipelines/stacks/aws-ahug-aarch64//usr/share/spack/gitlab/cloud_pipelines/stacks/aws-ahug//usr/share/spack/gitlab/cloud_pipelines/stacks/aws-isc-aarch64//usr/share/spack/gitlab/cloud_pipelines/stacks/aws-isc//usr/share/spack/gitlab/cloud_pipelines/stacks/build_systems//usr/share/spack/gitlab/cloud_pipelines/stacks/data-vis-sdk//usr/share/spack/gitlab/cloud_pipelines/stacks/deprecated//usr/share/spack/gitlab/cloud_pipelines/stacks/e4s-mac//usr/share/spack/gitlab/cloud_pipelines/stacks/e4s-oneapi//usr/share/spack/gitlab/cloud_pipelines/stacks/e4s-power//usr/share/spack/gitlab/cloud_pipelines/stacks/e4s//usr/share/spack/gitlab/cloud_pipelines/stacks/gpu-tests//usr/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cpu//usr/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-cuda//usr/share/spack/gitlab/cloud_pipelines/stacks/ml-linux-x86_64-rocm//usr/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws-aarch64//usr/share/spack/gitlab/cloud_pipelines/stacks/radiuss-aws//usr/share/spack/gitlab/cloud_pipelines/stacks/radiuss//usr/share/spack/gitlab/cloud_pipelines/stacks/tutorial//usr/share/spack/keys//usr/share/spack/lib//usr/share/spack/templates//usr/share/spack/templates/bootstrap//usr/share/spack/templates/container//usr/share/spack/templates/depfile//usr/share/spack/templates/misc//usr/share/spack/templates/mock-repository//usr/share/spack/templates/modules//usr/share/spack/templates/reports//usr/share/spack/templates/reports/cdash//var/cache//var/lib//var/lib/spack//var/lib/spack/gpg/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:31445/SUSE_SLE-15-SP4_Update/351774869a908b1676e03ca2007c05fa-spack.SUSE_SLE-15-SP4_Updatedrpmxz5noarch-suse-linux                  ASCII textdirectorycannot open `/home/abuild/rpmbuild/BUILDROOT/spack-0.20.3-150400.9.1.x86_64/etc/spack/compilers.yaml' (No such file or directory)cannot open `/home/abuild/rpmbuild/BUILDROOT/spack-0.20.3-150400.9.1.x86_64/etc/spack/packages.yaml' (No such file or directory)POSIX shell script, ASCII text executableBourne-Again shell script, ASCII text executablePython script, ASCII text executable, with no line terminatorsPython script, ASCII text executableemptyUTF-8 Unicode text, with very long linesPython script, UTF-8 Unicode text executableC source, ASCII textUTF-8 Unicode textunified diff output, ASCII textUTF-8 Unicode (with BOM) textXML 1.0 document, ASCII textXML 1.0 document, UTF-8 Unicode (with BOM) textASCII text, with very long linesHTML document, ASCII text RRRRRRRPRR48fWme@j}^autoconfbashbisonbzip2ccachecmake-fullcpiodiffutilsfindutilsflexgccgcc-c++gcc-fortrangit-lfsinfolibcurl-devellibopenssl-devellibtoollibzip-develm4makemakeinfoncurses-develpatchelfperl-basepkg-configpkgconfpython3-basetarxzxz-develutf-8d7d99e2c122734f62d34c7cac3355121753bb615bf2c766a754ca0431de8453b?P7zXZ !t/R%]"k%e$9?rїMW(H"ޭKvtFhn1R:K ی|Cy'”swɼppEUf;X6ybhG{0=R֔YzYnBYkqюrɱՂŋ`<NkE7'U#j, БM\ Nꮁ=O)#%V(j ۄ|\%~r+6il׻ポ[h%N|bSޮZ&x'/e^mOBqK)m-iTm:KOۣ{;҃~{VKZ$8um`~|2;ւ@}׿KQ 8ʡ*;Za?1SnO_4:4VHa}XU-~6BT {gN]=Jm"RM\E+_ Ty@Os gS̿݊kĦs%P+6- PᤠV7c8Z*vh?-0h\=FMόVd*ؼ S-k"VABD32NhHAǬgZK 0 Ec)2ǽ^N3ShFmU1+XSZ~`EԳrbX tRzMRm}UA/ӐyU :%; rs@Dwja1ӌ06l?51xb>;6G4hKU(0=YĪ! J@w.fyF‘/scE዁\p鰟Xڶ4lk2sljM|KM܋q氹ûPD@R MOl{eЀ}_XIt^U  0 !dǰk`0E%]בm❏5PޢQU-b{8rɶWƔDKpG?\?ⵡl:Cϼa{׃vY'6q¦Zp5GK>tڌ{&-~}5Odl%Hй&`[tN:Ȏ kC_wa: 7nr~ x:Yet9tXsU“\3J-\@j5͚< ^Ӎ4J{ כCIN^\-ZE o~DeiU[g&ÄYY56 ɖ=,uH6cD,nvCpůx/ߜjΝP67q*de[I.Ԃ4fb H@n7?k OKR.ޠ'f骷焨hZH~帯 wUxy7p )q%pS`^xZL(2),QV5/ӳwpP}U:'+u7t sMn[+;#1OB6v K*7s5,fU*s`;$H[DdU\F/0ꑣ- b \*7^^c)6X"#Zp 6L'U[ zpķGdJWQ^eIOE w96*A.,ݛNE8=8`{0lr{3SPԕ] exRIWOn<4{f95M&W+B@R|LUѯ8F%U* '^{i.H#}+)v S"ȋI P _Z apuA hyMRM9é"Wƒ2|M^|/>G0;Vvgf@/Za)=E, dR]Ʉ/BG1dX3*6!~ve[5m 7 e[:`]YI/CEZ׽60 ߱Eic&X.A2@߭D]間 ˏL4_!˰/}]7 7u[@ɷWncOVz(TKձd |.ɷԲ̵^㋂W>AXggzq{A<0wvD/KxT_9ƾ RPoo$i&EIAl.ki) GRBxDlzyү d:BXd3`;҆A,SR 'N3;^Wgi4jt 2mRVFeKdKzC݃C:ez.>Lh-yɲ[2:/xwS$m>vxy雔U|,Ҕ^㊈SY< +]lk|[wԮxRRz/(XX6*<5)ךqǸ\rK-ŞBĦ&$ɡ >4~ӹ`'o($-d;s>`)h6k:?/di1lx?Xw1ِ\Hzi6WoY5LkR +:hW}Pvv 0ԋ5,nR37 Vﬓw>W>/]ǁh7V5bW݈쑓f*p<)X-1txxӇ2b$TJh|VΐR˯o<꠿l6Y/q Rqa]LKJ5 q6-H,8hhIPf no/Na}_CEW*( aF_rlMZgbBB zCAϚhU 4kH4ah U)K3ĔO6Wt0ΓkT[9y PDλA1.aOA "5KB~%ҙ:0YNvtSak\4}bSOG8R-)0( VlTH64)܄Ѕ b8w7ZQ EkK^EJgOSxbkI%0rqI' cj|Ay`TpIXT ftX@܅4e}OyEy]ՏD<*q }-u)rBRwV|_A>7Vה6 sΚfiI8}탌3J`=ZICx|OsTqBz+Zr=͹ M#зTo--)whzk;y~4ж "w-5K;u |$  `YR]K-obWH7$ <@7$-*07҄h۞Ըba ŞacQZY4!kkkDO-kp,aلYILWO vG5pd]O$F:Oyx3p;9gZq.2m[y: V~NRA<uy d%Rq%_. fy#B__[g- ݮXD3ЂIޱy2B{f4gỷOA$L'];RDWus<,ZB֟#s>:$kicF r<' ~H@g*ޒL1GfnCkɰF^Su ( D+Ҍda&\Y/6Sp56D7YM1~7m󶦅 #59s=w+H̍l2 J@nIC%kҺO^!N',J4M^S'}Ԓ@.m;aJF-*9{g+Qfۋܶٷ&"&hGf~pY`GoZE6舼[9V!n[-7c# KUlP6xH&|782ږi"^B!1|8Gc u`rd^!ٝ|(Ű%t0s7չCx^ oHwtbQ wc&ԒD(s>qH*.ę>^NЦ[ j K:0i%ݿ"PfЧ.Gu/."xYGTؘ@gT u~E5}@s΍\&,ےnk&ּk[kz6Z j?FH ETcXͩG/y/ #% 5}yFS` Hl!j\-m68W5Ob%/W]e: c,խA /_ǯfl9ЎWlWZ i\BނY3A;,3s+F*xLh#˨0TZnqJٷ'(by,K^YttzZJvD6,m 5/O:GCFOW*JıS9Xrر{naR-(I g.SqR!M(uCY+YryS g("sym^ޖ0tŜI\'>ӳ=B"jKFBD &\lk_"<|ږ"5HR_ /5]ɶהrCyZ>hq _eLB[Վ1Oe k|aHZڊp&1L S.grJ/laFb<"mHC3Azt1'hW2{hMxo4'@ᇣL!weС*.W!AX[\v*07u ]/ 쿻GyHxIT- 6@lZ;K!m{3q^5#|?^Ex.$&W">|r&F}"k;pXs"r?$5$VfmQ8 嬩=eӾ3Ŧ{~`YpmNTΉ#1OoI&_z\q૿uJUHU.iu4"Dy`0ylNrB չ| K֯b {VLt棛 xN.~h䚕!AI@DOY)4BXVj+4؆GIk<ǿ_7oNs(#Nb* UN0d" O2$bL%cZ cصz6 :b jmӪ\ OIR*8D`t(2k/K8R'S2DIw_ %{x~8 aZɐT_>t֓>|N3] RtQeٜGnYW"eVtҦYE\mw-UvٽhF1h G<р_A*B@fQk>X{&(\w'd-M} }qv`)$"͛ Tve࢞SʶoPX)(r4zCu`.5{ 8ucK|c/7iۯKМaNH'wzƺnyUbVH|E٫=گo 'rkA^XEGX!=%ZZ!>?3zV7I:= M\kh .wh5hBSvכ{~N*̑r_+Q7bofC" zFZQUTNO(:X V/=."U! O'/--ے>4]3DuR;6O4,S9/+()-@(Rf^!nR=r2:jzj&'; ^umvS3K(٤aYB`Xs( _SjRsf$xړ ezeDTg 4o,J Uw\ټduSwjQ \[fBh=T0m^ȵgV""̎|Pd) A+EO81Ҏ$Żgyq}Z^;\_XŻn O8iuF6(`_)nOJw78f~''_(>*5y|Gsw2N0U@2]3Z 9F;0B 9AU g؈3*e^QX' nN6W^WuM@$DWFY@I.&tuETтso݌ot.doE^Oqf\O`8 b˝97 :NMt`A։Ru«Wk^fa$#Nfjjm8: 8rk߃}_@|>UQƎ"r`xR/Հnbs:?$(rLYSg(^IM,]]`31iXBk.ڥu3"F!Yb~#; zi}P"1'"(%>SY 俇gjXTê_J2X:6n_p1mP=7ΐsRLZMHFT2>WF0л7er*-sVF 9H %Ywz]Uҩ C7ԟ"R':OO$\|Y E:ЀeTҸXje Fơ< Z Y%YI/5I?M'3 B`plwtQoQݕNPPV;pZ1#Q;|.PBcUWrjsHd5T^~.ωp+ak?Ǘ-ttHVEhfeNd2)2fVs c >3gg'AJdXmsh!D1PJpW,^1*/rd#&m^la[)A3 ô>R408oZmq a&A' #o.+-M7@:Ӱ!~jE,}[!d=hrluEQD9Q䫫rQZ\%,_ƵQ&"Ԃ 48tI_<d w7b}SC1%d,rD>sR n7BXBteߴԈh q㶟G, uk