clang17-devel-17.0.6-150600.3.2.1<>, fp9|Gpӹ0faq6UFM^[-f .$#ХK0^ӵ=D CTn[VDzr(nz}\fK@`3RK'{⠶!WXnim!J00_H/98Ȁ۵019 dѪv>Cx?hd $ L ,Lbhp    0  p  &      0  t      ( 8 9$ :4>T@cFrG H" I. X1Y1\1 ]>d ^s<b{bc| d|e|f|l|u| v( w x yz"dCclang17-devel17.0.6150600.3.2.1CLANG frontend for LLVM (devel package)This package contains the clang (C language) frontend for LLVM. (development files)fs390zp37DSUSE Linux Enterprise 15SUSE LLC Apache-2.0 WITH LLVM-exception AND NCSAhttps://www.suse.com/Development/Libraries/C and C++https://www.llvm.org/linuxs390x`l/ 'G,86{W Y "W  Xd '\eVo /)E%u/u1  ?Y4 ':K' c1!{:"BodB (# &  #pF:3Q 1c`R~= kRV]$HV1G d$N>!-3,=X |+  2Z; H'7Q" _TAO9I b K_Q1!Dr,O+ &u'- ,+F ri{%V 0AAʬ*nA`m:+v H**>W =O >  qZ! r@rG^f m6 9t!;,`DF \~K1(U Daރx(`PVCP.F}%SNrM/d !LY\s/g9Y9x** 2:4 % : wpsK$in`sE:phM1%OaW 5q @\G1B)!7)) h K. #s Q3MP/H;&_T D0 uj$ U 5/pu.9n9Q1H } =)k Ph~ |3(g ~ a -jZ*S9 n./(6 >m ) {m*  # V I%- *% BJ_ {D&+S?ulgS;X&0 0'#hFQXPq< 4]t%B o * .(h, f* '.ok&=G&X'M ( 2>l4M :<'E fjm.%|Z]C .! oР( XCu@v gG;i *Q$xo(F>B17O/ \FviL,VO1r\; B4?rZ` b=")A!; g  ) A!7?I b!1<? [ &djP/  m\b}qTF # U e<K.7 CL+OhVh-N8K3;%AA큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤ffeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfeeLeeLfeeLeeLeeLfeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfгeeLfгeeLfгeeLfгeeLfгeeLfгfгeeLfгfгeeLeeLeeLeeLeeLeeLeeLeeLeeLfгfгeeLeeLfгfгfгeeLfгeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfгeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfгeeLeeLfгeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfгeeLeeLeeLeeLeeLfeeLeeLeeLeeLfeeLeeLeeLeeLeeLffeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfeeLeeLfeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfeeLfeeLeeLeeLeeLeeLfг!eeLfг!fг!eeLfг!eeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfгeeLfгeeLeeLfгfгeeLfгeeLfг eeLeeLfг fг!eeLfг!eeLfг eeLeeLeeLfг eeLfг eeLfг eeLfг eeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfЦ#eeLeeLeeLeeLfг#fг#fг#fг#fг!fг"fг!fг!fг!fг!fг#fг#fг#fг"fг"fг#fг"fг$fг$fг$fг$fг$fг#feeLeeLeeLeeLeeLeeLeeLeeLeeLffЦ&feeLeeLfeeLfeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfг$eeLeeLeeLeeLeeLeeLeeLeeLfeeLeeLeeLeeLeeLfeeLeeLeeLeeLeeLeeLeeLfeeLeeLeeLfeeLfeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfeeLfeeLeeLeeLeeLeeLeeLeeLfeeLfeeLeeLeeLfeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLffг$fг$eeLeeLeeLeeLeeLffeeLeeLeeLeeLeeLeeLfeeLeeLeeLeeLfeeLfг$fг$fг$fг$fг$eeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfeeLeeLeeLeeLeeLeeLfг$fг$eeLeeLeeLeeLeeLeeLeeLeeLeeLeeLffeeLfг$eeLeeLeeLfeeLeeLeeLfeeLeeLeeLeeLeeLeeLeeLeeLfeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfeeLeeLeeLeeLeeLfeeLfeeLeeLeeLffeeLeeLeeLeeLeeLeeLeeLfeeLeeLfeeLeeLeeLeeLeeLeeLeeLeeLeeLfeeLeeLeeLeeLeeLeeLffeeLeeLeeLfeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLeeLfeeLeeLeeLeeLeeLeeLeeLeeLeeLfeeLeeLfг%eeLfг%eeLeeLeeLeeLeeLeeLfeeLeeLeeLeeLeeLeeLeeLeeLffВ|fЦ&fЦ&ffЦEfffeeLeeLc17e8e61a1cbfa67568ad765fb8ae0ce1cd4523ed708e6ba12278318a337f32538207d300ba333f08ef0c4eb75d265e2a85b0dff2376d1687a73f81e6cab4b7638ebaab016fd4faf9df6d2fc0c7e8dfffd8ae1740ae9126c077063a453b90afefbcc4225b3dd36e6cb1a90d26472522ccd9fe3d78e65b99d820181c9a624539b5c23551b7a08863501c992bda30d4fcc1b928a6881eca693a82f17b11a739e3ce7933d26e763a579dddbd3bf20955433909ee24181206b2be0961d4179ac7eb9f71944bf92e5dedc1541aa9bc741f32bfa2e4e9700c0fd283380f3eb1c1b7b665f61b503f4956ca0e5b3ef36149e12ebc13a411fbb2e69ce3e05948fc6a4775cd64d9d58750dc7d240a8c35b3192d8801672200f3df3d6417695ae5e59c12cbcf84ef434fbb6b57c65a56ae1de62cc606f39ea90ebf4482dbdca1d1d9c18a51fa4273e7c50e1b5699ee7d5aa0bdfe0e0fa22f03a86562fb66e9265b64c1ac876db1d532d5337b1e9087dcfd8fcec2e37fa257c362a26174c57fda2ae4a5e58aa3ce45b1fd6f750376e4d23d29455de087f69043e8c14db50ca80a9c68d7fb8c159e514fb76cb88de5d7cda5a6c08d13ea43db62e80e94a45531584385d42d833e2e4b4d31895375b2dd2349ca2ae8828c6f7166f95f3233857f39e660eb3b7b98e77eb964e2985c944786336dc0f3d823f396823d6c2fee3e428d3529a563acf381b4163d1dfa10e6c603cea699038016b4a2e9c3d6b2f5e27b3bd180bca669b31e27fa4587b40c0df3dfba374c380f9ea24190510d35ad45e477bbfd9f0e7ba216f15c8fc7ef2d54ffccbc1164af414779f166d7d16327b259fe2911e780b7f599f9854d033c011730d444aa79429994452cbbdc48c26e1988532380e77f17a6e0147e6f4ffff895324a40d5d696a62ac6322b7439335c077cd70529f9889caf9a34bb74634c79b263739b1326b424a4a31b5f127ac8a7b9b4058456eca398b384ddea3e000b6f72a7d6bea0ffe0deface892c683b4f1dd99c53b71304b292ee5acc16024819deb1fddffb366d2da3676c6c74fcb33da6d26d0b981ab42f59052f6e5e6f43546d18df9d90837f0eb96fdcb699071e8ff332f9f998bbaab9c6b0e8c0688fd87005854fdd967e221da0a6a3b28d9080f1178c58afac0a1fee88c8bffcfef619842ccb56c5d131f72e4bac583d1bef7eec63105043f03a5443cdc67c3df04596337455bc8c1a25cc8134f3895fbff501d5d5564a957d6fdd85b26b41b7e764538a43cecbc906c0170ddc98479bdb5cf0f9566e4d106db02817002dce7d94568ba7ea1a2e5a9b403803b7088c0e42ef2a0aa01ea8086caced5a97edf3f17333bf150d1108515c91a40b7dfec92f7ad526768ee338d9245bf312b91b2339bb4404a9a4cc7976ec8fb10229fc2e57286940887e0e0c862343820397fa1adeeb061ec3cbb963d5ad0803065dbfec93e6833cb8088e9be054155bda31179e2979fddcd93b6160f59d60c10b6b7ada84dde9c60ca2c6f24740c3a5d0e21730bbd2fa70fdd7caacf5065720415b9cfa799afb3bba72c8327fdef4b52d169cb2c838bf3a745885d58c5ca7aeadb1da9319efa13c817c85c9bb11b35940938630c6a90de0ce4258aec7b58af899cfc1af6a0357346f472b37be64a5866e4ee1d91d4a5f20951a43d670ef0d34ac8d87674bcaeb493722a6882551d7497a893ae3d2ca42c7b0a80cdab59e1e257dd0b745676ca5315dcdf79e799d00455d283e41fe5daefe5d805a304473a63ffef343aaf420f6a990e1e570c7f3685ce97dd89ebc03ada6fb9bb36110b5c2df031e5b09057c9311047153050de998631706d38129a13bc3ba969dc7fb5a6b7685f0e499e2465e994eeb3d6c14eb4580469d7758c4446ad142393ce0365866f131cf280c2323b5deabcb62a9ecf930497c706637230e3e143772c089950efb8fa1c6bda2e8deb8c6c765554eb41cd06d8d444244bb4a650140b380220c58f6c4197a2a373105914fafa5dafb9317964661c26b4a216d538f8997ccaf04a3981e66d9e97cf730aec8e6acb95c603ea502558f7c6fa743373f02d1894298637b27edcccbfe9b13fd7bec7291323e70e097bcb313216a7b58ba12bd6b4540ab5350af3c86a141c15abf6693433708dac17ceef6b7a090ef7d6f459768ba9142ff7ba6b3030d00606727dc0a915ac4ff67cb0e590777148fa660b017b67e76179fa919542794df81a6ffef7c4707ddb963fc86a8c75b67626b00a6938101cbde69880601559acabcb91925f988d09df5e1c49cb9b9b99bb75798aaa253b3baed11c93f5c9fd5e236fa1fa17600872913c3d1d949d40d43b91e24f9902e98c95d11fd0c8310a6e3f6d22d5c446b5edb26caa47c13ecb0d6e2a18494a2f5810eae417aa1dabf7e8acae6fd72c44de0f499540e816e13aea68833a836ca01a119fde6464acd0384ac99f031d8c1f5247decf0803626eabd9e7870f1411536b8576be49bca286ad83b0561fd4a379b33a8de3614a7d70625875fc4b10ad9dec430f23426494f1e2492dee676116fe0e6e0b0bd912fa68c17f58d63a20e3247af6bd212390b333a068f7c0276a39b4fc36f5169efceb6bf2d03436cb53ae28c840c817fdf200cd8b3e8f78d23ad01ce0144847b5d90e80f3d8b56e5a22eee3a8bd55c93e45c91b7e4f75a6ef4865ebc23e7e909425666c9899bd818f3d44c4086f9c9718745139b2dc795b24e5d9c27065178779a84261e401aac8bc9e1b23cf76e143469e73ea9e51ad68f4e799d1617bd9cc61d64df9a5bb769cf1059d6bc1450d384aa5d88e20df3c3d7b8acb6172fd3600e157e589eee279519057588a2cc4895aee78a9063c768573f00fa2db0351c9bbfc5f1d9e4d0d235004ab923904301674a98e096480e7fc0392879bf31ef3c59b1c39922e679b3bbda521c9f3430a39a14591bb153c8f5886d7ad6afa72f0aff5398438fc7312228ee4acd20c8b85be68519a6420b4379caf6253799e48ce227b5ae2dde5541dceae17dabeddf78b42f6922a62a50dd804f9b1f0b7132f8f708e98dc991a4c51bc08fdb588881f6ceea8b343ced1062832d0e5d508931cd68a7f860ba656563b68fb0ad0a090479000a79879e814c62fc78e75814d7ba8620e950b1e7642736584d9a41048da9df0da6fabdfcc5331907a0a394834a054ea11c26308ff428fef0d8897b7573741389fd7d435726d6846271a42bf5ac6fd2d8e3ad321c2f03ea3dfd822b27197186d4d97d1a6238e7e257aaa33ba8f1e03f3597cc3f693cbab7e93b87ace2f84f3e85aa3162e4c044ed0031108cfee6a4c09670a67afc8cd0202c6a165d6f63ae3ea1f06a0fbede06bf7bca2e29b0b34fbb49fc63b4488b7b7122c0b91067e4f3106525317790d94365d27db22d89f598cc3c21f4b717812dc971e5190adfe42e2f78bf83d0263a7ef95ba88d39fc0b92037a46333730a068d141aee63fff8ede0d69f9f11dd4c1455763b66b33a87bce00e95d629db163d88871319be01cf3838459358cb26c4d3670ef635d0deaec569a67b96dd78e56f1cc3f6db554a593e8d7f91b88953d0f2a6ec31303cf61f9848bac9d6e89e7b9b636448fab235bbc0c5c52a65437ea6d563df04236e4a54f69f1804b4f49ba99ef8c8c82f857d78d8c13911074a389ad89f7a6fc017b5220317ee5a0675180595b97bbee71dd0e44379aecb8386ef4e4b400b36b241f76a32c9dc5a510cb027cb55c972be12d964c2cda15c4e6c20321b5ed86d53e4b229c8113c20239917cafc291bf0bf96811653ac264e09ba6f371314b8159f7e11b6c4a876dc93c55b54c85f9e0d8adfe9125ecb7713f0823c51ecc401dea3a43fb65f1e3525dc2d150f5a26d8335579931e6b9ce23f6fe9b9cd00226b4ff64976e8d94effba792393378599423679f6d9f2ff364834c230ad86b6a1da9152bfdbc3d9777537cc137c546834ff88fc83638fe0227de357302dfd5831a302a09a8b6ceca435cfe6c6907e623f411050add4900ef689066ab7b7fe8655c14734da5981478bded5e847b594606435f9571dc1d5b8ebddc8b9ee05673971a5290c6eb302e6e0fab000e61ad27021310125b370879cda16317f6de84cbe68b5549d8a5b0b8a56ca51f7c33c979eb408d220203f4c2424ec912df35ab6fc633fb8f29cdf1b84be7c4413796b5b5c5931d9051ad0c30fd3bfa40e925b3350e4a1f40f234d6ab45de6e22434d6c3e3f1c50f3eee87f16713811ea18bd58313f047a9b7c58586a97bb2e27155bc3496c902e31b77bd34e2e36f8369413e40178a4681bcab147c6979470f1d75ffb6b02e8cee54bcd88acfcc20ec080766b0f91a0665703c3d1494605a3f9cfc21cbae49489a847e60526b7bdb137e8fac9a3cf0dd8102ad3a5ec58ea9c3db48a9573153761a549c69d3e8b06d954fe2864ee6f963713841a25325a09b722f427898adb15d596d497a1d78d313988a77982efbc9f946e19b95e285d47a299210f1f7e483c259912f9860dfa2004ffafeec4465d4a518a3cfb164fedbd923177c1455ea5d3dd06171720cc0df2857ebcaa9c0d26f1d031d86c246bf34f26edf56a02c22863e825fc805f5b5027c5a34282f80f5f4b18df63fdc3ef8c5b8a85324d04540b4b462f43376c1e1567c0c750b496ffe8fa4c6bea9bfc051f2666d2a7b7e98fc16ed142d9331c26bdfe86dafe51e4a3d9310adb903e1edaac2fc0e32b59a1fae6f1a595760a2f26464b3e22604cde3715406a658ce7bd556869389a31a85ce5da15484b417b3fd17cdece1cd624aded132c453986682e47d66e05e1d049b85b638b89bf985da8965db43f1471b18eca2e64998431bbbafd4f88501799d44caf69665f692e9853526a32db5f43ec199e6af12faa4a5dab8e7c10d01c5c293dd20e80d5cea3771ea99d83deea88ba2693a4b7f340522ed50c245798e44bd8fbb9f26c957ca205849f6687f5939a61b9500841718bb354706300a50ba748c5e9a9b21bac25622e81808d514b616aca1c3ceeee6f263b11181ad0772ab865324e59bcef3e68d05afe43b81025bcc30e131f8299e02d7c1013f1ee8e1c9f24a60cae70de0b9ccddcf231cf9eb3efb4866432aa1c0d4af52dc942beefae1a9869a309559a59f9f62917e67e3d29db75179e75b0739ce1f71944235cb92548e1cfec59c54065d6021cf438f8bc136adcda8054eb296e3e8231924ba837ede94a773bad8689caa4f11e4cf4aba6218ae98d15c079d743737927aaee04a374d41b9ad7c321a1123ed7ef823e19298f195dd806d508aeff463f6a2e659c5c7325dbb95f381321ff8c9519947089f61bf0f4115f65e16f6e447818c7244af09dad4b8701e8afc4208d7c46463d44d637c11c95715306927588c394cf2c68cd2ff57689caadd66e2a8dd72269e9767324cb6cc08680f5834a87a03c721f8b4655fe81a2568e9e931226d15288b515c2b19ea42221033bef77b8ac4b4c868eb20ab75564ea222da9cf9504921abc0c5ae66262a90539375acf0d5bb4ece881b01ea48c0ce445176aad1e5ea01d10606388ab9c05215fd3c7ff6ef0a62b39667ad6178f1a90377c16e6f79c3ffd30d97ce54f43032fea2a5ba949b16fea3a8cfaa92bf1ecd587eae447b1edf6ba16690072755fbc913aad03e6be4ae9f72c91cb4b38476d1fd9fca343b196fb7964ee21bb95989130c6a6caad65d96f963b06a4dddb56b2c8908610396abb6c5a368524a9852e0748928516087e788aafd160467c6dacf1c23f5fa1aa39544ec570181b834eabed4e43ee33f92a542264df69949986d9763ed6c2fe920b787da13a8271afe0a6601a08fea7b857be6cfb2d7aeeff50e792dd849c02face4e6c03b22680da851a3f130a9193fa689fb44c2d0d3156147ac18ff1f546dc53af096c298eac609b78d6d21c203150cbe4f9207997fdb054c7453200bbcbd257a84745b2908d06adc0fa29150abdc5b80b1db9738470a4a537efdd7b57379c132327bdf91cc2252639bc36c1776561b1d13f680efd9d77b03279c6bc95a420f2a5e7a793dcfd5c47be51b802105b4d8f9480055c08b9746ebecf86a0bbc207cc8abacbbac0a49d3c6e6f87161538e7060686441ddf37296fd3a15c5e04fbabd42fce93ea2c23c06b1582038f04db09242159cee6ca9bab06793c75472364e13e128927fd117c37748e42c70021034545103be660aaba2ce35323f5f47bd26785f870128a1ddb17d2f1040645c9faf5158897197d9393cf330207e8ae5d31ba3fe72bbb05cc796eaac905e3c98f0f9e21b4825022c2b26611ed5b2f6f08aa6f51dc1dc30279c63ba8da6fe70eb7677d5fde27d71be5d040be8d9ba9f9a9dd0ee553a889894bcc1a1ff3f42f59c89f85dc6e418ba58c1a7aafbd029303686ad3c7e54962c39825031b185b7d4147614297f9b4180668d8c358eee229353cda158ed59dd6e06d1f9c16d37d01f0d3914fc3eba45022757f0701a8b3c7dfa7bfa873b27dce114d6d48f9ff237ab570326749d19da100661e4015bdabd2475fac27cbf43762eb42f2d01530a33ec24cc52305ad1745a2485e8ced0e1855c81bb5c583034c19400bd1f3e03fb4a9034d70f765f596c3fbc87833fc7dea36d6456e22aea90f999e48b668f397b3ac352508ca03c8bd6adc648a3cfd3c78174fb9aeaf1d11616feddc2fc5275d96ed92abf6d97ad3e70c9c0bf23acfd34461d3494440b1280aa4b69d81e581f84727c0bc7684608b46c17604b27d62c4d64f5a01b0c01f4316c200b794adce60730295e573e227b9e7aeb28867644b3924a3183d1550bedaf678ffc7b63a033b91de10646c7288db32b16264f8c529dba7772b9cc83c04522f68c749855d477f6bbc80f18357ca8fd827d8b58095875812c1063d43438fae300c7d07b5e82cb591a98c060318405dcaaed42ad622c38c060fd75e35b0683a81fddbac53680cb87b3c03b66f509d023315aa313a2f2c9c1ef7880d3ff71e6477a951b23911c9c16daa4ab1f63987ec373a741dcf7c0edd83ef0fe30e8bbb32312a42fb5a10141ed2738ddc6c71ac9a2e7713eaafa83ea03e3782c474837131b245dcd49fff0c4ff761ec7238879a75dd3ba3f803ca16e8e1f4615b5297a495095e6ea364378f955f53574aef8635c0007f52539f7c7779666439c13ca08efa117e0a561c039b3a5a1bc1b8520ba961026ad19e5fab4dee23267db21dc48cbd991192e8e5a0a8063b55cdb893bb9d42e10b3b9ae9316638cdc48b317898ef308021a5ba9688500d7adbde49c1f5cbea05110ffa3a4a24d3077417ce6e1e834e7602c38439a8db0ad80ff2753d7bf1401e1006b2ea0edfd4c01ce9b92b22c1bc3bc12599d32ac34753131de7561a1f9844b5ed78071da1e98eddfa4033dba8f36acff65359b04c08c8755868b2ced25262a01088286ec3df6195d542a257a0333d61fa3893ea76f99b0b0b2474d61904878db7cb78870014996792d577bf6ca0e600190e8712873eacc1d1dca39076deed1ce0fe212cc49da176730e9f8541680a24d8ceaf6ced40248bfb0714715fc6c09180f667ab1939f1ea7dad45bdde4c0df938f8b1fd30b184ede5df10b63dfa386c0a46782e20e7e131efc3fdbae856e04b0c5dc36247d11c9c9f77d5fb40594b692acd0b63063ac74af7c87e7e8501f3731ee5fdd78506e8524f580ad1d1d7837553528e488359c940417c73e763b80cb510b85879950548e5bb8408986953f7858c93b1ecff3d9e4431f2c49b9c00a74a5a5df801fdaaf1c4a67746d6aa248172161eae25d247768bb9d56f4cec188e79d149d598c3bd763f9889da78afc55feb41d9a7786a610a98f721a1e764e95806054eca002a603bc4f9617dcfdeda2bf12f156f9fba03d36a578de909bbcba3eb557a2cac307e7d7700223c5c2a0b6e79e2b90682cca3e68a101bd97feca87f36d6a65d9b589c6c725e1fc887b4d18413d7135ba1e04730c25c67a3770aff6259e4d1e4a01147132002d1ceadea4dcdcef17581d242525aecb7a67a0b2c57589ed8125c416bf7dfeda2454fd9aef38b55d4c5374d39592ffc33ee0371af9dc45b39595a912c7f2a2b8bc3b88c6bd1a9d93b228f7886743e938b0510699617c7ef5ec6556b3fb69e44802f5bdf8d50a9829fa887a5f8ea5587c66e3d82bb01411754b66297d08152ccaf48ede9a017d9eb121f12643bf552b7e320f0492f6b831612e1ddcf36a14d3cb36756b233226aa5d739aa2244f1768b93a2bba588bba26cd061c8bfc7900694a3b2d6bfbcc1b764de6f7e84d954b0805e1088e4f26270fdc2b24001352c280157fc95758b2e2dd1682a54e34deeff3d5618cd1c823a5d7f97dc1a0d0770fa000ddba0671c57e802eadaf03a22e1ce9756859e3da9d7269b4233009dc22da3d619d85c1671d7b299db2bb8a11ba752b7b07b51ceb9598c86430a124433eab928f6fb9ec9587f6cf2a9ea585c53f8c947a3f67e7c2b51b89f3ea2bc2f4ad18d16c07b5f24ce3fed0d5764cb758aa9580aaae4c732c27707a41148c677c1abbd95d7ab6ed55da3470b2fe5eca7fc3a1fd3120aa638d41aeed1a66c5d251f248a0ed647f936603902aab0c1a1190e88acf9fb2ab2253f6853c44e31a6ef5b99bbf91ea968bf015b378abac9180552e1b07e736ba703076d13e31047ee08c1b86f59530522fafb082fceec06f928a93501066265347e0005bf108582a054a92565914a4a0eed2e8e58533ffb3853164e4127cc8222e2eeab7c7e1358fbc1a0acaeb4dd0baffa10066f66bbcc49ccaaee98d019f5a9a5dbef50ba60fd956d46067dd554295d96fcc0f26e8bae897781d723ce8d6151b03bf4b26b2bf7f09aa5c4c9b3bc8053e361d707685fd1edcd167da7c0dbe3de0deeb140313d1b67ec04be3634af9e34a34845fccbc160fa87c30256afebf94c0315b9690346af50c1ba7980f5ff5a8dfc595165027f2f27ded0666f49afdd71ce5f2cf4812cf148fb80490b54a4e3e574f9b10b0f5b7473e79898eb19f9c7423243eb7953bd4c80df3309df9d411d47420898a941eeafdcdc33ef9f3fd3ef59b5060aeed46e1a1813ce759b3d592f3f938c8da1870fa16fce2297dac8215fec84afcec3521a68486b6b7669fa43ef471bdfb607e70c3fe890b6565a9696f4e1e092e9b7302eae5bb882c0bf2c5baec478b361b6f0158f59010e8036b83195017b60518e0d835792d8a756bfc5a6785fafe63f637b7d597b30d966bd480aaec598976a0e85b16f9d23942274a0de5aa6f25d8cb0a0dfc0ad4f6e3e1a45ea44f3144531886e12411f1559c8478f5a0dcfe8ae2b91f8b4b01740f6c09b695bea1b4eb0a5e6f6f2a9280f31abfa1fa64e28eb65f6944edb29a5037f749903850edad650e00767305072502cc0e9ca9bd3661873cd53f51eaaf5c15df2130eb0ae06920bfc630f01cd32fe4fecaf492c873076fc9dcf70cd5dddd9742ff155dd7a698a6d948b1dd023fb5eb3ccdd5051079af71e3f01d27bd57f4371528d919fd1a6f261af5778a4ab7e1bdfb53da2d1fded683089a21c9f8e24832f9842a4849c35e600d03763e322ef925ce0908bdfc6e4398983948ac5ad491a75e765e69caadfa40ca28f9800233c90994ba1557ff5794056fe8a815281c0dc488465517776563be30a7c26e0e875d63a35e327709f69f83228ae125e6644a3457fe5cac9bd8932b1a146105774eadf7ce23ce3b15b702658df4073546d36b021d84e085baf54cb2b5bf162a313af420a9a97a153949cfc042469851b0664fda24071c9bd82e4ca3fefa4beae8fd3dc2852d85f55be55a400a8b19666b9aa5a4d87202bdb8fb7974b210e85c6ee556f24ba829b261d87f43d1483becbfa916672cedb845fb9c0097a04728151de971c21738fb8e17ab8353344aa7a28b1738cba426d67182ad7a627c55ab0f06dfaca2dee7d3db4b74e8dc32ac5410842473a69bedc8e51f7ff43ca4a88026e16b7fe720cb068461e2b58de9867bf6a91605eecf05ef4b987d11b57592a103ad8809945d1814f0b15d87834a25b2f76d769c9143c8179f125ce429149f5557b4bfb3f9ff1cfdae9f1d942aec2cf198bae580c0f97aab06936caf00c12b9da9ec653f63549ff3881c76664fa4061eed172123354bd18efbae0dc386b81cda810df615f878a2042ef50a918d5fe8c237f90c039c7ffaf4a81e70a4a933e3a9799be65e05d12dc33809889893f6775a1d57bf9d99cf575f908e33c606d322cd50107784eb9a819084dac22d4e55cb59a5eb41a78324e714b8be1a631be352ba338157ebf10e4f1767cef2b65a45c5cfec4394568e410d749670e742b53ba1b48f3464f6397f86ed1f02316218961f75b94f576eb92b1b38f9eb495a12cc08ffac31008328d541e94bfe688a40d90edd719de0b6665e855e3174841257146709f784b9d95e0d054e02bdea13d96c272e7f5c79163a1cce7234d6432726a5be305c5f39fb356eb17fff2649d992fc677773fa3a6a6a17af5b9d4517539dce5306e273203b994924ba6bd036038073555095b039f4546cd11b639360d2aab8959f7be7c70903806063ea64deab305b89e754c401f62699dd49cc5a75359af41be814a972ad768b74e3386f9529aaeb05f68d3476dc15bf5b6b10a50cebb7e591f1eef105a635404e7ac2115e49f8845f7e9aafbb2fd309b402d5ed48cceb4a959174862c7a34931938044b06d06c6c335c3aa3f13107fba108028f51248939e9de5e2c2d92959b6d3d3511794307a14de861806bce8b4b9ab6789749792c194e619b14d6195815f52b11d5b7571013cb011149e5fdfccb157d87c932f54311557d17c1f61ba71c1b6e374cc2bdd651bee71f018e2d84b964ad6c3a163121fbdffe55fbde1cb53cda079ab8df73086fbc7d85823ef2013674377dfa54a3db30bc08eb61e13f37d59ff32a7f828c3b37ac5f8d36b93fdc0d37748b7ca45b9f96e19e501cd61559b7fa6646c3ec2beb4196d00345b13c70685b4deaef10781ffd1f8c39d564f07b0968da7f772cea512af5d2ecc4b794e963ae4748476d56e9a7a988a1a9f0763756d2f156a8ead7c3d116b77e546dd9f9d77080db1f169ee8d712db26bf38c2d4d6973d5b47d32cde47464a752fbb50521b2661e2ba825e3099dccd75479119e44c1e03c71db65e3a7221ee40a0ad00a4b17ac1da336083bd37460d068802d7f23b9bde862b1273f52555ae9b722b1b8048abad394c9e33077f04fba70dc26a6d1ec111352dfae22b51bd8042cc898d29bb83b98a27ae579649157ced022162333a99c7cbf0b0e3f8b0c5b1b3533ca80e39f402cd23466ff23da7f29287f5c28cd58ac0dffe2cee29bcc599bfe9fb95d5d030bcb02a54def61b29f1c66de9a696ab7bac093fc31a10198dcc5962132885c27612aa15d47dc3dec90e62209a278a263f711a7653c373be1848c6342778d9978487c2c764614d5fa57b97e7fef014fea47309e3ff5039e5410bd622eac9fb0b90dce02612431f352aa7613622480b0bc945f7af7ada25dd9bb39e9738903c8933c587ec229d2695cacafe2f34e4709b752a24e4087fa5237232a427d5921463fe9e6579e87559bbeb20ade62de1d71be1d72bfa599077182a406e8609c54628f150311def5867c2beb3c8dfdaf3460148d492f3963f9e4feeb783d3c3a3bf82c2b5092b78ea5ac77b1d84bf2b8cd0570847ca4605298f286a97f688fbf6da888a1b9ed01b3625acb706b60213af19949ea395fb540cebe3cc37b4703f65ebbfddf10b6352ceefa15866a3a4fe83b69f24e667999d2e0d7051b53c7d347bbe170ae44df77eadaeca5e80af895d0fe2ca842a27e3b8d67f4210ae5d4df4a3461e735b25dc66f0dae5699f38cb4f96bc532bfbe1ba21233c9b7d4d5e070081a78622b821ca521a8f81de713de0872a7727b7a0c4910c7f3b0b586d2c68706beb82b0de69b8e945cdedb2a46f5b048d12f071488d635117e13828627367071ce41ca5381594d758597cbb26ca31033237b8bf44c5fe85b0931572a5b744a8b0a5ec2280ed0e23b2ea2af78f9dbc3fee8acd5694721f52e8f5abe56ec4b877a50bb1c87c65dcbbd9f4bf4eb50e0a919eeea67b2ee82c583e749f4b6d0fc2934ba6422571b25d58f4b4df69511563fdbd1c8a9735faafeb655305576aa2c1ee6a54fcfd7395b2bbca4eb4e1234c88785270c5627ff6776d8fd9e30088b42402dc44ca26887ff4e3d8aa2d9adfec599d8d2e7ef2a1249c52da71a9ff6af6db11e5cf2406b8a1fd4a311af1d6302254e7f6fb70ead2693e5681240de96dfeaa15a500d08b93ec2d53667298d83f94559ec26be1339577d37ec886ec157e67e7d93435bb03a6ee0c619ef15ecc731578a35a7aa31d6ee8969eacd10f20af9991c34763fb9be1610fedf182223d85d16a2be1f63325ec52672f4e4373a9d67cff1ab8a035b25e20667f2c46505e6e64cc4fef3bf204f101b61bf1d9e441ad05e030f65a2692ce4da58dc6c5c22a1c6a24c7093afcc82f66397e4778edaca138cc97890e4053e12c32694ce5cfbd14a5663a13c4211c3396bfad17f59171c3d98cb7f0f3bf48f3f255c8b82161a2327ba225ebc8d148718117dae7d29deb4761b58987bd1a30c7cd55b5ca560f37922f5eba49cc50b593b2a2a66914cfd4908ab5b2941df24c373427c3e884dedeeb81d2a00c0295c0ef787c846212ded1348c272e462daaec1980c54454e40610ba51dfedd7aa6f8b309f53a3a2ff2d653d1543fd34828fe355fd7634402b3341a3cd270fe1dfd7772145c0f6e186068c0dddae00df8e05897fe50ce8d33c0fcc37e4b0011a3622310c651dc5688a0443e714785c40327d2ecdb2fcb9a16c32987fc64e0f4e2b53e7bf4c1f092f36f06d32e20f84ff791bb02e6f072ca78ee701003fe527f861d58b3de3096c4858d25c39582556016be64fe582ff05c0b54c3fe27d05587f6144aff8f4994644a1e94d5858b34dda39db85db838775031cd0f1e18ea1a0f3e8afe000182435731fe8e3fe4eae1cba4174188a15925e7947bf2ecebcafafd8f20eaec8385183634059b93f652a008c21bac4f658f2d9c304eac7c0f54b2bebf747d94e088d084a84cd15a73ced92038b7690753dca02effac4e7c305343d163fb4dd4e0d763b2626e50a255d999091c74f9ef0858f9e544a2af9ae6b8124bd0b61df47a09371556656c7efd9ceb542bd112bbfefdea2e14b4c5805bd093892b5b7ce56096f21f6118193e20f6418bc4dd51623d7bab6e322b713b433865cc6d213934da70d7a39faf146be0c41293c36d43c5fe97a6bd21244c62faabf836c6dabf37b54ea84c6576059cc43658982af58497caddd83599effde3c09e67c1f6a08d2972aff92bdf3d174e3fb54bad845f62dc3ce1158e2f14be4e78b37c7e7d88ff4443be664b5888e86c9175bb628e08b79d468baa0fb351924390936bc70fcfdf9128af68d7b92c1cf9f7cd2a57817949b643038c0b5a521e0e749486273ee73ff95715a8e4d40ded36c4fd4a9111dff059dc8984b17cfe68d565cd97723c90b3a8ec95edb0a9d6e968e4c71a593edc77b3cb84df59b23a35b5c4eb0320d95e4c8c04fb9ac050c97c44d5e801e38494813340ef01b976cb982f727c1fbcd70908f5160a509321016d385e1ae5303687ce5449d4d489e7564b0e1279c9d18832d56d5a72490e9b21d2bf73bc4af894ea07a1cc4673c7d4b2f235c2e37610922a9ccef267b25535dc09a7ed5a42955f5548be8b3611983b6d7cd2d91bb3c41e415cd0889b8094ef3e3f7df8d292b7c8fadea57899c58e60b19ac6195d7f489f064faabeaae798d74485e739b071833059b057c30d8a513b2d1de67a38da75baf26c7eb3d1f7da19117b048e33c3970d92cb917b29e2fbee2409f4c0b7794bd25fbd9333676d199a45de5aa51c809799cde486bd7a3d9a7dd17c1cc860407c85d38c68ec7186dac02cc1071ffb53acdb1680abc84994c5c0d9c527151b2a580f50fc54f188236d8f59f5d77cacf4e28db302df3b1797cc3afa10c1641abeb34b8d6cd05e2cbfd65ac087e42a7d10debbabd7895d48b133a5b5c43872db689763bfcae6eb9bf55060fd22c51a8b2e9348a3df40b15c4b8d928a893391344755bea6d8365b484fbf1a9b127d619b869d6ddf09ccbffe63ed6447bbc92bbbec58ec1d625334036879ed487ba7b4af99412f98425527f3f36c52a64b45d45d8cd652a025be567d4f3b99251775d3e50d86a3f5f4f8d52a9132a6304d382483f9847f0ea7783e69856d941b89f3e6005ba3979f90ab260f41a1554bcfc4479287580d9f10736b714f7af306a6eb02bec4bf93bb7a1ecb2d0a72fbaa91e69aa559fdc29f753a209ffeb23eecd410c69730d9baf70b2b9828e3628b7bc0dd90d9c5068e617cbf7e05b03eac3811594387a10a669a1650d0408a9dec3e3162729bb22bf4dc30b67cd5b9c095475642694ea7771e2ef32c3c6d6953215e789d172657dd26e62b6d0a829bc1ec8aa4f8c7654830446e2c9f4b9198f52832d4294532fb7540aaf73c3b5da30b55330e19bcd04bf96cfd1f5442d953f1153b92a41b1a3900f1170cfdc2c528dafa8fcea04c13faabf9e9968e3221c0928f3ae2a61e2f7b7be21f45f7c3b42bdb8087a025e3c2ae183bc09c101bc5b0c352b167767cc7dc78ed8dc880067657c59a05cd1f018215240bfa7e5b3b368999e083cdb40c782d7ede63347c56083b0604837d58ef753da6f6643406d64f2db03ef64b7ca8da5c9883a6a0c4f03852d9a7509dd24585505eaaec2993c9365b8ec0006a3d7b92bb89f4c96995919ef31cb4b806a7f3d3cc2546d158d38feefd0ed127ddb8393b3f90ad5cd30e26437e7968d917ad7386d2d6057f7c8b6106d32894731619c18e798c587d5d3dc6a61f5f0175d386efd685de29dc74f6333c107ec3364fb0a52d23caf859a82562c5fc98924219c99ec184a8a6a6a3cfbc0611d08b1f98357833e8a173a80d975d967efc594be7514645ea37cd20ec58af8bb77f6fba60f911666cc522336cd9be4dbaf12203072ed4a106369f4ff1f59e3f6f5de93dd1f8cc41143a44d17297ca3a0f4572a700cd132eec7a30427d92a3da3933db417b5012b1549a8db422f5bb2cc8fc5b9bcd7ec9d797b32cc60d1d136c2a29898089cc88498995754508e22a11a3ff835b66222cb72ea94004cc048e730dcb005d8106b26da736221742fe2fb0c04245ce5c6e0462a946ea2c7107b7a81af5cb02bc4e7127259d3116c34479767745c67c16f77d1f31696e94ba4a4dbf308cdcff524f26ed04ae53b9e9e3a94727d6ce2f236dd9bbf6bb0691ddf090bf25817130968566885e493658e0e6b7c08e28bfb9cd30003af9de23bff091845811ad22c8ed5775bc15b59323ba19f8a6ac57e3267b4a45dde391724a0eb7f4536c3fbe3e8e0005ed2f2458641c5d2b7308ac2d0c7abbce0402323751fce395103ac345e9c97c0af450887b2f9ea574e0bfa0fe35aa4e72b11ff1d7be54662c3db9b8cb3095c115096475a721e03624d9de01cf007519bbaa33ade254f949465b729e9f4426065338b12eec9c8a2ce22d668940c29f213eb9166eec298a7efac2ad7f6236ba5d217bdba175212d2685dfa36c40463f6bbc6eeec145d85d39f29d877c43e626f297fa7e06b1a4c21a5c600d7e19c4ef6148f198e3228668118c688ee1f579c21c247881ee0256dc7767a8e881d188f8cd02b80ef8683ed4f6484255051301ba6ffc0fc540cd05c53469d914aae7ef1419961c70987f1c44884017f3bdc6e5c414183cbfaf956283bd49f6ca65107a6dd5443bf4e225c17cc24596528c636561a229fe7e7d18ade312a29d7127084ad4881523b9ee5c2fae0425621344e5608518e6d160459cd9dc9df180574d0645321cda1cc0a68669e2a5d62525fbd54bcd360950725bd07fad2403f4910538cb6288597497f9a5c72dfb0945b899bc0449f9f944c88a287e89e53462364e2546f26828dd897692b9ca2ce0001ed183c7e663172f032ce3f683b27014f7e8b289a36a13294003f697f5c7016b8cdedd6bc989790147f0530651c73cb88a583fb4b338fa274280ff87217ffbc1b133bdcc3b1d2b0d3d0e0375ad87af517ed9eb3f1f30c0cd48fd4beb8ebe35ee103e03f8e64244f611021f633ddb66433c08fcd042af00b266a5db7fc01a4d185091482be7bc7356cc61883e3312ec17c62c86e970c560feeeab3c9e65c8f5592921c3e10e18c712d1f281cc6923339e0d24d1da416f8cccd8f7165c19ae645b5a4067c264431609e5b3e6f94232d3f183bac4c7013d1fb7e942b8e0fb833c6c9a1bdb69ae5ec8ad86c53fa5b173cf9497d6d267e0971b3924600121bb6164e11be08a1e732580e30536ade2b88fb40c3747a6238455b03526631ad7936a6877918668d2bab31122564c2ae0d782924ff610239f06d23300bc8516b488eca623b505f92fd928068c9706028316d7a12119d2f0e39dc59fba116bb549690ca91d6b109ec1433fb6a8fa2188ea6186c14c10d086fbec31ca28ff38c4aaa4669bfe47d7c9653618ee5784e3ef752ace8b80155c66758e23825e3d2a030a4a2f206695d4b53f09c19a282cbf797ff7dc405e48d619db6a10912da00e0c0735e51a404932c919f1832e8ce46c9e5c52e317b63f389ac0361280bc6173787a942e070ab150fa49d57c717c46b29ea21e9bc56d3331aabf542bb35cb8ae0f0001499805c67412d3b4338efc95f8884547b0a6f3b2fe03df2f73b5f815f311e4dc5c5eed6e2dc7c0925c599b1e2188be8884b23299510edee7f33b1cbcf062d17bfb42dde866e8de12b103cc82bb6ac4bd493eac959d6f0f5b011f58b7cb91607c006253b503ca0b90bcf4d3daddc58200a98b776ad703e24daa5287f52176e6b7e501f41e4fb7a4eaa67479bd340559e9101c2d24a0a9e70a8b7281d95c4f36dcf6c85886dbdaffb15fa28094f6119542eba8648eb9133b5a1dc41150a9f1be7ff3cd91c22c167d3f0b9d492c9f61939fa22d07c047666dc805b134a61cb1a93442d476625038af42eef27f963b58cbc2f132e6c72a0984f9c3d16f42d2aa4ef944165f1189ee3e0fa330630d74f78223710d3efdbe01c8f22273e16ddf7b7ff9e854bcc7326b626ad098b3d6ff5e0c3b3a13a54a49a80d56d3d626eeb69331a05c92744e91a28ab523459bf48777c1a96f968d01cd371cec45f5083fefae6ccb0c11e8626a00ca3b38f7e5648f1b45a31ecdc368491239b9c0ffd686a7a2b809fc61f346bddec881dc7cc903e0dee72b83bf1d22d750a6b25415487f008a1b19a22c1587171b8c29bd16b168caeba7352898cbaa4ff4900b85195f98b4ec3d4e2f8a2cc0e94d4719206f5fa5bb0b8d57f869356c3f2a72c15666e3895248dcbd10ed93d717f1ab093d009230830330184efac589cdd836fc9c49171ecf8e35a6adc7e827e0e55a14efc84d55a34d6f1c06f3483ee04254261f3582c5516b80a0a5c6828aeec0896d5a2ddb43921150e16c438fcf6c4efa7bc7eb48f9a51c4316996aae8a5c3b6d0223c53824c7fd50b44fa36335a14a37c3fe55488a4aafa726095bf1b40b6b905c0a02916929b31b4d30882d770ab5856379cfb0630ec337df6bee8af9406e4521091facad76f809616692373c4dbd9bde4ba32095c1936bcf8362b36e987bab7e888c4139ba0cd297ce911ff4f58d3cf57f58ac606bad05e77c9c16f5d7ba96acb8ba4ae8b6da72847f3aa56e52882dd476bd7b1a1c3a3d5670ee99b11c54177be729c608b4b46489665c89ba93ae7b2602aa275dc3162e3c376e9d89fe9c3f1e20c25350d04404066d33a851a525f1b91580a9a2051c4211dc08835f55461f4b31584dc8025c8d6b034155b6d37c58c5953dcdb5f9c0c4a2e6f5515d1de125e2de617ba30281e5a0439eb2cd53265ee3c01fb6c90c02b03217f10c337b968c07866fa3fa0baade5f17e91b963c20221628b437f5451ab020866ba56944d09d1f0bded8d21589b6509edf032c8d2292b676cf9c15e0a2e8ad7041c4282b6608cde586284c0617ebbe6af4d8cad3790a76779977142e4bbbfdcee5945f03f33091a9431e87a497356a12d3788bdf53c6d9cfaf2011ef88a909e3ba1e8c1ef2970aa185914280646dc078f2ee14b9a3211af5bed8531b6f1abb274d6ab40c23f75afe0eaf7aeccfd0489c7cc76e8691ab61cc99e3e0c88592c13ccd95d37a036ffde43179ab4b3d258add61adfc3f16e54ed83f7328f7c8c315a74d9266d5e769415492e37acf827ccc88dc5527b5691d111b5d23103f730eb5be3aa6a45c6a16bcc013fafece3f862804a4baeb8c8c50b8483b37c4daeb59031784c7d132b06ad47641400bc9e9ada9d88ab4b5e8f3d9615c421a04ff7e14e6365c188f5610bb7fa8f0378e2afeee220855c6f1cb2d1cd3de06007bd080cbc33aba8b43db4d450e4d8443de50fc5f4b2eb44b3134b457066c046cea25dc799785431bb8c896a3ec25d87e01dcf27c645cb4228863ec9550c379ba30c3389ca8bb0a1de34bfce285087651d4ad809c7f8c3a7cddf9b230c02d0767be8ae856de230df1da9c7ee97c23bc89e89a232c189fb2247465a553fc8e8cd8d99b25c5dea5e0e664de0227648b1acc17b254cc35c3b193e38b9bef2ae0c05a71f2c0bd42d554a4092513c4f959d76bc8e551b5b18bcf7602abad740ac16b0af0fc9eeb3393e71845fd8126810acd91833a4811969df7a71cab18e81410da79404aa4083cbfb61208d3fc56864530f6490ae84b8f506401f3f549f4e477e1befe201ca50f30dbee42be7f2df2c4c9d15542c437c86acf9152f409c28141c35c6de41449ce946bd54cc36fd961de2de77e7fcd24b8caddcad92384aff03138afbcd100abbf1ee15de5a05b48cb2b8f1d8a31449fa805dd893e024620d7af689ee69c0b68bb79eab1b8ad751155d7a87a18038a91ecff7b978b516923a9015fb8e4dc86712b69bdedc34e84c9b88f18d09450bd861ba22cf9757116a9dab29bb98ab1960dc3c3b49be84d266d61862955fc7df0c02c1848e985a07416c070a01b16ee7b2f7e2427ec31896e567315c49044eb54080fd5bbbc4d5c6b8bc304a56d64eff37e5d313f973bca8b31cc534bcb0e235be56cd8e45cfe91ce0a7b2f7d0d50576ef565cebbb8274297971944ba904fec0433f42940397d2fe7ffb5504603af43819b14b4777129ac86db96553052ea512dd9ac11682f55cd77a8bcd82c1e844160c7ec8b7cea2c5535adc802e0d4a4704afd24decef434b0cab2e9d18b4880f0df4cfdebbd9ff8bc40a18ae4f2e20150f7d9fe89d1a4e7b6a411f51d62e48e26bcb5d4063e7a84d463e0d9157642678053f2b4afe833b1ca38d90955344b13a00f78983013455a15eea58b17e4203c51a1c2e797b9ce3e9edb65d44e130ef340678afc348c0927cf200d1b4cf74787a69eb4506de5d6b7edc64e0c029d29e9666a3ce1f3a1d7d4b9eebe18d74de3befe3895514e75794aafa010918bc63dbd510dda0f35a3b2efff57ad068046a2b6dbf38b80368236ea58a2df7c80a5dce6b5b57ecde9bbad574ff88131fca82eead065e9d13bbbdc61a1a2dbd41c98c7f289fc39f2205b8194348f0cba2de490113ffca667a7d0255417787c1438d24bcefdbe7d2b5560f59b7de50ac1e2756a031a2936c4019e862e4848caee1f6ea960507ef1bda6530f65da0fb140788a04fed58a059823960576078064e4f88d901534c61e7f2f501af21d5e47330afe5e9b25caa6ef4047b218909c2928cf981a86b4f0b07b22764fbe4cd2c7bf0fb77875f250b8f5a6ba4e5fccae88e2c7ff6ef3764368b6352c935640189f316c6b03c00c19cc84c9698b8954607b28072168877c93200f26f802c27afb9a27492b602538b298140035db73387995883eac1e02d04c178ca6d275f908a63a206d016dec89709b8b4f2a9f06dfa2518b7de01d81dac66aea5e000c83321a838b4c67839760755c68457be0665cf307e5bc9c94a1ab615a80d6929faf20af5c6b193a2f63b0b8e0fba37e097f6ca8f1c8a6c251ffb002d753b7f90f31a1814fed0119ab1b840ab1c16c45099ee70ff3cdf35d08cecbbf039fbd5a6ae729618d1a297b51441cc3bfe2186b31efdbf6f79e68dfed6b0a0aaa7a7cdd4dd9a7385615eb875b97126907ebf22e5795a7edc0d67e67921350a91eeabb1cfe86bb817f1a36b8a09f212ee15fdfa622e56baf9218a23c57f5000306d884640f14b86052a3352a6c30fdd54ef30314bff43b0837cbf6cd7990af907f45f09b5eb9f39e0e643d05078fbf899af7444ec01f74c5b83f4b89497b1428446fb9c012505364f97593db227be9a3bd6603fac93ea59e8b608611ca38ac9649a1d53e984a4a1e8b259a1fc0a6449427110c042e088d2ca6578802e80da5e5607fca6b89e9b87fde4e8b6c50d0f6d55a04a694654db17988cab1bd28477b17f0d6d541ea856e06febe80e4f99e0a5912b9ee2d31c6b5737689843e6440e8ebc09a75a68990a73fd533a706eda5789264ef5daa62cee42ef46cee50a6b1cd74a84867dcc3eeb98b5bdec7a833dc501931866d2c329fc307386adb2b9dc7d2911a0db5805cadffc191c64d05c7b2af0199aaaa37f55d5b23bf207a729f3e20561d6f777cc5ec4259d37e99af239b02c0ac4caa8e39f349a26b7c595c7a379e9ab52c1e2d945d69072d5ecddeeb0be65ac8677f42a1afeb046c4a30470125c87c95003d971d9dee4ef8e5bd6b141c9d867c7f3f2ab9a3e368dca9d0c0c2a34052da40f7f152e9c90ae9dd6857c9db616b7146d6a823b174b661d9c30f219ed6e8f7e261d103b6cb7ddc058ff3f317c67fdb292fc0837471309bfbd17451942c9bb3fb81a2cdeb337dc03d26b371a704c43557d4b856bf75ce5b3bc673251dd77b91db6842ee8175484601a0375387d3c555f75643fc665e4cb023a4be9eeaa1f979ddc2c379a239a875417ee079793c74df8bcd11bbaf86d268e802f2f9069b19b7e6669cbc93dcea16a6cbedb4676bfe12dbb77f6594c8938668846dad1a65f2fe70782b29353079075e569ac30c77091e798ac7665152e6f6baa92d8057d9caa018cfaa0ae874779dd329b9887292357aa9e6451a640b590b4d00ecffece506731491e9e8a21548a8f56d4596134a73f13f8de89e26b197857623a228d27e9dc6f4d9670e5729ac75b378d59639b2a9a5ebe6ff5bc5a24b4ec5756ead24e8ef9bb246921e524593e8998b4831af2d68438478a8452e7fb0b9c15a2eed6600dcc2a00e4eb78a8409eb2d00d6633c2332e0a782b5eeb111f0de1215bdb9ad5af8bd0d378cdcea073c456789c5bb73d6eb50180de377f001efa11fcbadb6d23ed0f24c3616d82b1b2e5597eb692a63dd7b442e9226c6600376eb94f8b6f34cd1fd2e412a3da8edd8aadb8f5c2f23a4571f9ed6eeb119f3c9c027c74a206896dd90827887dfeb3d77d743df4751d633a62637212985cffcc631e30fc0ac16e387071038a226fbea97fedbf5650e1d5c45a63c1ab7e616f1dfbfa20aff0035aca4bf5206e9be14a8c22f69c432c3f644b7ebfa57af4ed8dbd3e82418d19f29895a0e8d6add26f5ce2274f6b47a39920f5876aebc1dfc0d2d17b43809b3a8d370b1a9bfcfc602b220930ea6c6a7ef628909708d2b26b0609920c68a0946f5ac238048b1a5319445721789661b626a4b88501261ddc15975028e2ca38f8f621b225e96b7cda09e0c341e3b199d8347022159958829e7fed52697da625af9e7500d38740d6cd0098498a1a27e10c4c9b3883602113e7b444214fede1ca8561ce2dec8cafdfedee4f632425f577753a050cee551b5a8a2d83213fd96b08aed928c0b6eb32f3a36672a746935a7939cfb813af6813ab88dcbed835d032f2c1fd362926fdb5f1464aa9a2100c6ca59e0b2e8c31a1a48f7480855766c0699588e7450d81d9b30dc67918627bb0d1047b4295a65e81f16b58c0d031781bea16afbf1e4094fc94c1b432eda591223ef133ce2e908387c33663524d0115ac88905537023ef8d66798bcc4c3f4ee053b683f5d19ea008f04278a8865fcdb3d6fd5bf731e913070570e97c0d2dd0ccb5a292b45a03458735f908a7320a2efd5c5e6c8126401da2c0c8d29e7defda7e566d2e89690731f452ccbe2a295f9112ac77f5e5a55d08cd49e8c34fefcae615bc7a9073332f3c91aebf7aed43470a5d6666d465c8cd27e2ec88eedf0fb31cf28772365c17dc963ba8fb15c9ce310c73772ea6e556770d6fcbe52b8e6f9a25009b941db9272ca2763c3d96212468b11a6437b1b8413fa75b1d06b2d65ea3381701acade117e74e123564434060a5585b2c3173fb30f2b1d77dd16f69587d7e1185740a8b3338027c1318411bc390b9d93a6a9749e5837ece9992dbbfb6b241b6056f09f4940611279a9dbd39393a16253ef05497033ce1382282c181345bf1eec4cead30442c0d5783e0c6758f4340d59f7807e6bb729a9734b2620efe38971281a13368ffbb19a46e9bb74404689dc4a4fcc70a7710f327e9d745c2531acfade41117f90188d0d4e8deff52b76e4731a600bef75e469abc7ff77b15ee70be7c4478fc6d2db611833b4998c9b1e9051a19432daa66bb04ec47d756d144d333154e7ed948c4271f03a9de4d0fc5c3348aa668ca3e702c9a6464142f364dc5c0f58a44e5b8ff3430054a3ee206546084d2dd6fa85ab08363810a09a02429c154826aff05565493eadd6e3e58b2fe1d97e0aa14ad69c19858b6dde36f0d583736c1ce64e861995553123d364829a5f6b6806f25e12273246b7a59a5f5f1ea0e9019202ac7ca6f5ef2260e6ef9136e75b9ac7550b4918a27804898d559dc5cf8002a842271b569d58bb8ad346c5738909a1bce71279abc36b858a082f6b952539087cbf36717da69dcc4c4cd4260aef9cc6cf32d2120babeaaf2b86a3177d9997716450abcaae4d114084f174bcc1698ce65375eb008611ecba7b2575035a5d4f20f909612e4df96a3efdadae34bb2b9669a83c78a40ebb01e6df9676f516187508e56a5a9986c12b7b4dbff239bf0bcc7cc5e4167fd0419e8937a382f537a983a3dee62bc1930da30e1e00864f418347e8b2023024309ba09cf9e420ef64f0a8e17a02d361fc18673c703e063e5af66999fcbe653fdc3085c3cb37e3e0050a117256d9934e45463cbd011dea6f15530547442cc093702003aedaff6b0f3b4e6a601a8613f528093670364fe81f8425bd8b45024595a8c85df97f29a2dece366bae907b790756db6f784db2518726d7ab838d64c70cc2111ef572482101251c6eb2ba3c9a9e771890bde197392791453756b417000f5cfac0884d8750861eb9c845feb1b202161131af25221132e750ed5bff9f2261f2a1c2a37b3ccecd7ed26775004dbe225cc7fcdf28c9a1ad0d71b322c50e5b28d9b1a47a78884a1331f6b219e9f50b4778df7b185cd1bb50cc01f9c07fcfa571185b7e9c322bfcc4a2bcaa4add7bba7bc93ed553e79cd9b95c17862fc06abf72df790096e63157393a6a38535594621bd64d123489ce2f62c117736d78eb594d8d6aa43cf0f897a9163d7b45aaf0f01a7dd586adefae6d582cd974bbaf9d886f9cccc498bb145675983e76c0070af82c275dbed9cb8269907ff5cb554828d75544b9d341611eda95fcdd0f5fb5f637e8cf655988eab0b5f8c81afed98b712980e63b8d05832132eddd028265868fb354b130e3283a4e9f65142fc0b00f7ded22095b47f6029f3aa719eb0a87a176cf329a55352f68445dbe274eb34dc8615ed82932787a600e1f5e2ffd79aa1a4fe170c67bf7edfdf5ccad391d2050780fef9d5b75fd19380d6ae4b6feacdfc38f416dda83c1e443085ce3c443eb365de0e920617f2a358d6f8d66f4d8182b2a76c4df8b8ef87eccb77d437a4668e84e16c94b2aed171587cef0b999d2786d33944b773bc426c3f1e68860e44fb3c7c543fec28d58689db25d83ef5a6f46a55d4c43149bef91b16eb02a947f9b5eb1c665b7e9d7dca98db006284fcb85ffb89e2faa08af8765e5b287fccce6a30c538b1c454e18c103c7386993c01f4e10223b40478ab4849e5469ee88aebae39d3e1a3374a4ad05cdab2037912c7b67ad986217d63dee6d92836e9c02a4f02af4aff187dff7b0cf0da8ab9ee654bf123a6d6bbdb74080fc813e4ad6141f8bdb22cf5dd27ab1858f13915621266f472efb62a093bd8f04f5bf4a0c265f33f66957091cb7e8902527f4bd2906ac9f7a4efb5009821630fa67f956a3638c1fe8ee198ef7b252e867a0ff24f6247be7ae70d127064fd0335b18a7292d00d29b7e26b36d4f522f5cda70681751b5fa0f835d37a38be5413b84b9941b1093b1f59c2ac37539b5c3ec1a2f137f1f1817a49585dd3bf5ea856de132bf453c1e331079c79d52f83e5def332793f6fee82e405fde0150570a2a008eed3072492ae466bbf28d6a0b1e22473788721faecc46eca3f679c89a3904a75bc0f49a2e43e711c7f9c5562268e5683e56f7fd369a4de96e3e621045d6827cb824c52b5327c37b232dff0405bf3e1e5fa3a5c168c3afc756ae329d50d1b6382ef07c60929c7a16e5902832cc3a31c191dc6e15ad2d1424ba5bc890aee9437b1ff9f82d610745e37e67c81a6b42cba9dda190148b5a2b860468ae8f00c80c3177a0e68582db9c945344eedeee113f6abdc937faa0c706c2ad6defb751477d6bb5f2b7c8e84f16215267a5d85a9b045021fe4f44222ac80b1ca6dc0b24b7e05f1c5b1282b3dfab5db88a8d83b5b846b2b2b81f906883cfed4ad39d1ba5c01cb68a8251d1f3025aaa664b948c5deef42f8739425834ae4ac62c9733a44a652946d5b0dd1a2bba67b2f0ad11973246769df1a9f23d6c6bdda0d5896982f49dbb87b977152a8abf19a0b3e04573ff01bd6f9c68498fa4cc7e939536bce1b72490891d39a18cefd0ba777b7f8f3c80826b943471422e68acd0d4bf1560c6c8a7922e816b8c3b3baa5148cab579e92277ac9715f0c0ce5686bb5817ee3abe34d4f87bf8f79ac3ede51412041ba1fa1a8671d79555456289fb87fd23a4270b8c5a00b1975811f4587562f7c7be3e5ee97ea6a28c3bd5c86689e20e4dee6008fed44d728e2553a610309bc5d40c1bc7bb6c7ee06fb418d1110e831596a01308b9667714e92e21eccf1aed6e825c6ec972603fe00b07c12a6aa9faf6b0e92eeeb12cbd5cba08be0800076c3593e1abbe83b662f217f194e0090608f807c3faeddb9a8e395518d415489279303d42602fba81c833f298a5c9ce2f884a89e0d38e5a74624356dfe03f857edf59af84fbeb2e63e88c4ec6c290b9ab5e1daaadb9eef94c610b8ed203110606ce2701475b82a97ef4b892909000c4dc8de7815d7c1a48ae43bc43e0646a6db2250539fe48d3d027a09ad8dca8fcbcdb527b333fc6db2c2d701df6136e2e5b11b2ca7e9f08b0d733f71013bfb84ecd93efcef801ed13a1e7338e8bb6da1e7fac1f6cc272a62daf43b37b7d324c93e42b8686802f4916bc529d6e941f642ee6100f86bee861f77b52e7c46eb2670322fe2b40e9af5ebcb032f0c364be60d5fdf36f80f7aad9efd99c3d24e0916094450cdc07a21a1f2ce0e42909e6bc0789ffd1a5401e20cae9bc18135a36c40557bc84830d4d59f39904d0c60c47814793a2acddb196457af190f3a59e7995ee152550daca7e1688df79c9f6d7d3283a95d786c0012a95c65eea7b3ff619c6567512a766939f86dad86fcb1e8dcfccae1b50225941b042d64f74102a197ed0d01e703e3c2c2d8cc2375d1b70b589324dddc04aceedd8b71da494458831bd531f9e86f03c72aab8aa3db9440bd10ca260ad73d796bb37495c2b06903a88c64345d64dc4ea23858da0ea20fbc3909de3b74b5a558f0fc4cf17518487c3ccfbda8c18e3a4cf5bc90402bb279326db3bc6272692f6bf56c99d81b3fb20412ae8f6970060c8412c903a80a063bfd1ae22234b84af3e33d7b7f649cdae29b2ace20a78cbc36981f9e2268d3e2e27a36538da057109a3cefb74fdfa54d05ea861e5d944f48ad5299356eae21728cf7c29da27f814e635225967e4aa7071d11d1fd614250885431b0f15454d319a43779f343335d825a42d10f8b63903d28bd5cc8e3089a6c32df5a0c41f532a8ea4825ba7404657a37173e44670bae74a33027cff2c7ab7848f8bba4898168f89c4c6863011ad10c484bbb79ea8896a525cfa1c5064ea67cdefa9cac9d9010f20e136a22fbd3e54671600f707eff4b082a81e37dbee8249aed1c133d6357317533675cfb482486a15aeb0b4cb8bd2f7bf07b5f0a643989fa3393bdd9a0ad881c3cd02f88223b4d07369605caa60821646a37a0787b06bfabaca55888b9176c2dbc07df062400d1b24b82e21a5a49a07a598e2cf51129ae2c25902e2332fc7c544ffef8cecd89319d388b990cc5ea1ca57ece492377f626f9b6274bd3623346407c98abcb94d3bb5755b36598b54c27378587c27edffbd7cc23529396c242f82473cc305e044c7aa6b8a64931ced8ac5c0ea049458e3604b7e852704f13bb06f9fcbccfa13890727a7e33ca5bc4ae9a0e147002790fd63347a0a051668c2674d89e51c0ea6cb57c6ecb449b4901455ec8e1cbfa798acf8ff8d1acd4e0376a80c4a26aadc4191d94cad425a5349602e4a74c1d8d5219c872c50a381e77440d937bc6a30b36d46a1a8a4568ef68b8e005d6685773fbb0c13964c79f605c15965052a7b34ade873098d95f65051561e1988f64bad7f4cca4476bc44c41cd30d33624f28f32b5842f8ed0e0deaf02c499f4964889836ba7c12acedbfb289b14c4d4e8de8bc48b1e073148d1fc58dbedc88f2cb81b99e8458d325e17bc8f610d21e88dc694d4fc8f58d6ec12315db85764f6e5b421fa1872f337160dcbc01ffcd44768d17792ec8a1beef07718053a0fbe1446addfd9500afea815a92dc5735068dc7d593a885cfec7e85f96761afce96d29a5aa2270a143a9d03a14bfdd65330fe4a730109428600baac495ca52f154bb5393f98e9953d0d43e2d5698842175f794a22b70a0db432f3c73aa165023cf811aa452ea52b4da68ccda8b2ca7e0785207f76cf3b4859be1dfb1cd554dd3d1f45acdeb15ce6d684c5292686a212bff5acbb8f8a11467a92a5cb6ff9a764911654a2dff831b736352520d3ecdd5843630f8309603dd2ff0b47be89182db038c1356185724ed9bcdaad1a8dac359243d6fbaa24b308e702c699671d9cd673e8c811fcd88c14ccf784cc07b24eca8c092c7142bd77d33394c57e0c06fbf60e6ae6a3d11931b4868db4e28b76b94d365666aae485e04f10ff7807bcb8f32e742ab3a16a980098f723670e1c4b5af0c9def25dbb54f1c3277a8e7711194b1d90fb76eef7e361bd94d221ed6e5c32c7e6176ff2433283c465a479e609842221ce65f0d117899cccc23f6eb2bc86eabe601c19f35aa891ff309e80f8115aceaf424b0c16e29d9b3c15438634565a7789e52f423c5fc624730dc6d915e89b8d3a54db2a95725c13c22cc9d812ce7413478dff425dabd1d2139495e0a49cd43b4bde6a4c1cffe83ef235c0d9eb6f5aae5d596c47f7259b4b6cdac4c19c90cb25df2e012a78a0c48c0d69b6d8476c37f36f50f9748f0c79ddec6dc00b7ac84a817802a8a1ad986a8e5fb2471e65b50b74ca09793675cce6783212a38c615236cd6f7411606a0728e9db98a06850062b4b0579e8a4f7521a3d2003f583d85f6ffa65cf8bb4575db90a0d2e0c1f27389a5f9109f004a73f74e476482c2c698268f6eaec62054f85dcbceab82325c2557c37c3f170d74e314d8c8cb18f6c66c9dd6d082650500ec6020c54e24f5d7d46463a3a448bb2e6e8e5775208d16ec393fa9caf04ea6e97218394ccfc8fac57155f29892a510feb0f6ed0beb8bda957d22523dc966931f8b42a5d5a9501565d8d3f318c4e002e6c56a4fc4528bbd02e17ed05a3ba60502b3c0a2063738994a753f56e56632eb766b8eff1839b3de9e79a56cff45c44ecf258415b8511f65da4c101aaacb08ad50243eb3588beda0c7dd3643a061abceb48e5585cc8217cb01c5e257f26feffea81e7680aea366e42d803e1e6a340fdf02e50fc20ad8efb386648c431be2db2b7816ce8a63d67e6fffa3d9de4b29d0e73e075bdd36a79d3fcbb1119c56a0da20135783307f7b7da8071b8a2d841258d56b8b32a80fad164c328e3bbf9468ac5c31f6d1438f9e64caeaffc34d1ea8e8099a5189992de5b87732637efd7b6aa12366306c11bdae8928bfc7477b530b813fd8be9f30c06405b4ff60b37af3ec7aee6effc439babbc5c7ec7c8b1bc6b28095186c34854dc0b2efbcb0f3b1d72c5cd8052e0546336ef3a612a8f31073618214c04b20ecc4d82ff602f9513d2fab542dcbb031bd4fa1f3785946becab6085e62c3a4db1b9a1a65f9cc77d06bc70ca7576ca00d45061dc346cb6bc24806e9bca2ee44bd5db906371ef28f58b20048a21e4198772e0f664e167891d0ff6b08f11ad1992e8e6734296bae753cfdca3cff4621631c3601f4595fb320efec6d4184ff231a311290c58a4a5d594bf52d49b5e8e524abf7654eca67543909210304a7200495a572fbf4ddc97e7247a9e82d354b79313126562897e05d2badec7b3958bc251cdb0137cd6124d9c406d3200e90e11972d9d7c0fecddd7727d4116007bdf1aafdc26778b986d3588cb8ac5cfbbb6a7bd93662e1244d19aaf2b7757637cecd5118ea8bcffef3ce852077b2b8d550b7558045ddf9751e26a8d1d5db272c88d08263a971cd8a614e1fb7ded91a5c28308e5d6b5a4ee027c2ce224c1f1cf01aa4cb0f68614f6e41e33bf007928274a6dddecebfdf375cd00a0679dddeadf62977f6f1d87c05bef606495cca9d4367f6eb1365751211fca9319bc6e921aee3becbb52f85d567ba8931ca801b59b9422cc656c706846454f0d3f0e252d414ed98879ffa25207c31e0a03786b194759d93e3f8ab9689b469fd6ae6db970501e7692922df641cd04bf77a1b8ab5cc18d451da2ccbdb0745fd371e802c3481af9f15c2eb72ddc2a16f7e9d352158f64cc8688c71a768f159e3aa13f72aea7c79066203e65e3226efc812df5fab6fbc607c2128ab4e3626bcdc26506af6c85b4bd743bea6768d65d4d694c595bf875363597d4698dd02c0036a46dc46702f10acfe185721093466e500a7b724839253ef6bb9f5bdb09c3c7a08a86672a9e17fca61b289fbaf3747eac3e92c59310b7fca03aefa2249e37321065f9810294776d2f11f5cf8aedc58c523156519290a6b12c9763b840a794e4c2fe48d248c23c0e6e05ea9acf0bc2186b13997de2aced36d37b3ddfe2bdf01af5c22b4ad320c11bf8fd510374fd02a9a3ad58861cc20164319165bf81d1c8fdfafc039f85c5010ffaf06a2e91d49362883959d9975f346f5865ef0705969f9604cbc9e687200013634f1344bf45ed20e128f051e2545cf94850b071c64c73841f97af1336da26716c0d045645b4e3095acbcd792226de5206238d3f3c9a69ebdea6a708a73aa07c3f0ca9103c3469488807ed6294705091b54c74fb2894aacf55b4df1eafe554f1768c9efa806819dfebdd26266f1681ff5c9dfeafe3baf1b98f4fd107628ae6cadeb1eec605e61b554ef7e2b724a55ec6d53ffaf99f837cc2240cb7857c9c5e4e38393d0f927b5141884db0c0f279e64398a0ff153e4d561723675677f4d2bc84e34fb86c71a591d95268e36ec42e63e7dd7883e3345a84dc79e64c557d5f78be01aa4854ce57edd1960cda28cceb59c8b449e7bd059b0fb2f2a7dad1e320db27f45277b8edbccf4574779b497ec5866c15f358588185bcf6ebe77c34c04b95edc07a7d8563e54b4a92c2a5e2d2d20fc473dfcf25022dddf91a29d02320b8e37c7188e55b52b2f298d2275e9f3cbb859620855bab9778059209876ff70949817bae8f57ab4f613499b6d6ebb075d71ecb2dca413ca71eb225af83abf568246d4fa0230bef4ffe7d7e5b27a6f57e97f3c7e1fc493bbea7c57ab37ebdb0678b24b1006913fc2a6f5f0247e67cdf17989b33a9fdf7b23d91a0aaa90de12f379316873d9cb3581411e894eaf36828691506b716f12b8ca4d6d4f3dc50e6632600359536945f5f73280ca3d357816bdb1c46e06b0def60fef3457115232655e9da5c7edaa4a914b6ce28563c54f5eff25d76ab05cfa87c42578b8c19b150fea61f939a10444bace2934612a47b0cc792232a36a365e013bad83204498610b8e235ca36c8751210618084444237800fedfe773352d1cd8cf49b6cb514122ba118e96d6df12d51893229636d435b80eb4e84c895f93c3362c973f22cba0a9b4e151c832c2dc57d10451f7a4c47eb2ab228b1349033c5a22d23dc980cff0ff6209a1898c6a6e5d9b9fe8d7887eee17b3b9c7c97bb583959ca5f0b832df1a127b3b8db0ef5f51b1018ee7ac298c0a193b3f7361740ad29eceb5704310195dfaf8abb170662078ddbf2807846af72cee0f5f1107352f7ff6e4154cc0d85c68c30d5e5d9f52b7bdf88bc3731a42eeecd29fa06d94fbc6f2b91101d0ecb1aab064b075c14bc49d8088aebbc55d037dda560f9b785aa0cf273b4ac17968c23f8dc04be71f0ac38add76fc8283e9b89359e8d2fd03516e2df2846ab064fe6be4350f71e9d6bb233a9c0bd78f2ff8484570c7eb9d6006152f342497a4b712739dbf2073909f3284828911bc1740448dd3cf171ab1a31294b628cf16f35404f3937be6854db214a86d7c61b535f2905f50307f8657fcfcf80cac76a917332b0157cd6a79a059f23a4dab94ea18784bc93ace3e10498fcf76a47e77a4f00ba5a8cee979a4ee87e7ad86c461e2b84e74e496bde446d29819babda4105a1cee31ebf497931b18589f2297e8b2f24e7e2faf1ff9d5b5afa4baa6c4095cc7eca691220d0e45ba3a09beeac44ccf18233a878f955f3e0cec5dd3851524f3b23da2ce2d7ccfe43fee6f981f3999a39c90b11411711f24afc4114468daac33ea2cc782989887f5b18fa1ac8aa3612995f5033dba7d8163fabe1c86a32c6b1e425cc51c667337882b7a58402ea33f0e568b7d886d34b1c4b8616ff6dccaf0f5af6fc08cc0ca64baa6dc024a229f95772a7eb2e463e1fdec5bab0f490453dce39b1ac91a5cbd7ce28381c4864bb1c63c2634704967e6d0ac484d14006de145891927dfef7f49809a6c45ad0ef5d55b0ac709d072bbf1db362b4824ce23928bc2c6b65d10078af698da6523d647af843018b34c8caf53dfd7452bf926b972ee7b55d0541c7ea29436b809a94b07db2ee89f2485e95b75efef4f1ebc071488f71b24b9b48323a823a11d2431ea86dbe9184ee82bc3ff7e5a0f99ca74e390a56ab1a62a79f25b584d575d683dc38f0ce8bd1ab7d52da42b19edd1ff6db12ce6aca799ae94cfa13362b00bc82a9b41495b73ce80cf25a08c119445dadfe4a99c295e3e7d8cfef758d470f8e8c16e20c7f7200929dfc00cd0cbbef0940b1222dedaeb821af47a9acb6a10c81fb747a494280c6879a8aff7172e6018318d41138b7ad7a52559c04d8b088f91d7d90cb7994d65d97fc1669182b45659b019c73866654e2adf8ab50c42eec18a2503bb81563cb06a122dcd1137121a474fd857214a5c550cb6e751ed8026e6edaddb05fec2f6fd0b1d4cf379d91c039e04a0c67bf5384c9fd450323bebb31489a230297ee3819f09d16ee5b29e95e0ff75be870e1574ddfc4e8cadc0afa3b27cb878c0242036c999b210add3bbf4fbfb8558fdf45bd23cfd0b677efbc8bf97ce48ca57a9105dc6f8c31aad628102ef41babed64131d4d523114cd4591374fc8da85d61b19c74b4a2e27980ec404b7e79f35286c84cab85bef3d997f23dc47e1d52f3830be62671cba7419a54ac2060d96fee79db86d2ad1e162bb5c8e31614f92dcc7d6d047909c85ad712c500b95977e34b343a159e2953e455c661dd171d4f7809a5944c4031388458a44af5076091024222bf1d88d3dee76cbf47bdbee7b450e940bcbf76ea64dbb2f336dfbe699ea54d61b3c37bb0d3a8a721271c7700fa9753c3055ab6bad09f2095410315bb1594a814cdbee3f04c821989cc8d171f437842bcaaa8a17a348586b6ba50604586308a5049877cdd19ce9eb81ab4e1eab3224e9b409c3503cc450b3bc6e4c2da3024e7d56a00cc4227e9fadc58076e7a78db383554fa98824ee64a450275cee9494bcbd6ade5ec2c4f34902f7cd09250e74869075e4e91980b3d5e3c843406684b0fe7962f6b741a057e8d7faa2d05c8fef8ec52f6c7ce32130a0aee01fec229376e942c40606db4edc82cacb2ffe4f56f5a3f1d7b84d0a15fe2330f377ab4e38c1cd1def6f032b6d4b54b887f65e531d806323f5ecebcf1aa3bb69e970f4197949034dc302067f00a89cb6e092857f6896c26dcc49a40794bafc1e8ac65e366d9923dfeca329f6d3b752902426499d8f872c086738ec7a62a3adf08b8724cf7c4ad76c88dee7619e65219db7e088b7ba41f3f8574f59a5973b37e92d7b0c10f95980b5cddec0e0a8c0b0c42f6cb5394bddd5eb95968813e22327dd84056227402d77c50644e90bd16a85d634e6b2f068c35a56d17ee1d0bae62516dc58a5a79b612f68609ed9881a0e09b2c8f750680cda04bf245a0e60c74c4206aa11d25e2d461d3579b18e04122c5b3a73f02fb52559b8aebb8dc41d5eae1efd43fd3de93b6fd9d64791d8e511909bc592065a59b0c785c3014ab1e30f91a1049c13799cf0c3f7058ba222b6957a2d116919aa6be0b2b242555ba42e3179634a7ee8c134f873a46bd3091a544d0d37692685c9ddfec7d469ed814109560e473eadde8dbd8ae92140842d79f951ec2d05d0a00786e91a3a28abef18ff91fc4a9524d41be7a3f034ca37374f33dee7792511dd9af7ec14aedcbf1e14402815b00fec68ac994a54aaafec8b101855d0d1170881319709c6ee9a65a729aff7086603d818439b0d2f34a0584b979c731ec82087009f047e806da72d8091c236ac8523c6a8cad41be7609d06aa52e7f2add3baa05dd3f72c72a9570b736801af7853b396250936251062ebb61e76e02e25a12484a8b36b33ee1fe1f99a52a5d16a387c90d6d3324bf909a5eeded8aff595a017dbc63078937f33d2ae8af26ec54ea2e4bf7fe3c4121334237d466303614735f1348f6ea0de946322d3dea664f087fe82ce29f9e97fc66db38b08725022ab0bd65eb6e609f6c648634df28c29a891b881d05c3f2604326f337f7e6476f524bb5c0f0c3826be7794a19555966f6a6af2a8b426c6073fd4024069a0110c9badfa5f03f715f3906d0d898ad4f47c5cbb3b7cf205e85916c8d3679acce594e2e4991695b8be653bc80f359644219c152801de1292379b30b3754e1ca43f7a051d2ee9c0f8e5ea9cfb6ac02306efa33f62fd1366dab5fb343a7fc6f0fe22d2998b0c8d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afeelibclang-cpp.so.17libclang.so.13rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootllvm17-17.0.6-150600.3.2.1.src.rpmclang17-develclang17-devel(s390-64)cmake(Clang)      /sbin/ldconfig/sbin/ldconfigclang-toolsclang17libclang-cpp17libclang13llvm17-develrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)17.0.617.0.617.0.617.0.617.0.63.0.4-14.6.0-14.0-15.2-1cmake(Clang)4.14.3e(ehy@eX@eGe1@e!H@e @d@d{+@dddWdBzd>@d7d.@dd m@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\=@\-suse-linux as implicitly GNU. Without this we would get library calls for fused-multiply-add even if it's available in hardware. - Add openmp-drop-rpath.patch: backport revert of adding RUNPATH to openmp executables. (boo#1206837)- update constraints to exclude workers with very slow CPU- Update to version 15.0.7. * This release contains bug-fixes for the LLVM 15.0.0 release. This release is API and ABI compatible with 15.0.0. - Rebase llvm-do-not-install-static-libraries.patch. - Build stage 2 with -fno-plt on x86_64: since building with - Wl,-z,now the PLT stubs are basically dead code, so eliminating the indirection reduces the number of branches and improves code locality for the quite frequent cross-DSO calls. - Add llvm-workaround-superfluous-branches.patch: hints LLVM to eliminate branches until gh#llvm/llvm-project#28804 is solved.- Update to version 15.0.6. * This release contains bug-fixes for the LLVM 15.0.0 release. This release is API and ABI compatible with 15.0.0. - Rebase llvm-do-not-install-static-libraries.patch.- Update to version 15.0.5. * This release contains bug-fixes for the LLVM 15.0.0 release. This release is API and ABI compatible with 15.0.0. - Remove obsolete lldb-swig-4.1.0-build-fix.patch. - Rebase llvm-do-not-install-static-libraries.patch.- Update to version 15.0.4. * This release contains bug-fixes for the LLVM 15.0.0 release. This release is API and ABI compatible with 15.0.0. - Rebase llvm-do-not-install-static-libraries.patch.- Update to version 15.0.3. * This release contains bug-fixes for the LLVM 15.0.0 release. This release is API and ABI compatible with 15.0.0. - Add llvm-armv7-fix-vector-compare-with-zero-lowering.patch: Fix lowering of non-canonical vector comparison with zero on armv7, preventing a crash (boo#1204267, gh#llvm/llvm-project#58514). - Add lldb-swig-4.1.0-build-fix.patch: Fix build with Swig 4.1.0. - Rebase llvm-do-not-install-static-libraries.patch.- Update to version 15.0.2. * This release contains bug-fixes for the LLVM 15.0.0 release. This release is API and ABI compatible with 15.0.0. - Rebase llvm-do-not-install-static-libraries.patch.- Update to version 15.0.1. * This release contains bug-fixes for the LLVM 15.0.0 release. This release is API and ABI compatible with 15.0.0. - Rebase llvm-do-not-install-static-libraries.patch.- Always drop -gnu from triple for consistency. Patch a test that was looking for -linux- in clang-test-xfail-gnuless-triple.patch.- Use correct LLVM_HOST_TRIPLE for riscv64- Update to version 15.0.0. * For details, see the release notes: - https://releases.llvm.org/15.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/15.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/15.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/15.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/15.0.0/tools/lld/docs/ReleaseNotes.html * New LLVM tools: - llvm-debuginfod: Provides debug info to remote hosts. - llvm-dwarfutil: Can copy and manipulate debug info. - llvm-remark-size-diff: Compute diff between remark files. * New Clang tools: - clang-offload-packager: Bundle multiple objects into single fat binaries including offload code. - clang-pseudo: Approximate heuristic parser for C++. - Rebase patches: * check-no-llvm-exegesis.patch * link-clang-tools-extra-shared.patch * lld-default-sha1.patch * llvm-do-not-install-static-libraries.patch * lto-disable-cache.patch - Drop patches that have landed upstream: * clang-repl-private-deps.patch * llvm-glibc-2-36.patch * llvm-scev-fix-isImpliedViaMerge.patch - Drop llvm-lifetime-for-rust.patch: this is now solved via attributes and LLVM doesn't need a hardcoded list of allocation functions anymore. - Add llvm-link-atomic.patch to fix build on ppc. - Add libcxx-test-library-path.patch to fix libc++ tests failing without RUNPATH on libc++.so. - Add libcxxabi-fix-armv7-test.patch to fix tests on armv7l. - Thanks to Andreas Schwab for most of the rebasing!- Make sure we keep -DNDEBUG. At some point %{optflags} must have lost it, perhaps because CMake usually adds it on top. So when overriding CMAKE_{C,CXX}_FLAGS_RELWITHDEBINFO, we make sure to take over the other flags. We drop LLVM_ENABLE_ASSERTIONS=OFF, because that's the default anyway and hasn't helped here. - Add llvm-scev-fix-isImpliedViaMerge.patch: fixes a miscompilation caused by mixing up values of the current and previous iteration. (See gh#llvm/llvm-project#56242.)- Add llvm-lifetime-for-rust.patch to have Rust memory management functions considered as lifetime markers. This should aid dead store elimination to dynamically allocated memory in Rust code.- Don't declare python3-clang as noarch: Python packages are installed into %{_libdir}.- Use black RPM macro magic to deduplicate binary lists. This should have no effect on the generated RPM but shaves ~400 lines off the specfile and hopefully makes future maintenance easier.- Add WebAssembly support for all architectures.- Add llvm-glibc-2-36.patch in order to address boo#1202215.- Update to version 14.0.6. * This release contains bug-fixes for the LLVM 14.0.0 release. This release is API and ABI compatible with 14.0.0. - Rebase llvm-do-not-install-static-libraries.patch.- Update to version 14.0.5. * This release contains bug-fixes for the LLVM 14.0.0 release. This release is API and ABI compatible with 14.0.0. - Rebase llvm-do-not-install-static-libraries.patch.- Update to version 14.0.4. * This release contains bug-fixes for the LLVM 14.0.0 release. This release is API and ABI compatible with 14.0.0. - Don't use gold for linking anymore: on s390x we use ld.bfd with LLVMgold.so, on ppc64 we disable ThinLTO for now. - Using ld.bfd on s390x exposed an issue with the existing llvm_build_tablegen_component_as_shared_library.patch: linking llvm-tblgen with libLLVM.so means we also have to link libraries used for that (like LLVMTableGenGlobalISel) with libLLVM.so. - Rewrite summary and description for llvm-gold to point out that it can also be used with ld.bfd, recommend with binutils. - Prefer RPM macros over shell scripting, so that we can better inspect the build script with substitutions in place. - More memory for stage 1 build jobs due to recent OOMs. - Add %_libclang_sonum RPM macro to llvm-devel, since that might now diverge from %_llvm_sonum. - Rebase llvm-do-not-install-static-libraries.patch.- Update to version 14.0.3. * This release contains bug-fixes for the LLVM 14.0.0 release. This release is API and ABI compatible with 14.0.0. - Rebase llvm-do-not-install-static-libraries.patch. - Use ThinLTO with lld on i586.- Update to version 14.0.1. * This release contains bug-fixes for the LLVM 14.0.0 release. This release is API and ABI compatible with 14.0.0. - Rebase llvm-do-not-install-static-libraries.patch. - Drop obsolete patches: * PPCISelLowering-Avoid-emitting-calls-to-__multi3.patch - Don't override default linker flags. (We were losing -Wl,-z,now.)- Update to version 14.0.0. * For details, see the release notes: - https://releases.llvm.org/14.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/14.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/14.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/14.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/14.0.0/tools/lld/docs/ReleaseNotes.html * New LLVM tools: - llvm-debuginfod-find: Tool to fetch debuginfod artifacts. - llvm-tli-checker: LLVM TargetLibraryInfo versus SDK checker. * New Clang tools: - clang-linker-wrapper: A wrapper utility over the host linker. - clang-nvlink-wrapper: A wrapper tool over nvlink program. - Add clang-repl-private-deps.patch to make link dependencies of clang-repl private, otherwise CMake can't install. - Add PPCISelLowering-Avoid-emitting-calls-to-__multi3.patch to fix build on PowerPC (32-bit). - Drop llvm-exegesis-link-dylib.patch, instead we don't build llvm-exegesis anymore and add check-no-llvm-exegesis.patch to disable the corresponding tests. - Rebase patches: * lldb-cmake.patch * llvm-do-not-install-static-libraries.patch * llvm-normally-versioned-libllvm.patch - Drop patches that have landed upstream: * llvm-update-extract-section-script.patch- Split up Clang libraries: libclang.so is no longer so-versioned alongside LLVM but will stay at libclang.so.13 for now. So we put it into a separate package from libclang-cpp.so. Since we can't have multiple LLVM versions generate the same package, we prefix it for the non-default LLVM with a mechanism inspired by the GCC packaging. - Patch exported clang/ClangTargets-relwithdebinfo.cmake to refer to libclang only by soname, because the installed library might be newer than the one originally build with the package. - Use the same mechanism to for libc++ and package Clang scripts only for the default version. This means we'll no longer have to touch the package when a new major version comes out. - Make sure we properly clean up the clang scripts if we're not packaging them. - Let python3-clang use libclang.so.XX, which means we can always build it and makes it depend on libclang instead of clang-devel. - Fix some rpmlint issues: we don't need explicit library dependencies that are detected automatically, and we add proper library dependencies to the *-devel packages. - Merge llvm-LTO-devel into llvm-devel. That's where the header files already are, and they are hard to separate. - Let llvm-polly-devel depend on llvm-devel. - Remove libLTO and *-devel packages from baselibs, they don't seem to be needed. We mostly need libLLVM and maybe libclang-cpp. - Consistently set host triple as *-suse-linux-gnu*. - Only suggest documentation packages.- Fix armv6hl cpu architecture typo.- Let clang-devel accept a newer version of clang-tools: we don't keep multiple versions of the latter.- AND instead of OR in License tag after sr#954337.- More conflicts for addition to Leap: clang-tools conflicts with llvm9 because that doesn't have the move of hmaptool yet, and llvm13-devel with llvm{5,7} as they used to have FileCheck.1.gz.- Add SUSE_Backports_policy-SLE_conflict to rpmlintrc, we're deliberately conflicting with SLE here to offer a newer version than what SUSE wants to support. (https://code.opensuse.org/leap/features/issue/55)- Update to version 13.0.1. * This release contains bug-fixes for the LLVM 13.0.0 release. This release is API and ABI compatible with 13.0.0. - Rebase llvm-do-not-install-static-libraries.patch. - Drop obsolete patches: * llvm-fix-building-with-GCC-12.patch - Drop RUNPATH from packaged binaries, instead set LD_LIBRARY_PATH for building and testing to simulate behavior of actual package.- Update constraints for riscv64- Add support for experimental targets and enable the M68k backend - Add patch to fix testsuite after enabling the M68k backend + llvm-update-extract-section-script.patch- BuildRequires: python-rpm-macros to fix Leap 15.3 build. - More memory for GCC compile jobs.- Add FileCheck into the devel package, as is required for testing Rust (boo#1192629)- Let clang recommend gcc and glibc-devel as we need both for building executables. No hard requirement because Clang can be used as a frontend only. (boo#1191587) - Set minimal CMake version required.- Backport llvm-fix-building-with-GCC-12.patch in order to fix building with GCC 12.- Update to version 13.0.0. * For details, see the release notes: - https://releases.llvm.org/13.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/13.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/13.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/13.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/13.0.0/tools/lld/docs/ReleaseNotes.html * New LLVM tools: - llvm-otool: Mach-O object file displaying tool. - llvm-sim: LLVM IR Similarity Visualizer. - llvm-tapi-diff: Diff tool for tbd files. - llvm-windres: Tool to manipulate Windows resources. * llvm-elfabi was removed. * New Clang tools: - clang-repl, an interactive interpreter for C/C++. - intercept-build, analyze-build: the former intercepts build commands to build a compilation database, the latter runs the static analyzer over all translation units. - scan-build-py: Python reimplementation of scan-build. - Rebase patches: * link-clang-shared.patch * llvm-do-not-install-static-libraries.patch * llvm-exegesis-link-dylib.patch - Drop patches that have landed upstream: * tablegen-test-link-static.patch - Run tests on more architectures, disable those that seem to hang. Don't run libcxx tests at all anymore because they take so long. - Relax constraints so that we can build on more machines.- Set CMAKE_LINKER to workaround CMake wanting to use lld just because we're using clang as compiler. Fixes build on aarch64. (https://bugs.llvm.org/show_bug.cgi?id=51115)- Update to version 12.0.1. * This release contains bug-fixes for the LLVM 12.0.0 release. This release is API and ABI compatible with 12.0.0. - Rebase llvm-do-not-install-static-libraries.patch. - Drop obsolete patches: * clangd-cmake-non-standard-layout.patch * compiler-rt-Remove-cyclades-inclusion-in-sanitizer.patch * lld-no-version-on-undefined-weak-lazy-symbols.patch- Add compiler-rt-Remove-cyclades-inclusion-in-sanitizer.patch: Fix build with linux-glibc-devel 5.13.- Set memory limits for DWZ to 4x.- Update to version 12.0.0. * For details, see the release notes: - https://releases.llvm.org/12.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/12.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/12.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/12.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/12.0.0/tools/lld/docs/ReleaseNotes.html - Rebase patches: * assume-opensuse.patch * lldb-cmake.patch * llvm-better-detect-64bit-atomics-support.patch * llvm-do-not-install-static-libraries.patch * llvm_build_tablegen_component_as_shared_library.patch - Drop patches that have landed upstream: * Fix-missing-include.patch - Always use ld.bfd for stage 1, use lld for stage 2 where we use ThinLTO and where it's supported, gold where lld doesn't work, and ld.bfd where we don't use ThinLTO. (boo#1181621) - Add lld-no-version-on-undefined-weak-lazy-symbols.patch to fix a bug in lld that made libLLVM.so contain a corrupt symbol version. - Add clangd-cmake-non-standard-layout.patch to fix build in our non-monorepo layout.- Don't use gold and ThinLTO on ppc64le because of boo#1181621. - Fix-missing-include.patch: fix build with GCC 11. (boo#1181875) - CMake-Look-up-target-subcomponents-in-LLVM_AVAILABLE_LIBS.patch: Fix target component lookup. (boo#1180748)- Update to version 11.0.1. * This release contains bug-fixes for the LLVM 11.0.0 release. This release is API and ABI compatible with 11.0.0. - Rebase llvm-do-not-install-static-libraries.patch. - Drop obsolete compiler-rt-dont-compile-assembly-files-as-c.patch. - Make documentation tarballs more reproducible.- Increase required RAM for aarch64- Move BFD plugins to %{_libdir}- polly-pthread.patch: Remove, std::call_once no longer needs libpthread- Add compiler-rt-dont-compile-assembly-files-as-c.patch to fix build failure with newer CMake versions.- Let CMake files in {llvm,clang}X-devel refer to the versioned binaries that come with the package instead of the symlink managed by update-alternatives. (boo#1178513)- Disable ThinLTO on aarch64 because of hangs. (boo#1178070) - Enable ThinLTO on ppc64 and ppc64le, the internal error is gone.- Update to version 11.0.0. * For details, see the release notes: - https://releases.llvm.org/11.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/11.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/11.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/11.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/11.0.0/tools/lld/docs/ReleaseNotes.html * New LLVM tools: llvm-gsymutil, llvm-ml. * clang-import-test was removed. - Drop obsolete patches: * clang-ignore-stack-clash-protector.patch * fix-atomics-test.patch * restore-llvm10-abi.patch - Rebase patches: * clang-resourcedirs.patch * default-to-i586.patch * link-clang-shared.patch * link-clang-tools-extra-shared.patch * lldb-cmake.patch * llvm-do-not-install-static-libraries.patch * lto-disable-cache.patch - Add llvm-exegesis-link-dylib.patch: link llvm-exegesis with libLLVM.so, the advanced functionality is not available anyway. - Remove -fstack-clash-protection on architectures where it isn't actually supported, because that prevents feature detection. - Make sure we also build AttributeReference for the documentation. This requires building via CMake. Also shorten the paths.- Add ld.lld as an alternative for ld. (boo#1174656)- Update to version 10.0.1. * This release contains bug-fixes for the LLVM 10.0.0 release. This release is API and ABI compatible with 10.0.0. - Rebase llvm-do-not-install-static-libraries.patch. - Replace ValueLattice-Add-new-state-for-undef-constants.patch, which landed upstream in a modified version, by restore-llvm10-abi.patch that resets the ABI to our 10.0.0. - Rewrite lld-default-sha1.patch to be version-independent. - Set flags consistently, so that we don't lose -DNDEBUG on 32-bit architectures. Also we don't need the opt flags twice. This leads to a significant reduction in binary sizes on 32-bit arches. - Make it easier to package release candidates. - Enable most tests on 32-bit ARM, but not for libcxx. - Add fix-atomics-test.patch for architectures where native atomics are not available. - Lower build constraints for riscv64 a bit to allow building on more workers. - Allow more compile jobs in stage 2.- Factor out computation of the number of jobs into a macro. - Choose mem_per_compile_job dependent on build stage, let stage 1 on x86_64 use more memory. - More generous memory allocation on riscv64.- Add lld-default-sha1.patch to make lld generate SHA1 build-ids by default, otherwise our tools cannot process the debuginfo.- Update to version 10.0.0. * For details, see the release notes: - https://releases.llvm.org/10.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/10.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/10.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/10.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/10.0.0/tools/lld/docs/ReleaseNotes.html * New LLVM tools: llvm-ifs, llvm-install-name-tool, llvm-reduce. * New Clang tools: clang-move, clang-offload-wrapper, pp-trace. * lldb-mi moved to a separate project and is no longer available. - Dropped obsolete patches: * clang-fix-powerpc-triplet.patch * clang-riscv64-rv64gc.diff * compiler-rt-move-fdp.patch * compiler-rt-sanitizer-ipc-perm.patch * D60657-riscv-pcrel_lo.diff * gwp-asan-lto.patch * libcxx-tests-linux-distribution.patch * link-lldb-shared.patch * llvm-riscv64-fix-cffi.diff * openmp-export-fini.patch * riscv-eh-frame-fixup.patch * riscv64-suse-linux.patch - Rebased patches: * assume-opensuse.patch * link-clang-tools-extra-shared.patch * lldb-cmake.patch * llvm_build_tablegen_component_as_shared_library.patch * llvm-do-not-install-static-libraries.patch * llvm-remove-clang-only-flags.patch * lto-disable-cache.patch * polly-pthread.patch * tests-use-python3.patch - Add tablegen-test-link-static.patch: fix TableGenTests. - Add ValueLattice-Add-new-state-for-undef-constants.patch: fix miscompilation on ppc64/s390x that was leading to test crashes. - Enable ThinLTO on aarch64. - Disable ThinLTO on ppc64le due to internal error in gold. - Delete object files and static libraries from build tree in %install already, because debuginfo extraction happens after that. If we do it after %check, we run out of disk space. - Run tests "manually", because we've already removed many targets. - Don't build unit tests, because some of them are now statically linked, which is very expensive with LTO. Also unit tests are probably not very interesting on the distribution level, we don't expect them to perform different than in upstream. The relevant upstream change for this is https://reviews.llvm.org/D54439. - Drop %if for openSUSE 13.2.- Remove conflicts of clang-tools with {clang,llvm}{7,8}: the relevant binaries have been removed from those packages. This allows having clang-tools together with older versions of llvm. For a smooth installation we add OrderWithRequires dependencies. - Fix typos in (still inactive) !%{with clang_scripts} part.- Require clang-tools for clangX-devel.- Move all clang-related scripts (including those originally in clangX-checker), hmaptool and clang-doc into a common unversioned subpackage clang-tools, like python3-clang. The scripts reference the unversioned executables, so allowing multiple versions via update-alternatives would be misleading. The clang-doc executable will come with assets in Clang 10, so we have to take it out of update-alternatives as well. This should be the proper solution to boo#1161873. - Include run-find-all-symbols script in clang-tools. - Remove metadata for clangX-include-fixer subpackage that never had any files and thus wasn't released as rpm. There are so many clang binaries that packaging them separately doesn't scale. - Fix lldb version string, adapt lldb-cmake.patch (boo#1165517). - Remove unneccesary libtool dependency. - Don't let clang depend on libc++, we link it with libstdc++. - Recommend gold plugin if clang and gold are installed.- Add vim-plugin-llvm Conflicts to clang subpackage which now contains files formerly in llvmN-vim-plugins, conflicting with packages from older llvm releases.- Add back emacs-llvm Provides and Conflicts to clang subpackage originally in llvm-emacs-plugins to properly conflict with llvm-emacs-plugins from older llvm releases.- Add clang5-devel to clang9-doc conflicts.- Add compiler-rt-sanitizer-ipc-perm.patch: Fix sanitizer-common build with glibc 2.31.- Move clang-{format,include-fixer,rename}.{el,py} files from llvm-*-plugins to clang package. (boo#1161873) - Drop the now empty llvm-emacs-plugins package.- Add polly and lld build conditionals, remove excessive Requires to clang from docs. Fix conditional for libc++ use. [jsc#SLE-7400, jsc#SLE-7614, jsc#SLE-7452, jsc#SLE-8920, jsc#SLE-7390, jsc#SLE-7587]- Undo spec-cleaner changes that we don't want. * Reintroduce blank lines in configuration. * Use packageand syntax that works for older versions of RPM. * Don't use %{_bindir} on left-hand side of sed replacements.- riscv-eh-frame-fixup.patch: Remove changesets that alter the libLLVM ABI- Add upstream patch to export compiler-rt FuzzedDataProvider header, required by Envoy 1.12.2: * compiler-rt-move-fdp.patch- riscv-eh-frame-fixup.patch: Fix handling of .eh_frame on RISC-V - polly-pthread.patch: Add missing -lpthread- Enable support for riscv64 - clang-riscv64-rv64gc.diff, riscv64-suse-linux.patch, llvm-riscv64-fix-cffi.diff, D60657-riscv-pcrel_lo.diff: Backports from master- Update to version 9.0.1. * This release contains bug-fixes for the LLVM 9.0.0 release. This release is API and ABI compatible with 9.0.0. - Drop patches that have landed upstream: * dont-install-example-analyzer-plugins.patch * fix-module-test.patch * llvm-add-missing-include.patch - Drop set-revision.patch, don't provide revision number in clang. The upstream repository has moved from Subversion to git, so the revision number is just a hash, which limits its usefulness. - Rebase llvm-do-not-install-static-libraries.patch.- Modify libcxx-tests-linux-distribution.patch to remove dependency on python-distro again: we don't have expected failures.- Add llvm-add-missing-include.patch in order to fix boo#1158367.- Add gwp-asan-lto.patch: Make sure there are no LLVM IR files in static libraries that we package. - Add libcxx-tests-linux-distribution.patch (boo#1158293): Replace platform.linux_distribution by distro.linux_distribution. - Make documentation packages noarch.- Add openmp-export-fini.patch: Export termination function for libomp.so, solves boo#1155108. - Remove flaky test case in libcxx.- Fix typo, BOLL -> 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/ldconfigs390zp37 1724967703  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      17.0.6-150600.3.2.117.0.6-150600.3.2.117.0.6     !!!!""""""""""""""""""""""""""""""""""""""""##################$%%%%%$&&&&''''&&&&&(((((((((((((((((((((((((((((((((((((((($)))))*+++,--,,,,,,..,/////,,,,,0000,,,,,1112211111111111111333333,,,,444444444,,,5555555567777789:;;clangclang-cBuildSystem.hCXCompilationDatabase.hCXDiagnostic.hCXErrorCode.hCXFile.hCXSourceLocation.hCXString.hDocumentation.hExternC.hFatalErrorHandler.hIndex.hPlatform.hRewrite.hAPINotesAPINotesYAMLCompiler.hTypes.hARCMigrateARCMT.hARCMTActions.hFileRemapper.hASTAPValue.hAST.hASTConcept.hASTConsumer.hASTContext.hASTContextAllocate.hASTDiagnostic.hASTDumper.hASTDumperUtils.hASTFwd.hASTImportError.hASTImporter.hASTImporterLookupTable.hASTImporterSharedState.hASTLambda.hASTMutationListener.hASTNodeTraverser.hASTStructuralEquivalence.hASTTypeTraits.hASTUnresolvedSet.hASTVector.hAbstractBasicReader.hAbstractBasicReader.incAbstractBasicWriter.hAbstractBasicWriter.incAbstractTypeReader.hAbstractTypeReader.incAbstractTypeWriter.hAbstractTypeWriter.incAttr.hAttrImpl.incAttrIterator.hAttrNodeTraverse.incAttrTextNodeDump.incAttrVisitor.hAttrVisitor.incAttrs.incAvailability.hBaseSubobject.hBuiltinTypes.defCXXInheritance.hCXXRecordDeclDefinitionBits.defCanonicalType.hCharUnits.hComment.hCommentBriefParser.hCommentCommandInfo.incCommentCommandList.incCommentCommandTraits.hCommentDiagnostic.hCommentHTMLNamedCharacterReferences.incCommentHTMLTags.incCommentHTMLTagsProperties.incCommentLexer.hCommentNodes.incCommentParser.hCommentSema.hCommentVisitor.hComparisonCategories.hComputeDependence.hCurrentSourceLocExprScope.hDataCollection.hDecl.hDeclAccessPair.hDeclBase.hDeclCXX.hDeclContextInternals.hDeclFriend.hDeclGroup.hDeclLookups.hDeclNodes.incDeclObjC.hDeclObjCCommon.hDeclOpenMP.hDeclTemplate.hDeclVisitor.hDeclarationName.hDependenceFlags.hDependentDiagnostic.hEvaluatedExprVisitor.hExpr.hExprCXX.hExprConcepts.hExprObjC.hExprOpenMP.hExternalASTMerger.hExternalASTSource.hFormatString.hGlobalDecl.hIgnoreExpr.hJSONNodeDumper.hLambdaCapture.hLexicallyOrderedRecursiveASTVisitor.hLocInfoType.hMangle.hMangleNumberingContext.hNSAPI.hNestedNameSpecifier.hNonTrivialTypeVisitor.hODRDiagsEmitter.hODRHash.hOSLog.hOpenMPClause.hOperationKinds.defOperationKinds.hOptionalDiagnostic.hParentMap.hParentMapContext.hPrettyDeclStackTrace.hPrettyPrinter.hQualTypeNames.hRandstruct.hRawCommentList.hRecordLayout.hRecursiveASTVisitor.hRedeclarable.hSelectorLocationsKind.hStmt.hStmtCXX.hStmtDataCollectors.incStmtGraphTraits.hStmtIterator.hStmtNodes.incStmtObjC.hStmtOpenMP.hStmtVisitor.hTemplateArgumentVisitor.hTemplateBase.hTemplateName.hTextNodeDumper.hType.hTypeLoc.hTypeLocNodes.defTypeLocVisitor.hTypeNodes.incTypeOrdering.hTypeVisitor.hUnresolvedSet.hVTTBuilder.hVTableBuilder.hASTMatchersASTMatchFinder.hASTMatchers.hASTMatchersInternal.hASTMatchersMacros.hDynamicDiagnostics.hParser.hRegistry.hVariantValue.hGtestMatchers.hAnalysisAnalysesCFGReachabilityAnalysis.hCalledOnceCheck.hConsumed.hDominators.hExprMutationAnalyzer.hIntervalPartition.hLiveVariables.hPostOrderCFGView.hReachableCode.hThreadSafety.hThreadSafetyCommon.hThreadSafetyLogical.hThreadSafetyOps.defThreadSafetyTIL.hThreadSafetyTraverse.hThreadSafetyUtil.hUninitializedValues.hUnsafeBufferUsage.hUnsafeBufferUsageGadgets.defAnalysisDeclContext.hAnyCall.hBodyFarm.hCFG.hCFGStmtMap.hCallGraph.hCloneDetection.hCodeInjector.hConstructionContext.hDomainSpecificCocoaConventions.hObjCNoReturn.hFlowSensitiveArena.hCFGMatchSwitch.hControlFlowContext.hDataflowAnalysis.hDataflowAnalysisContext.hDataflowEnvironment.hDataflowLattice.hDataflowValues.hDataflowWorklist.hDebugSupport.hFormula.hLogger.hMapLattice.hMatchSwitch.hModelsChromiumCheckModel.hUncheckedOptionalAccessModel.hNoopAnalysis.hNoopLattice.hRecordOps.hSolver.hStorageLocation.hTransfer.hTypeErasedDataflowAnalysis.hValue.hWatchedLiteralsSolver.hIssueHash.hMacroExpansionContext.hPathDiagnostic.hProgramPoint.hRetainSummaryManager.hSelectorExtras.hSupportBumpVector.hBasicAArch64SVEACLETypes.defABI.hAddressSpaces.hAlignedAllocation.hAllDiagnostics.hAttrHasAttributeImpl.incAttrKinds.hAttrList.incAttrSubMatchRulesList.incAttrSubjectMatchRules.hAttrTokenKinds.incAttributeCommonInfo.hAttributes.hBitmaskEnum.hBuiltinHeaders.defBuiltins.defBuiltins.hBuiltinsAArch64.defBuiltinsAArch64NeonSVEBridge.defBuiltinsAArch64NeonSVEBridge_cg.defBuiltinsAMDGPU.defBuiltinsARM.defBuiltinsBPF.defBuiltinsHexagon.defBuiltinsHexagonDep.defBuiltinsHexagonMapCustomDep.defBuiltinsLoongArch.defBuiltinsMips.defBuiltinsNEON.defBuiltinsNVPTX.defBuiltinsPPC.defBuiltinsRISCV.defBuiltinsRISCVVector.defBuiltinsSME.defBuiltinsSVE.defBuiltinsSystemZ.defBuiltinsVE.defBuiltinsVEVL.gen.defBuiltinsWebAssembly.defBuiltinsX86.defBuiltinsX86_64.defBuiltinsXCore.defCLWarnings.hCapturedStmt.hCharInfo.hCodeGenOptions.defCodeGenOptions.hCommentOptions.hCuda.hCustomizableOptional.hDarwinSDKInfo.hDiagnostic.hDiagnosticAST.hDiagnosticASTKinds.incDiagnosticAnalysis.hDiagnosticAnalysisKinds.incDiagnosticCategories.hDiagnosticComment.hDiagnosticCommentKinds.incDiagnosticCommonKinds.incDiagnosticCrossTU.hDiagnosticCrossTUKinds.incDiagnosticDriver.hDiagnosticDriverKinds.incDiagnosticError.hDiagnosticFrontend.hDiagnosticFrontendKinds.incDiagnosticGroups.incDiagnosticIDs.hDiagnosticIndexName.incDiagnosticLex.hDiagnosticLexKinds.incDiagnosticOptions.defDiagnosticOptions.hDiagnosticParse.hDiagnosticParseKinds.incDiagnosticRefactoring.hDiagnosticRefactoringKinds.incDiagnosticSema.hDiagnosticSemaKinds.incDiagnosticSerialization.hDiagnosticSerializationKinds.incDirectoryEntry.hExceptionSpecificationType.hExpressionTraits.hFPOptions.defFeatures.defFileEntry.hFileManager.hFileSystemOptions.hFileSystemStatCache.hHLSLRuntime.hHeaderInclude.hIdentifierTable.hJsonSupport.hLLVM.hLambda.hLangOptions.defLangOptions.hLangStandard.hLangStandards.defLinkage.hMSP430Target.defMacroBuilder.hMakeSupport.hModule.hNoSanitizeList.hObjCRuntime.hOpenCLExtensionTypes.defOpenCLExtensions.defOpenCLImageTypes.defOpenCLOptions.hOpenMPKinds.defOpenMPKinds.hOperatorKinds.defOperatorKinds.hOperatorPrecedence.hPPCTypes.defParsedAttrInfo.hPartialDiagnostic.hPlistSupport.hPragmaKinds.hPrettyStackTrace.hProfileList.hRISCVVTypes.defSanitizerSpecialCaseList.hSanitizers.defSanitizers.hSarif.hSourceLocation.hSourceManager.hSourceManagerInternals.hSpecifiers.hStack.hSyncScope.hTargetBuiltins.hTargetCXXABI.defTargetCXXABI.hTargetID.hTargetInfo.hTargetOptions.hTemplateKinds.hThunk.hTokenKinds.defTokenKinds.hTransformTypeTraits.defTypeTraits.hVersion.hVersion.incVisibility.hWebAssemblyReferenceTypes.defXRayInstr.hXRayLists.harm_cde_builtin_aliases.incarm_cde_builtin_cg.incarm_cde_builtin_sema.incarm_cde_builtins.incarm_fp16.incarm_mve_builtin_aliases.incarm_mve_builtin_cg.incarm_mve_builtin_sema.incarm_mve_builtins.incarm_neon.incarm_sme_builtin_cg.incarm_sme_builtins.incarm_sme_sema_rangechecks.incarm_sve_builtin_cg.incarm_sve_builtins.incarm_sve_sema_rangechecks.incarm_sve_typeflags.incriscv_sifive_vector_builtin_cg.incriscv_sifive_vector_builtin_sema.incriscv_sifive_vector_builtins.incriscv_vector_builtin_cg.incriscv_vector_builtin_sema.incriscv_vector_builtins.incCodeGenBackendUtil.hCGFunctionInfo.hCodeGenABITypes.hCodeGenAction.hConstantInitBuilder.hConstantInitFuture.hModuleBuilder.hObjectFilePCHContainerOperations.hSwiftCallingConv.hConfigconfig.hCrossTUCrossTUDiagnostic.hCrossTranslationUnit.hDirectoryWatcherDirectoryWatcher.hDriverAction.hCompilation.hDistro.hDriver.hDriverDiagnostic.hInputInfo.hJob.hMultilib.hMultilibBuilder.hOffloadBundler.hOptionUtils.hOptions.hOptions.incPhases.hSanitizerArgs.hTool.hToolChain.hTypes.defTypes.hUtil.hXRayArgs.hEditCommit.hEditedSource.hEditsReceiver.hFileOffset.hRewriters.hExtractAPIAPI.hAPIIgnoresList.hAvailabilityInfo.hDeclarationFragments.hExtractAPIActionBase.hExtractAPIVisitor.hFrontendActions.hSerializationSerializerBase.hSymbolGraphSerializer.hTypedefUnderlyingTypeResolver.hFormatFormat.hFrontendASTConsumers.hASTUnit.hChainedDiagnosticConsumer.hCommandLineSourceLoc.hCompilerInstance.hCompilerInvocation.hDependencyOutputOptions.hDiagnosticRenderer.hFrontendAction.hFrontendActions.hFrontendDiagnostic.hFrontendOptions.hFrontendPluginRegistry.hLayoutOverrideSource.hLogDiagnosticPrinter.hMigratorOptions.hMultiplexConsumer.hPCHContainerOperations.hPrecompiledPreamble.hPreprocessorOutputOptions.hSARIFDiagnostic.hSARIFDiagnosticPrinter.hSerializedDiagnosticPrinter.hSerializedDiagnosticReader.hSerializedDiagnostics.hTextDiagnostic.hTextDiagnosticBuffer.hTextDiagnosticPrinter.hUtils.hVerifyDiagnosticConsumer.hFrontendToolUtils.hIndexCommentToXML.hDeclOccurrence.hIndexDataConsumer.hIndexSymbol.hIndexingAction.hIndexingOptions.hUSRGeneration.hIndexSerializationSerializablePathCollection.hInterpreterInterpreter.hPartialTranslationUnit.hValue.hLexCodeCompletionHandler.hDependencyDirectivesScanner.hDirectoryLookup.hExternalPreprocessorSource.hHeaderMap.hHeaderMapTypes.hHeaderSearch.hHeaderSearchOptions.hLexDiagnostic.hLexer.hLiteralSupport.hMacroArgs.hMacroInfo.hModuleLoader.hModuleMap.hMultipleIncludeOpt.hPPCallbacks.hPPConditionalDirectiveRecord.hPragma.hPreprocessingRecord.hPreprocessor.hPreprocessorLexer.hPreprocessorOptions.hScratchBuffer.hToken.hTokenConcatenation.hTokenLexer.hVariadicMacroSupport.hParseAttrParserStringSwitches.incAttrSubMatchRulesParserStringSwitches.incLoopHint.hParseAST.hParseDiagnostic.hParser.hRAIIObjectsForParser.hRewriteCoreDeltaTree.hHTMLRewrite.hRewriteBuffer.hRewriteRope.hRewriter.hTokenRewriter.hFrontendASTConsumers.hFixItRewriter.hFrontendActions.hRewriters.hSemaAnalysisBasedWarnings.hAttrParsedAttrImpl.incAttrParsedAttrKinds.incAttrParsedAttrList.incAttrSpellingListIndex.incAttrTemplateInstantiate.incCXXFieldCollector.hCleanupInfo.hCodeCompleteConsumer.hCodeCompleteOptions.hDeclSpec.hDelayedDiagnostic.hDesignator.hEnterExpressionEvaluationContext.hExternalSemaSource.hHLSLExternalSemaSource.hIdentifierResolver.hInitialization.hLookup.hMultiplexExternalSemaSource.hObjCMethodList.hOverload.hOwnership.hParsedAttr.hParsedTemplate.hRISCVIntrinsicManager.hScope.hScopeInfo.hSema.hSemaConcept.hSemaConsumer.hSemaDiagnostic.hSemaFixItUtils.hSemaInternal.hSemaLambda.hTemplate.hTemplateDeduction.hTemplateInstCallback.hTypoCorrection.hWeak.hSerializationASTBitCodes.hASTDeserializationListener.hASTReader.hASTRecordReader.hASTRecordWriter.hASTWriter.hAttrPCHRead.incAttrPCHWrite.incContinuousRangeMap.hGlobalModuleIndex.hInMemoryModuleCache.hModuleFile.hModuleFileExtension.hModuleManager.hPCHContainerOperations.hSerializationDiagnostic.hSourceLocationEncoding.hTypeBitCodes.defStaticAnalyzerCheckersBuiltinCheckerRegistration.hCheckers.incMPIFunctionClassifier.hSValExplainer.hTaint.hCoreAnalyses.defAnalyzerOptions.defAnalyzerOptions.hBugReporterBugReporter.hBugReporterVisitors.hBugType.hCommonBugCategories.hChecker.hCheckerManager.hCheckerRegistryData.hPathDiagnosticConsumers.hPathSensitiveAPSIntType.hAnalysisManager.hBasicValueFactory.hBlockCounter.hCallDescription.hCallEvent.hCheckerContext.hCheckerHelpers.hConstraintManager.hCoreEngine.hDynamicCastInfo.hDynamicExtent.hDynamicType.hDynamicTypeInfo.hEnvironment.hExplodedGraph.hExprEngine.hFunctionSummary.hLoopUnrolling.hLoopWidening.hMemRegion.hProgramState.hProgramStateTrait.hProgramState_Fwd.hRangedConstraintManager.hRegions.defSMTConstraintManager.hSMTConv.hSValBuilder.hSValVisitor.hSVals.defSVals.hSimpleConstraintManager.hStore.hStoreRef.hSummaryManager.hSymExpr.hSymbolManager.hSymbols.defWorkList.hFrontendAnalysisConsumer.hAnalyzerHelpFlags.hCheckerRegistry.hFrontendActions.hModelConsumer.hSupportRISCVVIntrinsicUtils.hTestingCommandLineArgs.hTestAST.hTestClangConfig.hToolingASTDiffASTDiff.hASTDiffInternal.hAllTUsExecution.hArgumentsAdjusters.hCommonOptionsParser.hCompilationDatabase.hCompilationDatabasePluginRegistry.hCoreDiagnostic.hReplacement.hDependencyScanningDependencyScanningFilesystem.hDependencyScanningService.hDependencyScanningTool.hDependencyScanningWorker.hModuleDepCollector.hDiagnosticsYaml.hExecution.hFileMatchTrie.hFixIt.hInclusionsHeaderAnalysis.hHeaderIncludes.hIncludeStyle.hStandardLibrary.hJSONCompilationDatabase.hNodeIntrospection.hNodeIntrospection.incRefactoringRefactoring.hASTSelection.hAtomicChange.hExtractExtract.hSourceExtraction.hLookup.hRecursiveSymbolVisitor.hRefactoringAction.hRefactoringActionRule.hRefactoringActionRuleRequirements.hRefactoringActionRules.hRefactoringActionRulesInternal.hRefactoringDiagnostic.hRefactoringOption.hRefactoringOptionVisitor.hRefactoringOptions.hRefactoringResultConsumer.hRefactoringRuleContext.hRenameRenamingAction.hSymbolName.hSymbolOccurrences.hUSRFinder.hUSRFindingAction.hUSRLocFinder.hRefactoringCallbacks.hReplacementsYaml.hStandaloneExecution.hSyntaxBuildTree.hMutations.hNodeClasses.incNodes.hNodes.incTokenBufferTokenManager.hTokenManager.hTokens.hTree.hToolExecutorPluginRegistry.hTooling.hTransformerMatchConsumer.hParsing.hRangeSelector.hRewriteRule.hSourceCode.hSourceCodeBuilders.hStencil.hTransformer.hclangAddClang.cmakeClangConfig.cmakeClangConfigVersion.cmakeClangTargets-relwithdebinfo.cmakeClangTargets.cmakelibclang-cpp.solibclang.soclang17-develCREDITS.TXTLICENSE.TXT/usr/include//usr/include/clang-c//usr/include/clang//usr/include/clang/APINotes//usr/include/clang/ARCMigrate//usr/include/clang/AST//usr/include/clang/ASTMatchers//usr/include/clang/ASTMatchers/Dynamic//usr/include/clang/Analysis//usr/include/clang/Analysis/Analyses//usr/include/clang/Analysis/DomainSpecific//usr/include/clang/Analysis/FlowSensitive//usr/include/clang/Analysis/FlowSensitive/Models//usr/include/clang/Analysis/Support//usr/include/clang/Basic//usr/include/clang/CodeGen//usr/include/clang/Config//usr/include/clang/CrossTU//usr/include/clang/DirectoryWatcher//usr/include/clang/Driver//usr/include/clang/Edit//usr/include/clang/ExtractAPI//usr/include/clang/ExtractAPI/Serialization//usr/include/clang/Format//usr/include/clang/Frontend//usr/include/clang/FrontendTool//usr/include/clang/Index//usr/include/clang/IndexSerialization//usr/include/clang/Interpreter//usr/include/clang/Lex//usr/include/clang/Parse//usr/include/clang/Rewrite//usr/include/clang/Rewrite/Core//usr/include/clang/Rewrite/Frontend//usr/include/clang/Sema//usr/include/clang/Serialization//usr/include/clang/StaticAnalyzer//usr/include/clang/StaticAnalyzer/Checkers//usr/include/clang/StaticAnalyzer/Core//usr/include/clang/StaticAnalyzer/Core/BugReporter//usr/include/clang/StaticAnalyzer/Core/PathSensitive//usr/include/clang/StaticAnalyzer/Frontend//usr/include/clang/Support//usr/include/clang/Testing//usr/include/clang/Tooling//usr/include/clang/Tooling/ASTDiff//usr/include/clang/Tooling/Core//usr/include/clang/Tooling/DependencyScanning//usr/include/clang/Tooling/Inclusions//usr/include/clang/Tooling/Refactoring//usr/include/clang/Tooling/Refactoring/Extract//usr/include/clang/Tooling/Refactoring/Rename//usr/include/clang/Tooling/Syntax//usr/include/clang/Tooling/Transformer//usr/lib64/cmake//usr/lib64/cmake/clang//usr/lib64//usr/lib64//usr/share/licenses//usr/share/licenses/clang17-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:35422/SUSE_SLE-15-SP6_Update/5d90d0d45cc9858804a5d7529a7d9123-llvm17.SUSE_SLE-15-SP6_Updatedrpmxz5s390x-suse-linuxdirectoryC source, ASCII textC++ source, ASCII textASCII text, with very long linesASCII textC++ source, ASCII text, with very long linesC++ source, UTF-8 Unicode textC source, ASCII text, with very long linesPS PMHxmutf-8a083b79cab642ef82d4ac5eb790e7d492348339ecd02b760a948b743f0b6fe29?7zXZ !t/!]"k%hcSZ%WZ"agEnN&Ǥ0ӲrXFk%5vnvA0\ͧQtC?SF"gFSsE;Ğs_v XA %XUѻF@~ۆ^g.^%n KO0`OErR2,ӧUB.M{k:w{{0M vnW O MY;F%-7K-Xa2fmT zEл/p:jJ])1bz7S@A:-i7Z:d*ku*~ ?({1!VƂ].2$rLn֣/VR 踊QA]gN0iUB5i a&+~ωdBP {;  ^]K<])!$u_WCU©[7&yd_׸sƲƗUy&]@h\qYy4سנD46o0CdAf(\ځËV9@E!S/"ersyq)豧!j$3U٢2qgV0 "Ѿ_fB򖸉1f\3k-(5Z3qO4^s~slTgxz]X=\=ww{+<e.ϊML83>7T^K};-:'EE༹@zH隞/dq0o럳NlU >"vQq} 4Oqzlx# ȽV&Ovu]g{ !N-$;̳͋KT,&ۥ#!4+N-`'|⳻<֛Z-J?{ %0=BN\wP7w삕Աs4 ?ڗ4?|&PY*;"?sv}G]D2o]Zm }l\̈Bn: ŊyƎ^* 0#_FxW (xRJH8iӒ7))jXRcOl#!>K# xف&׹J5;S6%%LnRW3&mVofܘ$FOIOEWMDk-=fD 4E;/dSY0٠pp\Yqj1^ygQh[G`dQZVݝXpnSU`\a`vsEpٸA 48s=|cƉA{SBdRJ_"zmt;at6G>.;N!b+ r<# 57'ͅ(X-SDž ,[+A0{EU}QEԸu9倘Q %JEq6À7,!AJH?FnÐ0apN5UlpG'6.0i{C*)6qm YX3"}N6aqJwyJHb/\S0uLڹ]fq2#Z3o!5g?(*T;8P!_l%$MSXLqo  2_Tr| j>BA1j7ga /l/SK%[z@c OONjVUPkHJh޼&(y'yԋy2V>یwZ] Mێ^??c|dk; Ymƞړ:{ oSh$dɽHjĺ/Ow H/>hhz@3}T}O̺2ȅ! .dqZZdճ3g {daus^ Μ>K&=jcZw<*/E3z2ӹ,s rŚ7uoA,&p4v՜}plbxkNŠk5_tq戙q 2ZIoA=VWM:M~Z]TK4ȞTzH@>p5Y贚!\+!TiC >tkDY~He;]Z/G90t?7o%’ ֳjIGaX=RT~f}VScr;Pv^3z$sD kP8Ɔ@*3mG;tL‚)Zȃy"?Vq}[U hJ߇3!hYx^͖;rbX$Cㇼlqn[:8m/\ =%<,. !>#NhFzn'q9 zǁKF8lWE-0_JzdlJ,U-o4~2"LJLSˮK@.Vb^¿77J (mY 0I'x} eL-1NH\$]MDΥ=eӲ5QՁ9HվWL>eR:Z +TKTӴ;#M?B1}=i) .gʓ} = z; o&Ŷ0\ԇaӖhtu%ѿ2Wi~Mj ,Is=1W9|TdURAlXXl=1n2i05#aᣫVC%v@Ӡ`$c jv>sQY,B{:BH 32{Ӂ sK,ĪBf22xǷlǝʂ#p*9hAI Հ`& e%uc5FLCk ~n|*V%3<ThFq;0\~(}#^z@M 80 aL3L^ ZRgds:VLVmJ< yH;(z-R[ZPOPPIl{;4Jg\PC>\=!Ij7Rx8PJ%l1E$LlE_dPPz2Ÿ˔†9nBP2#bluBQ~ 0L6Lq[j}D9b)7ur8\϶]]%=/YLMQ(`fqGEyDP/#> uw4JC PkS_c#7 ܠ-HjbslXDLOsIB?wVa$uF 7KyS\)ܩ0|8P>ԇuRu.B0C.3|UI ̈́ Bn e T`?`q5be:rJh彯yREG[jJDx%p\@oXCԋϼy͊Bi^ǫ;jeOm7KH(e6ft;Ә}dV$@F:elZF^?]KYD?l b-pmi1&nnyߜCXe)^nʏcC2 6EюnF~Q)!# `\QL\n/̛ ]LK_dQ֯㿞Y$&\#03JۅfRg w{'%,#:󍅺p)~"A(麁LD,mFMGNyx^5Kt&C@W1ݶ YZ