llvm5-devel-5.0.1-lp150.7.3.1<>,8[u鸋/=„9F[ ܱ[,!R8vd;;;IjXf+߀ Ysv"RW:M_6F$ɮDz7·*Z,Y, >TKqMJ&b/Yܰ%1I253 n]80 S mX @qZ9b'ڰÈN U)x~ s驂 8ڶ"[?11ICM`CtTkzS aֳG6>C$?d  6 *08&& && 2h& K& Ʀ& &&B&## &;< < ?F ???(?8?9CP:R`>@FG&Hެ&ID&XlY\&]\&^zTbcd/e4f7l9uL&v,w&x&yDzٴCllvm5-devel5.0.1lp150.7.3.1Header Files for LLVMThis package contains library and header files needed to develop new native programs that use the LLVM infrastructure.[ulamb71 @openSUSE Leap 15.0openSUSENCSAhttp://bugs.opensuse.orgDevelopment/Languages/Otherhttp://www.llvm.orglinuxx86_64S= / 0d/<RE /( L I;_cJ,]Er2,u jg!! z)j (vpe- b!e I?K+ _~u B+$KAb!xeG0-_7)I|j$Q&T]F Y*67 'aL1F ,+ <%4Ŗ#9FED 7. ] '. V*5)U^T7[7u S|`  -S1 ',0   ,&b8Xh <^>Pd c )O8 iX fCu Yy:?1Is D X l3+<O ? KW^> <R ;(BwiVY0 ->E D&3m"F n`c ri G'7 lK5`*m W2 _I-k ; )p yR#+j-# tk ;@8WA"I@7ZBg^Tm!+ o0/q:} 41/,f(e B3x>) Z{rPZ  0C% L 3  m1NCD+ b{ 8% $-t n  CSK5Z )+7 q$G8i>=K?Y %,MdF'i  i <\hu69+ o pr1 D! GpAY2 :a#%v4 .#O;$>e " } 6]y S  SO EO[9|  GGa @ )g{e?":5k"f0 !I#"e&vD>0>J;&,tjX{/ni= :E> #9#Az@@:3] /% *! ! R 66kFC*7D.`B7$ B V% ='@!6iR+0 . \ /. n5 <7-`X>57!" mm 1|, 0$?J\!; f V= dm m ] y@$cH:WY =o _A5 w;+ KK~/K>@m,I=&g+>^ v <c !\> y^OE_ `pa##Qf,k'0#=Zg  g  ~   0{0F /$Cx Q  pM ^6 r{(bL|? v-lE+  9)`I r/<  :e0T\$Tf!)  {3wh1+;Z?q&)8v1}E"UKRD!"}B$W6H}-"+(2m4SEZ,5,Œ? &`^@C0]K_FhKK@%6$WC}mhD`)F75y\BL?ii40" tJ2B*w&7X&L5"QAIX[EGO=`-Z1)".~VggTEe8B)0.abghrX!@gX0I+*jT5 :{n 0d)z:.OI}A- %"u  P0d?? PY 2gov f  R=i #04C:bXv"W6N6z!{ \1Z}O+!B. 6}t"igFlj  {lb#t W'% p'% ARa)-5VGM-3?5UX!4;@/7;2KA!b0XjW)^q(zz\ @ 3'.O,+5!'% u[[fPv*[ &5I`/lYYcjCL g _j0[ JxBQh`sZ6_S%wAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤AA큤A큤A큤A큤AA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤[rC[rG[r6[r6VseVtVseY5E`VlxVY6VseVseRh V-VseY^Y6VY6[r6VseVseXc8YUX7X7[r4YFMY_bX3wY@c%Y@c%Y@hW3Y@c%X OY@c%Y@c%Y@c%Y@c%Y@c%Y@c%XHYQ3Y8WYQ3YY9Y2Q[r6[b[b[b[b[b[b[r5[r5W"YFYVYmYHX7QYmOpY-Y-YTDXYTDXYTDXYA]_YTDXYTDXYTDXY-=YTDXYA]_YTDXY9Y-YTDXYmOpV|5YmTYTDXY)X#YV[YVX-Y0YjZY0%YV[YVYVY-=YGY-Y-YfzYVSYDlYmOpWbYLYTDXYm2W)Y9YFY-Y-Y][r5YMYU_QY7wYU08YfYU08YMYMYMX oYU08YU08YU08YMY7wYU08Y7wYU08YYMX oYU08YhdX oYm][r5X/AYMYMWW!YM[r5Xd[r5W*\MY6Y6Y6Y6GXlW*\MYmOpYLW*\MW-Yg'YV[YV[W*\MYmOpYLW*\M[r5Y:Y_dYV[Y_dYdTX(YmOpX#YV[YV[X(YmOpYmOpYV[Y_Yf|YfzY YmOpYmOpYfzYMc]YdTY_YA]_YdTYdTYC XɽYmOpYC YmWiYM>Y? YV[Y0ZoYmOpXY9tW*\MX"X"X"X"W*\MX"XXdX"X"X"X"X"XXX"W*\MW*\MX"X"X"XW*\MXX"XXX"W*\MX"YV[YV[[r5X zYMYM[r4W [r4YH`PYH`PVfYH`PY_aU+PX,eW[r4YmYL1nY^Y^Y^Y^YH`PY[YmWY^YH`PY^YH`PYH`PYL1nYXY^YH`PT¼,Yn.DY]YW9X,e[r6YUVuV9'[bYHJYLQYUVuX6LY6YUVuYUVuYUVuYUVuY6YUVuYeOWQYUVuY XHYMJ?WL[r5WHYLY7wYU[r4XZX [r5Y-=GYi [r5Ye\Y9sXZpXZpXZpXUh̛YMXWY6Y7wVh[r5YcVuXWXWYY7wXÌYU Yg.U+YJYUSXZpXZpYmW[XZpXWYYeeY6X}Yee[r5XXY6 Y6XXXYYVYJXXDsY7wYYYYXU+WkY]K$Y9sXEaYMY@4FX~WYQxX~WXKXRMLXZpX[r5YUVuY>_Y&Y` Y̵YnrY6Y7wYUVuY7wXYUVuYR@YLBYUVuXYUVuY7wXX+xYUVuYelVY`L"[r4YV{YV{YV{YmOpYV{YV{YV{YV{YV{YelVYV{[r5YC)YC)YIMYC)Ya YIMY6X{MY W)Y [r5Yc][r4[r4YU&XXYbXdY^Yd'dY^YJYJY0[r6YgY6Xs Xs U+Y/U+Xx)X}HXX_WnX#YjZX#YC X#YMDYQBYCY^{XyY6U+YMJ?N/FY;"XxWWyYzYeX~<Y6W)V0YJ[bXYAYf%Y;"VU+YTsYIYeY;"Xt#Y7wU+YgYAYAYBWZ 7XRe U+YJYkYnmhXYYJYKöW)YYRLU+W)WR!Y6XfY,YAHV4Y6U+U+U+X`XzW0YYNU+XVXQX1X WgdXa0XXXzXfWvY^X4X^SFhV}Y:WX[r4[r4YKöY;"T#Y;"Yi]XZ U+XoYgYzU&U+Y@X X⎟U+XX?VΛmW)YfQX^[bVlxU+T9S둾YUVuYljU' U+X@Y6XgY;"Y)[r4U+YIYC)W|%8YC)YC)X UdK[r4WòYV8[r4X|YnXrYUX@(VYUYfWلX1YizY>HY5YV8WY9sYHSYYőYHS[r4[r4YKYAi"[r5[r5Yn}[r5Yv[r5Ws_W#[r5X&[WTXSWc@W#Wc@Wc@Wc@Y6Y0yNX)W#X2?W#XXTW#X~WYUW#Wc@Y/gW2[r5XXYOCYOCU+XYU1[r5YLKWc@XWWEpYU2W}W#W#W.Y IYZ7.YAW#Xu\Xu\X!Xu\Xu\X~X~WXu\Xu\X*XyRXˬXu\Xu\XkXu\XëWc@Wc@WiX~W#YkeX[dW#YGW#X~Y<@Xc8W#WñW}[r5XpW#XyqW`)X[oVY0WuY= U+Y6VkY6X;XyyY6U+W#XYPXWYo.Y6W;Y^&Y>YT/XyqYUA/YUVuXX~YfQVOYkeW#YsW]CXyqXyqXX}YWKO[r5YUYHY8d[r5X_XX Xu XOXV$[rH[rH[rA[\V{YkrYvWk'Xl/XvRvkX%HX:T|SWTm[\WX}[b[b[b[bYebV!yTّe[\Y[rA[r6[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB[rB2349b8ece552f850b8575fe3cd47b849a23fa79ac525a27efc7dd190c2f8a39330a60923ec8b6a43fb962859740509097e5f48eb82a42b671cd2d986d883ba4433db3b27f1465d637748010bf269600a766911da9c810d7d7804aae5f62389b159004ff554ac34a8d75b739abd37384a95af194d5f07df426b291412dd0228a87c8ded5d666004c3f01b40db6680c55c4d7da722f9032cec9153efb7f85bc75a18a0b6fff78d899ec20b42786235b1ccaedf87b7148eae7bfb201a292dd6be4afa07d6a5ba4c8a623fbce4e29e4b08e6aac0ec7f338e8bd9276896f3f42e0f118a8cb0437ad6c466553a4f98b69694b44d2753f72d94bfec017e3c348fcc46104fd8122516559e83e323d1cface41c957d3dc86fb8188f54015de59e9b6cc623400bf3c9f891e08852fbcb677d8eb6422095713c2f46639e8e8bf1c701e349424476a7d5a3c17e306ade85611d9976925a5766d2eaeea6c747705ed835cac1d18fe73a734ce831bed1297d0cc8ba4f29cb61d6ead2eaf69ae155c84e2ade2817deadd8fab91d05f4615db36d12033902a8dc6ca1b452a45222e23e3f4b4c33ca9446b2206be039dd378a19b3f7e201f7d247a690345772cc0362f69bb62b5db6715916773f1055d20eae76bb0a4ef1808fd926456ca882b8c149d7d0a902ffaf88bff801f2828f06f2287b07814acd06f67af5675d4eede57642bd8f16d834ffc1db9933321f602a9125b75cf3aebfcf77203909425214bbc6018b692cf58c950f1f5b0b1e7a0537fe6246c80696a88483df9b205e6ac4ad0801d00578553efd0a1c7a052d18e452d39017fa4eaf226f077d05beee032511dc09ad7226dd342b2d3476519f2e7d424586837231b82f5ae4a41ecdf211a593069d1691f1acd06d085643ad1c267afe7b6141bfd10b8c637e8f9416cf5e4cf4681ca7dd936b7867d1bca83c6ff1053fdaf94f05ca663a3462628634197b17cf5420bd2e1a0da51896fe773d972609c3c51102dd627a637f3c8a819f9f2e1acbf44dac594941889d6d0a95d70519e653bc71a865967580eae584b0e3a109ac4831cdfe3451c82af50a825dc53d000040d094e66dc08d2413e6cc21633cb040691316e4ddc3b9bad262ebedb5d2c436e754b98805d6638e5f38893ca5ad509f381327041ec9f218b9d507b93d22836d5a70500ee67468035f38df7fa8f28b8a940cb4e36d01f2aa964eea9f0d8ad1a681928b6199690ed3390de818daf2e0cac935e0c05606e9419d392d1c0d501be29a1aef09b5a32c528311a2b1de11e97b4ae065e2dd0d610698722356427b39267134a85d2625ea9a8779d9a693d7079843aa911dbaad1190f1e63d2e1eb65babaa7fbc5466717f03e5ade148ad942b51b69715cb8e5b01b7065bb1d63bbb52ee83da893619b009090a2688c9f4115f181ac8af562026024c1e2709bc6036f59e5ae1fda477298079d6fb337a17cfe9f0afabe8da5df707ae4fa18a10bfac794637bd7a5ac1209a3edf28beded780aa069904db4faba60fd751339b9ebc1fbfc9ab619c070a2b429660ea7bec3164126839d7a7150425ade64cb17b717731dd2500b343231069c988b152f121f712c3b873c4414b5681e9edffb69fc3a755c47aa7ae8fa4f50bfadde16bd46e6417ad64835deaa2e1b4c8ff4ffebb4c5cf243a062f086b58169be7b4d66c74278f91ce35f87cdab8827d3c7568b578067b83a30f544bed276e2d1deea00d17d7a0fd7e9c5743a0982fc66f19bf3e9c58a625e3d3b1dd5e1effdf7719c19264d8a3d5c086db55088236b73411a5e325fa4efd422e505537ebc2aae6f300f3ab109ee870bf3cacff6f59cf5d8292f6d2d4b24a5bf8196c54e1da1491f7b1f758aad25e702e58faf50659c4a263d319dd0ac69c5b555df816e416b44c5995e623ca0d78ce1d555af9bcd230bdcf211339b81751ccf78b53ce98bd1d2bfd3500e3da2a6dc14140b3205bd028c131434f0dd3f3200604a4338d9c3c5e8299336862dc90252b8e4d7f2b4a0664dc3c3c1b2dfef83cfdd8a8d086b79f110eb5030714fbf12d3d0617c39daca992b42c95944aa042f0611fe5ca5a062d3da1b6e22910b7a800b6cde3f97f88fdb69d43a1acf5182321b26523b9f688ee91fe87dac673174c08cda1a9f44e85cf0a01818b66d7bda2a8e4104ec9467455a955d0500715b16e76b68c751949771f928dbbcf12fec8bf817194bbe78ef03870f10016a7da186fda2fa5c26cc6bedc1da1eabb42e8b2f343a21f5914fdab8bd7f6ae87b6ad6b2f6c0f6554c7dd7a2134d4dc65bc2713e6468af24bb7073e46635bde71fd3c35bc3a4bcd153cd6ce3f2df3b9bc3ce4da2c056fc841299223724afb77c6672c6b7a43f8ecd68795be7308ecb36062388557b75d3e2f04a6644dae6eb542d1787f2da593d641afc6de23eec8b3ff329292e97228f63d5edc9382fbc7c3f8c83ec5785464e67044bdd81dd9cf28a73c8790b2e5aeec8573a107820d3719f9142b4cd4966338bc60580964d1c097bf6a20d550192a11016552991f2717a17957971f62fa5ee378c498dc8355104e1966665814cadb55fab432469242d7ced88b4391dd5dbad5956d61c513e10993b27c77e980b95777306f1ffd00bdc24bc6f6d3782ba4db07f1d57e75c266e88d32c83922ccbb9b1fca0bd0a2dd9c768be4c24471966f8f0abe6a2507d0e14dc14939bf98591afa4d90bda859a1408d10a888212bd60100c370e5c25a96c18d28ee16946f485ef1d11210eb6fb5dbc2cac334f2d104c6996aedfe1e3637be137b8060bc6260cfe2ac557b258ca89caaadc002d34154481117d7d005ccf5da8b14773c440abdacfe2c82290efcf371e6e66ce63a77082e88269600e7f4956f80937a389cd45c6d3d88b486283ee017efa44d7c836894e9f30fe8463fa66c0cc5aeef0dda1af7e2bcfb5f8bd16326128e9bae7d3b4a20ba721dde6be30ad5882e65d3718696a599f6e3208581494e5a913e78766a8c0302bc30c4e0e4fdce63cd10f1c6dd1dcb03a9dec28226cb427dd3b957d0a448044b10b2a3fe51761e748cb0d0b1f887caefc760142686545e500084a28dd722f45d0072d0ebeef46cd0433c9e69935d4c4e75faa570af5b0c32c51c14226cf708c0157e83b8c0144a48981d98dc2c9c40bdefafaeac403ab572f3897843979dea66cb332b2f7a61ad4920368bd76c2f3652698b2493a2b8f95b25202802b55a728607d6cbb975dd7cce2043a2a897ac492c19bbf326047425fdf3882ee7f7f3785f96b6a57039ac994cdca608cb2e0ac4300e2c5078ec038a6a5a9b9686c684b57046753625937e38a1ff4b064d99b2f7ca175e0a37d3f64380ecfa91e1dfb3281df7608473e3bbf11c4f6be489d5acf6cf2cf2641a48db21942c89c663f0c075d8f9ad23354585995d53b9c2675d9f02b56c1c7da377a66b8a7d9586feecf8685cc00d596bf1d1cd2f39a66d974f6a2beb4ac33756e52332546df8235837ab998b09f6015ab03cf0c072a8dbccf9bc63d9d084782b20e7e1117069f0645855b69aeb0f4988be90f66b399503b82d06de3471a741330f2defa33b12ac8fc2c6ea29e4414cbd4b0df856ad527e042534512411ee3a1a18a9d2f25547d80302fe78b5b59564c6f2b20258ce6fff0d77ec040dd09a6fe661b50622e2a965efec2388b3cbe0ba5f04e3f4ceb5f97a8afa061b332d2b92f0eacea9b786cd72bd5b8fdbbfc3e356d88e30d351eedd7c84dbca18ebe10872e7b55b475e8676d3a2d87f37daad5c3fcd08f79cb091f3c985d97058a03774b674298eabe600f93703e9f9683b4f72c304394a21fffe821b82ddf5f74617e809eb1419a35825d14eca090ee67f09fa7e3ea5f462b4a0b0673531d84d45f139d24f979b6523f75c1211a789f902598849c867fdf9c690a4711264b301676ad3861d99f1fd9d4583f2a380016bda54c41faa74bc42144c1bd391ea36d783594ca50b75e5965f8fae1ca1aca0aedfeb9de0cbd71380527036daadff59ec43c6d96225cc37f5d2dcbcad1e9bf66490369a3fccfe962da7ee63cb8693d75f681f332fee87216eaf37c6893ff1850bac9899c2c4c309f4a6b8d2f1d53f608526f5c78e3359717322ab0e47bd145bb1b02e738af3d26df9b5b3c70b985b4162c7d1e42c8e907af2acb01a1312bae1847955460f29c9d6711424148d09f64a49f95883efe0456bd844b21c22c9730104556a2c9b2d49c1c04cf87309c7c8d51a79b0d26f5d9d6d80878c6a02def56b88fb987651bc7f6e52b3ca2e7d4d2589c42098dccb874ca856a5d231bd6c6577151bf2cd0df294505a63949bbb389fc92e32ae7c73ef7c4d4a571a66d3a615663b1bd9569fed84d2c6b5fe43fa461e4719e951b60d8de8288b54f9343eaa5da0c76e8c088238af19630e19abe10237a4ce706e5c5611a1571d950c5ceb26bbfbcd4a9eb9d5179fa59da1f7fff46955582d96652785c2238a947f3d1ecc8ad6d59517ecfcc57e12760a09da23aab67475ba9aa6367852ff9b731b72d60a9fed5e87a2ac6dc189b1056d657e29af20e15e0bc0ee2bc8e15874b5b0049b0782a4d21f0e201362a576bf3f6991fdc2225f39de4ec674b9e8148dcf81c3674a42f75bd2c9836a4e00721ce9d626ff913b30b07343bd37da72d3291c9d30ff2d2e2ea8f34668e8ee2185607d545ad935d336277f07eedb703019771cfaec6fe3802e4e3d330b80f6c501d629b29b6aac25ac0dc808602a0934b81e1c5de678d3fd7a1274e868576b78011cec8081934ea52aea69fc4861c34a48298be1d3651cc37645f0f68c7f1bb91b29961f11be2bb7659ef521c1506dc69eb5047dcbc21ab7ad5ca97e46518dd2b3f4733b172fd168ff126c7d8b72981099f5e2bfac2f0d938a550aedddb0c99704ff461aa8b0419ce3d37b71654a94880853602fb2f9dcd4145fba3a69b4ea2d96ce0638ecee24291b10d4e4610d3cf66e7a053e86bc8191af693c9128416afcaba1c4df5a15331069fbea80e93d7a8c87bacf994673affe19e92018c549b94adaa98a4bb680b4edd121a03273b472ef45967a0c322fc49a31e554088e5c8f6f7791e68a26c620fa75ecaf05bcccea3b53b5e3c323ba0aea17815ded70c5f900b9f2089f2472637fe8860aef3360cf6e84b263cfb0bbc17a90022b359491eaa1301ba35d9dd1c885909e59824f44925ff18e2b6a28dd3bb517dc61b1680db53eb13edda608d5f3073927b3417f69da9e72c4de347cfcb9ecfcef5ff9316a52d1c834151416cbd019c71e6ddbf553d0d13e80bf78303fcbe4420db5095d2f87432e9b8494d65263c7d484ff2b9a5588425ab2c163d3c329a314285c0396649f7fd9215c49072d4cbdee4f1c6611c3f2b649d20da10994a1eb1d12a629fe3843c3eea4a6fe110eb8f2455a6686176b369577a2b74f7c22135445b68339d6fbf354e4f0ebf1304f0418781b098a8711d083ddcc2c7d2df677e598709a30a1eff42ba7dc52808af3e2cad516f2cea7f866df88ac7484b487a0a8052d8a03feab0fa7abe6e69a1b17c87e19de65aceea3e105220d2597a6d30f0889064a4b5f73457b45819b59514305474b4cedad46b4189239cf595b5047160d2e36de96be8a5da65ff7685e64d78d88627b5465eae003318bea85da8fd724932f89b29ba040519451b4a6912700da01f37354b6cae149e1f91628d1e9cdd11b27323cf44ff74793acebf65af017a28a604f4ab8797ca4948c66ecb0c90150322c1b9353817bdb868719c208275351641b171864001271dcb290560b7e7d6a9222c8695daf7d5fcb8e27bba139b430546cf2c22199776d530c1833cca86e19be0ade73db58aeb604b62c58e945bd13606e2610438e34dbfab9fd3a9c5b64c9a0dc19463ee9ed6dae297b4663da95a88ee243494f50a8206d82804225331ceda45f5461eb2118abf1e9750ab81d0fe22309d97684977c1ef7f882710c68239a27474152369ecb1e9c25c4b0451e27e625de8e82e1a26ade96b8c3c09137146ef99eb7c0ebed4bf3dceea48ca17a569aadb1d93e6016dc979f12f975709bf3eb80f50980154c9dcf8484250d9e8e73021f94ec96eca16cd15a592ef259ba4e878cc060c845582bb7ab4abe39693c27881eeb2aca5eafa5a5dbe8276bd7f432307472f87f77bb4220663236dba6283c1a1668b0b1f0d58b4668d957e370ee01899816e7d48088356cf8ffd9ba77e7bf5efa428d5c30d3ad233a37becddfed695b7a5721d0d3dfb861841e623763452fc947dbfcd3f180504f65bb2f8edb58ac1285e43753c369902ac29d536b273abb2ac4421de5ea6d1704cfaef9bf4896c9c5d65dd05f3bb41950bc22992ed8279d3e77665b3eec00e1a38bfe7e1119140625dd4b042e37948f9256fc2b1e910b9bad57e7b778863d5cf63d9d67292cb81248427decbbab9139dd750ab6e2fb353c1fb7654dec7ec5fcc6c1bf750b374d188097018806e9c4315e7bdd1226b7b5029505b692409ad3547ba1f05dccc4669399c3b6cfd6782b7c2bcdd0368ec6aefa94257c6bdbb39658ffed70f99c7a8b8958c62592d2a7132796a46bb9febdb186b1a5275db7435a7386d40a894502fa75aace0f0c094f648a5ba22978f5fe588fa5ca8bad05c0525eb480f2a67611c43ddb9950663ca3cf6ce4c008d6a942978348e79c3d1e692e0569c2e852e66aa2e35c459c9c835e3dffc4d540c651b5c4215e77aac333296f6d0ab48fca2c350f19faba8fea74e4f630ac5fa2b1e8612bffab78dd59bd96714cc9bd8984625c68a9aefbf015b6214e7caff03bb6f8ed8761bb46271d395e1ef154bde82c13e1dff6960990496897aa17ae1d2f543595c2428f2d76dbea25a49168bbd75542125461223f9a00e8c505a39d5afec091a2a82cb42e5bdf3d921e3b6bd2189c2f9c1edd70d3363a19f681b64088d4135e248459f48cdb9f53dfcec714d0fec9c24932a441f2bcd92605003019980164af84a0cbc3360bcd9c318f58502b7b6477267bce2ebbb8c6e2890c3cfa3745152f03ea6ffe67769a4b2d4cb1430f5f3419b52b643b42ded6d1862e3af11ef4abefcf7e1110603bd7505352902c58cd4722be93e6f84a1dce1de802fb7ce642967d8d0f171cdc9cf6e8cef880b5674b5a054dd87d2660b3c0bc2622dae1224aa0af5f61936555309325563b1e7df962f6cedfe769d1e6f99e4edcd1bc85170468445f84bad9fe346ae956a234b958c63a518915c849d1fc05bfd04d0c5a4307cbc018184fa5107d7a4652a6b05c334bb89cb10a4959d8ac70ea1bdc7c9048f1155732f2a8319feffd7c8826ae2feb643f8cd8f818e4e424d2ce6c6578cffdefac435a797ec023003d7f6767309534ed928d9fb9fc7dbb4aacc16215d13c8d0b12c44947b3419869221894104235687eac7fc0d6c9b08d36b0bf8ad3ff453cff7ecb31aa5332c8f8128ab3f80fe5c73c8140a4d6ca21dbd02d2287c8a0898eb34e176e47c29277dee2bea56344c8f0322d5171da4f8679ae8cd0c4e143fe8aa86d2304276358196b2de09a6c5a931aaf95175472d3d797fd6072337e51c503a5e98d74aa3922b1c1620b66153fe7ba7db8d76012d199ba26c68c31ca049267680d4b70690adc70947fe7e8523b7cd946a0171cbe90b28813a04a3bdee21819fd96d5ea7247327df5fe1bd57164a4273b14f0c71fdc6b5e00fbf44cf95442da9edfb61ed7c460805db0ec6a1eb79f2c931420dd7e3c673d8b3d01536356b716747ba93e7740144d417f1fc3b27b6b03132d4f537e59989ea7c52ed999fea6a91df15db45325ded2b3cd632fe2f839de885e5834ab6c2d2c46e9803dc1cdbcf08d30b1dfcb05ce64d472ec9c6610db8a92cd7f90a050e92a5af55da379640896ed8389521db9f513ea716244252f348288bb46d03a3ba39f9e3d50d717b9ac4ccd198831385a4e7d41a4940a070d220aec4232fa6be7da578b4d0e2cee897c32bf608b35f2bc11dfa7aaf37ed8ad6581fd0d2c98fb66984000cf7286e08489de3a809968cf8b3f7f4202513d0b55200d9a560c26be1ea70e308f5bc9b0003615207e41eaf10faccde1fc4a2f014acfff1c5caff6efa3cb536280ffb7873a06484cfbd71378a8ca8dd512aaeb1c2fdf99db9fc9ed516e73bd62c42d99bbdd6903c8e1eb8f06e7a4f3d444bbcf8958b01d0a42b4394a2d1431c21d43eb8ced35c424d6c9d8301e5381b942397b05db1bdcbe7c9fe1a7c7fb47f4977f174d288cd53e0b1e64a99e4d5d6b98c1a1a64f932ff07c8ca9cd988ca7b07621b77f262aaf953b8ffe369c8dbdd48c9257dc2e97d07050393ba4d03c53b9e27c9740e297471990544b6156e04b2d9588500ec5fb12eeee8cab354023e041a939fd47fb334b992a7041fe01bb06b39b426d189820e022bfcf7e69d723f72953d572c3706f4797deeb7e7f2a8f82269b985197034d9de26e6424558ba945a0e94105f8a6d92b4bcdb273ed10d22c3d32fcf90c58a27969f479a7dcff1bb40a5bbcb04ada985acf8f526e2f2d996059af4a664d7e056306c434b94beb6939a4f41cea13efdbd412f3141a11c39536fc08863b70fb67d5c1010ce09352e0f3cf2da512406f19d791cc31809f4def1086aed45b32398cbdaa4c8ce06e23b8ae57324605ac9738b67f3594949d18d61ac80cec8e2b25d783d39de8980535e8c5543fb20a32384dfa8fa23b92101a8bd0f247206dcc35ea11a8ea8aa496d5672b12e047f3badd68f3725fe8dcd0b539a634682d2eefea2a487d923bcdbfa99cef831a41245b8b68a2fd91f208bf55d2da29d8edfda5951b50dfab71694e0fc14fd8ff897ee22aedce0f1827f1736afbc3de613241cbde67897c20fbf0ea13267e2af68395c574fafa4158192578264286446a81498804b32ced5286f45f123e539aa7e2e747a4014b56812f593e6cea4e82640d4f39fcb5db29f3d68ab953a29c07ae4df7dd17f89c232a2f4d45174d2c513716a515b4a17c909ee1094bab520ef380924915fc24257270564c746990b6fc813b5f0d90fb9366d468c12184706a54dd9e32158bf58d98205a1cff949bb2660527dcf846153355659fe635c8c581b9d644a59f60c7594b43649130f147c75f03d196fd660dde081a5703f91d68b7b6911e387161a2d9d554cf0c53f7701a8355640522d75b56a6dd9cdd8fb3abf2235ba59749478b0fe4f95f1fa733a6f3bcdab9dd9ae40427a2fcd608ac232a5d16b911e0571739675b6177350721f874db113739f803b3d54e1c93ea75ef8e9422be2b08b02f35329aa6be9329a415a24d3b02bdcc925bdc0757bbcc0f9a0ea9a5a652540d5de8fe5189afc6c800f6398681b07969135074440768aed3103dca4bb566cc290cf0d786f1e9b7724cd6c6e3ca0ff835bdd51ee376a5d2c7e4b45866d4a0bb45b1307c332fc417586a081af268d6cdaefa5c708c02b9d9fc7e59b7254492f0012da9159f16f99da49f21ae2cba166a35c79318889bc9fc2b72aa94a6e7a6cf8661e7bf44eefaf7e3c233f54e3208354937caba1903c024211a465e6e92cd1ac5af36e9c79d6bf957747a9a638ff52aa69721a08ebbecede30f34098ee18dda15f35f6132bced9baa4c2a9d30ac36a62f77a1d59af7a3ed19db424266cec070e998a9c3dcfed1d59f1af24b9f1c5610e8bcbc47be4ec4b508d1cbedf2fca2462e303c17615a65c141bc11c7d13b8aa8bc021cdbe08f05460dfa17ffb89d7b95b633d43ccdd0af7ad17d0204ebf27f0faa7eac0c87f3aaa746b222f238c712270d63b41e78783296e455bf07d7f45ec5ba120437b83d54c00421e71c1f6ffeba28024525e3f9dfac5fe3318a76b6e8707deff262d1379442fb88ed919b403453711ae64f164a73e44fec2987dc5350b0b906fbf2575dda43544ace95d2766f51864b3d80906c899fa07cf3d3efcbdb3e62b3edf254466bc54182a0e6f6ebba591f3d48648a567a10a38a541850af7dcfe3446b33abc05b9291dd0c9bd2517297ffcded260e0565939a86741725a799906ebe7ce1f07c62ac8763dd7c6ab891c4058920fe8e2febe32b7a1d31fb83c24eeb93ff194372e7c03324d74efd3baa7caeaa6ea953f5e7b5c96a3bfeffe91bae8797ac8a3ad21cdc509020cbf00146d5b554b9fc8e9be058deb4708b8dec0008bead27403accd736b1d96585f8e9ad3d6cae8b8f0eb2127de751a801e9f68d8f1581d2baa6646591439f5039a0b6e091ab6cd3a27e2931ef89cb083e354f68feebf7e4bc0d794cda639766e9c4a09aabf313e825e448a27e92dd5a07edd84193fe6f52fc9be1d52435205f407ae362a55cb3f6634ffc8652ea7efc1608e41e672bd686deb9347e50d1f1cb98e9a0e83efa12a22c57db60c6019fc63f62d48753c4b3ddc87fd04403847c7f5b44a76546c825721d50199860651e13896017382fc64383f2a3568a16e7e36017089ebeec6135daa6b716877c29187f8d26e359a1922e368ff367f5c51b189bcb67682ef4f8a240079326c6686b7b8e23c7427264a346256f965794ea5e77d63511251cec8b80659fe7c5de3bbb553618e428305f42e6c18fbf76e1987b2411b17fec2b865e2ab2750de5dc4d1259d6ce2628b982c0f13b99a3ce3ab2bf05ae1fd531235f5d7b3e6e448a805df4c3991ca7b49114f3d9c7660692967ec283bd1ab0a8e4ec960c4c334ebfc5498d1248403cd690aad6ad4a5b620f1da42e4aba947a02bb85a92ba2a0c15f39242ef07d4be2c92555822580d245db09c74f507b6448bf60a4be6d80af01c62e771cca1b5d3986ecb069414737a9a1abc7c54757b9dc6038f09824d3e25ec6086b3264e5b51a280587f75bd00f4742e0c9714f9412594292820e66656ecacd539411f1b99659e515b714bef12506e816de1a73c4289c7a19c9cb666e2de6b3bcb2c7766c4a76d4d9dbcb9117233e432a638f0c5ee6e5a5970ece5950bd84bbd45ef4f438e3d34e7e0854d54feee52f22a248dd524b7abc1ae0f8869c120def8fcc22b0623637c8cea7cd6a900b7fc1fe3e6ac2414f72c78c358b0e04d9ff251d79f8790768a4294ee702b69bb316169c4ba892133807c176a38d259bedb5983f309d0e9f3d4dafff02bb4081cb93391847e8b02a27a2bd7b5f8f98f34810063a27fd14cd9506f32479060c5d548c864cd476c95ae5b0be25a3177450cc763c93d38501ea04f683d805b1b6dd5735b78a0b2fa944743fab9edf59a2630abfdb35de9936ff62a012fe199ec0a9693057f125f1e4e3d62efc437f5c7ed07b3da3ba0f4344936b716226cb3558e60adfbe843a95899ef857e88e64978c6966b4504cf06f87d89d43eb69712d1aadff2810039ee394063da4765a3dea2b96deb76236e26c147b8571f49eb0b09d49b71a16dffa62d8f764857d74609c1f24329f6cc1996d6594aad5a8e94f483302a7dcc95928955d0649126b4cb613f66bc4fad0c864f75797f18f8965fe24a167c1afc37435455439af2a1ef6d8c4be34597d7d9ee682a8369d9a58b2ea1b12b940840924a71e31eae11294bee3d06724a90a034310b6dd077db41bf43acf29709acc05106fcad36eb92e458461d3066dbf743343dea8a020add2f407f9ba393a2d517040296a6ff4310a06a030f8fbbda5983a8e4eb511821516adad5f2506f3ee0a95c0fec34732eb7bac16d2b2d0f88501f1511aa875a207a2ac64fe898ccc4f9720f0abc01dfc9f3a52cc10d7af805da5524732168020fd9cab5b7790246c0940cc86a3513cf818f787fe71eee3b40b779f611ecab2949f55ea446ae79bc4911e167694798a2688c88eedab8d89573d7f766248b65b1bb3ad3ddbfcd4711f1e41b929f3fccc9aabc781e71dd67b827f598f2476aa3586d3f12a9395ef9d1d93c958df38d67d8430d9277f5c38385da9f827519118c000c416b413825f36cdef06f17973a08f895c613b3491587a463218e041a686fd8789eba8cf8edfff2042ec60fa24f8b179c03f662767c848e5e556208d401daa1235d953ecb8f270b6c4dabdc5600ec2a59c96fd5c02cf90c745d36dda19ae6576ae7a0bbc077ab7d88cf92d012749c5fa545d3f8e4670629b77aa2efff9dde8a126090243f610a68efdb0e1310fa2882f97696cc48133303b54b42800fa9045fb91251314361f490ad23f74a9618809968ec43b6856ef876d0fe9feda59fbc86a203f8d4b00b2336f6dcd4b58b4cccd5d2a48c6a07157897b0dc3968f19cb550a64ec5a4d8703057e223ab7ff1a408cc3e1220faa2c75352b325c3b352dfebf609e93268439c479cdb35ce2ec0238131ebb962c0c7ec9322151263b2e2659f3e82f856c102ed015122b8c94023b1dd5320f328cdcc1688de9dff9b075f2e46dac2598ba98f3efc04f4334415cc5a8f4da30a68ceb4b9e7a9dc06a250444571551753943dee2dfe93e9695df31f7bd8927c1bca4cd9f6a6207f29a19e4daa4deb929dd2d49aface6438b0d4f772e14776b3c2b75f6578de585445c002a8a6a19d5c039d235843deb53169c62cee789d9701d140958b0938e713c634685d47ce33d79d451b899619deaee8c8f6322859cc2ca6a42eac30dbfac902c8a2379f43bc51c2ac2e3c559a991da5394c4a53a16ed9e58003b868060cfc464eeefee11110d6b172a8ffcdd50d4bc91bbd6db48651e99c00d6195359fe660e3c8ecf171352042f8bbfef1b14452cdcc7f49288b650a60609af6cdc67869c0059ba462ee589d426156631e38e499ab438d6cd59ac015d2a679eee29c707c647a190ff9b3008ff9891c9ca3f6324d22722db48f8c70840311fa03ecb5e0391a6f5ff38048b724d718b3eb32cd275bd04ae14f271ad0d485364625a2a7b773990139729e014bd5f0f26d7ecd21fe5f188066cf462f0c4cf3c09b9add16afce7f4d45455459d390c8497a26599af54781c7e4cbe3c914fcd29bfd81a484c04525ec426f2aa13705d647706cd38a47281c1a2f2353d40012e4dc4b58d89b7f0488fe91417ab1ff4f6c1704c6f6539bc5312a2b4b4067a39438309865b5aab0237d5bc96ce2b04fc96bac0a5c51208433cfc112d0365c47227c397cf225f60a43d8092b05105d53ee37a99d31d4072ea296b280bda4ac31b3a31feb682745935331c3e28dac468ce5373bca1f2b138f95441180e4bbb900fc206d1fdb23b8c4c3c17c5f66355d1ec10175be5ef23df9c1ac21db8833029db197dd6a9df003bc9905f2127233a688975c0e3fba342f716169643ed4585c4ae78efc356bda16236b420d3551e3aaebcaf68aedbc20581bc3c28406b623b357218ec6d57d041dc7b8380e78268796e27ede4f2151e12e016f0db595d6b6afb0abe3dba792d8f3d7c297da267f34ef0c9e98dc61f090e1e73916726e5a2b1462d7c20de1cff8dd49e1702b3517e829edb744e4c002406abe1918aeeecc72998dccf1ee5671ce92e3a60fca9d17d51afd4b6ffced7c7fbb09d7408f35494a6721d29ad21f41a4876ec7895c04b663cc374a6e68d925d6cf7b0239fc744394d18aeb6f14d81cd0f04970ef9042448c7f67200ae090b1a7079b9c387419f41fb46bb9623fe63ce6082612f7c3ed1e98ede183edfba08da20c6b78bc1c0a902f05c508eb4fc9f839619f3a8045489fb85a70b76be8a95d9c91b8227188106729a2b2e0871e6e703a9e5d2db438fd0b8025bca73fc9e8332525c1045194a187d2c62214b1b326393b807e0fd5cf10b0c69e2df87a419337019c54c592b255e8f7847608666d89dc6feaf2169edc3586ab267ea3f4e1a318199af5b490dc9a17b93c78eb6a199de6356ab054c89f596f475b8ffe8f395fdb0709ef6d66e91a170dd91bb20a282959190467cda53fed7312966cb7d1ba7cb59a4b465cf991f68446b45b020eea2069bc9c17a19f989655f81a0b7c7b6662b1b0bd8dff918427d2e78f59f980fafb5bd026b3cd5f505a2fdca4150ad694ef6f72f6174ba84db7b48bda41dee9dd64f53b93431328f98f1178cea1ee2b9945f25c6a333cd0f0c6de5c6dac7688121e6733364ca27816a7def0ebe3a078be87657d5eaa2e8600cc1b9c4440576cd1274c9f45132a479648e950b4374f49451d300c43f1b2694cf46e89149363bd004d0b5e1cf16a0423287e713fc0c7c55d90e31ad9b994a035738de248657c507915934a5cc47056fdd1721a666620c40a3437319694e56748b0c615b2253dcbdb8e0e2a0f74f7aa3321f07dc02e732d09250f1f9a0143875d3172771b9fafbec99657706cf4aec7f096d93e1cd985f44ab3e5cfd68454bca86844c3b134244ed966e3d121760e2720acfe684cdc8836990ca074ae78cfd24ea14ffcdd83774390cf4a4a02fcdc823a2641e67709cd864f513852c9c7e828c6e66adf11441ff479bfc6b8ccd48842d85ce2cb2e14b0c2686bc4942c93d6c180ad0fc05e864b5dfb0905dbe1046763a7471f4a1acf41427c62ee3d5f43de216efb8777a16923a06b0f3e62149a4facf269958194dcb9a067571b6792d121b5e60d037eb91de56a19001346ed1ade29b325110b7a9b32b3a63d59ad65202a17ba73e2611269c55de7e165cae88b92663af7348bc1c40b322032a49ca2c4ed5a4470cd36aff07ebe078a89275b01ea732ff3928427bafc03350f68a6fbbcd6771df99eae9d1516f55b48d907d9a92066694607603279452f119951b5000342e4b2c8cbb4097b924e43dd9b8191c5ab0cf35de5833f0f8fc1be3dbe1337b14c0354196a3fa3c4db9dd17deace71fbe87a4b343a8ad2dd0bc7d0953497e006674cfbdb4b1181fb6e4ffc117e8f4f29862fcf0ea393e201f6978481c9ebb70714d6599fa48454100299e1ffe20673b202202509f09aad1a48c350fe09d7ab6f2e1fba1fd8bdea5290d9eaa48d9d5d414632295b7841af17fd0e715dc8f1812ea58cc677f7eb8c6fae01def5bc0b04fc1de8f9a3a0d8bcb92857e7fca73363eaa6d7ca16212e469fb01d1ecfdd55db82ff27e8792950525599ba89be8d03d1557d5e4060be5da04b095e769a7261edacdf8ae84b2b7cdc02c3db8f2e0db98cbe1328fd65fe9544d46ba84e829b664fd2172513cfd477a91b396b77f7d22b2d38460851a8fc1f8f045051da6c998aaa62e90ae3cd966005c2f0f60b465acb43829fb076a36a0b7cf617d6daaa5f73e4e9b3ce1daef22e83b9246d1f903eced5b259759ef91a39e147df9b4fdc441be3cc39658a7d6b6f4543cc9394c7171d1ab56f8bc19c68b4c5c236faa28c59ce0634f227dd1c03ac8ee997407d52f9506f6c021383db04edc90db8220f3470b8a6d197f7b6f89e08619e3bb39ccee0d84a51f8c6e885ace4c95aee549081890ce0e60358fc07bfd3e372db01c3fb0cf913837c3a6a7288a7f1943cbb67713fb9e7b31961edab18ded3d47b4f95bb5fe9be3a581c8a070f0b72d18975017e5a158dcd8e0fd9149f1578b6c8517600371b6810215940ede85bd798ca34a287ecb6f5464d6e38eadd48ba078622745600afcffe37c778fbe46e795ea35f562d4756156075bf1bb05a2138844d61d6d8eacbbcc43d060e96a3d3d60a37f8014a913d5fb8dd3a1ef52f60cce8b7470a32a3f0660b4af682c6c41b4a96185d34d53b73a218ab80296414b23d1562575b94713356cdc610220c5db1c92c765e13b2a6ee6c8eb4eedee4b4e728aa662464532fe83ae2e7858147a03eaa8262fc908285eba016e4aa82e2faeaddb42d4b3118be83f81539e8ac224553b4bebe442cdb60bb8e8c85708d1d3aaf17cd5b530bd617a01cf437364468ea3e87dffe730d9d3d9b68476224b796c1bba123a5135a71cbe1475a123a36f6510123d06798123182dfd7c6640e621fa42ef0b26f8a549dfe9536dded3813bf387746cd0c7bd7f5201f486547fcefdb45c2fa88a482ca841c0cc7d86173ba6ef9ca17ba59c04c64d85242c2e94637604439a843d9cbf5e43c2f8d69d86dd4d68a7b053ff87f91903875999c2374ed64b2db26e727bea40f6818a1ed700629ec87b6fc421ca72fcec882c0f03442a98333cd1c267a13545f8f5f3f7911966cf240cb8f484b4ea2a62ca0b8d2af9e20761de317c3cf0a9850951fc09609cb72dd22ad10a1248bd5ab029cc7cbf8c6ea6c84a17b3e5961ae4eee5839905835e9eeebcc337b2564693cd669e6b735a879f5cc43fe00651fad7ea625e84cf1d127c5edeaa53577e12a97a10539f2d551763a5051675f505bd0a3af4948049fc54faaa8994fae4327997523c9ac2a068d12b03b3a24a03a67f01a3ed89627a77a74429351f2250ac77163e926514a7885de7691556ea8a20cc41fcc796cd76a9099600a2ea3085193d202d50d21e073cd4d7a27b213dd46081efc46e7d25b72efc4ca6564ef61de572d2c1c2c1a7b0a7baeda2e15db8c5213b18c1ce835c8d18ddcc06b1c785e4f18bfbc7283be423130d23c4c80218a05ad4fcf0ec7ae611db3848e684153854cd3e5d5910123059cddfe2c7d488a0e13dfcad751e49ae31c2ca2abbb79196916004ced648633d6871ee6994808ca9fe1bf64caa31a4da9d7000f0956b53e0753d0242c4845aa1f96862e9e3f5b8b59ee8d2f3a4fc77e1ea25178ae0d9710213d1b483c47b3bb2b21ecfe0b261cce3e4a5194e4c7154fc7779647fad3a5dbab8b7ec11c95592af1a9c8af0f1b913883564cb91a0411284cf679d6a9dac5caeee7a69c54c43cdad06e5312b73a26561e0857ed4234d208863b1d9222f27d81b97d29c1769499bf061f37ba696d2698d75123a5b7f805b60bb920dff3fc92545268b4ca478347c7898276f941876e2a3f9aaf7c1d95ba42b9aabe6f74a8eb7d8df0738d4200a46e767c7c4b4f60c79bedd7b468848e95c7618a3b2a0079f6c8aca1d9b66c230d7e4c68c0275e52013a07a3e355a642024d3b81937e7d4040ead25703ca30bac009657213fa994c8a2053365cd98265d07c3d777fd7214775026a2adff26e6e0218cb21d8269bd444678ae6326fe131d5c238d22abb08be2662696433f09a684ad83375d7b52538e633cef87904db66dd8801be3d11dbf6af29b11980964732346e7763de60bd462fc9793eec33f4bd0b9374466763a3d4344e454d3c76442f8fd47f051a1931758c4a4cd8a336fdfe19910179288d0b7953fd27d490f36df833d9d332a8a4cc55bff4341071376c6bec69e85080cdae1c24e3dc6ef698df026aa3031df93260d49638279f6f4570c6a4d6081b197f1316cd4634d518ccaaf2c798efaf18eaed4161100c61b4786f8b6b3a8ea70f5601d3ac1c2d54511dbc828873b67b3e3f58390547e068c10f6cbc5b18e89a9040d2cbe1bab7d6da079ae570d309bce55a7e85c6002e85240ffa0c16d9fad05b97d27fec5f514796189dc303d4e11120619805084d6bc3d42be543768636ebe8923c974ff88fb7f956b1fcd2fee0b0461bc3693688b2c7145f2c84cd616f08c535cf5fe567ce602263529759488b0c5bac5c37ad5ae8d9517b330ffda0d00a4950bfdb2fac25b65feb9040cd56e3b9f4cad7c2c8832ef04e62dbc9feb627160b336b643bd251dff12ee7285cc978f2ef65ad67bbf291bdc3378c0241962cc78052bcea9274b27ec4469a8fe543fa3fdbaa83e01a77ca931d28226aef26fcdeee03f21e9f62215f4dda47e4908a3d8528e2adbcf6d70cd7a90a6d40c5d3d89fd85050e90c9027bde13285f89e10f2a244f55ccf87305d3488166d9203d65615f34e9a4a2cc49bee8e11c60a8675fb5424cd8fd0d280aa812866b22261570d8ba443f4bcff69826c9fc6b0dc628e66b492d2cc006befcf26ad34556d1bf663010b1457bb3aa6cea431ba8b725065b73bdc3e869957737a7586845e7d889ce34c5f6c8b9d90c045050c989396eee5926aa5bb632b714327ab3ca499435a3f433fc37d36c841b374ee4d3b43b7cc33a2609871c298b2785f970c6575f16c6053c97374171107426d6cc068075b77d346464235c7c14841a085830461da7ffb727f7c806028ed6696e7248ab845b52ddfc7fa323e48d4996db8c24deb291c4498f715bd1f1c3e23abfcd3d1ca6ade79377a5a23f13ed5a12bfbe72d8a0074a8ee21283219c3482411da8dd6d3de2cdda05ed62fbc976d094e23897b8a2b5996c67375d41b6e2842e31d0600efab231ca4e4ae19c8597a6d4361daaacd51c17c2b14749edf25f75795ce1bbc72ae1e969ea3ce0db690afb70596d65efa02d43b046f7d3fbe826c20c4f97f0c5404b67946b318c77e18a87b10514315ac0f9427a41eda14e0c7618e444e709c561d0621ec1ecd4e9517f34cdd0cdcc0d57f5e04d7569ec08c6ecb6b12bddc7a1816eb403c28bf7789390c5e8bf257d27131cb819d436d092cc2ed1da26a99bc38e73ff447fdd0784e59359369624bb133b9a4d184104c3d578fa6555ad2a75d666e72289cf9969068139b00f9f4d83055362d2c84f938338c7504655649b1a53563d89e553af511656411239c7c098b0990787a60d14de7f0ac9bb07fba3d012c445e601c0f376a05f9b3aa89e6fa7cfb68e4b323d5a6bf5f35b295afce4d6424a7678b93ef66d6b0f5a132282654c48f0caa676e548112d2de80ac851e686bd8d623a0ec12d3d00428dd7db88ddc06e8eab6af0065753cf15baa88c4959d21705b3ae706028f568ab437d1f4f47cc2748027105e7364f92b92da09abb2c720d2733c1f2799556a62651f41e1799f24ecb6240a572169c301bbcaa6cf4383fafcf6fb943b1dbc33485011f1abb185a62169b2619e53bb2611d53b51c1a23c27da0732d235c0a752c58e605bd32ea4afa3d89fa99b4769ce28e1eb70db04491db31cb3798d685a819782ea245ddcd9760cb471de97536be27c64f7ef5abc0adc9ce90dbb791be8bd9ea69357227546c15152beaf527924471d9952c69269bb5c98946547bb0a3c4635193cc221899989a044afcb716ff803b662bf31130a20879ee59045a9cc3248750f2503a9a507c5746609d104912d4841dc521477f8b38b0fa5eb3cae144b7bf42b6a9f41990a4262947f77e1786bc1cff25437279dd2c149138a5504132f2bc236f0008e299bcd1ee5384745463c9ac577ee53dfff55ca75f07cc8d6216b4bb022faafd6d1a32885f181253a27161b27777169b0f9659680fb7dafa887d0f97593dacbc71394ee5482afd89f9e408821ecd5e11432e2c069ba7bfc2dd81bf4c7d4c69e0a97d9e3a12b1a7928aaa43682f9b6fd79ccf98c3f757641d7fa5c7392bb2f4d69ad3314752a458e487c43053ff62d33f3ca83e527926602fa1f083f56b3f50d4b933a2e695524360a07950e7a1cc5af6986b977bfc09facabeabb23d7bd308f5ef99420b52d2832c045332406203c09eda1568e71c683fc12753deae29695c2958b8853a42f124c079f9b1217f95921c2821526a6f3521f2e08a28f4b0bd64d91bfc9a3ae03068fffead5cd9b4a31b38f5240e9f627933c4387fb7d958b77dd39262a0e9fef822aa7b1078190f5c1255959747787d675198168644df41f36845c883ca1482cb11d0bd1eb9f688b8e129f81d35ba6411750e5e8807394f857575bdf6a351132c42a0890ed88dde4b2f9f7e317bae665e95af6c227cdd40b1d1180137663222d8a06ac0a3d844a842907851af37c93463e4ff1aa7e2db1edb7ff892f787e7d2f96927202df6b1b423ea9a7d679506c6f5e2980380beb621c364bde6b48de2c7868ecf21ec0c72ebea61324054104e25a153955b03b3c9cfe002a7a81696dd22efaa8f3b993d747770e60b3cf553dc4a6a12f037b5da406b7ba32acda84d166fc07f0964dc2837738f6f0097c644930c83a42abbe9dbcbfab39a4df937e2c33c17bfc12629ef0d78641497421c1f12c1c0a2fee63e3bf4a02dfcb0e95ac1f4f369cba8f8220dac2f1b26deb0cb0daf7325e97294a831da607a46ad5ffbd508399391df93e2dad1baf989ad18474dcb419a8ab23d3af8e433125d58ccbc35a9701c9fe07e5c6800e63a16cd26eb6fbb0bb585e5b81d055d711d4d234c392cc1eaeb0db9c2a9bb34b412cbd48186e7f7dff0ce654ffdfd56ab9849e92c87ef50ebcddb80caf1b22f0cf5028861525046d137f0db60278ede360e2cf4054863d2a1b13bc09c6a2b7c60cb4bb17d533fa1fcb60df6508f12a51689e1ad0cdf6eaf465ab951db27d784ce4d4d9b0ef09385c3eb7658b44036b1f76c8743fa0bbd5c9d3f3ca62fa005a37528c4898cf5cb4c36744dbe714cc0a61aa3be761a724707b5c21be031639d2bd1969ced7a2fd67a9bf51638f6a053d2c2ce89c670133e4dacd23f2e53eb0df26a207e8ee91084f8bcd8dfd07e8c81341a95afa49976da70382e6da54c3300f29382d5dca8402033ced0ec770938294b56f6fd420fa75a0a9909b2c5cf3e1aff0298956370ad9ad87f08f5dd7d9cddef60b1ac361cd48dc9de644fa0a1400a2668ee48330d2e6971e53196b2a23c3ea47867f7af1661dabb752a51cfb97e11e90b6788d44f35e254d250c058ca5827a420b244aede1aaa85aa93b15bc7a78d6f546a5b96aed2a2272209f4d9171d4b8c7d3369e0eacc4a7d29198f52098aff3b26818a91719d000aea6ba74a7b91555f7adcdc871ed22c6d7da8dd752f0b14bc8739b28df7b30fd7a7d8cfb6a4ad38c13287dc114811554f981497fce18087c0557f05a66d7f63b67a8503fc8381d7a282f6650a41be86a6c552323112e0e2e4fd98a91f5599380027cb8a4b8b8df750268d67b92daf1b92ca96744432859eca6d24de757ce4c89f8a712d620e84ba7605ba2c075fb80e1ff4be79cb44e1c2d9a8beda80f61a6962ba584f4e029e61316b72c545c311f31f2f7cb8ae08e4f2200b70e7b1a9381a268a82cacced61b841e72b3ebc4354c7b08964392e6304d1b5cf246cd7e4d05660bb6bed7b11cd5f9b056404beffd5f6dd2d1980cf1dbdb0af227b1d99c6b29d8884fce815ec0e6471f4bd7902ed4ca4b2576cd544367776618a63f8959b7322160a40d671b9d122a261660e83d0e8aa69f31920bfa41d9ec50c4dc5f69185850b95ea174c71417920bb729332ea2b365cd6c9709981c90dfc645779a4c7dfe2b433b9c747533028d30659b3db0862f1ab5c75ebec35955a983daae78ebd371535736b1e0d9248b494dcb7f8a0932014bac6823a7752d0f048541f7895136c64684b86f1265ae4b7e2214568452904dea06245a07b68a8ebe43981228038aa153890a44e832383bee95d190c67c96bed22453ae2172da0363110bfe8cd74ea742b1dbc0721058834844e0d7203d2683eb82d23782bb41c6a78189c49b9423d3c7407964733061f7a2091c0f5b1773f0a224c48ea76504c5b1b9f444e5f0bc58714765a72a13cd0b779a9d6276a1b0dd71b889d286b3fcfbb82ea017fa7159b8ca9a5adec6f664057ebed3a319fdb966cf4afcb5e24681c8d93c5624654b576a5532adca067d7742477c6d6a09ddd2094a294ccb0fceb222ec72a92f605702f834c9af476f93c9333047241232ed55bb619df80b5b7cfaf90d13c7ab7ecf91f4c2033f874fbaf522014547b163ba228a234aba40e7d2bd3d3a8852cb86caea87a3e47536aeab1ce2477d87ad1b3891a65e97f3bac3e83af0db222e0df65e1c018e4141463a9c1901fb0c118b466cbbdb2cab45c9d9c79d205648e25fe2aba901da8b9846638d8dbf27b0d798c6b7e54fbb7d890c3f80a2b8d0f30b54bd0f6e4d34ee14a2565779bc1064dfd262cf6c25f42b22a1ecda9eb0e07f1c1a14b8eedb060b83c8d68203f1ba4008680d617e2a1289a1e5c7f7aa50ee7bbd465ca7d7b0bed702d6cceadea3c0afd93e912d5b5cd45b1f0524002f5dba6f93521dd5ed5328be25de7b0eaff60400026e5b6e10ca56e439b4d5cc98da68262045bea093a910bcb76ac4a35ba866e0f638790bd36d5f8ad0c44b0941d28fa09e4ca7d8350306e7a35874fda636259f0e9ac2c293af76e8cd31c645aa875453808b703397798b77427c94c75ad41826a66cddb656dd5b09a9f5e665dbb8f7e578bd526a11a6264fc4d717cb4189dd94a835579ea41bfd1125afe6b3040bc82782dc8706ad6741e65ac2221a17e2aa7742e464f530ecd6e7e7d2728b1adc0b4435e11b0e034dcda5141386431f3988709c82d5515118774be192489718955e3bab51a71faa65f850d29d35069b5bae21251d56e5120ceaea6fcbd4922c71e8425b16eacb373c78bbaada46ed845bc04937bbc628e76183cc7e1483e723880b40fb9fd9dbf59658745350f59219ddf40e6de2eac89e072d357c735c895aa4bda4f38b29a0d60b686ed7cb570d998f9953b30eb132e7b40ae4505d25ea482e45c3e0b3c85ec78d42ecc263c3f4f90a94d47c3569e9468c518588495086aba61a993bface1077c95b29dc183dd8471ad948e96961da9c1d45fcb7d5900ceaaefc344a6e8bccfc41525565d6cf84a6f000b8b04022155c86d38a634664b4709527104ae78a0b1cdb4f6d5678e4c85c7c05b373053d95c42c74bd46a175ada540b95398cefc95a73d3d8c1644bb4dc7bfd8178fffc91d5df56bd1b8b46cc8a43db8d6b1675400deb4025480427cbc0a8d3492c8a82ad21f2e2b2cae4b9bafb257063878ab2016c5dc40d6cada2693b2b2b799ca240fafcaea437fb8e368945315c304e500c4c8cda21e7a0719f6cc0a7f49a945a8ea4e464c3a54b4fd44cf572986906cd8baf86abfa5bf1a544b1a2f173d33026add23e5e5ca097ea400ca97417dcd548fdea00e577e2085ac725e504646bd8f4fc4a6b7710ec08dbdcf488b6f6ee937bcee9a23291d857f75e4c6c2e355b93407956e63cfefd4096bbbc689d8ca7fc06197cd98310799f28b38a874df8a13e48f64f6f6a99d747e383773b085c28f050ee797f6b945364341bc34d2173b2b8e6ada296614d8524b917afacbc2665315d49ff1af453777b2abb2642340e33dd1c07ffedf5e70a1a788f4c334cafdad29447a2a1769f7883d13c69f1b69e3878271a74391ca52e4d4c2c8ed2877f7d52644053067a4f265ee5eea0f8906abecbd3a307333d54988fdd116a01d69b5d806a38168826ef57964fa94e7f6bbf11851fac73e385106da170199dfa810ce1b5b2f4fad816ee1caad886263c6cefbc84559179786729f1e6074efaf509a0b0ea5a72a04f92172bd2139d1bfd58cc13e8217df209304b72069711243828ed3afd263ccbe74d8f44ded1d39c78ff9dad3c06c3d814599f5eb223f75ce3a7ae8bc37d8f451033155b22714afa0cd4db9a6f111ef7dece62acb103e11cac366036c68513e3772029e3515dcd6f8e9a0d8033f083e4808592073a5a71eee96424022495e897f9d82cd175b8a4534c00bc8fda0ef8b0d733b8cd52ad33d0ac33316e97e31728f52e91c2c12f039eb2a2b343c112c41a71e8b87fb3959179ae0451c05fed9162adc571f41b4bc39c6c5ce9908af7e9eb4530fd32b1be2f279fde500b27c766f3c512b75e6832ea74afa44d7820127d011194e95d989b478bc411db6608b22f2c1792603c446046c26d52f5b26f8b7f0cdc1cacf721cd5b000fb400d60611b3ded8c574ac7cabcf2ba5386cad9c57c90fa775880efad05b64477071d0af7f1244a8a4e553f06a4f7b3087990e4041198691c9437d988ad046f296437348f0fcb0a13d081c8131c13d74837f525201b0be7d2388df746081282b5792310f56a48f61f21c8bcbd8365ac77457190326afdb79fb3f81abf9a3ef29349f00c7a6995fc136662e0e004c14c4dd0d52c666f4ebedc3476441d22fc15331f01082afb28a88cc472102ca4f2642ba6f20cda94465731b2452f58d358f90b90d1f5e28c3e86ae8e2e92f9a02d1ef8b097795186e1327d34517630d719027915fb098e4e811e37112833714d3c97f4b1e40eb2b557a169515486ee11c0667005d8e0569d42be52790e867b3d9e36c2360b9a571cd532be75cb7de592b0e1bec2d1e39e4e42fd522367c42c5f4b370288fe94944b3195364a4eb20a7e7f3bd5a3ec567a8e1bdcd44ffdf21b33ad9eb3a0d9763ecccce2f0801dd0e187e978e5828c1bdcc02822c72711bb956011e4fb41f5187a978c14556d9cdfe303d8d82dd2567c1ad007cb61e1a2f778ca0cecad1be9d8c2080ef8c0f31beb99a4d71d39b26ffbc0b8837555699ca8af8cd07245a342c6406b116c64143445958b334125f30bbb1fd8e306a50a0fb8356a44fc3a61ab39a08cdba6e253fe679760ab42093bcfb9f67c3cb2b2585ce37ce2e17ceaedff5c212467eb8d726bbef643f27824167712d79803367095da06fd7a4a7b3d8950395336b0168ab93c8d94dfccdfbc065642dd4486aa6a4e2dd55fbfefa45e8960cf039cb3d1a5387413395fef629935006e20d10d6c68690984306fafa7f6d746249011211f95a8ee6831d6aa349d6bdc4d021badad17b26b47eb4741ad505d0445e11553d9efdb0460ffecb1e0b232f45782b5ff0be9ce96ffe44616b65f23b7915f515e95587cd3bb3745826409f2f322a3c4c9b691a722cf43cfce70a33cab993c1494b2d32fba392f2f30167344ac8e03d8fe78471bccf40e0e3182bd8a1bb340824eb00a2c98f9905b1234577b81251756810001d9859da370b7e50e71ceb091d36b39593ee6c304bd83d2f57a06c05ae2c777d2f591b0bd64dd378f19d719ab08f92c3347cd25cda721d7d5aa07de1b7415574481e0e23b020b7e5ac9b1827934148360041be62d6cbde2b6fc5a8f066cca0f7c0546fcc4aa8c2a1637e607c7e0d40b284336956c3f0f6a1a0b42c12edf123b06ccd69b031ac2c71cd0f666b242477f89e865797af2e7dad6d9ed82c1eb41af5fe09da32c993075ea9182769ec9a734a3f7f896d442b4e68c30276cb516528131ff7a563005073cf097a5dcc6ab1fbb25c1ea1cb564312a12d9dbdc8361c616be4479b1a2a2f044d266972afb896375c89f1f65c5ce1f3906381e3a00665fa0194bed0f668d5fcd1dd630ee3835d941fdde4ed60dae7f0f4f7445b6e65f5fc2ae7e0e526a766d6188200b5a73d270b4b28986d12a777c6f7e0a1e527688173ac41d750e4e386e06fc82b46d4cec7cd9b317746930695e4edd963fa92099fe342c5378d70c4d4a1b83e8dadcb91cced8321b7b9a4ce3d014232dc67721c0ccbc999df23d163d874b74e23b096b1dff0c6b1e8c8285b6f7cfcabbe49b7ebb3c831b7a0cec2273766ab41b1e26adac55f31edc09018652c11160a668b26d398c5bda92ff31859ed78d3e808e9bb878a0bd16e849ba04500daba20d80040a979797cb6cb8531882e92cf997e6da54ce96fa48f5cab097ceecd5a04586ca66e75f783a3baea7db959a5f24e317f9da61e3525d39ef12a9a96085c11c44b8fcfccfc5981a6d92f23da5b6758838dd6cc89ee24f9055819fe4db41c51c558fd0817d734505ecdc68944ae46cd6041aca73bbc1b184e9b6037e19a33c414ec8f6442b35b3682ab3a085df54395e65873b530d2c66972c5e2b3e9fbb8636fb103983c863e96094158cbf69b21f6a9c8eaa17118984f4e7b25a0bf0e17a65ae17c09dd7afb5818cdc705bcec5d0e21ff61e597eff5581e3b5736708483a4a06a10eb97257345b513ebb1fa47fc2f8f118c10c0a3b359022ef7ba31100b1fcdc8d7de8959ad8a9a46709de9ebfa17d57a46dd31160c73f826a4a8c14b3ba833b22ecdfce1448b673b9ff6b99714cdf51aca42d7fdcc0a8a33a6eb6b41fb5b585edfa3d8e5fb63740ab3dff675d727541817e8e8bc835db541d87684a5d2ead65e42bbe13af61b2b9e9ac835fff6b95a7bf0c760a415f560ef53e6472d84fb4da6b498abe6246abdf3bb2a19863f659e912649e653a84c7bc5f94d16307f5eb60bda17efc6978693a79f5a04fafc3fea7f9871698c3e8018930e975bb3b5143da1fb19119892819d5a912794e6225e6270900ac16d6bcaaf860294cb28944f05e970e4d88caba6a11935540a2b43a892c0f52052e42321ea6390cf17aeb39873d6738d8f1e9d05785a5e39ffde7b15593432f6bbc76b95ddb6955b0b140fd7dcad92603afc7180ca208cd2ffb939064c2d40996b886ae9308ebe0dfc2c8ba3c7476f7e5e4b547475a54a7c9e5f70be21a482b3de64b6b229d645925ce9e96a6c55d3953d7ce693bb5bddc4035ffbd8ee5e8d15ec342e5b14abb14009237226df73d011e4931822f06ffbdc67fdaa1fd1e542b4565c5c2df941c07db227a5185e987b62f22a1c212bae47670f1f811ff7635be54f90471087b3465cbe5832527c2f89d8e4246e40276ec8f967d4174f2f4a64e9c751bc980eb5ec70fd7b1e3d3451d4607abf75cc025b16ffb9234ebefa8d8ff976522738b5fe881d476a1db3a3c0a2668579beae109d65fda4c12663e1bef3043386f61263b7276a91ca5b0ac5bfc7fa3f7f545fcb22670a6d1c6f661021f795795accdd2e6103bc67538d13eb42309a98a652e511bdf953e479c305c33969550bafe0519c26437010dc3a9439a47c37abfa0a569a880b11d82aab1993013d2a55b61a72ce2c53c58bfb5395c668b7a0ffa40a074da6ef0bd9cd8f68336504081cc2acafcb57486b80bd6d39ddd038579772fa31228d90d227934c82ce689298a31a16cd29cff761a89232c55fa82cc1aa7dc6b295a6f89c574688b9fb9a9f53758bc6e459bb345d65477171bbebcfe32a19f69c9edfa0203dad3d4dd3a68a46ca691765bfb7843c04e7e46e5a0baf8c2b5aec56fc5cf909d774bc7b090a7f902bc347eb7c96169ee2e34da786082c3417ab0ca0891cb8db0deaa1cfc5cc64d021c3de3928477604d6322809e88d1bdc9d4ab6b03a14497368a813e3d7dd11938f679ac5d1ee07154bb2a700cc77260efde875d83ae2781a5a40db0e5db2234e314ebcef1580fbd0f676897d568cfdb07d9517d0cb9ae9984551c49937fce09e4f871e2fd0ad97826926b621a3034b2f40b4dfbb5fb53218d7b99241a1f203aa904bd35a4c98b7e257b9c3d4e8385cf8c212eee367d95495521214a25ca66c0162e3a5fd1cb6293b43ada4e7f5a3d96c0e471c14a68dfb437343e32db3d53c3e9f8a1a07cb1277979befad862a0e343bc7a1995328693f2509a6d4b0a62a9162270265a9094e314ad0b6d84a99530c116769b530eac68fda46ab9ea5798aeb376d7b92a21644b4e540bbc71ab611b794bf98e7d48cc00db91938deaa0acfc7555a5d4d476700d1623ed694021b7be1b6bc2ff581a8a2f347f419179c0ca58a2ba7e6bce972c8b996aa10ddee2f591f5cacea80601323b34c6001904fce667ef6b271e5e229cbb0581bb747a8c2906f7b9cbe00af2d5fb7fb45c960dcd8bec42af769626751d1b3bdc94d60fdb23db0f3a03c7acb469653fb156a23c739306dd73dba272d7408ba45f771835ea822141dcc46fff402af989fe58c7289de006c1967b5ae47f86e7d33230f3bd3ba63464c405aa475a9c608f259d05ac25dd1e9ba030e75b75bd535c3a11f5fe0d97724fc63090d5369bd0c4d731910c616bf861db06fa9a6990ea4e51c0df6e7f6d25438bd8ccfe8e02531cf32b32833ee09211992bdf2292968c35037bb45011fbaec4c9b11a5f2bc9b2c181d96ccfcbb5bf58f6148cf96baf92caf56dbf17e1085049014ee357946a305e4ce029057f0d73c73017f70a1a68d256c0df0d4c98ed8bcd264c2bee4698ae45517176129c33c3b54306569e4c31d1206094247e2f298d3c9a9024e83ffd89cece1db1e812b43842f7e01efa389ae8d641790fd7be188c0899f10feec1eb6170bd51778f34e8b20b151fd5c9e5564b3831250f98895d84131daad28633bc80331e64f43afdae9dce0a368bb110c0064bada3540e0b81ddc949800e6778d6f939abb3e1ac889dbf96a2d39ce14a3b7b0599bcf8a8f0489ef156811e70709fb6a85e2f058688142c01b1598213594ca9ba165f40cc19b9de98b0ebd18e4fcfcc757d8f0654d249a0cc8f01b040bd2cef3b7f0c5e2f892c74a1a69a960ca7c19b0582cca12873c131905c19077dad1f190353a6c35b049bf171e2f272f6aa1ceddaf5dbfccacf77c29bf7801d706d69201cba1c9217855d8ea56dc4977bd1466d039c904d061799672649e44aa85bed2ba94f41763a102977ffed6c0bff4ca65b836605db4fb8cfb69538954e6abd7fca47c7ca9d8a774d67f508005eafcb6db81d04b813d3923fa9b54854a44ca02953ed3484c693b942c0f02d2b8b63aea22fb0e88f07e03e170d882ad777dbbb63a6713219ce83c638f71a2616c8f36fa7f2a92ac0403626207858e43ac0e8318c218ae4ed8dded3c25a82980e70c713353fa5c15fc47814464e58175c71fb5b01d45b5629e7f3482f93d5e345e3cea03ab665674a02138aabdfecec952035a0ea6cdb2fde5153a0edc16f793c08967d1524de187386de31ede76b9dc9b8e4706fc6be9ab1ae0a67a6527f10deba698417ab4b9167c8c78063ae7ff4da594f2bae933d9548b10fd9a35c9ffea8d52915b6bfaac7a428c211ce6424b1756ef63575b9828fbccd732ebbfd9feb0f52e119d97e46e500e0fa41858e1ea178497671983cd8b5743c54df735d2725d8648a1f5a1871dfc6bc4374f4959d265d6d654b3ba15df4c4cbb928768f31b78d1b542daf7e5e34da9232eab6b18aa05949e97232f941f66e1f1cceba00377e1ff4dfa74c13aff488016354714a031fde65fe4b21f35895d6ab6d8852971d8b939e84382c13c9c479d5f9a75e4d821f8c5aaa64f5785477f43d592ca945e0a0dc5255e87d71efc977f791957c8353d7f33f9afd55a3c39f1627256fad460effb5aaafdb0fdaccfd6aaeecca99fd76d77d02c5adae369d6f4cd9735b105ba806287d8437108db42685034dbfd3ca9ab05ef7482548df0b0554e19f0cb53744abe8564205ff3c079b18f9f3e92e8a20a0bc6b26eba4b67a6254e797b6c8f34ea086be8dcbdfdf9603f6de10b2cf0e3ea531ed57f42ded3ddbbbea3339340d22a862afdec9cdca2173809f9c1ddc91faed1968a0b4134bd2c10b526e2bb13b890f9528f61884e8010b7395beb019f08c066f4bb8a15ad67e566eec88ddd1b09c4bf9a1e9be01b89b5f4ce2f8221c19f8ed36decb73504392aa19ce7392d4d35e575584feb10011cfe4c685e0d497e1b581681109c7d62421591672bb85174755d5a0fe75e97107d0c45e703d851df139a3acc4b5e3edb8bb3dd77f4a927399e5919d80634cf83e2f25e2362b72a80aed54a0d4d40c6eb6325618771c9418c75998329c91d4cb8b560d4ac98809143ca948771e1d09cf09ef420653a60f5ac67aacd6e1288cd165bc3f7d23757ca74f54e1428f118ae190e2741229c6a6c770dbc0e5b77d40cd940f493e9ce3b497f931de9dd3d1cacfd5d7834583fe4340749ffbefe6af2742e4e39fa2697628a9deb07bdced74103241e6d416e591bbb3cb52a5104b10240465e7f4351b61a5cffa1b405c856c94ffecf2db0856657096507fe773d7ce95d852b16d35aa338a031b5ff69ef073a6d639ab885bf8145d55ccb927cc665dcc9967ba281476772eccbfee1a2f8891dd8b748c7b89281c7b5c7afb8e9d8410403ff31b114acd3f7918e4f36ca4dcfb1cbe1fef74446f7c6b5138059a6a4486cc402007dd2964811af98e87721514dbc6af75f4947165d00713645e177d69eb5f050ac3e383bf2221f61dc7a0f16206897f9b2da3dac68c3620f15594da441eca2627d5edf47027be82210863e6ea1d40281732b80a4640bccd32be524f94a5048468e60a816734d1e6ca9f9f13f4a2ee3051e2108759f9be055fbd60bf3a9036325eed8cd3a725b88d7b2e2a2fb96134b8f2af6e5651279b340dd2095b5a8aa2f08fd2f863b57cdbb0bdd380f2a8a28fc9c2cc85405aeefd2752bb452db4bf831859c62b84a93072c184d1d4f238faa25aa158f4bff6c7ae1f6bd88cfc38d167b47095705bfba6b2d986c4f841e5504179e3a59d13a5e5edb2c3fed54b518ae43459cab1d33d6cb6b838d24b51a5b4b318ab2baa328559e86020193dd3c3231b0ed14d6ec4f820ac8f5225edf7903a44e2c56f282077bfb34c4a6ba0d98df52259b51ec9afbbe667ca07811902dae0793ff6dbcf01bd99f1c782acaa6a8876d22b8c43633051624a75f61ae08e7de02fc96270cc5d5283c4fcf55f0304611cc0b9c85101162509ec7f589b212998d6bd9d4dacd3d8e797fe1265efafc4fd7ac3d8c5a22d6c80f1e468df26ed725bd21a7cc24ed9444c415fbb61b1191bbcd1cab8732dbd807d15172bcb9867fc67d0d76498ff109c4889a1ef5cd62a0e27f85f6efcd703e749d2a9b9744dd78fa4d6b9082ea49bd10d7e6e26609f656eb39db2e6938086baad27f63ee20459ed5321410babb418f0f6f25f2a1a437a09115695f89cf4e30381fd1e550da34a34afc4a7f0e093021e86fcd348c6acb0afa0e4fa002ff35fc02cb96e2e623a1c99aaf06816e0694943d8484de9f1d91ec57093494242ea71b2ea6b512441d109098cf647e686404ce22ff396fa0423946895f2eb8f3ce636b426734be80a958c9d253063957cc504d28c56f48199ebf712a3d1dc19ce89ff73879b2f0fb27c861cfdbb14d9dfdcbd346a6e1c6de3e7018034236fb11c2f0588f2ce5ccbb58da88e826398035adcfa05dca2ea06e8b791691b9dbfb605885509c6a707de3829130bb6b04125d9efaa5f3a236bead460970265d483ced40541b79341b70316caa6d6fad3f0515aaea4a9bc15be3f75469a4ab6b2c4556fa1c30852d4f74ce954ce0e00fa2a8799bbd61c5a240140eb61de51d3eee5f3cecfc732d35ea5de1c795046470cadfdb518d966632dd30d9b01c7c54e1e76957eaefd9aa1daa3e92ff5b5ad373a6b7ee8adf51c9f718e92c5082e923efea72bfd63333b856b266ca8ccca2ec062845f7d934a9db38654b65ea2983eeac16339ba4811c5aba27cde3aba8f4bf7c9ef329de2a21f2a4f2779683bb739a07de4db0df0246e884a19a1c3c881c0a62487c3ab261cb0a2ab0af9d7b2deb4ac672452557310a39c4b54fe664072c8f62f0aee5568632b6516d8f44e84f34cf71f89d4e0888c5e32f11818651fafb51e72713b92b0349aa5c0f3940b1db3288a51924e834aae91c49c48eca1202e7fc57d3f50cbf72765fad289d30205d2c91bba8b735d9758ba74e9a4d039732b27faf5e659d22dae8465830ac26031dcc75a627b125e795d6657413db19257c263cdec6bb8d1e5c653f3071efa690e0f7730fa8f7e137c08ed010664453e9e022744444167050cd2eae9af967c7cf7e1702e8e412dfef2c5a7a15493efb8c83bb2e70f6f5cd025f5549680d13de6bad96c1a9b5c1a1f5c2fa2f0e7f7f7d962e7357f283623ec3ce7cec78371cc89d2caa869780185016878c9f3bf8035e54ea8e060a567ccce465685048f749e4497aa385cf7b2507dd4c27cd34d7cf429a91cf6c2f2e152732daf5b6bb25988529a546e4624233f8e3293ade589b7eb228b069ca3827bac5a932c359653bcfb9226f0b5eb2e8738e0c5c9e26ac1e79454aca7a63cd7a141354009a02d8df9607f9f6174ee69bcfe5b181d5405173bd4f0a6abd4189fe8c0fdee3089683c8013ec0afbeb00029623459054808af94598cedfd7d487ae8c29477dd8ee79f9d02456b1460449069906a2c459d08b274ffbedd0209f22dbdb7a0efa7c2eb3b4711b6dd487773c7c22f417a80fdab21e22ca11342c283adf61d2b1368e021ec3e1da0742eb9e9c72bc466bf69905f5d4ccf7018e0d84e6f59a809ce48d596b14a42f4016f2937086f1557db6e0cd8c29f2fa915c364a44e6a9e4011afacf34af341322eb82b5e3fa764e1537080a21d40ef187008caebbeb915ded121d48000d30c7b6065b264a5cb4a4354ae35ead77d61d0b75d1d96ad12547ede8cdd7b93c5d63e85c7ff21984ae1b8a05d5d9a02dca3035ee6929cc3b4e5782786bd336561991e2ffefb1dd4330bc786a79142fd51526ec9ab9207a66f3a1564a5b05549195eb05ea0aa8971cfdfa0a122448c35bf37c0aded705d9459b7cc60e361c516600610b3b2b451ce1ad78f7e0e043e0dfbd896a6d0138898544b11d22705b870e377fac2cb2d7844ec75fb11ee8fbf39197973abeb26f8d4c91089c23d9892d3e9dae07e158f2ed6d4ff74c4b27a19628bd11b56e78aa5ee5ede50622df838aa5cd189e190119c011a45847f2631f037211b41ccd2900d1d01e56e473553daeee7c7f4602478ef5e427b6038614c67cb1321a25a359b33029f048c7e676fd73599bea966103e2c221a304ae2fdf49cf50cede58ff6eb267fdcecc6c483be86631c575f968bb130c5d9268987b4ff27fc8ee25697e6ca28be37c527de25681cdee87f0f5eeddc458b820f628f9814be298944857a266c3eabfc56e63d9aca350c4a3f7e42104205ecd76523ba39a5b7c033c9d48b7d16cba413a020936fe8f45a0e097055159c1c8dd860a25e7979874a0cbc30c5d430f1e6b70a4ac8ed0f7de887f9b912542f6105f8611853824a9a87f0ebc2c5f1a1fde9c86ba816b0cca04564738811d9b9aad7fb9d22218b8ca8ff6953afa84a8ec6b994a6580caaa414d20e484c2db72cd2d602c6e35da35e0d132e3deb19e494a86685550404c495dbc9071f6c40e3b43e3ba5fa77c318149a7864e7841abbe87c22ba8a3de2f074c83360861a10a072ee5b8fdb7b1de3421d653affa8509646275e8598d68f364291d8cc8ce8ebdcfd188d57f470eb79c23bdc8ed8d0c378a6b9ef20ea78ff74d35e767e068ec1694cdee52c1730764869b23cd6e3e1c027ca6d2c10a5d6807f0f76552fc8494581432630d50f55c0415db926342122ffcc7c2fe479c37932ec59c06098c1e6bf5ac879aa060a88d6e1c23b9125d7bfdf8333b9447c93c2ea5a4515d7028aaf09f05235c2db448447e6b5b1151e3242c2154c9bf604c05f533eb20a0b6ba205dba779de5c91d1c56831011da5ebe0cc5b8d8e6108bf1ca9c8e4d9b0eb04265aad7fb0d9b4a7f8cec5cf7b865d53b2b2b975f63bf23df2aa49cec475a27cee30f0c0f2fb082700a5ef0831d990330ea291c630f5936ea0135fed4d40285ee93942c5f73cd15b4c3bdf43df6fa59bba077a12474e2a50f602a6a5fb61e0246b729adaaa23012f054b7d1992179a694eac9779f984d931a71e5c5723a8e13e3503ba1abfcd059e729bc68ad8415b625dae05de572a47dd2d7cfcda1205bce2a2f8c2c326c6d8ecba12f321221151cd8101cc5e9b7c9cf08e5e5eef110dae94e32b2d12cef3277cd3dd6750fb434528e32b29d296db305e119519fc91dcae628554a831a245934bff0865c40d4bb7f314eee7125914d0738def8e3c91fc9fa67baa0077f8b97fb840ae294f61334705895d80c8ba332b011017e7639710e5d752724397458c96ebfb784f57c98518a83e60c004a878fbdc8d03fee5a37db295ca8c1994745a06d215087cf47f5202527f668826d751436e0f0ae2c0bc4dd313ba3a518840be58be9b7e1c653c4daba037a2c339285f8c1a5b3eef6ae5e94ac87e7c1ad59109297db45cea63aa7cad91821a9c3335f97f31348f74f24d5585a1b290664b27070c8c13f3a1e0a6a6317d6788b89ef8aac53bfa9d2328fac8bf150de01eda52c71789d2f8ba00a0a52f65fb88818d1e0d1a7e7d2b2f7adcfebdaafb14f104e1dd6b57b8b517b788e214b2a3ece70b45a66b5392bac4f995f53fc472aa49099f39a8094e3ceeac561edc63b4ea67e23a13d2539bb813386982e7fbbb7e3cf5438828cebfa3bdf173de7385f311b4fb8a0992e9bceee9b637c28e5c1ac093c62b79abc901872a641074cc0a74a5b80cb6c7797c8ec66c4d58c2020673f05433f6d992123e3abd8a3e59196b1eeca8bca3c47906da7729e7831eb532fa8a4786ed9fda1aac6afe024e0cb75357ea2e8df11b5a410961f03a2a66c1091c3247740451b0164a12767e69a58409186fdecc30f5545d0ba74bc86722c3ad1379dd9a26b7ac8478d18cf0bdd1dcd19cd300a16d24f4500785a06687036ed629e54612320a8cf5944a54d71b2a7c8f7d2f02ff37058738c45e1cefc4a5fdb208f473bdcec6eb7343a90e9c9a14e794de59d60df833ee91ae7030de71b5a871098d53b9edc5a80a175b6aa78a969116fa97c64b5e1e3eb5b209387f8e20a4dad6bc5ff5f6157dd2624e4d996b2ddd5df7c96230d1f2e5fe04c48f98ef6d412c12e764f4a2ca6ecbb88b1c119f2e88826344a31bc9b7514fe1887a3562cb85a27c74104ef15a02f05e2976e8f4253bbf17dbf8faacbe5d31d04f2cec284f10869c3958a6c6021d138af07ec10e0773d234e06929f75c8c7d1f5e0233423e1bf5e96bcf2b32b69f40effe50713e471479af2a78f1125f2aa24b4f94ea50c00e276a93bac6a3319adf79b6afad3cedcfa519663690002a8904237db717542eaa66372a9f8acd61146b76b030e5d782646dca52993354812e46b0db26bd4b9cdc6d08d405d8b2e56792174cd41ce0d5f76fff0b560186660f72c435f2c58a0b574c032c0af0428137e529156bcc071f0b4a42b42e2223bda9cdf79ca20b51646925815e5d880fb4634721ee1f56a53a55ba513987a8438a2047e05a890ee947c2ce87cdc6a62961cb2711f7de4f37ab4b9914b851dd94cb503e7d3b1ea0aa31f07faa9e75028e141d18025c2f6f85c1c512c621e2236f6f0741e0c30f6f103be84542804d7886f172446dfa0943898f321bb8351eaa934e1cab6efda9377dca1f2972616f099bcb963d8a9951d60eb54cdd71f452fec0bd02f95554f212ab67c2290ab6e18fcdf8235e83eb001460cbb193ffbecb3a3844332cf2ca0a3ace77cee8f65362369c9dd8e7d49063bd071d8c5124bf0882a01fa0252d2b905a5cd96a69e59a1d8afc67e9bc6cbee71e469bb9bcb0fd74bd02eb7d355850743da5d895da9853e8513b4959c989f815bda0d0064e2b1322c57751ba3bf37f04a6c4e0105fb64370f368ddde0d433efe518139171f2d1e388b55d28ba8fb411fe6b7f11671de4aef6a6930e2ace1f075fb818ad30842b93b3e229f60d12929bf4c19eb7b628483c741125bca02887d0ce660d0b25640fd656dcde9e88d763faec6720574e92dd7a501a34897c2197fcae6a702efa0f834d6db2a34e9957cc5b4cf306092ca7f97cd49d27069b859f706107533cad466607d97f67bf32a48f9b5d26b506aca6996f3fad6d410c99d1497b7b67c6c6b98329d9f2294e91b4d5c948089dbeb83576e6c60638f9cbfbed90c46318b1b1415f988eb2ca8caddc998cfe276356d62ec1a9c6106a88d5e43c6f6dcba61a84cdad3ed61c4a09fdfdb2961882ce280ab18da7dc87e2ea886bc53b4a0e8ad299dbf7e8f4ed4ffcf8dee243a7a14005e0194288d1075df13486c25b980646d9909367b38043b75d34bd1f582746967a0ca8c3da003ee6a802b5e132f2175bf01d20b46b4b59b755f3156c1757b4ce7a1978e1256449805f02aaac9dec4a848dbc2262bdf51ed5fc84a26ea7d3758647f3701f8632539f3b732556a8a6f5e8c3654ff09fc1c93e33a1ad1f2f55f665890a747393776be06b8601a35d221ec7d015f10cfea0cb7f12a46619f0a42badc47ba628b408d74d7f4b2b79e163302fdcaaaaa9f4b004b2fb99965473b907cdf5aac9c5a25096701d178f2a2b2d664821d1d842b7f1556e0e215d0e157aa4f2a55d672d11505ebe0d8accd4278cc793ddf07d5c53ec9d0c44eb6ffc814b5a1620e3e70e4fc71f796b2b98de18b38fa8e8646486d608ba54895abf53f1230f24c96fca0662d84572534d58705405baa7e1140fb6d8b654d87ea7a91c22f659ef2c1a9df98fec41515e999156b939a7deffcdf98deb582d9d5487d25b3bd840817751a2fbeb9ebd8443a78b9aa9de7a733683376c881261dc9ac87e8069672b7744d867edd481e66c6a79322ad87fcbbb8f6d52508ddcf6009920efabcd494fb6dc694b01f0c7c94d748eda1e558aed30c045484c42a4a8d1c504544015e12c11a5ffbe723ad06c7fe490e60566d3b83b7e05d9527956581ebd3e1aad94ed070e3103f1ab920e633bd44e36584945e9e9e46250f17fb69ff80f11251fba9b0baef99c9f2794e3ee644b638c7e3f6d28f20943764555c847aa097979d7d998b28b0f5155ef10021b38627f52be02f248f3d9a2148c6c2d5fc833bcaff5d7e062a7507823893698f2af172c1ff13b663391636f77c4a9bed7198a49748248c0827534326b92920f90a1ea4033c73806994171dd5f002eb006cd44614d70bc3f31cda819ba8e4e5fbbc6eb99d5c16326506cc13ab5058e27389584d10ab711d3cc22132cbb5c00e191041d8a4a85c51eebdc920a83a0f89d34dc2411e7e1d460b6901942b4b4763b386d8783100fb2033a1df69e029394a112f656b6a00e364f2eb0d82fa2c9a33681c4e1152e860fe48d2b1bebcd0f6419d57046ff6528cd109e0fdda103228bda7bd4dcefb06c3a714b3b97ef536423946f6cabb39871567bb916bbeebd12b79da6831e2438d2aa88cda01e969cee93498824b361136306ff8b19de5bea27d7849d6b9e459a2f0769ab1739408157db1fe9a7318e24fcb8ec0182a77056417f041b402cb76265a388af8957866ea2278936b07ce17031e8c8514a7a32ca36615e48c692b9a93bfc8524ff0f98fb8b8db9e433855ba376bec3b410b917275c3bf2f075dc1d1b5b3201c8f6c87008ef9a4b42942ffa4484cceda048437984ceb99e83cf45cac4ea8d2aefaf66fcf740d9cdeaebbc49ee24c9de83b4ec11aca31a2d391719356174a1983faf12f28b353d71c8ce454091a105dfaffed29cf6aa2c692b6b90c753ba45beadac377ef6f9cf609a9b6489efeb196c79a1e1fcabee41d0019ee9e0805b7f4a1e498ef0b881b79d0c5c914a14ee673958fa3095a1bf783efa90424cf903fb4186000e84306f9465e6e279c1c6653d6ff9a6f8a469d731a9c283db225cdc5f69e5cc65b4b65f059878ab8f40f1ee01d9af60825634e4a37959bbcd3c9b18f091b43248368f72db052a1589841747907fbbe9da7cc53de143024ca12db4a354428052498505c382e96cce475bdedb71a56c4c0afd2378efd791a671f404a36f858228ba2486a79e21aea915cef38cd4f6756d3456ee3616e43f2895ebadecc165edba7d50177d365ccb1b99dbb31fc4e3fc6b3213a3b60279bf158135f275fd63892aae51f5d5933a94ea88e81f15640b8f77f4d325ad43f9642f9a04a6c3ff5be8612ee791d422bee9ceffd5c23a62866535f14724fd408e0aa0ad042fd643234ac6be0c0e8fd7557c5f405ee6aab3cbb41cdc93e1f863c921efb67c571e53498df54c0ec130b1e2dc6383e3efb1149bc7cbebc2ac61f7cc24bb9fbf506127d42ea3fd5404b7b16b960f74428a2dc1d20eb79eb4c2cf8871a025dfdf79150088da51bbb0ba35f54e3b39d6568627ec012ba333208df021db9bac46d98c87578d799dee1a19abb912fd45fb18f705fa731bac426d1c76fcec4c674e8b1f565e3e0898956a8cd59ee1f054d1584eefaa84bf539bcbb65e0b99a7aadd620a7ac076eb12ee5092b7997c534a7c11aed1a407de640d83e1aa831e2129a67424b85907d5c75530e37ed0d9f646aaa9f7254761198cefc0b1567f6e0795460f6947fe5017cbe16e24b8bb1935747e373dd3278a2c5e9acba8a61b04299b50cf40ff60599a095d582d0e3757fa487ccf959dbe551250613f839e5afe3d08ad8b393d073040b5b45b4bb34900b205d4596d30532a6661b6f9169d0fc35ecdd2e2f70578ed89ea8b27c793bfb26d428ff3c09f356c639b2ba1414333b1f55c348f7633929d353b94199d80be47de22c88609e571a027ff7d0c506f0ca57a34858e56c17e46c6b3a60ad43de1977a0a36354de1109e4d7103ec58a5751c62b1d2ce6ccaf4aae98c9ce2fdb9872aa754087a3508b5061475706c78fec643042ae596134d91181f386e718b75a72e7dead3acbcc4e220f6554a01d6e3ff9ce89efe9fc142fb2e0b0fe02f189381f94dfccffbfdba727b2be049421696af71287bae422de04717f2b717b366fa42df102f463e866e7c4be20e5c663882ab8cf5127de0ea6bb3df517728acf5255f00bc5d24133d7b6d07e9ad64e7cc946b3b0660df681772989986b9ff83861fad5b0f1e3f6ba234c9754b616549d779bd47580d8d2604974754db271c80fbda9225f6614ed5b067cecb533e3027a7cef27348785bee1db2d5b2c353bb7f37097af9d5eb551ed50a56473f6afc8709eaacc2f53c6149a04c243c1588a880df487a87190cee689b2367006ad781f03f57a91c04a444052fb892ed6e3856d6d596051a903da821667cc229774f4dc2ddbd66d2162ccd9e3f81589d1b9b2089120826bf254af32033c19de8aa819fa8352ad2f3aa1e7bfdb7dee2f61a4f8be4270eb256064fdb95023341a248d80ed069caba169f78b16501348811893a3d3cf395ae625107b3bc3c10c56d0f5ee53b1cc5220146d50c7cfdc95d61e5cacadd62619385bd0f6dacf8fe24712c6066e7f2c11af9378c215e1ba3168de9047633be3779d3b3b6f9417e9ab572a75668451e2afb2588b57a9a8598c57582e4861dd88d349966962ee1174e4db29e21191839bcb75b086f6031b25a8c31d06ed56fceb03c2cc357960ceea63ea06afab882fa7bcdde68e34748bdc1b94ee1f3e93c4ad53dbe89aef643300f4e909917857b22cbbf5150f68961278c3b452614e287feace9a3c9ab9ede01c7b27b2a17acf2faa880e9efa8e93803460bd87534a445833bf841efea3b85461ec05fe0fa0e1b9d44fde0efac31865eeac7df64923f3335daec9d7fc3bf78c932171446983fe331424fa2fafaab802524125409762b74bcb23939cf29d166ffedc3afd36dee5b2b5bed5a7dc3bf99ac46498172dc9b4959e370a63d166eed5278c399595a82032a1ea80705e6c19acf4072d66a08210eaee59ff7a82b4bf8f7bc74c4710dc2238b32eb3f3fd871e199649fd5eca57b8c21bb9bb204b7f5eaa43d21bd3670f2ef8bd0be79914c7bf489db73d6430483826f55b4409324ca146b6c7f11ec3e75c0f2d7791aee795e648aa87c543903c520830fcf012432495e5df7c16b23ffb64b46da9627c074a6a3ceee3adf528f49b4136a686cef52aabc9711a6f89322f3767909c4a9f8780ed9456184085b7a1911ab09054249e2c672d4a273cccbf18d3109975809aff2b9748d96329669eeca3c63cb78bf8883e02f6c8f128af1f353576b5434ea8dc3b6dbae90a85061708df3f60ea4fc3eb58317a695f6848b3124546747685d6238cd929a336cbbd885b9de8d43d7ef0b92399a5c69dbc9ce3bb94e24622bab5e1699359b1abbb8dcbf8577f10f1bceffe82887fa93e510e88b5bef476fc55c2cda0c933bb37c2f8b145bd17497683e5389cbacffb04010988299cb51229f528d3ea94732ad196c50f2ba9680fa0a150d742f15f9477b4a5fb0a54931c4afdf89a7f18889df9ca3e76ea92d5c80e6286b1e29931d5c5ed9edeaa9c329fcb82b74567106922ab868bd066630425c34b6e998bb7ec814d73cdc8b0f4a5699e355e6458efce213a91c875b88b83c6012ac7e94805eb5ccacd3baba8e0e03daf0e3fa462840dab2498d718f89e4a82edccb6a975f5da24ca919a4ea3962714dd3db0de60b06a7d9e8b871b543fdc3e645666baed59fa2bf7a4493bebaa882d91f4bd49eeaf2d4336d4586c45d3507173222452a2f3aefcccc270124decbca942de685cfa77a72f5cb32c5044e8bb5f732454fa4e6ebe983971b8474a62c62395b3e7be49f862839182455eca09ae27350668ea36085a8b9a9da67262ef9b928a90e1dfc7b52217a7275012063f3268c852e4c3e608c13e5c37bab6a7bfad0315aedee85a033f4f7fa02b4639864c5aef9e7b04cf0e4738768fcb4bfb25741873e280bd2fb2a681b73193422bd5b9af2d2e0cb3178ba012d664e4e01df52a65b2eeafdfb8aeb856fec0e6c372265d01b0109c3f5e2ab9dac623abab05240a57869383c4df547e843d1978125d3a6a73462a706a857b6bd26797107a90ff812b8402e670053e1b085d61ba3ca0deee59989ee0b4de2f7b8ca7d5e7e1125bb85f23537e2fd168bb708d2f1ba4b3c4d86f1d6598e76e131781eafe42a8ab85ddcc474a7cf5b546e7b4068bff3cde3ccfaf3399f8bc25bb52f1ac26589e7601ff991efcac8af623c82441b96da359a40785847df94751c4eeb03bb0dab16e5efcaa62a41ba206f548de1252887a558c4ab9d0f12d947de8e4bd8e2e926976372a7814ebb2730bf128b99fe753eee4e533f7a89ffe69dd5fb60a1bbfefb58bd7ca3e1c71ff66cef79aafa176c787ddfcc72543a569976894c08e8bd53197464c93f7a163e29ac1cf9a9a701002ce89288e6f7e49bea39c25b4d25088fa794f3de9a1fcdddc9ae113d8998d72a314aae30837713619d73a986173ba68c9e6ce721cb39b5ad129b2cd825bfbcdc366e68fef3243c3b2ebdf4606ee86f219cc0ddbced2d79fff68bb7ed24e0d5442e741c56e9cb3de7476c7a53c7542a8a91fa6fb33e4d2c4e6d9f8f89379cd32238ed78eb9f5e9f36bd0a623610cfcca0b06246e6e6aec5319b6785ec398107713422f463502071925a71d8a3bc546195efdc0038da3747fc607ed7911e19efc1c10d108f4bf5401f530cc38798d42f41eefb48fcc8fbfb8cfd0dccb85dd4c87627d288643c0d555c8f9e3012fde7106f8e44ba6b44d5d7df1cb7fd3816f286b2a98edb186bae8a244438f08636f0affaff9233eff83c36eb38667dc629d2d02b4f35a48a7a5bf8ba3001af0efd77159309932d637e66d4e02ac67eb1260491898acb4c46b0e9221a0557beff7486b20a3b57c8c9a2596150ccb77e7a4ef2ebaf5831a03ad99f9b504e896bd07e38617e533844b631396568205fb7ab129b1b612caa07cc6b99d8e6ba9242f99aa1fea2a43d1d687d8149b20d1f6c24395caf4b7c1819bef572225346313de7a60b36ffb25a71604506107ea8cae687c7be242d80f749f529f7da3ba7cbc41a50256f3ac05601c1aac07e23392c78d5936e65ca33568fa2f099db89da5cef59844577dbada704431ffcef1c53b4788fa440827e1fca06d7251738a59719aa4cbd5d0e7c807e0d3a9542d2a8af9225ddb810f18d35fc33d0556349ea16e3fcd67fc8b9993dde3de8ef07351d79e166401abdb9659716c7a951a3b6d7291ef3fb5e5c9c6d9fe78e9e2ef89774de8bc125e13fabb8491ee8bf8fc11d3c0006a89fc7e532a81b9451c9f898931a8f1e56febe5d1a8185830a6b442fd9a1d1dff5179d1f549662137988a7251819b9fa35dec39ceff4993199f5b3d3b8ca4dcbd3646a6ac52dbc3870c5c8ff42b3437cb21257518725a86904db203574aee8d11e5caa6c223670cd4fafe8287a951f23287be39782e849728e9b55a1c06cb71625b66f241eb1a312e609adf831038e4ecdfe1b9d7a2c0bc6063be252e17de4255a1a7ea58e4fb23d555f3a628e09879416ee94981059065600185da9acba1405ff3ed0b61a99aa94580c7f22886eafa6b42bead30c3839e8dee771db8041c1d717d4ca96905fef1bda18d43f43a524b3384b7ed2bfb40e54b9f7ff552a598a1fcfda3ea44d3084ffdaccabb4799dd5285e388fcef1e043f1e005304fa6bf1df87afe9793158c405391d0472645f13af06f8abab4e9fcbd54c5b909081c0582e67b1f2bcc25d149b9814dc8bc1606608d8e6381c0dd0a17b46ed7987508d3181a020bf46bd7a5ff7e1c5744a31b57baf94666b6f3fe31b0927041fcc250181b1973687a51cb9b71845e71192da1e74093c13e32f962471eef841a8d87f9161d62909782172ea4956a15e6888ed2a6dc5a32fa64c0a81703e0fcaa7848c87083c1fb8a59a902e8e5120ef501353b7d988862bc104da229f362a0b95b4ee04bee40690b2989820a0243da014f9744d20985759e4bf3bffe409fd7c5e4c1dd5704404f57ec223be48049be4f59c3ac37749ca39249ed40b992a23299892692cffe6dcb9369a5b0e5b3050104d57188c4a179e53b584eee3db9b9ddabe94224226a09fd90ff0f7834b7408e291063808182864dca68c9a5b2512edc8415f1ba5327d83a85a1b1b398bfbf92b6dd8cdbd64b55406ddd05cccfc3f0f9b57352bf9420a609417e018bb8ca398e58bc7cf290c5a1d29e3fe188f44f07842cd0a956360f20e808679482162b9501a1af847f4981255d4d2120195584602e092988e70d6ed0bbeacf7de6d612f49bfa1a460a4d127289a9ace43597ff2ee84ffe1c9da252d2c8057a2fb6c1844aa47d0484c9d03959089f44812524100200adcd54136f9111a3016521404d6e626a0540f3189a2c0726f89447babed454dcaf5755d99f0e9e64a947e89547975c1629cba5254bc4c5d5a78397d4450dbf81a31a54e5c3beb5b37a599d9cf89ec5733d201bd0abfeece7fca01493bbce3367a5ac835e2e2a404e2323d9bf0b356bed8b804b5b34dd5c515a928b59f7c0845fa30843a48c8cd28eeb8db9237c328d0bc0b678e462c5c004becb9cd7c93893b47980e3291dd9a4b31177b43ff19d66560e7e7b82f2784ee6439a9253796b9b415334571eb8b003baae3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8552948c1f005da7531bf8e637aea0901b1f79834c59dfd41e37f1d4d8e56e7aa66e7864a26f76813b51473afef8dc79d3257b05d3bb9d4775bf2059f88a6db4d2dbb7f177d051e178685c4198cfe20c23dedfa68dfd8d8d7e478c49e8fa92e71004e0fd8ca4e52af4516f194a7401deae94aab4c027ad07ce6b51da31797499daf548b7eb5c1f3b09c11b49e2a229cc0011296d553c594a7d8abdfdbad248be6c146c5e219ae4e31f8f65a96579d7ac94f5b506213c3232be633b01f17d28ee355ee0fb7832d9e0ba1a0992d410e9e50ae0616e41e17dbfa3d3bfc2fad1c6a69852b68d8ac42d079b638727398b35ed384c96669650f7d1282565730120ac9cf57defbefa50f65c9eebac5718f1bd5de895889bb2de59c41665eec12d662229592dc854ed9e15618d8f8e5b0d013b8404fbc7b9b31af850c793c61cbabd3555d515264935a78ea7a39c454f8a5b5454a0596531b294abb7c47f0029d38fff23d35259c0931cc2bf38cee218518981b2f8c1541669e546a712e10879e04e3920ce269354c2a4de47ad2f1bc94cdb56195ad19fcbf1068b9b5b8541533e6a467a31c80be26a5ddff8d28eacd1daeec8c3e7e644374c7efbe78fc82323b303329f1ef117ccea7d2bb67755a08c7719c2d3ffc86f02d0f27739b25a8276aa62d76184909d3ab8760b387cb283ef61be83609f18ea445faf5efdb6dca0d76554af2c44be97ff3bc9fafcf2d9326a9064fa1fb683d5323f4d471bb285d2930c6a2ef32608d5759676e93ead2fbddb1ddb405a354f236c18f15fe6ca6556d1d9b744e54ef3557aa6ca7c977bc5fda7c9165321b2b6b58763f625c68aaa1af24f6ef03256040de5cec8216ed7a65bbf818dc7c268cf2fae6c91647a68117a8050f18a1133055e3a272fa2bb903407ad58a8cb29253e21b7fd0c4f7fa089e7a30eb50837351ce7e4e626aa401f745b82d90c012e675fabe7384445b92515c08d4957b20516cf86b2f5ec504650c3276be110c187228ed3265f37a87df4869aa92d0b71cee37669947f4d62a7a572d3c64aafa85651018db3f7f4d3c8b1d423006b9343edf8c68c49cbafeb29cc061d9df5d9fde6ce0c5fa162a8ea7e5bd11d2c26405d7a375eff4eca1d5fdef1eb3977ed08bed7753bd6230b56de7996fd2f02c54996eb4ec02605fb27562163f0c8867134852ef8bad9401992703bae20a179d10f6683f1e8877d463cb3664ac66000fbca4255ce373f489e4375a4ba4e361c30c3db2da5c8572c454d4dfcf052d7f3fc02a120822e3bcddfbfbd09903d1efe44fc1dd9530e420f9f0f3cdd3c6f3eac759726cb16481f5e4ec2c80b8c66b35a716803adc5f7ef24cc359adfebde0573474ecca3f7935196dbfa46097cf7f773d04f8c1809d16c3866948f31df268d57fb58bd3d7dd5256fc944cbd9cca561b8fcb46b70923292d04075ec3976655a738433ac42950c756a37b3f4e72cd5d63f768f21f5f4073eddd21d725f6c580bb654b69b8d400c25c4804f6dfd1f0f791c2fe788e5184e9aae6a367e0071364ae7ba351f355f011c2e046af962ca52db2108827a3d4c5a8bcabfa77c03f168ef9c21c1c5ca92779f65d4b87e38979aa32fc196cab41510ab25604f71e5b4f907399d08421110ecb42e54ca23c11e935d7606c7b767d86baf831c81b70f1c0db992bfa2de08165676d19f5a0644c4ee10542db2ca2060b03ac9741a7a3e5a9d0c549fe1d5cee05abf4e6358bddd44a8ca0740b58ac894ed74885b9bccd4a3e2dc9f72c146860673376ea3e736d1e89180bbd96b056ca2cf4ea0c64368450483706cbf978a159301e2db1304f3d8c2285ea2ff02885e07ed49596b8a29ca43459ac0d59bb4706f24ea812daa4fe6d1ad2fb1e5497c825d5dd752eac7aff36befb8815e0004f8f8bd1c37e4795e20c5446688bd6ed5e963485f47a9473193fd1a4412452ceca5ca08f1444bcf574ae1e0b660fa09677e2d6eae6a694c578f5f080463969e1627e8c4b5c8bafcc13e30c485f02aada83a65a01b2abbef51b63717875a0efcbdf1bbcfccfa631982ad6292944df79f879d0ba3dc196e82cfc8a1a83f587e3f07cae5f5a465af3a8b8c4b61443c66972fd4d231ee913c9260db11898ab4d624baccfd094db59baeeb5c801cdafaf0153c4e2a4e36bc7617f41657e976bab267d2be9adb76098d2807d64d8e58bb9bf4aa01fc1bcb03e90a8dcb7f231c4d65135cfd15db3d489a7377cab0e1e2db6486b5c7fcc0149cc76c7eecb1c7e8f91c6f6f969f23f84d78e7f975f39a8c3ee4d4b1f2900e8937df011ed7314cd4568948c05fccc4b0405dd2199b3524debdd053e5da846a3c8a2c9fa9aef9e68cfe39d7bbf22e8c815e6f3ad321f32e1c30c6d28c914eb2bf7261e5b58cafd1db608e79815748fe3b166d307b51262f6d3a7c5359dbecff062b834d78aa8b36307662bf17bb6350bca187c0ec2e750e742b80d3c54d37745abc75ebcf9aa72105517b3f11de2069ac355002daff37ff8395e5802a0a2a47c0004983bd94c9d0045387070edb9b9f8d223ba0dc8479157e106b4265bdfb199b4b30343b88891ce6e8ffa1e19d65a8cb933a72b18090e4a65e02436655759af22d60a0e55daca58feb20667cb8ff43b964701411b685aad541eeec537eaef5be7c54d6b17b70b8409cdafb1aa978d1c30319de71fea3e376baacd78209609e364d3ecbd92ce2cae63a2438c61f626e1d883de03dcffd546fdbe44319818e77a8ea19cfd2de3ae4608d43324b73057faeb6e6403cf34fc7c0c525e9f8d3f687c712c586395f55a9c4789af825a7680869980314cb9c46677768fcca914b385f3be467913154084e8196a934c21e920dda208975ba096d46419133062d967cc1b4d8786b1e66cbb6e10713b4702efe59b046a27e028aac715425a8774b18866cd7f5cdc98c604327ff2ec17f736d3e106c84646905ebc598a99bc627bfc38b0188667fa5a9ff442c510a198e54a92398eaa761e46f6570e35a08a67a4b25e6baa2ef8a85f8ead95c6946c95a68b4ac8e8cfb3136002975d37f075dcb94f640aedb620ba8cc5326b97c961e7861f667f1e4863143ab4aa49a0d51b723fc0f4542658c1ec6c84011fcd0e97c16dc3ac0f97f906f6fd91bf3221f8f6e547bf957cdfb33b737ebcd0b7316bde4d62a9d0a1477a75a51705faeb5e223650e968479de23c95730b0b5fdce195b47139c06e8d46717f6cfc615d51aac50ed9c83b6b6c5835b03d72e0f38f6ec0fefc52574ad9c1a253d8d89de0963bdd2dc3feeaacd945437d0fe6f7e3028d09f318a37750d136386da24e0a1dd6b6def879c550ef5a4b1a58f9e126a4dceaac6c7b7e4379ec86b7f40a99418fbfa265d083c7ad9861d6ce42c80e73b561a1da127c1a9d7feb18d68d1c5170c4e804236ccb34c72858d00a1e3a8dc1f236ec7cfa43d2f5fa60abb93f07a029667fa6c77ad7aa4dd66679f95b6b42be4b2038961be5c89ab5567de5f24297abedcd40fb7daf6d4fb7de1ac66c8cd2d54dcef0d5be9d3eef15a253574c657a5f99f5953b79d9cedf9fc25f22ec2a16c9e7c33676680b7233b9f10405243a7feef48352106677c106271ca0c99ebb8985281717e03b53b1d67f7617d28a693901733bb41fa2808b0f8215722aaf895e6267bd296c9c5c6b866cec5e773cf7e22afaa0f39b7ae2f217ed407f1f6ea83c1fc20415309e5da44d6f305bff53af9e878800168d5ddb636cd09b0e1817072444b1efedc30841ffd7870ce29c7d709402266649fcf7a05e3a9c6fa2f72966c3e04b8119728a98b0841d0c71e75f5b995fd0e8a5c21e7ac021c898758d65b8ba599ab7241fe24552ea24cce49f7d70a907a68432b8f960f179f911e6bd91f0af8e62e1c4c94e64c9b819e047392c90ff3164b5b5bd172d44b84e85833741b0068cfa9f2ec1c32c48c5ad69d902a29b52c39af88f9b9b27b0a5f7048bcbe7ec55eee43dd6729069f24e7e7786fc6c20709d5822da01e477ed86c3d4580485e23f060f6ecd9b9aa240480ca1dc59cf27cdf5da6b03a40159513488ae673cc02eafa3e38d3ff46152f75ac74f34160032e20986ea71688582637cc8ad15d27a3842e91fbcf7e2035c0e345ff9d87a6148e2084b881393c121c7a9530470ce7cf2de0f688438a4571d951404fc3412ff2d3c3fe95245585cc8090b7a6b502307ec6cd84e8b5063e4f1785fba804a887f5c7aeae0a12ec3dfbe4d7c278b32d2e6384f113eba36ec295a0512e267f1beac57b228363c64a5bd3cd36b66c776fafc68eac9dde20cd1ddb6eb07b1421a5a2d16735e23a8e16ed69514ea684859a03f063773eba84f030201f8e2004764e631d2fff9b1ebd019c0cc2d7412d6f5045b9177d895513cb0a791a4e82c2af9dc017f6ca1c64da4754d96561e48d50c12064d5db57ed7a3017fbc5ff091f28ab5b446a9bf0914d92d6bc15d8d2f1ce94f445d8305f2844a6218700e49562f0a8d9c498e91a4fd7f7b1090a03eaee145dcfe2e0e7f9540909d069ac4c1ce6e90fd28f751dcc249e3abf59fa3451b4a35dd6be6e733391d26451c8b16697c7b165fb99e0c1d7107f3a5b069c1cdab892c50020e6b0904e3acabc10186834ba00d85a8fa2a53088d4b42542113bb9ba3d1b6a264d78ed722678214669a90e9796c45a6c5e1554df2f692722fdc27836a7c84278d54659daaf81d70d382e9d9370ee45b6edbd7dee570952c529f3a85b90907e1a611aa296f48843b4965dd8a34df2e5bcfed84b113ae9513ec8189e9f394a4a9951e3877578ae261dacc228396411579e134835cc1c5f88a69abc7c397d2ae29108137d85e8f9fba8d71508fa125b32f61150d92486a7415b11a075eb0bd4f5f4a73353dbaa5d11c83dc0c781271f6a74c26c4e7fd81ec951d35093b061b997e49b57c4b970daa4cdd9499dee965ceac7644553c3ecd19bd66b525b91fb45d5c21ffc439144bcffba5946c95fc5f6fe7be41b32fdd692814ddd624ffe5e510e245fe5df35e40a0b28accdeb9e164496e05a669c79515662ee1b85ee724ea5f3dfb10bb6af5333fe3f95c882042d03c0d733f85bccd1bffaf20d913aa125ceb823e35454b4b3fae549c440e91f236e278ce8acfff6c126907e8e54d45e37d7d75a0716f9affb33f7c2f664f7a9899b845e3f293a15d10fb65e92cbe3d7abc988481aa711ecd788aaa61dd4e36bc2a6b8691da557e72fd7ae6ea4c5622648c197b6a768eefe4dc5bfd44171f5c63f0b1393340bae37fb773abad436c85b6ec9e5f2dbcb85787f0bec0c5933ab45a290ad85a12d450520a7315955e205fc7a051b89fa24fb47c0d3f57d209d850f6ee4f59775ff3947f7ad2fc3a3ba66fdb322528d3b963232e803d3dba09b3c2cc0d484500c23c3791266c3c29969d57f8e862f8ef310c0cc3a79174f02f1be6bffe36a840e989cd564b2801e46493c40beac60c0160fbd3cf2afe28ee17e8c2dd8bb8a7240f007a60e92333efc59401e412e98b581b9d30f51b05125eceb124e863ac8b865093acf90d38b68b95f382f648ec254e9ea7fcb929c839c8ee609d230159ff77382d4608e252262095fc5d48efaee4c0bc2799bc815c045152ed3667a36b0b6e3ea17d05610300f80e45686ae6358fe67bcbe49b35b6ef36c46a4b44f285c7d2bc63dfe7bd6fc1a40fbf6248282244a3b5859cf8270770d475752a3dd20c221d341d3e4c6e0d0cf294eb81f50b26024070681abd52bb6260c5e6065843fa86f27d345f149b93279830c539706534e6f5c043f20a23e8bf42b885a899e2f64bdfa3fd976c734f858a8359ccab3f7a63a87b75dc62205ef9354d2717ed4de88cae1029b621700fef79b5be7700d2aec8478ef06bfd511b43ed3199e0e31a99fd917faf0aa60c21c69cf0e94aba4f3d0044bb287a87ce3d40e3dbaa0bdb13ac37822eaf011b95d414002fa5cc69f83f5ff3f1e7cd19148ee898c47c6598a12abf272d0e0e6503ce8e901d23a13ef556c42a9df85b753e8b09111cf0a65e3c89099e2aabc0a8c1f3bc128a8a90065f362e1b9a3892078f1f09e42199533bd1d8863f2b997bca427f0acbd737e036a3a8ad4a4e6bf69a175c2561ca079644432d49ca63c9ad65fd789d38c385f0133a59ae421a09013fa0a6f348165466aa921c2e45912deafd823a023cdb2341bdadf52a504dd0a4bd28b3693052eaec9cd6122db653088f20e7fae759edca1b999d289790624d6c1ddd22fb60ed61d414b31bcb1b896e7814f64e55d70d114773271daa562c87a6b3861c5319c0084d718934b3a25cf28ff203131890c15468518ec9c75936c9eb2df1056779cc1bbe6c387ca39b05058ea264342788cc3620812e9ae6d95843e1e33ac0f97531b436fe4550d6d130cc17815c4d655ee214c5bc5aa8fbf34d3ea5c3f5f15a6c0744751c2e15bfb962705b0718b67b42c4b68b7d7c656195843ff2f3b6c09fe0122ee9ae080da8feb634c574a178ae09e12843c9b535cd359102f4895d4f687823da9a9f2f0c65f8bbdf649c4fcc4d9dd768d1685ca1c400077d1aa68badcd72eada0fc8bbc71413ae48682f2a5be0e1e861c22c851d409f2a52a90a2a16d6f6d96cc57522c51f7ffdda26ee637bdf3a9f46e83b20d02cd9378e7c06b3a72186e72eb20aa8ebcef4f7780fdfc143929c171d529967731ac9dd2c4c8c0110c779cdbc310e473371f43a610bcbbf23ffccca3b6f5d383bc5905440df1b8e392ceca0ac61a16c98a938355df7246fd07cfc5a6b5b32217551ca5a276ca5c4f47613269dfc7a587fd33567d36425e34df51562afae1d4920fbae9a731043c7742d0bc95514b429df2de23fbba2b37cc8e0979a1372e6d9c215ff06581ea7de5c81c57d9333402c67d0ccc14b091057a6ea3d621e47c94ae2a09a96a450fd0ceb167561a499d32a63cb1a31d6fa818b3bb3dfdc06f1352ab2a3d7d3119ac887dea59a72ab5030b84ae9180b18b3416c0b132be5013602063dc8addbc70713ee7c1c5feb1f44c3486f805e87bffe30786255badbcd80c1dcd1d23e4f8b2899bf2f8439189d66561ef32a0eaa1243f8db40fd86bfffe4058decd130e44c75337455e05c62426809463af46b0182ac7ccc60752347aff46effeb044df5c7c3acf3dc75816026ca5cf93bc5ea0ec6d6fbdedc5f06f7fbd77aa59e683b0a629ab74d03f34e3ed03566d7ebc48a2bd4d05d7ee5eb6d3b6dff6d2a5b71aec58691a095d8c267dea64adeb9c4b5728e75c2b5b64cd35b1fc73223e809781ee1ed670c26a11643d49817c6aaa1feb393f2bedfce475bdd2b1d48fdfa23727b3a412852288d156e712feef1a3a9fedb747161e4a429e3688facb25727486a2e836497c3483210aace286b79e0ea4123846b2cd4e8dbf8a86e5d17dfbc79ce95f650d459994737699ab2aa3e157605cd62ca022416430bfeea728036527d41cb12e95baaabb6ebb2e33e31ce23991d108d3a5aa7a0afb842244a73a146be8a1643548664c67f6f3260f774c38f285a8abb35ede70d4800add70e61b850086bcbe719f75d1787ea96a31dcf870e1ffae62c3fe188f5466ddcf3a2160e286d9d08ff4c3b94460f54c5fe2693ce24e239fd5d4dd5145df7efd6d7829d084458c6763f04925717f19987724d2e38a328bb650af0720710dbcd855bd3d8813884f44df90e019400c0a00d984f2eab7ea7f9491542769817e13b55b5daee1510938ee420772a92deaa7fccb4e054ada87dfe7894480559dd76ffc76df4e705a0ddedc50fa25f7bf9ef07210f73379e41b28802327e71fe6d6a319b24feb194773aad3f57bb5da89a79667050f6dd18ce318f81840496f41643d5bc8f4285109553f4a1ccbbf1227e62b67168f5c2505fd3b04f79b7baa2fd85ba1a716670e3ed7d220e672e53bb9fcddfa8cc3eb186563cbab381c4337484f56a473cad258cc506f623dafc9e17c950682df9ff1939a850ade88a00e77ad991b32121a867c3ed0f0084b6fad8eac85c5352cea97385e435c21dd0ff45d4a237fd3595467d31b3b6c0f4749de7eb866d5e2b343550f0b45600320527aeb00e4b77c1b55c690df6925ed476e1d5ef47974da88d265adc80ecb99d7ba62d1f8d8ab33019758b1e4a1143763a328cc575c0d7136411d7a57a042a234245acaadb7eabe08bad3af30b766933b46a020aaf2f33fcbc009066b0749c2f83b8a77171580d1bee8291852f1d63734c40338a3bba737d88ebeee5e6034d93055f0761fddee6ec75b39b568942a89c5d1ca95201e6860d30a54c8d7e13ff49af7a68f66d926b7fdcbb1fab6f6b2d666223784a0bd0c527b54045396b0bdf0dfaf02c12ab724860a7e30beadff12de6316f728ee4e20aa45b71e8e5829ecd18ba276a26e29d3e0b23d457a3c1231d3fda957ad147aa191bf8b98ebda0cd9bb51ada2bed2e5bcdfd2eb9c0d62c8fe286e1325968ffcf6188a404c0a99ba1a24dcfd0271bf68154d6faba4a5ca163d7c75bcd9694feb57367c962b88a7023cc120a0338383ffc6b2f57cabf38f27a5cb89ad1322240382c99f41df5a6606d325c94a66b6126fe8d12d112e6c1579bac18bd2bb1472ff3dd2ed996f1a9245fdbc4573832955f5580ddfc14cf0dde6d830d7d6a194451eb738b18c48a493ae91e933632ecb8f864f02e04d3d393081b92b37b11227c24a12661c9d4b5e531392d2c1183c8dd93b2dcc978189db0259a4f7135479dc8bc3afb73af4a54058d7e156cab9cc6771f8b857e7351a94548fa9c43dcfd833eb3c15df176c112449fc29ab7d916ba9a1c467c90a7156303c623e01424c9c65a4ada04eb92dff7414500bb006e590ef9234bb0d01fc53fe0d35c637da54e7f135e0a9d6067cc03ecfcc28c0e91a12d341c1777e7a33bb81474921c7f502d9d2ff8c539d9cd4855252ea1e3dedaca4d93d1e5235cb70b2617f0d2148bd01cd5893efbb69bf41be8623627dbea4ade4d0468fe6c0a5de828aebbec93213dd4e3126196d1dcf4a7e3745517b60051d16097ba0522de85bc136528ba7f760ab258fa0ad025c5b51bb7b3c7bd397f8aface921e11a7b181553407855660124604cd80a99283db624de57fbd3a4633cf5286e5a03f59351513d6366304aeaf29d822a20d85a4d3a6a31b50cd225650ec4277a58fdcbdc6c1999c2c1fb350c4cbc2df6e088ad0fed7338f0825da52da28723de9b04d401c2fb76f6cacf120d8d1f304fbb0e80068599804cfa0e2e630b66c3713b53b71e1fca4ba54e4740d10597e379730f5f2b7b619bd7441c5cf901e3929654d79ee2e27095d0acf07ca02b8cf0e8038fdfd1d94f03a54ac33849c9db2119789ab59bd4bd35442a9d144248641d833ea1a429d07845affd6b7e7652f8d510501995f52d6a2e35168e5ab7d7ab54a723aec8add35d39a05e558867dd4fc8fce43a427f178fc8533c5c7de7aef0d86d55b353333304a317204b12cad19eaff42ed4d74e3141668a617e87ad04d957a3cfd760fbe230871313b0167cdb7f06b808fea69e75c43a6ff696d9886a99cedacaaf4a57ac6dc0a9fba61e633af0612fd546a7ad7ff6999c1e7df819be32e1d54679423411e7e2e63b8512de26ffc0c0391570cc6bf494e6086f799d62be73314b6c072d093ac94c428a57790ddb7730f8d78a87a1ff2f8f817fbe427d0004f58aadff9c84f167c017c44eb1615ef82caf66a7d9373b9ef8cf1cc77355e0ae7d27311172d2854de252f3de2f4467660a267f6ea9574707b2a890cb58fa450ad779a1e134f3480698574abd72a9121681d44bcdb93b288a0eb2df54ac3357d7777ac74e3bd75ca6f654779b7f7fe96b401ba7b9e198b086876678c7d2c3a52e865f64f2fdf7b895120ee09be425df1953fc08e9191281f9cd9b7c094a9e4805cf9c17554100fe3aea645010cf615c3ff347cb5a7f8f8c5a226be2e7d713644e8196dc5cd7364d11f70590e23e74ffaeb288fc3c28040bcb3e3a6c3f345189ce7a652f3cf1acd431b1f0cdd83e97b11261ce578b63dacf63fecfe5937679bb8a4c76f215e885463ec65847fbd4d80b7bdfc2e2d24e0bb48d84f96eed8e4d682b0ff79144c68feba77ed480c72109daa32cae53b4df47004eb9016c9241cd7b0ccde6d6eb020fed69c654a5124b9de2342bb0f5f1eec646cd693e3ed31d29149e60d4673404cec13d7805d935bccccc50edb485c1e2e8befe67bbb3a3f3df47715be59735aee9f051125298c26930d74d75a15f6aae72ee86c156e9b732edf67bbe87fc4ecb58f636d3447ef822849095923327dcb4eaa6075046b799d116f451a0deefe98f97172ce6cbc22d1b64b9368ac7e832688d4c808e7db41fca3db1e943556aac8d87b6124d116e57a88a3d1883fe172afc79ae7d1650950259723e39bfe43c870eca4ed84addb6471aebd38338747b5022b2e26ac20b9235baedfffe65adbe71c2e112c924435139abe7c5dede97a26a9a672b040a0f4d39c1ad7c1c38c3dacf1c8271b2ac8b331124384d450fff301c78bb6e86725956cf113f075cad347f0b610459714292689b5d6d8c9ab128181dc1cb3f306cf5b9f76d1f1f2edaa6154f62a8001506e8f1b3c6c36457e125c502f0f343a4db15bbc683caafacbaf75ff2b9da549fac2815e78ea8c44c9bc3d45e5880985dae612d492506108cdd44d9bf95ecdbcce62c4b8bf40c036aa33abda032046879add2aa9e9ef5c943757a957893ab1e128473e7245f81cb2ee2aae9271b2eceac8301153eadd9c5f892258dc48e1772ce525273e4868468c98e0173d4a2cc5252eeb784a1006d1da30849074eba6504020a1d8a7a9f5a90623ae0516f60e4a07c9760cbca94d890c351b4a7311f2095e189254bb8fcb854d6ed1d942b020ec7b7472f4bd4565ccc072dca23ce9a43bc8cbca1c542abc2541409b528a36c67d0689b1f8024024e53f914a580a84ed7fa76b72cfe8412570fc576f540379d73783323c429623d94f69c94cd7335ba0f431af2cbc33b6ee36af588fdcf13fec66842864ae2e02ac3eb1a2ebfa7a6d5c97620d3499c7fde4d944f6ce04847fe9552a163e40941ad7f97bdf0951ed0b69a2662f2a48e491041aa8e5557c2363cbdf4386352b0b5577afe3d73fc1f677f6b43786fbcc377914e008cf996e589f78e8cc05d9ec1e706541c00b05d57fc2eef1e71feb8f63020449d7724f348227c20a403bb055a0b0ea7a81fa39243908d787af99514d7c4719314cc83687e5bc399cd1507e0ad8565fc561f50fa98c9fbc2c1c62be0209b331b3c149bf2b01a4cb40589ca15a8b92ed4e0115f730f7e16c7470718ae5d39cf7310d4d16ef2145d6153b750f530f29c4da9664e755b559ca1d5a034294d41791059cff43622b0d3e633f674a85ef87fa04951d139d0fb12ed271854e6eb8db54cd72cc8dd44915fa387f6bc08dc3ba9a684e8d094f331aa559a6cb879f1617dd6085a1c98b0a43f9b61527ca2f10ad0c4b1fdbe31b0f099c9a996495b3877a4e8d9e3cc057d7da95a4966b16c8abb4485336df6b9a4186e9e301382c129b83888ac7a0f7a77ddebc688aeffd39076c2e9ee32f45987da90178cd75cf45206a06e024262c82517a491f21b4b32b60ee431bec6b7f46add786c787ba35ab85b915147e39ed1fbdf606205d744fc6018dff6f7244f4fdeaa51ad49e9b4c4564af23fff2b9c991303a4702f067e08cc5fcb4b201dae618c23f07026101e748a364aa251b456429633a4e0e1f3a5e66b2c2a7ea6f2e6472b8a96abdb0a546072b93b85c5c3b18d967a5fd177c5da05ff4da0db7f681e5244cde4162473cd2ba920de433c54f6e8bd23bbc9996649cabf697fce3b9f8fe52f152d88af46809f5d59347aa0f75ccfe6908abf9cc26049e96dc2552581d3864d0b3e697cb55fae77d9b53c42525f392304f963c5125bb899e9b7362bf9bdbe7fc7f2c939c34778d3c25fa2f6e2547be6fa75a3262899c4a0d8df5edc822b768c0cf37a9ae398626fb453879b3e7510dbd826cdb154c2cca7b546cb2cc2d5c2e06e0bc851349efb89d2f8609c3ac6ac3e62b63d478093e62a6e82db1ece2c2c901236ee612a5907a414c78160d313081a8dd172e6c260afaf339f5b5c9f5b8b01cffd08297f39611e9a112e86783928b45acd9b83ce277f1e572da11f269af2d4ec999ecbf75fd1e3e52ff8dee056062616b6387896a914c33e2ecfb10053ad2de104d5b907ffe40b3c3d379cff733fedb507e2524cd4b55561a7f2d3ed0946cde89a0ebcbd3947b15ec7397e93a81d531e09c8f8edb3619021a0137098b0f9832ad8c3c44d16fb758969505c087a28aa02fc92724a6371b454ca723bbbfc54736dab00add307ea76a8408ef95236ff39f1df4e3f74e3cb01d4da0e5d58ca433348caa7475bc596496302a463c6362f95ffdfd87f6463d1afdb5078c20208f17601fdaecf943a324362636bf3b8553a0e6bda1d53173b555902c796c42115dc6202a4d93024a14472b486c1b3e8b40a0f8520673192209f58abe09ad1430a3b982c8439f2d82a435e5088a2a2ba8ec0aeede191455d1b1152b2a768ebb77498279936a8268987b8dfe213a5d726c311415143a4556ea342d9eaec586333759fb87b30fd3250a61c863e327b1c2bd61aa5947c6d951a1bb410b8e69c4c0d64bec9b444b620fe059f6a32ac91663cde272108df5a6c2b9826b8c747895f95f6273a0d3d0efb9a8a6fc8a54ffebd16805ac3a7884a7377ad4ccc162275afa643a0462e934b05777afab8b57a48158db591b0d041eae1d2813154b7ea7e744f875c77c70ed70f03cec2f095b53a0cb57fcf7789c618ae6e3fbabfda70ea8524071728a1de9b5e5f20e996e5d2d3a056192c6aabcb01b35eb6ba50d7648e5eae1703880e770b185d4ea040a68cd1a3a1b73b035fc4feb450459fe4b4e98cbc29174cffe5f790ba67aa8f2ec0245e56599ad764e3a44ae941d13571c86fe2c75e5aa7337e49a801e13d91f10e973c7222db1a32c1e233de2f9893caa30ccb9964bdc474bc3f754d2e3dd87c43e082238f7684820da494135aa72ef39b109c8c39782bde9a4c09c97115c3eb9e2d9982507ec8a63097b1330a7eb7e4fe5870dff9ee81cb48b23ccf6eae3aefa32322d8d97ba96bcf9b1f554c17ddbdcaae9f705d5d41a038a2f83c43328b424e2e83fa8bf9ac208199375d94eeed0c5bc052f52f820bb41a468f13bae53036e6da8cd22cdc8e077d40b8ae658d27a45232b41033037adee42a2d61ccd442dd723511da2188c8fa2c2cbf1f54fe1e00a5e83629d6a510b3ff31dda9f8000aec41299d6742475edf10330414111deca612b94e7d388dcda0d1842ac27ec38aedb9e1babb1505f02efbd631de92fe9378fbbdf1186c580b8eb8b14e41a66a3b13bc2ba99c4d64ffc5e6cde120cb63c6face2b5db3afd439d0dc20efa64a09fab7c0513f9ebe01acfbb619fadc2184084346ed4314f430e2b4f9feebd7ff4b1fc0fd0cf4b06bc7a97e04df7e4bd4c8c3c1fa59224cc67ae5feb818c5800e7b79e5ef2e8e0cf1833c984786cf08459d3ec3b13ac902293a3b0e6156fd6bf48b7e158222eadde85b0fb4d80686fa926965891b793f55796a85fb32335e8431006fc2c7ce5252bf6693037fcc7021951c504b8193b3e54393684f993290e0dc8cd4dc5941a219cb30e0d34077f4bf65702d36683218596cecd3313d490c1f3519824da217857c5f4d1f5bc478a871c091ea11ace9c091dcac5003acfca11beac3869cccc5c66937336599ca2c8ab6e599cf09dabc764e60f44fcb07d836502ac7aeb93379e0a17545794a7b86dad922c66e5ebeb7323ecfab2ce8857dace400bbecd697e5c8acc37d00fca43a0e41ef902be2688aafbb400b1514eb690bff8ac27b277dfc2aa45519f97129d1d9af20ed30b2aad63bcb430ec80219419db5da15c8c5a7ce83bb5991b4770afc3ff371e76a62c1c9b4927be2f7b7be8960b1dd5768c5a5542b22847fe6c281bab7dd40c6f80a732d8cb4edf720538e60fa167401b5922248a25476b923c898c07449d6808f2ec289be9ab7f4d5ba65ab2d439c302ad256662e5534e64dd4bfcac95d9c20b238a249c314724e2ed8cd2c4e37b04162a87d9afafeec74e1f754421557209ba0ce0fd3f40032d5a792f4828a0c1be0cbfa26b620a7335508d13583869406faef3182513f47fb48d43ed71bd3ceb382dc33442aaa6354a6d19c66b062b08478e755af966eb498eab49d1b0a4f7ba899b59773e087a2901dedf958fd42bc9459b8751f1168c605fb5f6a344c07065bc08f9b2f64047b1a891b324b032040c564f57b597a87bd60b76ce7e87ee41879e3bdd8e4596fa5399fbd14874914a89b963a7a3939c2531c8c1941a352c0523921e523754738e1afe27174aac3e5a8184eaa725e9aff9eb7f35d8e27c0249447738fc78bcfff23888ae77ddc46b0eb7326f9c124085354ebd5294ac21130972667949fe6da00abd6b111de08234c6d334425f83260c2ea4ac90268d8e7b393bbee2531147db4684b8f8cf578a7964ef770372909644d0e61adcebb05e3023fd028ecff54b5b712183fb9f56b0811c114666450bf072f81266445b8b71ff5c1bd809b8ecf4a161b708550cebcdc8b6068b23e8e226c1431f0e0f3335a2ecfb26cf7c1f7d79bfafd3675eeafe65f7c30668df6f2645195206e74f611b7a32b4336293dda981817eddaa8778546d047182b4f214bb5f26665baed5c957b9df605c31b34b88f981dda60743df8c2086d0c6d4c3f15a456f1e552ea5b3e4b46999e4be207a23549f952593701893c479db01f21a71732a0e6ea0167f5e06ab375d3eef0c9270ff8bcef2a94372a9d6374045c656b727ee14b8d4b185238f0208ca2b712f946c6c058b440b9fddd2308b4578616cf2b5afd38e3a5c7dcd8ae43c125ae89fe271bc539f52942f008301c3b2c2418c3fdc2cf9b12fdec2192e518cda6d5041c9bc80c1a84a49bb4c1fcee75bba8fb0562df0c83c72dafd56d54bc8c9ce30df5e0e5d0af1a90de19a41b53fd6412223bb3f5f7bc17e0c8f1e885a2de633a9c88318387d72db6b7def693931f4964268f5cce67d22d475377a09274586552228e1a00342b2ac8d7dff09b5d81b1b32553d92c8c3a6429e4e36e34ceddf73884a7d68ffd16bf3a28c13d88cef8c618c74b2206d5349f385de1567fb0673d3bed7f817f77ac86f50bc636bc99c32c852ad4c40f669a6771753b01d83dc52229af1e7143bb2f7fec51683b0bf6484b7b802c00ff94af966a2a79fef1d555167c91b01e3d3a0905af03759354c190d1e884b8de1d71cbc6bc90e13ad97088e894039258f7350e719eb1fe1c44a6e9ae13133004be2e806ad3ba0118ae9d7066b0124e427f04fe6256bedb89497eba5f8c0ef8cc34bdb5fb6f8c7251b62749af591fd02a446ad7aac76de40ede6c641dfd155ffb9bb6b1677f928851ca9e5fcef6d7b698fe7c30dd5bd6606d375f5eb3ed1e56d1033c1e278bb0bba387b033fe7cd46d4f6d3b4bafdac723413f9c5f39382ea44027859bf399e39ae85cbe8e53d578a3e706584139e8ead848e5aecc2a7b4fc78cb5f2da527fb1e588fce2781c26d92a59e92adcce54d4eb688365441a9aeb948d9bf0b3828632583e8407235b1fed34a1ecb5e7fb4e9f38320b15e882ae0e6163f292fa7f9a602fe59f72b6c8db0921ba23d56b1dc99d4db6c31818eb9f49a1e18dc277080fd2fc161e71481e0c7ad9085b197fb743980c96bed5bdaa1f8de935b0078a4a89eaa930ae91bf7f10ecf4e49f99e35ae9dea4e4baf585f71b28c9dcacfcfa6e9796c73b50b6e158977b6b52ed9ee4b2f2f150ed97a2abedcf9e7b3a265084863534c332595751a439b6cae25a001e2db8685c1a31e767dbc71cbb619c17b264b30c05f1cf7a0d508510d12d1e4a4b6460b34c4fa3fdcd1ead8af017062fa9c1170dea1c8e8a514bcd5410c9f0f3b197118c28ac2db2debc7d4d4ca2acab30c5d8430ba39f6ec5072ed578a6ce9b0340b3a3189f0fb5bbfdfe55e176f8a5998684c148d6eace0aac27d17bc00b9f6db60865e63fe2310b549fb2f9625214a4bfcdac6d296ff63c2e242cfff2be5614a1e690ac5ff948198b806259c2de71c26732dc19c8cdb90d82d257f746e51ce6197ecebd77e6b71eacd227341e2c4edef139821eaf89d04ab18afeab551cd944181d752edbc190f215bb64b3869a1bde435a766da6150b5292b8d33418353fadc6a641d2234dfc27e73e836da6891cc41549debbd986afcdca341d4e07ca6f24f6ce7d5e8ca603a0ab91eea60865a05febaa3f910082afbe451bc5fd5b31c6cf755fbe6d0db0d927473fa89ad5ccc637d9ab503d31ed3f129a072ebff6fe90db2e3744834e81de51f2987da0f88ceb8a26089e4a3042cc1996ecca3173dab2128d89af7fc6188dee49057b54289a1dbf823bb8696644d85776fef4a744427c1c8627b274276a6d7629409b5d8eace71c0546f2d9a4cc998afe45cbe3f2c7960fe5fd5ea952af7a5d1237139de1d614dedeca4c22a992cdca6a2ee8452d3ab25ad69774f9dd2f864dbb80dfdc17e1dea6499d80b122282f5e9421db902b0d88e2328f78c19ee3dfb2237cc4d3fbe063325ede6668a09a0793870cb484206533c5c6e245406270c96419e01aa568f32e2825a0d354702301930e52fb321e8ec0a5f2e77d484e654c66339cedb4dd6cef8e599ecd5e6b0928b3eb97500d45a9b95b04f6ac2e7d0b70c3b9f43a07f339aab05dda2d79ec0d5c5ee79eb1347398195e3f9793f7f54d24748447e28e1a338bb9029378bc610cf1a23d2e0c6cc63a54337e4d80a1c3737d1dee6fece4003f6a72bf6af35d1b1f29d00464b9fbb48c99599885d566c43cc68f8120f10e5928f23be079d051746c101c60fab874017d1246a6fb471366360388a2754d1f0c94e7f5ef0893ab231a298294db1f779ffb85faeac0edc93a37d56ed355698ca5f3328a32b8681662f297e02d7f08a8abe66df9430403ab41ba9cb2568c62c97cc6bd2c8ad287bd4cd4a9e30563c495291e0141013055657ee514535205127956df618eefe66a79800384559167906a817a5b3494c4347001242fefb82cef0ca046b6135b4670d60af7d6e216fe21f9a7d71f408600c7231efebf8a01b1876c2f65c29ef4ab52ecdfdd0009258993e9ce80d4f38d8bc43cc0fd63fdabfbfa64d973a5c5557829134b9bbc360df8681f38fb592031f8c994e2999a548c44d76472ee40c63e7b4f47ea63a4e6c3be2c6f1dbc878cc72604313ee4ba1dd934a6ad130000bb0b11e5574c0b99736518d451fe94087f2ac0ea55bce70ad9f548f37935763bcf1618285a7f01c1845b5a328d15d40e24864fec680393963433b24151a02e127bf98d9c598ccc7350d04a7fa9ee840ba52d64ba1241d334fa73f4e48e22817220527db65800b07cfadce90d5aeebec1879f9c30930361c5c3b514867cd8f0374abccfdc46375672a82bd1f337ab049c4fd645a13574d89d7248a3b4eba2569f7d0847ed570934b256c4160772b3259c45e8f0098a7b1d107fbd37ed5d506fcb2eac78b7476c8053e87aaf2bdba0ecc168c8c76f11eb5cbcf54d67d1e60ea9ad071f47969687fbdbf7a7037c224c79f657edaa1cc8fdeb4f1b2b49143feee6f1f48534fb6151a9715fd981ff25486386d4ef4276a22d78056a355f1691ac4832d53add93ef71fb9e31679be2444262520b71e33a47f97f4c00609057c4fe7639ebe3669ae288c65ca13769b61ebddcaf22a6d3f9f5c516fe1fe6aa5c1ea396832142763d50a0982220c2faf1976e0538805d3219b28e9e5155f500b85628d240ac2b4497b3a058f05563e4ccf06c43a26e248dc64562dc916c4f24a92fc315e3d9d1f07410172798a007d3963cfc9107e20f1a666c43a20fe3d0b9faa7c4dd8b5b3ee8ac50b3d70e2fc477497ced8ff0a3f54926dc81ed28b191359b5621a495df8451268db9ad3b69eb60f7d2b83510cf8cd9cbbc87a7a4dedcc604efdc48fd2c11578ea652a6588e4e7959117a8d691c47e4db5e75538254479b80bd6f3fa413669719bbd2435c85d413328673f0cb698f14b1e2b73a3b40892b01555421685bfcc479a10afe15c1dacace1b2245a8457e51c60c66d26c6bac7af1636f8bcd52d34e29c96e001e779c57ea54f129dfd501284b207ba0fa00653647e9e9c5b1ba2e1e7a8ca0e0e7f357808b975c721e806ecfaa6be3de2addac2411f240b0e1f3418163acddc5c567cf2faef4d95221834a3aaf110e2a8932a25e772015fdfa6f92273aa323e58bfcef9fac538796c6da860769eb4c177a1506ed78c88ab044f304fd24fb061b97dc6afcef68398c1be46adfbf6356a1f665d44ae80ec2e0064767ea27a70751d870343649ae4cf93ee0d9bc9534561aaf9e4dd34c7e7ce9dbc6dfee36411f210c803235675ec003494e8663a0522f09bf9207d0fa15623a6a68defcc28cc907f53cf04c4cc3e4ec8153f0e80f9deb98e49f418a6b0a41a6a2662f06b13a70f20283a63684ab9457acbffe914f6ec4d0425aebb1f2cbdb73a98ca83e7c10330644aefbbc36858e218928c1f0732931be7b83b40d0ae01faf333a2714a115522a9954933532d8f3eeddffc0d4f4a06e682e2974fef3a303cdb71d5574e2c674f649404098af0b046fc6590b1da52fa99e5490de5e96bf852aed9e1e1ad721753e1de4324e0e153f852e8c3f97d8ae2ab8f605e820b32f5a18849a76f35b5d8a7aaa75c6c1d03378347c7c4ba59c2a4a5139d897e4e0116a8206922b72b8782045933b20c8f73133245b1888834b2af53fff0826cdf1e1b7b5ab6cd45792995de5476d9d83b6ff89d61bb89e02ab0c32c725a4a7fadd6b76fde758b74f099d7bf9d0a0d5f880c315f175abadbe0bead41c16fd29f06cd4954226ad32341f5551c388a1e06bbf9552a8f8d7be6549123bc4846461276899bcc4fc4b3be2326284b59c218ae0b3cfc30f7a64f186d3bff1c8bef108188f3053278811dc184251e26d3f18de7826a1f7523ac819867f8a5fc2a4e3bb2add079a7e309d9f1587f30179b67c9d04c66348282f2227867de1cd8db8c36cc4d1c4c9a2a4d7319f764b62836333dfb4fcb8b3ea774ffb0976781dbeeb2680f347590121508c492f9d9755352787c417e98a8ca23b33bb594474d2485bb0adc4368616844756091a7bbbc120137283de0872ba4a7b2113c62324241045fd3ebe90c24ce248916af1817fee7a900fda143f815b4fa04aa1276e3b5803f600e7fd1b2662d87dcdf86925763736843ffdaa3e19603b19fa7f9de78572276527abcc14e524fef4ff672bd4f179a55b9b74470ab1c24572ba248175bf5e143b07b91a4fa51d2eb66ae7c21c494a450d6a50fe7c93b96eaa0d24d4729cc27a20a9b4999778e5665d7ac5eca18e6fb18ea4b50233c698bd6d03b26c4a6cf3c0f7df20ae8a93132a3459a1792201901e36c0631f14103552123b672851c07c604a2044fdce28bf59db6f4b812c764ab768e8d92c03ff179b9540a3595f4e0aacdefff81789ff1b0a0142a06e94518497efea7dca0c6902d929a5137c4def122efa37ede67b710a609f2665f4d3f2bd78b4832127e63226ac171c07858f57bdaf3b4478679c0f0b98ffcb1e5aa68c2b70f19482e18b0221185b62c2b782f0ba3cc7ce0ff1e32a5ca98c49fa80e6e02ebadda6fb47997faf30fd6d4129fd151695fb9cb4e7abebc35a94b3f58950c53ce9898093ad79a7eb2ee223df8d692e85130178b942abe5b02cb04abf23acc79b9e17fa9169e3014d3962c23cd4807a5cc6ab53083ec717ffd2e76e362e058c46710b4fffa54110e43939b2ba995eec77ac2fc0e018b182f7d040a167c21ba18b769e0e4f7c0ecc6dd257385a6af6bd6db678c2e338d577b5927c247814dce2d3c0365abad08b79cc00142fe9a88d5f3c30e15721b7258f8388f4fe1d50964c81989c48431c5df7b33419625464f9a67ee41273803d52173b6a5c626442afaee4fc3c7b4a9989caeb51149e53c69b0528bbec05421443b6a87624ad02e31898d14c13c429a23159ba66c8d59a9dd7d902d5c2049d2a726e12e3a486d14497b5ae2ee8c616dc640f66d32aeef324c8ca79fd1588f05a7c9e075f542b9643ad7d2b590e56e25e49ddee8498276fd770a0532978be76516968437363a77f4bb888ee796ce91e2c2891a87bc6f799f0bf04e44cf9a495410f297958fabf135546b74522e80ade6b8a16f62f0fd695b0217050503453625ebf0d3db08c28c21b4b6d9d0538e54d5a0f4bf0f26a0f56513e111e9c86c0a063fb226807053db57c3c73216f67e1d790040029a3db751cd43d948211b72e1373578ac4239d1fb343124694e73a2c5309227f0c2bf4134e87d9e90d6923964d8e6ddfe8347eb939d5972c20a81c8eb83e81e16c8fea7bbdd7c6560ac5f71f8076d06db9a2211a2fdf3c8a8666e6b4ca43299424486bdeb605bf8b9102d4f5cd3fa17dc9204becaabbd800110a66a4df56a3dc66e3e6e7668811a5fe7e1ca109b5ca3d793ed961bf549bc6ca97c0926de99830ecad4e1bedeffbbe452c4d7d3bed6afab92f3859f3e8fa9dcbe09d786d62205e9aae518dcbfedd0f143c47cf14dc5606b3af8f9e827c5ee750f17171a1b9019910916c9a5aafd50ea7c2da63825ee00c2e1ac7a6fab057f31d331fb8a172b40b3d042f3cfa1dc2f371e899c0121dc711b2e4142fe0c6f4286aaa02c12dfdfa7de363ac95d119f341bd7f1660c756e4ea5ca7464e89dd61e456c339320b4c2ccf6db3f3b14490536a95bc9d13b250e833f313df3363efe8d48333344cd385c686f196a8da9c7eb85a0d23901827121b5693a2c32a22d6c7cb7c63003987b0bc120327ae3bcf0201a4aa272e33030490e445be380e5f38badf89377c6da06e0154a83edf6d9170e8407b1e347090226ed02b6a92ee902b08d11844f55f46c91b1cf76b6abb8fdf74456025b3e205c5148d509fc30e66b4a011e707f8f6ed22346a28c9874e73781635e68a1195609689999cced34e40174c29ab9aeb36875610864f5d37278aa1f30e678d283e58bc25fd7d43ef9ef43916a4233637f66730bfa1bfbaae96585028385aac8b29fee6878c6dd323347621181bf7101184786eccc62a3b9146430622c539160b7ca66966f6be4c5e70227910f53b8f2aacdf6b6f23169beda9e5e93450cf8e0f1fe34f6152a62d42fed04e46c03102a1c3ce8444e5e15442357eba9dc583256ba739b3d1b55f159bcea99cc49e9c81e625b4dee95065fbd2b19fb5f46c65eedfeaed01ad44d4fcddabc2265db33c7f21aecd2d5c350161a0a496a50d0829cffe07892ceed1f36ec6d799db3b8d3630b0aa83d255a7f351e81e00373893aeb61ef3bd12a758b69ee7c4264971d645a127bb57aad74594d3b7f51ea11a332afffacc0fbeb7e80368714e3c6e0051499b7b6c95adc1851e156c95a72bfb3b71f8bf6458747b1fe0abfe918c39979f6a60636752b65b8d45b094961489d154faf5fed0d0b178679ab7aa15ca0ac7d3418098c497891ead846dc943331e854b06bb51d1b6fa39845a3487daf23c148a6b139286295a1ea6d851fceaa795d2b3a236f484490899f6d2681ee98a1faf85a3f33888d686333f4cbd1722d68a10d597cd4b76ef1e114e6e84ac7d318cae8c000b134d591bb5ab995e29cc6e08204a143177b5c975af76ac443d9562089948d430d94fa2847e04f8490a5a895293f14fdba9b1fabeedca9a2237855eb8b4dfac26ed04fd45403f594be21dfb625723e036cecf8f6a00e9b6bd795d1d47756b297d7a0438ae8b4d86e92ab0669a5e1edfcee58ba755473f30c30cb556cb3862e32cb734101352069cfb73f890ea808ea5abf03b3a9267f32d2412d21bbe980261e54dea5ed6cc37e436f6024eb53e3153fe3f5bdc27695318d4fcbb1f7be96f6e7ad4b1fafe8fe235f99a450656df4457e3a472c06994017b152926bf2842e4a2943fbd1deed4105a562f8a307e890ce25104fda241eb7eae2c047615978d76da48668209051e7d37b8ea2e004b13e7fda8878f5d165e421dd5445d6b3f626c701ac4752cc20ee8070d2b8ce6cab0615cb49c507424bfc512329723243f35bb954501e511ef4c18f667036954d7c575fafaefb0706c507fa8c7c2ea962ec54a0ba68bff74b45eb79de76c455501ec8f4ff93cbc38e045c5d045fd991ddf2b208dd9bf39a591f50e6ec793416e2867f54e8c6c7e89b68c2e7f4e44ed8026589ee1abb3c81d69d0d1ff6407b5ca20acf2c9d8013c4105b61fbf050c2a28e6cee57d0cc9611371951519946dd4997fe16f22e5645034ba9ab3ea320043e367d66516cb66f175a015c64199b44af409b83d91209019ee9c530d3eb24bb509cbc6bc987d9ee2df98dab9150931aafe02046f040dd042764e605a7c2bec3ee81ba68b2b0774cca68183c38d02f893dc03f6168782e46ac73cae83657736c3918116d8ca3652ab30195db8f60f93f69b85732366d6bb5edb5ecd7052328d9223ad2a5113aeeabdb47bea711d893c6fa23044fd799490a1a1d18fa00421ec6cdeb678923a5cf2bf4adbc5146bac6bfbd8aaacf7bab40299983686a080654dc5fae35bcb98999b3205ef6998d474bfbf7b4c9c2d80eefc87b6e0b163029834a820c79c154c377f52e2719fc3ff2a27600a07ae089ea7fde9087f6bc540bc6dec1dd4b92ea4d3fb903f69eabf6d919afd48f4e312b163c28cff0f441a8d56e53787d13dcd36716358b832e296eac07b2c93853afd5af19ae48b24de1ca0a806d64c8846007a55d946deafeb67397c1d1c06f3fbd18577d4676b5011e695cb6cdfd208a68a6318a952201574427d10637518ee3a1d1353cd4d2e4d70fe230e979f14ddda1cf6b43aa4997f416f9aa32d6f4bfebb80e9901d08ba3e580f02b592053e6673342cf0b0cb77d9b0227c7f11013f7d8a9445cd769f1e775ce2db4a1a2ac01f08c512dc0eb7fb96f15b4992d8e3810701b9ea322d005529a8b3c46c24e4208c15d43518a3a4b334c75ad5e12534e9d1d2b814b9d05ecd31b56e96ac7e43297ccf1208706d25d54281da01dc80e06bb32d5f9aa50eb0a0deb6fa483019bf3c63fe164fa8c0dcd8fb731c0aa6eb96b34eafd4b5f90cbc9eef415f808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f431475775d3649f37f56ad175b7d5d4707405f9d0929cee2f34587afa628bb9fdf8a294cdb7ee9cadfe036ca70aa852b83b4d4ce820d153b4d63f5d0252045fbd2891839c0ab6ad9521a9af92a7222d7bcdfc365918deec802714171ccde63d98b2ff6c2f7cb03cbe8d56e9acd3783bc3fcc9e909ef63034ce7bf8c85c697ca51370e1b6b36a0fa62d769c072322eaf0a63033d54bb2ea9c128938d6339c681081c5ff649953be4db6a0c084cd044c37c73af80a01702c2322c48ac1f85922ae4050f97b4384107c1fb390ad553771057270cb577dd2a14ec74f932e9abcd6792ac9095fd9771f7c1f3ee9ece1e011f9b934f4e24f8a99b15bafb20ef36861a830d83edf2260482e72fda0e07cde867b9b1b52a1b496f7b22f6f9ed01e683cab03265bdfa4266fbdd2f12ed4b2ef91470d04fd91d3f4305098121880174262bd720305a1fd4cb3ae62a520d909c70bed4db9867666920710ca824dd220910c55137582696f61e45103e848c20904e28226b83ebbf5f6ca5fa34288d3e0ef42c7a3030875f31c41e7ef37cd7d8a985211a5232072f78b6e762f92e33bcaea7b4a8448b46d21351437c9ce59c91d1456266fbdf5925cb8298cb9f0c407a3b4a151c80077205143dbcbaf93c6fa887c1b424c6c25e7f598e186c5251032f8c6b5c482e642b80409f4a3b8b7d698eab33ba0d4a2c0b792965a316d1e3855270e257154b10f66e721dfe4ec6f72dff1bf4a1161b05a1183a5a24e73002964912f60234d2d232b00a006b21ad4466c917fd5691dbaabb7893704f5cb66b597a0ce347ee622b4975296bd0ece206162a14ae11344e472782f2f737f501096b4767cf211e045290db156ae9a5dca1b9f38d341bf796e5f79d51e1e96c2be22ada92a0f180933b3c29f159297e6e0a2302fb9cec2a17f52a58696ee1838f2819f801cbe585943096341b029742cbec959a45f7af222a4d485bdbe94788971a5d7e4a1a43cae8e7a513f314c81436c16ec7c8a668ed4ae25d9a10f38faa3ee570843ccb17812576f927c8f725e1444a42b2c19851fe91ec8f504c21d106388dc89a1da9f9885e4872e8aeb1a870a63f7e79dba3fc551f215c91dd120bfab90929a6e7d0cdbe815c9bf318cff07e2f5f921b1bb230522103aec5b927dd497988854339b425cfb922b7918bcb1e79428050b6cfcedd6fd799d87e2dada3a470ce5f61f4e2cd53e9a188350255edf819b8153985549568fe82d4eb3e60d95da7789416059b0a9f24f95f091f1d2014ecd901627503bc0d0ee2e63c8ae9585c3150d9a76733d9a13d0394beb4ea90cb4f78b9469a0d383fa6d3a80c58e6e234cf9aa94eafe1671e5b4fc96b66fe5e02acab890a5d18a8f4ebcbb33b833d81003026f8492e5366dfec41b413debb571d14f903574c7ed837c6bebeffa8a5c184a4a072c5282e7630dcc9d8dd341ada4a19814335c5152c818a4844627663333a914fdee07223a124313105d7eb6a0fce92f268169331e9fe81063e345eb715d3b1706f2a6ebf3346libLLVM.so.5libLLVMTableGen.so.5rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootllvm5-5.0.1-lp150.7.3.1.src.rpmcmake(LLVM)cmake(LLVM-)config(llvm5-devel)llvm-devel-providerllvm5-develllvm5-devel(x86-64) @@@@@@@@@@@@@    /sbin/ldconfig/sbin/ldconfigbinutils-develbisonconfig(llvm5-devel)flexgrofflibLLVM.so.5()(64bit)libLLVM.so.5(LLVM_5.0)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.4)(64bit)libstdc++-devellibstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.5)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.14)(64bit)libstdc++.so.6(GLIBCXX_3.4.18)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libtoolllvm5llvm5-LTO-develllvm5-goldncurses-develpkgconfigpkgconfig(libedit)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)2.21.905.0.1-lp150.7.3.15.0.13.0.4-14.6.0-14.0-15.2-1cmake(LLVM)llvm-devel-provider4.14.1[Ѱ@ZZZZv@Zz@ZqZp^@Zo Z`@ZV@ZV@ZS]@ZOhZN@Z@P@PP @P~@PPͷPPPqP+P7@PP@PPpPpPP@PPPM@PP_@P P O@OE@OO Os@O~O@O8O8O@OOO[@Ohq@N@N@NNܲ@NؽNl@N@NåNNN@N@NvN@N@N@NN^N @NNj@N]NoEN_sNEN98@N%qNNBN@NN@MoM5@M@M@M@MUMtM@M@LL@LGKK!@KJmsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.comnormand@linux.vnet.ibm.comdmueller@suse.commsrb@suse.commsrb@suse.comfcrozat@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commsrb@suse.commeissner@suse.comschwab@suse.dedmueller@suse.comjimmy@boombatower.comidonmez@suse.comidonmez@suse.comidonmez@suse.comdmueller@suse.comafaerber@suse.deidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comjslaby@suse.comidonmez@suse.comtoddrme2178@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.comtoddrme2178@gmail.comtchvatal@suse.comtoddrme2178@gmail.comtchvatal@suse.comnormand@linux.vnet.ibm.comschwab@suse.deronisbr@gmail.comidonmez@suse.comidonmez@suse.comidonmez@suse.comdmueller@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.commimi.vx@gmail.comidonmez@suse.comidonmez@suse.comidonmez@suse.comro@suse.deidonmez@suse.comidonmez@suse.comidonmez@suse.comrguenther@suse.comidonmez@suse.comidonmez@suse.comdmueller@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comarnaud@versini.eupeter.trommler@ohm-hochschule.deidonmez@suse.comro@suse.deidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comdvaleev@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comtermim@gmail.comidonmez@suse.comdmueller@suse.comschwab@suse.dedmueller@suse.comidonmez@suse.comschwab@suse.deschwab@suse.deidonmez@suse.comidonmez@suse.comschwab@suse.deidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comcoolo@suse.comidonmez@suse.comidonmez@suse.comllunak@suse.comidonmez@suse.comtobias.johannes.klausmann@mni.thm.detobias.johannes.klausmann@mni.thm.deidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comllunak@suse.comidonmez@suse.comllunak@suse.comdmueller@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comguillaume@opensuse.orgschuetzm@gmx.netidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comcoolo@suse.comidonmez@suse.comllunak@suse.comadrian@suse.dellunak@suse.comllunak@suse.comllunak@suse.comidonmez@suse.comidonmez@suse.comllunak@suse.comllunak@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidoenmez@suse.deidoenmez@suse.deidoenmez@suse.deidoenmez@suse.deidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@suse.comidonmez@novell.comidonmez@novell.comvljn@ovi.comidonmez@novell.comidonmez@novell.comidonmez@novell.comidonmez@novell.comidonmez@novell.comidonmez@novell.comidonmez@novell.comidonmez@novell.comidoenmez@novell.comidoenmez@novell.comstepan@coresystems.dejslaby@suse.dedmacvicar@suse.dereddwarf@opensuse.orgismail@namtrac.orgismail@namtrac.organschneider@exsuse.dejslaby@suse.dejslaby@suse.dejslaby@suse.dejslaby@suse.de- 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#1111190)- 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)- Use alternatives for clang's bash autocomplete to prevent conflicts with future 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)- Rename llvm-remove-werror-date-time.patch to llvm-remove-clang-only-flags.patch and remove more clang only flags.- Enable shared libs on PPC64- Require llvm-clang not just clang- Add llvm-remove-werror-date-time.patch to remove -Werror=date-time for CXXFLAGS, gcc does not support it and it creeps into llvm-config --cflags- Remove wrong Requires from the llvm-devel package- Add default target triple form ARM, fixes bnc#893359- Use ninja for building- Update to llvm 3.5.0 * Major update, see http://llvm.org/releases/3.5.0/docs/ReleaseNotes.html - Use upstream pristine tarballs - Add libc++/libc++abi support clang (only on x86_64) - Add libcxxabi-exceptions.patch to fix libcxxabi exception handling - Add libcxx-libdir.patch to fix libdir on 64bit arches - Remove asan-disable-hugemalloctest.patch and cmake-patchversion.patch, fixed upstream.- Fix the sed line for minimal damage.- Add baselibs.conf to source files- Add cmake-patchversion.patch to sync config.h.in with config.h.cmake- Update to llvm 3.4.2 * Minor bugfix release - Drop clang-max_align_t.patch, applied upstream.- Add clang-max_align_t.patch to resolve issue with libstdc++ 4.9 max_align_t missing declaration- build compiler-rt on ppc64 (don't delete it)- Fix resource dir for libclang case (clang-resourcedirs.patch) - Always build tests- complete ifarchs for s390- Remove non-existing doc subpackage- Add a dependency on ncurses-devel since libLLVM now links to tinfo.- Add 32bit libclang bnc#857131- Update to final llvm 3.4 release * See http://llvm.org/releases/3.4/docs/ReleaseNotes.html for complete changelog.- Update to final release candidate (r197980)- Update to r197866 from release_34 branch- Update to r197490 from release_34 branch- Update to r197142 from release_34 branch - Disable assertions again now that PPC64 backend is fixed- Update to r196899 from release_34 branch - Remove compiler_rt-r196612.patch, merged upstream- Add compiler_rt-r196612.patch to fix ubsan failures on i586- Update to r196762 from release_34 branch- enable ppc64le- Update to r196503 from release_34 branch to get compiler_rt fixes- Update to r196487 from release_34 branch to get compiler_rt fixes- Ship cmake files for llvm (needed for lldb and such)- Update to r196371 from release_34 branch- install python binding to libclang- Update to r196358 from llvm 3.4 branch - Add asan-disable-hugemalloctest.patch to disable ASAN HugeMallocTest, it requires 4.1+ GB of RAM. - Refresh patches * aarch64-suse-support.patch * arm_suse_support.diff * assume-opensuse.patch * default-to-i586.patch - Drop upstream patches * llvm-disable-pretty-stack-trace.patch * r189852.diff * unreachable-code.patch * llvm-no-visibility.patch- add r189852.diff: Remove vtables optimisation that breaks ARM and PowerPC - Disable testsuite on ARMv7, takes forever to run- Fix file list for %arm- use %arm, not arm in arch conditions - add arm-remove-xfails.diff: remove XFAILs in testsuite that pass and thereby make check fail- Set DisablePrettyStackTrace to true since it messes up signal handling. bnc#839074 and fdo#60929 implemented with llvm-disable-pretty-stack-trace.patch)- Fix filelist for aarch64- aarch64-suse-support.patch: Enable AArch64 suse toolchain support- Add s390x support- Remove unused chrpath dependency - Re-enable ARCMT since libclang depends on it- Define host_triple for aarch64- Fix ARMv6 build- Only enable PowerPC on ppc64- Disable shared libs on PowerPC - Disable ARCMT, it only makes sense for iOS/OSX- Fix build- Disable building unit-tests, should fix undefined reference problem on ARM & PowerPC- do not build on slow or low memory workers- Drop disable_neon_in_armv7.diff, neon seems to be working fine - Add cmake-host-triple.patch to pass a host triple argument- Create libLLVM and libclang subpackages.- Fix finding internal headers on x86_64- Fix ARM v5/v7 builds- Create a baselibs.conf Provide *-32 Bit Packages for x86_64- Initial version of a cmake based buildscript + Updated arm_suse_support.diff (patch6) to work with llvm 3.3 + Set version in spec to 3.3- Update to final 3.3 release (r183898)- Disable debug symbols on PPC64- Update to version 3.3 RC2 * Small bugfixes- Enable ARM64 support- Add unreachable-code.patch to fix unreachable code warnings on SLE- Update to version 3.3 RC1 * Added support for AArch64, ARM’s 64-bit architecture. * LLVM now has a new SLP vectorizer. * LLVM and clang now support IBM’s z/Architecture. * The R600 backend was added in this release, it supports AMD GPUs (HD2XXX - HD7XXX). * See http://llvm.org/releases/3.3/docs/ReleaseNotes.html for complete changelog. - Drop upstream patches: * pr13303.patch * pr14795.patch * pr14831.patch * python-ulimit.patch- pr13303.patch: reapply, was temporarily reverted upstream- Add pre-generated doc files, remove sphinx dependency- pr14795.patch: Fix incorrect line numbers after -frewrite-includes (PR#14795) - pr14831.patch: Do not incorrectly warn about pragmas in -frewrite-includes (PR#14831)- disable cross-compile mode in stage2 for armv5/v7- Update to final 3.2 release * No code changes since rc3- Update to r170281 from release_32 branch * SROA fixes- Disable compilation on PPC, only PPC64 is supported.- Add python-ulimit.patch: Don't set a limit on address space. This enables us running tests on PowerPC.- Unbreak PowerPC support- Update to r169678 from release_32 branch * This is 3.2rc3- Update to r169391 from release_32 branch * SROA fixes- Fix ARM build- Fix llvm-config --libdir to return /usr/lib64 where appropriate. The old method of using sed on the executable does no longer work, because llvm-config is now a binary.- Update to r168987 from release_32 branch * Crash fixes * Miscompilation fixes- Stop excluding ppc64 architecture- Update to r168357 from release_32 branch * Fixes a miscompilation with gcc 4.7- Update to r168286 from release_32 branch * Fixes llvm PR14309- Update to r168031 from release_32 branch * This is 3.2rc1- Update to r167720 from release_32 branch * Thread local variables may have a specified TLS model. * LLVM now has a loop optimizer. * SROA has been rewritten to be more powerful. * A new optimization pass added to merge stack objects which are used in disjoint areas of the code. * LLVM now merge consecutive loads and stores. * New TableGen infrastructure to support bundling for Very Long Instruction Word (VLIW) architectures. * Added a new target independent VLIW packetizer. * A probability based block placement and code layout algorithm was added to LLVM's code generator. * The ARM target now includes a full featured macro assembler, including direct-to-object module support for clang. * A new IR-level pass, called "TargetTransformInfo" provides a number of low-level interfaces. - Refresh default-to-i586.patch to apply again - Drop following patches (fixed upstream) * arm-suse-support.patch * pr12463.patch * pr13141.patch * pr13303.patch * rewrite-includes.patch * clang-fix-mips-test.patch (fixed differently in spec file)- add explicit buildrequire groff for man pages- Fix debuginfo generation- make link time optimization plugin accessible to ar/nm/ranlib - build the plugin properly- fix arm build- change rewrite-includes patch to use options to match upstream changed option names- fix debuginfo generation (PR#13303)- Do not reject PCH because of -DFOO duplication (PR#13141)- Update to final 3.1 release- Depend on python-base so we don't pull whole Mesa- make -rewrite-includes support -C and -CC- patch for -rewrite-includes feature- Update to svn revision 155819 from 3.1 branch * C++11 fixes- Update to svn revision 155700 from 3.1 branch * Crash fixes * C++11 fixes- Update to svn revision 155574 from 3.1 branch * Crash fixes * Correctly enable compiler-rt * Remove unneeded runtime python dependencies- Switch to 2-stage bootstrap because we don't do build-compare anyway.- More fixes to llvm-config- Fix llvm-config --libs output- Update to svn revision 155320 from 3.1 branch * AVX fixes- Update to svn revision 154914 from 3.1 branch Major new features: * AddressSanitizer, a fast memory error detector. * MachineInstr Bundles, Support to model instruction bundling / packing. * ARM Integrated Assembler, A full featured assembler and direct-to-object support for ARM. * Basic Block Placement Probability driven basic block placement. LLVM IR and Core Improvements * IR support for half float * IR support for vectors of pointers, including vector GEPs. * Module flags have been introduced. * Loads can now have range metadata attached to them to describe the possible values being loaded. * Inline cost heuristics have been completely overhauled and now closely model constant propagation through call sites, disregard trivially dead code costs, and can model C++ STL iterator patterns. Optimizer Improvements * The loop unroll pass now is able to unroll loops with run-time trip counts. This feature is turned off by default, and is enabled with the -unroll-runtime flag. * A new basic-block autovectorization pass is available. Pass -vectorize to run this pass along with some associated post-vectorization cleanup passes. X86-32 and X86-64 Target Improvements * Bug fixes and improved support for AVX1 * Support for AVX2 (still incomplete at this point) ARM Target Improvements * The constant island pass now supports basic block and constant pool entry alignments greater than 4 bytes. Clang Changes * New: -Wdangling-else, -Wstrncat-size * Improved: -Wformat, -Wempty-body, -Wliteral-conversion * Clang 3.1 adds support for anonymous structs and anonymous unions, added in the latest ISO C standard. Use -std=c11 or -std=gnu11 to enable support for the new language standard. The new C11 features are backwards-compatible and are available as an extension in all language modes. * All warning and language selection flags which previously accepted c1x have been updated to accept c11. The old c1x forms have been removed. * Generalized constant expressions * Lambda expressions * Generalized initializers * Unrestricted unions * User-defined literals * Forward-declared enumerations * Atomics (both libc++'s and libstdc++4.7's are supported)- Target i586-linux for 32bit builds- Add upstream fix for llvm PR11642- Don't run gcc for ada files, just fail instead.- Add clang-glibc2.14.patch to support glibc 2.14 headers - Install profiling support- Switch to 3-stage bootstrap- Build first stage compiler with -O0 to workaround gcc 4.5 bug- Update to final 3.0 release * No real change since rc2- Use %{_lib} macro instead of checking for x86_64- Enable ARM support again - Switch to optimized build- Disable ARM support, VM goes out of memory while compiling it- Really enable ARM support - Remove forcing -frtti- Update to r143961 from llvm-3.0 branch * No longer hardcoding include paths- Fix LLVMgold.so path for x86-64- Enable ld gold support- Update r143456 from llvm-3.0 branch * llvm/clang 3.0rc2- Add llvm-pr9614-part{1,2}.patch to fix LLVM PR9614- Fixup dependencies so that llvm-clang doesn't depend on llvm-clang-devel- Update to r142912 llvm-3.0 branch * Fixes to python bindings- Update to r142641 * llvm/clang 3.0 rc1- Enable ARM code generation- Fix libdir on x86_64- Update to r142341 * First build from 3.0 branch * -Wc++98-compat warnings for the lexer * Add flags for the remaining shift related warnings (-Wshift-count-negative, -Wshift-count-overflow). * Only warn in -Wliteral-conversion if the conversion loses information * Added clang_getCompletionAnnotation and clang_getCompletionNumAnnotations to retrieve annotations from completion string. * Add support for -std=gnu90 and -std=c++03, for compatibility with modern gcc. - Switch to tar.bz2 and remove xz dependency- Update to r140780 * Code cleanup * Crash fixes * Add support for alignment-specifiers in C1X and C++11 * Introduce a new compiler switch: -fms-compatility * Emit debug info for c++0x nullptr.- Update to r139589 * C++0x fixes * PCH fixes- Update to r138939 * Many crash fixes. * Performance optimizations. * Allow C99 hexfloats in C++0x mode. * Add missing function _mm_ucomige_sd to emmintrin.h.- Update to r137452 * Fix problems found by PVS-Studio * More AVX fixes * Many C++ fixes - Add assume-opensuse.patch to remove dependency on openSUSE-release- Update to r136773 * Many AVX fixes * Support for C++0x unicode string and character literals- Update to r135431 * API changes to match Mesa requirements- Update to r134888 * Type system rewrite- Update to r134813 * Mainly gcc compatibility fixes- Update to r134698 * Up to 80x speed improvements with -Wuninitialized- Enable RTTI support - Disable assertions because they are not thread safe - Update to r134611 * Many C++ fixes and speedups * Updates for AVX instruction support * gcc 4.6.1 support- Fix manpage generation (bnc #703591)- Update to r132667- Update to use cmake buildsystem - Remove unmaintained ocaml support- Drop ocaml support because its unmaintained - Update to latest svn revision 132050 + Start of the upcoming 3.0 version + Support for gcc 4.6 c++ headers + Better support for C++0x- Fix ocaml dependency- Update to 2.9 + Type Based Alias Analysis (TBAA) is now implemented in clang + LLVM now generates better debug information + Inline assembly now supports multiple alternative constraints- drop revision from Requires: fields - update to 2.8.99 revision 129008.- spec file cleanup- Do not require specific ffi version but gather the appropiate one from the distro- Fix compatibility with C++0x compilers (g++ 4.5)- Fix C include paths- Fix header path for openSUSE 11.4 - Enabled PIC for x86 for loadable module support - Enable package tests for llvm and clang - Disable package timestamps to silence an rpmlint warning- Fixed the build on x86 plattforms. - Package the clang c++-analyzer.- update to llvm 2.7- added vim plugins- added libffi-devel to llvm-devel requires so that build does not fail - fixed build of explicit constructors with gcc45- Initial 2.6 release/sbin/ldconfig/sbin/ldconfiglamb71 1542747625  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&5.0.15.0.1-lp150.7.3.15.0.1-lp150.7.3.15.0.1-lp150.7.3.1       !""################$$$$######################%%%%%%%%###########################&&&&&&&&&&&&&&&&&&&&&&&'''''''''''(((((()*+++********,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-.,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,////////000111000000000000000002334546777788888888888888888888887997777777::::::::::::::::::::::::::::::::::::::::::::::7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;77<<=====>>?@@@@@@@@@@@@@@@@@@@@@@@@@@>>ABCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDCCCCCCCCCCCCCCECCCCCCCCCCCCCCCCCCCCCCCCCCCCFFFFFFFFFFFCCCCCCGGCCCCCCCCCCCHHHHHCCCCCCCCCCCIIIIIIIIIIIIICJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKJJJJJJJJJJJJJJLJJJJJJJJJJJJJJJJJJJJJJJJJJJJMMMMMMMMMMMJJJJJJNNJJJJJJJJJJJOOOOOJJJJJJJJJJJJPPPPPPPPPPPPPPPPPPPPPPPPJCQQQQQQQQQQQQQQQQQQQQQQQQQQCCCCCCRRRRRRRRRRRRRRRRRRRRRRRRCSmacros.llvmllvm-configllvmllvm-cAnalysis.hBitReader.hBitWriter.hCore.hDisassembler.hErrorHandling.hExecutionEngine.hIRReader.hInitialization.hLinkTimeOptimizer.hLinker.hObject.hOrcBindings.hSupport.hTarget.hTargetMachine.hTransformsIPO.hPassManagerBuilder.hScalar.hVectorize.hTypes.hlto.hADTAPFloat.hAPInt.hAPSInt.hAllocatorList.hArrayRef.hBitVector.hBitmaskEnum.hBreadthFirstIterator.hCachedHashString.hDAGDeltaAlgorithm.hDeltaAlgorithm.hDenseMap.hDenseMapInfo.hDenseSet.hDepthFirstIterator.hEpochTracker.hEquivalenceClasses.hFoldingSet.hGraphTraits.hHashing.hImmutableList.hImmutableMap.hImmutableSet.hIndexedMap.hIntEqClasses.hIntervalMap.hIntrusiveRefCntPtr.hMapVector.hNone.hOptional.hPackedVector.hPointerEmbeddedInt.hPointerIntPair.hPointerSumType.hPointerUnion.hPostOrderIterator.hPriorityQueue.hPriorityWorklist.hSCCIterator.hSTLExtras.hScopeExit.hScopedHashTable.hSequence.hSetOperations.hSetVector.hSmallBitVector.hSmallPtrSet.hSmallSet.hSmallString.hSmallVector.hSparseBitVector.hSparseMultiSet.hSparseSet.hStatistic.hStringExtras.hStringMap.hStringRef.hStringSet.hStringSwitch.hTinyPtrVector.hTriple.hTwine.hUniqueVector.hVariadicFunction.hedit_distance.hilist.hilist_base.hilist_iterator.hilist_node.hilist_node_base.hilist_node_options.hiterator.hiterator_range.hsimple_ilist.hAnalysisAliasAnalysis.hAliasAnalysisEvaluator.hAliasSetTracker.hAssumptionCache.hBasicAliasAnalysis.hBlockFrequencyInfo.hBlockFrequencyInfoImpl.hBranchProbabilityInfo.hCFG.hCFGPrinter.hCFLAliasAnalysisUtils.hCFLAndersAliasAnalysis.hCFLSteensAliasAnalysis.hCGSCCPassManager.hCallGraph.hCallGraphSCCPass.hCallPrinter.hCaptureTracking.hCodeMetrics.hConstantFolding.hDOTGraphTraitsPass.hDemandedBits.hDependenceAnalysis.hDivergenceAnalysis.hDomPrinter.hDominanceFrontier.hDominanceFrontierImpl.hEHPersonalities.hGlobalsModRef.hIVUsers.hIndirectCallPromotionAnalysis.hIndirectCallSiteVisitor.hInlineCost.hInstructionSimplify.hInterval.hIntervalIterator.hIntervalPartition.hIteratedDominanceFrontier.hLazyBlockFrequencyInfo.hLazyBranchProbabilityInfo.hLazyCallGraph.hLazyValueInfo.hLint.hLoads.hLoopAccessAnalysis.hLoopAnalysisManager.hLoopInfo.hLoopInfoImpl.hLoopIterator.hLoopPass.hLoopUnrollAnalyzer.hMemoryBuiltins.hMemoryDependenceAnalysis.hMemoryLocation.hMemorySSA.hMemorySSAUpdater.hModuleSummaryAnalysis.hObjCARCAliasAnalysis.hObjCARCAnalysisUtils.hObjCARCInstKind.hObjectUtils.hOptimizationDiagnosticInfo.hOrderedBasicBlock.hPHITransAddr.hPasses.hPostDominators.hProfileSummaryInfo.hPtrUseVisitor.hRegionInfo.hRegionInfoImpl.hRegionIterator.hRegionPass.hRegionPrinter.hScalarEvolution.hScalarEvolutionAliasAnalysis.hScalarEvolutionExpander.hScalarEvolutionExpressions.hScalarEvolutionNormalization.hScopedNoAliasAA.hSparsePropagation.hTargetFolder.hTargetLibraryInfo.defTargetLibraryInfo.hTargetTransformInfo.hTargetTransformInfoImpl.hTrace.hTypeBasedAliasAnalysis.hTypeMetadataUtils.hValueTracking.hVectorUtils.hAsmParserParser.hSlotMapping.hBinaryFormatCOFF.hDwarf.defDwarf.hELF.hELFRelocsAArch64.defAMDGPU.defARM.defAVR.defBPF.defHexagon.defLanai.defMips.defPowerPC.defPowerPC64.defRISCV.defSparc.defSystemZ.defWebAssembly.defi386.defx86_64.defMachO.defMachO.hMagic.hWasm.hWasmRelocsWebAssembly.defBitcodeBitCodes.hBitcodeReader.hBitcodeWriter.hBitcodeWriterPass.hBitstreamReader.hBitstreamWriter.hLLVMBitCodes.hCodeGenAnalysis.hAsmPrinter.hAtomicExpandUtils.hBasicTTIImpl.hCalcSpillWeights.hCallingConvLower.hCommandFlags.hDAGCombine.hDFAPacketizer.hDIE.hDIEValue.defDwarfStringPoolEntry.hEdgeBundles.hExecutionDepsFix.hExpandReductions.hFastISel.hFaultMaps.hFunctionLoweringInfo.hGCMetadata.hGCMetadataPrinter.hGCStrategy.hGCs.hGlobalISelCallLowering.hGISelAccessor.hIRTranslator.hInstructionSelect.hInstructionSelector.hInstructionSelectorImpl.hLegalizer.hLegalizerHelper.hLegalizerInfo.hLocalizer.hMachineIRBuilder.hRegBankSelect.hRegisterBank.hRegisterBankInfo.hTypes.hUtils.hISDOpcodes.hIntrinsicLowering.hLatencyPriorityQueue.hLazyMachineBlockFrequencyInfo.hLexicalScopes.hLinkAllAsmWriterComponents.hLinkAllCodegenComponents.hLiveInterval.hLiveIntervalAnalysis.hLiveIntervalUnion.hLivePhysRegs.hLiveRangeEdit.hLiveRegMatrix.hLiveRegUnits.hLiveStackAnalysis.hLiveVariables.hLowLevelType.hMIRParserMIRParser.hMIRPrinter.hMIRYamlMapping.hMachORelocation.hMachineBasicBlock.hMachineBlockFrequencyInfo.hMachineBranchProbabilityInfo.hMachineCombinerPattern.hMachineConstantPool.hMachineDominanceFrontier.hMachineDominators.hMachineFrameInfo.hMachineFunction.hMachineFunctionPass.hMachineInstr.hMachineInstrBuilder.hMachineInstrBundle.hMachineInstrBundleIterator.hMachineJumpTableInfo.hMachineLoopInfo.hMachineMemOperand.hMachineModuleInfo.hMachineModuleInfoImpls.hMachineOperand.hMachineOptimizationRemarkEmitter.hMachinePassRegistry.hMachinePostDominators.hMachineRegionInfo.hMachineRegisterInfo.hMachineSSAUpdater.hMachineScheduler.hMachineTraceMetrics.hMachineValueType.hMacroFusion.hPBQPCostAllocator.hGraph.hMath.hReductionRules.hSolution.hPBQPRAConstraint.hParallelCG.hPasses.hPreISelIntrinsicLowering.hPseudoSourceValue.hRegAllocPBQP.hRegAllocRegistry.hRegisterClassInfo.hRegisterPressure.hRegisterScavenging.hRegisterUsageInfo.hResourcePriorityQueue.hRuntimeLibcalls.hScheduleDAG.hScheduleDAGInstrs.hScheduleDAGMutation.hScheduleDFS.hScheduleHazardRecognizer.hSchedulerRegistry.hScoreboardHazardRecognizer.hSelectionDAG.hSelectionDAGAddressAnalysis.hSelectionDAGISel.hSelectionDAGNodes.hSelectionDAGTargetInfo.hSlotIndexes.hStackMaps.hStackProtector.hTailDuplicator.hTargetLoweringObjectFileImpl.hTargetPassConfig.hTargetSchedule.hUnreachableBlockElim.hValueTypes.hValueTypes.tdVirtRegMap.hWinEHFuncInfo.hConfigAsmParsers.defAsmPrinters.defDisassemblers.defTargets.defabi-breaking.hllvm-config.hDebugInfoCodeViewCVDebugRecord.hCVRecord.hCVSymbolVisitor.hCVTypeVisitor.hCodeView.hCodeViewError.hCodeViewRecordIO.hCodeViewSymbols.defCodeViewTypes.defDebugChecksumsSubsection.hDebugCrossExSubsection.hDebugCrossImpSubsection.hDebugFrameDataSubsection.hDebugInlineeLinesSubsection.hDebugLinesSubsection.hDebugStringTableSubsection.hDebugSubsection.hDebugSubsectionRecord.hDebugSubsectionVisitor.hDebugSymbolRVASubsection.hDebugSymbolsSubsection.hDebugUnknownSubsection.hEnumTables.hFormatters.hFunctionId.hGUID.hLazyRandomTypeCollection.hLine.hRecordSerialization.hStringsAndChecksums.hSymbolDeserializer.hSymbolDumpDelegate.hSymbolDumper.hSymbolRecord.hSymbolRecordMapping.hSymbolSerializer.hSymbolVisitorCallbackPipeline.hSymbolVisitorCallbacks.hSymbolVisitorDelegate.hTypeCollection.hTypeDeserializer.hTypeDumpVisitor.hTypeIndex.hTypeIndexDiscovery.hTypeName.hTypeRecord.hTypeRecordBuilder.hTypeRecordMapping.hTypeSerializer.hTypeStreamMerger.hTypeSymbolEmitter.hTypeTableBuilder.hTypeTableCollection.hTypeVisitorCallbackPipeline.hTypeVisitorCallbacks.hDIContext.hDWARFDWARFAbbreviationDeclaration.hDWARFAcceleratorTable.hDWARFAttribute.hDWARFCompileUnit.hDWARFContext.hDWARFDataExtractor.hDWARFDebugAbbrev.hDWARFDebugArangeSet.hDWARFDebugAranges.hDWARFDebugFrame.hDWARFDebugInfoEntry.hDWARFDebugLine.hDWARFDebugLoc.hDWARFDebugMacro.hDWARFDebugPubTable.hDWARFDebugRangeList.hDWARFDie.hDWARFFormValue.hDWARFGdbIndex.hDWARFRelocMap.hDWARFSection.hDWARFTypeUnit.hDWARFUnit.hDWARFUnitIndex.hDWARFVerifier.hMSFIMSFFile.hMSFBuilder.hMSFCommon.hMSFError.hMSFStreamLayout.hMappedBlockStream.hPDBConcreteSymbolEnumerator.hDIADIADataStream.hDIAEnumDebugStreams.hDIAEnumLineNumbers.hDIAEnumSourceFiles.hDIAEnumSymbols.hDIAError.hDIALineNumber.hDIARawSymbol.hDIASession.hDIASourceFile.hDIASupport.hGenericError.hIPDBDataStream.hIPDBEnumChildren.hIPDBLineNumber.hIPDBRawSymbol.hIPDBSession.hIPDBSourceFile.hNativeDbiModuleDescriptor.hDbiModuleDescriptorBuilder.hDbiModuleList.hDbiStream.hDbiStreamBuilder.hEnumTables.hFormatters.hGlobalsStream.hHash.hHashTable.hISectionContribVisitor.hInfoStream.hInfoStreamBuilder.hModuleDebugStream.hNamedStreamMap.hNativeBuiltinSymbol.hNativeCompilandSymbol.hNativeEnumModules.hNativeExeSymbol.hNativeRawSymbol.hNativeSession.hPDBFile.hPDBFileBuilder.hPDBStringTable.hPDBStringTableBuilder.hPublicsStream.hPublicsStreamBuilder.hRawConstants.hRawError.hRawTypes.hSymbolStream.hTpiHashing.hTpiStream.hTpiStreamBuilder.hPDB.hPDBContext.hPDBExtras.hPDBSymDumper.hPDBSymbol.hPDBSymbolAnnotation.hPDBSymbolBlock.hPDBSymbolCompiland.hPDBSymbolCompilandDetails.hPDBSymbolCompilandEnv.hPDBSymbolCustom.hPDBSymbolData.hPDBSymbolExe.hPDBSymbolFunc.hPDBSymbolFuncDebugEnd.hPDBSymbolFuncDebugStart.hPDBSymbolLabel.hPDBSymbolPublicSymbol.hPDBSymbolThunk.hPDBSymbolTypeArray.hPDBSymbolTypeBaseClass.hPDBSymbolTypeBuiltin.hPDBSymbolTypeCustom.hPDBSymbolTypeDimension.hPDBSymbolTypeEnum.hPDBSymbolTypeFriend.hPDBSymbolTypeFunctionArg.hPDBSymbolTypeFunctionSig.hPDBSymbolTypeManaged.hPDBSymbolTypePointer.hPDBSymbolTypeTypedef.hPDBSymbolTypeUDT.hPDBSymbolTypeVTable.hPDBSymbolTypeVTableShape.hPDBSymbolUnknown.hPDBSymbolUsingNamespace.hPDBTypes.hUDTLayout.hSymbolizeDIPrinter.hSymbolizableModule.hSymbolize.hDemangleDemangle.hExecutionEngineExecutionEngine.hGenericValue.hInterpreter.hJITEventListener.hJITSymbol.hMCJIT.hOProfileWrapper.hObjectCache.hObjectMemoryBuffer.hOrcCompileOnDemandLayer.hCompileUtils.hExecutionUtils.hGlobalMappingLayer.hIRCompileLayer.hIRTransformLayer.hIndirectionUtils.hLambdaResolver.hLazyEmittingLayer.hNullResolver.hObjectTransformLayer.hOrcABISupport.hOrcError.hOrcRemoteTargetClient.hOrcRemoteTargetRPCAPI.hOrcRemoteTargetServer.hRPCSerialization.hRPCUtils.hRTDyldObjectLinkingLayer.hRawByteChannel.hOrcMCJITReplacement.hRTDyldMemoryManager.hRuntimeDyld.hRuntimeDyldChecker.hSectionMemoryManager.hIRArgument.hAssemblyAnnotationWriter.hAttributes.genAttributes.hAttributes.tdAutoUpgrade.hBasicBlock.hCFG.hCallSite.hCallingConv.hComdat.hConstant.hConstantFolder.hConstantRange.hConstants.hDIBuilder.hDataLayout.hDebugInfo.hDebugInfoFlags.defDebugInfoMetadata.hDebugLoc.hDerivedTypes.hDerivedUser.hDiagnosticInfo.hDiagnosticPrinter.hDominators.hFunction.hGVMaterializer.hGetElementPtrTypeIterator.hGlobalAlias.hGlobalIFunc.hGlobalIndirectSymbol.hGlobalObject.hGlobalValue.hGlobalVariable.hIRBuilder.hIRPrintingPasses.hInlineAsm.hInstIterator.hInstVisitor.hInstrTypes.hInstruction.defInstruction.hInstructions.hIntrinsicInst.hIntrinsics.genIntrinsics.hIntrinsics.tdIntrinsicsAArch64.tdIntrinsicsAMDGPU.tdIntrinsicsARM.tdIntrinsicsBPF.tdIntrinsicsHexagon.tdIntrinsicsMips.tdIntrinsicsNVVM.tdIntrinsicsPowerPC.tdIntrinsicsSystemZ.tdIntrinsicsWebAssembly.tdIntrinsicsX86.tdIntrinsicsXCore.tdLLVMContext.hLegacyPassManager.hLegacyPassManagers.hLegacyPassNameParser.hMDBuilder.hMangler.hMetadata.defMetadata.hModule.hModuleSlotTracker.hModuleSummaryIndex.hModuleSummaryIndexYAML.hNoFolder.hOperandTraits.hOperator.hOptBisect.hPassManager.hPassManagerInternal.hPatternMatch.hPredIteratorCache.hProfileSummary.hSafepointIRVerifier.hStatepoint.hSymbolTableListTraits.hTrackingMDRef.hType.hTypeBuilder.hTypeFinder.hUse.hUseListOrder.hUser.hValue.defValue.hValueHandle.hValueMap.hValueSymbolTable.hVerifier.hIRReaderIRReader.hInitializePasses.hLTOCaching.hConfig.hLTO.hLTOBackend.hlegacyLTOCodeGenerator.hLTOModule.hThinLTOCodeGenerator.hUpdateCompilerUsed.hLineEditorLineEditor.hLinkAllIR.hLinkAllPasses.hLinkerIRMover.hLinker.hMCConstantPools.hLaneBitmask.hMCAnalysisMCAsmBackend.hMCAsmInfo.hMCAsmInfoCOFF.hMCAsmInfoDarwin.hMCAsmInfoELF.hMCAsmInfoWasm.hMCAsmLayout.hMCAssembler.hMCCodeEmitter.hMCCodeView.hMCContext.hMCDirectives.hMCDisassemblerMCDisassembler.hMCExternalSymbolizer.hMCRelocationInfo.hMCSymbolizer.hMCDwarf.hMCELFObjectWriter.hMCELFStreamer.hMCExpr.hMCFixedLenDisassembler.hMCFixup.hMCFixupKindInfo.hMCFragment.hMCInst.hMCInstBuilder.hMCInstPrinter.hMCInstrAnalysis.hMCInstrDesc.hMCInstrInfo.hMCInstrItineraries.hMCLabel.hMCLinkerOptimizationHint.hMCMachObjectWriter.hMCObjectFileInfo.hMCObjectStreamer.hMCObjectWriter.hMCParserAsmCond.hAsmLexer.hMCAsmLexer.hMCAsmParser.hMCAsmParserExtension.hMCAsmParserUtils.hMCParsedAsmOperand.hMCTargetAsmParser.hMCRegisterInfo.hMCSchedule.hMCSection.hMCSectionCOFF.hMCSectionELF.hMCSectionMachO.hMCSectionWasm.hMCStreamer.hMCSubtargetInfo.hMCSymbol.hMCSymbolCOFF.hMCSymbolELF.hMCSymbolMachO.hMCSymbolWasm.hMCTargetOptions.hMCTargetOptionsCommandFlags.hMCValue.hMCWasmObjectWriter.hMCWasmStreamer.hMCWin64EH.hMCWinCOFFObjectWriter.hMCWinCOFFStreamer.hMCWinEH.hMachineLocation.hSectionKind.hStringTableBuilder.hSubtargetFeature.hObjectArchive.hArchiveWriter.hBinary.hCOFF.hCOFFImportFile.hCOFFModuleDefinition.hDecompressor.hELF.hELFObjectFile.hELFTypes.hError.hIRObjectFile.hIRSymtab.hMachO.hMachOUniversal.hModuleSymbolTable.hObjectFile.hRelocVisitor.hStackMapParser.hSymbolSize.hSymbolicFile.hWasm.hWindowsResource.hObjectYAMLCOFFYAML.hCodeViewYAMLDebugSections.hCodeViewYAMLSymbols.hCodeViewYAMLTypes.hDWARFEmitter.hDWARFYAML.hELFYAML.hMachOYAML.hObjectYAML.hWasmYAML.hYAML.hOptionArg.hArgList.hOptParser.tdOptSpecifier.hOptTable.hOption.hPass.hPassAnalysisSupport.hPassInfo.hPassRegistry.hPassSupport.hPassesPassBuilder.hProfileDataCoverageCoverageMapping.hCoverageMappingReader.hCoverageMappingWriter.hInstrProf.hInstrProfData.incInstrProfReader.hInstrProfWriter.hProfileCommon.hSampleProf.hSampleProfReader.hSampleProfWriter.hSupportAArch64TargetParser.defAMDGPUCodeObjectMetadata.hARMAttributeParser.hARMBuildAttributes.hARMEHABI.hARMTargetParser.defARMWinEH.hAlignOf.hAllocator.hArrayRecycler.hAtomic.hAtomicOrdering.hBinaryByteStream.hBinaryItemStream.hBinaryStream.hBinaryStreamArray.hBinaryStreamError.hBinaryStreamReader.hBinaryStreamRef.hBinaryStreamWriter.hBlockFrequency.hBranchProbability.hCBindingWrapping.hCOM.hCachePruning.hCapacity.hCasting.hChrono.hCodeGen.hCodeGenCWrappers.hCommandLine.hCompiler.hCompression.hConvertUTF.hCrashRecoveryContext.hDOTGraphTraits.hDataExtractor.hDataTypes.hDebug.hDebugCounter.hDynamicLibrary.hEndian.hEndianStream.hErrc.hErrno.hError.hErrorHandling.hErrorOr.hFileOutputBuffer.hFileSystem.hFileUtilities.hFormat.hFormatAdapters.hFormatCommon.hFormatProviders.hFormatVariadic.hFormatVariadicDetails.hFormattedStream.hGCOV.hGenericDomTree.hGenericDomTreeConstruction.hGlobPattern.hGraphWriter.hHost.hJamCRC.hKnownBits.hLEB128.hLICENSE.TXTLineIterator.hLocale.hLockFileManager.hLowLevelTypeImpl.hMD5.hManagedStatic.hMathExtras.hMemory.hMemoryBuffer.hMipsABIFlags.hMutex.hMutexGuard.hNativeFormatting.hOnDiskHashTable.hOptions.hParallel.hPath.hPluginLoader.hPointerLikeTypeTraits.hPrettyStackTrace.hPrintable.hProcess.hProgram.hRWMutex.hRandomNumberGenerator.hRecycler.hRecyclingAllocator.hRegex.hRegistry.hReverseIteration.hSHA1.hSMLoc.hSaveAndRestore.hScaledNumber.hScopedPrinter.hSignals.hSolarissysregset.hSourceMgr.hSpecialCaseList.hStringPool.hStringSaver.hSwapByteOrder.hSystemUtils.hTarWriter.hTargetParser.hTargetRegistry.hTargetSelect.hThreadLocal.hThreadPool.hThreading.hTimer.hToolOutputFile.hTrailingObjects.hTrigramIndex.hTypeName.hUnicode.hUnicodeCharRanges.hUniqueLock.hVCSRevision.hValgrind.hWatchdog.hWin64EH.hWindowsError.hYAMLParser.hYAMLTraits.hcircular_raw_ostream.hraw_os_ostream.hraw_ostream.hraw_sha1_ostream.hthread.htype_traits.hxxhash.hTableGenError.hMain.hRecord.hSearchableTable.tdSetTheory.hStringMatcher.hStringToOffsetTable.hTableGenBackend.hTargetCostTable.hGenericOpcodes.tdGlobalISelRegisterBank.tdSelectionDAGCompat.tdTarget.tdTarget.tdTargetCallingConv.hTargetCallingConv.tdTargetFrameLowering.hTargetInstrInfo.hTargetIntrinsicInfo.hTargetItinerary.tdTargetLowering.hTargetLoweringObjectFile.hTargetMachine.hTargetOpcodes.defTargetOpcodes.hTargetOptions.hTargetRegisterInfo.hTargetSchedule.tdTargetSelectionDAG.tdTargetSubtargetInfo.hTestingSupportError.hSupportHelpers.hToolDriversllvm-dlltoolDlltoolDriver.hllvm-libLibDriver.hTransformsCoroutines.hGCOVProfiler.hIPOIPO.hAlwaysInliner.hArgumentPromotion.hConstantMerge.hCrossDSOCFI.hDeadArgumentElimination.hElimAvailExtern.hForceFunctionAttrs.hFunctionAttrs.hFunctionImport.hGlobalDCE.hGlobalOpt.hGlobalSplit.hInferFunctionAttrs.hInliner.hInternalize.hLowerTypeTests.hPartialInlining.hPassManagerBuilder.hSCCP.hStripDeadPrototypes.hThinLTOBitcodeWriter.hWholeProgramDevirt.hInstCombineInstCombine.hInstCombineWorklist.hInstrProfiling.hInstrumentation.hObjCARC.hPGOInstrumentation.hSampleProfile.hScalarScalar.hADCE.hAlignmentFromAssumptions.hBDCE.hConstantHoisting.hCorrelatedValuePropagation.hDCE.hDeadStoreElimination.hEarlyCSE.hFloat2Int.hGVN.hGVNExpression.hGuardWidening.hIVUsersPrinter.hIndVarSimplify.hJumpThreading.hLICM.hLoopAccessAnalysisPrinter.hLoopDataPrefetch.hLoopDeletion.hLoopDistribute.hLoopIdiomRecognize.hLoopInstSimplify.hLoopLoadElimination.hLoopPassManager.hLoopPredication.hLoopRotation.hLoopSimplifyCFG.hLoopSink.hLoopStrengthReduce.hLoopUnrollPass.hLowerAtomic.hLowerExpectIntrinsic.hLowerGuardIntrinsic.hMemCpyOptimizer.hMergedLoadStoreMotion.hNaryReassociate.hNewGVN.hPartiallyInlineLibCalls.hReassociate.hSCCP.hSROA.hSimpleLoopUnswitch.hSimplifyCFG.hSink.hSpeculativeExecution.hTailRecursionElimination.hUtilsASanStackFrameLayout.hAddDiscriminators.hBasicBlockUtils.hBreakCriticalEdges.hBuildLibCalls.hBypassSlowDivision.hCloning.hCmpInstAnalysis.hCodeExtractor.hCtorUtils.hEscapeEnumerator.hEvaluator.hFunctionComparator.hFunctionImportUtils.hGlobalStatus.hImportedFunctionsInliningStatistics.hIntegerDivision.hLCSSA.hLibCallsShrinkWrap.hLocal.hLoopSimplify.hLoopUtils.hLoopVersioning.hLowerInvoke.hLowerMemIntrinsics.hMem2Reg.hModuleUtils.hNameAnonGlobals.hOrderedInstructions.hPredicateInfo.hPromoteMemToReg.hSSAUpdater.hSSAUpdaterImpl.hSanitizerStats.hSimplifyIndVar.hSimplifyInstructions.hSimplifyLibCalls.hSplitModule.hSymbolRewriter.hUnifyFunctionExitNodes.hUnrollLoop.hVNCoercion.hValueMapper.hVectorizeVectorize.hLoopVectorize.hSLPVectorizer.hXRayGraph.hInstrumentationMap.hTrace.hXRayRecord.hYAMLXRayRecord.hBugpointPasses.soLLVMHello.sollvmAddLLVM.cmakeAddLLVMDefinitions.cmakeAddOCaml.cmakeAddSphinxTarget.cmakeCheckAtomic.cmakeCheckCompilerVersion.cmakeCheckLinkerFlag.cmakeChooseMSVCCRT.cmakeCrossCompile.cmakeDetermineGCCCompatible.cmakeFindOCaml.cmakeFindSphinx.cmakeGenerateVersionFromCVS.cmakeGetSVN.cmakeHandleLLVMOptions.cmakeHandleLLVMStdlib.cmakeLLVM-Config.cmakeLLVMConfig.cmakeLLVMConfigVersion.cmakeLLVMExports-relwithdebinfo.cmakeLLVMExports.cmakeLLVMExternalProjectUtils.cmakeLLVMInstallSymlink.cmakeLLVMProcessSources.cmakeTableGen.cmakeVersionFromVCS.cmakelibLLVM.solibLLVMTableGen.sollvmhtmlAMDGPUUsage.htmlAdvancedBuilds.htmlAliasAnalysis.htmlAtomics.htmlBenchmarking.htmlBigEndianNEON.htmlBitCodeFormat.htmlBlockFrequencyTerminology.htmlBranchWeightMetadata.htmlBugpoint.htmlCMake.htmlCMakePrimer.htmlCodeGenerator.htmlCodeOfConduct.htmlCodingStandards.htmlCommandGuideFileCheck.htmlbugpoint.htmlindex.htmllit.htmlllc.htmllli.htmlllvm-ar.htmlllvm-as.htmlllvm-bcanalyzer.htmlllvm-build.htmlllvm-config.htmlllvm-cov.htmlllvm-diff.htmlllvm-dis.htmlllvm-dwarfdump.htmlllvm-extract.htmlllvm-lib.htmlllvm-link.htmlllvm-nm.htmlllvm-profdata.htmlllvm-readobj.htmlllvm-stress.htmlllvm-symbolizer.htmlopt.htmltblgen.htmlCommandLine.htmlCompileCudaWithLLVM.htmlCompilerWriterInfo.htmlCoroutines.htmlCoverageMappingFormat.htmlDebuggingJITedCode.htmlDeveloperPolicy.htmlDocker.htmlExceptionHandling.htmlExtendingLLVM.htmlExtensions.htmlFAQ.htmlFaultMaps.htmlFrontendPerformanceTips.htmlGarbageCollection.htmlGetElementPtr.htmlGettingStarted.htmlGettingStartedVS.htmlGlobalISel.htmlGoldPlugin.htmlHowToAddABuilder.htmlHowToBuildOnARM.htmlHowToCrossCompileLLVM.htmlHowToReleaseLLVM.htmlHowToSetUpLLVMStyleRTTI.htmlHowToSubmitABug.htmlHowToUseAttributes.htmlHowToUseInstrMappings.htmlInAlloca.htmlLLVMBuild.htmlLangRef.htmlLexicon.htmlLibFuzzer.htmlLinkTimeOptimization.htmlMCJITDesignAndImplementation.htmlMIRLangRef.htmlMarkedUpDisassembly.htmlMemorySSA.htmlMergeFunctions.htmlNVPTXUsage.htmlOptBisect.htmlPDBCodeViewSymbols.htmlCodeViewTypes.htmlDbiStream.htmlGlobalStream.htmlHashStream.htmlModiStream.htmlMsfFile.htmlPdbStream.htmlPublicStream.htmlTpiStream.htmlindex.htmlPackaging.htmlPasses.htmlPhabricator.htmlProgrammersManual.htmlProjects.htmlProposalsGitHubMove.htmlVectorizationPlan.htmlReleaseNotes.htmlReleaseProcess.htmlReportingGuide.htmlScudoHardenedAllocator.htmlSegmentedStacks.htmlSourceLevelDebugging.htmlSphinxQuickstartTemplate.htmlStackMaps.htmlStatepoints.htmlSystemLibrary.htmlTableGenBackEnds.htmlDeficiencies.htmlLangIntro.htmlLangRef.htmlindex.htmlTableGenFundamentals.htmlTestSuiteMakefileGuide.htmlTestingGuide.htmlTypeMetadata.htmlVectorizers.htmlWritingAnLLVMBackend.htmlWritingAnLLVMPass.htmlXRay.htmlXRayExample.htmlYamlIO.html_imagesARM-BE-bitcastfail.pngARM-BE-bitcastsuccess.pngARM-BE-ld1.pngARM-BE-ldr.pngLangImpl05-cfg.pngMCJIT-creation.pngMCJIT-dyld-load.pngMCJIT-engine-builder.pngMCJIT-load-object.pngMCJIT-load.pngMCJIT-resolve-relocations.pnggcc-loops.pnglinpack-pc.png_sourcesAMDGPUUsage.txtAdvancedBuilds.txtAliasAnalysis.txtAtomics.txtBenchmarking.txtBigEndianNEON.txtBitCodeFormat.txtBlockFrequencyTerminology.txtBranchWeightMetadata.txtBugpoint.txtCMake.txtCMakePrimer.txtCodeGenerator.txtCodeOfConduct.txtCodingStandards.txtCommandGuideFileCheck.txtbugpoint.txtindex.txtlit.txtllc.txtlli.txtllvm-ar.txtllvm-as.txtllvm-bcanalyzer.txtllvm-build.txtllvm-config.txtllvm-cov.txtllvm-diff.txtllvm-dis.txtllvm-dwarfdump.txtllvm-extract.txtllvm-lib.txtllvm-link.txtllvm-nm.txtllvm-profdata.txtllvm-readobj.txtllvm-stress.txtllvm-symbolizer.txtopt.txttblgen.txtCommandLine.txtCompileCudaWithLLVM.txtCompilerWriterInfo.txtCoroutines.txtCoverageMappingFormat.txtDebuggingJITedCode.txtDeveloperPolicy.txtDocker.txtExceptionHandling.txtExtendingLLVM.txtExtensions.txtFAQ.txtFaultMaps.txtFrontendPerformanceTips.txtGarbageCollection.txtGetElementPtr.txtGettingStarted.txtGettingStartedVS.txtGlobalISel.txtGoldPlugin.txtHowToAddABuilder.txtHowToBuildOnARM.txtHowToCrossCompileLLVM.txtHowToReleaseLLVM.txtHowToSetUpLLVMStyleRTTI.txtHowToSubmitABug.txtHowToUseAttributes.txtHowToUseInstrMappings.txtInAlloca.txtLLVMBuild.txtLangRef.txtLexicon.txtLibFuzzer.txtLinkTimeOptimization.txtMCJITDesignAndImplementation.txtMIRLangRef.txtMarkedUpDisassembly.txtMemorySSA.txtMergeFunctions.txtNVPTXUsage.txtOptBisect.txtPDBCodeViewSymbols.txtCodeViewTypes.txtDbiStream.txtGlobalStream.txtHashStream.txtModiStream.txtMsfFile.txtPdbStream.txtPublicStream.txtTpiStream.txtindex.txtPackaging.txtPasses.txtPhabricator.txtProgrammersManual.txtProjects.txtProposalsGitHubMove.txtVectorizationPlan.txtReleaseNotes.txtReleaseProcess.txtReportingGuide.txtScudoHardenedAllocator.txtSegmentedStacks.txtSourceLevelDebugging.txtSphinxQuickstartTemplate.txtStackMaps.txtStatepoints.txtSystemLibrary.txtTableGenBackEnds.txtDeficiencies.txtLangIntro.txtLangRef.txtindex.txtTableGenFundamentals.txtTestSuiteMakefileGuide.txtTestingGuide.txtTypeMetadata.txtVectorizers.txtWritingAnLLVMBackend.txtWritingAnLLVMPass.txtXRay.txtXRayExample.txtYamlIO.txtindex.txttutorialBuildingAJIT1.txtBuildingAJIT2.txtBuildingAJIT3.txtBuildingAJIT4.txtBuildingAJIT5.txtLangImpl01.txtLangImpl02.txtLangImpl03.txtLangImpl04.txtLangImpl05.txtLangImpl06.txtLangImpl07.txtLangImpl08.txtLangImpl09.txtLangImpl10.txtOCamlLangImpl1.txtOCamlLangImpl2.txtOCamlLangImpl3.txtOCamlLangImpl4.txtOCamlLangImpl5.txtOCamlLangImpl6.txtOCamlLangImpl7.txtOCamlLangImpl8.txtindex.txtyaml2obj.txt_staticajax-loader.gifbasic.csscomment-bright.pngcomment-close.pngcomment.pngcontents.pngdoctools.jsdown-pressed.pngdown.pngfile.pngjquery-1.11.1.jsjquery.jslines.gifllvm-theme.cssllvm.csslogo.pngminus.pngnavigation.pngplus.pngpygments.csssearchtools.jsunderscore-1.3.1.jsunderscore.jsup-pressed.pngup.pngwebsupport.jsgenindex.htmlindex.htmlobjects.invsearch.htmlsearchindex.jstutorialBuildingAJIT1.htmlBuildingAJIT2.htmlBuildingAJIT3.htmlBuildingAJIT4.htmlBuildingAJIT5.htmlLangImpl01.htmlLangImpl02.htmlLangImpl03.htmlLangImpl04.htmlLangImpl05.htmlLangImpl06.htmlLangImpl07.htmlLangImpl08.htmlLangImpl09.htmlLangImpl10.htmlOCamlLangImpl1.htmlOCamlLangImpl2.htmlOCamlLangImpl3.htmlOCamlLangImpl4.htmlOCamlLangImpl5.htmlOCamlLangImpl6.htmlOCamlLangImpl7.htmlOCamlLangImpl8.htmlindex.htmlyaml2obj.htmlllvm-config.1.gz/etc/rpm//usr/bin//usr/include//usr/include/llvm-c//usr/include/llvm-c/Transforms//usr/include/llvm//usr/include/llvm/ADT//usr/include/llvm/Analysis//usr/include/llvm/AsmParser//usr/include/llvm/BinaryFormat//usr/include/llvm/BinaryFormat/ELFRelocs//usr/include/llvm/BinaryFormat/WasmRelocs//usr/include/llvm/Bitcode//usr/include/llvm/CodeGen//usr/include/llvm/CodeGen/GlobalISel//usr/include/llvm/CodeGen/MIRParser//usr/include/llvm/CodeGen/PBQP//usr/include/llvm/Config//usr/include/llvm/DebugInfo//usr/include/llvm/DebugInfo/CodeView//usr/include/llvm/DebugInfo/DWARF//usr/include/llvm/DebugInfo/MSF//usr/include/llvm/DebugInfo/PDB//usr/include/llvm/DebugInfo/PDB/DIA//usr/include/llvm/DebugInfo/PDB/Native//usr/include/llvm/DebugInfo/Symbolize//usr/include/llvm/Demangle//usr/include/llvm/ExecutionEngine//usr/include/llvm/ExecutionEngine/Orc//usr/include/llvm/IR//usr/include/llvm/IRReader//usr/include/llvm/LTO//usr/include/llvm/LTO/legacy//usr/include/llvm/LineEditor//usr/include/llvm/Linker//usr/include/llvm/MC//usr/include/llvm/MC/MCDisassembler//usr/include/llvm/MC/MCParser//usr/include/llvm/Object//usr/include/llvm/ObjectYAML//usr/include/llvm/Option//usr/include/llvm/Passes//usr/include/llvm/ProfileData//usr/include/llvm/ProfileData/Coverage//usr/include/llvm/Support//usr/include/llvm/Support/Solaris//usr/include/llvm/Support/Solaris/sys//usr/include/llvm/TableGen//usr/include/llvm/Target//usr/include/llvm/Target/GlobalISel//usr/include/llvm/Testing//usr/include/llvm/Testing/Support//usr/include/llvm/ToolDrivers//usr/include/llvm/ToolDrivers/llvm-dlltool//usr/include/llvm/ToolDrivers/llvm-lib//usr/include/llvm/Transforms//usr/include/llvm/Transforms/IPO//usr/include/llvm/Transforms/InstCombine//usr/include/llvm/Transforms/Scalar//usr/include/llvm/Transforms/Utils//usr/include/llvm/Transforms/Vectorize//usr/include/llvm/XRay//usr/lib64//usr/lib64/cmake//usr/lib64/cmake/llvm//usr/share/doc/packages//usr/share/doc/packages/llvm//usr/share/doc/packages/llvm/html//usr/share/doc/packages/llvm/html/CommandGuide//usr/share/doc/packages/llvm/html/Frontend//usr/share/doc/packages/llvm/html/PDB//usr/share/doc/packages/llvm/html/Proposals//usr/share/doc/packages/llvm/html/TableGen//usr/share/doc/packages/llvm/html/_images//usr/share/doc/packages/llvm/html/_sources//usr/share/doc/packages/llvm/html/_sources/CommandGuide//usr/share/doc/packages/llvm/html/_sources/Frontend//usr/share/doc/packages/llvm/html/_sources/PDB//usr/share/doc/packages/llvm/html/_sources/Proposals//usr/share/doc/packages/llvm/html/_sources/TableGen//usr/share/doc/packages/llvm/html/_sources/tutorial//usr/share/doc/packages/llvm/html/_static//usr/share/doc/packages/llvm/html/tutorial//usr/share/man/man1/-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.opensuse.org/openSUSE:Maintenance:9195/openSUSE_Leap_15.0_Update/16c01dad7cda4a7fea682d56318afe15-llvm5.openSUSE_Leap_15.0_Updatedrpmxz5x86_64-suse-linux           !"""#$$$%&'('$$) * +ASCII textELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 3.2.0, BuildID[sha1]=324875959ab9ddf27ce58280999caf51fdcf9b96, strippeddirectoryC source, ASCII textC++ source, ASCII textemptyELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=08860732201085a840168a934e1e405f94a80598, strippedELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=77b10c9c4c14a8eee33d6e3c38e35d651d60bae3, strippedASCII text, with very long linesHTML document, UTF-8 Unicode text, with very long linesHTML document, UTF-8 Unicode textPNG image data, 606 x 326, 8-bit/color RGBA, non-interlacedPNG image data, 626 x 459, 8-bit/color RGBA, non-interlacedPNG image data, 604 x 234, 8-bit/color RGBA, non-interlacedPNG image data, 560 x 234, 8-bit/color RGBA, non-interlacedPNG image data, 423 x 315, 8-bit/color RGB, non-interlacedPNG image data, 495 x 254, 8-bit/color RGBA, non-interlacedPNG image data, 543 x 399, 8-bit/color RGBA, non-interlacedPNG image data, 381 x 315, 8-bit/color RGBA, non-interlacedPNG image data, 531 x 687, 8-bit/color RGBA, non-interlacedPNG image data, 489 x 339, 8-bit/color RGBA, non-interlacedPNG image data, 555 x 495, 8-bit/color RGBA, non-interlacedPNG image data, 713 x 331, 8-bit/color RGBA, non-interlacedPNG image data, 437 x 286, 8-bit/color RGBA, non-interlacedUTF-8 Unicode textC source, ASCII text, with very long linesHTML document, ASCII textUTF-8 Unicode text, with very long linesassembler source, UTF-8 Unicode textC source, UTF-8 Unicode text, with very long linesASCII text, with CRLF line terminatorsRuby script, ASCII textGIF image data, version 89a, 16 x 16PNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 1 x 40, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 16, 8-bit colormap, non-interlacedGIF image data, version 89a, 16 x 30PNG image data, 250 x 88, 8-bit colormap, non-interlacedPNG image data, 11 x 11, 2-bit colormap, non-interlacedPNG image data, 1 x 60, 8-bit/color RGBA, non-interlacedHTML document, ASCII text, with very long linesASCII text, with very long lines, with no line terminatorstroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)  RR R R RRRRRRRRR R R RRRR R RRRR PPPP(BWT :'jDutf-8fbdc7bfaf64e7d05c72d146c7254c689b056f8340da9e95d32521a65dde6689c?7zXZ !t/H3|]"k%{V"^ :8JwT.hpy+[I{|L'ZaMB?ܽY@9p+~, RIDd"7'rwY7ͷ~3u 6 fyv4 ibjnh8xJݐǺg)!!#Z_|G!Wy)q#5X"^I<)jvE)C" (tno&~g.V(Iܗ 臐 ,5ε~]l 7y{FFq{GcjP,,$ l<;W޴R!8pvvkw[Z%ȁа&]J'gRZd̥ӖE:<)郻n_rgCک%5W= ƻt}ע$Ց%)ͪ\ryK? N|~vDk#ׅ hƏ=^t `ϡ`[P G,9W-/Ɣ!N)^n<T{wp8 rJ<;*!x4H;1{#fZ& 7 ץ8t踊}5lt \#)w=VWy kfiߟ)lt|u ˲=7`l<+;D0낊7byʺ:`svqrE? +m}yP~֪hڧdt QJvMׄ@,q.Ϲ~0#p`SMu7ރ?흸xqLbm3?*o&[% ESլ0mMn'ro0Fdc,%֎ݩנ'$ U7oN3S)ws+m,L?]E2 bVaSC%Sl+6ZLHM#U9綪9M-Ƅ%6͘t6zp Jx=Q[RBhmz wҰ<_>.UĴьU(ѻY9ΟOS3'}mX 5 ~AUE2p/yjrX7Cxc˚Py!I 0#=ŭi"&YV0_G]^Q0^,?gx͋>x0D$x$øwq2t%Nzngze {% p_9 wvӵ tCԪ׌)^3/Ȁ 0T:h៨%gYIAΝ4F+ }?dAl.v☊Dw+6vМR2]Z,^)--ΕӔJ? kކ<Pkܹ`ߡd]'\&O)PX=AiKn=Eu30f8#:t<k"1Ac-OBUorGhy4UG!;@( %[dW{kghQrg{[?r UhVNȚ{,ԁ[8il6~aoX;V-H'K[KHNm$`S߿/icyTC8*ҵuI𦞌ɾ[_yLOJm4HI.}IuGVJd5$Im@ju AYc? /:6<c|ş npxoVLދ`@$aj"I Z=2)N!ZM9}O&I39Oe_ds ϾE}Q+%9n$-ڔgR5HXH)(X2QǛAiJ*}[pb(%Eʉ$[|jvǢ#Ǥs1? r;ؖ?Tj-3RO" ->Ħ hhb؄#?:yEE1q8cghވC'0Ò=24^g5Lx\5Lm>6{b5f#a yDWxxq{#xL=E,ndm jst}21/[VZ,EBbOF?dt6e=)3"}@ Z_O$b#Ӭ&6*X#H{0rBVB!"U$nǔ0 +Kۭe( ǰRe:rO#?!ao}f ~Lk,c5۔_WO0%HM$i^e kyoLB-ITMƯ)Ӝbe8q )u/ !fC] lwӀdjO&7:դ책$)QtOߞTP+E΢ k62qߋUۆrq F =+RFC:0<7&9|θڭ9LAmm PN*Ï_eJMᇔ{TB亯cYiŀpݸ9&|G}J[*>}î _FGO=iyuc)e~@haMd:;[,%觑dVbl` "N&FL&ɶQV| ]R@;;=0H q2]`or8+h-e@-w?tgi&.:ΌM3ga E7.=`%*J\뽘XZ;IቲS=g*/*Ѱp'J?.k(Wsݰmb1?-{۞h8*\*+SGi+Hf=69{wί<|Z$J@, mMM»C/PuZ0RSc2&d4](Zpk'2#HA]るʄ*s}kuxzY$F.<ۚBL;8c>Z Ɋg *c-ܭ -̔7'Qd_ gj4ְ C?'4;Dmٓr>͖'$þaqvA ׹/0w7i#|T (5z }H om^E"BI;(08K/L*6p4PN} pH;[ݳ>'Tnp`Ն/ ?=\{]=ntM)6:1"H{bxw} ݾأjhsmYnӚ; +XJmfSU|tH;@ Mki_DZoLa@QQEN7-82ˣ@ail+AK"ݵ 4+RH('y Yaļr`? )tW;h\OӖ*~`L꺏 tͽk!uJ5Oyp*ft$YWô!E4CS?j{Ԇd(]=[KWW>bmH^"l1x̤jVQ+-ؗn ͂pC0 rK!~w2,eAm> GSFZ6˾\r+A9E,@SKfwE;WX 7GZ m%ҷiNo-RDTݠ8~EQFA #o)˖V Co8>gCWH*ڮI#<v3.BkovAͶ KOY U#FsJ=2rʦsC-nJ=aL!6U(J:XR(Q*/G8̮3«zqXb{n6bJ(?)O2wVev_페a>#o @q9rtD[ᵴnQ%p%x:a[ۯKfex?rq-Ӯ{{+;u _TԱ~qyP :@6'J ¨r:?)(&e'RJl VunKW21c$*_hD+e6HK4ޠA`xtv(C5ZL); MG-؞F5|Hm_#5_*|.ct5B&E{ʂ*@Ӌ?ŢqUHOgdQTP]͝j24u<1R:JϩiTG텲?5~;2+ⅲ\9ٟ+nٔ.C5^^p,ǝw(2#'h* ꤰ#o(4. YV+#理Z;OHIo/]M'!&x㺙g` ֕x {77[TNcf!Ƚ\.dH&)ܦ;6Ja]tm"ppY;햳~-x/7ЎoLO†YI I8`˗Jʦf"rSZ;|SGl_mG3uN]&hLt|KVYU"(mSvTqJ?9? vc4c`K$OA}J#wy2̪ܔXZ.BaEe̊ <3/f4WTYDi HpҵI+;toqM:f~9 'LzK8.mBaq=_;q쮛T;}N#( oDdovFOJ|sa uoM b{ڲ r%įGdj+Q?y "U9.nj#x6슛-{tI.C)}9 0,BBɨ2qIjGPI43eex:2Y$߂[Շ΄9)-l V38%uRvVZ(8 ^FFdGM\H[~c52w\͝bY!f L12aUe':Y@RI=Rѷ.\EҌQ<) F,3"QkahW;H-չ3-Dٚ8pDF_@z.nu\QuHٔ1\ )HQVohA+8(r>Fd o5'11 ;MARA<ק70&buX/0":&L?G ɗ-ha G[ܠ\] ($.Cb"LaY5g\y) "xCwdpKĜ@w1aiU}aק>^pW> ]̆#X=;BC$T;P Am6oZ].6'6&>nn.f c`@iYԔkkeL0sh&m%g;ffPTR Rek-#y$S2Mu3NiVAdR&l?ũdȆN: xj$̬mk!&^'IɈc)'LjʱΝWW*B ~O = "-:[8xÒcڏ\"3z>N}4 m%2`jG26{$ kFNS{{ E~u].pLE7$'?L#s Scplb^(oo2GzZ䒜ٗh>ѦdNوj w8X;JZ8:D\FrP9yOMY>sfVS`?h޽Ӟ&JaͰE*>Bu̒[2ZaF} Hok|&>3V /5"z10]YRT lvc ǘT$x*xc&;!Jc{ ww hD3!\ݔ`(ŗN3--2jUNj=p^$䈅y4[&Խ N2W. sNxπn}EwcOV2^؃i7p]lD6'|#i}VJǍG}LΞ)%'9 !7V d/Q{&mhIvϪs2S/]xP:+سo arkz5t'ǻ u oO t'{,dv2gO0l~QK+pL=C`E;wTDSŏ=4cus\bьF 7 g^3>[6>HJQSS@w]4V K/3!Z?Z,Τ Lo4kD-lh~h*tPᙷgnd,M[@E$OokK@0sx4 0(uݤZ|n [RoU3*c#I'#*f"26i3A>1QK]H}ոf]A{mMgi4AQROC160B߭xj7[e.?wY"!jErS=,((q^Y' ~KƑpy6'&< J 4=Ah>f>;RxdtEa] PZG|\K,˽&#Mm턃2N0~SΝY ȈbYo!do-o`G=A ?vd AYƕ"nQVs&'P X@̜+3b[NˎnRʎyP=&hMaTIv< @ZJFMYzwa)oy+ 1Mi6:e{X R'p#$X_Jo|w uQޢ_ܘm皏lP? /OL5VYh/EW:Yt0~O}(̳B!'LYL|;*G3#Rӥ jY%~ GZm'' üH 0xz_Tw׈pF_ԟtLKd=Xō53KAÓ$+4Rm<U֎yYmkٟ4yi~P B<64GP$s}`rs߮k;* ƣf8{G?ڴp|bwmeIW!Zs0i7oL=i"`Em$ҐY/z[7xgbss7z_?ӚN#C:-++'BHEuEcu Rr8IagաA0!S*7žo&E\BV;U'^k:f24c*ܰW)*3fMMq)'ԠH_@~ +R;f]JGi24HK@Д L('s~C֨=8\k)ryE]B|*0}*i4ܳ QvZɋf$UO6݂<{H#ν X0FTqK<xY#KSh+;U=gGyo\9FR#ך7&1{kyM 'Ә%uS0~qJ6ZbDbf_%>KƐhq$7mo^ArNNuNFS>J:Oմu# ,` AF^_.^TvM#HUt-j|ӚG_ `]Wǩ)['=𴰇Kh(ˢE.&e|%C5Yڬ_~Դz5W@áxR\ =l5Un-V<038C@6w/5dEb`9ۄK@S+AFi`dx4KǂbeU6A!hE8I˩b7Qڕև]M%*<;O1ٮô4 %٫Q'@NN t B3Tn/kiH$tr>8iqJk\%.Yc$F QKY"x&f22;r^ Ռ1Z+I6ܽ-cz^I?&*UԸϒN6D$ɰGTeYP͌-3ղdq9)V[R t b@OŢbّO I(-,.WNaʬJ{۷=o5T_rg`Zg^<6'&05d.ؠwW {7oW->e["o2 oKMͪ AbtuΒRFט"n _RF9=tBl6d-вs)W9^ UkVYJO vspta D>nVʮǛK\I ҺeTS566zz4@5dޗQ KL!F~9 E~B =ʿg'9&eQ[9wT_|-S~ Hv_<~HP?'7KT s|gL?ׅm>ʤUuUtMXj`o  +@TĪFj6/Y_[3%~U%d~ۼ1 DUdI"צ]g6[s,'5K zʙ(/EMLWQwߏ9%{.˴CWaᅣ@sl#b# HG_Ejpnb{[*mUa멤%YH5uX&ZRǦyhrp@8Y%%UghA^>Xoϧt#|¾$CwOd_f=X/j