glibc-html-2.31-150300.63.1<>,peTp9|W .Q!/%'A3x $H^!5R|/   IwT}*D:reQ;"20fwnvLˡZFyB"@kK8sk[) }F ֗dGRĮ*s? PNԫ r-vVl^Тę "wzى ivQ7c*MKֿ7U5KB<(Io.>i4P:~bȝS;Y?Yd   G6D Zm <   $d I 0=  lx(89:#F2GHHIpXXY\\p]^LbL,cLdMUeMZfM]lM_uMtvYzYYYYYCglibc-html2.31150300.63.1HTML Documentation for the GNU C LibraryThis package contains the HTML documentation for the GNU C library. Due to a lack of resources, this documentation is not complete and is partially out of date.eTh04-ch1cmSUSE Linux Enterprise 15SUSE LLC GFDL-1.1-onlyhttps://www.suse.com/Documentation/HTMLhttp://www.gnu.org/software/libc/libc.htmllinuxnoarch 7%!$c*>GC;%_Y3'e,_/zhW\*#( !(u.!$89o"48/1*Hk!T\4[!/7@7/!@#Tu1;ld;">G(R#q0Y=_*i.|E+\$&o6!'($$* +?R4UE8YNDu/$ **_!8}yV$o e # P*5~0&09!W nU3' 0D"F-~5)*{/O\J|xB/wl4" )?Oe&V("+Ll2)<RFwe)4i~It@)#..e<up%#*Y<" t)F%%}.*K?Yl40PJ{&9' S+%j2'o))! 'Q& k2%33T*lF -;5' 3v0Ee(u? @ku3YG%8"u's(ey2!njrQZ!$!E+)_,0Z!mB&ZI##b+G]"`k#(/+5^/V%q%T-l H")5&VdJ<4$d"fB3# #H '>b5- #~'!{, :+=%$$#@Qt3}<!v#5@0!W=u;!'3M4'$[A"Pwo#'"-[1':R,>:A!Gv$$%!b.<4EF^)##%"6V&C!65 %+#r;wd$! $1,L9f1]*-';?r&i *!A큤e*eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee3c081e24aa3539079e3861db1a2b9e34fe661a9f80d2a441ac7a5cc6b972c873b3cd7f9ab200703a104fae262714c2c4c65525ea1f8888763af6c393379603d6e0aaeb9dfce1ce2494024ad65293c23bdae5b683a502c1a4341e5a28f931238af8e4134d1c033dde0887a49369eedbf716ba28c40563f33627522ffce1529a5792f0e67e37c82e0cc131f64aea3d3c2fdd6d0a592d2ec75396565faa2e2187fba3268e40a28413ebce29936152f844c6ebbf44ee0158f11485d4885832405e3f4928e113f0eaa743356bd182de847711bb66867834e672d5c013ab362122bd0b4e4cc1a93955e8b644fb4342341a1f2ea132fe5934be6aaac633ee2b2b3be6b9a749dd855842dd822e9877ae45970ec42ccb22fc55b5c57db2b68ae93927eb6f7b2841679da1982bfd40b6ae58ece7026cc2d62e1ac105a3fe2e718a79276ff05b75855dc8021e513a1392787484e964bc26df5bb1abe5cc80c8eb3433e12c1ff295a6ebc465d14aeb66afaebe28114f4caea4fc0665203d1050a59052ba6e942aba324001c753ea0cf7b1c130b967f131a7f2d11234207e0a7fbdecd46b5202bdee03e206a4eaac2569e3697ebd09b828ed82919c06158382d5b64a87838cd7f17ab6bf939c98c0bf50674e52aa4ed286c1974d6014177d3d841c54c6f133a1d5f97e5d7d1f1cd6cb9a3e492babdab462dd0ef270eebe90378ac7ed4198bb181d68b8cfa0acf6b4191fda63c2fd3b5a4064d617ddb7d3d71ebffc16a64a2156b47160852e5c18f137b5677fcb9ce74066588fbec78f66f46ecb87c9e2926d91ab469aa6e5e3d33e2a1aa69e967b0037083110607440e8c775bdc9bd089eb9c7d09986174fb186fd8db37803246a66650467570e02acbb11a0f343e65664a1fd71dce0c907895f31b6d212c95d43d21adb18f272bf01a2494bdb352ff14e0b6ca2cb04ae6dd25b59d646340091479fc9a2f86ffded8b4814947cc71d6298ae44ff73e76f5d4fc2148d57a3c924b1b146dad81786d9f8593f26660c6e8c25d992c3ebf1d69986e50aeeb324a3ed0fd133b2f609c9be6dd9724d96835561c47773fb7cb3bbb5dd15f6a406e23fdc8c2e431b0dfcc17cd69810739fcf6539e944916e93d223379198dccfde0a7d665eda6c115f092c65820eb84a003c5047c36117d2c554d0a287655ce2497231ebba4730e42b3071cab520a7910a0620f2d191fc4d24fb0730cbc27815f5b8558c6072fb619b3b53d22bb95fa37edaf73c4fba7e13b15bb4e992bb6129eaa50e9b9e9d3beb1dc42d1d97967669d366bcf8ca379b5c35bfd5dccbd1fdd3bf3f6c6249595b9fd30cc0ba53077ba61c1dab97c3c9079ba8ae8a421d8fc3cbcd523b63cb1910d223239aabd854aa4ab4f18d07754ee94fa4b8ec76c7cbc822c52ad58a26c3ef1315c736887ac77767f86d2c8d3c8770bbf6363a8175ab7f8bd9f2745f570d33bfa7755fcb7b3957a7b1fc5f88fa2810b172344534f48dd6de106d95bdd76aa4a9fbe6209b7aea6ea7cabc5f4a54a80c022b1d4a31fab386bda56b159a2304c1e54ef5dae713fa4c71d2d6ce93f0ca9b2a7cbd969b3b3bcb78cf37e322937ce7480010e4e8f7f4c53cfc9b9b5a41f023915990c825ce40ef28a787a8054b72036e2c3667c78b656bd2ca2b89b4a90f8c8790ac4b10b1973ced2cbd5f15cd128450430daf0ae8ac37a454f697dbcb34946da3365a78db285ca4b16bb5e7635809683304638c6e4ad93f48b7d107c9c701cd765dc31b4b603d03cb5fef33f8eb818b27c2bd74349b88610e9c6ce28b3c0fa30105e57635bc607633204b3dbc5fc39f528286016447f03bbc2e4101e98237959d88e523e4922becdbe88039e2c3d7a6d83223b3664f40a3b2b9e55e03c69b735e4b93d087f3dbc9a41cfe430660809587789b35c6ba5baeaaaa29d2b95fb0fd6ec63a99fba466a777546bb5a2b2b255590d1e921df027a384588c9ddcc3492262cebd5c8be8490255728d95dda267c3ed8d8eef62a690205208c838f979ebfb46eb88a3e8bbe49cb19eb493b1591ba19fab68297999098e7c78339ed5f6884e2f352c2eaf4d4c067cd351759fc1fd4d240471b5c85b1dc52066ff4fe27884a475fcefa3152bb1da410c8e24014cb849f2b58a55536f4d30bd2b17270dd39a21ef9edd062d50a5b7984e3760a78a9493f5338e115545a880631d64fca48f139cc5c86828e0d12496e91a0917e6c7d3f5bfcf03583c0223f045a4b42a70415cff442be7683fde02ee94c65bdccfb05ea4770d328eb2ff8f96c81ae44e963361963b8ba31e2cb78ac213de792011cb30d699ae5623342fc023ad6e4200e9015b7544d1a9749969ccce243251aba1b5b897753a42f2a43928e6a6a60495fe9e79ffc05335e2a9c1896d66f311ed9b2583bebe4294c5871ad5b112639cc6a88bce30663bfbbd876ea0becf4c0b9430b7ed7707f7b904ed0896d8576119735b5692f72685f73484c420040b1241497ac5d246f6bb73e1e857637281be395111889a6f4ae507b56f46479bac93499d618a2f30aa68aeb59903fbc5a5b23135cdb3da76b20b068eac78cf4520d1a7bb4b72f97836a24301fe05d31b2b50180f8b054764e6cc239233c8d6085364b2978ddfe9837a836901203bb4a6cb4f454e4c30d02a70b0061c1b9d5d9ae9bc1cfd2e2457242cd9b6b0bd105b2f89547f62591ac45d2da12836c688bd4c2929f2de04ec3f2590a5a77d146345a7a2abf2637dc9b8be00eb092adec3f781fa0d06593e539c58e77b6fc7403059dfe825fed0d1b5f3996e34f429ff1c624ba722659dc51bd4ef5b3661f593bd6a2b669b22c62c5ef5f53ae1f8157169afc11d55a24f4f7a36d863a68b4be5ea5d48ba42c10875973cff96f76f3458ac9d48e51e7fecacc5cb04189bb13604dfd8eaa06541acfafc980911447334254bda147b2623097eecf8cba88295b6db627cd3dc59ec6f3443ab6ea8a520d35f78f267e6a91020ca1e78267cb5571ed3dd7b4c4d3fb66d7e0e0fa19908ba715d434c589221bed62ff844db6b03ab31f55e06c2399df48f0640a868d4a9c14673cf2ab6921181d14ff148bae35aed8b41f6d0f5f6808679022b2eaca1402ec5b2b76ccc95f18e31e387d83168eeab734ff4a6c1271c90cf375f12f2cb88ac59217c329626bbd7626a8ac5f864914971384da993ad6b145ea9d85a224cce2ebcf0ca83475539d093c45438ba8314aa99a2df15399dbe39017ca9de25dedeabb27beeefba72f56d9fa28e19cebab4d974c6852d5639d6eafee2c98ea4d92c83819e781cd1ca7cd35fcd2ca62f53a33a851135eb97f4ceb0a165d24913bb470e9a1069fcf1eb35e849bd5455ac4a64e5cbaeabe9174a54c8236804f47914769544aee00bc0fd37d076451d782800b7dd9e896118d342d00f60367004af07a08a81ee01525159b85e74692691458a1a2dd110d32c01aa489f8da191b93d3f77a70e9253f16efae4c5cf9908478cbdab9fb2abc15691976cef5d29abec6a81051848fd258469bd5ef73baedf514fb33fbb7e7276a89087bcd8ae290431143e4116e12d32ce2f97e19fb5c97f90f9c1757f9acfc504041203a7a7b660778bef9742d0313268f789a0300a0360a163a39258e49397e4e0ee2c3246e6aef568a4c34e9a1b6719b9f63dbbc61cab23dd2f38ab3adca648219ec0681178504c5df2168d8aa2fa62c2ff3d956937dbfac556c3e80397da5844e68968317b58a7da04f436fd29328addd4c65e8ea20ffee743f73663286cc0707490ff64aad7e304604f9d72b3e21f51c2b753923ab8cc2c75ce05b4f31701a13d849a54142fbc881a98784ff76aed476ed362b8561049a6f5517b1fdbadcde9f65058d6c4caedab6a1f488d9363794b91884d7af76357a966c37e39cec489bcc68da6dc7b5153b5a6c5605436434f2ee7407fc9cc3fadde8804aad6bea584133cbe8f41c6f1ead870e1c8f759a9ebd2fc1e24aed0a3409986ae3a2f7431db9f580ec5aeef9dce4075942e89453734568fd98d0fb97a31824914c947e37b3c8bd50e4c507ecbafa49bf4a2de183ef2085f3d152ef9d168bb44e39e39bfb1964a0731ab7c10508f9a3eaf7df44dc5e2b82d3ab292c6db92c1a9284c1d8d648371da370835a7ee2f465c7d81d8a6a8fc8bbe11e6ac622342223213acfefa6dbb2c3aa6bdfa6a9a53838224e81ea9431dcd4ac2fb0c2d4ae9dad932d4f39a5416861ca0f3ddc599458ee379d2359c1ff081349536f13f9e174597cfcb14107160ad06cddb7f340206d32f30a76f6746e992dc443fdc30ea6be090742b8bbebece93eae993a1c9ebc13b595d2e9bd67ae8257a14269a972adde3085329f2c2e47d061514189015b161a2aec442ce46fa78bc19d10cd9aa820e9d74f6fca5470f2eff921abee3ea4915acb88e19f15aefa1f22bca9f4519f6b7e45375057ef480ebcaa984e6f9d29448155ed1a2e892ba81f80eacd35204ecce90a29f908eb9a4dc401169a61d80d900c07baf8be0a83b232087d63df8835034bbb4da7b40842d72d57d2cbb39e6c238b2ac0c587c00fd15ee0fc6f90b8ef7cd5ec698ae44038d36b806d1c07a3a3a37e15795eb379cac3bb59d60c8cc4ab0765dc977ead46962477284cd38bf737b87895331765a495e6cf2f5488174cb1354aadd55f24b5d831c16ce3fd11602d046b4040e0767128f10f9831f8d3496894260d980e9200347a5ad201e44bfa1b262f93d72089305fdc4b1cc6a70094e255629e7410a181c80e09651ecdc8aae843b5dbf7a7fae2125756b80aa1e95f2b3688eda0f40e4b902f9328c1bc4887678f7eb08a6e6fc5a7206a5f19a880a66eb8b259fd1c96959613722bbf2d6967c226ee051d550e0c05d93924655de074231e16fc48a72c15267325c24712a067d1753672c1cca2b2a11103a0e1c960cc2c1da6f1ad2db6843b7b6df959291a02e8cef0b39067e6214c4b55bc71fb9e93e180855045a6f6a1620d76a75702d1df81de407cf80339b141815776562610821d03af7d545750ec84f1dd536afc2348327aa0adaa4f3d9fbd18fb9c94f40c18192c724580ae51f90349b9549852cea4026b61fc8018068c71140f703c3c371d3d416286f8ae92b78d5c1e69e7aeddf715c3614b3bc8f54e1229e2a7a3ea5466fc40cc7ebb546a9077d002f413345696f2f351e67733701c1753f77acee723a954385101fac7a02782845ea513d2daf48bc6c104c3a346d78ddb00bd8dd7f1e7273deaa7fff29164866565bbf1c2b8b5dba086cc912616bce69f045816ffa3fc56be3092e161cc4dbbbe2a28031f002de4cc84f7788185ee2811c24b8e9fba47ec560bbddd47e9f5fb205d436936211ad62e20f29d703472b8f67e8313aa8e7408ac8e7d9bb09ea45726203eac168ac38f90bbd719ec6b9f83a35e5d2fc8ace321373b55077bc089149e8fa10d871ec6960f789897af74a5ad29fe1d0b34ea95c8e2691b871581fc1d70155591c17889d74695d105dd0a21370e901ab16d7351c7807ff0ac9b7bfd298dafcf717691d3a196e32bbee23d93b6127c83a7d21823de627dbb104c17667f2e1622d820ef52d976cfa922e1466776987b7f11126ebc92793157add4f1bbf4830502eab607851fa50d974c3f1642dbd8e8cce0f613e00fdba690f8dfa3064ace55da45e92f9aa373c8876e6d4a4a5ff1c67b04caab30a020af68730e1922b3a421fe87c2a54b3ec9dddffbd8045b772fd46ecad9a40c268f2ec865a210a7dd54672fe6eb56d9addd0152a596b07a6af0307abf010e89cad5094d466f6bb0c54de70fb31e1e4256b3190f3f3eb3288dd030cdcd79d19149bb8d69c75f8fbe23fa0e0d0853b2a255356a49fea97cb7efa52040bc993d2cf6a3122872848dd31d67bc4cf0df8ba6f0ac1ba6068ca444a59735f36ba2ae77dc1b8efbcaa11bfd618f3d51587a67e23f12ad5aa530559e224054555446f197ff5e2a199df41b5dfaa0cf8ca612197bced7cc823c9d05db83ac1cc001523e97aae3296cd0af3d1fea8906c88a5a78741109b3a069a79adaad9d4ac3a9a26f5b08d9c91caf36877b68489f19f7136d5703aacf3970b95639f304c4f89d79d78d57f4ca3e502b2854e20663009153db1a46d284f4d67513e5eeb035c7e2315adadcd01f26b25711abb8e035b559145cb857597a8b85a97dcfb25d0520bb42a75dd9218f2676055fd6d193e051cb972c61d16f838af048cef04fa496778dce424994c51905c2135c58db2ffec8485e26806b013d1432f28bde02b827228b121873dd37a286debc83fbd1d9c9fc9406a33a73497087d346516b75447e48e28e0363dd07afbd7aad017f56a7b873d63f8bd10293f9338f761ee8e7fd060623202b2905b719c48b8f695b830271a9c6f3ec51d20067f04bfec8a2620011381e7cd77d166072e53ee5512822c9f657947498693c74a86d3e34b7cebaee0c6817f9a4d2bf874061bbdeb50f822ca3c6e903eb2c8016e63e8013a9965d2b43ed5448f0938b9b3402ac5d5fceac00316ebe2b6dd37395b11effd801add77b8a987ba642af0144095f0bc4fdb57698695afdf1b0e32ecfba496748b538f60aae97260e51247e0b922495a0d452a1ef4011bb793efaf1fca818e235527b8a171ccd367a89a5599f693d6aca736a6d1ff278ce8393cf7b7eb18fe94f64c37fa4a792c2bfaf693784f091cbe6b373e125c1727e1301323eee5b6e0be0ae6c9cf2d8ef73164151fb634a67f4d17b6f368659635438a5072343c675528235974d5a0d17106fffd45452dad1d51f77686fdef4f89ac9542ef5e2ee9efd0a7a7a75b19508990353289238f5a9adebdb00d97ae5b69a54b0f992a4f4e3e1c933dd6769c6b7e2c37071a184ac03a61e94540b9d8a017b1c0031bbe5868510714bebb7b72be5afce114c8c08647aaf1e70b3651578b4b0a026ba2bc2ebf0992cdb23b0045c4c1f1455c29dc24e31c880c9007611fdbb7878a552c68de67ef1f620392d6a9f02a2132126f2fdce465e64308bc4219c5332161080b2d7ff1438f1053e74b4e1f99f8caa3af8efd040aba54d956f2648239f70edff190fd44a45d3412372d981a0bf80fbb624b3d2868f71e5927dd6b3de9ae63a6e2020a59ba62c6877a32868bea8c4413142c8179d104599ad357a09aeb27203e034513a74dad597c1d05666cfaa1e1a6171b663760e0bf0e2152fabd2b8103ae4522192d981d11fa5ab13714d0e12bae25129560f0c12dfbf861e49199eaba91e2e5bcded30363f51d0b42b141e4ee9026ad5c6d3326e56e2592b08aa5ff87d60dd1b55301d9a880e2f95ca199071b6df4ed5e9dd3b591f8cdc7caf57f4a400860ceb24a5fb08e9a167b0d646f7d70fc0003918d0ccd216b907f78a61d3348e2ce66a2fe952ae9f3925306893a957c39990fc09d55b715b98e25c32b95acff5cdc0296f6aeec435c19d35b914d2a143a93b49d855c9a618f05942f8db32ef9c641b83c9720e3a8304efe84d917d1bc5c96a34059086b1e528f314ff20901dba13805916e12c359d42194d0be5a70789ef765b2a9e78cf1d1f72219dab43a5159602d072c06b383493003ceb83cae9a48e18653e7811f9f38dbe379ae722635eabf0938bb72da37b27dc1cbf62bf9716081751783f7b1e78481eb33089c7afba5c884b2f6bc5a174439c06544500fef499c76ab7da7d1b961bcfebc9f17d01122027003d20749618f64cd285d07de5ea7f8654b92b0ce73d949fa80cb3b0b38391f19b24e3b369116ac0f915fea276d93ea59cc31dd579c072d14f3d3c100a419108282cad02977d25b432fe3559e74edf3240f44124d10a908214826692790b3f43e7114aed4f0a3b2e23d5643da28c925fc811dda7178f112425879465501308eed18b0a1c774a09f379dcbb73282f0b28a3d36c8a52ea00a125e099fdaac56a5a3308d37072d298a7f6b06a7c0cfe0123c893887e81b4a8a8f39ce59ae75890d64801c601f02699a2e67af2956fb46c99c2d782e037c4bd792e7c2724bcc3959761162489ea08d4f4f198adaff3e7d88eef80448082e79cd56e56addcea5b64057e0654145e00091c6f6a395b352c700a1138ee1ec6306b977da91dcddc705f62a10e3db6956b8f0e711615ddbcf588a2c5244aaed2f6d14258031de47cc9a4e75875a24c452439f45d330b88fd68531a13773e5614b113587d8e5feb43b0aaef523dc163b77d8d10d73822ff6d1f2ff353463e91d7f8cecfcb4295bec001763856b89ad9344ab0affa0f52e49a2159b6fd5fab8fcaba05fbfd429c878d5a4747095e74a749bfc9afc71ae08c671143f934f99dbbca953b35705c21162aa8daf59e6637ec2b6d6f8d7383e22d05aacd6390dcf9f9cb62cebd7388d7d2eb52a32d2ce8afa3e3c9e6db6d313e9d0287601e41df6f4033c281da4d05a626f53c6bf8cca48596f30ba8fbf2da5ae7a36d28d09be7d991d25cc62d5476858ef0f693bee61796fc4f63a6679a5f1e7a3bd3f8d1cf49ff49d5b1fbb47b319ce78753826d3830b591c21076d1d8385582ed5cabb3b837efa529c17dccaf92d15b6325e179e0902bbe162c741e6791740aefe40df0c51b0f8988df3991e21c108f92e58102676fc8f60cdad3d314a2666814c87b2bed5de5c20299f6692f2520b669eee2cdcf0f36495e5fd849d2528df7a95e571ddf7b630af77c2cd1809818c6985a41c2d9b3c412fff73f15d1b187e4e463c5e6363b307c2aac208af82a4e7bc3593151a719afc7d47e411a27158646ab07ea3aae9004d12332fdf6cca3f65ecb5d90ed8f64021a65a5659b45377c00aabae3925400e19ba840b690e5e97cc777cbfa564433d5aa7d0ae1c9db177f13cc699acce51c246823016610430f9afd08327bb2d234c154f6c701f3ea5416f51a26488b98345bd7c53d59d8d634352b821fd3f55276a7d92baccd817e06b2faf7ca7676edabe4135893453ac33f984eafafef848c405449952741d31ce211aba866c2e5d626a633e0b67e061b8546805dd31b17c958e2e1cab3ea4022bdcf934e70983c15b8a1963592721fc164e08d9564c1cd015887d863f158a6dc0ce4b47d142d15b1f7059a9cf64ad86a6501b5b8352235d79af1402fbda9bd012339db6580cef5e2dc9b7815d23d9be03d533ab9a5e75b8a11675dbe703d84f12de1cf71d62864c1c9eadcb3f22413ce3ad2731f71186e1eb1bed0dc2384f6a517f443a4e4cea387b7e7f26002072ba286c080a863e6ecfa5c38dd6619104ecb5149f6c458ef01d62967c388a60e88be1f16322c19dcc7856885f5acc0ff6a391c8e3c38fee2ba3393715ee2ac9eb214997a7f26d0efc20475a4b823551033e99bd36a1e599f7b73936249f97e3f5c546ab970e6a535047321d487458cd4726bdfbe0c2bc4760f3ff477c388c11fd99dcd69424a7cdc5425c0349c440d04c68ab85f2104bbb5c86f76883d29fe0b53bee1a1bd683761841418cb95dc3132733643aab5ef2b4f0fd4709eb66ee1448ca6946348cf0af53de03b6b8835e497de14c70843aa3eb1f16905165561168388b421efa14e80bd7bda4be2cb3d00eb59d3a28b923b74c37af636b703a4dcf0885b6ced840efc8bad5db5c5daa2b91a8d6a7b7c339a72e17afcd82c004e53367b61f257a5f3d973e476fc0ead63bdf1143ee2d139611c17ceceeb291fa98960f87da7aeea98632fb7174ef450f64e246d37b44ef8ecbf7752c572a69c87078513c03320ef03bbdff27540c1a0a124ed7a5fc41c6b3f85fbd18fb746c8b579cf481c46f46cc426e597e2b1c353328779dc7f722b4678db72365f8e3fa27dc079eea69ed5852bd87e4e68fe598a9a09d5636821ce9701d1b5ef64185cc44c61ba49d5d07fa19939dca81bac5292113a9c8d45966b698ace262fdde3f288a4629b09a65d80b890b78f3b42076686144e0b116cff4dec2d0ae1a9f5215d88687549a669b497e62ddee71ea31a79dd4fadac7b9965598bd60f12e958ca83493b3a5f8e33a25281aa9b7e2d8bee2aad015a5b9f9ee4c8f5c101868094c1db0cd5d141fdb973366648300503439c307d5e618f8a8215c2b960f6784b0f6a3a6f78f5ad3660f55d0ef7c52a7181ab1e4e4f8fbb7b6784689a78f9ee02321a99b8d357859593787b74a6c316bacccfb11015446cd2fa9da8b756c47cc1de32654ba68bc48747921ccbddbcf38dc717aeaf3a3fbf03a4b43b14189686142b20325a451f582fec267d90b5e2fb952597824668994b9263083f5163749cf6cb3c9aa028de6437acb2e2fd8b2415e675d3d0f7d089cccf52141dde1740bdebd68b01905694bda206b44e9f9a3e5c838c5d286c812cec219b0ca25cf62bd175b00d9038a5917752403db6bb3579f4d487626152d89049b1a05875dbd52f619dd1b59e0d61234ea8fa5ed8ef3b07bba9f08326ec9b4c9755d4f24a047ab5dea10c07eda04ae87fffc1fab66eb8a4e12a2003974b69ab4daa640bb0b30c6eb2c62e496ac52969d6d6e2c4eafa7d95818de1052c81a22123922deffbfebe1709109ccb7b2bf6576ea25ada523a607ee66192d2ef6ed4a21bec076bd05e0a72653bef28a79c271aca47bcd52e567ed4c45358b8efbab66f933311e3f14a2f19f2f61c0fcbba0aa0ba31914a4590edd9b14d2a7e77d759fa3e16d7e6c9d3a2cf698132ffee6fa68fc532ef8bf0c9ffc56a6520e2ad30b46e44d59bb9fb538fd06140f02421e4f75f492ead9fd7b8717716d595a4f6ee6f8e211e82031b0954f0792158d7aa0522dec2b5def3b10aa758c967bfb08dbcaf46c03d9d485b2923c9ccf0b27a9078bbcc6e401c6607b94901ed37f5b8510079bac29e1a6fff0306b0f21f27d9fe5c83c0b2635072d213c036b287d3adfebd75523b59915605baa64c73592aa17c260c43d4a07c7a77ae2d04ca248057ddb8204caeff8cf004a7084d0ec9b1cff4e949febbc668e462c2f895c6d5e1a3bb93174d1e1fdb772011d3fbeec394919fba543dd47a326e67a3bda9f16dfed18a5ddaa0bf9a738d3d2578bf6a7560614f452b8f823d71d3c75be304ce132ae5c38c26a57f7bf3324de2d44ada31f837e574833b9ef1c79e91ce8afb3a1fd92e88567eb7b2364ee5cff66abf6973fc94c99aeb74ef0e373fb2d270079a78ef47ab2b2aacc1cafa7685dcb24abde9029dbadcbd1d63d454fde70b5f74c4fc854fecce3bee5c9cd418aaf90c8117f4742338e81ced36501e9a555d25ebb627aec11f681b48dab456b28504c0d12722434bfbd310bf37a8e16498583e58ed182b0813b85c9d00af192c5fa0d8ed59c5d63be1ffb392317873c09e1cab09e617d9d4c036a978ea94f28bbd72f318d316d0ec6da1f6693569bc8052cdfa84c159427fec9dc9140a7450c0cb49beb60654b06dea3317f02ee99473e53356ef33a8ab274ff6673b142be57c4b63fa0b5ab246c9f57ee5c12481f8f172e4ebdcee107fd3e72749977481d6b6c70a260d447b78ed9d24d15b87aa9009608db4d2fb4d5796b0e82b68bbc26d235424146fe121732482d9ddaa1c5c797e53f35cada8c9e93e22931ee9e8fff3bafd4f24a1b77d6225a5803bbbe27f8899750e26e785bf060ad48e8e32c370082fc15b62586cfe8b8b914ac9aec50d3ec42e226fef7ca7fe18f175bcdbd2b79ce1a1c6d3c398893979ca4da07c98e22966c55e6a8b0731d865c10c180e2737a02284fe1b303894adaf219a04249910fca3f29397bb7a104a16e7418f76303d8c5227b2339973c76f54747b0281cb1a5f5a62ad853ef1b2558a7b445c33cb227d4c9ea58db03983ce7620b77e6aba3d29cf15a3896afb4414e645b4dee5290174077ef2fd9bdf72f20600d5b1c816eb6a0f4a9e219bb1d956cf3423a55ae675781764ab4e49cef1853f9e2281c8693201f40d085a364ce7f44baf266a0c3834a72f04d02265901f36277f654bbc91f01f03861f64cbc2d4ff0ea23aa17aecd00a8f81fa42dd6fa07f6d02baa214b0b2b8e2eab16275551c057c486a1978c411d57f43d87927eb79398ad3d3eda6f03e6da1fdeefbb6f76d21cfc582ae999533f5b8b03a56c697c6b077ec829d0ca126b4cbed1ca35d260337850ae8840ba464b9ae527cd43ea009ebf1173a325b33816dd1d76f53299cfa79120853c13c099e50cc3308358c67b05702d86f07d9635cbd32d55f3dbf588f22e97b0848eab1c520882d8d3d7a23edc59722f31572567a9e1b5d81c4f90c4ab96954bf90ad6fe46430b6c798805e2327ab6492ab071dbf31fbd8401830a2b77f79e269fd08943263246bc3e34095b978b40924af5d839242cb700623f1919a52eb5d62960ba278bd2407e3cc79e4cec78054bc70d8323087a9039985bf3f675aaa9b2e09e8b7da88c613018beb0b9a0f3ada018c2a9f5a9f20a8a29594573a6bc75a2854c46ed7bd58e4952b019af1607c65bfc384f9141ad5ac6b6f86bd60772355a21643d965956d52fbdc148146c6a1b98420ab0a54c874c8d7dff1ce068923db1d767af11397a5301ba85bdceec4ec8aad11fe7720c90b7e90c734130c983fcd412693396a272e6278d7ee8c763055823d2d00677d5bc423a56bba27025ee27c8e811ac27373bd6c9c5ffa076d471734034f8a23797468394b51c0fc8d34247042f99c8f63ffd27b7a4eb6e9d5c458e6d7754c2f424225593a69f6bcd901a81dcc12f99c6b9623e9e30c5c5f30d293383373a33ea268b3521ea7d5d836bb7119cb4a0fc385f03e96ed5a45330c55f3ab7ec0648915ddffdd55eb5fbde5510b72fa0e43cb579fa6120d62fcccaa540efc4b86164176a38f8835340c7fef0f3572340ea977e48d7acbdfe2ee86c82da0feebe76317c3a560e98330ad70129f05dca1055a0791903913c139ff3f74ddd07786ba3672b63aa2a7d74066c288c2b3d21753ca56eff220e16a2a33a0bdb762c1904417399b9d34a862e5b1fb9a8ab77dfced94e7f1bae85c9316d8a4ae13019d35cfd2c4ff9f1e28ac1ba96f95533e4ace414961264363af0a6d069d5efc9fd5439312d9c22dc421e57e4e8dd5a0a285720f1c2e2a48b5a14323f81eb0e370602c688f78a9f40b27470acd4d8cc9e64936dd8e7a7ebdf3f000a94ea0cb3c86e515ae8fa27239290ab8e467538ab39d6a96554697a785fc2d57c172a7edc08a02924b2af059b41cbc79add29ded4cdc4f07e7a04199c11dccf18c8ed16f60ef0cde95ed550005caa5f3913d693d8915440417f3d17203d2e2365fe6c2c95ea5f80300020c4ea4adf53c577f382ffcca7dbc1ee16e34a0e0e65efe8f64294d15b87a4ca8ac3c634bc0a96f033ebddaeabd2996784f7e0b85e774c891bede7acf28323611df9a19a1ec991ecf8e43bc0f4d607dbad39a6e744143f694eb06c9fdfc6c10ceee45910b55abc7bfcf4a87f0bf5f4c5bdedb5008a161a6dc196b7c958a62f942015c30097e5b25e7d5987c3adf27dd17ce4246d3e071e6b809aa4beb4ea5c2001d4f05ef6ef076c408319915baaa26b680417bced15e2d446414ab6759549ea2ecf0055cabf0dc01f7ee304c71173c04afa9813d99b55acd5f56330bab1f45c3cbdd4de79d465533916ca2e797bb60efd726e4ba1b5ab8f091e055624445ef34aceb100d3f6b5c620c8f12c955fc04f19ca5ebcfd1ba39bd7f4ed94e20b54b83df2e9562c5dc429793c1b6f314b38fb13abf837cf393e82e227b28c64e46edb7157b0a06f6d2ac07a15fa9a5959ec30087520d3a7b6e2a9477799560457d22b819676f6529098ee76b0731852280c82a66374dbbafbc8d367f02e3e8e184c663a308f0a1c30901fa8d9fe441c81faf33ec3f34c2d4be5f1af43703467052dc182dcdbc98ea13afe71bf9333e5b2f697c44129ade1725a12be53d7e8ea81c374814a3e5825cf5694adde01cabfc1570247499840fd88c1ba47df6830d38509b5066b9ead1ab54280617b112db4c0e39416afa685b263d3c5d7e857a8d200e0c1cdb1dcbc72e3c8dc06dfbd59b4201ab890be7c5f2c7e0f12dbec2f877a533d9b3359fdf509f69322aff9f27baad70aa682b73ddcc21f12dbbf838cc82318e12f86e2d45cb855683fa5f68ee5cac50a9fc86269736bb1327a28334c10402eadda23dab3ffdba605d3877a5e18da11f9ed0cba2a68c33c0e62f5404ffdfc9a12c4ded05c4f439d9e6c18fb16a9d6c4363909fdb03a95a2ff4a11bd73426536778dc45479e7b555a425ada0e06e8f448097b8c0a11685769b9072c269f10358152fb08235d0d1d481db0a27b518122ea136686995c0b5beec5730a90ddea7f8fbb6049c1842d03ad43ac106101d6e7f7d62c72ffd95e94d532b5b9b21ef03f878484047b23e27d403ca426447de3977f107b07eef42715466eca9509ed271ce630ecf8b344967911351f49bba42fb31d3bc4b4a9b8fff1e37e69916fc5383477a9c8c044701dccacca069efad087cc54e1553d5040eea0e339b90e36ef29549cca9596de30d3a475a657785fdf624bb880342167a5da3da5908495ea67a1819136e926f136426f4640d1ec26b825478b952b7f2e153621d7b8e05414ffa398fd0274ff7af6910c99f833b4017be45db0b8ee8c22a8a61ef54c14853c1add290f0eb25f187411f69821939e0046f1f17416c5a3a1c44e6437acae134c9e23c578fc3ddcd3e3d7ee912e6d2337e613884890545e78645b820bf624d854ade930c24fed0b7733bb9437a016498334fac75e1199419227a9bc806b582c8485d694c50368fbaec7e8b593d5af5fb574af15a6b0d8d5a90dece77ff4cf36619d36b0954c6737e317d5d55cc72509a0a88378a27a0b86f7a2a9a15fb998edc917e7465c55b07f896c9db589ddca1e2286ce9a046ed286f53029ddf8bda8334f0dd994a386d85e9529a47f01d552d1fefcedfa8f35df9876bdfc5efc65cb430ad86708e7ecda5f4580649d813677ac0f772b361d37ff277115bdb471314a69dab3f5ca6471840b6f3370122de30ddfc76f2e6844c517fb6ee695ec23cba1901f7a4c7c2616a7681ae103769d5ac4e4679e4749b6b0bac7fea9cc1fed6af8de3728f6f06a81f3486f412a76d5dc5e880e3d9a11d58d815e9382a7356de07c209019505a09b09dbf03517dd56315457d3e7744e8e05c2db84397bd23fc12942312bba047601b44fab57d7badb83b021347e4cbeffa8f18fed9c0b14e2351938ea162d41586e2e453e6f6b365f5baef80487b3fc8a28ccb6e79724425e59d43cefb71717c1aa1804d95519c865a284705747b565415ec84793bef8c408597d8eb8078e6237ed7da815c88020345efe16baf02bcd92ab5ec2dd8ac73b41564ae9721b565495528da563efb59f3f9dab3481cd0115cab7b2e4756d4cebf45b58a664eaf300161bc887e00704aaa6eeb46cc48045ef95f1f6e28ee5ad2e4de9879ee2b6424e884152904c9325cf590274a9e3c827c66f494fe0f87204da3af27a1dbcbaab6848548212b4fed73e782c95e4a7df8da6477cb55aec27340d81bb69d1a63a7aba9ba7667072228b5afef5912a021c9fca4c1629e01f79bd083c029eca4f19894a4cd2c23742ef1d6382aa8b926126cc5d03eddbe8c057c66a01513657c02971c9755ca27819314beb6bd5243117cfb2d1b2c03f01bc180fc0e52b78f89ce737b5f4d4a938dde7e262a50c9610bfafc50f3185712d012a7c71cadab04b5a548951013e7f2fbd2c37523f80e7e1e5d92a9a75e6250e2dc753cfc9a182cbfc56d312b153dcfaea93c2ea03f61d3a878f39912911e40c982217332a20f93308492303c8670eb56f0c1301b6c6e2ca76792ced23ed15738f70c21dc9948b8a2fdeb1f622a8b953a95e69573d98ce618e150def67a910ac7a02c95ca86761d257e3728b3ad66f9da01e0338d5c4afcfe36f6b4064bbbd7f8feaafcc89f51198448105ee17cb5754e991cb1dc6818a846be0d09ddf0d902dce1ea8b70254fc4c3ae75c336e65f6445a49e28e89dfa41baca988c30130169280ea21ac693b67daa1a2133d58e96e008ade393f65a4c3ff4f0c9b7bd0ddc65ce5aa28d02eb248d7e9bd333471d67e2f37362e6c153ab4ef3a6156d3ae6f6a8a3be3a25ca301dc080189e7f0299b70c1a64071b872f8139e5b2c15f552e936e00687146cf15171435df81901578dc663730d8d4aa444898c6845f053d6eb98b5a4b20a26966a4767661d25891118a78538637465b1f1a701b76bb369f9e19c7f8cfa0d9621228847892df863a222efa05f99cfb1eddc0155762fc24e6e3bbdddadd82d5f515d521d746218261d301c74da41f2a91ad20f3ccc41e32ffd7e534a9ff37cae3e2643b9d012385061d469d69f4791842317315ff17de3cff44098212eb0b65c95ade40362388b6e9e2bbba39de9fe678bce85333d15e4b90d5711311485373185620018f66a75742a1f5ea36c70c2bc8fa26af1602c83914768e5e27d2cb38c701f60e953e8ec883bc68ab474d538e47b61bf99bf9db70580a6ffeb5beb3fe3b4c5290e59c13925102ccfb1856eaa4b2493543199a7d648db34e9de34084ed3b6445b4d48206f33d452f736aad61237d2adc31038f1830754c785354bca6e7ebedf2540145563dd5fe0457b9280098d64147656649d81f56e740477959915a9fc8041ff7ea7e6996abf56dc66179c69c94ae6dce102ebd18042c7a0489d9cdf6d4486eec4836d9ebc7a5fd7eef55226dab4f544a3ee017f4df03101ff7d4380af6f35666e2190d54716e33a6352746ef6338191c9f98a181180ab66188d84180df96d88af1367ef9b2824ff2cca2394d6a48adca8f26e2ad9133d74234eb942f37022b44a1f228f007c27e4340029e65577b98f561ce3df5819e75cdefdca50da6334cc9cda28e49fec1fbeb4a034b81e1f73e471384c715630a822b8cf9b47a64e662f0872cf8ba32b3727f50a42a10d107d82cb49b6a56a814aaa4b7a8b9fe9ef9663e5419ceebd50361893f7bb379d0d5145e476dc7e33679ae1a2d12511eeb64016f3a4f4e5e3b6e0661d092c7c54832aeac2f704f7119626f8ff2377ca5edd44e69ee1a5200f085a925865c10fb346818f5d1c3f9d4fed81f79dc51d55a21b2d7a1612030dbf99b9995a9c34acbe2f29a8ab5894dc5a7e330c990c41e16e6e792f4b6a378fde47047ead77a2578263d5436acb18e9e42ae0443547e031acaa120d7553e56b9bcb43c8fccb3728b9e25891fe086649db6e9d7dacbd1a4bfa1125e10fc4e5ce55f74aa768c03b4b5ea312e63002f7f42d91074d95e213c72e2695cb064b373e02b86f828f1811837a45b317086070d3be28ae56477442b5b770f16645b06c00478322cdced67664f38d8912dc82c8b8582e1aca3783adc118ad3d196dfd80f7b920c2a0d5588e1a366245eec505e9383bc92ce71e081f3b6f72b7661bbb471be447388ff8d525ea5577647a43327aca53affa176f2330aae86d7542492f6b1c58d006a063b6fd68ed5e9d8595eb6d1b435f6f089b6fa6dab0a2cd7a5f67a1b1afedbdd92d5e1ec993910b2df1a0c4ced361d9a0271dec5edec9eddc0d3b448a9f22c29091ab709fcefd792e03fb8fa1c86d044f7a14743ae85bcb2dceb390075f28dc04ea3da78d25c8c3a38a854c34db63fb0910b51a040e515a11e3dfe84a6031a1bc68ef77fd067ccf90969b42c59e43ffb6b32b5086c42d238799508df96c5251d6cd9f6a1d4cef511230aa4a265c0ebc285b778d0589a1c9112a47b0fa50fc35e9e5c6ffb26b4faa47d9b6de1d035e5067bfc0e9cff22f94b285f5bf5fcb910889fb5de025fc8304753e9bb488b98279a1a6cc66e949416c6a037af9c8163d9c5f73c6b58185767b4c8cf6fa9066780e50fa87b88af63efb9ba5915ef27de1bc70c00222ada8060b3a49c6c3f5ebe043d76002803cf5e30cbbd301d2b42894690cb147df2b84bf60c8e4457d2aadfad496ff12b35c2347bdcc4f70a8fa01804901e3924858429bd6411c45eb5cc3dd3da62b50354175b6c29bed65f92a5cf48cdb5823e47de7cff99803d0be15bdf02644e556d2c171833ff446f3917897d8bf22aa0ebdc64f3446184af9f53d179b075abdc118a01d8b1ef0cab25a1826c047b3b8e484d2d1158050a2785346affc328ead543907bec10a9c6fcd16ca9e13590c32c0713ebf8d444d337c65fb2743b93670b724340dd3c939b407902a1ca9f5e7f3eb91eb49d9675d69f4cd08ca61143757e12ef5976a6d8697e3b06c4dc4294b2025b1e6b5e16c197ce266d60812294ad4ef754e78b36561b6b646dbd035686c062c4c050f1345c9cd7a12c9407da6d26705b8ad96432be10d62c4dba81ff7a360a78ea0a4cd1dc85d1f982a8f444ad81b79c8f4cf808d201d42c70862718a0da502d06067608abd50c7804aad24ab50214a212745c899c01438635edbb4a86eb71b1f55d41e397e34ee0abd53e811439e6ce900cb9f148a566b5c0fcef33c7573ce734223c23418029e5890af9789b8e8c6fc2a82b503707c7f8f585e977293ab1f82b5b9b83fc205951bf5e96748f3a61e009ed2ba3b4abc305e1dead351e657bf8dcd640f1659862e70574b517a0d08f124aeb4194a7029b2a50242f138158e6c05beece4189f316157c120d30828b9c4f9ea7016c1e11feebe8aa6e2c85bd440cd59947316ddcb16e6abd2abf6a059237017d54898913008296c41c533ca2bc3e215f454fc3fbddc20d3fdab2000d43deb5256c0ed9a8113d77b523763e5fc2f1d9dcd7282b32ad94e34b068783dfe3219e018d75f4457740a8e563fc1f94162bfb02da8fc87e7db2371ff6d81af0e7d8d70be5895aab29898e82e3aa220b5cdf61ca1bd28b660a8c775e11c98d60c227da8637ee180622026d9eaf97cb7eb0319f2c6e9bc48d6229a733435f27be5a2c7d4dc494dc445554a7b8169b969b304a2ab9b549d4bc7d9c98e1c438d76d709c5d045d3d8e394620ca6eb2b649f4582c8da88e1eb46a3bef74d228421796741612f2e44b8f9104ea69383958d027be5753a33753ffd2144d732be38561e2acdb1c1032d0d44c14d61d6966df9f703d610b61b51a7436823ba8776f3b59eac83a3e197f1d57d7c0e16c64514121b2b90a26a17fe118a1e3cfe7227d5e092324d3c250bad24a1deda42fd0926fa78519f27eef6fe22683e3ef7f3b96931ccaaf41b7a2d8fffca16edb57e12564909ef7464922bb221e79cbaf4a4a95fbef74ffe36bfa95344d43d18861e760da83398b30ce1f7ada5a7878431638530f71b59adfe39dd52a4178dc0981cdd53cf20d409c3c75872a739d28995b3da4e4b97fc9d4dcf657ba219444e7d47a4e7bc094183343d4af877cfdd7beb07ec77ba5cd1c1fe3a94b711cf0323722af24a6189a32ae039756daef84438aac4cbcb07dfc3c7ab68b7db2614fb295d77e8fdbfa362efa1a5588780c2f8f4d152ec4f842d37c0b35a6a68e30c1bf3564c106acd2f15f88038a9d2b9efa51b54595f5a5d39c2217f40b97a90072fab1cb4dfdeba95a58821390f6b35669fb0378d9d7d44eaf829dedd86e39e98112401b0d68dcb2df33e47bc38131ad07e1f2550487274a21473463dc35ee6d4fedf523ec166ee89a56206d6c2089acd2d08f59594283ae5cedc8c418691d015582d5aad2e5e0b2f72f139f6bf756df95a0d827b8e30f8087fa01fdcbeba50637b38a33dc8e6f04fb26400da4d378c04ee8eaeb70c5c1b997ea6191b4067b7ba235fe9bd9d7bc139102c4c3cc0f3f13db5307026cbcee1f4db596b44eb43d0f9a040e7b1d417824836b1a16fdeaa7eccacfdce0ddad983d6f9f7262abcdee4bc9ba53831796ae5eb39ec52ec326e654d0c9f4ea059c62b408c1777a94a4e6fb17b0c2f0561bf75eed8be0aaf0f990905794bedd293f6e076def3c954714a08f1f2c97446dfc39c5b045f54d3c933835bda7513d575616d4678ae19b95f329b04786d75deb7425dd0d9b393cbea7ccade7dfdb6766e9595f41759be8c85850a6661722d6399d72f0b71ed94face5df90fee645f2d24e4aac0120a158c4667401b56ce63d3a62241b449fb8c686e5b65ce3d0eacc3f49f4c1cd24c53c69e90e619dd76981a64a1cd067bcc8ac304ec01f8b6bde5d59d36e10488f6a1f5a09cd241f4b50a93fd1ab0a8c7b9ae5a62461ac90abaf2a0d19c402f2cb8c1d4ec40ceeac0e4e4269a0196bbdec262b3234733626482003475976f95bfe441d33c04bddb79dd882bc1e4c6b9e28bb09a17a2aaff1dbb23c564038253b72856d791f3059872b6af05a3f0aac3d4481a9e09e6675e873c93ff9a70f6f6d3e3729002fb5c78ef8fe1cf52b132e4a6055aca75c871943495b3d92796a5f92b5cf1f9abbc103dff987d5d8d2f8d987054db056770815c75ce300f2d01c2b3838aa078cb3648d599a2cd61cff43ef45d417ad58c9a6f624112872a75c43340fb90531b8cdd2a2f0d1621096414f6724408d9b7c51b08564e437c400580d3eb24b16519b279c42d9a9069804aca604301e8aba1aa8c54a508a13e8d40753be8c1f8ee63b597562ae475addacede3d54a8a42dcda70f4b21945c42bfac1f7fc8938672ed2197dd368898aeb3c505596bdc854a7a9f4935e4f84f262c514157be4fe1ff4846c2ce656212a78694d3ec8be92643129b95b13665c67d58347ab344c054f58748763099b2506d7a35710353d34a345e498e8e418920f8ccad3933408611da2b3563400e92db023bdfd480945d9145cc5487d60bcac68af99e627c618a1de2751592a738a4c7df3a839fd626d7528210093957797b1aa7118fc943647cdc4734f9aeb9f4515a8369552ecadc5e5303fbf4aeffaa370f9796f4e281fb4f7ca132868667ef260af0b4299c514322b50fccbc86be5d52cdfb4a26b69fd89b99ffb02661bb5c974a8fff6a2016cdaf6e35f96bdb697f10f854e0613f96afdc38deda9fdd8dc7a5e33bd9b43e5c117c64373c29aae4f8fbf53afaff8d54503031bbbd228d040f29f067236ef8fbb6e7cbc9fc77bff972f7583867423331b5de6b721f9fa2bbf9743f94035709abfd16351d371b307106d2439fbc0c4e0560b0d8bbfd6eca2e9119719820bca070e3662fae6ba246fb7b1c1ce38582a1bb3238953257f9eedc13c3b27417255908494786aba5ccccf6cba0f0d44057ffe2330095002aa981550559d9ecec36bff33d9080699a4beefcc7bde924a4a746bb0b7470c88b1914fe314a3bf2c69ba1d7d6095fe7c5336d485f56491484dd8aa0a7b0c99e319059dde6794305e41d460d77dfe67a738d6d822cfddb5e7d723a580dad88c19a113e5215f9f23aeb19d8dc49b33b2b97c9a6c297b3b9709f2a72297a54895f357624528063ba4aaadb4cd77c3404d6a97ac6eec76e65dc4f9ca666595a5819f3e6a623fbea036971113bf4db5bed149c9fcd7d9ef8b25f9249d660167fc02d3043b5e95c2b0b2cf2d1b81db22a13dcfa4eebddee5b06b7aaf806d2f7f17ace881f0bf1b85ce25126cb169dd4b37adc432e9b39d2539a03c38e1608cac0c7d7ec44e8523acbe061c9c011d379aa97d814b430d6c817a7b479bbb8e4591c78038c9e395323355245fa84f0021ef0f4b3633695b400c9499ac76df1169f217723e3dcc33161e9c2e3564ec44b10f450f030dd2096b4d02c0f3286060f685679ee551808a3f5309b173e4345b1537521b64d81ecd28641e1ae58f9106239a609d5b75b647bd6f66af34d408b0271f8148e08d3e5e2241ef5b027a4bbd15305ec1aa991f3ec97e8fdb9e1a7caf08444e2a0c35df0c7c8318539e5db57d0ae31c25d5379885b33f2d0aaf3d185a9d36e23eb9a0d191a189dc2e25ae5dc29e98ae165b8f09d57ca72687d5becab8a46dbdd3d2ce7ef2467a50115ef731cfbf465c2e5de6f0be6bc023391e8c8a4932e9034bcb696ac930c7ad774d4fc86d282b71b0772e7ac8d51fece54550f8f942a1bea61ad72c0c9c410ed176a9545114bd9533985cedff33d313e224f82d505a3bac880162aa9bb8278be2a0aa6e007b5b620acfd589390c4b86fd61eb9b2a28895d39e24cf9024b5dae57283c6b298a0382379c82edb033d2c97f807995db8eede4b79a7582fed9bf80591f11d1284f1ed92d22cfa791e89ede630aed0f9874d5ca7eb5f4d72859202c8f3c6c7429e0396f2d988aac170cd054ce6f9989728592bc243d84ccacbdf07cf623de6ffdd973d15e0f10e83ff9b24947b2763bd4540da4280943b6cb89e63d10e3f295d80873d0a7823494f6936333d9da2c33deeda5533b583b32e68bbbf3865a5efa674a37e6845aa34ac4ad49c10bb061c9e888364355b4f8e831f7841727872db12846551292b66e1e10d4fd2f3ed4fb491b4f1837411648f96ee1c2f45f52c9e9935b16dfa983f81481287973eed7f8a739ccc0182c92ff6582f1893f96c56457a2e7d74637d910f7289f942ba0b4334d689d48101a124433d7e876328554e0997c911266a26d89d967e45198da1134b026b5edc4d0130f0a6b1d8e24b18906c4773f301a149b700bea0828d5b6a773c433847ccc1eb6a32a27101c7928efe51b7a39bf6f1a093d51502ebc9d76d1879b8213acafd9176f7fe5d8fcf992091bec4c81d4dc469dcc19434d96a426e8bcfd524ddfb0f57e08329277f141ec6cd37b0eb11c46661e735155c4280d85d07bc0aa7c7990727185c404e86957f34c3d2e74a7818c68470a2e062986624186bdd676e5e55596a3aa384f360870154bf920e7a79a8dd8a0d0e28ae26b9e175ea2e7a809145a5a1f1fc0f7bc9e5463a7e4a649afb88d470b628f82a546c10cc8c6b11f7d1d385450f0bed326d9157bc261e3c65e49d9b586bbcdfddc3bd6c05cb86412df02f03e91a14af52de50ec915cf5ea4c3ded089f78138e494f21f28f3e714cf36f30ebd530e7566a80eaa13f8f4aeecd97ec353e04e45c985c55aa5b4c71ac3f034c4efa8ebc0c4c94609810ee6efa33e512af3f0796991a92788a9ddac6bdaf0f06da845659900330953137ba699b9f1acbdefb543b4ab54028b96f7b2e5d3b343307907c667d1f71b1d4c0a7d5b3819ef0a5b6424dce1a4a4a9040aeebc86caaaab80fb8c05e5af3db0d6c8005e9a42ff168e38656a80c04e4e19ef9fc3d1d3762cb9993241b6b9f45f790bd9d84a10b195a3867cb8b25fbb6f3b6148d513649e79df0f7cebe48f2a412d8458cc2411a2963d998f9c63ff3221bf4fccecef4d169df1b8f9cb392a5026c3e1ab3ce9f6362f3ddc18e50e2750823a29fd5fb1302c19e59c8bddece5be8750ec02313d030413fe32f6537eb1b0176953bee18bed1b865b450ccec082921d35112e956bf213ee904be736bd520885463dfaa1ba3020c12cf01411e731427af08fa7e99e1984d8280edc9c313c755c5f8aeb9f6c61440bc63204d2896155e876d33d6dc741d8614d23a4663132510ae138ea8208c918534806427385ccb822bd094aae0bd162313be6dd0792fc932b9841ae352a77a2061640f4684e7659c9815168d58d75996a9d26fe261e8c1d80b9c3f1137ffca0c66de8b040408baa1796cc0540276bf470986b79adf614571b1ba1f818b2ae1fc0ba35f240da55fa5853399701020d9c2b6319714f2a9bba60dec63d84fe10169404497a5b6e8d0710c141ff024764e7df6aa33652009ad75d68ec781a3ecc732db235838dc0fc36553dcc54c77745380737cc11f7e48cb4e6b906a4465bf0f3af6d8a52203dcbabc6a0bcd98746ebfa96ac850f370b0858299111ab181831427a5ca4bb22533a3ec7df8a67bd45febc65821b0ade53cdbb35cc560fb2fd4e72c171d80f7150c547a9db5f8f8649f024d33e63da7e4d74a44465af61d199f4313cfcbf20e9e78c4e6b44b1ff0cf46fd6af767e217061215a08e8f52ea4cf12b0645ccf3bb645f824adb6a582cecd1fb9342bf5d89c97c9406574156f6e4cc2f66c6857874c777331664f0a4a03ce126d1caec8dda569cea01452a05d139e4535ff97c332c883ed80cbb85f7e518bef00f414208337359ebaf96c2a361ec71ad180424adec481bab91017bea05a166d5831857af6a32938d7e40bc569aabac4ddec5f13fdf103eef2b2beeea4b746015af363be5547563396aadc2f29fae47a23b268ef8a6a3f6ce126d9d535aebb988b341bc81e5678ed31bce25a11db5e6789a6b53afed29ffaa4c0ad158d52ed72425a52b7033a3930b552548755708ce735c81e559b8c2e16f8ff4edb281ac0acbb0af523e4e5d6e6396ab9b713ff11ce028a2a5c178e7cec1047b386d9bbac27f4fcd66b79b109820d2f6f6aac6b507f3135cfc829ce8baec19c82426c40f7e9b029305fc95ed821837f96cb97a4b97b968cd96f56ba1649d318fde4c0facdd2c10804d9194fca1717ed7187b854aae01ee133a0336023769f8ebde333494dd63bec117e8055c7f4853a390cfbf6ce9ddf80518ca687c455c394529696285b2fa2bdda6fa005838fa855f5f8a169b76133b26cd5aef557433c4040f1941878ebf640e8eecf171f79d63f5c81cdc5907455f4196716ede5991ac55c41dd24178b0d93259f9b5bda49b47292c20f8c9b2cbc05051f188e66b44f5de7573ada34bafed0fd8eccd66598b6f708d53457419c648ead810fa871be5240e5fe21889516c60666f22eabe480088aa02284c9e426e4e502f57ffbb9bc752a7dfe9265a455909a85f3a489abc7efcd797180212456fb93f9d858d6dc5616223d4a4e08270145d0252d657646c42031b2a9ded77edc1012bba9a2e2e4278a9b52583cc82ab8125e6b60449963a4a33e147d23b723959310151e1b6d0148b49e40ff983e97f0a0d5dad7f7471fdd0f7ba06122a9d2b86e1d4c4fc71e23aa1fb7b0267fddb3a2048b6c3f44260a8280dcbe4b7dd634a0f60586f9c8f37fe4e5d65389a1bdbae36a8e988322d15b50ffc96107ec8a1f09b40e2fa7bd2dfdf14520655fd033434963d01d6da0e52e632c2ff66c784550a16eb10497c4de4f5c5860aecf8f8bc9aa9f9020ca1d738b8e317c9b8d643f18ab631ef7c8802f4f4f1ca049a8931f05f1bef166d4ab461f7772298f8864527b7f3524bb2b30e2f9e6689cd3ee6eb0916ff5c5ff7ac152e79850f228b04ce990be6762de2b22435abf62ac68241932e58ef64379482eb2a0f5d54aa4d4ee8fc0e7e869a0a071b291d90c7911b5e41d45ac60e8df85cfff5083846c4628c5c5273cc9678ea42e26942521c055af02b8f594a0cfe3e656f31d15f984276fbfc910a10709c79fe221c020edc301ef5de186db6a0d531ed800f48b91c9b3126f95356f518b6c14c3f11487b3fb48c2bbc62d748350508cac73772aef05dc24171e9676e97b25f7d97fce18d0b45b2c2e6845a78c17faffd5483d22cb672de54ba565b9798af1568bf37f40c4418c8e0df195e72338b56ac2640584f614d077e8a8dc13bbfa120d39a11a54fb6c3d62dd6de4b0e287577c5ab3f2e8c286fa81b41c72958c61d8f4b7c3e69a1297bfbcba95c1594c2984d53e71f8fe9358cdb6f491583a946158d2729f45b9f600e325f10a24c389f30868c0a298034df44a2423879c1dc824d118b995f27292476672e648fe687c7e143cb88524b9cd786196e4e4bc96fe1fada947d38cc77525f60ec38465d52f734be778528b96dd71fcab72e972aaa98c0b71847a22e594dc85e4747ad52b6bb9ac6583a4d202ba4bb3442168b89047d97335d06d02728950ae1126710c375d164a006ab2604c089cc0ef56bc4a8941bb1db28da22efbf3d73e646d154b2adaa3d986757968770b2efd74f15d489a095fb48fa285a9e18898696da011e0cba042eef9c93d11b4eadbe9172c25ea2fb19d43847ff15731d47d92f64059ba9fd01bdec103562922813a49c4cfb32dd12d701f8666a79c617980045d2ec9409e84f25f912d2afd3c625f928fbf19408de2c99c4b99264f584f39845d6e1ea067617b30c38bea25660b74cc09db67c38f56823dd85b0fc403575f097ffe43f1918f4b92c296f6b5ad82af2331c1001f4223bb3bd7282c0a513d737196c276d855ea4406e027b85ab5a8bb2ebf592f2934bf07d14c7c659b9b9f8580e110ac26cc3b54c22f731fe3ad7154066e9038009adbded74922aba8f76f68e938ea4b3c2e7fd607e959beb5796c8d9bc43d933f28df5d4f48809bec2ece7d462031b923c5c2dcad269ad19dfb2748424fec6d9491ba89a4f36b7a20625f34accbb7fda19818299a0b2e26e1fe07667d8a42e3821cac9b8555e9304e569e2b546c9f4f8f40346b536ead0ee9375f257e39d24e67918e16a706d092971ebe082dfa6c08a1d073d7a44df480d1cdde259033406f8d0cbd81d91c915dfabb2321981bd96f101efa07493f8fec19946a98fa8bd6189be73f17df2d5d7568c2a3dfe8b44e4f5e696612d09e9314553995cf4d0c65d025f76f6adefa5b1a5cd55c630c1a939e5e90d9220792b73056b98ab1f1f54d73a916b39b3de0706201c2449bd92e308feb021c71278c830346f1a87985dadd4762833a7113bcb1bcb06e4c1f498ee33c8b5ac49194f96901b761670ccc18a29d09f9a034b0507eef36214c8286df3796b336ed7408c062b0057063b88eb03d4f4d3a015e036ee12628fe76f1dacebcee99dd03374cfa55e6c0dee82637caa30e61b493a20ed00c7081e6fbeb088bc68d7d434a9be9a59fea8579f66451db7fb9edc67a507619f08ab0ad0e620f858e1659d6a6fe3412f095968eed55daebf48b281b88e87672ec9bf7744ee4b5fc39ec4cbc9a7bb72a6cd602e5901141bd0eeebfd136003bea5b2a074090fff748e2bd299ef8a96b424ba2a1d7132c39d92ee40d79f00303fbfb93fdf0e2f5b99701dde3dc1b41039fee3d4516625e3d245b679dba644c0c66c4d8a4b0a79334f6bc8cdbd93f61c0cf136b8c344a8b4d6fa66f31dce29c5337cf8ffdae0931b7664a9a2136d75fff77d03fcd9d50e90414b085f683cbbd3f3e5dc1e150796575e1934d9130df845b77170bf6b05a6b8963e606cdf20e575a41332a0c7eb6d941d40ab72e61e144f6196d3671195d2281224a5af4fda401348a89f2fbf9b00575021fe8760ea0bff612654192a5b76b434699ee2918ac1dddcbd6ddec90da9d1e8831388345b5a0104f2483e7a688c3214be39db70550d121dac3fad319cc29753eaf8c9ddb70338b8b98c9cd015ba1a2435e5ff76084d5308445a578582bc4b096bdb9ff4add467462c4cf267861af67308ac3fc835c24dc9f7dd5de355b4b3d2129a36d8f0667bda4039887da23f1d250048f91637abed38d1b13e65de8fa49648bf32b45f88b04d82e986c8878a987064f25a3cafcd31fb215041c0909b08ca617f69959f0343d49e995b47a0ba96c2318fc030e3677f6185f976a46622d6c63e1658761fa00e89d92f84e3101bca3cfe1595efd9ec2882819078a71e0d835c052af681b286c8f4f7eae426702dbd0412ece4a5e0cd02f5ed03e4237555ab562d2de124dc3b1a2ba042521ed3e13de2a3516802983b0e3a4cda5f62ec35763484eed5daf7346024e3b1a9e98f22ca14d808fbbc64387524dc8dbfe1fe95b29cd858acfac2393f7df11a8034a5128016b0d935bca622e3d20a87614b950a6fa0b0ff4b5ed94cc485fe0d7ad668f2894cbc5e62445fd56f17792d7d427fc767c97dfa7b1677708062020a15bdf333c1cebf14e44cad0f192240680a441e8e6c503526c06d475a364199947d3b266f1258983284eed2ff2b6baef2c265e7f6ffb5027b3de169ca53d4abd78b77b0f9d03071f1663c37dfaa873631af211f3373b01d757f768c1a3608db59373b4ac23fe979e29a80f3314f01852b79276a9fddcd040b679b981cc84350a3dea077b328ac01f27080cdb8893da2f83fa0fd8fd06dde036b9227a0f1a16916e1f7384f40883b611109f28872afa5e29c8e4d5ebbe18911f9eef4b065b785bc91349180e580eb35c3ba22f949e6d2f966203e9e2b1eba1d0d329d935ea43fb891d4e0dcecc273d9556f0d99d7ce6d501b44ba9adf27d33d4007668517ba55e0e289a8ec069457b9ed8665a4f014f9efa4cdd1ca41e54fa050a2767e4b271be778124f8d3219bea86fc67d213591832bc04cdd1fe8dbbb953d385b10eb5fe19e260407d3a1e96cee1894fa05aafeca19879951ac97b3d571c02251cccc030fffe9723af2b8a54fcdbc39c738de5b20ffe43d0071db0aa43c55f94387c717978957a88b74955cb2e39731e6a72c2ca5c4affb42c76d7e01d3a680fd3367a0dfe771a4ba73981e90da40f60f294772f1d5013655ddb05710c31ffc230ef03be742715cc52b51cb453ab76ada5ce63954bf4b32610e43cf113e2c102070980e542f3ba514f35f8ee41343796a14861199bfd52dbd5e863daeb22636226c4bdf7e03657c1dd80da4a681ef0d4d9f7e58caf95dd6bb5c6fe39a13372d16034aebb60f7bf773385a881793a96bcc4ad626828b5abe6d4422cada4b5593fa940e328beae40f108af2155484a4024ac1d136fbbd7ed941fd4c6d5e5dae0418d32fe89abc576fac1438970402edc0cf12d55a0000a24a0a630111cd91a97083dcde5ee7b4c81726d03d6f4cccd934cd3e7e761471a9dc4cfa81050a91338bac8f8700ad58b6a723bc292dec9c5ed25551373603066a95fcac2a5eb0c49ce60fe45f2a6a3b0101b666b5e1d715a46b56fe547cd17fa22c364ecb4f71a5fdf6a3a744d1282a099c697c5ef6e6b7fb6f5c5267ab280f0a6d421c7de6e7942f3dd5b3d2e10bfe5653ce681afb5473c38b95b936af7ee08680d939f8caeeaa074edbe396299a1ae26643bd0727bda377a632a1b663d93923002b0238dc2cefa65f20ceacd566aa81bc9caac06fea5dbda543788a807c77640fc605aa85d20d934df1999bdcc15c8db3c9fc15acbb939ace3bae13d94989a9401886ea1b34a238c4aa81a57f71175ee2c1cf04c9438a0f0a36ed6b2bcc46b98669cc6742a787f7a70fcfc9bae3506a02de51dd429ebaafca6a0d17d9bd5d2d3e9ce8d3079a248ba33dc86a9ebd8aace8f95a97eab9775bed73eb1a46863bc0e6997fe410baadf6db4cfe1227d4ea768b0a719e51f3e4dd0b841ff910b36e8916019bea921a6d3628acde69b1db187ea8a38c47ee6e972f3a0cb074b2fa477aef8eace12c4f6e6968a53c44930ca2938c48b6351acf4480d0917184593cc7ac43f602ea8f4d930532deec8bd18ec63b9a3f8d783419894d0a504852b57bd60e7d79efb240527b0f3e72749d4cc88f440f73d09df1a155656fa6eded78d87d9c4f487b54067d42a42447dd12fb5b70a07612c6bba134a2ced41039bcda082f0a336b8ff4468f1372a861df375b1dd3dad92fe93e30a3cbea0884429ade1b183213cfa9ba9a8169ca3b784ae88fd9f140972c2346320740f5ee2bef44dab1e215df3beb5be2dfa8729b7c796d606c3147d8ff34ce6dac01ca902e1823cecb9984e37bce1d7a892597550aef348956265f5fee6394e132174c408e9360790824536a0d31982aa8c5bde889e16ed3018c2310ee79c5022113c67a075a38ccef2cfb7452b21311c56821345b2e0d604a958d2dbd341dac579c8fe9548fe15a1d5b55834dc43175b278fca5364db2a8ab5ba859d1ff2616fa76893df3471e9608e808c34576248e532b97225efc3dfe27dc3258f6a5a8e12d638221a87d3673a98d80c6f37886f6f9d69279292079b717c6a8c7fd8764981f986ee3a90e093ce763e1e9304375acf2c16b6c48ec1daed2487ae4d558c800bc83ff53c8b9166e1070532d27f6e064d5688af87610647a6aae00125b2ffd9451ae04a73fd77159d28ac2825ed824214bca633736d15d3fad3c44f39a374272ee43a233d81994c2e515b89f966eb3613ff8d33c9a1bec4ca9bd8436808a3e110d143c7d1c299b9c99ba8ef5407f6d5a9ed211db96fbe0d01f37e7f4ec7e5268f234c357b74ffce7a41d399370cb50a2fd7deee0bbf39ba90c7701c6f24f5b4f17ad4582c60e98869cd7d1bd70f9109f185c6e801c634271c1b11b1f3ac5ca7f746b33a27d6ab4799cbf3ed5570b9dadaa7a259ffe70521d14ae05458280ecf037af49dc029ae3b915b53274d859a08d54f1c90084ba50b987cc4a54dc928858575d8e1fd31f79fb75db1f842d7306328c8d59b3f1ae9557df545bd92751fddb13ae194871de5d24767768397f5fd2cadf50905a09e82e3ff4974c1edb57b3166175fc0de4965cc77adb2ecee241aab67a3dde14e46857f6efe9bff298d206df03e3d28fa20b4df1b6f2db34c8ca41e1515d28394e087e7ab4468b7ba0924171d9eac26278b48ab37f5f0e5273e69ae5a273fb6455c34a4c927cdfbe708de656baf8044eabe6d2158cb10e74b90103db0640d3c418aa4680e404d97408f9b80db089c93079f0b831f6fc3fc01a065557ed8c753b9673d9771f9070c6ab4a1965c3b8a5ff53c202ca27895394ee2f0d80bd905b716eb4913c1ebafd72193d4e2c91e59b3f3fa41d9053dc46cfcb69417299961d42cbb68e770c9893ad6c55d1c4f0c29a700ea40b8d31ca19fd3107191bb5b203b4c78a892932b25f2dc4d2bcb8bf64a91b8bbdd700975cf960ee99cae28d867f06125374dcf8c3abf3bdee8641073676a520a75b2116a76fb5fa9cbf9bdbd2ffb90598dd3e0bbdc1f9c31bcb4dc1858f521f2b403978075fa645bb6d7f70aec7f8508276ede0c683e13d741bab9dd42b796b92ff42288d029e1c7f1c93b3ef5c73bd7385257820a1d79e5d06e5944d5f440960eb8fbcbaef51da04376c0acea4fbad7cfaee6a656a4e2352548fb39dc02a53e6bfa202d2d2205a2446d79381d7567b18ec2134c05c594d257154ca52352d0198fccaf5253001983a1e327a961447122b98617adb9fc72a7c77e9d690eb2e913a49a0ad012bd852c554919b4ac62366d41386a399903084d7289f6b51bfd64645a87c47bb0ac12e88b6cc5593905ac16b25920a627af4a356b3959adf1fef88c75000edc9d811fc2cce91b7a3633864da4ba808a19ef40c2de4214a807eefbe478f3d9de25d082dc5c92832de6840e67343f57e7a5fcca6cb93319173cd33e7dec4fc3a57b7da8a3d8ded614752b9a05cbd0e8b6070b80209c10eafc17785714d01806807de3bedc548ab43a76b41a45fccb807f1b921defb070df82399256de4ad86c15f1288d06c3a640ce481759b69b3ee8e6e9934e5793801b02275600b02ad64652e100c218de69ae52f53f308126010272c65afc85f9869266411a95ee9407bd41c5d5b631c44eb057fa4573bbe46a529be6cfb5967cea8ecd5455a9ec98e8ce6d6fbb259da17f0699d6c84f8f33e0ce15d1c806d74600082cb15bec0894815f1d88a92eae180b51d3a16d31f968045f76629a69118cfd0f320a46eb539b2ff8a5366bba588f46ee324dfdcda40680b79b753ab8b159b87735fafd336597bc835880d95e4fac6df3e841402885a0f790a15d4b7ccb1e29c74b9fc695c350a0b5ac93acce7acb7395d9350e19c16451ef7fe4da50e647fdce13c7e6567d7888c789ea1c2536cdea5442192854a016ef3fd0665d2f6a7a2836b5f1210c736e56e58a42334579e6095288e38e44d3ddc0cefffdd0cdf42f9508fcf232e1c74df578ef222f33f737c3d80d71b68d2e5921eec16113a5aa9d8d1b4b80e6aac7dbbb2998491807553031fbc640aceadac2ad685a72a8c5991099a57dd674387988f2d2345b42838d85a77e423dc2c71aaf0b917080d69e456a702c7b716de2a6b17d097d8b46c43051575d24700381dd9ab768e5b93cfcc453c0772c14ea78c3379442251a6121c7b7ad5b566f147aec6a8e9c342627cb1b4e7fe69e45bf03bd4d272d302173561c1bd442ad03458e1be3b98914052386e5d97aae55cc5ecba0220dfa93d211b16719b3af41fc8019374ec14ce31df8b361770e4802d1c844a0e1071ed969d0ebd08f7495a04fc508f9b996257d5070e442958b33573b57fcbc8a17136cc4a0e9046272e97f08327478efe7a13ee484ce610cba4e888fec67142577c1eb4b0b0d87c80deec67fb9ddc8710c6788cf1c95cf28b41444c1957181ae38538a5200569ebbaf50c4266cb9d540edf3e7ddb6aba94416b28a4a7ac9d7ad64ace59090a4c808ee28261a94b822268d4f434e82ce88380b228c641537bbb9f35929a25995ad4a87af314ee728f8d151b06cb92b2ef20aac793c00a9f1f8d84900deefa1c47c5db2e4f281467f090bc654a2edc21b3e290d1fc630e0e3083a60a8f7aebd942d3b4e5097f56d080afabb95220dfd36cc8748e5fbff5a12e901b5505671667f1dcf613b9e2fadebd68fbbcb8fc04a8f9a840a330ce570177c33a58b1b7b9326b779761521561544216e62f125abb57ddd1a9978112fb9bd345b0258d27cde35a616a76d3ceb280ddd4395f05d8f34f93f4a397d4354d5357e8238479be1cf0879bdc4f3bec7374cca4c3ff8c17c47d3eec3214abce93d444cf1d025fa1784ccd59ed29bb37997f6c5df22f253895a5e384d6018ae0c97ff79dc96d1b6e2184e46c2dfab2d9ccba2766b4853b8915d321f66834d6966cdc173763ca437466674d08c914e11d3ecf65e4a14998df5078f588b6132b3a0ba37e4cef7a245c20472527e713c8e42a4df35f2321375f0acc2905c934ee213d756ef933c716772eafb8970cd21fa00855cae0f787b6726df65ab5e5014cde6055912b883519e1536fee34a878ac89c09659fde6408a74f44669d1fe3f974ca030cfedec7bf6f00ffc03ada8d05841c28f7489d0c91e3c32bfadea1172ee937dd5143eb130c29eca579085614d6bcb2ec7527ebd461351828016bc36b5bbd6299595b5c683a440152032e85a3fabfac9b3bd4e2f66fb6891e2c2b28f0ec2c8546327636d4c102aa3a0a211cd2c45cb409e41c478fadc06c8eec96e3b54a6d65315aa3f5fb85e0d2d233d1d99a9132821dcf6020fbcf354a38c86d0dbcab03d80886ded61150abefbcbb694434831d9532f9e0009473b81ee392226e5d07db0b409f53f12cbe170ab767258f03744567d620cfb007cc7c576f6006baf40f9bdbded4ca9b0c56131e4a7d1f10533c508ed51d1fa2ceea4bc2f49fa3c6347a91ef3a392bfc4c20b4d59309bf2a729b3eba10dc844b99bf587eb2a956e846884302349e10a01f3dca1b585d75dc77bd2466bde754a08a841bf0b3f7b26423a7d28e19611db67f677f58609f34ef73ae9d47a22046688418d082ea7fbfd5f112fa032cd7cc7ecb018e1ec183ba04983e9553b7cf9b08d10bdfabc1bd5a991951d7213850e2ab2a729e60574281f98b67540421cfe54c38ad6a44f9178d9ff95a242128ae535b63775e8fe30722409ad387c61dc2fd460dcec1f616872cce611998d6bfae6ef141dc0d0569a50e06200ccf11ecbbd0f2cec3a50f014f9c4c7b675a5fe256e232c1395ccbc429dd3d56drootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootglibc-2.31-150300.63.1.src.rpmglibc-html    rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)3.0.4-14.6.0-14.0-15.2-14.14.3eSe;ddgd!d dq@dtd%yddccU@ccob@b@b֜b@bb no longer includes inline versions of any string functions, as this kind of optimization is better done by the compiler * The nonstandard header has been removed * The obsolete header has been removed * The obsolete signal constant SIGUNUSED is no longer defined by * The obsolete function cfree has been removed * The stack_t type no longer has the name struct sigaltstack * The ucontext_t type no longer has the name struct ucontext * On S/390 GNU/Linux, the constants defined by have been synced with the kernel * Linux kernel 3.2 or later is required at runtime, on all architectures supported by that kernel * The DNS stub resolver limits the advertised UDP buffer size to 1200 bytes, to avoid fragmentation-based spoofing attacks (CVE-2017-12132) * LD_LIBRARY_PATH is now ignored in binaries running in privileged AT_SECURE mode to guard against local privilege escalation attacks (CVE-2017-1000366) * Avoid printing a backtrace from the __stack_chk_fail function since it is called on a corrupt stack and a backtrace is unreliable on a corrupt stack (CVE-2010-3192) * A use-after-free vulnerability in clntudp_call in the Sun RPC system has been fixed (CVE-2017-12133) * fate#322258, fate#321513, fate#322453 - fts-symbol-redirect.patch, glibc-resolv-reload.diff, glibc-2.2-sunrpc.diff, i686-memchr-sse.patch, ld-hwcap-mask-suid.patch, ld-library-path-suid.patch, sunrpc-use-after-free.patch, test-math-vector-sincos-aliasing.patch, tunables-bigendian.patch: Removed- Fix RPM group- s390-elision-enable-envvar.patch: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined (fate#322271)- ld-hwcap-mask-suid.patch: Ignore and remove LD_HWCAP_MASK for AT_SECURE programs (BZ #21209) - ld-library-path-suid.patch: Completely ignore LD_LIBRARY_PATH for AT_SECURE=1 programs (CVE-2017-1000366, bsc#1039357, BZ #21624)- Remove glibc-cpusetsize.diff, no longer useful- fts-symbol-redirect.patch: Fix symbol redirect for fts_set (bsc#1041123, BZ #21289)- test-math-vector-sincos-aliasing.patch: Fix test-math-vector-sincos.h aliasing- add-locales.patch: renamed from glibc-2.3.locales.diff.bz2, drop en_BE locales (bsc#1039502)- Remove glibc-testsuite.patch, no longer relevant- Use multibuild feature - Remove obsolete check-build.sh - glibc.rpmlintrc: remove obsolete entries - Use %tmpfiles_create in nscd postin- i686-memchr-sse.patch: Fix i686 memchr overflow calculation (bsc#1031021, BZ #21182) - sunrpc-use-after-free.patch: Avoid use-after-free read access in clntudp_call (BZ #21115) - Build testsuite with gdb and python-pexpect to enable more tests- tunables-bigendian.patch: Fix getting tunable values on big-endian (BZ [#21109])- Update to glibc 2.25 * The feature test macro __STDC_WANT_LIB_EXT2__, from ISO/IEC TR 24731-2:2010, is supported to enable declarations of functions from that TR. * The feature test macro __STDC_WANT_IEC_60559_BFP_EXT__, from ISO/IEC TS 18661-1:2014, is supported to enable declarations of functions and macros from that TS. * The feature test macro __STDC_WANT_IEC_60559_FUNCS_EXT__, from ISO/IEC TS 18661-4:2015, is supported to enable declarations of functions and macros from that TS. * The nonstandard feature selection macros _REENTRANT and _THREAD_SAFE are now treated as compatibility synonyms for _POSIX_C_SOURCE=199506L. * The inclusion of by is deprecated. * New features from TS 18661-1:2014 are added to libm: the fesetexcept, fetestexceptflag, fegetmode and fesetmode functions, the femode_t type and the FE_DFL_MODE and FE_SNANS_ALWAYS_SIGNAL macros. * Integer width macros from TS 18661-1:2014 are added to : CHAR_WIDTH, SCHAR_WIDTH, UCHAR_WIDTH, SHRT_WIDTH, USHRT_WIDTH, INT_WIDTH, UINT_WIDTH, LONG_WIDTH, ULONG_WIDTH, LLONG_WIDTH, ULLONG_WIDTH; and to : INT8_WIDTH, UINT8_WIDTH, INT16_WIDTH, UINT16_WIDTH, INT32_WIDTH, UINT32_WIDTH, INT64_WIDTH, UINT64_WIDTH, INT_LEAST8_WIDTH, UINT_LEAST8_WIDTH, INT_LEAST16_WIDTH, UINT_LEAST16_WIDTH, INT_LEAST32_WIDTH, UINT_LEAST32_WIDTH, INT_LEAST64_WIDTH, UINT_LEAST64_WIDTH, INT_FAST8_WIDTH, UINT_FAST8_WIDTH, INT_FAST16_WIDTH, UINT_FAST16_WIDTH, INT_FAST32_WIDTH, UINT_FAST32_WIDTH, INT_FAST64_WIDTH, UINT_FAST64_WIDTH, INTPTR_WIDTH, UINTPTR_WIDTH, INTMAX_WIDTH, UINTMAX_WIDTH, PTRDIFF_WIDTH, SIG_ATOMIC_WIDTH, SIZE_WIDTH, WCHAR_WIDTH, WINT_WIDTH. * New features are added from TS 18661-1:2014: - Signaling NaN macros: SNANF, SNAN, SNANL. - Nearest integer functions: roundeven, roundevenf, roundevenl, fromfp, fromfpf, fromfpl, ufromfp, ufromfpf, ufromfpl, fromfpx, fromfpxf, fromfpxl, ufromfpx, ufromfpxf, ufromfpxl. - llogb functions: the llogb, llogbf and llogbl functions, and the FP_LLOGB0 and FP_LLOGBNAN macros. - Max-min magnitude functions: fmaxmag, fmaxmagf, fmaxmagl, fminmag, fminmagf, fminmagl. - Comparison macros: iseqsig. - Classification macros: iscanonical, issubnormal, iszero. - Total order functions: totalorder, totalorderf, totalorderl, totalordermag, totalordermagf, totalordermagl. - Canonicalize functions: canonicalize, canonicalizef, canonicalizel. - NaN functions: getpayload, getpayloadf, getpayloadl, setpayload, setpayloadf, setpayloadl, setpayloadsig, setpayloadsigf, setpayloadsigl. * The functions strfromd, strfromf, and strfroml, from ISO/IEC TS 18661-1:2014, are added to libc. * Most of glibc can now be built with the stack smashing protector enabled. * The function explicit_bzero, from OpenBSD, has been added to libc. * On ColdFire, MicroBlaze, Nios II and SH3, the float_t type is now defined to float instead of double. * On x86_64, when compiling with -mfpmath=387 or -mfpmath=sse+387, the float_t and double_t types are now defined to long double instead of float and double. * The getentropy and getrandom functions, and the header file have been added. * The buffer size for byte-oriented stdio streams is now limited to 8192 bytes by default. * The header now includes the header. * The malloc_get_state and malloc_set_state functions have been removed. * The “ip6-dotint” and “no-ip6-dotint” resolver options, and the corresponding RES_NOIP6DOTINT flag from have been removed. * The "ip6-bytestring" resolver option and the corresponding RES_USEBSTRING flag from have been removed. * The flags RES_AAONLY, RES_PRIMARY, RES_NOCHECKNAME, RES_KEEPTSIG, RES_BLAST defined in the header file have been deprecated. * The "inet6" option in /etc/resolv.conf and the RES_USE_INET6 flag for _res.flags are deprecated. * DNSSEC-related declarations and definitions have been removed from the header file, and libresolv will no longer attempt to decode the data part of DNSSEC record types. * The resource record type classification macros ns_t_qt_p, ns_t_mrr_p, ns_t_rr_p, ns_t_udp_p, ns_t_xfr_p have been removed from the header file because the distinction between RR types and meta-RR types is not officially standardized, subject to revision, and thus not suitable for encoding in a macro. * The types res_sendhookact, res_send_qhook, re_send_rhook, and the qhook and rhook members of the res_state type in have been removed. * For multi-arch support it is recommended to use a GCC which has been built with support for GNU indirect functions. * GDB pretty printers have been added for mutex and condition variable structures in POSIX Threads. * Tunables feature added to allow tweaking of the runtime for an application program. * A new version of condition variables functions have been implemented in the NPTL implementation of POSIX Threads to provide stronger ordering guarantees. * A new version of pthread_rwlock functions have been implemented to use a more scalable algorithm primarily through not using a critical section anymore to make state changes. * On ARM EABI (32-bit), generating a backtrace for execution contexts which have been created with makecontext could fail to terminate due to a missing .cantunwind annotation. (CVE-2016-6323) * The DNS stub resolver functions would crash due to a NULL pointer dereference when processing a query with a valid DNS question type which was used internally in the implementation. (CVE-2015-5180) - Enable stack protector if part of %optflags - startcontext-cantunwind.patch: Removed - cpuid-assertion.patch: Removed- cpuid-assertion.patch: Don't assert on older Intel CPUs (BZ #20647)- glibc-2.3.3-nscd-db-path.diff: Move persistent nscd databases to /var/lib/nscd - glibc-2.3.90-langpackdir.diff: simplify- Update to glibc 2.24 * The minimum Linux kernel version that this version of the GNU C Library can be used with is 3.2 * The pap_AN locale has been deleted * The readdir_r and readdir64_r functions have been deprecated * The type `union wait' has been removed * A new NSS action is added to facilitate large distributed system administration * The deprecated __malloc_initialize_hook variable has been removed from the API * The long unused localedef --old-style option has been removed * nextupl, nextup, nextupf, nextdownl, nextdown and nextdownf are added to libm * An unnecessary stack copy in _nss_dns_getnetbyname_r was removed (CVE-2016-3075) * Previously, getaddrinfo copied large amounts of address data to the stack, even after the fix for CVE-2013-4458 has been applied, potentially resulting in a stack overflow. getaddrinfo now uses a heap allocation instead (CVE-2016-3706) * The glob function suffered from a stack-based buffer overflow when it was called with the GLOB_ALTDIRFUNC flag and encountered a long file name (CVE-2016-1234) * The Sun RPC UDP client could exhaust all available stack space when flooded with crafted ICMP and UDP messages (CVE-2016-4429) * The IPv6 name server management code in libresolv could result in a memory leak for each thread which is created, performs a failing naming lookup, and exits (CVE-2016-5417) - startcontext-cantunwind.patch: mark __startcontext as .cantunwind (bsc#974800, BZ #20435) - Removed patches: * 0001-Updated-translations-for-2.23.patch * 0002-Regenerate-libc.pot-for-2.23.patch * 0003-Regenerated-configure-scripts.patch * 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch * 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch * 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch * 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch * 0008-Update-NEWS.patch * 0009-sln-use-stat64.patch * 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch * 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch * 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch * 0013-Mention-BZ-19762-in-NEWS.patch * 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch * 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch * 0016-Fix-resource-leak-in-resolver-bug-19257.patch * 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch * 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch * 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch * 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch * 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch * 0022-configure-fix-test-usage.patch * 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch * 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch * 0025-getnameinfo-Do-not-preserve-errno.patch * 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch * 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch * 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch * 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch * 0030-hesiod-Remove-RCS-keywords.patch * 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch * 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch * 0033-malloc-Remove-NO_THREADS.patch * 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch * 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch * 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch * 0037-malloc-Add-missing-internal_function-attributes-on-f.patch * 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch * 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch * 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch * 0041-nss_dns-Check-address-length-before-creating-addrinf.patch * 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch * 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch * 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch * 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch * 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch * 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch * 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch * 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch * 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch * 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch * 0052-Fix-tst-dlsym-error-build.patch * 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch * 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch * 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch * 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch * clntudp-call-alloca.patch * glibc-memset-nontemporal.diff * nis-initgroups-status.patch * nscd-gc-crash.patch * robust-mutex-deadlock.patch * strncat-avoid-array-bounds-warning.patch- strncat-avoid-array-bounds-warning.patch: Avoid array-bounds warning for stncat on i586 (BZ #20260) - Update glibc.keyring - Unset MALLOC_CHECK_ during testsuite run- nsswitch.conf: Add fallback to files for passwd and group to prepare for libnsl removal.- nis-initgroups-status.patch: Return proper status from _nss_nis_initgroups_dyn (bsc#984269, BZ #20262) - robust-mutex-deadlock.patch: Fix generic __lll_robust_timedlock_wait to check for timeout (bsc#985170, BZ #20263)- nscd-gc-crash.patch: Fix nscd assertion failure in gc (bsc#965699, BZ [#19755])- clntudp-call-alloca.patch: do not use alloca in clntudp_call (CVE-2016-4429, bsc#980854, BZ #20112)- Import patches from 2.23 branch 0001-Updated-translations-for-2.23.patch 0002-Regenerate-libc.pot-for-2.23.patch 0003-Regenerated-configure-scripts.patch 0004-x86_64-Set-DL_RUNTIME_UNALIGNED_VEC_SIZE-to-8.patch 0005-Add-fts64_-to-sysdeps-arm-nacl-libc.abilist.patch 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch 0007-NEWS-2.23-Fix-typo-in-bug-19048-text.patch 0008-Update-NEWS.patch 0009-sln-use-stat64.patch 0010-Add-sys-auxv.h-wrapper-to-include-sys.patch 0011-mips-terminate-the-FDE-before-the-return-trampoline-.patch 0012-Use-HAS_ARCH_FEATURE-with-Fast_Rep_String.patch 0013-Mention-BZ-19762-in-NEWS.patch 0014-Define-_HAVE_STRING_ARCH_mempcpy-to-1-for-x86.patch 0015-Or-bit_Prefer_MAP_32BIT_EXEC-in-EXTRA_LD_ENVVARS.patch 0016-Fix-resource-leak-in-resolver-bug-19257.patch 0017-math-don-t-clobber-old-libm.so-on-install-BZ-19822.patch 0018-resolv-Always-set-resplen2-out-parameter-in-send_dg-.patch 0019-S390-Save-and-restore-fprs-vrs-while-resolving-symbo.patch 0020-S390-Extend-structs-La_s390_regs-La_s390_retval-with.patch 0021-CVE-2016-3075-Stack-overflow-in-_nss_dns_getnetbynam.patch 0022-configure-fix-test-usage.patch 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch 0024-nss_db-Propagate-ERANGE-error-if-parse_line-fails-BZ.patch 0025-getnameinfo-Do-not-preserve-errno.patch 0026-getnameinfo-Refactor-and-fix-memory-leak-BZ-19642.patch 0027-getnameinfo-Reduce-line-length-and-add-missing-comme.patch 0028-getnameinfo-Avoid-calling-strnlen-on-uninitialized-b.patch 0029-getnameinfo-Return-EAI_OVERFLOW-in-more-cases-BZ-197.patch 0030-hesiod-Remove-RCS-keywords.patch 0031-hesiod-Always-use-thread-local-resolver-state-BZ-195.patch 0032-hesiod-Avoid-heap-overflow-in-get_txt_records-BZ-200.patch 0033-malloc-Remove-NO_THREADS.patch 0034-Fix-malloc-threaded-tests-link-on-non-Linux.patch 0035-malloc-Run-fork-handler-as-late-as-possible-BZ-19431.patch 0036-malloc-Remove-malloc-hooks-from-fork-handler.patch 0037-malloc-Add-missing-internal_function-attributes-on-f.patch 0038-nss_dns-Fix-assertion-failure-in-_nss_dns_getcanonna.patch 0039-nss_dns-Validate-RDATA-length-against-packet-length-.patch 0040-resolv-nss_dns-Remove-remaining-syslog-logging-BZ-19.patch 0041-nss_dns-Check-address-length-before-creating-addrinf.patch 0042-nss_dns-Skip-over-non-PTR-records-in-the-netent-code.patch 0043-resolv-Always-set-resplen2-out-parameter-in-send_vc-.patch 0044-tst-audit4-tst-audit10-Compile-AVX-AVX-512-code-sepa.patch 0045-Fix-tst-audit10-build-when-mavx512f-is-not-supported.patch 0046-tst-audit10-Fix-compilation-on-compilers-without-bit.patch 0047-strfmon_l-Use-specified-locale-for-number-formatting.patch 0048-glob-Simplify-the-interface-for-the-GLOB_ALTDIRFUNC-.patch 0049-CVE-2016-1234-glob-Do-not-copy-d_name-field-of-struc.patch 0050-ldconfig-Do-not-remove-stale-symbolic-links-with-X-B.patch 0051-Report-dlsym-dlvsym-lookup-errors-using-dlerror-BZ-1.patch 0052-Fix-tst-dlsym-error-build.patch 0053-Remove-trailing-newline-from-date_fmt-in-Serbian-loc.patch 0054-Revert-Report-dlsym-dlvsym-lookup-errors-using-dlerr.patch 0055-CVE-2016-3706-getaddrinfo-stack-overflow-in-hostent-.patch 0056-Fix-strfmon_l-Use-specified-locale-for-number-format.patch - CVE-2016-3075 CVE-2016-1234 CVE-2016-3706 bsc#973164 bsc#969727 - resolv-mem-leak.patch: renamed to 0016-Fix-resource-leak-in-resolver-bug-19257.patch - no-long-double.patch: renamed to 0006-Don-t-use-long-double-math-functions-if-NO_LONG_DOUB.patch - glibc-gcc6.patch: renamed to 0023-Suppress-GCC-6-warning-about-ambiguous-else-with-Wpa.patch- glibc-c-utf8-locale.patch: fix bad standard in LC_IDENTIFICATION categories - glibc-2.3.locales.diff.bz2: likewise- glibc-gcc6.patch: Suppress GCC 6 warning about ambiguous 'else' with - Wparentheses- Add compatibility symlinks for LSB 3.0 (fate#318933)- powerpc-elision-enable-envvar.patch: enable TLE only if GLIBC_ELISION_ENABLE=yes is defined (bsc#967594, fate#318236)- ldd-system-interp.patch: Restore warning about execution permission, it is still needed for noexec mounts (bsc#915985)- Add C.UTF-8 locale (see https://sourceware.org/glibc/wiki/Proposals/C.UTF-8) and rh#902094 . Added with glibc-c-utf8-locale.patch. - Add glibc-disable-gettext-for-c-utf8.patch to disable gettext for C.UTF-8 same as C locale.- Move %install_info_delete to %preun - crypt_blowfish-1.3.tar.gz.sign: Remove, the sign key is no longer acceptable- no-long-double.patch: Don't use long double functions if NO_LONG_DOUBLE- Update to glibc 2.23 release. * Unicode 8.0.0 Support * sched_setaffinity, pthread_setaffinity_np no longer attempt to guess the kernel-internal CPU set size * The fts.h header can now be used with -D_FILE_OFFSET_BITS=64 * getaddrinfo now detects certain invalid responses on an internal netlink socket * A defect in the malloc implementation, present since glibc 2.15 (2012) or glibc 2.10 via --enable-experimental-malloc (2009), could result in the unnecessary serialization of memory allocation requests across threads * The obsolete header has been removed * The obsolete functions bdflush, create_module, get_kernel_syms, query_module and uselib are no longer available to newly linked binaries * Optimized string, wcsmbs and memory functions for IBM z13. * Newly linked programs that define a variable called signgam will no longer have it set by the lgamma, lgammaf and lgammal functions - Removed patches: * dont-remove-nodelete-flag.patch * openat64-readd-o-largefile.patch * mntent-blank-line.patch * opendir-o-directory-check.patch * strcoll-remove-strdiff-opt.patch * ld-pointer-guard.patch * tls-dtor-list-mangling.patch * powerpc-lock-elision-race.patch * prelink-elf-rtype-class.patch * vector-finite-math-aliases.patch * powerpc-elision-adapt-param.patch * catopen-unbound-alloca.patch * strftime-range-check.patch * hcreate-overflow-check.patch * errorcheck-mutex-no-elision.patch * refactor-nan-parsing.patch * send-dg-buffer-overflow.patch * isinf-cxx11-conflict.patch * ibm93x-redundant-shift-si.patch * iconv-reset-input-buffer.patch * tzset-tzname.patch * static-dlopen.patch- isinf-cxx11-conflict.patch: Fix isinf/isnan declaration conflict with C++11 (bsc#963700, BZ #19439)- tls-dtor-list-mangling.patch: Harden tls_dtor_list with pointer mangling (BZ #19018) - prelink-elf-rtype-class.patch: Keep only ELF_RTYPE_CLASS_{PLT|COPY} bits for prelink (BZ #19178) - vector-finite-math-aliases.patch: Better workaround for aliases of * _finite symbols in vector math library (BZ# 19058) - powerpc-elision-adapt-param.patch: powerpc: Fix usage of elision transient failure adapt param (BZ #19174) - catopen-unbound-alloca.patch: Fix unbound alloca in catopen (CVE-2015-8779, bsc#962739, BZ #17905) - strftime-range-check.patch: Add range check on time fields (CVE-2015-8776, bsc#962736, BZ #18985) - hcreate-overflow-check.patch: Handle overflow in hcreate (CVE-2015-8778, bsc#962737, BZ #18240) - errorcheck-mutex-no-elision.patch: Don't do lock elision on an error checking mutex (bsc#956716, BZ #17514) - refactor-nan-parsing.patch: Refactor strtod parsing of NaN payloads (CVE-2014-9761, bsc#962738, BZ #16962) - send-dg-buffer-overflow.patch: Fix getaddrinfo stack-based buffer overflow (CVE-2015-7547, bsc#961721, BZ #18665) - powerpc-lock-elision-race.patch: renamed from 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch- Add audit-devel and libcap-devel to BuildRequires, for use by nscd- reinitialize-dl_load_write_lock.patch: Reinitialize dl_load_write_lock on fork (bsc#958315, BZ #19282)- resolv-mem-leak.patch: Fix resource leak in resolver (bsc#955647, BZ #19257) - tzset-tzname.patch: Force rereading TZDEFRULES after it was used to set DST rules only (BZ #19253)- glibc-2.3.90-noversion.diff: use stat64- ld-pointer-guard.patch: Always enable pointer guard (CVE-2015-8777, bsc#950944, BZ #18928)- strcoll-remove-strdiff-opt.patch: Remove incorrect STRDIFF-based optimization (BZ #18589)- iconv-reset-input-buffer.patch: Fix iconv buffer handling with IGNORE error handler (BZ #18830)- new patch [BZ #18743] PowerPC: Fix a race condition when eliding a lock 0001-powerpc-Fix-a-race-condition-when-eliding-a-lock-20150730.patch- nss-files-long-lines-2.patch: Properly reread entry after failure in nss_files getent function (bsc#945779, BZ #18991)- fnmatch-collating-elements.patch: Fix fnmatch handling of collating elements (BZ #17396, BZ #16976)- opendir-o-directory-check.patch: Fix opendir inverted o_directory_works test - static-dlopen.patch: Static dlopen default library search path fix (bsc#937853)- mntent-blank-line.patch: Fix memory corruption w/blank lines- dont-remove-nodelete-flag.patch: Don't remove DF_1_NODELETE flag from all loaded objects on failed dlopen - openat64-readd-o-largefile.patch: Readd O_LARGEFILE flag for openat64- Update to glibc 2.22 release. * Cache information can be queried via sysconf() function on s390 * A buffer overflow in gethostbyname_r and related functions performing DNS requests has been fixed. (CVE-2015-1781) * The time zone file parser has been made more robust against crafted time zone files * A powerpc and powerpc64 optimization for TLS, similar to TLS descriptors for LD and GD on x86 and x86-64, has been implemented. * Character encoding and ctype tables were updated to Unicode 7.0.0 * Added vector math library named libmvec * A new fmemopen implementation has been added with the goal of POSIX compliance. * The header is deprecated, and will be removed in a future release. * bsc#905313 bsc#920338 bsc#927080 bsc#928723 bsc#931480 bsc#939211 bsc#940195 bsc#940332 bsc#944494 bsc#968787 - Patches from upstream removed * htm-tabort.patch * o-tmpfile.patch * memcpy-chk-non-SSE2.patch * pthread-mutexattr-gettype-kind.patch * powerpc-software-sqrt.patch * static-tls-dtv-limit.patch * threaded-trim-threshold.patch * resolv-nameserver-handling.patch * nss-separate-state-getXXent.patch * aarch64-sigstksz.patch * heap-top-corruption.patch * pthread-join-deadlock.patch- pthread-join-deadlock.patch: Use IE model for static variables in libc.so, libpthread.so and rtld (bsc#930015, BZ #18457)- glibc-nodate.patch: fix verification of timestamp- also filter out -fstack-protector-strong- getaddrinfo-ipv6-sanity.diff: Remove. It breaks services that start before IPv6 is up (bsc#931399) - glibc-2.3.locales.diff.bz2: Remove sh_YU locales, fix currency for en_BE.- Add /usr/include/gnu/lib-names-.*.h to baselibs - pthread-join-deadlock.patch: Don't require rtld lock to store static TLS offset in the DTV (bsc#930015, BZ #18457) - heap-top-corruption.patch: Do not corrupt the top of a threaded heap if top chunk is MINSIZE (BZ #18502)- threaded-trim-threshold.patch: Fix regression in threaded application malloc performance (bsc#915955, BZ #17195)- aarch64-sigstksz.patch: Increase MINSIGSTKSZ and SIGSTKSZ (BZ #16850)- powerpc-software-sqrt.patch: Fix powerpc software sqrt (BZ #17964, BZ [#17967]) - nss-separate-state-getXXent.patch: Separate internal state between getXXent and getXXbyYY NSS calls (CVE-2014-8121, bsc#918187, BZ #18007) - static-tls-dtv-limit.patch: Fix DTV race, assert, DTV_SURPLUS Static TLS limit, and nptl_db garbage (bsc#919678, BZ #17090, BZ #17620, BZ #17621, BZ #17628)- resolv-nameserver-handling.patch: Replace with simpler version with more compatibility- memcpy-chk-non-SSE2.patch: Fix __memcpy_chk on non-SSE2 CPUs (bsc#920084)- resolv-nameserver-handling.patch: Rewrite handling of nameserver configuration in resolver- htm-tabort.patch: Fix TABORT encoding for little endian- Update to glibc 2.21 release. * A new semaphore algorithm has been implemented in generic C code for all machines * Added support for TSX lock elision of pthread mutexes on powerpc32, powerpc64 and powerpc64le * Optimized strcpy, stpcpy, strchrnul and strrchr implementations for AArch64 * i386 memcpy functions optimized with SSE2 unaligned load/store * New locales: tu_IN, bh_IN, raj_IN, ce_RU * The obsolete sigvec function has been removed * CVE-2015-1472 CVE-2015-1473 CVE-2012-3406 CVE-2014-9402 CVE-2014-7817 bsc#864081 bsc#906371 bsc#909053 bsc#910599 bsc#916222 - Patches from upstream removed * ifunc-x86-slow-sse4.patch * pthread-mutex-trylock-elision.patch - o-tmpfile.patch: Fix value of O_TMPFILE for architectures with non-default O_DIRECTORY (BZ #17912)- Update to crypt_blowfish 1.3. * Add support for the $2b$ prefix. - ifunc-x86-slow-sse4.patch: Fix misdetected Slow_SSE4_2 cpu feature bit (BZ #17501)h04-ch1c 1696505172  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~2.31-150300.63.1glibc64_002dbit-time-symbol-handling.htmlAborting-a-Program.htmlAbsolute-Priority.htmlAbsolute-Value.htmlAbstract-Host-Addresses.htmlAccepting-Connections.htmlAccess-Modes.htmlAccess-Permission.htmlAccess-to-the-Terminal.htmlAccessing-Directories.htmlActions-in-the-NSS-configuration.htmlAdding-Platform_002dspecific.htmlAdding-Severity-Classes.htmlAdding-another-Service-to-NSS.htmlAddress-Formats.htmlAdvanced-Signal-Handling.htmlAdvanced-gettext-functions.htmlAdvantages-of-Alloca.htmlAlarm-Signals.htmlAligned-Memory-Blocks.htmlAlloca-Example.htmlAllocating-Cleared-Space.htmlAllocation-Debugging.htmlAllocation-in-an-Obstack.htmlAllocation.htmlArgp-Children.htmlArgp-Example-1.htmlArgp-Example-2.htmlArgp-Example-3.htmlArgp-Example-4.htmlArgp-Examples.htmlArgp-Flags.htmlArgp-Global-Variables.htmlArgp-Help-Filter-Keys.htmlArgp-Help-Filtering.htmlArgp-Help-Flags.htmlArgp-Help.htmlArgp-Helper-Functions.htmlArgp-Option-Flags.htmlArgp-Option-Vectors.htmlArgp-Parser-Functions.htmlArgp-Parsers.htmlArgp-Parsing-State.htmlArgp-Special-Keys.htmlArgp-User-Customization.htmlArgp.htmlArgument-Macros.htmlArgument-Syntax.htmlArgz-Functions.htmlArgz-and-Envz-Vectors.htmlArithmetic-Functions.htmlArithmetic.htmlArray-Search-Function.htmlArray-Sort-Function.htmlAsynchronous-I_002fO-Signals.htmlAsynchronous-I_002fO.htmlAsynchronous-Reads_002fWrites.htmlAtomic-Data-Access.htmlAtomic-Types.htmlAtomic-Usage.htmlAttribute-Meanings.htmlAuxiliary-Vector.htmlBSD-Random.htmlBSD-Signal-Handling.htmlBSD-Terminal-Modes.htmlBSD-Wait-Functions.htmlBacktraces.htmlBasic-Allocation.htmlBasic-Scheduling-Functions.htmlBasic-Signal-Handling.htmlBerkeley-Unix.htmlBinary-Streams.htmlBlock-Input_002fOutput.htmlBlocking-Signals.htmlBlocking-for-Handler.htmlBroken_002ddown-Time.htmlBuffering-Concepts.htmlByte-Order.htmlByte-Stream-Example.htmlCPU-Affinity.htmlCPU-Time.htmlCalculating-Elapsed-Time.htmlCalendar-Time.htmlCall-Once.htmlCalling-Glob.htmlCalling-Variadics.htmlCalling-Wordexp.htmlCancel-AIO-Operations.htmlCanonical-or-Not.htmlCase-Conversion.htmlChanging-Block-Size.htmlCharacter-Handling.htmlCharacter-Input.htmlCharacter-Set-Handling.htmlCharset-Function-Overview.htmlCharset-conversion-in-gettext.htmlChecking-for-Errors.htmlChecking-for-Pending-Signals.htmlChoosing-Locale.htmlClassification-of-Characters.htmlClassification-of-Wide-Characters.htmlCleaning-Streams.htmlCleanups-on-Exit.htmlClosing-Streams.htmlClosing-a-Socket.htmlCollation-Functions.htmlCommon-Usage.htmlCommunication-Styles.htmlComparison-Functions.htmlComplex-Numbers.htmlConcatenating-Strings.htmlConcept-Index.htmlConcepts-of-Job-Control.htmlConcepts-of-Signals.htmlConditionally-Safe-Features.htmlConfiguration-of-AIO.htmlConfiguring-Inetd.htmlConfiguring-and-compiling.htmlConnecting.htmlConnections.htmlConsistency-Checking.htmlConstants-for-Sysconf.htmlContinuing-Stopped-Jobs.htmlContributors.htmlControl-Functions.htmlControl-Modes.htmlControl-Operations.htmlControlling-Buffering.htmlControlling-Terminal.htmlConversion-Specifier-Options.htmlConverting-Strings.htmlConverting-a-Character.htmlCopying-File-Data.htmlCopying-Strings-and-Arrays.htmlCopying.htmlCreating-Directories.htmlCreating-Obstacks.htmlCreating-a-Pipe.htmlCreating-a-Process.htmlCreating-a-Socket.htmlCryptographic-Functions.htmlCurrency-Symbol.htmlCustom-Streams.htmlCustomizing-Printf.htmlData-Structures.htmlData-Type-Measurements.htmlDatabase-Example.htmlDatagram-Example.htmlDatagrams.htmlDate-and-Time.htmlDebugging-Support.htmlDefault-Thread-Attributes.htmlDefining-Handlers.htmlDefining-the-Output-Handler.htmlDeleting-Files.htmlDelivery-of-Signal.htmlDescriptor-Flags.htmlDescriptors-and-Streams.htmlDirectories.htmlDirectory-Entries.htmlDisadvantages-of-Alloca.htmlDocumentation-License.htmlDuplicating-Descriptors.htmlDynamic-Output.htmlDynamic-String-Input.htmlEOF-and-Errors.htmlEditing-Characters.htmlEffects-of-Locale.htmlElision-Tunables.htmlEnable_002fDisable-Setuid.htmlEncode-Binary-Data.htmlEnvironment-Access.htmlEnvironment-Variables.htmlEnvz-Functions.htmlErasing-Sensitive-Data.htmlError-Codes.htmlError-Messages.htmlError-Recovery.htmlError-Reporting.htmlErrors-in-Math-Functions.htmlExample-Receiver.htmlExample-of-Getopt.htmlExample-of-Parsing.htmlExample.htmlExamples-of-Sysconf.htmlExecuting-a-File.htmlExit-Status.htmlExpansion-Stages.htmlExponents-and-Logarithms.htmlExtended-Char-Intro.htmlExtending-NSS.htmlExtra-Fast-Growing.htmlFIFO-Special-Files.htmlFP-Bit-Twiddling.htmlFP-Comparison-Functions.htmlFP-Exceptions.htmlFP-Function-Optimizations.htmlFeature-Test-Macros.htmlFile-Attributes.htmlFile-Index.htmlFile-Locks.htmlFile-Minimums.htmlFile-Name-Errors.htmlFile-Name-Portability.htmlFile-Name-Resolution.htmlFile-Names.htmlFile-Owner.htmlFile-Position-Primitive.htmlFile-Position.htmlFile-Positioning.htmlFile-Size.htmlFile-Status-Flags.htmlFile-System-Interface.htmlFile-Times.htmlFilesystem-Handling.htmlFinding-Tokens-in-a-String.htmlFlags-for-Globbing.htmlFlags-for-POSIX-Regexps.htmlFlags-for-Sigaction.htmlFlags-for-Wordexp.htmlFloating-Point-Classes.htmlFloating-Point-Concepts.htmlFloating-Point-Errors.htmlFloating-Point-Numbers.htmlFloating-Point-Parameters.htmlFloating-Type-Macros.htmlFloating_002dPoint-Conversions.htmlFlushing-Buffers.htmlForeground-and-Background.htmlFormatted-Input-Basics.htmlFormatted-Input-Functions.htmlFormatted-Input.htmlFormatted-Messages.htmlFormatted-Output-Basics.htmlFormatted-Output-Functions.htmlFormatted-Output.htmlFormatting-Calendar-Time.htmlFormatting-Numbers.htmlFree-Manuals.htmlFreeing-Obstack-Objects.htmlFreeing-after-Malloc.htmlFunction-Index.htmlFunctions-for-Job-Control.htmlGNU-C-Variable_002dSize-Arrays.htmlGUI-program-problems.htmlGeneral-Limits.htmlGeneral-Numeric.htmlGeneral-Time-String-Parsing.htmlGenerating-Signals.htmlGeneric-Charset-Conversion.htmlGeneric-Conversion-Interface.htmlGetopt-Long-Option-Example.htmlGetopt-Long-Options.htmlGetopt.htmlGetting-File-Status-Flags.htmlGetting-Started.htmlGetting-the-Time.htmlGlobbing.htmlGroup-Data-Structure.htmlGroup-Database.htmlGrowing-Objects.htmlHandler-Returns.htmlHard-Links.htmlHardware-Capability-Tunables.htmlHash-Search-Function.htmlHeader-Files.htmlHeap-Consistency-Checking.htmlHelper-programs-for-gettext.htmlHierarchy-Conventions.htmlHook-Functions.htmlHooks-for-Malloc.htmlHost-Address-Data-Type.htmlHost-Address-Functions.htmlHost-Addresses.htmlHost-Identification.htmlHost-Names.htmlHow-Change-Persona.htmlHow-Many-Arguments.htmlHow-Unread.htmlHow-Variadic.htmlHyperbolic-Functions.htmlIEEE-Floating-Point.htmlIOCTLs.htmlISO-C-Condition-Variables.htmlISO-C-Mutexes.htmlISO-C-Thread-Management.htmlISO-C-Thread_002dlocal-Storage.htmlISO-C-Threads-Return-Values.htmlISO-C-Threads.htmlISO-C.htmlISO-Random.htmlI_002fO-Concepts.htmlI_002fO-Overview.htmlI_002fO-Primitives.htmlI_002fO-Queues.htmlI_002fO-on-Streams.htmlIdentifying-the-Terminal.htmlImplementing-a-Shell.htmlImportant-Data-Types.htmlIndependent-Channels.htmlInet-Example.htmlInetd-Servers.htmlInetd.htmlInfinity-and-NaN.htmlInitial-Signal-Actions.htmlInitializing-the-Shell.htmlInput-Conversion-Syntax.htmlInput-Modes.htmlInstallation.htmlInteger-Conversions.htmlInteger-Division.htmlIntegers.htmlInter_002dProcess-Communication.htmlInterface-Naming.htmlInternal-Probes.htmlInternet-Address-Formats.htmlInternet-Namespace.htmlInterpreting-the-traces.htmlInterrupt-Input.htmlInterrupted-Primitives.htmlIntroduction.htmlInverse-Trig-Functions.htmlIs-It-a-Terminal.htmlJob-Control-Signals.htmlJob-Control.htmlKeeping-the-state.htmlKill-Example.htmlKinds-of-Signals.htmlLanguage-Features.htmlLaunching-Jobs.htmlLibrary-Summary.htmlLimits-for-Files.htmlLimits-on-Resources.htmlLine-Control.htmlLine-Input.htmlLine-Speed.htmlLinked-Channels.htmlLinux.htmlListening.htmlLocal-Modes.htmlLocal-Namespace-Concepts.htmlLocal-Namespace-Details.htmlLocal-Namespace.htmlLocal-Socket-Example.htmlLocale-Categories.htmlLocale-Information.htmlLocale-Names.htmlLocales.htmlLocating-gettext-catalog.htmlLocked-Memory-Details.htmlLocking-Pages.htmlLogging-In-and-Out.htmlLongjmp-in-Handler.htmlLookup-Group.htmlLookup-Netgroup.htmlLookup-User.htmlLow_002dLevel-I_002fO.htmlLow_002dLevel-Terminal-Interface.htmlLow_002dLevel-Time-String-Parsing.htmlLow_002dlevel-Directory-Access.htmlMacro-Definitions.htmlMaintenance.htmlMaking-Special-Files.htmlMalloc-Examples.htmlMalloc-Tunable-Parameters.htmlManipulating-the-Database.htmlMatching-POSIX-Regexps.htmlMath-Error-Reporting.htmlMathematical-Constants.htmlMathematical-Function-Probes.htmlMathematics.htmlMemory-Allocation-Probes.htmlMemory-Allocation-Tunables.htmlMemory-Allocation-and-C.htmlMemory-Allocation.htmlMemory-Concepts.htmlMemory-Protection.htmlMemory-Resources.htmlMemory-Subsystem.htmlMemory.htmlMemory_002dmapped-I_002fO.htmlMerged-Signals.htmlMessage-Translation.htmlMessage-catalogs-a-la-X_002fOpen.htmlMessage-catalogs-with-gettext.htmlMinimums.htmlMisc-FP-Arithmetic.htmlMisc-Namespaces.htmlMiscellaneous-Signals.htmlMissing-Pieces.htmlMode-Data-Types.htmlMode-Functions.htmlMore-Flags-for-Globbing.htmlMount-Information.htmlMount_002dUnmount_002dRemount.htmlMultibyte-Conversion-Example.htmlNSS-Basics.htmlNSS-Configuration-File.htmlNSS-Module-Function-Internals.htmlNSS-Module-Internals.htmlNSS-Module-Names.htmlNSS-Modules-Interface.htmlName-Service-Switch.htmlNetgroup-Data.htmlNetgroup-Database.htmlNetgroup-Membership.htmlNetworks-Database.htmlNon_002dLocal-Details.htmlNon_002dLocal-Exits-and-Signals.htmlNon_002dLocal-Exits.htmlNon_002dLocal-Intro.htmlNon_002dPOSIX-Extensions.htmlNon_002datomic-Example.htmlNon_002dlocal-Goto-Probes.htmlNon_002dreentrant-Character-Conversion.htmlNon_002dreentrant-Conversion.htmlNon_002dreentrant-String-Conversion.htmlNoncanon-Example.htmlNoncanonical-Input.htmlNonreentrancy.htmlNormal-Termination.htmlNormalization-Functions.htmlNotes-on-NSS-Configuration-File.htmlNull-Pointer-Constant.htmlNumeric-Input-Conversions.htmlObfuscating-Data.htmlObstack-Chunks.htmlObstack-Functions.htmlObstacks-Data-Alignment.htmlObstacks.htmlOpen-File-Description-Locks-Example.htmlOpen-File-Description-Locks.htmlOpen_002dtime-Flags.htmlOpen_002fClose-Sockets.htmlOpening-Streams.htmlOpening-a-Directory.htmlOpening-and-Closing-Files.htmlOperating-Modes.htmlOperation-Error-Signals.htmlOperations-on-Complex.htmlOptions-for-Files.htmlOrphaned-Process-Groups.htmlOther-Input-Conversions.htmlOther-Kinds-of-Streams.htmlOther-Mount-Information.htmlOther-Output-Conversions.htmlOther-Safety-Remarks.htmlOther-Special.htmlOther-iconv-Implementations.htmlOut_002dof_002dBand-Data.htmlOutput-Conversion-Syntax.htmlOutput-Modes.htmlOverview-of-Syslog.htmlPOSIX-Regexp-Compilation.htmlPOSIX-Safety-Concepts.htmlPOSIX-Thread-Tunables.htmlPOSIX-Threads.htmlPOSIX.htmlPage-Lock-Functions.htmlParsing-Date-and-Time.htmlParsing-Program-Arguments.htmlParsing-a-Template-String.htmlParsing-of-Floats.htmlParsing-of-Integers.htmlParsing-of-Numbers.htmlPassphrase-Storage.htmlPathconf.htmlPattern-Matching.htmlPause-Problems.htmlPermission-Bits.htmlPermission-for-kill.htmlPipe-Atomicity.htmlPipe-to-a-Subprocess.htmlPipes-and-FIFOs.htmlPlatform-Type.htmlPlatform.htmlPortable-Positioning.htmlPorting-to-Unix.htmlPorting.htmlPorts.htmlPowerPC.htmlPredefined-Printf-Handlers.htmlPreparing-for-Obstacks.htmlPrintf-Extension-Example.htmlPrinting-Formatted-Messages.htmlPrinting-of-Floats.htmlPriority.htmlProcess-Completion-Status.htmlProcess-Completion.htmlProcess-Creation-Concepts.htmlProcess-Creation-Example.htmlProcess-Group-Functions.htmlProcess-Identification.htmlProcess-Persona.htmlProcess-Signal-Mask.htmlProcesses.htmlProcessor-And-CPU-Time.htmlProcessor-Resources.htmlProcessor-Time.htmlProgram-Arguments.htmlProgram-Basics.htmlProgram-Error-Signals.htmlProgram-Termination.htmlProtocols-Database.htmlPseudo_002dRandom-Numbers.htmlPseudo_002dTerminal-Pairs.htmlPseudo_002dTerminals.htmlQuery-Memory-Parameters.htmlRISC_002dV.htmlRandom-Access-Directory.htmlRange-of-Type.htmlReading-Address.htmlReading-Attributes.htmlReading-Persona.htmlReading_002fClosing-Directory.htmlRealtime-Scheduling.htmlReceiving-Arguments.htmlReceiving-Data.htmlReceiving-Datagrams.htmlRegexp-Cleanup.htmlRegexp-Subexpressions.htmlRegistering-New-Conversions.htmlRegular-Expressions.htmlRemainder-Functions.htmlRemembering-a-Signal.htmlRenaming-Files.htmlReplacing-malloc.htmlReporting-Bugs.htmlRepresentation-of-Strings.htmlReserved-Names.htmlResizing-the-Data-Segment.htmlResource-Usage-And-Limitation.htmlResource-Usage.htmlRestartable-multibyte-conversion.htmlRoadmap-to-the-Manual.htmlRounding-Functions.htmlRounding.htmlRunning-a-Command.htmlRunning-make-install.htmlSVID-Random.htmlSVID.htmlScanning-All-Groups.htmlScanning-All-Users.htmlScanning-Directory-Content.htmlScatter_002dGather.htmlSearch-Functions.htmlSearch_002fSort-Example.htmlSearching-and-Sorting.htmlSelecting-the-Conversion.htmlSemaphores.htmlSending-Data.htmlSending-Datagrams.htmlServer-Example.htmlServices-Database.htmlServices-in-the-NSS-configuration.htmlSetting-Address.htmlSetting-Groups.htmlSetting-Modes.htmlSetting-Permissions.htmlSetting-User-ID.htmlSetting-an-Alarm.htmlSetting-and-Adjusting-the-Time.htmlSetting-the-Locale.htmlSetuid-Program-Example.htmlShift-State.htmlShuffling-Bytes.htmlSigaction-Function-Example.htmlSign-of-Money-Amount.htmlSignal-Actions.htmlSignal-Characters.htmlSignal-Generation.htmlSignal-Handling.htmlSignal-Messages.htmlSignal-Sets.htmlSignal-Stack.htmlSignal-and-Sigaction.htmlSignaling-Another-Process.htmlSignaling-Yourself.htmlSignals-in-Handler.htmlSigsuspend.htmlSimple-Directory-Lister-Mark-II.htmlSimple-Directory-Lister.htmlSimple-Output.htmlSleeping.htmlSocket-Addresses.htmlSocket-Concepts.htmlSocket-Data-Options.htmlSocket-Option-Functions.htmlSocket-Options.htmlSocket-Pairs.htmlSocket_002dLevel-Options.htmlSockets.htmlSource-Layout.htmlSpecial-Characters.htmlSpecial-Functions.htmlStandard-Environment.htmlStandard-Locales.htmlStandard-Signals.htmlStandard-Streams.htmlStandards-and-Portability.htmlStart_002fStop-Characters.htmlStatistics-of-Malloc.htmlStatus-bit-operations.htmlStatus-of-AIO-Operations.htmlStatus-of-an-Obstack.htmlStopped-and-Terminated-Jobs.htmlStorage-Allocation.htmlStream-Buffering.htmlStream_002fDescriptor-Precautions.htmlStreams-and-Cookies.htmlStreams-and-File-Descriptors.htmlStreams-and-I18N.htmlStreams-and-Threads.htmlStreams.htmlString-Input-Conversions.htmlString-Length.htmlString-Parameters.htmlString-Streams.htmlString-and-Array-Utilities.htmlString_002fArray-Comparison.htmlString_002fArray-Conventions.htmlStructure-Measurement.htmlSubexpression-Complications.htmlSubmitting-Syslog-Messages.htmlSuboptions-Example.htmlSuboptions.htmlSummary-of-Malloc.htmlSummary-of-Obstacks.htmlSymbol-handling.htmlSymbolic-Links.htmlSynchronizing-AIO-Operations.htmlSynchronizing-I_002fO.htmlSysconf-Definition.htmlSysconf.htmlSyslog-Example.htmlSyslog.htmlSystem-Calls.htmlSystem-Configuration.htmlSystem-Management.htmlSystem-Options.htmlSystem-Parameters.htmlSystem-V-Number-Conversion.htmlSystem-V-contexts.htmlTZ-Variable.htmlTable-of-Input-Conversions.htmlTable-of-Output-Conversions.htmlTemporary-Files.htmlTerminal-Access-Functions.htmlTerminal-Modes.htmlTermination-Internals.htmlTermination-Signals.htmlTermination-in-Handler.htmlTesting-File-Access.htmlTesting-File-Type.htmlTesting-for-Delivery.htmlThe-Elegant-and-Fast-Way.htmlThe-GNU-Allocator.htmlThe-Lame-Way-to-Locale-Data.htmlThe-Uniforum-approach.htmlThe-catgets-Functions.htmlThe-gencat-program.htmlThe-message-catalog-files.htmlThread_002dspecific-Data.htmlThreads.htmlTilde-Expansion.htmlTime-Basics.htmlTime-Functions-Example.htmlTime-Types.htmlTime-Zone-Functions.htmlTips-for-Setuid.htmlTips-for-the-Memory-Debugger.htmlTools-for-Compilation.htmlTracing-malloc.htmlTraditional-Scheduling-Functions.htmlTraditional-Scheduling-Intro.htmlTraditional-Scheduling.htmlTransferring-Data.htmlTranslation-with-gettext.htmlTree-Search-Function.htmlTrig-Functions.htmlTruncating-Strings.htmlTunable-names.htmlTunables.htmlType-Index.htmlUnconstrained-Allocation.htmlUnpredictable-Bytes.htmlUnreading-Idea.htmlUnreading.htmlUnsafe-Features.htmlUser-Accounting-Database.htmlUser-Data-Structure.htmlUser-Database.htmlUser-and-Group-IDs.htmlUsers-and-Groups.htmlUsing-Getopt.htmlUsing-Pause.htmlUsing-Wide-Char-Classes.htmlUsing-gettextized-software.htmlUsing-the-Library.htmlUsing-the-Memory-Debugger.htmlUtility-Limits.htmlUtility-Minimums.htmlVariable-Arguments-Input.htmlVariable-Arguments-Output.htmlVariable-Index.htmlVariable-Size-Automatic.htmlVariable-Substitution.htmlVariadic-Example.htmlVariadic-Functions.htmlVariadic-Prototypes.htmlVersion-Supported.htmlWaiting-for-I_002fO.htmlWaiting-for-a-Signal.htmlWho-Logged-In.htmlWho-is-Connected.htmlWhy-Block.htmlWhy-Change-Persona.htmlWhy-Lock-Pages.htmlWhy-Variadic.htmlWide-Character-Case-Conversion.htmlWidth-of-Type.htmlWildcard-Matching.htmlWord-Expansion.htmlWordexp-Example.htmlWorking-Directory.htmlWorking-with-Directory-Trees.htmlWriting-a-User-Entry.htmlXPG-Functions.htmlXPG.htmlYes_002dor_002dNo-Questions.htmlcloselog.htmlfstab.htmlgetpass.htmlglibc-iconv-Implementation.htmliconv-Examples.htmlindex.htmlmtab.htmlopenlog.htmlsetlogmask.htmlsyslog_003b-vsyslog.html/usr/share/doc//usr/share/doc/glibc/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:30871/SUSE_SLE-15-SP3_Update/e8a84cdf91bcc96e8c74cd0385e1c165-glibc.SUSE_SLE-15-SP3_Updatedrpmxz5x86_64-suse-linuxdirectoryHTML document, ASCII textHTML document, ASCII text, with very long linesC source, ASCII text, with very long lines%T@ȲZg-utf-8960e629a126f0e08d2ab750f02c16c4f018ceb9df549c1adb9a68f0a77475c34?P7zXZ !t/#m]"k%]< ^6+GIPD7,Fa`cS619Nt~fj v[$عA^cR i%{@@8ġ@zW|F9 o̜NuXm:@E+?(nw `,MZj<,HM뮾lQ"o'*ASt6j]Z3 [WE"䴞_ o,TƑPft; D 5JYWp} :xqS+}N  %)b<Bj90T@DUe\o )meW>ڐ\6ݰ{R }Sl[5~ EM9k6@4oåʌDxJ{#B@~"%lw"'w\a_gŤr^קXL{ų}DZToi\L^\sgh"04o7 GOP;Uт$߀bZ?;_~|ԥǒ{NzK-M (v nYDҝ!;V!q\+-Y;YB aՍ3uAV ]w3ʘѷ32Ď; G 7GDNڝ+;`U?NmXϬpPNjFީ6,;S90eIᰧۍz|31M:Өt&3 D"mUR׾ f]̞dZ̸f9MCQA?GR̆v_/ rږ={āe˫:DqnT 9Qk_F1D9qbDݷmTLХ1N>t^v*Tu`2>'tIh5I0X)SkEL@P8p¾ PmA ^'k1ف6 Y&NaP+htx `563t^N⶞Z#d>`-JV>QaW:)PT,Wq7z;lFPQk ſ_DA)u"zdI'g\:jSCQ-8I*4c[К$"dˀgX&tONnsRcA xnj&e= ngsHX8t!P|,d U}3Lj)Sͤ yF@B>Ig{ )/'ѥ9UQz RV-H`zA0c],5D7c"Wќ1 D[Fnq:J"T2NvW}wi%B$뗥*zJw0X.WskjVzzMLTMxL婘{gB{sژ35N66#c ef/ocZCsR0G:hSuRԦ⼰K"+vr k𪥦NJP-ͲnbئWx/OԤ}Cygu|N`Z,\ )Fn-b!Gw6&:[eCQVT=|g3jv-O}}{>G/=aDc||WLuyǵsoOb]>PLdmP( ow,5.A>!z{opRщlu .72'LjQ_h| *Kj-X[o-VՀ3^$bTgo2=5Pl^8%зqE\t?[4Jr*lVFBJ)Cz-My8$fRβ}d*-8|ܦ]j"7CIouk.Vq ͂/r v:hCGbX TT&@d0g;Fɮm|%=(֣Z.{»C7ؙ |CDo X %gz kNn`|auTzwRǖ ڽ2;+`: -GWуq5= oPFIAxYߩ,U0eFQ%X5<}>-mQ.ƥF "9:Ck-yʧqj#RYƨJp/ G.̵Ji(\{tQ`;KH ww_ScSeʉ Cx$lG}@3U2LYRTdhkЫ2F>l0Gs-\;c!_ʲȀpd˧Q#ageZ!VɄ~!ݶ`{}+B"-#dAb+r( !cK\Ӻ%qUe$C/Euٽ7cմ4EY=fQq*ll [-wo!p'ZiQ6A>Q0^ .* ΊJ@fG=_ Siuk^1}A/}&t]WoLQ*a" %i|-#l/81;ߡ[Ftw?E֕fF‚s0q\weU2fi1u:E(zΫ$rlWMKH[{0!} _UbG7V8}J @` `ڍ)RQ.sޙA D.T&8#KlRܻ{vS{] ~zL/nҴ(e)#))LlQ1SBQu5K$FoElx!#ok (E39-Q:@-# %J=Ţj.F:&ܭ4UQ9ЪH]2r* Lѵ, j%Z%!X0Gpj%USW73^rbxלsUd4:E Ts:fchE"Y'N/'Ec)JϓvfYsbP/ dER@v_y'eoOֱ.u.Q}s,c/QΥ&λw0IHCuQa?0ZZu3+ .l"򉙜~K R`,Bge6Ӌ;Ab҂.# =@x%g=۶P$N+K&#X_:9D H7$L"'_VoƠEY͹>3 4Y=3G-x#ZlGJmZ kυ0N> m&V4.E_ OO\kN^=Z7y GƑn)٫U&_ 5 h<i;Z kZZćjQm`B.Av߱QfhimJبͲskrgx;ӹT!7OhU6lBqȥ'!S]s m[߹<6gf7eI5`m<--rO%V֍Q'nIlQ^L4/Qo{q8plҾ+ Ue "po򲞡~ca?ѓMl&iℋA2p*0Sv 25wmE+Hܵ " :_64* .7a5Ԝ>4ɛ%壮T]v򉁞26+k ɗd%2"E(9SƘʇ87gn-:G1yFx9Tgi*h} f57:L&%G@ YZ