libc++-devel-15.0.7-150500.4.11.1<>,fp9|f]wZr^}T\!`|zv=d1Qlyx2Qa/lݎl9 +ΰr,dUL'`hmcZV`L:͋>)ـm(p됆[66.D5+f {ef񵦉N4t"U3n FL([):K\9ENF+wUϟcŘuwsj<%\H'J2,߳>y* HIC@KPn:Dy|' Y2b\whR4w>@y?yd $ XF \|BB ,B B (B B <BDBB##B1101P1222"(2)82095 :D'> @ F G BHBI$BX(4Y(@\(tB]5|B^e)bjckCdkekfklkukBvxzy<yLyPyVyClibc++-devel15.0.7150500.4.11.1C++ standard library implementation (devel package)This package contains libc++, a new implementation of the C++ standard library, targeting C++11. (development files)fh03-ch2bdJSUSE Linux Enterprise 15SUSE LLC Apache-2.0 WITH LLVM-exception AND NCSAhttps://www.suse.com/Development/Libraries/C and C++https://www.llvm.org/linuxx86_64~  Hn}  N!O<^Uo_ ' 7n%  ,+N N +Y S _{ % $    0 s g y *  lo , V * #    N I t Lgm  @ O   ~ B l G (  `   = ^  8 P  J%X J  ; )  Q^  0!3 9:M J9(wi/& %} 3A2+Az'\ RzHR .:1; )  o@& A :VhN|{Wm A$ 8H + B!  : 1ab"*#} yE  z v30 z0w/z 6,)WD1LBF>+qB{- XOk  %*(r"XC O P S$  %Ib(-S' p  4 P2%<&(HV t& >' @@X b1 $L@ aZ6? A t ;; ritC "z$ 9$a"/W/# ^"z1#X {J Y /\ D5#6.= 7  [K N(06y|Ia4)It1f= K 1 J'   TEP ja !VZz3.|i#%37! [5~ wi a  n5l" 'z.#Z{wPq4zH,V s 5 ?L{ @y RR) = NS)C }{j|CQWCHP  7~ ?E7%  @/' C]3IP~spX bhI'lVzEb o2Gza.r{ ]I8:XWF1EG8>Ah,.$L?ffx #;IfMu.Q)|/;  8<Rv-%7-*#j 2-./%(g! 2\;%AAA큤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큤fRfRfRccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfRccccccfRcccccfRcccccccccccccccccccfRcccccccccccccfRcccccccccccccccccccccccfCfRccccccfRccfRccccccccccccccccfRccccccccccccccccccccccccfRccccccccccccccccccccccccccccfRcccfRcfRccccccccccccccccccccccccccccccccccccccccfRccccccccccccccccccccccccfRcccccccccccccfRcccccccccccccccccccccccccccccccccccccfRccccccccccccccccccccccccccccccccccfRccfRfRcfRcfRccccfRcfRcfRcfRcccfRccfRcccfRcccccfRcccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccfRcccccccccccccccccfRcccccccccccccccccccccccccccccccccccccccccccccccccfRcccccccccccccccccccccfRccccccccccccccccccccccccccccfCccccccccccccccccccccccccccccccccccccccccccccccccffifcce7566889258ecf9f8d029c05b9dee967da96660b93e31ccae6ebeaa53f303ea8fa718e0f3e1351d00cf7aca82e9cce4e3e4bd4afc716f209aaee9890ae59fee1cc6142c5a9032c8dd0417e696f73657b018296f3ca1273df05276811673cf05ad0a0bc4352289c3d9da221909507dbd375ff85ca422f31459067901d8969bdbeb4d58dd2e5f7ef4f86fef9e2a9267fbdd4784305d9000d6eeaa8e88914daff539fad0a8040e24562ab8741fedd4ee31797d562c72677b556a26688c378ce6ed251006035c6f1dc05271b6333646b20a2124568963c50908ca2067548eff8fe78ca540178d256f5001ddc0eb63e2dd9e64fb48731fa708ee6d613b1e21f76bc8e7e5d728ae3b46fe5582d411fd36b88d46eb4f3a879c887a7592addfa3165b6ee8a15e79340f9cbd7c6ec1552799b8cf048a190c51fc10fa9be63e20bca0bab84b1981d2f7cf23a09b0156b5ccb48a0b700225f03dcc5d845062dd54a24a344807073f411b4659e95eca12c12a20e35bdc2be9c4e21be9ac33954bf9ece34e86b6fa6056ba6c613f82d2bb0416718318070ae695639c541a68d5764d6a498c5ecc96bbfc29fb8341c3dbd0b9d73fcd898b83cb69dfa35bea79b31f956b991ec966dc17bb32d2b070ed59816d4eb95b4c1adbd8ad35f4c121695b54e2902f9ac1e24a8af9178682594132cf6305a8ce6256dc6f686517f57ef18b93242864e71485f21e11dc4437e42870fd3a83c896a7bde716fb2be9057062395d9eee01d0c710e8300de2e95300a1baad6eaf387eba3b0822422dc97960bbdeb74952e783b44d6d9b99d96e8e553a37c45d18b1b0e41e8fb5e20a6217b65c3c4db77e77d7b2b3ed66ad05acdbba3c01e8d380c31040a0925364a0065e449c73b7faa32ee8446171a422301aab8ed179300ada7339d566b11dac91c8710d4f3e68793c7283952100d26455eab670da20f83ecdbf53b55497242f5f1e2be46449b8d7016c2b94e624d36eefae8821f5b06d9531d087d88b9902c46c8bd8e765849bed4156ccb4de9f5f6d6b2218cb2f9db1c1bf8b6edf57cf8c092a979fcae24948d361ef8d196bcb8fc0589da436744c536a911eece2d0e2ded9db305561207a06e85bf79b5d67671d63790975fcc7f3215b12abbc772ca0c59b19518af9eb835ecabb807f635d3a7c7de8845e60e2cce0282182f3da3e387b908c8eb78440cffa7e66efef8c842582ff7deac0f6ef830320d67d4c3911b8a76a72af1ca70dc042b5f7cca27130ff0d8596a62e35228f4555df64999aee84a06d55ad7c4b1501e5c62280574960bae97090a59f18ab8729c9e1f37009609f4653bf070aed69036a83859585867e410970ccaa0dabb2403f09a25144bce2a716ed2ae3e8b4b500c1c880ebb4886477b7a9faac8781fe9f7457dba491fc927f0b9020c13a7e3b05ac8a9e0e237a5ecc97804ebf7ef33e2ed2ffeed5506697ac72c48dd2812f8391003af013c91fa0f14a23ec30ceaa3d5ac76da85c241467ad444e9943fc16c3016c8d2aeb378173c9fa2b507213e07bac3ec5a920e7c674b1be6a7333c860d444662b951065f85517050fe407f08259ffad08ae822a7eb7e07d4338f57cebf4b4014edd75ac2662c503a3085a9c5e8b70dcab7daff20ae19596422f8683e03a8e92c799f7c258249e8bf125f7668284cc6d1f0d0e89707fbd3f95f68928b19373d29e58041451935c407d5cf631019209f26ac66efba5604c68bedf069eae98296f8a709840ad40ab9f34dfeef0549efa0c039479f74e50274ba97c2b2935a6bbc033c8f72c1990465074babc18ec61470bd88627928143fe1706c0564cc7eaf64f6a201720dda388a12d72093b9379c2564d84c18aed5fb2042cfc3d14e2f23a837d0df658167324d38739f8051037891b83204ed04e9be0d3723a449d08d06a312750f616b661db7c6a9c92f037f0c848935f7391145e4f71468f3cb5ed10150b5f54297f89fdc47b3ffc4394e1d7e4c5c2b286abdc3c29a4a4e36c1c873d71d10d0430ad4273f19485fc8ae5a1b50b59964f6f6c438c72f140b0bf11df6b9c4d1fed421228363f312925eb16a5831d1ccf9424c7e5473ce56dd939e6517ef3f09bd2eed5656e5b301701dcf3ee2d5b836923563f33aa3af64c5f3e14ecbab437c2b600db36dc548a6ac4776436bc83ab6c58a76cf8e72a487ed9e216edf69ea1ae2d3e1afcea446fdc21f597ee2b915ce087d3a29fa0286476c0904a693fa51ad3dc19c0501c299ab4c9f84c4362c95703b55659223f29648fa642474124dfb8338296848337fbf302b79a9ac01a7903b7e3d13d6ef3e56bfa7ad0f613d258c77839f7ba5320430c2c44a53b2a204e3b9c77571658615b5905ceabd71be3101dafe7b8b35b96721f304aeb606fcb9f805edab0f6c8bb6e6d1dbbe19a78763f5b6adb177d2b4a221ab028876f63a98af88e8581f4d6e4bbfe93560fc9a82121f2c1571cdecf4c86bdf789cb05fe30ddac596378bb0ff13c5d8787a0a8c3f25d1499298e66c5759bdef958d4794673886dbaf15ebf3f3093ec0ad601ee0f18720f7683fb3096ad1bc58e1f574b4e15785e5a4b9ab2d57c970c8ffb1f4581d5b77bef52dbed9478a44ca9ed7e7759418377a727ac671c27e12790770ac0ce27bbba234ee7f623111a221a508b53a773520e778df4fc7a76363804dba4d29f0f8f9d8bd36e689b9e0152c1647c275c112fea5fb477b6859a2b2f213d905d28183159731d77ffdd9f72f4a0cff0abf8ae1e876c880557273baeea9af02c1c133312a3f3426cbb918b6aff26696501a78deb6621076ff44c5c7e5da4e13bfcbedf16e907cba7347daf81851ca471f569eb892266545bceeb9a363f9a94c14bdee23efa285ebcccb97cdd27ee39d8ddbb60a9b15741a49c48368080ce3752fea1cda429d6e7d5b0d70986a82dc83c5d73ed51aa990b2322b517570ad07c19a5a4790ee334995d6debf9afbf9fd2e0476b41ce576fcf056a3607fdfb200eee7ea23e2ff4742189ec17d318a61a30391d4bdcf9a4fffaa488b05aceaa370907f6e82ab376a1dde2d69b0e573d393259aa0bf88f5d8378db190281c176b883eb7914898ce2b8d8995e69cb2a7339ac5f6cd6cf7966413a37b5e6df37a6df825b8cf2e561c152288626fa5679239eddfa674000b79484af364e8b796cef59df0a68ab92e62a30a522c5c99e986fc58bae33debf559e15e5ea3bb3148e2ce515b99e6af56c61cc31053ab250d701e11cca62721823cbfbbdc4ff3675e2ed790aa24a220ad6b86b8d464553eb1812b1affe86cd93f7a8c60546da5ddd6a2a2964aa5a381f8bb75932509c30728491cd77b6663aa0a649d36db4dbf469b34a66a259f41de236d043dec961c27f8b8d440e4d5fd8bc4657d52f6ae38e2ab321cc9efc952078d935fc6e744f5212bb3000c472f6798977f681a07748e5b1ff7d899d399fc03bf088c099ca3b3a283a41c1be66b37a4fd47b340dee8603e30d230a846e42192a5408a99f49844610664cdc4c65ffb18fa620d62fd42af62466d5079ec2e366dea377cb8f3e9e8358d4c6c65a3f91f5bf52711c8fd19c063eecb4f8aca2d34442dceecbacce6bbae4875099b48ccfe29f90e319a99c7f8fc004447eb988c97e0b194b24b146d61b0c0cdc2bda237b933a1157489d37a8202a36ed8f005f094c0d690c49c06253b3cca6459cdb0fad885f87ec7790f06445b2523392f6d13280a56c445982c29e83747c15895735b434e59be14a64f92c9572a7b71baaac1b8336d99f31f7aeb815ef77fb936faf1513ca9ee89e82e3c04282dbe7c0ab2a6792cfe1e5a4eaeb226e9f4fb4581dd10a70be00ca13cde6259d4e755ddc4ca89b4bbdc6d13ae414df878cbc6e4c65ba62d10e6698be7a8e7a01175bfdbeaf3e27eb7b4ccfd6fd1da5898a91953085746323925199c567f88f1ac46dd9bbddffde83fe8714d481ef3bda5c19d9af5978bab633f14ab6227a59554cb9cc7b91b4d27d328a38f5fd883523edb85a54af6eef0bf509edbee314e91c782a167bdb9ac35b29209d723e122b6e9aa041bb6104f5b3e03dd0e0854a16e2f0f62562e66884f112d5dc1107e982dfa08c92252448ecf56f854724d79d1eb8a03091d19aa7c0dc251f355a8ad28888ac4c4f5e4f24ce0129693e6f2c581741c399701b3b4b34d756d49edd5cb3183d81b69ece1d226a0e3960ae1f4f9f3884802d564515501512c341cfefbc9f247c7f3147eea4249810e00c125f3379c52d2ebe7bb067f04b303cf6460e0b177cb6adfe5cdc113653f89c9e08b8aed09e1712c36a7dd5643deac14e38046f6c37908e420b08057bf9393dc5458a776ac0912caf4195a55a089e7aedfc7087938e337dbeb986f63423f8f0aad41f1d880ae39d815ee59f1ee59fc88001fff0779a64b1ef4b1435b931a324ecb696ab6404451d5294a04e4b6daa9b5e3f747e71a3db5684963db8dd6600b8df63a47ef8f4775cc586d70eb13d43f25238b712a223a5ca14226a1f1fd564d5b054e772d698e2d7f83901a54479f01554cd98434c2269e9672f69eeabb4d12758f749dea3a8c0cdf2a876b80ffd816d31eea3033824ddf3b5d4f8129e0645ca3d7ebb7e7d1eb3aff77294442e47c9e8ba4017d27176e066727d2f60b7e8eecf1db736dc9b9521bbc1c31f968d106a53c01a711ac574b0fd11e802ed94af0f0854253cbabc2f02be753c14c1f32718c1a5cafdf7137a6fbfda3de4621bbe3bcd36919731c228f89f9ff6d02b7c5613d0b70d4e14d4fd9bd2fd96988e0fefcccf5541432c610243e659f442162aa56fe8c9601ddeaa27d16fb3806e3432d103ce580dd73dee0d6da45619a8131071eb204866553b41066ff2a3c22f4acefadeb3067686ef6eb62ae20ad85ac0686d06665641e8fb1cf31d370ebe5068bdacabbd75fda562a6ed410c76c910b9f5bd173c279d879847c4acb1142d41e50917a2ba3296db690c381266f0aad5b62095fa0838bf9483a0593e4c93dc3138d0f010975c1c400216958a6cb46bd2af65ae553097c900d165eb4602492f73517d6312b98b3d9bee6756fe759e0e971574c6a641fc4ec356521165fa05588d047c15e90d1ca905d21d9bdc0ed3b7498a1d2ae4a43c50123a589e3e6e4f6be5f30a649d9601070a753669d518db94e1a6f56f375250ac2db637bdbb0703ff42c3648618fb26611f51548321cf8394762a781d539808783300236f83ef90bb274a602f4a51ba5d6022ec69c6215f165ac4b6836a458a4e13e234fa33e7baf23dbb5fbd71301353d4e93e34a4539e3b1f1c1e0564dfa1e5204e841ddb5bb30b7d146a4a68161082e681547ef631dc4561b1ee1a755c23b43c2ee256b57c63f3cb0f7fd53e932be97f02ee0fde2aa817a044870fdf08abd8a7bd84124c0631576a996e830346a0b9eecb09231d226242b1fae6a4f9c6d59ec3026baef2e5db0eb0074650fd2dd3338496ecb587c65d8bb01078a10898440de74b1d479c1aef1ab3795ba90beee44a99f7e9a9e0c4b134f119ed5187a288c3a894fea6cc3c1bb889f33bcd25c91eb1a6fc98efbd80b38f9e743d7973055ce756f36fe807412529cdc9f83a579c2031ace544c3867d473a10804dc9965a96ac1f8e9f03b60e8f94f4ccd6d19160d48540d23b41c688f92b130b693445d13765b9fcc4ab8cb077190ba3e8bbafde6752e077b8a54ae46d5f4652417c23f18bad62fa350513ac072ca53578f880b9208b85e55b93fc7ba0a17028cce842fb663a94e710440769b14f9101faef1ac3f144be079c16e8361ab2e17c6762a8d5ba44bac0f394d202ba6d772d02f431479e299042644df4e92b4414e78bada2b9f438806e9bed94a67cb6ae49c74a326ccf3516ebf2f5113f58ebca68ed3bd6f939f32ec39616a32b906d7cb1b81637a8c8b8cb65c23689b427df7bed7c567b9c32d10a9dc0f7bdfcdd488e6f59af151c1a6299d264b5c49682e6131de7526cc6663b83a8c625f2403c0b19c16613df02a64ad5753b62d3bc7a52a8e1cc8b86e2dc1f2b0ae3ce23dcf85b2d82c2ade1f15fd60d9f88f617360df31d65681edab8a8653fe279e4d8b6817be082427b193d9bb9d3878cf96e0e40b9267147eec59896b9570829c4e921948c10283ec2a2218884cde97e5959c02c62cc9850ce2d5f1083f27c9e97aad6a3ba5427dacb0daae7176d9883a3e50bf373c4a1661e37e61248c4956955eeb8a3244049ac4cfc77a87541a0a0f9a98c96c5071b0eb2ab7cb477c918bb87fda4f778a16146352820bcbfbeb059978fcd4c7493c97147912ebd8472f727c8f1cc320acbdbf5af9e3797a4844926d3e2814f2693594dbc1a8708de79e4620ab42e0ae7be464d35e6d7d1d739139bff1c9e7a96462e0b945ca9efee8092ea313fe405342ea7f3f226bc2ec4d6613bb77e8510fbf848ca1f44a1324debe2ecb542c9c51909ead1d1f806b596241628713617ecbbc02b95bd253160338f40d5ea147ed53bf47421ba8cfcde644d31a4d74799e2773559a2937488c37dc13e51a1b149c8a45359f79ced73ea198caf0d098379941774ab0e19d1fab3319c4ba9b83a9019a39a9f5041aac56003a5973bda25051c6112a6363af148a294c032ca92e512d9dbb93025dc62e00e6cdedc745c30cd660db7d0c052bb7b02abd044fe42a03eca3fe33895eed0b2bebb17f94236a865b75f14c81db6fcfaefa2c0078ac39cd3f6848b6a6464c840cf2cfb46efc3b3759b0dc3f53f24af8bd01ce2916586c4de9ac3e52b3732f8e1afbd41429ccf4d340f67bb47281b824fb939ddb708b7dc4115f40dedb04e41054d0c49284b0748cfc1621f95d6131f527035d09514169a037dea36b6283f0845b20a555da1b0410287a39e65d2c03a773ffcfe0330f6d060b0d55471c18d38e56a65a55859e5654c94dc91239806efeaa2bfc5b44b2a99e6b8156734bdfcc242c1a7b129b59412221130d2f4a1cfa20f4055671ed123ad4797544640259fdced31e82d4e4ca276eeb6f17a120b61d4d526dbf4d193a83e164abd431a9a52996ee94b62b5a8db9cd5a5c1fc40f037e7587a6bbb693f03c7e034a88f706cafee9902f20cb19722cb9d687ddb33fcd9638a8809c3fdc4d3bf9486d6fdf89abf47f7c88ed459a52f2786b2cc611e3b929fa8e8019cb0daffba94bd9a658c41ce248f36ffdf031c91b024305f62f670677ec12a9ad64e72ba8345d867a1bfc12db9de7706b0765e06aa15b307764011e593cb8f58c7663db21abc31ed75f383892287156b53ecb6f4676074802e85f508971ca1167f18ae79b3a454435888e37db6264fb9fbfc1743dc83ebcf861ff1771a6f2f45bb7b0451bedb936afccd8e2dc4977b65ccdec11c532526e1a3d35b55b5ae92948423934be867a4eb624b7cd30cfd72c42f0272d7734492c0f2a930de8090e1ac2f2e8a4b21c695b71b4632eb2294b7ddb373e7e976668c7cb7a9b6cae278bdb719863f5d12f2123b1e2786509cb42f5577328578525ab64f48d60aa5d20047886a438761657bc31f0137b0211a1a1d2a87a3eb956146fd360ffd896d847b18894a4d5c305175b841e0714a3e651d43d108fd5d68f6bea0339c5f230144e282fbb8427e3a146b00db178752585b35dfda2993fd60d736460e63507523d12091529c980a5d6df51ea1569a4c9350d2864db6e5cfea99c12c78dba049a0c1c4f0e1c1de5ced6e2ec7b3cc2b593927ab76676608314d343da2d58db9ced99c8c60ae863dc122832c30b298d04ebdb28790609b906164b8db0e28fc12411ae58e716eeb42aec6dcf3568e0b9929785212c147437543911cb2d32de9ac2589e1dc536147afdfab136afc7c41313b4a5080fa036d7b3e41a425a083094f3cf4b7fcc99f0ca6bd6c6d43a8688bdc65d35ffb13d8c5eae922f633687c3d2a6f59530907f3f85fcf3b452d073a57cce6ac4d79a8a6a55a589a1a44dce5994c9aab5dede6cbed8d9b11c5c6fbce3eef2082306a31f253846d0969c450724786b68730dc7a92b99704b473833f739d139c79d5467aa69083e696b157c3d73e72711ff7552e6cd66e87d3f36aa6ef63e4b03d6bf457e59b8096b042f2580acdac64ac95437fd2fefd7875d8a1fa0d696147e65bf4ec390cfd4b2289f3fc8196a008b77b67d5eb6c18213c7001088dc25520d42d98b21f9293a825e5e7bba61e1222d25e498d6aa79e130e581d1aec4c4d99aa95ca0fa161d3551e01ab78582f461100ea379f8df9e9013f0277414b88f874e4476123021215fe20092bf712bf470d06d69ef353e13fcebe24cd9aedb3852c519d3af8a5769e6b7a25f04c914bb907ac8b71c0d6911b0261da3b24cf26c3b7268cbbfa8037e60c7e10ce33588ba648e0623687a8529aff1afa0ca4ef64775ba8b8beb935105c369bb544391a7ab161c28b98cea71cd55aa4288d279502e3acc29b77a7ba3b3bad974f7147f2338f07918c782fed706ccbcf3326801a4d4cb4d84ac035fc4e4cf270081f6f230e6c6afe0bb721fe4ee71c8a7abb2c74e2cc7cd7d26972a219c39c4b2391e361a10c65f49d102a238cc42f6e94fdd7420a617f51fb9b909117403fd435fb665cf23d3bb71327f758e1ed284e8e98d072444914e86615426195b473fab1d3860fbde74063c41efe2939396dca29346b6ee58981139ece6140a0a41c5bc0b633278fbf7524237aa41f442a1155c814f9b9bee27738a2bd171b127a26cf4e7f6832da6bebdd74731d8e79247f249831546d08c85c87033c102d44f7e06b0886b635dae06f7f5e0db6510d60dc202c641c7d21fdcbc12048a27d6171befb0f0740702ffa4d2cc17acb24b89f0c6843ffb13ac391f0cde509c72bef37752ff811e5d87e5451ddf6110ca4ce3625cb7418c86bf538925ebca8c18c4439d76ad51f71c63430a4a772b31fa2ed1c9729aa673d5c287da7af92f5a230230a62a74c95a552dc08bde9fc788866c41af53a325f8cad530ce9fc32c65d6dbcdb19132f53fba210ce5a4b9160e4b67f42863d1725a53115ebc3f21347175521ba96a77c87925af3ba7563241746aeb99892d0e017887e041cbc7e579c57d95b1eed800315f9dfed4b3e1bba6124b0421284a2c8c61d6fe788fafb03762c538e7cf360eaff21acfd18117e65a945ec017cf9ffa0556edb73d4a9b45ed4a38ec105037bfab2d190c16227291afa21add374eddeb434cbb020eef052a94cadbf6d890634c73c17670b59df2a1267537ff28d4a0cdc594cfea3cb367dabcaa424d78893cb8e24b1c2ab30f450336eb6aa904f6818b2c52fd409ac52224f3df75d4d353a0f173b532f737f5ec92b340c464e7504ac1f4f479a8ee64cd6d57495b522e435428d4e36ccfed41fc91c5e29d4259576f13842dba51f0749dd3c8a4a299299d5907113b51afecbdbfa943b80303b10cfc9ef3a721076390d2508d1d27dcad698920a0249d08d75a71eb662346662fd5b43625cfc6b501338504acefe47d34d80269a14d1b35741b5893f76f3b1710832a1d93ab733c62421057b05a42826637978a493846f318b671bbfc370fbeb415ac40edabdb79c7945a7e5f0c76a2fa5e55c1895886743680a96c38434ec85a58584cdac34f794b8b0adee75de6afab8e65cbd0344896e6f8e59410c24ba4e2f31a43d3a8602db83fea5fd3d693e32e8441f09e7da4b94f272d6488e589d4943f062ced458776c7e1c2017ecbee6578eb64c964130ccaa3819fd6e59a83126cc436cc1b69ec9ae85d8918eef7834d920b1e1b2fd3cf16a2e65a98caeff96409c9f8ac966cf25c12826d68ca950013335dec600ce0eed21ab2c076bb674133124876a29b69721cc5629e27f647d3575a5d877f92934a34caecfa16d6add8daa5aa353fe94354714276706129ade7724e1263b29a08f32893a8733fc3ab2352a27f378a4507381eeb79b5ad16364278988c8267c3a5dc9411e580a55ff64b80555eaaf0d6b258e4d710193a64ef612a5c35858c32c5c3cfcd96e3bb2290bf2389c256f204b93c350dfbf4f2b390f001ae2ca20517023d3e24dd3f8ab9957dab105182618fafc29dd615d6cbde472ff0dbc66bfc1b08b5a8211f124c4504352f976e07034e46e0462a5ab12085a31d8066edfdf2ca956c83fe1a1a33b7771617121f40d188c261bb4d324ef14c1887d0e81b94eef1cb3a97591254712485f8a1e33630bd97b6e6ce0317671fbf74d3240eab986ddaa4ef0e7e8604a7ca83459ccab62cfdbe1ee02900cf9c6ac0f90376707189af75ba61d0414c8db89dc47a72f7484212016aa1a93c08b47e84455ff0121a2a76973cdec0c97f0ebbd47d3931340898959cf2ae783896b044ac465c964925c8f6d4229e6d7cf0ee6be247d6cd4f65eb9fe7ebd051584bf3fd1a88cc39b5e0884440aa49878053152aed6a6be8aaf5ad8262e15ca82ecf18035bcf509623148391f63c5569849552cfc24c40e70aadf383fdf3bc266bce547fc7a0a8597b1890463e2bbbb9d464b918d29d88ccc83c7741a4b265980ac85a41590fead9f2c8ac0d97bf65b2974ad92c86cef8542eb4c744b2f10256c38fcf9c57d91536d47c3afb89b9f13d66c21b7dc2e6a61f36330d9a0d442284c3f0c512e27faf804e7600cafe1ae4f5f9fb4e91b8d82223814a6d7df3574bca96c5ca7751ca01fce49340056a50adaf286dff0a68b25bda6a73aad9afbce3c93993e69fb40a5255ed622eeb163553cd87d86fb64390642526b4cf83ac04570935807aafadd851bb8cd64d7aefd466fb2dcd3bac77c377b2e3cebc92206b011707b3d3d2642f6d0afdec5251ea996c558dbc7995210206c7226daf0726b3fc337a1cdd0e2c8fefbb0063979301f00a852a2240e2ef912079bf931dc5b2aa3ac2eb4c6294853837ef02aa64a5a454f89c90c8a46324c5246cc672b07c0bbae0f65790a359e96bdf0f9a65d99f3823a74586d2a7c3a84a373b4167a90f6adb0641782c0748e4deae695ea56d6df68527bd99294ed0b80f75d667affe3f6b891d2901536f617f7ad1e6841c6a5cd3d0b4def113371fc7f1fd488f7b9b9fda4e7f8014b15ff7c87ac6e1e2b1928f6e887c201df0f1f5972c04ac5e83af24708ce1a5e3300ce54b87e2011a08b8a5742f9b23a2511e3a4cda19b829109b430e2e3ade76814280ab43e6c33ce34ffe7d1c3257bad3f6428a3829ebecbe2b9239b41aacdd702937680a1508941ca8855f7c6fb226f36664b16709dd774a04147ea53499cfcfabe4240cf11106d56aab40b5d4eb139c79ef4471153f1a5c4524bf2aaf894fc55a82b36802c9ba86bc365bd7d772ccc43e84ee25827973ac3eb6e3a6cd107f8f0e6e3075a424e88619137c436916e5f21c1451ff8c66871f8d1d75877dfbf5463bfc7566fbef139f9609b8b4f961a8b2986478a982ef7959ecdf33be0850f24aaafdca29b4124d1869c55b0649a0fc0a23cfc328417f116dff1e147c4b8cb85f689587d644fb9053243191b2643a4f35c0dcdf76c47243dadf9fb69824a06471a74ed25ecd81a08b750e3acbae02003d2962ad348dee3fc46b6a45304ab8edeec5982afb8904e44a3825c82678436dc71179f2e8508abac9c5a7479a6cad5949fe199b0d05af76418c494a19f9ffb726a98a2a70121167ac5607faabaea88b588f559663bc6de1ae05976dc076bc5c4dec134d280eef0b4b1c235f2c32a93748837399468147085b78146e72b58bf7e737fbec7891f63102e1bbdc7161a5c02f52f890ef597d885decb635e014ddb06f94177e4b2a519647fef4d8666b795bf23a92907b2d545a29ef2e8f38e094fb4c784783a794daf7867cff765aa3acef561baa5a787586c6266f00051cbc80e5ac24c359533e97b5eb7970dbb6a6ea23e4ecf097ef30001bbc248abd12973dfbb66db49c962f4977da944f099b90d767a233142ff489225418ecba522e3d4c79b7f68df841db42d8dcfda549239e666e3362c4bf6d9e88fce8180147fafec54173ec5ab4dda19e6ce4858af738b7f76476df25ac202c44164c48afb2637631e7e48548e2e8c038fcb27ae95e6b9abeb55189861c638d9070fd1ef2624eb5fc72d54f006670981ed8fb17c1a0a0c3cfadae3dbb3d35d6632a1ad8c2253562ef1a99f7a62cc78ed3abb00dc4b887eccd6f6f1fd87d5e8f220a0c7e030e66d10b7bb3c5450e751b793d1d3a0aa9564813c5b8de435daf991d75d6e10bbea50bb7e7790ae3b875815c7f05e257a6ee11e7ecb900ee6ec883d73eb4f2f71b806bb054de4d17db60ab3b9b781ee33d068780bc18419fe66587dcae5bd993a6fb46b46698207a4a730122a4d78dac2da572bb0bf1ac9813bab45c95b868cf548045267eec97e679764d7b4537ddbc83d7e4a69a0d30cd21ff38563b554eb6e73a73d88c3b5a3d24d4055df5183e4479d0392577cc57a0520d4f291f11f4070a90c29decb53780d86929591a81cc43114a14cf4e62b16686e88e852360567e055940286b5796ea3845c9fcaa751b522b7710d432fddb2bdb994456edb1eecc42fd08cc635e1085cea05dcbcdc9b6ffd1e86426b76d1c5ab39238c7cfc556330127c05f839d7998cde45b5e064f3c235422534c75d4cbdb9d715f8042e878f81a39e4326dcefc8f9b14f8958ae7a3d77f9ca34943d0a8162d2dd494880813d9be2b4b11131415844c53c501b7a6691ea67a0480ba2a95800380ab23a28389f108d5402f46d4467fba2636cb8768417e0f36a526fb0074278a2a48d4e81a5d952b3cc5bdfd18472ec908dc2e7b6fa4324ed2944d239c9e6fb5485bec4a1b500ede97d6791668821e6b726746371253e723ddd4b5af55020392fa8e9536964b3782f34fda6da95f0cbc83026b805d1acc617497c04ad24292e1b465e65025aef9718b5a37595d900772921d655794a7cb687b2c258b484db6eb16dace360e5dd147f6e2692f637820ba69821fee540b0d8db37b4850f18d4b2e6d12b0806bd8f3dc45560b31a9ac599794d78e19a76273abfe1dd88b415c8194c640e2c85afe457ec7040a22e3230941d667534b08f760cc4c60910830d29e16365e46de9cdda44cd8181b820cc5ee77a3d07f7564ad3a2293bc4505b9b0277c6421a53ffcf4bf4b3e737a9fab9ccd08287db0dfa839eb01d7e67de5eb41303ef4c043a078d6d66890dcbd2a6eb8fa7e484cb125d34d322ad7b8afa4dd1ed19b4892c41a2962e0f6e80effde73687e83ecfd89e531a81ba0c2b8d49d87a3c9a09846247191b7ea0994599c5a020b40db485176cbebb11e7d3ed150c295b979ed2fdaedbac4a784cad89225b3157780628f801d312e4f9fd41e1cde7d4e4f7b43c7b9b5906cb03c94c75bb4c00aa767772be6f9fb41acbf6c264477de038f39b9657077133a88ffc7f1e8503c696b1c71b1cc9d800c3152957811083b46f2e8aceb9f9a7cd0a5049ff5cffc0a2c3aac7ee10883fe4a231b866cbb26c8272c674c7a44c4d39c99d3f5f1b2f633acce1965b91550afc78b8815d804208740c2409847bb2a74e65363cdec94799e6b8203adb23066457d1c59f279110443a385bcaef857fe03c0e3ee3183a709db9693ab6989dcbcfd44770cca985e1aaa4ed6bbb545d7191ec0e90e04d4483cc45af3525351bce84b09527f0c0628866c12ffd09e67ab38ae6c217a3de281600e0d714af5ab38e50e38aab6b1695789220550eaf3629f00dd4e37ffc0d6b75d69d7dea0356b95bc76f7465cab54a13edb463ed3a8fd0cf32c705007fd062915992f0bdac0ccf61e94b1928f92269662ffb5bb00b8802deb20f48e1d19845e13370777fbc800ae820e8b92752300838505fc76a984b94fbcce87a848885d821ac034ecf5282668c9e6a7db89c0d864b7bab69399d2ba3325c96d829b322610879859d58ddbeba63991808038d99832681928168af4be33ce2a10fe87d50716ca8fe5c66da1de7d3b5ffbe6b2e41030ddecce60e4d779ff60535a4ff31fe84e4adabba1c799f34a64b3301db1e2887243243827ab4a4533f838aa0cf69ec10f9b45692899e054772092f278ec65cce8fc01058875c61bbcb5154ab5714c1ebbfc1da3d261a696bcbbe9a7b6c78f86825ec98cbefb99f268569f0811ea3679daca7cec6c655b2e6ffd662d5e9fddb30ade7ed3242754e82f1ed00cea7a990fa8ff9ce2cd0ebb01dfb593ffafcca3cc1c8310c3952146081e8e7027563532e313167741d5029d624dce24042baafe215463bd45dc754b1b1f9221a53161f9d523e6e78660fef73c0416f1add6e7bd7aa6e85e62447f58c0fa194a99397832c5ef811d6bd26f5f1c7d5fd453e51c660a3ef61ec8ec661cd02846971e9177727ead8c87991d289f4eda9a45bbd5c8596789b53d861c8d444794a45bd758f5874565732f36219a4795791673ccc577254018d7b2ef1a91510294ba3018c016f73c081d85f3ac3f7c7711ee6ca9c97d7045171319a1957d34c1bbf9868990ab0058f36a36944f47d117bcc6d52770691669c9cdbe15a672cecedae5d2577d540920839898777049a0fa58272a8141f58e4b11d825a047d7d37e3aa9f4d78c64d50698dd9edd4425e5c9ac611676e5f368c683748d16b1205e0079ef9115f0034a15349c4808457b8691216d83417f3ff4bbf28be425611198b5ef020c92edd4449b3ec8008cf4eaaac6e3df6c8a5007adc90b53cb124db18b1ae05a9cb6bdafce957d2fb7efbe5b0a2fa21c2e78174603004a0f9a7c74a271d016253732a3db2b225997d41be166b601e85e1bba6fd9b15ab18012ef543cb5e13efd26839ec7346f55b4b0e86daf29f2534912870aaac7b650d4ce48bc9d309ef3b378ca551693e09ec44f6c7376d07d5f75b3a3d36fc7de1b810a43962a93025df78349dc1793803b5cd94531ad287f1af374e23658a377e7d497914c3964f9f104c2c91cd4820ed58ac6e5ff97c2c1875572689d19bdd05050000f45513650e82b625a33b864cafa9c9f443043f4817fa27a70b5d5d38dc87797b67302492c371873eab5cb09953edbf00d7cc5c7f62f3d08dbea038c662f6b65e06b46467379cfab3bdd69c57e72d73c420427a3307b1276b02d8895247547962b20941357f5fcca8c7d6dfa95ecf824bf2aa329dda94a9194d5d35942d1922d120e732fc8c3acac4bf2840807e3106d38b37f7c210f47016ba3ee3b852ab342d6f75bc26fff88acbbbd1fbda2a2e2b20e0408d5787b1182f5d58c5a29ca0e1a1aa04eade353b0a7d7f9f1b927580e49c2bbeefa588e96a2d707cb9ac5a59a5bf2c08f0cefb6ded2ef66fac2b20be1719c6acf1c78871255ea33c890f6e51a94c266ae950aa8d5a9710ff0c9adabf4d257e955f4078f80e655825b8626fbfa64548a055a5d86e71919eb9e5ae81cd795ef6a99fa3460af2ef65933d79afe167dff7da302f8eb9592cda9f24ae4686c805732c4eea968bc5aa8a23deb19d15293ce3e0cc71504c0e8afaa4884ed92de5948dc977ff8c60dad8b92d4ed8d8c8c6cbb9e9d9a2e069dd0c2da49a20335c1e6f8dc6ad7a3672e6bcd0f312ada3cecd1e0cabe8fd045c6238b7b3a50e6d431cdcb8e472d833677e1c9d8a62fd8c7501702ea5c843067d2f4acb587c243b8d860650376d4223d5a76346314e061db04b7c90c4bcd068ee63693ab424bed263132fbcdbb4507bb7f8ab03f4479a776162702f7b8fa3a6ff89272c6a76567dc7dfd9eb3cd3e909acbaa1e3debbb2209527d6ab7cc3ae781ddd51149709b1527ff7ef7f4a2eec6701fde4802f1babea6fc05ae977510a51fc678a594adc23dc593938ee3b2de327a314e2a12cb3aeabc3b91e9014885643f4d67755e1b659a1103bafd9709072daf0a6caf68715d331b3271ff60471a301dd0a39651901d36e120e3059f053b94457bcb12686e287d641f610fbc43eb326242168050822068ad55601e3e8399c1351c0d8f555301d222935740c9e2f966027dec79b0dc7b6d22edf49733906c50e5845019600982e4209c60d11db0c5c5938249e884b0d3a0b98bbd1b0b3407548da8c8ee86c0e22a09d1bc8f17f0ac6115ffc64e4953393737dfaca2f89579784ba58e65ee70293f56bd5f7b76bdd82624a01def2ff8579e13a33c2eafa3fdb50066daaf19f2155c03046489c3c357f8605487dea7c62a5160dc7173ce1c81b2607792dacb6fc1feaea62e70c201c6cfbbb873001d3115842fd06d3edf9bf0e638c1d2a97428de5180468b3daba4e17bec22c8be8695b342cacaee58340e8f7e3b2e17e0ee8e4838dc3522d79e332fa25629db0a09d92dbfd8f2fcbaeb5cb1619f82b475fcf119e25a9ad06e355748dbcd9152ec712a5e7d32a14a48fb78a3b139d8f1152fb12f3e22d11b1042eb1dc660a65bf066bd786b51bb96d435a01bc2a53b915a9bab6943b009bbc7795feeb84df9cb1997d6a4858fec1c9b32c17679ccd8318c09bd67d5f967ef1b92195d0806f1e32c9d72612c18f3a0071f8c40c5f00ff6994976fa888ed227ab94d5b14b4d315196e4aaa31eb925b8f505e2688bc9bd73a31ada13b6111957f4169b89ab39b07ff1db07db12af632c251b9bf760d971437a9fe28223badacab80a895067d95b95b3a8e3dd6607ad59699734341ddf50ebf87fe9ca2fab7b8caede72b0174b0972cc873eaccea40eb7cb6e605c6d8ec53775d716ec3f3bc9c1e5115c5c0c136e87fce5432da37a52a1942418275f1a548f03d1adfbf0cc7297f077331eceb6df3bc7a55c0a1724c2570613d16486fb719386a5cca1b34f3846f40bd89cd42d08beb91ed4bcc02f2bcc5d6c8952469114df30f365df44846a4d6cb1d16203d7d9ba34c5c89a5d6156a89396fd5d116d8ee504692b4f05fbda35dbb8a0d982ce88027dab7e5714d971f973e53c83c23475e2a88adc49f81635a885f95d701ac7869d0dafe4edd314cbb08a2e0c72eec55c9d8d91be63dc5c5b5b6664f0d34d106ba62f7e3cf53d0fd63fddfe85281497380ffd062ddfcdd57993351d244436d0c18a8da6064e1c95b95f600021861da0cdd7d306c2a8b047346583b5310a9b0dddcce296ff1ad6e228ed61d43f0e2f633a12bc37b795244bcbc2e2e142213995b2eb4c60d45e47fdb6936379fbef9066952018ba7aec7a3779f3ee5edd340f0886dc7ed02d230783d0bf32e883b9111c179f6e12c993dd553fec8d9fca41ada07a7cae2558276b65f988fcdd9e2180b59dbd80208c909f806f3228c17204eb3a24ef122e9b3c8784e428e0a36a00f9fbe0ff52d7593e295f32f5d533872376ed6f2b5489a437ecc5dbdf4abd341da8213f1900cc9eb8c6f9bf04e433822a5d12a288239a1d7f187e30292688b1b6beb25be2a4feb92d02a679dc826e94f68b508f5c10515523131562e1e09e02ffd9725d6b3bcd95ac7f85c7f1f7417afcb1c535861f38c556f928e9d6dea37ae8d72bf6213a3412efc88a35f25c4336fb2f4b50d61c280831d7595875620943d22a56f6cc106d8583f0bc334b2a63fcdf59ed65dd8b57b16793f11d8549233c074990810ff9a107c414194d53e81ee18f0d0931f7390cfba388dad83f024c9b047d2ad478b08c12496e286c7fbef55a224eed2ddbc1758dd86a2e32fe9dc4975a37b845ec36095bd013499f8e2f430b74b3524abce092ef0da39b56f0c706b7e45e84493b3602bce21445c8c7d90a04e3097a6a243b3cfc94d9e60c7cdf084d0ca68baffdfa864d07e0544d1b4497f3c1966bc45a1b69ae4cb6ab45ce95f4d28b6a63fbd3cec40ea5a4bab67ce9d6d5d7218a47d69811e200bdf86481541f73f14682cb508bb297631f24f3d64ed0e6bafabad512da1fb938cb216a980f57f6ee44dbfada8860a2233f3f16291c71f2269472e1469baed3367d7aa49791a3fcb02f02adc5beadbb739011b64e4d08992a6716a2567bf253f7664fba19c6c85f72702c66fb08e9ef4265b7b7c44870ef97eb230dc55a892230f6039514a9a2a28f0380082ea182c25c3eec853f0026ce1cbf168d8fa69dd3a39335bac66f82b85db713694bfd5712162c49c6a33b1ad36b31ea10f962f2cbad08120c5ca965f02b6af9b4d01d06b4a6d58130b502d2820fe5f48fe0bb64d0d66b8330acf11937230ea7f9dd41a7322a4cbfdd94d089da743365185a434314f75d117d4f399232b5d4393e39da9083e344bdc25bcb13dcb43764815e7c3e3f748650771bc2c3641c93a859c50a9c8f085125df8e126a0b4f9b51f3d132b03fdd92adf022da265d3d3d55239eea8b558991d55e8f4dbd4133b68dc168087a3169322809aa3a9655e64ceedce5310d0e6c3edac22a3974f894c3c531532f458b65fcfcdf40b5904331fa7f9929b1d9af362c8171f2e066926ba3edf73b52c31052756ce34765c9bd0082f3d7f364ace08fe49f602025094ba9ac95b05749c529773b1e74b173a924a0a0da9a37b045de370535430bc8b36d232dba093f4868f37aec7c13d87df5cfbaf706fb99db13938d571e198bf9041fe8316bbe7bdb58f34b719c18a68f68f780819dd6034c42f5eaaddf22865641a7fb77c7db9f488c673c96b82a2756f21f0a699e63a1edb5542ddf1d2cd1d82fd8bc71135eeea57cf788db4b63704b7d089d4a9b960203aa9962152ebde31328b258a5a301992f13b75c293e53a8f81ac873770447098a1b4730cbe2108c1195d72fea3b35a0507fb726bd512969e2ce801f910943523d497469b03c7100e1ec728bccb1db54199426042f7a1d6b78ed528bdf4f63fc9a163fd79b84cd1903de120589f0d2e2617f5090af38f2e96303867b53e18b9efd42d93f6e7754b368042d11df662fcfd0767e4d4648489e4527d31e5fc42bd68538c84ce60c424aab299319ac70cdc4a0049098d5d8b222e6f43c3f222230ee0341b9aacdcbb44c80bfb94f3138ae600346aa4f064f82efa5bdd81082d3665168ba27c4e688496186aa650554ce344d308f62b1b2e52dee7684ab2464e38c93a10a44ef4d115f7c5ef740157692deff54156b9dc93ce9d1626fa0f4acf108766f6d3359edec62fe7965574d57ab4be0b78715083fdb6dcf6fa9b780534e175aca9de5efc808679e8926c4822696df8e8624c177df3d0acbb11fdf3f323721400b07d1386c7578b16b8388281642ac4d98af367bf527bb3d23b0ca9b018b4c95a2d9d66609a1660dc709e6b9ff3c0b93a5afde2dc0b7b2511b8fd0071e7086adf3a87ea8b92d69d38720e056e5a6e84d028d11f198f67e0be117024ac0645b94015da109ca6931acf67fdfac5b13b12c0468ea67aab03445b53c6cabbe6aed3dfa3f884514142ff17e69af29a17a918b902e747c2063743b7fffad6545d916b7b9b8445d393a7a6a937c9fbb4c0e2e2fd0bc26b88bd63051313e77636f8814b274c5030aa940529083d094b85c10a5bc610c62b992281516b2da4bda32aae8233604446c5a5bf8dc3a340463c0a7d52160dd7965c5d26d737d9610b395bd942ba1cea4b5569ee2f7efca24f17904ec84f0c7d0aacfe24bf90f44ad15e664de5d53263924d4d1d6e705bad3f0d984826fbfa4885ff085af772f06f2534178512275139cbbcb41ac032361dacda57f28009f0452977214076951b87d472ef61da58e329c9764f0f5d9b1025153797ad9c02c3f2a5d6bd0bf1545145efaa5e8878f491dff2afce75bd18fdcf15add1d960ae5e55d7bd670b5d69a038d6f7bc7ce2ba997c73a7f1fa3bb816fb86b43d59aaa4d12f03c2d1c04f04517abd5c1103ab6a069dfcbbc09736a7274d6b5385621e308fbb2446b1a683d67b638f772045f48e0e25d0b342159742cf51cc3fe34d857d52af5e369078ae7ade19a82df9bd14d341c45b57c60d9e70d9a70e119c46e26d9714267664e2a7da1bc4921d9be605f2a687ba142c63add3cb266a0e46bffb74d8817512880681084683ac2c21241047cd5ae5f0f6affcbac5d9fbdcb601d46e904609a5ae8caf8e7e68cbff8c538af9dc5fd3ff0634b61028157b3a9fec22b655f4f1e5bc29e2c903a4828c8d051d27b2dc528b0d50e431bda75703e7db2d8b6b335c74751eda09308582583d85423332defd634f4a089cb7598bbc438757dac228728fea8f9d4fc50366e3d8e61e750ec1360bd12faa6fabc0a93106cc54410e4cbf45d8f5b7529b9e93ffa8d98f2a2fbb297006d58613ef3872ed786d3f9ad536d9e295748e89dbbeb68b2d992fe10feef5fd7f6b9cbb94a817205a90a0a3eefd51c5a6e27f1c78dd2c045235e7fdf7ff4f6f1f1859b3f10bb77eb52e0df09416f5d4367fa5570b652e3bb6200f890c4be421702751de665e1c67e043ebfd595190acad4f57e4c3b8b5c3f5c4d56a6959c72359dc9440466351d00c2bec73f09bd5ce76ab6d84c126bc967b7756c911f4c6eb0db146c7500d95de17a9191759e858373ae125e1cea2e42d1fb1c780914b49dfb915f442bda77d3fb6be236a846c90449c90829ca3c68adb3ff95570da0c28b7f006aeaee13479ea6a728559089f501eeddef684c8c2b25d11e10359d7f0979c06641fb2e0d3f747c214572d8b9f6dbe847ae0f769df80824eb35d7e1952d09d85d7a0df8cce9c674473db55fcd4a455b56df430f684fc5926d453eab371b172288a769def8d7cab4ca6b0b5540d90670bed31c9b090b49f5582c9bdaa9d2018d0611965fbbabf36305c95f1f980454df94aa8c4b925bbbb0c213309ad8f42ed2b904e8ee790d773d4f4c9b7cc739afac160f83e24de34def17f8be4b320fedc1f237ded6d79c5a2cf6b33b7c0a37ebeda6e87be10285ecc0de94b97e679ccb3103eb2d69da5d92908fb262c8bb2aa7311983a34d52004d625447ce184aafef3936f588d179a55f1d420bc6a8c68b7f357026637c0f134ca078981ef6f2b91fd6c65e570a3610ae0a45887a80d2eda3ed62d0813e1e48add1a2cc5285be6de459c037da5c0270372223d8a7b22ce55289a03cc55c207200eb938b3d648015194460cf24c1ad398d79329bdde4feead36c47a92e11529be6e42d496a66b9b76b6ce161e35ab7685809453da513e7e18478432dadd0a015ba122a5cb460e7ec9627c59ed446eb10290d4fe38ac00c8d94888ee3a52ef51dc3cbf86ce498c4f2dd1024c70282ea6c7c80e4d395e1c8395dc03c1aa4ae0d7d9f3e29ab5227593272f7824666c12a3846f1b299bbceeca5c5e3a1c99353d16794f4b6ed45db2ea9438a1d602ce226af9fad1b814ca74a43da87efbef1ab282c8a1fa2042c919f1a3c624fb2dc1313a08f4f9218b7ec300389d69785e41bfe58f7e6baac4df78ddd0d69ecf0d9f1fc0c326f4650f161a3e1812fdf8b7220ce7fd7e3a1864247904be283eeaacb694f591c9f28f4fcdff86bd86adac359b2213e60e7fb626b49171fa92397b0803404329ed96aa6c4e8c00748338d5776957bce7e52edbf38382c378cb8496845b8c166fccd6143f8f973b29ec23b0585d38d16eae6cb1c18f31fd26581614fd00aac61cae36c3603ca8cd6456e5e273fea885701f9f4edda975f30228f1b8e2036ec14e619bb49fc47b2613ff248ba70bc2480e66fe333ab7bdf05c693320c97b0d0e1d43c068c29bf1d47f2dd969b84fda1cbab8767d71d0d770ec5ca64b262541fd1482622780106402f49a2736a78c6367676231b132afa06055deecd1eb1433efd9cfa4fb2b67178de7351bb9c43ad6f6475a68c9090ab6dce58ad894fdb5f5801bde3ebf6314433a3199619b7777579eba3b5c71aa73f49c7fc444993a8decb6fb00cc7d166d64d3d3c3e751100ffccf1e3d6e5992f7d761ff846655c9735e9d2f8adafb34779d526b6e1ef5a2c37a2a17f005e216163ccb97d17e374d34c91148acd9e74760453a06c61aeb66c9f268c23f1888a16a8605fcb46bf2a0b735699a26c101a8b697d67db71a2d702149aa23a3588fdff2a04ebf7621bcae7c4afa86ca2a177bb74f6d6362077153c3b61f742dab2500d86fc8ee67ac2a4530e859f7b855728a616e3fb054569eb98473af8abd1e2ba6d1165d618dcc938581b1569d8958bec271e8bc44a2131b75ab613f042a1b5832c5d692bb9ce32af4356fc5ac76657a5dcfbfc20cbe8623af16c559b9d09eb9a2f84ca72194c6a5b7ae5aea7eaba84373ff63653a7ff174ef48b85e2fe7a38ca27bec1ac359fb85bbd986e5e0032ba2f0a4abee532f32c432b3537ce9ab3184cb3e5f3f44c6f2a1f181e3184c2cf4f21f152971043d868c499b786366c21aa853376db8b8356e2e8cf081765b1119eb725f5edd29f53d5ff1c8d13b325f3170b0e63ace04a7ab2b5f61a361efb8d753c19f60fc99a3d1a908fea0f25bbfb507b1c5e13e83fd28010b1c12200e9d1ca297b851ef5f65d75983b874ddd3e3f60d19f286357a89c4746feceb6c06a6b520f87e0912236c5dd6871849f5763c2a27f05c9ed80cae146df963cb79200966b12cc0317b2de06b9fedd7ad5c97ec5dbb57a009d5f76b62c29007f3499e2c740e1b12875f48eaf867cecba56a8389756692950493b7b61192165d1889cca5e429a3039e8608f42eee906179ee053b81c593eea986578639b3b32429a24238b3b52dbe42e98857a2b1eaf95706f312e94cbd9df579f8b01b2078aa7bd23e3174e124b82c4db5d02a2a88598266fb0c0bb38984dcce6baf7f107551955f60ef196b61757d812957b49ac3fac92b5c50c24f32003f28c51fbe66b6b30ea69ad191db06c781580a279cb5ea36e0d67f866d5b936f9442a1b0711938a49685c96d88d4b0c9287c9146807f034615a3b3f5230410631daa9722ce197ee2de9ddf3023945af21a478158633bd92f07581b2d63becfb579fde1773cb031507eb29200d72d1928511d6ac252d04ead4bedad0a1e7fc40dd1441d689b1368d1ca4412575b8b4f9a6a40782578336479955dd14e8f1223a52d47b7ffad74e54525835e1e016c742c9ce2015018a51cfba9dad7dd42d2fd6b9220507b19cdd34190a16bacbb8a8284e95f3c2c7671afcd8d8fa3a94001f67a33e4054d02fbe82232bbd924ea15201e8937b89ddbe7df7da18a22fc7d5c33fe8300692e2bf3e8dc01de3c00fcac64fb36590b66b9ed0c57f2a546ed9d8c8bbc0765bd15bb0a6ecd1cde9aebe621da63b406d281a7c11a3b7b73524c3d391d04dca1575624b7fb363dc57ee472565eba638de99968ff2aec316a2cc528ab6d0c196716849e7e3d3ebaa2207bb536e57476579b49754368143c5fcea5e9b7d88faa20de3704bfbcf0bc3dca09e2fe5e12cc6a66cb83294f615ec1e7890f66d6d6492907772e708607f48982451e4f628fb6258b5ac46813a1246c4f18b115577954fd4ba3694e48d847ac7123678c46b3c9cebed2f4e363b54f6b2169931e6744fd1ea7f7400410dfad5a68c9c3dff15d0c3a94b9c7d4ec39646ab4de782c3aa3436f96cb136d946110cff8888e786568ea89734fe36d8fe1bfbc03685d3bc79a9b6eb1e0211b8eb460c71c0b7f2bcbd070e535c628a806afdbb34286b411ba853f7ee0a28c20fb3ae3005b5381bf8367c6f963d41edaec9345e3521711721180e1a6db9b612c7c2e38a31abf6aff14f8fe26c826bb305f497d15f77bafba6de7d693e53d62e7c0913ee9fd8e885a98c907b14f9339fe4fd256d84ce5f347bfdf450dd45ca786e61ec4218e4e34e5a6e44f1217f7c43cb0aeadf2071ef0b9f28d615a0ab680213cd281f09a9fba25d4bdf9721def703b87e8434ce197eb03d2f281a5deee3150c75dc2cca4e053f3299f624f81aa412c351896c2991902cdf8347ca7da3dcde64c05fba0a3db670429c08b5c2526045e55be8773e2d14f1cdbc162332d06479db30cf697f9b9bdbe1bfa55bf6fd6025f85470ef31e03920fdc095b2a0b2991c93b7438ec3e19b961211f7a44e80b0bf3627366679cbc199a79539d7b86301d14e2ce4281aca575e23a4ace8f39f0adada3dfdb6948eb1c91bc46ec9313246d5cadfc4c9458fa4af190463e0714b1a6c0c9f9a3bf92e34b00f94f291f1c97472098eddec2219537b01cf3836a88cc3ca06b5816e3453e76aee4dad369952595bc7b9cd71de73fa29aeb22700e99becf8476839ecfa391dbb060fd16316329bb1bcb9d8afcc6a5bd28e844515061227790c98d1d383a736bf7accaef2283991ea73b3925d281bcc5ba82d309c8f6666846ddf3006bb17c8f1b71e3d33963948d4763020f4d75dfd5cb2de351e5cf8575962cf1f7b5ccf543c80fbee19797bfade24be67588affaebac428deaccc5fc958ace444af6346ab2adaa73079bdf1787d84b9eb66d8749d952c038eea9f1b53e8cdcf58af5b6d963432b883a5e0131762e6b17bb36e1bbd8917b357bb14fc1521f70a894ea9b2b6dfc12e1ec5f8c95207df24ad228ad1024a6e2cb79a853a008af4e5724c24e3eb9b174b915ff4fba2511f6ff034f36fc239793a51f72bf3ea25203814e84c99acbf64b603938337fe1d76ccb7c2a859f1107e984b5af87e33500a9360a86a4b68348d417bada23e341b0e2e3361808b87e5341342947d78515448815e0ea5fc0e49a681b909c064d4c46a85fd43c6097e4efbbb760a7a37b587d03dcced8617105151f09e24cd099916ef76a59b8da04b814a053c349cdc99578080e0d54268fa672c5c42caa8bd964946573720bb9c9444da92002f71510a64111f99e25965b34bfab398e1401fc8c22465b40c3e50c58c68966b338d2a3fa1309b881df0914d100d820505cd02ab7c0298e3b73bb1e95237b3cedf35c38cfe937a540638fb120a1b390321e3dfae81013e4c670ad46f6d77ba830ec10c073a9c6efc07b9b4780bc8ca2f82a6899e3440d84bdb88a112a915c8e8daa189fefb3879e5c3b9bee34740f23307605ac216c042cd2f7967f3e06af4cc8b838b4555a9d137e3698a12d73b1e72da4816583dba4828c27c8bc752af37ceafb22d42fc338c03582cc808bdd3eb7743c87c36bb50c4a84628bf0bde3b21e9ccbcb5802aacf2eb1c59f5c822f3bb056eb41e71fc89a717698695c151a0e314ebae15b0062dc8efdb3569729933d2f84c99aa9e57bd186540aa048efd787b9b5f96a593cc725adb88e7496711a4d9e0a8908e181c142f5e274fb08f00c7fe71e78f70453ca2e273f740c88bb83363f25ca1b4625461197a3851520e89059cfa4b06822d91d1e092a3b10fe1ac8aefd0b5efca22dd7e970c6957c176cfea3cef3a91bcf58dbc7c7ccaf6e80a20c2635b28f9e4bf3222ae6e160c62ab2eb6a4199dd1e3cabaf8fc452501886cf2db28e56b42f65b180a7431dc3ffc8a84d5fbf8fbdcaab01f2240b7f03e7665da1518409bd596f303ec06521371e861f9430c2c82ad84d1c15beaa8f1a50e484bf2ae2b3cc805fa5cea061b071043a7f4a04a4cd20b40a19133f1e95fde4e768881321fb89ad356b722af95d8f0231aa69c843ea9e71806a0281c2ad9e4ed14da2e04f189013e73a921a48fd0fb0f67a427a72be380075687848bfe02d1d619275554bd1c5e1dde0cd16cca00de17458df1dc824519a10b092e721e3ce61744059c1ef48c15fc2671f2b463e660a387d29300e817082221f36bfd08dda4b939ce5a1fc3955c75470553515c1d84f08bbdf32e1da5b1de205ebd1749de6c11548f4d1f0941c38aa7d21051beae6fd8076a9646b73ac84a2d4396d30b7b3edd6ee729966d417f9d4d346b2e0408456edaa926a0e3a7882c9b56b413688bcc6c767d00937266d85e9fffc0f0ebea0585b456a2d6e854e625877ae288ea2c04d6efe65caf3083bf97dee4a39d3b471aa3479343023ae352e7ad7988c7ada0ad63676759f4a54cbf6fc9b9f98e6f1d3eb71bfa862518fb6208ee3d9e41da79dc99fb48b4a1e5f4bc8edc5f225a0121eb146e3ebce5bd6cbb85d159e0e73f2fbc404d392aafa904f1e3eadb06f66063961acadf8e05e018bab4c8560fafdf66553374591a2aae37e5571e26697222427e8525e10d6ce07e9904a2f78fa02388c2a0e216e590aa06a98e08cddc0a0e00135f3e455acecab2e885f2a806888dfd974c26f2cef206b859220eeed0c602f0db0c3cda4a242e4ef983fdee21c546dba90de9b870a9dae2d5a3c87e7aa9061cf2603b7597a5de9dabe92c6d341dff0c78f48207ba52239b68463d210a29f37bbab865f86c22781f7f3288c6abdcf59f725db07703c3c255f4c8cbe8f6895f5bdafa1e543e3b33c2f510899fd2b172f96d9d70402bf5489f061091dfeb8a4f7b9e50f614422d24573f43d0a8fad5c1498d647dc38d1f9258c0e5d63c0cf5884a6e6cd9a141a7e283f1d6cfcdafe3c89c812e45eca881ab7e26c4a78d1fffc49c176649c7b69cd13bdceff422068295dc53c062f8633476172d0ee30e49ccaefb470ad066f631e2894cad4f72f63f067d7220946ea65b8af0b62b69c6342171222f6a4be1f730e814016e21198005523f721b32f4e034178e6801bd9ebbbe3f6ceba2af750fc60b5fb6c5d67083e0c54d3d57e8bfba469952068a968bd9898499ebeab6ba9f0b793f36f2009ca00b0410f1fed3e10320a2bd154815c85f812df92fac760faa2dc5fcb5b4fb3d11c1504b7aff4805e042730bcde82981787a565e22e9b52ee306d3a3397ad5703290a3753f4d30032407399ea5f2b15237351f0f48378eefdea63f6bd9e6f77a4fa93d68513051080db9e317a8761c8bb3ec377b8d6c805b1cea7aa913b992365acad600ee8668031561f72e02f9251467bcbd8320770d2969baf82b8e892c5b275e65338941528f5b33abc1be757c430078e7b3ee7822cdb381548a601f97e6226a4adb363c7895401da05c4f9eaf6eda891ab918557cd4eb2717f2145b54d9fcec5b55ca567df877fa7ef295225adbcef105ad3036b173f4b1217d4d2acd596f6c7447102d35aa5f8565f0067e2f323eec69765212ec6cfbf46a01b96d0f514ac78fcc7adfc45feb90e4b41173f2510054f2b809dbca1255a461751fc5dd4e2c3031962429d04f6453d414ee422880246b992768ea81cddf6a1ad6d8bad4a85800d5bccd798abefe376eef229687900ab24f9f8153ca66b597790d0c16122f41dadddb44dbf8bdbde75f8e142bd3546fb6e0413e606c846d4a6182ffc7d294158ff19c6632414ed9fbb235e166fd33ac5f19f585a225c07b726a25744cba2b516ec1b869843a3f2bfa26a8bbead419473e930e6905e2247ed9066412e17a8f4f3d2920634aa0933e46390c556f23c4b4f8d407074f48e214263d88e3edfae5bc05739dcbdf6970cc11200b5b32c28e4c69c992514337c44c6d6426de9a6b2415d8560b4cf7e973bcef9e4db4205b529d8629160527cb2cb30c5bbc7300f09e36ae1a52c3e8b3777bd91668529df7c5885337c68eeecc9b30e40d54bfe6415c3bcb7bd72203a713fbf23c688c22b7ad9155c51bd09b5689b71cd7d46defd21a4cba550aeed64f1505519b8a4227b774c4ecd53f1c2c00d8e2c30b1a29e7ef12b7155aadfea6545e6d2af919867313fba75d7b013b66dfed1d4b8448f8997c3c167b41f554f871ace5e68ad7d5789e188266087fcf19feeb5d15eafa06b27c065c4fe2b3ec8ae983f36edaac092d20c8ebe71e82ba940f06ffc4da63a7fd01127c6fe9d7d2a4826eb9b8cd890814f10ef2155f86aa9ce4a1535e248bc8fa4e4ea08fe2e6711366589259e56feeb5370cd3b8232c1caa9db0f37d560e84080666ddb55bd128194c404ee77eeb7802ee245a1afd7be647ed332d67652e3f78f40bc9aafb6c30012874071c41bf5d59582e523948f0883f7c98e7f08ca4f5d9060c842cfe422c1a088541ec6f1704bb60d0d45208fdaf767e612af26c358fc4c9f29628beb8ce1362e738a9a7cf90e98edadc7391ccbd6672b60d2ba7c988ba992c1d969bea2c78ca05f2463e2d20a2f837297f8e9d6a72719944dead825ee9497c9532ea405a587f535b8ff76f3b66aadb6cc6e3ab4c55ef4a86f3fd3ab6efd58b2e1125edb3a6947e3d0723bfc68e4df15de3a48d2e51abf6dc15b734f5c9853ea99c227af5718ac739bc6602839cd9733774e1658da59ff5a41f3a709096df3dcc9518be6e3a8cf00d89c38ae6bd18267f46c8a02636c73bbecac6df7b7351d45928d10684f4700d9525c329905af2f7ae90825837d6f1f5691d75c4a919a9b9750133ddbf948c71707790261d4baabefb30f31765fa418e7133c8dbafd343b940bf307e7cde049eb85359bffae0411d1ff7d20ef7723dc64d7d51bda051d71c4ce9753bc586f4f6a1e7e3dc3b898d26bc2e4dd283a96bfa05b2ce33b93fa47e401d274fbbc083c42e1c9ad1a4f89e2ab0219f3fdda3e8920c47299318972ace3eaafe60ffc5dfd17265795dc38d50436c6cabd5f2e0cd5ef6eb4fe5ac4fa655312c86ed595c79353ea772d02542b59adc5cbb531e65da4208667abcc625bbe93426de6ca2205718daacfa1772ccf19b701e4066cca1d43ff606394ba1d4fdbbd18dea9853d7fd05848937f59ccaaffce4c17bb3cc38eb4e4270c182b95b33b078ea1d34c01a7e75a566afb8673e847736fe8638e51644c8a75f67f15426b05f68d98517de57bdac6162228c78405b78ba5a0fa93a2b780f847115d63cbbc92d4f2c4ffeb560fbf63a10149d5b67938ee5d70efe89295d1106ecc106b3cbf0bb601841386400d686b398c8dbe5ab5166fa86032e0dd3678750e7bc03e2a465419c34d849608f5ff1016f217d20a5dc2c92ff9c4b9094029f6b54ae421ab69a33c924f7d2481ab2f132357fc69d468b57b06e9d3b58a56c5070511ca56c4715b22ecee4611e97138871888141d663bb66a091fa615aadcff6861be6c56d5c86ebf725ebbf7af26f4294a251c6360ba37379a0b293b318c90accbf3eb9d039c46e4a534da76387b8d76fcfea2746ee26524c121924bdfaca53d66bd06ec7d344b7bae808d1befab607c10703e67b4f914bde2643f383d7c9eaff9bde9206502ff9f8914ba42c11db255cfed0dee7db5ece81277c4fc8230de8c4bb6a748e3c954fa80a3fcf164266a1e7a3b37821a709dd568e519f8f25e6f822f57f881ccb6cb632e93019669b29df153aa960364fc031be2d221fdaa2edb5057c2a7272758807adb00c4c6c72c17c6ef673738a9a4dea1ac774484c10e3467a1f625fed232825bf3b7ce431a66ef1cf9cf0cac3cbf2232441f8a2d006c6789e9f6cd306fd00159c17f48eda5b2eee8e5ecd1ee9d78fe36060413b19e28b58cf1f0680c25732759b59dd447265ab9a5492c57ab43e8d5cf2da9c090286ade3d690de5a879f39592312e00ccf30e5a768a4a7e73c85a8dd975672de19fc98dfcc7249a816ec6303e211e50a4294e7757afb32ba2c001e60fbbc369371da4064a6a5fb51b99b1a5decd56900baa75b0db61235eb544488f8cfac56cb2216139435993f0fa681732a297ec98542ba369d398284bbe90e9600c005f7f3d8248c2d09bdfa94a3183343f33fc1f1b3bcc5fe015b54fb2dddfb29906f42554e48d780aa2a6b216ab0135638b644115f091a602f3a72ad7938e7a9349526a745d17c65e89af7d91f2db826d6b717676c4d5dddfca6a3e1c6ea1e038498f9f2ee218ba9e3d8483735968d82476e280e376e4a3689d3791a95d6048d9f62219478021663820d47110a15c83f34cfe984e4c6d070ea82e9f3e589a091737189ca1bf052c36abde46a6b44044efae274fdc3a6d6dd0c172cfaa7a74a96b0b61c4006d028a5c450f95d95aa6e19af871d9bdeb5b5c9e74d180d512bd4d057b8b16720a81d96fe4115bc7aab9ec5e09c425250972be22ce222884d53c72a11d52a9e6fb13595870255e44469e54823a10fddb53adfc9674e48fc2369a82c6f142137304baa5755bb6df55362773541ebbae285220933fb43de82f53d9cf2b3ade55a4eae5e59a48fb18653684435333cb9fc40918aa57969904b35cc3fd71a1e93f7c76761a19ebcb62c1485b1648a7fc465182951b7b50c577ff9d60384194487dab3efab4f6868c418be73ea407d974fa1930727b98db8d45717f53569bb11189d165e0dc661c8c7d069e8ba1d271fcdb5b3bf971b1645630261fb38299c83db9f6c6666bba3a33c460591d5dffda4a333672d09998d1d5945df23cc4730b80940d51554bdb3b9f26743eb358f3352d497da71157a8f188ed761aa5de8193c8b288f15a0eb284856f388115ddc9556defe851d4a00e4c63792f61413d2fa00ae3d155531708c2f3fa94ff23b2c381dc3aeae64167d074224270b4da2eef2962c48fd03454b18696c9663fa84fd0c2928fe1e54452da7f820bbf6534807c63486ebebd34a6e144655fa2cd8c1b5ccd6ac8e8e1b197e3018e3c9bb9b68c7b435ab23ad6b76e9f537700a00e13aaf0eef39d9e86384fdda90b4c9980c9c4b18cc6256c8b5f9d16a4451353bfe6a50b8ef5b46982814ebfe9f57282d4fd0d02143cc03f66b606835c16c26b6b09e385edbd9debd535a6999a72d3aa6d02f0018e7b9f32203abbb8bf68a23057cbb550fd38c51e2ac0374bea41fd253392adf09901f15332c5a653d7d73ecb145cf4712d4c190832366c8d40edaf3a6f77c4e79c49b63c3fc8bc6b447388f531518b1ab8f34db50ad7d1b1c4787dffb6076400aef0ea8377ad4bc5eb241fe3e29258561d15352e7a847293977f668aa5c6e0c6458661e68f33eefe6a04a8d1d4b14fbcf2d3b4798a0262c3bfdba2ee70c7e09995fa673f7c4a49bdc4b8a1cedcb3cb81604e9d6f1040598d8ca85aec842ddcf1b204360f2d951d68c251cba8dc0596f95ae01079a86429e21fce52b0f2e47559289543a740f99c2e13ceb6a3175de31a7a6fc93eb6796ad46c82e49dd5c9e6a252f5a8f1d101a95c92c64c05161fe199eb8f4be9189aa860a30f33dc7d1d79b6c4f8d06c9c380eacc099de1cd763a175a8754d00820f62edc93d4c7b5165958ab77cc4f6fb97ea994d9c7cccceb16aec47f4f02f16fbf465a7e41b1ff9e330517258403de29ac5eff58bc0304a9a42e1d1d2a46a672f921ca3bc1f2ce947b1f2fe72f27e7e63ba3fddcfcad734323a5707d884c3aa0dcead7c9409a822afd4b096eb37228aa709e38beee06835fab3384832f8a2bd3c0f31d0c8fd18bba6c908098ff4771111951450544b1f3bfba8addedc11c9b4f4199aa621b0beffc48acace9b9b577d40c761deb06dc8cc84ccc304ef22e49919f532f57a1411e5b2ba02d169335574d659825d86d58c3236ba183158ab62c8346690dad2d24470c44b28e3d83e80abdde9700ce901f40dbefd503f0b4a934b91889bbf57e9e3b9e19f4534ab115995fb620d0e56aef37c01f788b992230b987845af6530bd999b3682a258adcebfa09537b485eb6c4e2d9575fc45ddc12248ebd796a3e0e77daf6f1f00556c7e7937fabc4ca4447dcde577aeddd8247ca359fb12ddd2fd4d65642b8fad837fc6ae27733e7bd2836e03c097e0a0debc7efd617752f0b90228aa7590480a330dbb0f38b7e2da6e209784b3c4822ee0af1ea1787db25acfa49cfed7cd2d55d4e3f26a8f6f51a2b3048fbadcf13d14b500bc541f955655efd5bc8b79afdbee23aa8aef75c193d653e0c831a9160d8cdffa7f9ee836531e5eee3e88bed93ea8f0178fd7378a2df109028808efae07df15ee36b47957b216f0b78753a53462d3edd13772364c0080b356528d9c8990f3c5795e886c762dec450349a149f34d5f0df2b9b8984451ba34e2eb28f65a3631c5467b860f2346b9f3f9924c8fd701b68ca65805aac2c51a532d58315636e372e881691771c9aad6dce76e92b23a065e9b54414237e526afce2e99df1ac56e935d12185dfa1017024f907b67c8533385e26993f9fecaa01a6650ca10af139cddf00d96188ee02329359a08bc07093d5d28dcb7b6efbc5034741fd47db1e695bc2331ce270483ec085b91c219f20a238f274d0e22df4d4cb48b8a8f63064b334cc5f1f48ed60c961960c5ddeca107259380844e48458663158312dbe9318736f41d05816d3ea34fbbde70d97ab9520cec0a00ff4558e65218612d2d5f28d7e47e5b5af8892a2f255aedee84b84f3ef5052869762a170ddf791613f9d0b8c7e915a6370e2530bcc81c2421b384d0127784546cf275694cd5c841f23a8d62a628fad855c20623d4b8aad8d9d01268bf12579c8e5649192cbf4a79c6da5f695423d1de633636c7a1384ca6bae1cb7733eece5e2b52936d9ec612fea65c2b98315013e83efef6b06c57959a1f4c3bd4f8ee371782863b5f0041717ce8d18572510a88c6e03ce91e12a8f508e2bf5cfb32b0645a651a15b93026cc6a4c64cf996c9bffdd9f5fe7a89f348a347e8a7bb415121dc24fc3522eea297dd51fb81497602b7b6d79a480879f06cfb94afeb2dada4dc2cdf829bdd1ec83cbcf698c49593fb42f90b565fbcd26071d28409f6a8e86ee9129d8588bffc31b9ebc4e4379bb9e9ba82c11c82e8ac694259611bd1d3cccec7f2a0b916f14dd886f6117dc63b487a344164098c3a594c61efdaebf5a19fa9cfdd14a4dde846952842e40d00da7e02208c4ecbc3690b782e002b4270aa8088a8b9ca7e35589ff69e6062a22edb942a2d648d1bf86295d80a26ef1bee93c765344104bedc1252854f252f5c639ee409c92269ff9a09ebbedf8ba7898c3a537a8d6f5383aa5e97a748c302ddb2a85893f64f904d7424ece54366758ba37f19881f914b7c41c98f680aa253f8f5191537c06b526fa95aa1141c7856fe84a70af04c8dcaf787075d9e2ab4671cb71033f05777ba6c52a34905841ce7b7f71c4d43e91031cf39bb8df884e411e90c61895c2a1d60a7e813b6eda077691c2647023859db4f1f8d0ac7ed05edc11487e0e4bd0952294afa0d1356aae3da2a6df5cf4cf2cfe601c12b5ff96a3072b67ec598138e2ba4d85766bedad1d799e7c23b4b3ebfbb2ff982ff1b993a22288a75c54d11920a9dd0a62fc547f79db14d6ed25df75791f66a70734a7f89d0922061dc416d2fec92766d8880d932d56594f3eedf0bd56c71db267bf1c070f25f0382920a582b52242e86271003f34b6ef1920136757f75c1c2a496bb04d3b06a2309ad128ac09e9b0e08c32d2f42bed25cfa330a5b3bc279eee94768fcd961cd4eb4c78d597aa4642143edb11874a9d9129bfb9ddfa8d68fe11c8bb2ee93e5bbca4679be0cc612c5ef43304911487327091ed3bde74ccb95eaa9a30fd2dfd1ea9fa113814bec5b6cb65369035c3456e21190a8080ebdce83aa6157a13644ded9d895c6e6d15779042738e870cb46f6b080ee36bde74ea02b187708cf484427d5ccd829eeaef60ce49d02d6a930ff94b763abbea373420e0ac25150a58ea843fd386c11eb10a96088950bfefbc0ba9e819f77ed65c9d2ca89f6477ce3465530f7e74c4267320cc448e0c14a1bbf9e0729d05b70df8ffe0cee47968a1c210fafb1253a05673a300ba9affc66a07c11b342c6dffd5b5f94d6d35bd7092c3a25fc47d52281c083f70348dd5c9a932b4c4c010b36fc05933f130e9fecdabace2fd3be1c42fcd65457dada98c579f36000401fc0a1712d8ebe074b7e4d70613781069e450e0c88f0e811c953f34d3d9047af4aec3da68160abb94de4556103875a73f7f8fdf1badbef4e693707ac07a5a1d918d8db4e4e8202bddec588beeef3656800b388091d79bfd337711dc5f1e82a5574e0bb1ba39b8e7a968d8315c09fc820b3cae8c3b15c9b7bffc7e4cc64efb10ebd91222e84d1e2e7a8b8cb7e9eed26e95b89926b2e97fd1a2ab0a363a344a69987e245da175fa8557639d4365ec4426c217c123704d3bb4277e9796bcb66fcc12cd0cb81dbb6c7beb5c2f79ab6cf0e36d56d6699a09456777e5a2d011696790168fcb7887458dcee25bd6e41e86a7ba5dd1bdb556ba49189149218978f998668c90d09404cfa00eeaf0ac80fab6b7a7b401889a59c9e663263d01a05be23e18eb0e78ecbc67ac43437f64079cca1089d71cc7030a8e12fd525d067847a142f14533bdb69a57439fda7b94cb264fac0e243730653983aa0b12d84fa0eba10046923a4d3662ce91df2a187b27b7c85d3415e8a64ecac07cd5526814e70c222d1f67091d04de75729ed7185509dde8e2b71853ee30b333cfa25b8534c81cac1e405eadb2ed394adb33371b69cae9b8a68b39080718a3643227cbd21dd264aca42c13fa04532cf97b50ef5913d2d802c2560f4f322bc33316c201e35b8e6d18c6958311b07e2275a0f3f6d3dbb14b073b52dc91e44b30002823fd13df52a1ef4b077417b334105d318917e807ebad74ec734f47e071883e64d64db08644e977e552fe3fafed143d74e2d03e3c8657c570dc1e7e2901f37c8d095af563159a355c83b5e04db6a4077174b282788053958b04788a7882a0dba72e88edf022619b4881d2753a2ef52ac8d550cf0b1c9306a2c543b1115aceede975bae50428c70f4d28da427fc132f4197f33e33d0a30215507a758038792717b73680b470159f689913a9d5b6dfb8d3504f41eef89655e21a4d35891fb6caff83157932729ad3ab57c3b392de5650c3b2b9fc86a09c24f25d58959800140041a65a7899aea060596645f17a23275ec593d18f38f25c9e4391d0b975b4b579326c318fe855eeae3603718cd326f12432f77ca18a2f4dd78bbc17cacee5bbe167c716539b830eef01cae3a92c612be846c49987bf5e3b4af1bc238bdfeee741dd16a4a158b92a1b55be40b5152a2ec15aee37327c603bbcbb34aadf177770e643ee832316f82db76402bef71fa1cfb7ed2325b588019b62da5f9136fa9ab2a508c1f556debe2378c8633da932ee25693bdc2a454b7bb3fb2bd99509b6d3de78f5d79fa77426b36b3e55e0e5761d569285ed568e34b23a48d54d1633682bf4023a62ae8793647d7808d440532ca0927bbdc9c2f5318ccd730e269569d20d85b4e5ecef21bae60f40966f5221d6a89d7ba8bbb838e36d54b5686e05b7630d15b0b1e53d13c31c648358cb36d7e58e272c833fcd361bc074c1729732ab5370b3b91d8839ea9cd7adb751ade37e49fa2a97bde0639c6cd2f3630060597e24a48b729a63a36f42ea8554467b2d765a050a0af03cae44ed30896d90b9fe67ba1c69627637f2421b458211c443166b77c256ab196aabcf4ce0813ade48c4cd7ec8261689ce90bb79e5c4b5134c3b97cab7286e2e2a55794de33f6312d806931a3a50da0cda1112ff5f1a408704c9227aae49c31ce64be4ad3394b2cc20b6f6b6d819d24129c7c0580f22c7f47bc77a26947d687880c5e892b09f80c826c03df778df0455bb4aacf257d88ce29a843330c767862a72703564a9526ca558b751447bb3f3e18727b524a8deed96b6cbe9f67a1c674cd4cf4cec815ed97ae1acb5c8275565cbc72f3fcb16c16e70f0ba1eff0745ebe2cb32b172b042c9b1ecc44bbbf7e6295c4823a8f13362fd1a33a5016256e025ecdbcaa3576f59fed54530f686eade711563c33713f4d3fb984b704eadf344d9e02be4a24147f1f6e75c2e42d4037f878e34662ce89d695ec4b58c65c44748721f916bf6d853e35dcdc41515c1e989ae785bbc33c51401b8989e48220e6f92fbbe98b04c2de225e948a767c73652a891d87795b05fc72af8bf8e35d0c0cc018b14e4e159e91fbe94419eaf9fa0e5d1e6ad42e6dd1eb544cecf0fab3c3e5801a6e08c316a7efd5a752c6fca3d1d13b0cff67429bf44577defb2b16696838732b7b2a03ee60ce8c823533a2d6cfced28d3a9d05b2629c96d53757343db054ad8fca4fe876710575d865d6b0c596947c4e5ac156feade9960da408d0a1477b6d1b86b59804adebc2333888ea20fd5ddd3eaff392a2a700bffd225fe17e38ef97b3f7dab92d2ec41182c5f57a2a8a80402cc993491173a5d0e26c7a7c3024733223324f2dbdf89129cb366e86e041061555611e87ea59f7526f549a8ccb5aaa69eaf8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afeerootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootllvm15-15.0.7-150500.4.11.1.src.rpmlibc++-devellibc++-devel(x86-64)libc++.so     /sbin/ldconfig/sbin/ldconfiglibc++1libc++abi.sorpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)15.0.715.0.73.0.4-14.6.0-14.0-15.2-1libc++.so15.0.74.14.3ehy@d @c™@cctcgcZrc< @c,N@c*c@c6@cAcc@b@bbL@b@b@bbm$be;bI@bI@b$@bb b D@b[@aa@aNa@aW@a(@a(@aXIaE````y|@`)__@__S_@__@__"@_*@_ @^^y@^x^h^c^=Q@^;^9\^8 @^1s^.^^^@^!@^,]]@]@]N@]]{@]]c@]K@]b@]b@]]2@]V]3@]@]]@]\ \O\\\M\@\u*@\iL\=@\ BOOL- Let new {llvm,clang}*-doc packages "Conflict" with older devel packages, which they were split from. - Let doc packages conflict with older versions of themselves.- (Build)Require only python3-base instead of full python3 package, the additional modules are not required. Helps shortening the build dependency chain. - Remove python3-* requires from lldb9 subpackage, and add it to the bindings/pretty-printer subpackage (python3-lldb9). - Add python3-base Requires to python3-clang subpackage- Add dont-install-example-analyzer-plugins.patch: Remove example analyzer plugins from install targets instead of deleting them. - Add fix-module-test.patch: fix test instead of deleting it. - Don't build static libc++ (with ThinLTO that's not useful anyway). - Don't build libc++experimental. - Don't package libc++abi.so with libc++-devel, it's already contained in the (required) libc++abi-devel. - Be more specific about files in libc++-devel.- Update to version 9.0.0. * For details, see the release notes: - https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/lld/docs/ReleaseNotes.html - Change License to "Apache-2.0 WITH LLVM-exception OR NCSA". (https://llvm.org/foundation/relicensing/) - Allow building with ThinLTO and enable it on some architectures. - Disable LTO cache in lto-disable-cache.patch. - Unset MALLOC_CHECK_ for compilation to mitigate lock contention. - No debug info for ppc like for the other 32-bit targets. - Clean up _constraints: same constraints for 32-bit targets. - Don't use BUILD_SHARED_LIBS for Clang anymore, since the newly available libclang-cpp.so should expose the full C++ API. - Link tools with libclang-cpp.so by using CLANG_LINK_CLANG_DYLIB, similar to LLVM_BUILD_LLVM_DYLIB for libLLVM.so. - Remove obsolete n_clang_allow_BUILD_SHARED_LIBRARY.patch. - Add link-clang-shared.patch to link more clang targets with libclang-cpp.so, especially libclang.so. - Add link-clang-tools-extra-shared.patch, link-lldb-shared.patch: link targets in clang-tools-extra and lldb with libclang-cpp.so. - Simplify llvm-do-not-install-static-libraries.patch, also handle Clang, for which we now get static libraries. - Package documentation for llvm and clang separately, recommend them for the main package: they are not required for development, but actually useful for working with the non-devel packages. - Recommend editor plugins not just for llvm-devel. - Recommend libstdc++ for Clang again. - Move diagtool from llvm to clang subpackage. - Properly distinguish between %{_relver} and %{version}. - Drop aarch64-disable-memorytest.patch and reactivate test. - Rebase clang-resourcedirs.patch. - Rebase llvm-normally-versioned-libllvm.patch. - Rebase llvm-remove-clang-only-flags.patch. - Rebase llvm_build_tablegen_component_as_shared_library.patch. - Rebase set-revision.patch. - Increase disk space for build.- Make lldb recommend python3-lldb (it contains pretty printers).- Use python3 shebangs everywhere (boo#1146533). - Drop obsolete opt-viewer-Do-not-require-python-2.patch.- Remove unneccesary dependencies: * groff, bison and flex don't seem to be used. * jsoncpp is no longer used since r338461. * Move some BuildRequires to subpackages. * Don't recommend scan-{build,view} in clang (boo#1145444). * Devel packages are only required in other devel packages, when their headers are included in the installed headers. - Add versions to Provides/Conflicts except for files. - Remove unused (since r268685) CMake flags LLVM_ENABLE_TIMESTAMPS. - Fix installation of opt-viewer files when python3-clang is no longer built.- Update to version 8.0.1. * This release contains bug-fixes for the LLVM 8.0.0 release. This release is API and ABI compatible with 8.0.0. - Don't run LLVM tests on ppc at all because of sporadic hangs.- Increase RAM for armv6/7 to avoid OOM and be scheduled on fast worker- Use the documented LLVM_ENABLE_RTTI to enable RTTI instead of LLVM_REQUIRES_RTTI, which "is an internal flag that individual targets can use to force RTTI". (boo#1139584) - Drop obsolete llvm-build-tests-with-rtti.patch.- Exclude riscv64 for now since it fails to build.- Change some groups: * put libraries in System/Libraries, * devel packages in Development/Libraries, * clang in Development/Languages/C and C++, * the gold plugin in Development/Tools/Building. - Add some URLs, use https:// when possible. - Remove unneeded devel dependencies. - Only suggest a C++ standard library for clang. It's also a C compiler and needs no C++ library when only used as such. - Fix Supplements for editor plugins. - Fix some rpmlint issues: * Reword summary and description for Polly. * Fix /usr/bin/env shebangs. * Remove executable bit where not needed. * Move bash completion to /usr. * Remove hard dependency of libclang8 to libstdc++-devel. - Make rpm macros work properly. - Remove sources from documentation. - Run %fdupes on the right directories. - Enable tests for libcxx. - Reduce memory requirements for compile jobs depending on arch.- Avoid relocation overflow on ppc by not building GPU backends. - Update baselibs.conf.- Disable LTO (boo#1133254).- Fix packaging on ppc: the sanitizers aren't available there, so the directories /usr/lib/clang/*/{lib,share} are missing. - Package LLVMgold even when we don't use gold for linking. It's promised in /usr/lib/cmake/llvm/LLVMExports.cmake. - Unignore test failures on PowerPC64 architectures. The failures in ppc are unrelated to AMDGPU, so we remove that remark. - Fix dependencies: the gold plugin shouldn't depend on llvm-devel. libc++abi-devel should depend on libc++abi. - Fix typo.- Enable libc++ on ARM (Needed for tensorflow)- Update to 8.0.0 * For details, see the release notes: https://llvm.org/releases/8.0.0/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/lld/docs/ReleaseNotes.html - Drop llvm-unittests-Don-t-install-TestPlugin.so.patch, llvm-drop-llvm-optional-clang-specific-optimization.patch, llvm-D51108.patch, llvm-Ensure-that-variant-part-discriminator-is-read-by-Me.patch, llvm-test-Fix-Assembler-debug-info.ll.patch * Already included upstream - Add 0001-CMake-Add-install-targets-for-utilities-to-LLVM-expo.patch- Remove -fno-strict-aliasing, which upstream doesn't use any more since r245304 in 2015. (http://reviews.llvm.org/D12036) It's probably also not needed for modern versions of GCC. It was enabled in r105644 because of some bugs there. - Add a clang-%{_sonum} symlink, which is referenced by /usr/lib64/cmake/clang/ClangTargets.cmake (boo#1120098) - Package clang builtin headers with libclang. The library is basically unusable without the builtin headers. Currently consumers of libclang have to require clang as well, although only the headers are needed.- llvm-Ensure-that-variant-part-discriminator-is-read-by-Me.patch, llvm-test-Fix-Assembler-debug-info.ll.patch * Fix crash in rustc (boo#1126907)- Allow use of Gold linker to be conditional - Disable Gold linker on ppc + LLVM currently doesn't build with Gold on ppc- Readd clang-7 and clang++-7 symlinks * Fixes uses of clang-devel (boo#1120098)- Update to llvm 7.0.1 * This release contains bug-fixes for the LLVM 7.0.0 release. This release is API and ABI compatible with 7.0.0.- enable gold unconditionally like with llvm6 and older - reenable openmp support again for aarch64 (like it was already in llvm6)- Use %license macro - Use upstream-recommended %{_rpmconfigdir}/macros.d directory for the rpm macros.- Remove ppc from Exclude field in spec file - Allow use of Gold linker to be conditional - Disable Gold linker on ppc - Add patch to fix SUSE GNU triplet on ppc * clang-fix-powerpc-triplet.patch - Add patch from upstream to fix ABI issue on ppc * llvm-D51108.patch - Limit list of enabled targets on ppc * PowerPC;AMDGPU;BPF;NVPTX - Ignore testsuite failures on ppc- llvm-drop-llvm-optional-clang-specific-optimization.patch * Fix ABI incompatibility when libLLVM (built with clang) is linked to a program build with gcc. (boo#1119092)- opt-viewer-Find-style-css-in-usr-share.patch * Make sure opt-viewer installed in /usr/bin can find resources from /usr/share/opt-viewer. (boo#1112730)- llvm-unittests-Don-t-install-TestPlugin.so.patch * It is only used for testing and is causing failures when processing LLVMExports.cmake.- Update to llvm 7.0.0 * For details, see the release notes: https://llvm.org/releases/7.0.0/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/lld/docs/ReleaseNotes.html - Remove no longer needed patches: * llvm6-fix-gdb-index-crash.patch * lldb-fix-build-with-python-3.7.patch * lldb-add-pthread-dl-libs.patch * polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch - Add tests-use-python3.patch * Prevents tests from failing because of missing python 2. - Add llvm-better-detect-64bit-atomics-support.patch * Fixes build on i586.- Updated llvm-remove-clang-only-flags.patch - Exclude also "-Werror=unguarded-availability-new" (bsc#1106000)- Update to llvm 6.0.1 * This release contains bug-fixes for the LLVM 6.0.0 release. It is API and ABI compatible with 6.0.0. - Remove no longer needed llvm6-fix-InstCombine.patch - Add lldb-fix-build-with-python-3.7.patch * Fix build with python 3.7- llvm6-fix-gdb-index-crash.patch * From upstream, fix lld --gdb-index crash.- Do not requires gcc6 for older sle versions. * llvm6 is not built on <= 12 SP3 and this was preventing build on 12 SP4.- llvm_build_tablegen_component_as_shared_library.patch * Build TableGen component as its own shared library because it is not included in the libLLVM library and is needed for ldc. (bsc#1086445)- Add patch llvm6-fix-InstCombine.patch to fix InstCombine init * Will be fixed in 6.0.1 release- Do not build stage1 with debug info. It was accidentally added with the use of %optflags. This should fix out of memory errors on 32bit architectures and speed up build everywhere else. (bsc#1092697)- llvm-build-tests-with-rtti.patch * Fixes build failure with gcc 8. (bnc#1087136)- Do not export Polly static libraries which we do not distribute. * Updated llvm-do-not-install-static-libraries.patch - Use external jsoncpp instead of the bundled one. * Added polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch - llvm6-devel must require llvm6-polly-devel * Files in llvm6-devel reference Polly.- Update to llvm 6.0.0 * Added polly * Notable changes: - Retpoline Spectre variant 2 mitigation - GlobalISel by default for AArch64 at -O0 - improved scheduling on several x86 micro-architectures - Clang defaults to -std=gnu++14 instead of -std=gnu++98 - support for some upcoming C++2a features - improved optimizations, new compiler warnings, many bug fixes, and more. - Use alternatives for clang's bash autocomplete to prevent conflicts with other versions.- Remove liblldb5 and lldb5-devel from baselibs.conf. They are only build for x86_64, so no point having them in baselibs.conf.- Use %optflags, except for FORTIFY_SOURCE which is not compatible with compiler-rt. - Exclude static libraries differently. * Drop llvm-split-static-library-exports-into-their-own-export-file.diff * Drop clang-split-static-library-exports-into-their-own-export-file.diff * Update llvm-do-not-install-static-libraries.patch to not use EXCLUDE_FROM_ALL which is not available in cmake 3.5. - This fixes build on SLE12. - Do not force gcc6 on OpenSUSE - fixes build. - Reduce the amount of concurent link jobs by increasing their memory requirement - to reduce stalls in OBS.- Cleanup %ifarch conditions, remove targets unintentionally added to s390/s390x. (bnc#1078436)- Limit the amount of parallel link jobs, but no longer limit compile jobs. This should prevent running out of memory during linking while not longer slowing down compilation. - Remove build dependency on procps- Reduce disk size requirement to 30GB in _constraints. We no longer need that much since we stopped building static libraries.- n_clang_allow_BUILD_SHARED_LIBRARY.patch * Allow buildling clang with BUILD_SHARED_LIBRARY while the rest is built with LLVM_LINK_LLVM_DYLIB. (bnc#1065464) - Remove clang-devel-static.- Place gold plugin to the right directory. (bnc#1073210) * It must be in /usr/lib/bfd-plugins on all architectures. * Remove llvm5-gold from baselibs.conf - nothing needs a 32bit version of it and it would now conflict with the 64bit one. - Reduce _constraints requirements on 32bit architectures. * Since we had to disable debuginfo on them, they require much less.- ignore make check error for PowerPC as bypass https://bugs.llvm.org/show_bug.cgi?id=35871- disable debuginfo build for ARM as well- Delete intermediate files during build to reduce total disk usage (bnc#1074625)- Update to llvm 5.0.1 * This release contains bug-fixes for the LLVM 5.0.0 release. * This release is API and ABI compatible with 5.0.0. - llvm-do-not-install-static-libraries.patch * Updated.- Increase minimum memory and disk sizes required for building in _constraints.- Rename python3-lldb to python3-lldb5 so it can work with llvm meta package.- Rename python packages to follow naming conventions. - Remove unnecessary dependencies on python3. - Make opt-viewer not require python2. * opt-viewer-Do-not-require-python-2.patch- Switch to python3. - Fix %check tests when used with python3. * Define LANG=C.UTF-8 when running the tests. - Add explicit Provides/Conflicts to llvm5-devel, clang5-devel-static and lldb5-devel. * These are required to be validated by obs repo-checker.- Use LLVM_OPTIMIZED_TABLEGEN to speed up build. (bnc#1064786) - Fix files of lldb4 to work correctly with update-alternatives. - Remove Conflicts clang(LLDB) from lldb4-devel - it does not exist. It would be provided automatically, but no such cmake file is installed. - llvm-do-not-install-static-libraries.patch * Do not install static libraries instead of installing them and deleting after. * Reduces disk usage during build. (bnc#1064786) - Do not build unnecessary parts during stage1. * Speeds up build a bit. (bnc#1064786)- Updated baselibs.conf to reference version 5 packages. - Deleted rogue llvm5.spec.r29 file. - Deleted arm_suse_support.diff, llvm-add_a_LLVM_USE_LINKER.patch, libsanitizer.patch. - No longer used, applied already in the source.- llvm-normally-versioned-libllvm.patch * Change libLLVM naming scheme to match our naming guidelines. * The reasons for the original naming scheme are no longer valid, more details in the patch.- Disable all thread related tests in libcxx. Many of them use timeouts to detect failure. They can fail randomly if the machine is under heavy load (happens often in OBS).- Drop llvm5-devel-static. llvm5-devel contains shared library with the same content.- Increase disk space requirement in _constraints to 45GB. Otherwise the build gets stuck in random places. - Skip build of lldb5 python on distributions with swig < 3.0.11- Copy from llvm4. - Update to llvm 5.0.0.- Use LLVM_BUILD_LLVM_DYLIB instead of BUILD_SHARED_LIBS to build single libLLVM library. This is the recommended way. The old way was causing various issues. * llvm-split-static-library-exports-into-their-own-export-file.diff * clang-split-static-library-exports-into-their-own-export-file.diff (bnc#1049703) - Add lld, linker for Clang/LLVM (sr#517692) - Include clang++-MAJOR.MINOR symbolic link (bnc#1012260) - Remove unnecessary dependency on flex and bison. - Make sure all binaries are managed by update-alternatives - Add llvm-add_a_LLVM_USE_LINKER.patch and link using gold to prevent memory exhaustion on some build machines. - Reduce debuginfo on x86 architecture. LLVM libraries are so big that they exhaust all memory on 32 bit machine if linked with full debuginfo. - Speed up build by skipping parts that are not required in stage1. - Build lldb in-tree as one of the llvm tools.- clang-ignore-stack-clash-protector.patch: ignore -fstack-clash-protection for now.- xlocale.patch: don't use obsolete - libsanitizer.patch: fix use of undocumented types- build fixes for armv6 (skip testsuite as it requires 64bit, set the list of targets to include ARM and remove triplet hack)- Include provides and conflics in baselibs.conf for llvm4-devel, clang4-devel, llvm4-LTO-devel, and llvm4-gold.- Update to version 4.0.1 * Minor bugfixes- Use gcc6 only for SLE boo#1041469- Package libLLVMFuzzer- readd arm_suse_support.diff which was accidentally removed in the 4.0.0 update- Enable AMDGPU and NVPTX targets everywhere except for S/390. The AMDGPU target is needed for Mesa Clover (sr#485802).- Use gcc6 on SLE12- Package license & credits- Update to version 4.0.0 * See + http://releases.llvm.org/4.0.0/docs/ReleaseNotes.html and + http://releases.llvm.org/4.0.0/tools/clang/docs/ReleaseNotes.html + http://releases.llvm.org/4.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - Drop the following patches, fixed upstream: amdgpu_revert_r280589.patch arm_suse_support.diff clang-fix-substitutions-abi_tag.patch clang-incomplete-field-types.patch glibc-2.24-libcxx.patch llvm-install-CheckAtomic.patch revert-cmake-soname.patch- Enable BPF for all arches bsc#1026191- libc++ must depend on libc++abi- Stop using otherproviders() due to an rpm parser bug, use self-conflicts instead as suggested by mls.- Add amdgpu_revert_r280589.patch to fix an amdgpu regression bsc#1021577- Require LLVMgold and libLTO in llvm-devel, otherwise we get in CMake: The imported target "LLVMgold" references the file "/usr/lib64/LLVMgold.so" but this file does not exist. This happens when requiring llvm3_9-devel directly, not llvm-devel.- Update to version 3.9.1 * See: + http://llvm.org/releases/3.9.1/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.1/tools/clang/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.1/tools/clang/tools/extra/docs/ReleaseNotes.html- Update to version 3.9.0 * Clang now supports the G++ abi_tag attribute. * Clang will no longer pass --build-id by default to the linker. * Improved C++1z support in Clang. * Clang now has support for all OpenCL 2.0 features. * Added support for all non-offloading features from OpenMP 4.5, * The static analyzer now checks for incorrect usage of MPI APIs in C and C++. * LLVM no longer does inter-procedural analysis and optimization (except inlining) on functions with comdat linkage. * LLVM now supports the Intel CPUs Skylake Server with AVX512 (-march=skylake-avx512) and Knights Landing (-march=knl). * More at: + http://llvm.org/releases/3.9.0/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.0/tools/clang/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.0/tools/clang/tools/extra/docs/ReleaseNotes.html * Fix the following patches: + arm_suse_support.diff + assume-opensuse.patch + clang-resourcedirs.patch + default-to-i586.patch + glibc-2.23-libcxx.patch + glibc-2.24-libcxx.patch + lldb-add-pthread-dl-libs.patch + lldb-cmake.patch + llvm-fix-find-gcc5-install.patch + llvm-remove-clang-only-flags.patch + revert-cmake-soname.patch + set-revision.patch * Remove upstream-included patch: + llvm-nonvoid-return.patch * Remove patch for removed files: + glibc-2.23-libcxx.patch - Backport upstream patches: * clang-fix-substitutions-abi_tag.patch * clang-incomplete-field-types.patch * llvm-install-CheckAtomic.patch - Add clang%{_sonum}-include-fixer subpackage and associated libfindAllSymbols%{_sonum} and libfindAllSymbols%{_sonum}-devel subpackages. - Add sanstats to llvm binary list.- Change update-alternatives to use %postun instead of %preun, which is now what Factory maintainers are requesting. - Use the minor version to set the update-alternatives priority so the most recent version of the LLVM, Clang, and LLDB are used by default. - Add LLVM rpm macros so downstream packages can have some idea how LLVM was built.- Rename libomp to make it possible to have multiple versions available.- Split the old llvm package into this version-specific package and a wrapper package. - Implement update-alternatives to allow parallel installation of many of the subpackages. - Rename subpackages that can be parallel-installed to a version-specific name based on the associated shared library's current .so number. - Various fixes to support the above changes.- Sort a bit with spec-cleaner - Remove the latest switch for now, things should be either coinstallable or not, we don't need to bother around with compilation like this- Update to llvm 3.8.1 * See http://llvm.org/releases/3.8.1/docs/ReleaseNotes.html and http://llvm.org/releases/3.8.1/tools/docs/ReleaseNotes.html - Use versioned libLLVM (to libLLVM3_8) and libclang (to libclang3_8) - Change versioning of liblldb3_8 to liblldb-3_8 and use a variable to control the name instead of hard-coding it. - Use bcond_with and bcond_without to enable/disable build options instead of hard-coding them. - Put buildrequires as requires in -devel packages to avoid linker errors when building packages against the -devel packages. - Add ffi support (disabled by default). - Add oprofile support (disabled by default). - Add valgrind support (disabled by default). - Link cmake files to the normal cmake file directory to allow autodetection of cmake interfaces. - Remove unused lldb components from main spec file. - Split llvm python bindings into own subpackage. - Split emacs plugin into own subpackage - Move additional vim plugins into vim plugins package - Split libc++, libLTO, LLVMgold, libomp, clang-chekers into own subpackages - Make python-clang, llvm-vim-plugins, and llvm-emacs-plugins noarch since they aren't architecture-specific. - Make packages besides llvm, llvm-clang, and the shared libraries conflict with other versions. This will be important when multiple LLVM versions are supported. - Various spec file cleanups - Rebase patches: * arm_suse_support.diff * assume-opensuse.patch * clang-resourcedirs.patch * default-to-i586.patch * glibc-2.23-libcxx.patch * glibc-2.24-libcxx.patch * lldb-add-pthread-dl-libs.patch * lldb-cmake.patch * llvm-fix-find-gcc5-install.patch * llvm-nonvoid-return.patch * llvm-remove-clang-only-flags.patch * revert-cmake-soname.patch * set-revision.patch- Start conversion to use cmake macros with now introduced compatibility for ninja - Reduce number of threads if we don't have enough memory - Add patch for the nonvoid returns: * llvm-nonvoid-return.patch- for ppc64le set memory to 4GB in _constraints file (failure in Factory:PowerPC)- glibc-2.24-libcxx.patch: fix libcxx testsuite for glibc 2.24- Build LLDB separated from LLVM. - Re-enable python bindings for the LLDB API.- Disable libcxx/lldb/openmp for SLE fate#319582- Update rpmlintrc to whitelist libLTO.so- Re-enable glibc-2.23 patch for Tumbleweed- fix arm_suse_support.diff for armv6hl - adjust compile flags for llvm on armv6hl (fixes Mesa build)- Update llvm-remove-clang-only-flags.patch to remove - Wcovered-switch-default flag for gcc compatibility.- Use gcc for stage1 bootstrap - Add back libstdc++-devel dependency for clang since libc++ is only available for x86-64 atm.- Comment out glibc-2.23-libcxx.patch until glibc 2.23 actually hits the Factory.- Update to llvm 3.8.0 * See http://llvm.org/releases/3.8.0/docs/ReleaseNotes.html and http://llvm.org/releases/3.8.0/tools/clang/docs/ReleaseNotes.html - Fold lldb build into llvm and disable python support - Drop clang-disable-ada-extension.patch, libcxxabi-exceptions.patch and cmake-host-triple.patch - Add revert-cmake-soname.patch to fix soname handling- Add glibc-2.23-libcxx.patch to fix test failures with glibc 2.23- Remove FFI support because its fragile- Enable OpenMP for x86, x86_64, ppc64 and ppc64le- Enable all targets on x86, x86_64- Update to version 3.7.0 * See http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html - Merge aarch64-suse-support.patch into arm_suse_support.diff - Refresh arm_suse_support.diff, llvm-fix-find-gcc5-install.patch - Remove llvm-fix-parsearmarch.patch, upstream.- fix build on s390x (one typo in ifarch and one change in filelist)- Update to version 3.6.1 * No changelog upstream- Add llvm-fix-parsearmarch.patch to fix parsing armv{6,7}hl archs.- Update to version 3.6.0 * See http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html - Add python-xml dependency for regression tests - Removed the following patches, fixed upstream: * arm-remove-xfails.diff * libcxx-libdir.patch * llvm-config-lib64.patch * llvm-fix-intrusiverefcntptr.patch- Add llvm-fix-intrusiverefcntptr.patch to fix build of LLVM tools with GCC 5. - Add llvm-fix-find-gcc5-install.patch to properly find installed GCC 5.- Add a gcc dependency for clang, this is heavyweight but we need libgcc_s which comes with the gcc package (bnc#893359)- Conditionalize libcxx{abi} build on build_libcxx variable - Turn libc++.so into an ldscript so it links to libc++abi automatically.- fix constraints for armv6l/armv7l (there is no 4GB RAM on 32bit)/sbin/ldconfig/sbin/ldconfigh03-ch2b 1722621913  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@AB15.0.7-150500.4.11.115.0.7-150500.4.11.115.0.7      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"""""""""""""""""#$$$$$$$$$$$$$$$$$$$$$%%%&&'((c++v1__algorithmadjacent_find.hall_of.hany_of.hbinary_search.hclamp.hcomp.hcomp_ref_type.hcopy.hcopy_backward.hcopy_if.hcopy_n.hcount.hcount_if.hequal.hequal_range.hfill.hfill_n.hfind.hfind_end.hfind_first_of.hfind_if.hfind_if_not.hfor_each.hfor_each_n.hgenerate.hgenerate_n.hhalf_positive.hin_found_result.hin_fun_result.hin_in_out_result.hin_in_result.hin_out_out_result.hin_out_result.hincludes.hinplace_merge.his_heap.his_heap_until.his_partitioned.his_permutation.his_sorted.his_sorted_until.hiter_swap.hiterator_operations.hlexicographical_compare.hlower_bound.hmake_heap.hmake_projected.hmax.hmax_element.hmerge.hmin.hmin_element.hmin_max_result.hminmax.hminmax_element.hmismatch.hmove.hmove_backward.hnext_permutation.hnone_of.hnth_element.hpartial_sort.hpartial_sort_copy.hpartition.hpartition_copy.hpartition_point.hpop_heap.hprev_permutation.hpush_heap.hranges_adjacent_find.hranges_all_of.hranges_any_of.hranges_binary_search.hranges_clamp.hranges_copy.hranges_copy_backward.hranges_copy_if.hranges_copy_n.hranges_count.hranges_count_if.hranges_equal.hranges_equal_range.hranges_fill.hranges_fill_n.hranges_find.hranges_find_end.hranges_find_first_of.hranges_find_if.hranges_find_if_not.hranges_for_each.hranges_for_each_n.hranges_generate.hranges_generate_n.hranges_includes.hranges_inplace_merge.hranges_is_heap.hranges_is_heap_until.hranges_is_partitioned.hranges_is_permutation.hranges_is_sorted.hranges_is_sorted_until.hranges_iterator_concept.hranges_lexicographical_compare.hranges_lower_bound.hranges_make_heap.hranges_max.hranges_max_element.hranges_merge.hranges_min.hranges_min_element.hranges_minmax.hranges_minmax_element.hranges_mismatch.hranges_move.hranges_move_backward.hranges_next_permutation.hranges_none_of.hranges_nth_element.hranges_partial_sort.hranges_partial_sort_copy.hranges_partition.hranges_partition_copy.hranges_partition_point.hranges_pop_heap.hranges_prev_permutation.hranges_push_heap.hranges_remove.hranges_remove_copy.hranges_remove_copy_if.hranges_remove_if.hranges_replace.hranges_replace_copy.hranges_replace_copy_if.hranges_replace_if.hranges_reverse.hranges_reverse_copy.hranges_rotate.hranges_rotate_copy.hranges_sample.hranges_search.hranges_search_n.hranges_set_difference.hranges_set_intersection.hranges_set_symmetric_difference.hranges_set_union.hranges_shuffle.hranges_sort.hranges_sort_heap.hranges_stable_partition.hranges_stable_sort.hranges_swap_ranges.hranges_transform.hranges_unique.hranges_unique_copy.hranges_upper_bound.hremove.hremove_copy.hremove_copy_if.hremove_if.hreplace.hreplace_copy.hreplace_copy_if.hreplace_if.hreverse.hreverse_copy.hrotate.hrotate_copy.hsample.hsearch.hsearch_n.hset_difference.hset_intersection.hset_symmetric_difference.hset_union.hshift_left.hshift_right.hshuffle.hsift_down.hsort.hsort_heap.hstable_partition.hstable_sort.hswap_ranges.htransform.huniform_random_bit_generator_adaptor.hunique.hunique_copy.hunwrap_iter.hunwrap_range.hupper_bound.h__assert__availability__bitbit_cast.hbyteswap.h__bit_reference__bits__bsd_locale_defaults.h__bsd_locale_fallbacks.h__charconvchars_format.hfrom_chars_result.htables.hto_chars_base_10.hto_chars_result.h__chronocalendar.hconvert_to_timespec.hday.hduration.hfile_clock.hhh_mm_ss.hhigh_resolution_clock.hliterals.hmonth.hmonth_weekday.hmonthday.hsteady_clock.hsystem_clock.htime_point.hweekday.hyear.hyear_month.hyear_month_day.hyear_month_weekday.h__comparecommon_comparison_category.hcompare_partial_order_fallback.hcompare_strong_order_fallback.hcompare_three_way.hcompare_three_way_result.hcompare_weak_order_fallback.his_eq.hordering.hpartial_order.hstrong_order.hsynth_three_way.hthree_way_comparable.hweak_order.h__conceptsarithmetic.hassignable.hboolean_testable.hclass_or_enum.hcommon_reference_with.hcommon_with.hconstructible.hconvertible_to.hcopyable.hderived_from.hdestructible.hdifferent_from.hequality_comparable.hinvocable.hmovable.hpredicate.hregular.hrelation.hsame_as.hsemiregular.hswappable.htotally_ordered.h__config__config_site__coroutinecoroutine_handle.hcoroutine_traits.hnoop_coroutine_handle.htrivial_awaitables.h__cxxabi_config.h__debug__debug_utilsrandomize_range.h__errc__filesystemcopy_options.hdirectory_entry.hdirectory_iterator.hdirectory_options.hfile_status.hfile_time_type.hfile_type.hfilesystem_error.hoperations.hpath.hpath_iterator.hperm_options.hperms.hrecursive_directory_iterator.hspace_info.hu8path.h__formatbuffer.hconcepts.henable_insertable.hextended_grapheme_cluster_table.hformat_arg.hformat_arg_store.hformat_args.hformat_context.hformat_error.hformat_fwd.hformat_parse_context.hformat_string.hformat_to_n_result.hformatter.hformatter_bool.hformatter_char.hformatter_floating_point.hformatter_integer.hformatter_integral.hformatter_output.hformatter_pointer.hformatter_string.hparser_std_format_spec.hunicode.h__functionalbinary_function.hbinary_negate.hbind.hbind_back.hbind_front.hbinder1st.hbinder2nd.hboyer_moore_searcher.hcompose.hdefault_searcher.hfunction.hhash.hidentity.hinvoke.his_transparent.hmem_fn.hmem_fun_ref.hnot_fn.hoperations.hperfect_forward.hpointer_to_binary_function.hpointer_to_unary_function.hranges_operations.hreference_wrapper.hunary_function.hunary_negate.hunwrap_ref.hweak_result_type.h__fwdspan.hstring_view.h__hash_table__iosfpos.h__iteratoraccess.hadvance.hback_insert_iterator.hbounded_iter.hcommon_iterator.hconcepts.hcounted_iterator.hdata.hdefault_sentinel.hdistance.hempty.herase_if_container.hfront_insert_iterator.hincrementable_traits.hindirectly_comparable.hinsert_iterator.histream_iterator.histreambuf_iterator.hiter_move.hiter_swap.hiterator.hiterator_traits.hmergeable.hmove_iterator.hmove_sentinel.hnext.hostream_iterator.hostreambuf_iterator.hpermutable.hprev.hprojected.hreadable_traits.hreverse_access.hreverse_iterator.hsize.hsortable.hunreachable_sentinel.hwrap_iter.h__locale__mbstate_t.h__memoryaddressof.hallocate_at_least.hallocation_guard.hallocator.hallocator_arg_t.hallocator_traits.hassume_aligned.hauto_ptr.hcompressed_pair.hconcepts.hconstruct_at.hpointer_traits.hranges_construct_at.hranges_uninitialized_algorithms.hraw_storage_iterator.hshared_ptr.hswap_allocator.htemporary_buffer.huninitialized_algorithms.hunique_ptr.huses_allocator.hvoidify.h__mutex_base__node_handle__numericaccumulate.hadjacent_difference.hexclusive_scan.hgcd_lcm.hinclusive_scan.hinner_product.hiota.hmidpoint.hpartial_sum.hreduce.htransform_exclusive_scan.htransform_inclusive_scan.htransform_reduce.h__randombernoulli_distribution.hbinomial_distribution.hcauchy_distribution.hchi_squared_distribution.hclamp_to_integral.hdefault_random_engine.hdiscard_block_engine.hdiscrete_distribution.hexponential_distribution.hextreme_value_distribution.hfisher_f_distribution.hgamma_distribution.hgenerate_canonical.hgeometric_distribution.hindependent_bits_engine.his_seed_sequence.his_valid.hknuth_b.hlinear_congruential_engine.hlog2.hlognormal_distribution.hmersenne_twister_engine.hnegative_binomial_distribution.hnormal_distribution.hpiecewise_constant_distribution.hpiecewise_linear_distribution.hpoisson_distribution.hrandom_device.hranlux.hseed_seq.hshuffle_order_engine.hstudent_t_distribution.hsubtract_with_carry_engine.huniform_int_distribution.huniform_random_bit_generator.huniform_real_distribution.hweibull_distribution.h__rangesaccess.hall.hcommon_view.hconcepts.hcopyable_box.hcounted.hdangling.hdata.hdrop_view.hempty.hempty_view.henable_borrowed_range.henable_view.hfilter_view.hiota_view.hjoin_view.hlazy_split_view.hnon_propagating_cache.howning_view.hrange_adaptor.hrbegin.href_view.hrend.hreverse_view.hsingle_view.hsize.hsubrange.htake_view.htransform_view.hview_interface.hviews.hzip_view.h__split_buffer__std_stream__stringchar_traits.hextern_template_lists.h__supportandroidlocale_bionic.hfuchsiaxlocale.hibmgettod_zos.hlocale_mgmt_zos.hnanosleep.hxlocale.hmuslxlocale.hnewlibxlocale.hopenbsdxlocale.hsolarisfloatingpoint.hwchar.hxlocale.hwin32limits_msvc_win32.hlocale_win32.hxlocale__nop_locale_mgmt.h__posix_l_fallback.h__strtonum_fallback.h__threadpoll_with_backoff.htimed_backoff_policy.h__threading_support__tree__tuple__type_traitsadd_const.hadd_cv.hadd_lvalue_reference.hadd_pointer.hadd_rvalue_reference.hadd_volatile.haligned_storage.haligned_union.halignment_of.happly_cv.hcommon_reference.hcommon_type.hconditional.hconjunction.hcopy_cv.hcopy_cvref.hdecay.hdisjunction.henable_if.hextent.hhas_unique_object_representation.hhas_virtual_destructor.hintegral_constant.his_abstract.his_aggregate.his_arithmetic.his_array.his_assignable.his_base_of.his_bounded_array.his_callable.his_class.his_compound.his_const.his_constant_evaluated.his_constructible.his_convertible.his_copy_assignable.his_copy_constructible.his_core_convertible.his_default_constructible.his_destructible.his_empty.his_enum.his_final.his_floating_point.his_function.his_fundamental.his_integral.his_literal_type.his_member_function_pointer.his_member_object_pointer.his_member_pointer.his_move_assignable.his_move_constructible.his_nothrow_assignable.his_nothrow_constructible.his_nothrow_convertible.his_nothrow_copy_assignable.his_nothrow_copy_constructible.his_nothrow_default_constructible.his_nothrow_destructible.his_nothrow_move_assignable.his_nothrow_move_constructible.his_null_pointer.his_object.his_pod.his_pointer.his_polymorphic.his_primary_template.his_reference.his_reference_wrapper.his_referenceable.his_same.his_scalar.his_scoped_enum.his_signed.his_signed_integer.his_standard_layout.his_trivial.his_trivially_assignable.his_trivially_constructible.his_trivially_copy_assignable.his_trivially_copy_constructible.his_trivially_copyable.his_trivially_default_constructible.his_trivially_destructible.his_trivially_move_assignable.his_trivially_move_constructible.his_unbounded_array.his_union.his_unsigned.his_unsigned_integer.his_valid_expansion.his_void.his_volatile.hlazy.hmake_32_64_or_128_bit.hmake_signed.hmake_unsigned.hnat.hnegation.hpromote.hrank.hremove_all_extents.hremove_const.hremove_cv.hremove_cvref.hremove_extent.hremove_pointer.hremove_reference.hremove_volatile.htype_identity.htype_list.hunderlying_type.hvoid_t.h__undef_macros__utilityas_const.hauto_cast.hcmp.hdeclval.hexchange.hforward.hin_place.hinteger_sequence.hmove.hpair.hpiecewise_construct.hpriority_tag.hrel_ops.hswap.hto_underlying.htransaction.hunreachable.h__variantmonostate.h__verbose_abortalgorithmanyarrayatomicbarrierbitbitsetcassertccomplexcctypecerrnocfenvcfloatcharconvchronocinttypesciso646climitsclocalecmathcodecvtcomparecomplexcomplex.hconceptscondition_variablecoroutinecsetjmpcsignalcstdargcstdboolcstddefcstdintcstdiocstdlibcstringctgmathctimectype.hcucharcwcharcwctypecxxabi.hdequeerrno.hexceptionexecutionexperimental__config__memoryalgorithmcoroutinedequeforward_listfunctionaliteratorlistmapmemory_resourcepropagate_constregexsetsimdstringtype_traitsunordered_mapunordered_setutilityvectorext__hashhash_maphash_setfenv.hfilesystemfloat.hformatforward_listfstreamfunctionalfutureinitializer_listinttypes.hiomanipiosiosfwdiostreamistreamiteratorlatchlimitslimits.hlistlocalelocale.hmapmath.hmemorymodule.modulemapmutexnewnumbersnumericoptionalostreamqueuerandomrangesratioregexscoped_allocatorsemaphoresetsetjmp.hshared_mutexspansstreamstackstdatomic.hstdbool.hstddef.hstdexceptstdint.hstdio.hstdlib.hstreambufstringstring.hstring_viewstrstreamsystem_errortgmath.hthreadtupletype_traitstypeindextypeinfouchar.hunordered_mapunordered_setutilityvalarrayvariantvectorversionwchar.hwctype.hlibc++.solibc++experimental.alibc++-develCREDITS.TXTLICENSE.TXT/usr/include//usr/include/c++//usr/include/c++/v1//usr/include/c++/v1/__algorithm//usr/include/c++/v1/__bit//usr/include/c++/v1/__charconv//usr/include/c++/v1/__chrono//usr/include/c++/v1/__compare//usr/include/c++/v1/__concepts//usr/include/c++/v1/__coroutine//usr/include/c++/v1/__debug_utils//usr/include/c++/v1/__filesystem//usr/include/c++/v1/__format//usr/include/c++/v1/__functional//usr/include/c++/v1/__fwd//usr/include/c++/v1/__ios//usr/include/c++/v1/__iterator//usr/include/c++/v1/__memory//usr/include/c++/v1/__numeric//usr/include/c++/v1/__random//usr/include/c++/v1/__ranges//usr/include/c++/v1/__string//usr/include/c++/v1/__support//usr/include/c++/v1/__support/android//usr/include/c++/v1/__support/fuchsia//usr/include/c++/v1/__support/ibm//usr/include/c++/v1/__support/musl//usr/include/c++/v1/__support/newlib//usr/include/c++/v1/__support/openbsd//usr/include/c++/v1/__support/solaris//usr/include/c++/v1/__support/win32//usr/include/c++/v1/__support/xlocale//usr/include/c++/v1/__thread//usr/include/c++/v1/__type_traits//usr/include/c++/v1/__utility//usr/include/c++/v1/__variant//usr/include/c++/v1/experimental//usr/include/c++/v1/ext//usr/lib64//usr/share/licenses//usr/share/licenses/libc++-devel/-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:34968/SUSE_SLE-15-SP5_Update/25e0d7b599d0996bfe3395039b209c82-llvm15.SUSE_SLE-15-SP5_Updatedrpmxz5x86_64-suse-linuxdirectoryC++ source, ASCII textC source, ASCII textASCII textcurrent ar archiveYN<ɧ 0Fdutf-844757e4754103ddfcd46a26939e73aa429342dfaf7cda9ede76b488e5ebac5d7?7zXZ !t/ ]"k%{)8aғ?t*=md 6PŘ` ?V EVzL$ ߘV7iؽ̕>SQ57T>R0ܥY&I`@5r+{zӜPӄ9/H(pfض)b,9CU4b#>^Ūx9P>`:@`k#՟uOAY̺ QDlwmUYP4SW{E9:L^9UHG6#k3'P)*R0{u[ӯ2ea4)jY?Ĭ: 2WP3Ɋ|܈D(]0 hPΘL ftĜ;aߣ)? $K{6Mg[+ zVq\>08zTĀ{nj5K t:7OM\"$ߦ'^Ǘ0ã$4Ղl *!0O' ~оw< ,LU:W(JgMMCuy@ޖ10*FJn(˂=ެPvuuS)nt =F*{ ](#ppgX4Z#y(t5gA͒GӁ{Ti/)B%42ܺYRߡ*핟xoeSw:%,zaURJ<%*^q֑ޕo1ca\4 %=~3l.;&Fhk*XyۓJ$D9Rjj6 1teCr:e<ue:`*O4LP=|dA8faޡ~iw{XQC)||'R0V&TmtBnqR(^σ>9Ew'JS'gב DXQj>7کUhx"\K"zF2A$4ؠ8 -1߽͂ơ M_s2‰K@M<P& .m[-%R*3M%!4%$B#Krɷn`9tCkjST I6;竺e qߙko\h""x$^S4|+]Kr'W"RNZ2T9Э>%[b/D/,D-ϯY2wsɞ=|(C 5UIs6Aq`ROȥB\F8etӐx 7xHm{Q=jPj1#{{)%.=le5 Ke;"R);T͸&|Xz-#UDt2AΟ7wx~iV9t*N6Km. ҧWa8#ϦЎ>O}YY]\h:%[FZU hM[0j-'= )i*8A Y2>zT;gX-FSv[JIrXSK#'cr `L).!u?wS ;3:_WjC[2⎕cD|ؽdHɅwk>="R3Js";64/3ِ N9F5W~c4ں͑"F|b{x:)lWܶ"r>K٣6eԿ&N:V~ %c6.(aJա0m{+m,ST#]pd ;|RyT< [#dJ|R$$Q 8r{{ZA6Z+dGHN i0ki5d^L"B}2'UPyu^p0:H,F,$'!wBOsHE|?.'+5H,)gF)E`?W4gyh+DXjs VƝTv ^5p)Q/5{ 6X"wԋ\<׋Ex¼ч%n:7ӐPUՅQ?Dݓެ0;6AMdcQ)OAL2lkR(¼rXp2amViiyCqTQ !ș*_nkS$Z+m#'OshbDs 7)eSkRKߑ89a7Bb1&.?O7c֠7_ƫ{Raݟ;x̘~HҮB%9!Hԥ nV!ZxW]('3(a¦QF0@I+HrIt^*MivbcDj"׵]=2yް;kYD<83Z^k$E˞*9?/oȈ&KmQya[ b|ȳ^ϬBQ|Y<&AuMxOyQYi,gXP![?~ppa ٪=|PT0@N)R;3g*%XԄ&HAY .B+AXDž^Q?;CM7rTX!l vUu>6KnmN^~q'\tM1R q20vՄ."FѪʍ]i=Rky'IY JuOBHͶ"Tyւ5>ùZptAJBRI7h1B=k.7y:+80Ph]u;3ذѮ߿;ô+BddT;Cm7t#LYL{"fbXg;Tߎ^&W S)x %Jc+ .gϾKo41ˍ244h u|_yw Y˱q @