pagure-5.13.3-2.el8 > 6 6_6 3!y덏%!E/֡aЭ !E/֡iHf΁kw%,m+i4a\26-ŎFʶd#h{b-q֩q/e`Gsޫ"EӶ8NޭS8ǫghzix^9@4HOsZ-'epR: š5n5bptA`^J1Z8fRI}ɨE懥50!V6?ź"Ӎ,dk0r90>R3:2I~㥿e+^2:Q*}dʡulz.=&H^CB6(R.r~IfM5B Q!E:g9Lf_n^mf,{:eN1V%M=RN!8nCe~T/ŗ d~\A 8'"uKgi#7qH j7Dtuq}}Qlj+SaԒv恃Iv ` bÎqUWo47cb2c878123bedd372b8010e0ccbb778819ade4bb939c3352b1757a56a084ff04dfb6843e9576936bf025fcbdb6c92b0c42b813F3!y덏%!E/֡aЭ !E/֡JTO)X*S-u/T&V,G?Xf/s p龿M"^\c~] 9FOjqw)^/1A͎0-az3l${:ȈGI_DTœkE9݌'hssCqn44*kC%&T%Ě-~Y7 1_'qFC:ífEIshu&9 ++" (&έ ksXK(g*:[z zc5D(C\0+p׈OYR~{]FY\|_#8SI>z>em"8!Zc߬P:13E|#$)+ػIL־9iDbK)$-<@p,=!Ĭx$gG)%~jA1i9B/t1SSB$;bj^|Dc^[¨K>pFX?Xtd   +  17> M // #*/ +/ I?I@IGI/HZ/IkL/Xo|Yo\o/]p/^[Yb dYe^falct|/u8/v&2w0/xAP/yR -VVV W X X(X.XpCpagure5.13.32.el8A git-centered forgePagure is a light-weight git-centered forge based on pygit2. Currently, Pagure offers a web-interface for git repositories, a ticket system and possibilities to create new projects, fork existing ones and create/merge pull-requests across or within projects. For steps on how to set up the system after installing this package, please read /usr/share/doc/pagure/README.Fedora.aЬ,buildvm-x86-05.iad2.fedoraproject.orgH%Fedora ProjectFedora ProjectGPLv2+Fedora ProjectUnspecifiedhttps://pagure.io/pagurelinuxnoarch if [ $1 -eq 1 ] ; then # Initial installation systemctl --no-reload preset pagure_worker.service &>/dev/null || : fi if [ $1 -eq 1 ] ; then # Initial installation systemctl --no-reload preset pagure_authorized_keys_worker.service &>/dev/null || : fi if [ $1 -eq 1 ] ; then # Initial installation systemctl --no-reload preset pagure_gitolite_worker.service &>/dev/null || : fi if [ $1 -eq 1 ] ; then # Initial installation systemctl --no-reload preset pagure_api_key_expire_mail.timer &>/dev/null || : fi if [ $1 -eq 1 ] ; then # Initial installation systemctl --no-reload preset pagure_mirror_project_in.timer &>/dev/null || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable --now pagure_worker.service &>/dev/null || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable --now pagure_authorized_keys_worker.service &>/dev/null || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable --now pagure_gitolite_worker.service &>/dev/null || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable --now pagure_api_key_expire_mail.timer &>/dev/null || : fi if [ $1 -eq 0 ] ; then # Package removal, not upgrade systemctl --no-reload disable --now pagure_mirror_project_in.timer &>/dev/null || : fi if [ $1 -ge 1 ] ; then # Package upgrade, not uninstall systemctl try-restart pagure_worker.service &>/dev/null || : fi if [ $1 -ge 1 ] ; then # Package upgrade, not uninstall systemctl try-restart pagure_authorized_keys_worker.service &>/dev/null || : fi if [ $1 -ge 1 ] ; then # Package upgrade, not uninstall systemctl try-restart pagure_gitolite_worker.service &>/dev/null || : fi igg""..l)l) 9i9iKKK@@@@ťť#e#e ] ]U{ W W 0% Ρ%&Ӥ2!{8gM  uHvv E4&4&$$ - -44!!   ! ! ?D bүp V% ! ]8ujLEE  mm @@77GG@@XX v vȪȪno 55(}(}aa2`  )( D L9 9j Q6 [;5Y. x= =y6&aKaKU tr trDD( P+VgJc,,s\$s\$ %ZZ%Tn~-h|i` O; O;/(/(NNG,XQG,XQV/,V/,&&CC/ 1c &:&7w %bX31 +N1^z 9' b6 `0  K-BJF/M c$ nEdyT:e*A08f)<+@Z I!  B "" S SNN 2 2vv++ 4,4, >Mp3ڥ>55  rr]]xxxxiiSS]]jjFFtthhWWooVVgg''}}11zzbbDDEE//HHtt**++$$ttXX^^fQ IH[E U0yA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤큤A큤A큤A큤A큤큤A큤A큤A큤큤AA큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤AA큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤AA큤A큤AA큤AA큤A큤A큤AaЬZaaЬaЬaЬaЬaЬaЬaЬaЬaЬaaЬ aЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ`aЬ aЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬ_aЬZaЬ aЬaЬaЬaЬ_a`6+Ra _`#__aЬ^CaЬ aЬaЬaЬaЬ___aaЬZ___a_aЬ_aЬ aЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ `aaЬaЬ aЬ aЬaЬaЬaЬaЬaЬ___________aЬ_aЬ aЬ aЬ aЬ_'qaЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ `H_______w_Ja9_o_a__'q_________'qaЬ_aЬZaЬZZZ_____'q^f__W_'qaЬaЬ^f^f^f^faЬ^f__^f__aЬ__aЬ^f^f^f^f^f^faЬ_!K_!KaЬ^f^f^f^f^f^f^faЬ____aЬ^f^f^f^f^f^f^f^f^f^f^faЬaЬ^f^f^f^f^f^f^faЬ^f^f^f`#aЬ^faЬ___aЬaЬ^f^f^f^f^f^f^f^faЬ____aЬ^f^f^f^f____aЬ^f^f^f^faЬ^f^f^f^faЬ______aЬa_^f_^f_____'q____________Z_____'q__^f___a_aЬ_^f^f_^fa__^fZ____^f__'q___'qaa__'q__a_____a______'q__^f___a_______^f____'q_'q^f__'q_'q_aЬaЬ^faЬ^f^f^faЬ_aЬ_aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ aЬ __`#:aЬ_a____`7h_a_'qaЬ^faЬaЬaЬ_'qaЬaЬaЬ aЬaЬaЬaЬaЬaЬaЬ aЫ_7.aa:_a:a:am4am4*am4am4am4am4am4*am4am4am4am4am4am4am4am4am4am4am4am4a:am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4a:am4am4am4am4am4a:am4+a:^C^fZZ^fZ^fZ^f^f^fZZZa:`#Mam4'_'q`#S^f_'q_'q_'q^f^f^f^f^f^f^fa_'q_ȯa:^f_'q^f_'q_'q_'q^f^C_'q_'q^f_'q^fZ^f^f_'q^f_'qa:^f^C^f^faa:am4+]am4+am4+`hiam4+]5^fCxaCT7R3NR3NR3NR3NR3N]5`hiT'`hiam4+]5^fZZ]5am4+Z`hi^f]5]3am4am4+am4am4am4am4am4+am4+am4am4am4am4am4am4am4am4am4+am4am4am4am4+am4+a:am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4am4a:am4am4am4am4am4a:^f^fZZZ^fa:Za_'qa_a^f___'q^f_ _ _ _ ^f_ ^fa^f_W_a:a:Z^fZ^fZ^f^f^fZZ^f_^f_a_'q^f^C__'q^fa^fZ^f^f_^f_a:a:^C^f^C^f^faaЬ WaЬaЬ aЬaЬaЬaЬaЬaЬaЬaЬaЬaЬ aЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬ aЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬaЬ1fe41c3d04daa7343476531b7beb65878d47241b971ecb3f98c2e0a05ed5ee6fc9ac1df761ee3e8d680474509c59cbf508073e45d6529d27f5be30bab914e8339f47b6d6b3bf33ed74028e883a369e8fa1d049955e0b5348c6d64c5e50253339f03ba5c73ac9d88717b8a5f85f2977cbf88724866dc8f41c08f6ecd1393fac1be8eb7d0b27575d90a5c910731acc0d5b83a992cf5d04fd1298f44a8bdbb3357d01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546ba613eb550b6c5a7b291bec7f6088abdcde41dd072adc9e282cf84561f8ae05a3d635ba1e35930e8d5d4217e3da3435f612fde30c8ce375da92e3c50abf6012a186452fc77459d1d858e42125cf1541f2038d90bf47aa82be8de8242c30fa85b8c0b13df81694d96802d63ad3da9576d43ace7cdfc9a1183be96e7f86bd52d8d17e5c9bf44a4f189d8eb86a8a57e829503d518a5dc700a3a8d1d6822b249d0dfd7e5c9bf44a4f189d8eb86a8a57e829503d518a5dc700a3a8d1d6822b249d0dfdc76a05eabc74382fb40bc5b2475982363ec0f2760fa909a3132665a97611b1abc76a05eabc74382fb40bc5b2475982363ec0f2760fa909a3132665a97611b1abb38b737629d75b65bca96a7c694048ac361424945488a8496e5530341b2e1f71b38b737629d75b65bca96a7c694048ac361424945488a8496e5530341b2e1f7107c34435626650c0bd0d856bc5f5a59c400026f25b8da102a0c3cf898c08e4be07c34435626650c0bd0d856bc5f5a59c400026f25b8da102a0c3cf898c08e4bebbfaec2a5648dae0883a30f239f75cf283f62c36f9e18f9b0ab8a07322f91658bbfaec2a5648dae0883a30f239f75cf283f62c36f9e18f9b0ab8a07322f916588004043503242216bdd90a7f9f00adbf9a9b10a09d85e89c825b8af65ae344298004043503242216bdd90a7f9f00adbf9a9b10a09d85e89c825b8af65ae344292d3742df18eec585e9dd54fa8f2e9f61e30ecba0b0624b4c515d27d5ef92000c2d3742df18eec585e9dd54fa8f2e9f61e30ecba0b0624b4c515d27d5ef92000cff2bae42dccf74b53fd777de66a88dec95c7be81e3f2f02a1072fe8b76b2b2c4ff2bae42dccf74b53fd777de66a88dec95c7be81e3f2f02a1072fe8b76b2b2c4825db6ec53fab952ec6cf2c0ae726a6a60ca6b198e83325d697da27ac5557c1c825db6ec53fab952ec6cf2c0ae726a6a60ca6b198e83325d697da27ac5557c1c098213d15fc8f1f638971ab1cdffa51612f91ce8205c383a2af001e3974ecd32098213d15fc8f1f638971ab1cdffa51612f91ce8205c383a2af001e3974ecd32bce0b51d3756ec47dba706802b394369f10257b78f15a877040eb547f22c1226bce0b51d3756ec47dba706802b394369f10257b78f15a877040eb547f22c1226a744c329e07ea011e7763b860a1139ce153d0de763138cc1a0fd1e77608c1914a744c329e07ea011e7763b860a1139ce153d0de763138cc1a0fd1e77608c1914d5cff00b50a465ebc15f26ad7003bc3d0502cccbab068e61fabbda80800edda0d5cff00b50a465ebc15f26ad7003bc3d0502cccbab068e61fabbda80800edda0c1f39e7cd175433d6c3b9c5047728777f113032631543d689096a23518c3fbdcc1f39e7cd175433d6c3b9c5047728777f113032631543d689096a23518c3fbdc96873e6138ccd50f2a5d9470d3aeaf86104d2a3e4b52ce9be9069c5ecedda3fe96873e6138ccd50f2a5d9470d3aeaf86104d2a3e4b52ce9be9069c5ecedda3fe271e4fa81e22e8c2424afce66ce14cdcc3af0e572d64ff1df8a43a079ad27aed271e4fa81e22e8c2424afce66ce14cdcc3af0e572d64ff1df8a43a079ad27aede22ab92bc0e3fa341802a5e82ffa3fcb022832c98ce7ce55658103e4217759aaceeb30fe9553f1d4672ee2af04e4a28996dc8e2042fedd016fe6d889ff0526eeceeb30fe9553f1d4672ee2af04e4a28996dc8e2042fedd016fe6d889ff0526eecec914c9b6464db146f56d96b6fde4fbb27266851b7efe8a18a8c3b6ac92d29ccec914c9b6464db146f56d96b6fde4fbb27266851b7efe8a18a8c3b6ac92d29c6f7447c619aabc755cf77e20a4cedfa045dfe7f039f5cff8a71eeef9e81f267b6f7447c619aabc755cf77e20a4cedfa045dfe7f039f5cff8a71eeef9e81f267b930037f3f4cfc9ba088a1b003b0ecca426f6e89f96a269c1a0f839eba02de4b7930037f3f4cfc9ba088a1b003b0ecca426f6e89f96a269c1a0f839eba02de4b7c88e03d9e448a66e28f0ef765a25d576a11a97d793dc9fa7c9ce83ee04c0f3b5c88e03d9e448a66e28f0ef765a25d576a11a97d793dc9fa7c9ce83ee04c0f3b530cf1e755468b1d6029cfa9b06c2d3ce8b5c44f98de8641774deadc2c7f0c71930cf1e755468b1d6029cfa9b06c2d3ce8b5c44f98de8641774deadc2c7f0c7197939f694ac1f6191ef2820b60b6821f5caf7cb521f2f1bb1261b3231f4722df47939f694ac1f6191ef2820b60b6821f5caf7cb521f2f1bb1261b3231f4722df47644ad50331aa32144efe42757a91cbac8b4bad5ce059cc331a8e93ed658c7517644ad50331aa32144efe42757a91cbac8b4bad5ce059cc331a8e93ed658c7513bb15d16875298f6029c4197e593b352fa075e9958f1cb2dd96663e5328877943bb15d16875298f6029c4197e593b352fa075e9958f1cb2dd96663e532887794db7508ba13f498accc8a4dd8a05803fb28cc4f1039f4a09400be02f79bafaf2b419286d416b6e01cc95124abc7bd5ffa099790affe1dc789f3538227c7f4d1e5954e982feb32639221e533bdc54254567c06a725a1a03bb094553a97d45d6139954e982feb32639221e533bdc54254567c06a725a1a03bb094553a97d45d6139778fc1d5fa77c53d1f83c8e7f9f4194de4022aca42e3bc1ba8178b3468ab87c6778fc1d5fa77c53d1f83c8e7f9f4194de4022aca42e3bc1ba8178b3468ab87c6a7808af0610497ec69978ed9970cd40f9bd2d1bc5d66fff8f9eefad102e3a81c7187b6363cbae151ff213eb65a8af07deaf0cf6cc7c2f8a6fd181fdebd061b142bb31eb2812f01c2f2ccc598c3c28dc958df31db0e5f958bc5fb0b38a1639eaa51db95c9328486f1600a5598b92a3961d03390ec21a40f483934bc9977536725bc7f91edca3a2a7f5e2c52a7829b1001a7f59851304bf0d32d31543216da836bd71266c1b05fb3e436ff2b9fb30854a8fd20de71dcd0bb6b0348b466880ede5e8d6b09becc38283012ae7a47409bc44552b7da28d48261fa0fca5129f7ab45e378fc7c0aeb76d13bddbeda8b2e9e4543b5a280cf156dc9a749fa6fc54f95d27916fe13eb38877dbb73360922dd93011b9e9b38bea14954fde7fc1b9c57de7b06bb9e80e00cd2b8e3e18585ab16e660b7bcc630fcc78d2e40d381b8a0a1100284bb9e80e00cd2b8e3e18585ab16e660b7bcc630fcc78d2e40d381b8a0a1100284232f70b18ad8154ff3a83e117cc0b8cabb230dc94c72acc962d9573181912469232f70b18ad8154ff3a83e117cc0b8cabb230dc94c72acc962d9573181912469c9118d04cc8bbbe641063a48065dace5a0b47b661613f0d6e4e3dec3119d305eb65f51dd64e561df712ffcfa597ef09cb132359442b762bd78595700211f8c564933e13f24889e13dbeb3ae0d60ea4fe3348f6c8e786ec2178021a072b78409090afefb9f0027cbc3f0461ea53520274b1af6b12cd63a5878331702229dff86c9d33bff1affb961fc4fa175bf8a21eae9b6995f3dbd944376fe5a75c7ef170f52f1ada09136d5aa73f53900868fcb7f3b5a9257e25a51b5c691fb2ceed5d209aea57d5714eaaf846ba68d341a4d391df24686651844ead8fb476cedbb3bc7a39411f9a11cf54498f2a7a1b43a1513791ae2a02055179f079a0319be8e638d0751a5406a57d3da09b4427479bee2eedcbb342ecef0cde95ed54b6775b58ca5d6307e6279baa6d6e6a8a002d0024e64cfe0f391664a79c7fe0cbdcaf78c86e352f8ccf7647c1b6463a2cf10680bb0834d229f7e263f542b1afe72a39aad75ea867c4e4aea290a8db76c7f97527f9e1e9eec89f436d7d439bb9a20f7ed96473a7d6c4e4aea290a8db76c7f97527f9e1e9eec89f436d7d439bb9a20f7ed96473a7d6a4f21810b9eb4f33dbd3eec0628025b9ab9bba762c3ccbbf8406780b26e7ba1da4f21810b9eb4f33dbd3eec0628025b9ab9bba762c3ccbbf8406780b26e7ba1d519dff864b09e56494234f560feba112f24cc341d5d80722f866b3a472a48da3519dff864b09e56494234f560feba112f24cc341d5d80722f866b3a472a48da3b024d3806459397c903500e99f9b960bdf48f01cc4ce7451c561d9d94d83ccc1b024d3806459397c903500e99f9b960bdf48f01cc4ce7451c561d9d94d83ccc13c06695f27944deab42c2a07b5accbb0a7a299a7a67c7bbac3e610744f3a69853c06695f27944deab42c2a07b5accbb0a7a299a7a67c7bbac3e610744f3a698509db0c2144fe120c56b1168163096bc0eb3fa2c9c1e8d1c5b054cf2febaf386709db0c2144fe120c56b1168163096bc0eb3fa2c9c1e8d1c5b054cf2febaf38679e665849736c4b67fc19898740d8692820d8750e7dd2b5cea5e4d1fcfec727eb9e665849736c4b67fc19898740d8692820d8750e7dd2b5cea5e4d1fcfec727eb288c9590ac6a5ecc4d7b8534d075d29c29881e02e8b4dea7dc9ef927b7749139288c9590ac6a5ecc4d7b8534d075d29c29881e02e8b4dea7dc9ef927b7749139387dc6dcd015d239a4ab84e6ddcecd204b1e651f716d38c3598e1e3872ebb80f387dc6dcd015d239a4ab84e6ddcecd204b1e651f716d38c3598e1e3872ebb80fa6fbc4184465211603724950cd85201b5c625f2006ceb80c09b3d90c8f886cf4a6fbc4184465211603724950cd85201b5c625f2006ceb80c09b3d90c8f886cf4b245b3eba471c5958e16351d8fb81d3da2d8a5cf6ab5f7d81a4eff88c6f6e6d1b245b3eba471c5958e16351d8fb81d3da2d8a5cf6ab5f7d81a4eff88c6f6e6d1b3ebfc04c8d6e78cbb29fc4855b580e5fe8f36171d2b25f4e8ed30012ef365c3b3ebfc04c8d6e78cbb29fc4855b580e5fe8f36171d2b25f4e8ed30012ef365c3a247724eb2c0ab6cbc72b1a01f743033568fe7d8daf45c8656742bffc25963d3a247724eb2c0ab6cbc72b1a01f743033568fe7d8daf45c8656742bffc25963d3b41e2355c820b8842a58a3135222dba51782e6a4d86d93fae36ceba950f125e4b41e2355c820b8842a58a3135222dba51782e6a4d86d93fae36ceba950f125e4bba9ceeabf66c21259de5d1903e9609c0ca01e70095b777aa21a840801fced4eaca3a169ef4ceaa2ab31006417316564125ed298232895f3d2764bf40df70f16d6e8c1362c94659c0d927858e54cc7f76d9867f2bc9ed612bf6d257916947baebca232b04c13dd51e7bc7ee7723a83412e1a0ae45d03b36580daaa8a95e051ebe581d70618e4f5fa148dc560b93dc3d3e1db6f80ce60d0fdd9dc0a0c7638346407501f3c8ae045a68f7cf58377e2ee1772016884dc439fcae86348c092efe2a4676ca5168aaa2dbaa8f27978dfd8a52609f40315ad6cb41fd57100b41e24975e4d16c125185ad3697625b99d537581f18d1b7b44c9d4bf970cf2fb31e75629cae2a5edf9f17e85115331fda4413ee7c08eacbbcd020952e6eddc7820d4ed1a366d390c83f5735fc27ca8a782c97f58efcc095801a9f33c200f3f2919105cccb9cc227c6d7160e0aee4437f5c295f4a341fa7998525d1cc436e3fb1483fb1ed94611825b4808b5746981a5664700b2801d4380536f4218b0287946856f25724d3fb7b3d774dde0e12ea2670d0ede2c4f928e1939cf43ed6fbae991eb9936c6a819c4a798de5190b2769ccf175e795ea42978614f2c440678b9d9255a91140fc2b84b30601eafa1c3a9ed9f1bcec0b08dace41f1373239267bd69f789a4551eaab2000bfc3038df57ec9dc115e67bbea4615b2ac167036571aacdfbbebe54a95fe00be3220923527d56dcae0d55dd877d0cdd72002b7bdc09f596d9892b799229c718b33960f2029e87a8038675156ba615000794641ae28bde91e785079af1074e3823d80885a35dcbb42d4f4f38e7abbcdaeba2e1ab74b973507666d61250479d78df63fb4970f53d3f9626dba168ff88de8e85d6cd3137abbf11a8e97e1239dd78df63fb4970f53d3f9626dba168ff88de8e85d6cd3137abbf11a8e97e1239d16b5635deb443f0dd6c92f45bc710dc1e406a9a312c7b69cf5336484e92c1eb0581cfcdc8d6ce899229afb33211bdcee1fc10726ade3d03a2a19c024339cbeca581cfcdc8d6ce899229afb33211bdcee1fc10726ade3d03a2a19c024339cbeca694a597aadef82673ba92913dfa0074bfc40ec1220a26fc51a16b27e215647ff694a597aadef82673ba92913dfa0074bfc40ec1220a26fc51a16b27e215647ff843ea78ef919944cfd3cb49ebc1235d0b2d87660054f51bee476fe00cce5f486843ea78ef919944cfd3cb49ebc1235d0b2d87660054f51bee476fe00cce5f4863d3774b73e39ad0d54917c64608407f0a77626254cc48fd2f80c33a872ec45863d3774b73e39ad0d54917c64608407f0a77626254cc48fd2f80c33a872ec4586489ff43172442fe7a85e97c172a990495a0622ecd3302046f09efe1ad942e8be489ff43172442fe7a85e97c172a990495a0622ecd3302046f09efe1ad942e8beac4a76bbf46686f21115085ddeaf17925a3046466e7b844a18e9aff15447e95eac4a76bbf46686f21115085ddeaf17925a3046466e7b844a18e9aff15447e95ea70cd1039afd3ff6d366489658c87fde90f889e88d677834de735816855c91b0a70cd1039afd3ff6d366489658c87fde90f889e88d677834de735816855c91b06b7bc2edd84201adee2c086dc9e00af798231046a0eecb9829863c35c87eef8f6b7bc2edd84201adee2c086dc9e00af798231046a0eecb9829863c35c87eef8f3354b5398607339d911e2bfba4c09826c8ab289cde24c24b4aafc9dee6ca4986f79571d46e59cdc9dc4a8ed631e68756a3ed9af800501c08965566c328c0780b43717b150267e9317106b18665bed213be4856a8a18b669fe9a52623fd657bcd43717b150267e9317106b18665bed213be4856a8a18b669fe9a52623fd657bcd1f8411512306388044a7bd1935405e7010a917414e983175baad7f030a20f52b1f8411512306388044a7bd1935405e7010a917414e983175baad7f030a20f52b9537bf682a952223d422205a834e7eda2c3a5b96e8a01ca62292466a323557b19537bf682a952223d422205a834e7eda2c3a5b96e8a01ca62292466a323557b1697f18bfc17c7f1a58ea988c5b4e5217d3077ecacc007b07c08e27a4e5b1e82f697f18bfc17c7f1a58ea988c5b4e5217d3077ecacc007b07c08e27a4e5b1e82f862feb2c841f71b56bb5a8ee57d836425ff855c8cf1732d721ea1ed92f49900d862feb2c841f71b56bb5a8ee57d836425ff855c8cf1732d721ea1ed92f49900dc5c4a898bf8797e5b6cbc509c52874ba2498cb237c8e0d866185ab595b4146dfdb9d79e476a37ff4b98f2091d4a37eb3744cadfbf4ffcc32282849716438675f63243b59579912cb1a259347e855daa79c606471a75218a22d4eaeb6f135420163243b59579912cb1a259347e855daa79c606471a75218a22d4eaeb6f1354201460c6ed3e7634823dde71eeaface360d40af13bc6548d59038d082bc93137015460c6ed3e7634823dde71eeaface360d40af13bc6548d59038d082bc93137015ca69f38378bdc27cbff3eb9d7cffacf1cea54443383fffa49f10abf83f613d98ca69f38378bdc27cbff3eb9d7cffacf1cea54443383fffa49f10abf83f613d984d8ede85d7bcffddefd5e6969c3915ea34520b65e05322172e48e89455e92a80585c0d11e7de8dff496e470f3a9380523c6323e2fc3d1474d8ca79c3f192a936acb8b032ed08701b6b3a2235280df03288c4b37ef85ca5bf7bdb5417cbc4c417711ff7fb832c1b0a3048dc6b74f8e191e9a77e5c9cc836cd4dde60fc88419f9825e04e6afbc08aa8fa4ee618b72194b940e2eec91e0d466cbca6b042393db6f14247a07f5f5c98f6a4a191fcd3ef5535acb0971d94017a18dcb658b8f2f1dc111a4e230a2fbcec90e5065890d8f0bc6446bebd7a335690de2c7ed823e6fa20e9375b0cd044450c9ec036470a3247034423c6b6563f37625e2b8c736f0889c0c53f014b4b4d9390829f8ac8c9f4dfacdafb09bebcc6c2e0b144abeb2ec046988fcf8fffb32976e7da4ea5599d10622c5c8952c5c443283f686ad5d91ae56ab708e3054e8304ec37fd08d92f05c6a9a7e14b040b2b9600adf22959857c5f96284fdd36e988533d986d91d54e74e0c29716b58357cf38928a53c464d545a58b8931e17a2a948a0795c5e8663c91156ecfd1baa1c50e1dddd4402d93eae038522f549855b684fa05d026d79efa48e7cfe9e4e6f5e7154fdbe85644b87f0cd65734014054be84979d2af468a9b626083c9bd17ed547910d7465be4c752c5fd3a8861d7c59904c1dfc6fcd4db14510daa78907142a3ade71591f410a2b66b5cc0fbe506294ae072e75debb1a080f327f1a435fa2eef453b79de1df33ca6ee6cb3500fdf5045b4370ca650bc9d12af5040a32e757b45bb2c4d22db80136c6b20b2239f2337d99e947090000cae98e481e2143ea9e111614b628b26df387927a9482aed38032f8919c0fa0fc0c00e58385d059bb4f3bae21826ec27d48f5e8029c7232cc78e91b99d84d9ad8c672c229bf5418236e437bdd60f8496088201d5d5ce43630b56641ff3cb110ea439bf32f6a5fb4ed48d55644187552a855d6095bda5e12d4d12042a07bc9bdb1f984f50cfc6fcc0d23b0ea0b02676c059b47c392a51b2a4746a94f7b704cd000f6c5432a0501f5ee5f76e03e793ad2a278ae27ff4de2eb1bfabf032bf594b27a13bb56524456130d5e34cf776818f4467c7571417f7f98e3cdda59de2c32260adc7622f5d08fbb68a31c8d035ba288784b05e779a1dae5a8ed75a9bbc02942fd484b0d8542d105a2f6a54ce3ded3561209a4c90c1f20795b252b492f136d9b9032ae47e549280bc1b6c0c265fce3eb0b2315a6e5f0ea33d0263b2637a382df654210b6a79e9176ecf495c7b27814bd72b890d2670553e107a9b0a695e5b8402f0783dc8c10afa9f1bfeff93ef1f7705e8269b407b8975cc02fd9f1cb20fef539c3dbf6a1ba1ac67f77be70d20128aeb7a2cf9271e06b1882a38da6811db294cae80a45452350f506ce72074123649ff1c31eb2fc32575647ff95a0cc0a191bd59e7117a5bdea55241103e123f3d060dcacb6ec9a1f9c44cd34b509e1558881c3f48849d8ebc2ee3570c8f3a2f7ee548d525607f468c6664faaddbb384292d444f014f5cb9a6976bdb72b03a0c4f56f636f5b44bf6c227fcf756d4e1d1a41235291f7cb4c46fdbc13226dcf4df6e90e158f3e2ae8d513eea0ecf04be024a50f06551fec866ce543d8fcec6d4a0f5a2b05453b5e857beba0210e97103b4422abb94429b312526e7730acf5d15fd2670194aab4063c5934a84b3290ad3b8a579ef3bc11c67daadde34b8c60537e337ac6249885d85d1356636313f578716138aaf01e3b930e863b46b6a0f33e77513b52c193c949fcf47b080e4a64845cd000ad3810f1247a90aa723ff37e8c0f1ff2af0aa46d2a4257522a8b7928b5ab63c6e89ee0ee26f5ef201a58c72baf91abb688580a1aa26eb57b3c11fa2c3af7dc8eb41ad42d4efa2f492b816a27abb69f309f5ff4dfb11d7cd5d6736ddcb61e46540ec1722812639d12b6ac89e8a303235955abd4492975bc695dc3ca1676a154a2c6a1f962acc38f666ca257e1104cbee0a82c9515569255a86ca1fa2c3af7dc8eb41ad42d4efa2f492b816a27abb69f309f5ff4dfb11d7cd5d6736ddcb61e46540ec1722812639d12b6ac89e8a303235955abd4492975bc695dc3ca1676a154a2c6a1f962acc38f666ca257e1104cbee0a82c9515569255a86ca105507955dca0caa28a24602df1f03be661803e46ecb6bf2582ec8f2c1f5f9b0a04c370f745396e4281e4b0ef2d954f12c3505da23a0d45d945324768eea232c2c19c12929fc449412680c201a88163b25f5b48af03a976e32b5fb74dd1b377669620eeb708a01c6c4c3ba6d3096aff0f4fe1874993a226641b5ec8599fcc1430c19c12929fc449412680c201a88163b25f5b48af03a976e32b5fb74dd1b377669620eeb708a01c6c4c3ba6d3096aff0f4fe1874993a226641b5ec8599fcc14306dac2fe96a4f7a232c65c209fb5278951281d9306f32b193a24046e66e93b0236dac2fe96a4f7a232c65c209fb5278951281d9306f32b193a24046e66e93b0235b127feb3169ce575ce1821124481d8ed7f9fae6a643ff433ab9e3461190e4d176c39718d1c0a3fb321676b3b7e29306c0907919a5716d5728bd1b08ae0169e7118a573ef9ebec6ef55e58fbc0431d3f46fb4915076e7ec697b83e71eacba1490fa6c0dfe7004339636a223b3677d08d8fdb851404de4e63cd7fbc351335dcc09c4c80ebb8b1f757c80b51c20191c61f3f328bd1d377218948c7c902f177534bdefd0531496104a480967ad4c92bc4b84b0e12e78b700737287ee2191fbb19c06af3959a1c17765c9d2b86466a0a9681caf6302ffe1d0c2c84f2306424b67980f2dd0c81f7e11b3cbe8bb7ecad6dda954cbc225f1c4d584eff0f98e4e785a78efdad5c51f925a70bb43e1e9ad74e9a28ea2b49885ced3f9dd815af1bb56b79daad57f71fde036e584fe19eb02d26b69a9330452e6a78f056ca413a4163ce68edba0e1b1dfa871408f6079304491c5b2dddd1df0755310cee83628766a1449852ad57f71fde036e584fe19eb02d26b69a9330452e6a78f056ca413a4163ce68edba0e1b1dfa871408f6079304491c5b2dddd1df0755310cee83628766a14498526c41d450c94e2100292abfb498521156c107ee8b6fe0eb007c5001f3a40fa4476c41d450c94e2100292abfb498521156c107ee8b6fe0eb007c5001f3a40fa44759c837a9044d4747b129c0e8a8d9c1df0dac3245333d6fff4903a8d18d132bbca1adb00a7f1c28ab71f8b9665b694a3bab84b60b52b42b3b1dc246219555eb1259c837a9044d4747b129c0e8a8d9c1df0dac3245333d6fff4903a8d18d132bbca1adb00a7f1c28ab71f8b9665b694a3bab84b60b52b42b3b1dc246219555eb12cdee4578e1e261d1252a091ebf44464305be8ed00c5907c912ce39d4218b44a0d882f44d314d59091675f7d9478ca624b0dc3f77afe6c8c4670a4686cd713946cae98b8578b5e61e140fb968f46557d394aa81b8ac003010f1ce140f77db9d41cae98b8578b5e61e140fb968f46557d394aa81b8ac003010f1ce140f77db9d41d882f44d314d59091675f7d9478ca624b0dc3f77afe6c8c4670a4686cd7139466ead280070350311c47c9eb1c03a58514ed04e7518981caf337f934b718579cd444dd4366615ffc4a16d012b2fa90137065d3ccb410fa6fd5e4ddd7b5e4ffcd57bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f072adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe90d9736b830109d7e99e2a495615a7140ffee9e8b6a32db568c72ce8b51bbdefbdb8f9bba7125549cb01d68d90050ac9604f5aa43f6fd63e070f6d7d095f8d7461d023cdc1ee2031e60a0569da5abecd2f40e211723a199caeb09d2029702bd45cf144aad58010ffe1b7ba8de759dca1e83a36664765099de4ad46ecdd703a398dad33fa53d17143d8862fac76d24910a957982332c3126d08bc4243329dd8ad05782fcb4d0643ed123a3a217c5f2c0577b481fead284ce2cfa9e8795fad844686e86aa4ac06705b306d78e1e45fc3b9ea319cb877621fe983f94d6e8fad9cb1f23dee13400b4278bb1cdfe7e5d64d9ba785d541a7e90245bb7b178f44ec960e672de01161a3665db3bfe10e998735c5abeecd59992566d2dee9d077158cb2a895f9b6e9f60cc090f574d851dea5b5a78c536c86dcdd5690017d16a0b7411fd025e25d30705c212a17333d4d219aeca0d3ec1d0ae172d97a109b35b2ee6427df318081ec1a35c5bb8d1b71732bf9e99ec7876ed99b41e6c32412748f1815c464672de01161a3665db3bfe10e998735c5abeecd59992566d2dee9d077158cb2a895f9b6e9f60cc090f574d851dea5b5a78c536c86dcdd5690017d16a0b7411fd025e25d30705c212a17333d4d219aeca0d3ec1d0ae172d97a109b35b2ee6427df318081ec1a35c5bb8d1b71732bf9e99ec7876ed99b41e6c32412748f1815c464870280ccb7ef497a41bc34a2bdeb10c24fe87a018c7868d7df2685d51d7253eeb628fa01fe3239df37c07a3c5588023d721a90f10482d808a21e01623608e8b0870280ccb7ef497a41bc34a2bdeb10c24fe87a018c7868d7df2685d51d7253eeb628fa01fe3239df37c07a3c5588023d721a90f10482d808a21e01623608e8b047a281f4ba26e6e29a94d89a4ea7208200f39620c484f664d9ef3ec73b4b8c29b1269819cdfe846827ed0eb90683390ba08a4c452bd738bbed3f27dc43b7da4747a281f4ba26e6e29a94d89a4ea7208200f39620c484f664d9ef3ec73b4b8c29b1269819cdfe846827ed0eb90683390ba08a4c452bd738bbed3f27dc43b7da475a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd550925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089a5a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd550925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089a36dcdde33749e2db422c3f51eea5deb71bea800490d96c2053680bc4c6154b3debcb35563ab0d4a54fd83891e6e3629594237feb45e88ad023d3e329363cf27336dcdde33749e2db422c3f51eea5deb71bea800490d96c2053680bc4c6154b3debcb35563ab0d4a54fd83891e6e3629594237feb45e88ad023d3e329363cf2737cd978b6e584de9f63d31c671f523882b03d102092c9af77e70399feba3401d464ef938dd040a288e2e3493f834b5ba37b8804fd0ba4c1829e981677fdaec94f7cd978b6e584de9f63d31c671f523882b03d102092c9af77e70399feba3401d464ef938dd040a288e2e3493f834b5ba37b8804fd0ba4c1829e981677fdaec94fd1d4af5aaf8d7dbd23e1768f938c8694fb9bef1ed7d740508832947514056ea58c702006d8133df35435597f866603f8ca23fdef3d9f8f7d78d833ebd350e52f975ec2c70484a65b5fcda5a43905dce1dbbf65adedbf04ac965f04450d6a5130975ec2c70484a65b5fcda5a43905dce1dbbf65adedbf04ac965f04450d6a5130d1d4af5aaf8d7dbd23e1768f938c8694fb9bef1ed7d740508832947514056ea58c702006d8133df35435597f866603f8ca23fdef3d9f8f7d78d833ebd350e52f1ed0fa9619c1e1d1c86ec564ac82e686e7aeca2b0cfccf1854d6adf1ef52e706c4eb4b162183cf0c2e0e91eb7e25c63b0224d7e3fbb094055c469744d9c0685fb173e7221f100a147c2705797c67c89250d637e71d4a82596a41f86054d5c3582325d2f0873b044b4aabdf5e8ba5cd1de1226304d67dc02e0d9142c55f553630592f6317202cf14df2e5ba94c086f2b444bbd6bf700855dfcc5c49fe5f342a61179214c06f8d3c1763df3a5fe93fa84f240f5b2b54b5753a15a60af99dee905e23c041f30f5887af40912a93a9eb73de58e111c2b26a86287809062ec8e39dfd279cd996869f4e9e375ccce86608559a8658bead0b7620112330c807886dea8d14e2b3e4c49462ef1e01936898956e047739a96928c6368db81feb170428e5e7b5131043496075b254b3a8dacbb35fde07fd5b48ac634fd61701ab950b91625940a7b1abbfa4c4a41ad63a5195c1fc748cbd58c14f6b46538622609c45091232c3fde5d9638c058027054d92c09ff11db870221a269bb294a3ca4ad32a518f0b18f54c4ed7849e2a8bc964322ff23ad96de151391ffe613d4ec85ee569086622dae9670e4f72164ee21ade70a1b5cfe4e90adc5cb35bca2c313984493950e8810766b53920ce8e7c7c2e65482b095762ab713fcc62ce76585eeba61b97cf10f7c019777748412a87ee020d4cfa53a6aff80f77518127619268c1c1002ce84f4e62b84d686885bbef4f5f2be8bebcc67bbc2f3482130bc7ddaf05aa8665d61c547caa008901c5774883d7be3ffb332ef72bf4fd83a663058e6481a2f6e09206466bdc92c22aba566978f076846655382888edc267651b2a4b26b1b849143e5d830dd45b6651d69e7db6e94645a87a01a706c0c76fb243945ebfdeadc7692b34208e93e539782eb6f5fd0439c8636a627d581291194b2df55501cefdcab3747809185513851c1d7d953d7701aac7bb61f798ec1bd6320115b3f945d4c338d75f6d3c3e5396f1bdabb97c08549fbee07b633602e59b5fc8133afb46432880702039f479897086048a51fc3f3c0c87bb1fd9d8c8cda88b6fd6392fb2d417f2b6bfc3ed073d84c96cd4d072c48566d10039fec8e8d8efa0ae5542b6e71a7a699f2fbd341376b13d7b49d0e72f47aedbb6605638fd4de2e83d4a57b703e314550ad185e301462d13c369763896a7067180e0449c46424061207cca6bb12390259a40e31334b25abd937a2c789951cf6a0758cf3f7c6f153d7fa277c24123582a278e0ebfdb53104c79c46ffe6f8551c4db67086e2826bf338ab80ae443b9b22646282664a41ef344633904f9c300fb02fe3647d38cebdef07a2e0edcc07d9e3f90ae0f938f2a42c1e613ca1580b68294892dff4df5d92bfc3db47659446d7a1a77d070162e06742e17a116dcd18841a282be9aa509720190588fcaf662d70c04b7382c480ab0410814c4030988c999717900550ece19bd0ffd5f24f853a892bc459e01769865bacd4a4f52ecfbb5c228428d3cdfdfc0094713437f5185c717542d3f2f9f27b5c38b20eb5bf941311d7a9f1f702a909c771f3e657d32ca41b7a059f23b5ff0f979d22490fcf3c67e35a0b20c0b7bb1f93b3123a7db42a295324509eb6f87a171d9dd36122494c9a8986d5c71517984b86527fdc7d5f9f4b8f6ddbb50a4ba26666a77703cd020843dfb747f67c0d185665975be20a0a3448425028bdba2b3da2822aacdc453e591057d596d8afcb96b6dbb9132737f6a51ab23e0dbb3a727fc6cd10dab879b358194851e4053b667098d703693f4dfad56316c2748566bda9d24098c7515bbb43f38039004daa0c4b2784180178d67fae95a0344d6d0e1291e244a415862af226c35c881c38688f3587acca3fd8584dd51c9c8cbe121d786918d8edea08a24d36bd93b1ebd0edc9f1f6799d8e00abfd46bd029239001b3ae92f9d3e83b5ab6e43920b1d40017d9fc2baa9ca65f4254205c0d638246c44bd448bb7f9a655e517af569d5318ae82f42545d59ebe5da5cbabb8d6e03a0525308ddd9f39c509e88e0c274556785e714683eed2da020af3e578ca05268e080f810861068573545ff0efc6280422ee1214f00907b965b4a8035363106b8337c2a36a879b6043b595fa301f666ebe970b3ee62f65c70f9891bb8864626d737e2c380c8af672b1d8fdbec0cac76f101bdbf766f32d0ab9d8970612d39af520e0ebed1676242975c349f1b8134631844257bd14882cfbbf0ba2a6a1c4f6ea77434f029a16a900c33d299b4a83b9df06f0de7f7db42f68b4cdedec2064b3995417e94ab5f9ca104bfb2c628a41629ca6314637796b674704dc108be1f9f67085b20806e40d2434149c99980342b27346cd666bbfccff64674ffadebd3c07831cf1885b0e93ff6c07efe56a7f357fdf84e240d83431d528b570a35192fffd2a5329ab632e2d2f56c909ea7b8648efa0a092ef0792534e7f7c68bceecf479ed556c104ff08a379a9fcd8738467f133e2cb858fb370f40459bec0fa1805d07903988babdf1dfdb95042dcc1e847ba2d81c52279166ac1ff9fe0d765650ae077982579ee06522adc65ce1f8285169cd260e1e4d216599d7d1e897b1530eeaf3c8475d7552f906bb0f3df9f2c312a0d3e73cef93e754a15641ca32978fe2f13051e8ce19e737781ffa9a808964cdda9be5b141313dbb28c4da9e9c28cf059913c2de0d04a0e439cb535a47df9744635dd7ab1d7ed60a26ec58e641913f494977f3afbe0b8ca61c0c106f9cb006037549c0dcf8dddd4c4dc5c4a011336174125ad25c5af49c947847f2b57b297b3889c8996b16c5511a3cb2520c683cfb5e0d24bdc4027814065e28459c3d92a8c333234d5c66514d93eb9f4d8e1b11481661e6364c8f1662c38a01d98a0c3462065e8735f84e0608418ee5927ac85a955cc183a233743b547311e8aecf7a7f91c8412a16e616c31e5c718c4ea960562b4e0be45c736d615b90a379cffa2eefd5521e051e41dfe169d8fc69993f86551d6ce7138717a3a56ac7c0d11643d5cbda9aba5cec38076e46e29af65a8b39f7e8dde4516f8221ca323294ecf4aa8fe03cdceb43a7219b4e543a5ded3f450ea2345a8192020aa3afe3f0064c4c7085fb127719f366fdcc59a6f5a88f2d5d17216c774daf3c68d2feab55e9b4974259623f959663fd7103bcbeba05bc88c5d47e99159655e04bafc4c3db001086415605acde23fe006c4e2f1f22e5d985c10e4dcd20a78214497ce60d552e564a0524be3e39ba391e8dde81c70f690138ea42a10701e50edfbb5c841203fbb42e6a551ebc427cdd360ff571dd43d7e13dc1f00cd31337ec602d9adae1b7b1e7dc5ddaba68b9c3fa1817c6af11cdeb0e0cd5f07f7d2628d73fc8bbcb4e782964774ceb51fed45a74255d73a76010a7bc9485f757efe7158947be4101a196803fdd87ac3f7eb9bf410aa7df97a3a054f962f81eae02bf015cf2eba06be5f11339210c1c10ea47e9ca67964ed928ae21285ae1a8e8a2189ba611ae4499c22214209762f287cc3a7cc6926a2a12137fadf4854839493471cadd03f5fc015b79e54c9dcf995caa7d7a6820de72b9fac98ced48d521203a9ed118242c2c2c460464600b44ecd0adea12e8314063cd6980e668946f43484e475601dfd6a383938e78fdc0391cddf8907eb77163352149b93ed8a7abaa6c06d164cde6c77bea45c755b7c1188f6b91bb4a7152f22c4391471ff43dafcde25dc8c1dbd6d460e93faa6d8bbc5e43f491a22d9d80a44a4540962fb5bfb0fec854112857a36aaf05bd8d06ca652c01932fd97bf6b60c48387bd618dfc8ee3455611451c073cbd1df79b2362f5f91c7c276a00f5c20a9bac67570dd9c1a142a87106a10aab3f079485049152f853b14db3644c2aaf9d24bf1b664259ce1a6203c1248de4013badd27b2044d9ff69e320bb9b378238bd5f0aa7421bccc8efa24003396fbd11fac8947315e6a6cc1204fb84fd87f25df8ce1eac24a58873c85168f0a2547185d764e2a007eef2e25959336d6f988f2ce0e004f885d1e19f7f2e90542d2c3742a323980c2441af02226f694be97dcaa564ae521c07d612f71cbd974576fb31491e8cefab1fd8ce7d8cb437a61031d4286204eb60f8601ed6b1ca22707a28f0d62fd1a21bc630779e8a39215f282dfd21bc15f223613db32826db44a2c22eebe8f6120643817f22faf0d61651175f831d180c8daaac1fb9b26c5dc06e9a1a6a98eb0cb96a184728c3977046b7b5bbbd568fedcb2d356b19fc49bb875e61fcd30bcc4ab573fb6be326985c6242346cac69f34a634495e0b2f007f860f63bc66b9b48e6ff146d21a84ce98e4ff3c92e4afcb15a077350445809aefbfb8bc88e5d3515f89bc01ed99e05851e58872154bf4f3352c9f6215876a00123a6908f0708d74598b363cdf1f7a01a99da9ef52b8e847cd1db3a0d4e7e75f2da05c28566fb67361bb96e4c1c4f3bdfa6036ba9d31ada6c3bfccc3408d8ddfe23894bc0ebcb556377eabe14d9fd717d864b3fcde9c109ee959f3fcea9cab719029f3fca7f6b7227026cd56a99457e168a25ea8daff015fe5028a0ba2ab8281657f7cc0888f2517ef61d67ed885c81683631851670f1b459c62594def4210cfa8d28c352ae372769c964338c691598e03cb6fb30b7d2e175fa90ee84ee8ad334aa69842ab651bea58134d4f8bf1ecd4c7da2fd7e6833d45232e9d3044c2977c3ed11b06f36890be720587b6c29141802df5c5c8754fa7f2774266c015821eca0e52bd61d0d6e1f36fac3dab8d4497e711f31b669bee625c3cb02c576c99b38f5271a98d581fd4924c685e378d4497e711f31b669bee625c3cb02c576c99b38f5271a98d581fd4924c685e37d246262f79cdfc23c73549be0cd506ad2d11b93475574e6949c67ee99ad291bdd246262f79cdfc23c73549be0cd506ad2d11b93475574e6949c67ee99ad291bd2f2b9831f58beb831af5219a31bf18125df2024eaf68cb3f545190ee61cabbdf2f2b9831f58beb831af5219a31bf18125df2024eaf68cb3f545190ee61cabbdf45d8049bea94bdb5cd02514cf0f1ff4d41f2e824b126f4d0d9fe785c0c1d418145d8049bea94bdb5cd02514cf0f1ff4d41f2e824b126f4d0d9fe785c0c1d418135ca0ae352e51490f13726a0ec9930817af2274d8a1083bf0fc4b1311d864cec35ca0ae352e51490f13726a0ec9930817af2274d8a1083bf0fc4b1311d864cec3cbaabc6987b9680da1b31a1d77efda27f252eb2fec4454214d7e42ca62ae7803cbaabc6987b9680da1b31a1d77efda27f252eb2fec4454214d7e42ca62ae78011b765ff803dcc8a95550764570716fcf67e2f405027ccc3aff16d2eefca343711b765ff803dcc8a95550764570716fcf67e2f405027ccc3aff16d2eefca34371b2b16f444651bb0f411ed0674d76063bb5757ed9af774fa1f862d9bfdb2e0b51b2b16f444651bb0f411ed0674d76063bb5757ed9af774fa1f862d9bfdb2e0b519d7ea5f2dbe1857046a6467795dcee447dc66ab06cfdb9c2069ab25a949bc0b19d7ea5f2dbe1857046a6467795dcee447dc66ab06cfdb9c2069ab25a949bc0b7be08529063eb02f1b35d6dd54b584b195b940e8e32c0741cd8b58af24dfa8cf7be08529063eb02f1b35d6dd54b584b195b940e8e32c0741cd8b58af24dfa8cf8465d5831b9e66151a01d0df32cbaad5bc7309c4953e9f7cca9ced5db81411388465d5831b9e66151a01d0df32cbaad5bc7309c4953e9f7cca9ced5db81411387640f869db0621f22aa5965ec1b7de8c3ab407ea2839807933d98f352fcf5fba7640f869db0621f22aa5965ec1b7de8c3ab407ea2839807933d98f352fcf5fba2b2540d1ed1bb8b92f6121c8d23855bec64fda8dbed02a2f9d1c3c94436be2c62b2540d1ed1bb8b92f6121c8d23855bec64fda8dbed02a2f9d1c3c94436be2c65e3eafa8b3f82bc4ac56d65ca903d7481597621b70ed66910b792b7b99b8350cf2c656c6fdc4f89223f191151c44242fe70adfb166ea6cfb1bc82fce16b69acf129c082c3c84a6611324fc70ebf4efb940119af1cc77f079707b41cb1480e93b3f66e5bd7cf5aceffcf230097beee7fb47bbfa9d0df9677c517815ebcbb0660f317f459e82a8cff3b7d886569149d60d9f4de17248e473a4b480fef620270da4d4867a7606ec1152e9b6726a1ab73c061051eaf7651489b541fc77295ee5e7b9ab36aaf5904008fb7ffddf09a98fce17078315c6c92d1996be5e70bdb84cf18c05e8dac459f555b3d5d5b1800180e9975e0ac71c7aba969ef71ced811ee566c29eb74b7ec2721f3d1e1911f82bc60d8b063b9883b51025e7bbdc47558e624961b607b6fec0e6cbd0c22ff6b64353455d8454a3483ff2f0ab9a5ec653e0cc133809cb9d56b1630727dc674233c4296f711205e757f74a12d4fa6c3340f31ca8aa09b2de064ff8beda592f904d2ea7609685ec790b2af47e9e12aefa52b84a6159da44d0556494d471de446516f78b3a82eae3d36cf5381806e001508828366b081a545a1375778386be40ec82ae07b8e5dc516f1973910b0867729a21d5ade54e1d333245b0edd44ff0276ca72dccb10cf43a0346d534cf5870bb989ded19cd3923ea687af02f2a10a3b50899e102900f0840428fb7d3568e5d2b037c7fd2bdd604c2c1af9ceb9cb4f2417c983f94d8aa63e525bb788e009b30ebffe04007cfefe7852e27584a262cf2b3f958fcbf6a1f07ecea91de12bdc8275bde8eedba359411588a035df8b0912cae4f50ebbeb144accb8d54f375e4992d98ccf7f2dab74dbc008b28ab74ef16cce300bcb5643a405b3755b9af42090efc206889773abaaa25b7aa542c1c6cae9a5835397e57517496e9f2281020322d298b9ff251cece4055c795161e694ccb4fa9f7705a0b84694919d5b81a1a5a841f4fc7461d090be455c795161e694ccb4fa9f7705a0b84694919d5b81a1a5a841f4fc7461d090be46dc8a7913d8f456e8ecc016bf251258854ce3b8d6e18b8460f0148aca32fd6cb6dc8a7913d8f456e8ecc016bf251258854ce3b8d6e18b8460f0148aca32fd6cb40d4c689bd16c86395e3d573e23365f1574c73a301122788d47bee40c834ced6c2cfbfd456267ce3075e00aa2307dd2e628518b10653a40e27c6dc6531d57747762606f4addc518d662699ff7211a69c83d97acc026c21312f0b9bd7ae6aea00cc96c040f70294191410c0e5aa886a120dd2be2387a011e5619b2763306ef150b12204ec2720af6f2a6bd02a9b1d032f0a9f6b179d08b6db01bcffc08848d6fd043cea945d627d454039e9a9d8714ab73c34c4a1f2c2610608f0516a58002912ae71124b51c964c2ee3f9ca07fa0aee59bbbeeb97e30028a9f7c5f6f68b7358a38f8ec2629c3822953caa596abe5ce9459d425941398c503741ce4af32c2ee4ff18e0e54587ba70087250da4ea1c914216eaaad93cbb9b30dbc454336fce351c68e648f351112bff46fb6ff48b6e1ba5170b83c28d92aae70f82e4b3b6f9685fc1c05f47e38f5cb7d5f12220f760691d8872023453a1a57f8d1e9ac2c17b90aff8705e3499422f5444b797980635d796f6df4b121bd13cbab9b1355b55c7f5b712e461b0a089e8cc10b4e2ab5a6d33d66bda87fa222c794c31e7e5c571239cbb0d3a31ad3788c02aa4ceb0c1614b5192a1347921736f112e36cd26bdc5774e09571fc233a5a4cef54034507614d0941a8f1b0f81dde906ee50d053cedb9ac8f0b15f8d794f0821aeeaeea3aeb1239020d0a4829b86dd4c3f40990542070c9861f13165018e866eef1cd1655ceb89e3fb6316881c6c92db35038e3c29dd5831d9f27f3f2ea4b022de06c65551638fe384cd3682a468eaa142ee9a3a013340381163788b086dca304fcdb77780e37e79be2e5978f42a81db23fc4bf56572f6f4b50f9e35f682e404e461805397e7d2161095a3088bedb01a008b4b548355bc3ee2f64b0b51d9662077634c006c0b3d09efb74a206658ae7d681fe1b65ab1cb8681ea989ab76cd2b5a8b3777a88996952653ee44d13a507790a60c23ed04d0f38fa8f7986ffc2dbda00c0ea75ab1afc262965b452ad20c1b27f8f0e99e692198f41e0c50c057d4f7107d5cf44b4c723489df7b9174d2914ee7dba715584e98e9c3bcdd1f78669cbcf87d632c40527b735fca10744c99338c61ab4e82bbb2882e2d410622539b2868b2981d89f90520764d096f7792880691a2dc1e99af3af6e19325078db3b08efc9ccdf56ed96a9d6ca2bd58bbdfdcaa327e800620f735cf6da1d0f1dbc4813b3268f09702561e136378d9691722240f92963f5f6dbbc148d8d07a0dcad4b88822d67f4a7c7fc67af1517ef8bfd8c81f8478290c2fd68de896457487b4d3573947df5870270beb2c1fa307757a4a0a102285fab975b6035ec8685195f15272785206aac97a967b20149c7317fdc00f3717096fe85a19da5cad3b78cd64883701cae832d8c8badb4be68675dd7f411aac4a94cdfd25b6694b0b4ce3af4224b87e98384ef803b887279a271896992fa3193a606e0e389a189a1b73308f0b015365dff135c57f40f53e26b25f126de80ce38616b434c4b11362ec9271b065463ec938e3c50e7a53c8e45c0736d5cb0db2086de047392924dfba49df443bdcc32d5213146939190374f18039d14eaded12f353524fd6540a679035a0455ec7679bb97bbbd793230a7b7804691a213c93068f68f6084faea69b08057f50d49d738fb962e830f710903ea9f4fb6bda2e4e44f44db22c46784146a3cd69e9272cdacb24537533469b5b953af8b6e419d52c64a88108332c2da765839552809a4560db538333409ab1079a52e7b6ffe760401d8fac21ca497c7f0b6cf7a9b6331eee18c961ac0bf662e1543471cc783ec1bf2c341335c186f5f25034f7cb2a39766ea6296ff920e36eb3e9b4e7cb8750a15d2732e718d1018101a84582773bb3b281c1a593e444de44406731a351c85c7a9063e1bd533507f59207149b1ee67a6c73eb31c031a95e1672ff343e1c4fac37ab4ee1b1bd560aab01e1f5eb01cdd7db4301b09a1dd467ae088587b249d723559b46a788f2ced09670c81c6ad585b16b1971e42c82002477fa22d84f7b85cefca2e77d8e80a497ce530430252d68054d14a4b6ac13efa74378b85316cc321a8b1dddd01ff1df9ca388d209e1c204567d63c998c3c1e9f937876eb05dc435d9c15adf64be53593845b061c37d93b72ba143f2b47dbb5ead1ae89dfcc86ad9722cf41d4141588f019b6ee1f55e4f167f1c8c36d7161dfbba81d828fc1af49eb37308af89e2000a33bff3c3a175e73ae0840cff131305d43846988aa9026eb8da56db61bf0631b6ba2d2c269cc499d4dc4d9120fe7e468b0ed3361cab8cbd664d366f1fa01c4592339acb2fd1f1afb12eecaa8f4dfbbbe524fe78c09c3693572d32385235876922cf6a808ea8ddfd38b4d9ab11c15deb22837a21f386e573b6cffaeb17064133128735c075ebad76fe90730fb292d1475cd2eaa0d88932fc2e574a1b60d77bec92c4192d234820081c2bc91d64fbdd35079c8c6d454e4c90993fd31b9f5ee785990253d43afc4f5b45a7c6ad18fed742d7fabbcef30f5c138174e02312157420dbc09217f677a7274e6c464c03403a399d0d01a5be695b5dbdef584bfc7f4c25279239620e068971f4b66150c6eb1f1b4b83e6e4cd524c6ee246f1277c1cbcaa6d59dcd9c1f9c289116b6293380466c7c121bb9d7ca1255a0b74aab51b4b6b98d95718772edc4b66df230cf27cd8c76e8a9c79c7251ed0d7959273702fba8deafdb8d6f704a22845d52b267c8cb7af746993cf3e07037587a87f648b7bce16f03d7e654f8a460aa99e87c89b681cce5102e843efd6aa0932158c4c15caf473f6ab604368a935dde63b3610a2a95dbe9b0484a450993843bb5f61e5fa49b5272807974022aff1cb7aacebfb8001d060e63ca2b1bd0b65fde08021ff3ac05f031f931c6b28a18beff2e2ff1d80ebde8a89c2e759b59b16aa29d1704100512107ddd60951242f88a449f6e00a7c698db044d75a66e9e7c327496013d29437f546b1005b218d86a8c23ad15710845d8fdf8c58c1353e504392d2dc27bf0b01cb341cf796341246e73d52ab48ca9120a674e5bd744ce270748479da7751c6e57bfde197854cfd53a509be888215bb7cf62337076972b98d6602d0d97ddd8c6c68c6e28e847e426f4c973d98d7b6e80f7ece8c8047844118035f5bb66e64a1c9bfc12e498614a25bfe7ef57b5c2802d6ea379be12fb8d8b65b2addb203da7642d010fbcbf263e9b56e8c8cf0c8977d0d36063e980af441351ab28f5904c2cd709b2b124f7ff3b3424768bd3b7728e9d9ae16345367b6ec0abcfa5a158f451165e0a26eab077dcf7a10b3bf0b992c68df488729261b6827e1af27cffa3cd778b274b2790564e375e1576df15fe6af84cef4a39a777bab280b7c269a07472182eb5994e04d961b7dd3410dd297165fbeee710b8515b9be221fd84a3ecd7c0cbefd2e2efd6ab2c8d5c76a3ad72fcc61d650bd341a3ddafa3144392a93c5d64b79da7025fa9fd7bfcc0a0c5b1ce719dafe98328ea67a17a7fea3cae770ca55f4f5e62649f0c27d96c779dfd1e41fe75210b0ef4c965ee41eba394cca7ff6e9248d4f0113f3f26346151abda9b25d580173d5c8ca65d5dc189b9af8eec990ee73a7581ce85202b03a7dd717e768fbd08904c6ddb7520a9c033ef4d1d8c59b57cac730b11fb569ea1d5c96f4245edb5770145996a1b2cc2ced4e0be4232e0e71da6cc47b6a721a9c05b52992cc4499448b19a3be6ea189ce492224d9c4ddfbe4a3493d2c7d81c70392b9b5b4a7fe62de1970f58b0c313805a99a06120c859ba777ccafa6c502c7fcd14e5c8439e79e69c7e0ccbc633a2b9ace9ed2705f9fc4d764b9f288d483f1d6c126775d4e83d3bf42872c1a18850086bfe88bc6829397c5a18f6f94b400daf32a5e91bfb35871369428cfd0f41042844c4c74d93d2cd82d0b399319f61257ce6ae17f7f64035c1fdd6e64fc36986517d17dcc385f08d9b7060e640d1ace7c185ef5f7e4095a1ebcdb4a88bfc52bd03585f4886357803f8809fbebb0823614309e7727f919f8ede6fe71e2fc72a2edc318478c257e7b71aa30b77d5961525cfb394f09d53078e0f409e41323989341e4ef6f78d81d50810da0be90afb46c5b175144a258fd60142b989397a2377190445e2fddc625ea7972428f2a8647aa9643224838a04abdb4f33919fbe6f3374052bdb8f3ad1ad9df075e3272bf669036c2dadaec9cc27878db1c386092127b4bfab702e7beffdf4713dcaf86b1559b9dd965054859d6e59f0b3094006c9f509c15d17a9e112b3dfd86c614f412bd88f71107cc9f3ffd4e4753c7a0b6efc82901397a79a8a073e0c198b4547107b5cff20e8d613ba848c6ccab1d251e14980e98182eb26ffebedfb088e52db4e7f01ae20e8aff68039e37086058dc88bbe3bee5ce9933137c0a180aeeee3f7c6b10f2aa2182988d6975a1cd85c83cda152ae75ed2f064482124529ab01acc80272f410dc53237707137d23ef52c94f10a7cfca85f765993b454cb5d6becb30fdfb3e27eb87f6544ac348b0736bb22ec92c1148891cf259630243f168f32b8100e40bffad68805bf5abffae16e36b23f2d6e415a6888b9257ff0b41d69146d33895e3f3d35b982caf0f70bca3754770606f8ca7abc6c3c782f321d00ef2d562ebbd6a47dedc40cc03d5581772bac98a18d9806bc2a4ba4d71aa743b7a28685de80897ee94196b8377b37164d1407a57edc32b9320342e1c551c328535f408da12b6ac06e2a9e4f2ecc9844b53071a310ef00df5563027e0c54675859a4b7e4569579a767271655f4e554a7755337a1be6c2cb4aaf208ea68ccd31fd7fc53afa217ad56400e0a4fe784703165be980ae38b3b564a21b0ec419b76cea7cd211d7af26a7bd088d3709ec247a52292646cca1080065d87c460eda267681072e8c6de1a8ad45f7bc171d33e937006255412bfc892dfc55ed7979747103d53dcc80bcc08a80738118f1d047c7d54a4a71fcaf3858157f908df3628f9e98f5582fd9a8e518b37dce526eb23ef736b85c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3edf53a2e812a7201ea2b605e060e4c43690b63d3c67929274e84f85adb64554380cc274429cc3c218e7e782adab5e836a081c731a7716aa02507b0c37b65846f2dc926850f65a80a9f77b89eb320c5fbeddf84bd2f57f4c89933001a567529d300101cef1ccbff4ddf7f5d9f0dd99a72be3cf34cc68fb9b04fed3299507966245fdcf8cffac082692b868cbdfaeaea9278fcf43a22a4d6c0f8250f0221aedc1324d071528f9f602b7403ab513e1b89a4ff01677199ad1b9d4081513285baeaa59a83a2d4f2c2a14530c38c3d8589c8fcd3cbc716f890391f5696e1ad6f6f76dd2b2fe251e51e3877555c53f7f35173798b98540c210efee7d5f46dac5835290d95a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd55416a3b2c3bf16d64f6b5b6d0f7b079df2267614dd6847fc2f3271b4409233c37b84161c9fbf7520cd14e7019f92120bd87a928a074156e91a992eba9fc9436e8f7f6a5894f1d19ddad6fa392b2ece2c5e578cbf7da4ea805b6885eb6985b6e3deac39be87f968fabacd1d5aae3b9f512d3a40115d8b8411dbd5825dd6e742f8647e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc0084dc4d9120fe7e468b0ed3361cab8cbd664d366f1fa01c4592339acb2fd1f1afb12eecaa8f4dfbbbe524fe78c09c3693572d32385235876922cf6a808ea8ddfd36498a2de405546200b6144da56fc25d0a3976ae688dbfccaca609c8b4480523e54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac6318c2734a56aefbb8d1df3ba5052fb8521d5d27075606c834652331751ef40466b3610a2a95dbe9b0484a450993843bb5f61e5fa49b5272807974022aff1cb7aa46a9911291401471412c002433e2dce3cb37545ffaa176f21fa5b5527897c54d524b53b17ae4876499e187da85f72e44b7107a5beccedcf346736a1ff4126a81f808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f45b1296ddc8ad75522382e2c3947cf7acc538710fcd331c06722c1e8f1916c6842144feeccc1c76fb383fed3754945aa126e81004f6434e014ff63c6fd9d4f795b8abaa3607ba1c354cf2f60b375820f629999e6c3a01b0e3232cd4cab99b3fdf3ec363b4e208c0e9739dd06acb0c7317378f64794b0e38b19e88f91d88422a02c4557b547fa58e95ea9ae9fa746e1904e1ababe1024c59e9e44f2b605539b79e939ff50851d672f9b378e80fb3bd0902213ed5e9c91e7319547e238b4e9d6e4d45a990cfbeac2d35833cc2f58c3626078441576ebc4b478d0ff5423d413b531fc2b4743a7cf593b50b948815f7f3e93a9f4a3f4e3fad8cffe74aff735bd2bfad9e44a3b11e45fb4f6c95350966052511e4c85426222b17a920d201b5d45964e6343b3a2a4672b6707d3aa764be81c694e7374e774ac29718df090cf0bf1f93cae2f191336379ff8df60835dd03b2d84c8975587831e6ba8903f6ebdb2673c296792bd144be2a2aaae9d3f9e29e55330c67616e0da83a00603055d13fe4f2254a21313046bf2e2750a1b65c10728a0ee83cc884375fa107e92eb4d65ca03f068ca22dffefccf594f410b8a9a79f441dee2d5ff268e2d4fe9c4f845c98b5de5dade8bb6e25530b745ce34091f6ce1b4e7f8eb094fa4ae1a6cbd855c342e591ee31253ff5c49122d66adcc1f29e901aed238674137ad547902f3289faf47aac29b65349b1113c0ef8b01901a56ca71e199dfdbdbb22ea755008a87675f610bbf0802fdc1d0a0f744478e0b656490fae2c15747c1682fc242a8bab3eb3d8b026ee96974f95a6e3ef660fd157da1c3eb968c3a9d5cc581157fd934daacb2c451bedec659f73fabaea5cc0625c8ac665fda1f129a4cf48a8bc820de34710261cc922ba8bf4d67a4e8a7f63affb20900cc8b22240400db5d65f94d9ee8a971a35ade94e0cfebe2f8baf64efed6a1aaabcff6b47c1ca3157b1e8330b5ad63d8f60956aec14ed1006c058f53824f12865b96a9e2c897c546324e44f61173e57e1ec87f178bb05745eccb5c47f4217a2697badd7cee808039edfd0c0be1034bc85602a760bffabd14219350bcf7bbade1dcd7c1e88bd1e128030fb29cbfe4a520301848180fd82558bab909522bcdc2efcc4608cdc0ac3af7dca521d9c67128ca68a638549002f47fe10d220e5726590a9fa97242d231277232766dae681122bccad4cdb3fed31a9e6b0528c55de4c54eb97261cdfe446497f703ee2ef9766944c0623327f827a4b3d448fb9df0cf4164e530056e873e018c3f31742e8ddb7df0a956a678cfbefe5a7de0bf7518797c745360fb8de7a73bb26707e5398899e5d7064b98f47c59fc64c8d36b9102d25dffee8ddc98031b8e874715365419f1446798351a02761a314ba741126b8bbb530b718d96c8ede0d05916b6441b554933bbecdebd434219a6bddc42eeac7093d1705f07950b5475f52e91ffd54ce44c9505d4bee9d8cac5766b39f998e3cc6f7f7587660b7f206e0b8ba5dbe4415d2a016ea5c948fa139209582107322612a930cfee2fab6c1ec0cce3ff0191625b6d91da31cbd157afb34938b8b9a3a19fee2e76e1bccd3f30cdc7ee1f39c1f06ad4e5fe1e33cfa280134a777c9abca1c35501d97c4750c1fffc75dfec30093b893e9c610aff4c0baf9558bd2818b41de7d8115ebb6354699070214d3e7b886ea109dc0a3da8db144673e3f8c872afb075c6c4b49707ee9786dec3c38cb9fa6990142c198eb0c27655b24942a0f068268468fe0c9be8f00a051f69a5d66554d5bffec9543e9059be80a285cf71306854100b1af886727117e8f78a5d9d3cd34fd53ad0ef4e7d56f3e4cf726afd9aee4c3d52a49db5942e0dadfdfdddcf7385880e652eedde7cb66c79689ef2915057fd59b9599ef143c8ad3797ec4400afa9226f7d130f51e6fa3384e03bf2b0ad67f7de69d1a7b7d2ebd28477d27b5d166dca1c31c03e1607af8d86a56452b97faad96d3d38904be727578ad6a0ad71db677e7269fa19ef740967697f31cb77bbce91956b0e8faa38758d106788bc636e82fa96ef9aa70f8728d73df53a2e812a7201ea2b605e060e4c43690b63d3c67929274e84f85adb64554384dc4d9120fe7e468b0ed3361cab8cbd664d366f1fa01c4592339acb2fd1f1afb12eecaa8f4dfbbbe524fe78c09c3693572d32385235876922cf6a808ea8ddfd36498a2de405546200b6144da56fc25d0a3976ae688dbfccaca609c8b4480523eb3610a2a95dbe9b0484a450993843bb5f61e5fa49b5272807974022aff1cb7aa524b53b17ae4876499e187da85f72e44b7107a5beccedcf346736a1ff4126a81e499ddd0af115291cb3c914f03a63df4f88e13671b2fe317d6efdcf6c25d1c771b075aaee3a553f0bd5563697c57e78742adb6a71f9a93ae577a8b0286b9dee9a4a6c40f7d9411408707bca05f818590f4edcc9b1ed4c03c8a62b5a70011dc592ff1d80ebde8a89c2e759b59b16aa29d1704100512107ddd60951242f88a449f6e00a7c698db044d75a66e9e7c327496013d29437f546b1005b218d86a8c23ade060fd13d0c2046072aca62e0534e2a89a94c67eea476d5e486166cf318c89beb48ca9120a674e5bd744ce270748479da7751c6e57bfde197854cfd53a509be888215bb7cf62337076972b98d6602d0d97ddd8c6c68c6e28e847e426f4c973d98d7b6e80f7ece8c8047844118035f5bb66e64a1c9bfc12e498614a25bfe7ef57b5c2802d6ea379be12fb8d8b65b2addb203da7642d010fbcbf263e9b56e8c8cf0c8977d0d36063e980af441351ab28f5904c2cd709b2b124f7ff3b3424768bd3b7728e9d9ae16345367b6ec0abcfa5a158f451165e0a26eab077dcf7a10b3bf0b992c68df488729261b6827e1af27cffa3cd778b274b2790564e375e1576df15fe6af84cef4a39a777bab280b7c269a07472182eb5994e04d961b7dd3410dd297165fbeee710b8515b9be221fd84a3ecd7c0cbefd2e2efd6ab2c8d5c76a3ad72fcc61d650bd341a3ddafa3144392a93c5d64b79da7025fa9fd7bfcc0a0c5b1ce719dafe98328ea67a17a7fea3cae770ca55f4f5e62649f0c27d96c779dfd1e4123909be8e258ba6e2e73d8472b5494f22fdf49adff33e57c1e5043345c4a06ebfe75210b0ef4c965ee41eba394cca7ff6e9248d4f0113f3f26346151abda9b25095f49aa268d44fa762d38ca7ef6d6d5137dfbe2df9941b9c9bf0b7e7ddf7e69d580173d5c8ca65d5dc189b9af8eec990ee73a7581ce85202b03a7dd717e768faf1f3fbb648ead66d11f20fabca04cd3a5585c96a8eb110b9beda145aa3b013abd08904c6ddb7520a9c033ef4d1d8c59b57cac730b11fb569ea1d5c96f4245ed8b4d9ab11c15deb22837a21f386e573b6cffaeb17064133128735c075ebad76fe90730fb292d1475cd2eaa0d88932fc2e574a1b60d77bec92c4192d234820081c2bc91d64fbdd35079c8c6d454e4c90993fd31b9f5ee785990253d43afc4f5b45a7c6ad18fed742d7fabbcef30f5c138174e02312157420dbc09217f677a7274e6c464c03403a399d0d01a5be695b5dbdef584bfc7f4c25279239620e068971f4b66150c6eb1f1b4b83e6e4cd524c6ee246f1277c1cbcaa6d59dcd9c1f9c289116b6293380466c7c121bb9d7ca1255a0b74aab51b4b6b98d95718772edc4b66df230cf27cd8c76e8a9c79c7251ed0d7959273702fba8deafdb8d6f704a22845d52b267c8cb7af746993cf3e07037587a87f648b7bce16f03d7e654f8a460aa99e87c89b681cce5102e843efd6aa0932158c4c15caf473f6ab604368a935dde63b5770145996a1b2cc2ced4e0be4232e0e71da6cc47b6a721a9c05b52992cc4499448b19a3be6ea189ce492224d9c4ddfbe4a3493d2c7d81c70392b9b5b4a7fe62de1970f58b0c313805a99a06120c859ba777ccafa6c502c7fcd14e5c8439e79e69c7e0ccbc633a2b9ace9ed2705f9fc4d764b9f288d483f1d6c126775d4e83d3bf42872c1a18850086bfe88bc6829397c5a18f6f94b400daf32a5e91bfb35871369428cfd0f41042844c4c74d93d2cd82d0b399319f61257ce6ae17f7f64035c1fdd6e64fc36986517d17dcc385f08d9b7060e640d1ace7c185ef5f7e4095a1ebcdb4a88bfc52bd03585f4886357803f8809fbebb0823614309e7727f919f8ede6fe71e2fc72a2edc318478c257e7b71aa30b77d5961525cfb394f09d53078e0f409e41323989341e4ef6f78d81d50810da0be90afb46c5b175144a258fd60142b989397a2377190445e2fddc625ea7972428f2a8647aa9643224838a04abdb4f33919fbe6f3374052bdb8f3ad1ad9df075e3272bf669036c2dadaec9cc27878db1c386092127b4bfab702e7beffdf4713dcaf86b1559b9dd965054859d6e59f0b3094006c9f509c15d17a9e112b3dfd86c614f412bd88f71107cc9f3ffd4e4753c7a0b6efc82901397a79a8a073e0c198b4547107b5cff20e8d613ba848c6ccab1d251e14980e98182eb26ffebedfb088e52db4e7f01ae20e8aff68039e37086058dc88bbe3bee5ce9933137c0a180aeeee3f7c6b10f2aa2182988d6975a1cd85c83cda152ae75ed2f064482124529ab01acc80272f410dc53237707137d23ef52c94f10a7cfca85f765993b454cb5d6becb30fdfb3e27eb87f6544ac348b0ae0840cff131305d43846988aa9026eb8da56db61bf0631b6ba2d2c269cc499d736bb22ec92c1148891cf259630243f168f32b8100e40bffad68805bf5abffae16e36b23f2d6e415a6888b9257ff0b41d69146d33895e3f3d35b982caf0f70bca3754770606f8ca7abc6c3c782f321d00ef2d562ebbd6a47dedc40cc03d5581772bac98a18d9806bc2a4ba4d71aa743b7a28685de80897ee94196b8377b37164d1407a57edc32b9320342e1c551c328535f408da12b6ac06e2a9e4f2ecc9844b231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564cf05eb7f2ff758663ce0f62e32c6ba7cc3c0d569c65d584053948060652663856f05eb7f2ff758663ce0f62e32c6ba7cc3c0d569c65d5840539480606526638563d20991344438fc3a0b85f007d92f9a5abca795824abf9823c88c8e4e8dc61ff3d20991344438fc3a0b85f007d92f9a5abca795824abf9823c88c8e4e8dc61ff8c6cc06f0f5af93155fd1cd8ad3dd9d442c3f4cd0d289ddc039a044d0a7eb39a8c6cc06f0f5af93155fd1cd8ad3dd9d442c3f4cd0d289ddc039a044d0a7eb39a5956f9d22f9d160fc5cb7c3c51b959785c045d1f855b6b333f9b0d6077241ca65956f9d22f9d160fc5cb7c3c51b959785c045d1f855b6b333f9b0d6077241ca6b2b243813f46bf0a85053418c6077a982648db34dd62dae5039cbb1184d2f347b2b243813f46bf0a85053418c6077a982648db34dd62dae5039cbb1184d2f3477b433d32baae04ce61c6afbad84895cf2b07bdd34205b000a4300e2bfd4f3f81390f841e7dc9cc1779eade1714eefa8e62ef1b55ca790a361f42ce51173924f90e41af7b5577d7426c7dfdcc25307682a911ebf26a6bc8841038e5af68fe84b9c113f3b9b586c1e1fcc05b2a3020e727811705806796f66eb683a5943162ac689723f6d65783642310dc106b23e44ba0633dfbf7ebb1ea466bfbb43d49cea7b06615a0416d022037964ef93a7351ce6605925adee0dbb5d5b174ed46d1dd2954b64206cbb72c782fa4fe8e7e79a2548a33ea8f7e0225de250dff0601e70c09e34c65a832e30dee09026b43462b1b49c5959e104b573f623051dc161986a48c5ccb6df26702af1924940ba8be3c8963c7ecccb8d20f175173f0d08d50199038fcb5f8cd26650fd5024dee8d832b56805948dc1de9eec58d5dfcc1eb6c35e27e35dc80c5a0e0a2ca36e8a6f4913c49c213fd0856a37968b0fde1b6488feb8d53d057565202aef2ac171f1547bb39d041c6dcf663acb81416708a2d9af1390c05d05873aa655a5d7db29ebcb438622e9231d4613e63e5cc3c3ecc8a69e631238b642512f465c6ed60ce953064c86d1f8c5758f0bc223f4f9e640c4e669dc7276a9f46bbfa66ecf96074cdae591f81a707f1a027de21b678736ea65e4730b40c5733a1f3f27763bf22972a82dde3ea92851473d5cfe4703dec2ba3224dcc76c77583c223f524ee54b444dbcc1727c9c5cf538c69f6dfb70697547126d736efb016807e6323f4ea77fb392cbd0fd4b3156741df6c31e297dadffb3e7cf0a6cdab6e3ac07ed1389104308b973656fc9b6e1b990df13ad0f07bf8a946bcfce30b64fa11e40b43116f70ce1d2e246c3494768935d8f97565f2d8ad662dc7bfd8f2027af3b8ab5512124d358f045e2058f2367ff958d87e1db391efee06c62bc9fbf69ddeaa2873f0437a260e186d61508c1fc7330744e852e278b9718149b54a5431ea30687bc187ff4cbf995c85379ec12cd4844f31d2e5e46f8fcb93a451c2abb19fddc990e11f9c4da2c1a765ca1f40efbd2009e8d58219fde29b9746c72f10a120332db8c37d346bca9ab41f1dc34a8f8d75f81c30e707311c4c36b9531e2ebcb79e4d2d8867165fcadc4f55c0e9a7da994e0c11ade0ccf759ddd628dd26f4abf603d81568b7aff9fc2eddaadb54c10da5325f5e871e2e461ce4f94a90d9e1398d2e5cc9850ec14be8662b9826b5285d46fb96ba57451953caf51b4c614f3e1ebfe1a7fa867a4f09648b73966ada37487ad7ae68466d3052cbf8a19c8692130bd1772b2a4a3becc24189b8700ff642966db65c4d96b7f7a2398c4205bb841142639271d2dbfae3d0522109b1de203a84f46ccd13b2531a68ef415618f1172cd384fbced778f318fc483f8e0f19435dec33e5fa2abdf26b1d088916f072f6586478aec139e72085865acc9534063fab58f6b4706cc7e505500a7e7dbbe1518f0b055ef0b7de8d4054093df0f6c6df17839af8b96888a7af170429dfa7136fe88ef31770a7aacd034d0621ac775cd8c3609340c8246a446f379f9938aa7998563a1c87be421dafccdb9ca1f6bbcafc1003a3bb03c18a8d3acb4c5c521b6cf029bd688772e17cc9f67c15301481dd62a6d25c1d67964521eed8513b94e5ad8edc354090df8a20cc2c838239772f1d26d193d049b7ca9df242abf5784506b87b402f9c6817514e84e588a7f1bd8a5fcc1b7537b739a08313a338161f5b89006e11d16bc3a3fb787d959ec31f56641bfd3be1baf47898a63124e3ccf04b9720c6b11ad8ecc7f2abaea187fbe7e6cb4b72f9cdf73441f01cd080ad4959f544120d34d16df7d57d328eea1a18aa424ecc55b01664f6f1d4e431e9c8a2436312c7e1c44e8dc42de861811db84a3427e0cde79d3df56b74ff0f1501b98028d887b3407f4d3179888310913a62139f9fec8f436d911fb2526b7c988e1a25842e58bc091e31011c006528c932a3ebea0d86bd9d294d17314aac06d0e7e1432d888c602967e192599330ef179fddaca7ef2eb4dd4eddffd1f6c07496365b5143eb90fd0879df7f3372ed3c92d1d79936f8916ce450409c2ddb074b781e6eca6770cae89107c071f5ad66985514917fc3b3ffd0f66723edaf7f9a57e86e680fdf90329745c5d72dac37485aed94225572a9f1df13909aa484b7b2599d5f98a857b74b1be80f30645019745579d04cb9b4492ddb26ee296ffe3b19d60cb2a0d79f3d86623bab69e15a2146b78afc577ae08f9567d0766cbbbdd1b27ee749fbe56cbe30c8e0be053aa0bbfd75e79afac055a903302a0deedf161cfc3cade9346c88f8a4ece154a4b5e9c7f12917704c79a316e63ae034d99182606dc210951721fc3a02097e088f25a96b848c2edc395bf102a05b43c3d8f9bb2020a5ebbf7417488bc257c2e68c47ef5503a7cbf879a198e4f053f252d05d034be782c328e6d14c74e56a092113bc64261c36e221b091a29080ec7f99846b51edb6139332ab0c446f9586643dfe3180d7ed90387c78ad6670de24a3384743b9b5245529d1e8a88579779632220ae585ffafa387ac9bae133d55609070646882fdb30a4703557868d98ead5d47b2790212b668435d08afc0624832793cc600567d302e71c66d51de9c38369991bd0b94c5686a8ad0a4ff8174084e6f63fa1802564f840f6b9ea1c0c8df4daf4fe75e90b3a104adfc982f8ab9e771d5681e753be507723f8503cbf4fd63dead9907186378f8f319c12f00b917bc1a2afd6a8f05f6f224fed29941c1e726e9ee60c44136c9bff30f7e5c552b67eceef9d0f381e5196fb98f0782b110ddb6d3338f54460047ddd0c05bf48d244878bd5ad00d5a1c58a4ae3ffa5bc61143a9c53ce91c14691078ebf666ef047229ea7498bf8f63094c51e481d146c3549bd366f89020cda6e37b18098905f3f68ac09d79abd4592a563400bcb44dbc6c4b33b9f5243058f584c3f3a82c144e957b395aaf54a1f50cde6b5667abb5c2d23d1dacad65c230d22e71386fa3956420dfc2fdbe26c4d536dcaa85cb76f1dc151a08dd85a318dd4040782dc60313b93a4171677d620a4ea799159648c2fb2fc58587c6c1214c0e0a6912628db182b9bcaf747c6a4fd5b4f9cf48b18955f2a659cd4e3cc0542dd0d8b6516ba23b3def86ffe12b38e7a60a991c731cda261d6ebda45697f2c5769f3d6bb3d65967e673536ea1e34a50f422b89490e10bbbcf799aa847d952d9f7979d3d0f6aafcae0bbc7ae8e93223c0e1bba0c5dbc7f62149bcde85cbb6c5fd38e7282890312ab0e313399583e6e0ea9e05164e2a08613eb23b93a38feca24b7179124a38f32d89b0b4c04ec35e7205d0a4ecf872d5955a52d4bcb8b4a6a35540d4d24a38f32d89b0b4c04ec35e7205d0a4ecf872d5955a52d4bcb8b4a6a35540d4d0ec5145ea6df2dd108f75e9a4c287a0a04483f96cc7735f0733ca11a5b45df040ec5145ea6df2dd108f75e9a4c287a0a04483f96cc7735f0733ca11a5b45df04192a2fad17a44753df81293edfe5f29b06354a93aa4f6db261acf9e7037d8376192a2fad17a44753df81293edfe5f29b06354a93aa4f6db261acf9e7037d8376c902e8db1dd3c154dfa07d4f9027d3f61498a6ea7e86edf9a3a4837ea0f974ffc902e8db1dd3c154dfa07d4f9027d3f61498a6ea7e86edf9a3a4837ea0f974ff9bd594c6cfa9ebcb40c1596f04999f6da30553b231df7a0ba4fb972bc42f01599bd594c6cfa9ebcb40c1596f04999f6da30553b231df7a0ba4fb972bc42f0159c602d895717a8a3a33bd7cfd6014172c759861d6ac652c9dd94dfb83cb66f048c602d895717a8a3a33bd7cfd6014172c759861d6ac652c9dd94dfb83cb66f0487f409f8752df42952a456cf0ca988469f3af5d20c9e4b54edc00c5595f39f88c7f409f8752df42952a456cf0ca988469f3af5d20c9e4b54edc00c5595f39f88c20e72ccd1895680166fe4d43fa490b93f62d72e9492c56bc7ea270c48422e9ff20e72ccd1895680166fe4d43fa490b93f62d72e9492c56bc7ea270c48422e9ffea31a39203d7f73439bfc72ed94f1fb3d2b88ece9201636f45e69c7f0a8ed4afea31a39203d7f73439bfc72ed94f1fb3d2b88ece9201636f45e69c7f0a8ed4af4cc8c2849db21c3931b6d7c0c636773db8e14a1d6eaf89cce8c62c035066e9614cc8c2849db21c3931b6d7c0c636773db8e14a1d6eaf89cce8c62c035066e961dd2bcfb0161bc5ce4127ae95b2b963f494a3af0984d9f689d4b2e84786867b63dd2bcfb0161bc5ce4127ae95b2b963f494a3af0984d9f689d4b2e84786867b63d236186b2734dea352e65ee53cf8600404d5cfa731c5193bf3b518412897351cd236186b2734dea352e65ee53cf8600404d5cfa731c5193bf3b518412897351c5fabfb47e16c778e0cb004f8aee72c3c0442fc014d2685f87bc487b76f70c3e65fabfb47e16c778e0cb004f8aee72c3c0442fc014d2685f87bc487b76f70c3e602ed676dffbaaadfff5c37a3b7bcbb508d868798f373c41dbecebcd6138b1afa02ed676dffbaaadfff5c37a3b7bcbb508d868798f373c41dbecebcd6138b1afa4160aa566a6c9a411fd8f2f9f156dd7a4bf48aa3d7667a60b5d00d1dd4852f1f4160aa566a6c9a411fd8f2f9f156dd7a4bf48aa3d7667a60b5d00d1dd4852f1f6ab212b4b105dfed86bf23bd7d16b28a2d3951e1d5347a4264e8d74fb36133196ab212b4b105dfed86bf23bd7d16b28a2d3951e1d5347a4264e8d74fb3613319bd21e139d678e39e1f43060a3cd3389d9ced518780e6b59b0941246e5548cf0fbd21e139d678e39e1f43060a3cd3389d9ced518780e6b59b0941246e5548cf0f3c91d7609c12974bc18d415d1e8d3faeebe77eaa52ac3b39e87baf5966853a4d3c91d7609c12974bc18d415d1e8d3faeebe77eaa52ac3b39e87baf5966853a4d30a04bbe0a3f57d1dc5c71a69776c4104a8c0a37bf66904f4153b1d24b4e28ab30a04bbe0a3f57d1dc5c71a69776c4104a8c0a37bf66904f4153b1d24b4e28ab86195b14541dad37b737a26c9ce856c55a80e52174cc0c3732c73d525e65b9a686195b14541dad37b737a26c9ce856c55a80e52174cc0c3732c73d525e65b9a6b427ad45e91cc30c36e66192248a3c4c28938ff33602f0bc10270b3c24f8f9b7b427ad45e91cc30c36e66192248a3c4c28938ff33602f0bc10270b3c24f8f9b7ea5f1d286b32d400094fde2c59fc97bd474826cbed8df955de40130f0540ce9bea5f1d286b32d400094fde2c59fc97bd474826cbed8df955de40130f0540ce9be4daca8cef953cbf74a41e39fb6a6aafebfb839c154a18b6f48a468735f0aba6e4daca8cef953cbf74a41e39fb6a6aafebfb839c154a18b6f48a468735f0aba69c1fc991d057ee45a6735db8f7aa37baa52252438e652eb8c124082db28014019c1fc991d057ee45a6735db8f7aa37baa52252438e652eb8c124082db2801401e1e3839faf43ff93669e2d68318d6e968ff7d5f8688cb923bc7af0bb20aad613e1e3839faf43ff93669e2d68318d6e968ff7d5f8688cb923bc7af0bb20aad61344506e4a0fc4254c7e48c025a53e76428f793ec841e6d277c0743ce1bc7f100944506e4a0fc4254c7e48c025a53e76428f793ec841e6d277c0743ce1bc7f10092e1c99bdd672bae9a6e4d0ecb29f05ff6d7df5376a4068ad17d29a07808678032e1c99bdd672bae9a6e4d0ecb29f05ff6d7df5376a4068ad17d29a07808678039a41e2821df3e4fc616cc2fa54fafbbf8652785b0047a6b92534284460ac13709a41e2821df3e4fc616cc2fa54fafbbf8652785b0047a6b92534284460ac13709f4025c0368b8a639baf7c9559915ef9a10e25e867a25fe37a0365935a6ba7d59f4025c0368b8a639baf7c9559915ef9a10e25e867a25fe37a0365935a6ba7d500c04acc74d36fb5b8ba8994c6445ab0b6a4caaf1c028ef365034c03bde840ac00c04acc74d36fb5b8ba8994c6445ab0b6a4caaf1c028ef365034c03bde840ac0ff539f92db039283102b4e4bcfde6f1015f4a4c3b1b48c5b16f2b2765cf89350ff539f92db039283102b4e4bcfde6f1015f4a4c3b1b48c5b16f2b2765cf89351b0b05eeb881d91ef2c3880bc49baaeaffcbf4bc0b82ab10a399136ae330e7171b0b05eeb881d91ef2c3880bc49baaeaffcbf4bc0b82ab10a399136ae330e717c806a15e49bb33f5a763fd9e0ab24bc3b22aa65a114cf9f6020ffcdeb252d991c806a15e49bb33f5a763fd9e0ab24bc3b22aa65a114cf9f6020ffcdeb252d991deba37e50276f782416815ce4ec7e02780defe02c8c9ea14d856b4a5477bb66edeba37e50276f782416815ce4ec7e02780defe02c8c9ea14d856b4a5477bb66e85638981c8d230f708edd0dfd858f95a4b2f60d0b12c66f2ab6f5f0546e4421985638981c8d230f708edd0dfd858f95a4b2f60d0b12c66f2ab6f5f0546e442195cbbc9e8f965bf58a49303aa48c3845bee8a1f4d196023b8d100667a00ece4e15cbbc9e8f965bf58a49303aa48c3845bee8a1f4d196023b8d100667a00ece4e1ac0398b0fc3da275cacebecc8384b380aafc4cbaea94918820d1478d34c0ff95ac0398b0fc3da275cacebecc8384b380aafc4cbaea94918820d1478d34c0ff95142d85a9be1f59d46b4dac452017c9c184940e9c1a4772c9ffd95faea1ca206f142d85a9be1f59d46b4dac452017c9c184940e9c1a4772c9ffd95faea1ca206fcbba6df46cfdc06f44cb13047b5143cb3aa6437da81979d48777156826909bb1cbba6df46cfdc06f44cb13047b5143cb3aa6437da81979d48777156826909bb15ca55a8922442c2f50d2ba8ef8bc5df32392f9f13cd60a5355f7d2020994695e5ca55a8922442c2f50d2ba8ef8bc5df32392f9f13cd60a5355f7d2020994695e0556b02934c5c6f9a35c5da392effcf02cd6bce1a590c969a2622e91e07ed9b00556b02934c5c6f9a35c5da392effcf02cd6bce1a590c969a2622e91e07ed9b0c302020ef71cb91a51bbbccec4eb0902e3a643d8a16991ef51dacc0bc0929059c302020ef71cb91a51bbbccec4eb0902e3a643d8a16991ef51dacc0bc0929059cf00c5679a8b80b1a666e357507671df6bfe5ef078a302178bf5c5b0a2f5302bcf00c5679a8b80b1a666e357507671df6bfe5ef078a302178bf5c5b0a2f5302b4fa9eec88146218f1a949829b08d5e9e4afc756e4eeb06908ac2f0ab5f3a377f4fa9eec88146218f1a949829b08d5e9e4afc756e4eeb06908ac2f0ab5f3a377fa568e2b05cdb0037a3ba8d1138a0cef7031f6a0d5ae1ced9c0aed053c1ade49ea568e2b05cdb0037a3ba8d1138a0cef7031f6a0d5ae1ced9c0aed053c1ade49ebff648363c4536ec8951d57efcb70804f11c63f00817d9e09376ff781e183151bff648363c4536ec8951d57efcb70804f11c63f00817d9e09376ff781e18315137f23210f7aa1f9ff21d7e64a3aeaa9272984becc6febb2d5362aaf3370b541837f23210f7aa1f9ff21d7e64a3aeaa9272984becc6febb2d5362aaf3370b541850d39725954715be1e24ba3d5d17f1f6c30cd06731aeb38b5521e351e2d90c8750d39725954715be1e24ba3d5d17f1f6c30cd06731aeb38b5521e351e2d90c87e1b721f5b222cbde8869365f3bd24add1473eb9c195fd42701b1049bb9fc414fe1b721f5b222cbde8869365f3bd24add1473eb9c195fd42701b1049bb9fc414fdeaee6d7a6d751440b8f3c8ff0e99dd07871db772bce2eadb254d0219d8a0cf8deaee6d7a6d751440b8f3c8ff0e99dd07871db772bce2eadb254d0219d8a0cf864cdc932ee93e5c4c58bb94c2ef5d62761db1da55ec033ba524aa6905735215264cdc932ee93e5c4c58bb94c2ef5d62761db1da55ec033ba524aa690573521526620fdc2813b39963e038a6517f17a427021b84199397706c57fd2aa847bf7a16620fdc2813b39963e038a6517f17a427021b84199397706c57fd2aa847bf7a1cc5edd5077681e35a0b8c6441bdc50ffa5a3d89299653eacb1a6c36f04a9982ecc5edd5077681e35a0b8c6441bdc50ffa5a3d89299653eacb1a6c36f04a9982ec12dc3d2c86d134052938ee7952ee08bf3a90e8dd26ea443a1d6bdd9581cc140c12dc3d2c86d134052938ee7952ee08bf3a90e8dd26ea443a1d6bdd9581cc14017b321f9bde1ca047cea3fe6b863da86605d064bc08a660c84ab38fdaf801ad017b321f9bde1ca047cea3fe6b863da86605d064bc08a660c84ab38fdaf801ad03d8ff6b342e19af759925cc4444cf9d4b0e5bef25abfc6df5f4e401af96bcab93d8ff6b342e19af759925cc4444cf9d4b0e5bef25abfc6df5f4e401af96bcab964ba81c7dd64654ae9fdb052f5a4aa7449bf40ec112d64e46101ce9dc919386d64ba81c7dd64654ae9fdb052f5a4aa7449bf40ec112d64e46101ce9dc919386dbb04bae790d8d464651877ed5f224b93dc3a59d1b41fdd4f8b45dab9ac93230fbb04bae790d8d464651877ed5f224b93dc3a59d1b41fdd4f8b45dab9ac93230f2736e34b8d6ac5b21da2ea9326c262237bc739458f45875f709867a860e8438f2736e34b8d6ac5b21da2ea9326c262237bc739458f45875f709867a860e8438f848a62f0381f49dbae925f1d83f0884a97896f532f04cd5bbdf7b4d43564db95848a62f0381f49dbae925f1d83f0884a97896f532f04cd5bbdf7b4d43564db95f4e960a4d97173c3370be994d017ecb6b7d25bd1289a4f4c21bffac80e92492df4e960a4d97173c3370be994d017ecb6b7d25bd1289a4f4c21bffac80e92492d92b7896ee7847ff74b8b59207c487c780bb3ed16fadbaa23e9ec9e71df9394a792b7896ee7847ff74b8b59207c487c780bb3ed16fadbaa23e9ec9e71df9394a78522bb791df85c2181c276d6e617aae4debeca04cf56b559faa27ca6a71741258522bb791df85c2181c276d6e617aae4debeca04cf56b559faa27ca6a7174125b36bb6bd6cd113df5320486545f739704b97c1b813b6354dd022a91ad26c1ad4b36bb6bd6cd113df5320486545f739704b97c1b813b6354dd022a91ad26c1ad48d22d8bd1cfe1f967f3799c4e26912e79d0e121dde49125732f3bf608f65d9e68d22d8bd1cfe1f967f3799c4e26912e79d0e121dde49125732f3bf608f65d9e641e1a2de32cee1718eaedb0dc88e60075ba2c93ab9c8166afe65c6f645ed50b941e1a2de32cee1718eaedb0dc88e60075ba2c93ab9c8166afe65c6f645ed50b941dca7a969ff29855db65d0a136e5b8889f1164a67bbdf80e5c3ba92c5a4f09541dca7a969ff29855db65d0a136e5b8889f1164a67bbdf80e5c3ba92c5a4f095056b680809c2a52858f5d672fca1070b54ccc12b725bd4c784c9033948a33109056b680809c2a52858f5d672fca1070b54ccc12b725bd4c784c9033948a33109824a6eaa5c5b3ce7afbe89623180ce25217eb87dda0445281d1130f1b3e9a7c4824a6eaa5c5b3ce7afbe89623180ce25217eb87dda0445281d1130f1b3e9a7c47a3bd32be2f3fe4fabb6001aa8d9d8a62c0049761f0ad6929577454d7da1175a7a3bd32be2f3fe4fabb6001aa8d9d8a62c0049761f0ad6929577454d7da1175a7fe4cb7293176c7eb929286f55a5b3d697ec644d74b3cb74c6c1fdd3811d6a1f7fe4cb7293176c7eb929286f55a5b3d697ec644d74b3cb74c6c1fdd3811d6a1f858a0144f7e9dc8c6e02faca8d889a9819d88b94a90deb09d1cfb7c30d235f31858a0144f7e9dc8c6e02faca8d889a9819d88b94a90deb09d1cfb7c30d235f3190875988cc1712816aa557d60501819419e824559bd8eb0d6c066910b6d9a23390875988cc1712816aa557d60501819419e824559bd8eb0d6c066910b6d9a233b1948d4fe0413d3fbad216483d32c2f3c9b1dfd22fc2fee55307ee88df9f87d2b1948d4fe0413d3fbad216483d32c2f3c9b1dfd22fc2fee55307ee88df9f87d2453f737af5d5dbe59b3c38b690c86dc14a8951e76a07473f64c8c7aadf7b488f453f737af5d5dbe59b3c38b690c86dc14a8951e76a07473f64c8c7aadf7b488fc157ce0743e788e133c3a0e443a76d95ba2d59a1fe9e0db862c504e4f9c1b910c157ce0743e788e133c3a0e443a76d95ba2d59a1fe9e0db862c504e4f9c1b910c00e291fcdbd97efb8a74c97da0e36646edf2e82d4559648e9336667b80689a6c00e291fcdbd97efb8a74c97da0e36646edf2e82d4559648e9336667b80689a6757aa348790c3f290966ce89dd90ca8ef8620720b0f09cb5fcf07ba9661a0558757aa348790c3f290966ce89dd90ca8ef8620720b0f09cb5fcf07ba9661a05589f31cc313ed1016f79ec9af028428d32dcafcde97e9ebd04d32c1ba81caf4b3c9f31cc313ed1016f79ec9af028428d32dcafcde97e9ebd04d32c1ba81caf4b3c5ed69c2250e0990a55511618e0ad6662c641c212936e75288f1679acb9c607a05ed69c2250e0990a55511618e0ad6662c641c212936e75288f1679acb9c607a03fb975efad356d9ad6ba3f4d799140d4a41fcb2416812228cd9d4083e7cb50b63fb975efad356d9ad6ba3f4d799140d4a41fcb2416812228cd9d4083e7cb50b60f9eb4a8e151d7b588b08a2286ae2a16e717083b934a09be7a3d507be53eb0280f9eb4a8e151d7b588b08a2286ae2a16e717083b934a09be7a3d507be53eb028c32a776aed09bddfe1f20a95a696699defeba6897c3017c3a53eec6e107599ffc32a776aed09bddfe1f20a95a696699defeba6897c3017c3a53eec6e107599ffabcffe4ad63cbc4d06c91c4eeb88d878bd484527a3f8b437c499bcc62b571048abcffe4ad63cbc4d06c91c4eeb88d878bd484527a3f8b437c499bcc62b5710480cb34a097cb2c8febbb0c2f75a6ef0923bbb81b4f81a49c20fc1649fb2903cd90cb34a097cb2c8febbb0c2f75a6ef0923bbb81b4f81a49c20fc1649fb2903cd9bdbb6a356bf5a04f2a08bd627edc39c8dcb62b1609870d7d02ec16788635e166bdbb6a356bf5a04f2a08bd627edc39c8dcb62b1609870d7d02ec16788635e16622fce4136b5188fc25a8e35be2f70c92101e2ffa10d508e63f918bf70c0b3dea22fce4136b5188fc25a8e35be2f70c92101e2ffa10d508e63f918bf70c0b3dea195005c8f296fe83cc10604bc9cd1f69cfc33fb9399e2692ada828766c6e847382f034f2ae9f6ca23e9bb881439d559371317cb113d95588d464cfd98de53294df25067cbc254edbda9e8f88a7f243ab25a83d5825501a338a225d14e7707bd843651f5374f10214a3c4dcbad3ea78cb67d1684d6f84b58b6d52f0c214b87e4626abf226182547a2805528b04c98d4e3d6961a58daffceed9a43c50d34ce2e9f4c4ad078b4985beb9a8253602694913edfb32d8eddaa06f2dd081d42df4fff0284719e149c632317b0dd5fc8ece60b747b8012be6a1168ba9c75abd3206358dee806f6921fb0cdf5cea11b465354db236cf066bf8dc658894d5b99ea233e83da94baf11381e2da6ba406a6f159b9d2da921c28e1dba06599f846b8eda6c7a1acf81cdc92f4283fc02925f6eda34e3d28fc9126ab5b577ddc90c0c0be9186f467268f5f073604578d67d23e453c3e865356d4a95be341d2b66532cef3b19aee40ed3f5d9b1d40789f7db7d58a4150a517ffa20b9e32cac5a86e4c9287dd117951c52704611e3412aebdf2a80a60c026815e3b0a75cef0d8c147fd22254567e075727584ab741b84e959d4e05113a8a8d67783e1c81bb340e96e05b0e39d48f74a9d1c36043445a53aeca2b3356f74440c5675151a57647a393c33c6f25e6fa203ee132ca2d5709f1920a6fb3d12e85d7ada969a1ffc6c4de02cbf9952de6ca421e5ec1b83fe0523c873c6bd94d055ae0a71472530124e94bf1bd623df0c91e50ab6b6bea267b44733d010288a84d89db5848ca4dc7297014c32f2cde1265cf8b8f294bb7c18c53879f849478029efd98afa1f07819b1e1eeaf6cc766e7da89470hookrunnerhookrunnerrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpagure-5.13.3-2.el8.src.rpmconfig(pagure)pagurepython3.6dist(pagure)python3dist(pagure) @@ @@@@@@@@@@@@@@@@@@@@ @@@@@@@@ @@@     /bin/sh/bin/sh/bin/sh/bin/sh/usr/bin/python3.6config(pagure)git-coreopensshpython(abi)python3.6dist(alembic)python3.6dist(arrow)python3.6dist(bcrypt)python3.6dist(binaryornot)python3.6dist(bleach)python3.6dist(blinker)python3.6dist(celery)python3.6dist(chardet)python3.6dist(cryptography)python3.6dist(docutils)python3.6dist(email-validator)python3.6dist(flask)python3.6dist(flask-wtf)python3.6dist(kitchen)python3.6dist(markdown)python3.6dist(munch)python3.6dist(pillow)python3.6dist(psutil)python3.6dist(pygit2)python3.6dist(python-openid-cla)python3.6dist(python-openid-teams)python3.6dist(python3-openid)python3.6dist(redis)python3.6dist(requests)python3.6dist(setuptools)python3.6dist(six)python3.6dist(sqlalchemy)python3.6dist(straight.plugin)python3.6dist(whitenoise)python3.6dist(wtforms)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)5.13.3-2.el87.43.60.26.00.83.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3aB@aB@aB@`]``lM@`>(`%@``@___l@_2@_)M_ @^K^?@^J^^^^2^2^2^2^2^@^{G^1s]]]]Z@]P@]P@]9\@\\o@\T4\3?@\3?@\@[G[;@[@[@[i@[i@[[@[\Z[W[H@Z@Z|;Z;@ZOYJY@YyYu@Yu@XۡXXXXa@W.@W@W@WW@W{@WN@WM|WH6W5W@W@VՄ@V͛@VIV=@VHV@Vn@V\:@V\:@VO @VEV@V@V@VVf@Vf@Vf@UU@UĝUU@UUUUUUzUq@Uq@Uq@UmUhTUeU_@U\w@U[%U[%US - 5.13.3-2Neal Gompa - 5.13.3-1Neal Gompa - 5.13.2-6Fedora Release Engineering - 5.13.2-5Python Maint - 5.13.2-4Pierre-Yves Chibon - 5.13.2-3Zbigniew Jędrzejewski-Szmek - 5.13.2-2Neal Gompa - 5.13.2-1Neal Gompa - 5.13.1-1Fedora Release Engineering - 5.12-3Neal Gompa - 5.12-2Neal Gompa - 5.12-1Neal Gompa - 5.11.3-2Neal Gompa - 5.11.3-1Neal Gompa - 5.11.2-1Fedora Release Engineering - 5.10.0-12Neal Gompa - 5.10.0-11Neal Gompa - 5.10.0-10Neal Gompa - 5.10.0-9Miro Hrončok - 5.10.0-8Neal Gompa - 5.10.0-7Neal Gompa - 5.10.0-6Neal Gompa - 5.10.0-5Neal Gompa - 5.10.0-4Neal Gompa - 5.10.0-3Neal Gompa - 5.10.0-2Neal Gompa - 5.10.0-1Neal Gompa - 5.9.1-1Neal Gompa - 5.9.0-1Fedora Release Engineering - 5.8.1-2Neal Gompa - 5.8.1-1Neal Gompa - 5.8-1Miro Hrončok - 5.7.4-4Miro Hrončok - 5.7.4-3Neal Gompa - 5.7.4-2Neal Gompa - 5.7.4-1Fedora Release Engineering - 5.5-2Neal Gompa - 5.5-1Neal Gompa - 5.4-1Neal Gompa - 5.3-1Fedora Release Engineering - 5.2-3Neal Gompa - 5.2-2Neal Gompa - 5.2-1Neal Gompa - 5.1.4-2Neal Gompa - 5.1.4-1Neal Gompa - 5.1.3-1Neal Gompa - 5.1.1-1Neal Gompa - 5.1-1Neal Gompa - 5.0.1-2Neal Gompa - 5.0.1-1Neal Gompa - 5.0-1Neal Gompa - 4.93.0-1Igor Gnatenko - 4.0.4-2Neal Gompa - 4.0.4-1Fedora Release Engineering - 3.13.2-4Iryna Shcherbina - 3.13.2-3Fedora Release Engineering - 3.13.2-2Pierre-Yves Chibon - 3.13.2-1Pierre-Yves Chibon - 3.11.1-1Pierre-Yves Chibon - 3.5-1Gwyn Ciesla - 3.3.1-3Fedora Release Engineering - 3.3.1-2Pierre-Yves Chibon - 3.3.1-1Pierre-Yves Chibon - 3.3-1Pierre-Yves Chibon - 2.14.1-1Pierre-Yves Chibon - 2.13.1-1Fedora Release Engineering - 2.11-2Pierre-Yves Chibon - 2.11-1Pierre-Yves Chibon - 2.10.1-1Bruno Wolff III - 2.3.4-1Fedora Release Engineering - 2.3.3-2Bruno Wolff III - 2.3.3-1Bruno Wolff III - 2.3.2-1Pierre-Yves Chibon - 2.3-1Bruno Wolff III - 2.2.2-1Bruno Wolff III - 2.2.1-1Bruno Wolff III - 2.2-1Bruno Wolff III - 2.1.1-1Pierre-Yves Chibon - 2.1-1Pierre-Yves Chibon - 2.0.1-1Pierre-Yves Chibon - 2.0-1Pierre-Yves Chibon - 1.2-1Pierre-Yves Chibon - 1.1.1-1Pierre-Yves Chibon - 1.1-1Pierre-Yves Chibon - 1.0.2-1Pierre-Yves Chibon - 1.0.1-1Pierre-Yves Chibon - 1.0-1Pierre-Yves Chibon - 0.1.36-1Pierre-Yves Chibon - 0.1.35-1Pierre-Yves Chibon - 0.1.34-1Pierre-Yves Chibon - 0.1.33-1Pierre-Yves Chibon - 0.1.32-1Pierre-Yves Chibon - 0.1.31-1Pierre-Yves Chibon - 0.1.30-1Pierre-Yves Chibon - 0.1.29-1Pierre-Yves Chibon - 0.1.28-1Pierre-Yves Chibon - 0.1.27-1Pierre-Yves Chibon - 0.1.26-1Pierre-Yves Chibon - 0.1.25-1Pierre-Yves Chibon - 0.1.24-1Pierre-Yves Chibon - 0.1.23-1Pierre-Yves Chibon - 0.1.22-1Pierre-Yves Chibon - 0.1.21-1Pierre-Yves Chibon - 0.1.20-1Pierre-Yves Chibon - 0.1.19-1Pierre-Yves Chibon - 0.1.18-1Pierre-Yves Chibon - 0.1.17-1Pierre-Yves Chibon - 0.1.16-1Pierre-Yves Chibon - 0.1.15-1Pierre-Yves Chibon - 0.1.14-1Pierre-Yves Chibon - 0.1.13-1Pierre-Yves Chibon - 0.1.12-1Pierre-Yves Chibon - 0.1.11-1Pierre-Yves Chibon - 0.1.10-1Pierre-Yves Chibon - 0.1.9-1Pierre-Yves Chibon - 0.1.8-1Pierre-Yves Chibon - 0.1.7-1Pierre-Yves Chibon - 0.1.6-1Pierre-Yves Chibon - 0.1.5-1Pierre-Yves Chibon - 0.1.4-1Pierre-Yves Chibon - 0.1.3-1Pierre-Yves Chibon - 0.1.2-2Pierre-Yves Chibon - 0.1.2-1Pierre-Yves Chibon - 0.1.1-1Pierre-Yves Chibon - 0.1-1Pierre-Yves Chibon - 0.0-1.20150402Pierre-Yves Chibon - 0.0-1.20141008- Bump to upgrade over infra builds- Update to 5.13.3 (RH#2019098) - Drop patch for noggin_support which is now in this release- Backport fix for oidc logins from FAS with multiple SSH keys- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild- Rebuilt for Python 3.10- Backport patch: noggin_support.patch from upstream commit: 6a3f43dd1fc33367f9ab2a2dca8f941591374374- Rebuilt for updated systemd-rpm-macros See https://pagure.io/fesco/issue/2583.- Update to 5.13.2 (RH#1927326)- Update to 5.13.1 (RH#1914378)- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild- Add optional dependencies for fedora-messaging support- Update to 5.12 (RH#1913480)- Backport various fixes from upstream- Update to 5.11.3 (RH#1868029)- Update to 5.11.2 (RH#1862974)- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild- Backport various fixes from upstream - Add patch to use whitenoise for serving static assets- Backport various fixes from upstream- Fix installability of web-apache-httpd subpackage on EL7- Rebuilt for Python 3.9- Backport support for STARTTLS support for SMTP servers- Backport fix for stats - Add missing step to start pagure web services for nginx setup in quickstart- Install missing pagure_authorized_keys_worker service- Fix thinko in quick start instructions- Add Obsoletes for package split of webserver configuration- Bump to build in EPEL8- Update to 5.10.0 (RH#1836004) - Clean up spec for better suitability for container deployments - Refresh quick start instructions for new configuration options - Drop unneeded patch- Update to 5.9.1 (RH#1818753) - Downgrade gitolite3 dependency to Recommends per CPE team request- Update to 5.9.0 (RH#1816636)- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild- Update to 5.8.1 (RH#1778787)- Update to 5.8 (RH#1744065)- Rebuilt for Python 3.8.0rc1 (#1748018)- Rebuilt for Python 3.8- Fix httpd conf path in README.Fedora- Update to 5.7.4- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild- Update to 5.5 - Backport fix for pull mirroring feature- Update to 5.4 - Backport fix for using pagure-ev on Python 3 - Add patch to allow pagure to install with SQLAlchemy 1.3.0+ - Add initial README.Fedora to document a quick-start setup process- Update to 5.3 - Add weak dependencies for supported database client libraries - Use macros consistently in the spec- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild- Ensure all shebangs are set to the correct Python version - Fix RHEL conditionals to account for EL8 - Fix pygit2 dependency for EL7- Update to 5.2- Backport fix from master to add compatibility with Markdown 3.0+ - Backport fix from master to properly skip legacy hooks- Update to 5.1.4- Update to 5.1.3 (RH#1638470)- Update to 5.1.1 (RH#1637595)- Update to 5.1 (RH#1637516)- Fix symlinks broken or missing due to setuptools- Update to 5.0.1 (RH#1634318)- Update to 5.0 (RH#1632468)- Rebase to 4.93.0 (5.0 beta 4) - Pagure is now using Python 3 on Fedora- Generate dependencies automatically- Rebase to 4.0.4 - Add patch from Mageia to backport fix for pagure-milters- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild- Update Python 2 dependency declarations to new packaging standards (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild- Update to 3.13.2- Update to 3.11.1- Update to 3.5 - Reverting to py-bcrypt- Switch to python-bcrypt, BZ 1473018.- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild- Update to 3.3.1 - Fixes a typo in the alembic migration script introduced in 3.3- Update to 3.3 - [SECURITY FIX] block private repo (read) access via ssh due to a bug on how we generated the gitolite config - CVE-2017-1002151 (Stefan Bühler)- Update to 2.14.1- Update to 2.13.1- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild- Update to 2.11- Update to 2.10.1- Update to 2.3.4 - Security fix release blocking all html related mimetype when displaying the raw files in issues and forces the browser to download them instead (Thanks to Patrick Uiterwijk for finding this issue) - CVE: CVE-2016-1000037- https://fedoraproject.org/wiki/Changes/Automatic_Provides_for_Python_RPM_Packages- Update to 2.3.3 - Fix rendering the release page when the tag message contain only spaces (Vivek Anand) - Fix the search in @ (Eric Barbour) - Displays link and git sub-modules in the tree with a dedicated icon- Make sure to read UPGRADING.rst when upgrading from previous releases - Update to 2.3.2 - Do not mark as local only some of the internal API endpoints since they are called via ajax and thus with the user's IP - Update to 2.3.1 - Fix sending notifications to users watching a project - Fix displaying if you are watching the project or not- Update to 2.3 - Fix typos in pr_custom_page.rst (Lubomír Sedlář) - Improve the unit-test suite (Vivek Anand) - Remove the branch chooser from the repoheader and rework the fork button (Ryan Lerch) - Add support for non utf-8 file names (Ryan Lerch) - Add a 'Duplicate' status for issues (Vivek Anand) - Add title attribute for replying to comment and editing the comment in issues and PRs (Vivek Anand) - Include the user when reporting error by email - Add an API endpoint to create projects - Add an API endpoint to assign someone to a ticket - Add small script to be ran as cron to send reminder of expiring tokens (Vivek Anand) - Do not show the PR button on branches for which a PR is already opened - Add an API endpoint to fork projects - Add the possibility to watch/unwatch a project (Gaurav Kumar) - Add a 'Take' button on the issue page (Ryan Lerch and I) - Add a dev-data script to input some test data in the DB for testing/dev purposes (skrzepto) - Fix links to ticket/pull-request in the preview of a new ticket - Add the possibility to diff two or more commits (Oliver Gutierrez) - Fix viewing a file having a non-ascii name - Fix viewing the diff between two commits having a file with a non-ascii name - On the commit detail page, specify on which branch(es) the commit is - Add the possibility to have instance-wide admins will full access to every projects (set in the configuration file) - Drop the hash to the blob of the file when listing the files in the repo - Add autocomple/suggestion on typing @ on a ticket or a pull-request (Eric Barbour) - Fix the edit link when adding a comment to a ticket via SSE - Add notifications to issues as we have for pull-requests - Record in the db the date at which a ticket was closed (Vivek Anand) - Add the possibility for pagure to rely on external groups provided by the auth service - Add the possibility for pagure to use an SMTP server requiring auth (Vyacheslav Anzhiganov) - Add autocomple/suggestion on typing # for tickets and pull-requests (Eric Barbour) - With creating a README when project's description has non-ascii characters (vanzhiganov) - Add colored label for duplicate status of issues (Vivek Anand) - Ship working wsgi files so that they can be used directly from the RPM - Mark the wsgi files provided with the RPM as %config(noreplace) - Install the api_key_expire_mail.py script next to the createdb one- Update to 2.2.2 - Security fix release blocking all html related mimetype when displaying the raw files and forces the browser to download them instead (Thanks to Patrick Uiterwijk for finding this issue)- Update to 2.2.1 - Fix showing the inital comment on PR having only one commit (Ryan Lerch) - Fix diffs not showing for additions/deletions for files under 1000 lines (Ryan Lerch) - Split out the commits page to a template of its own (Ryan Lerch) - Fix hightlighting the commits tab on commit view - Fix the fact that the no readme box show on empty repo (Ryan Lerch)- Update to 2.2 - Fix retrieving the log level from the configuration file (Nuno Maltez) - Rework the labels used when sorting projects (Ankush Behl) - Fix spelling error in sample config (Bruno) - Hide the URL to the git repo for issues if these are disabled - Do not notify about tickets being assigned when loaded from the issue git repo (Clément Verna) - Adjust get_revs_between so that if the push is in the main branch we still get the list of changes (Clément Verna) - Fix display of files moved on both old and new pygit2 (Ryan Lerch) - Fix changes summary sidebar for older versions of pygit (Ryan Lerch) - Fix the label on the button to add a new milestone to a project (Lubomír Sedlář) - Allow the roadmap feature to have multiple milestone without dates (Lubomír Sedlář) - Fix the link to switch the roadmap/list views (Lubomír Sedlář) - Render the emoji when adding a comment to a ticket or PR via SSE (Clément Verna) - Always allow adming to edit/delete comments on issues - Build Require systemd to get macros defined in the spec file (Bruno) - Upon creating a ticket if the form already has data, show that data - Add a readme placeholder for projects without a readme (Ryan Lerch) - Enable markdown preview on create pull request (Ryan Lerch) - Make bottom pagination links on project list respect the sorting filter (Ryan Lerch) - Add the ability to create a README when creating a project (Ryan Lerch) - Try to prevent pushing commits without a parent when there should be one - Fix the configuration keys to turn off ticket or user/group management for an entire instance (Vivek Anand) - Fix deleting project (propagate the deletion to the plugins tables) - Do not render the diffs of large added and removed files (more than 1000 lines) (Ryan Lerch) - Adjust the UI on the template to add/remove a group or an user to a project in the settings page (Ryan Lerch) - Check if a tag exists on a project before allowing to edit it (skrzepto)- Update by several versions- Update to 2.1 - Fix the milter to get it working (hotfixed in prod) - Fix the fedmsg hook so that it works fine (hotfixed in prod) - Fix the path of one of the internal API endpoint - Pass client_encoding utf8 when connecting to the DB (Richard Marko) - Do not use client_encoding if using sqlite (Ryan Lerch) - Allow project names up to 255 characters (Richard Marko) - Add a spinner showing we're working on retrieve the PR status on the PR page (farhaanbukhsh) - Rework installing and removing git hooks (Clement Verna) - Rework the summary of the changes on the PR page (Ryan Lerch) - Improve the description of the priority system (Lubomír Sedlář) - Fix commit url in the pagure hook (Mike McLean) - Improve the regex when fixing/relating a commit to a ticket or a PR (Mike McLean) - Improve the description of the pagure hook (Mike McLean) - Fix the priority system to support tickets without priority - Fix the ordering of the priority in the drop-down list of priorities - Ensure the drop-down list of priorities defaults to the current priority - Adjust the runserver.py script to setup PAGURE_CONFIG before importing pagure - Remove flashed message when creating a new project - Add markdown support for making of PR# a link to the corresponding PR - Include the priority in the JSON representation of a ticket - Include the priorities in the JSON representation of a project - Do not update the assignee if the person who commented isn't an admin - When adding a comment fails, include the comment text in the form if there was one - Add support to remove a group from a project - Add a roadmap feature with corresponding documentation - Allow 'kbd' and 'var' html tags to render properly - Fix deleting a project on disk as well as in the DB - Allow setting the date_created field when importing ticket from git (Clement Verna) - Strip GPG signature from the release message on the release page (Jan Pokorný) - Make comment on PR diffs fit the parent, and not overflow horiz (Ryan Lerch)- Update to 2.0.1 - Fixes to the UPGRADING documentation - Fix URLs to the git repos shown in the overview page for forks - Fix the project titles in the html to not start with `forks/`- Update to 2.0 - Rework the initial comment of a PR, making it less a comment and more something that belong to the PR itself - Fix showing or not the fork button when editing a comment on an issue or a PR and fix the highlighted tab when editing comment of an issue (Oliver Gutierrez) - Fix the count of comments shown on the page listing all the PRs to include only the comments and not the notifications (farhaanbukhsh) - In the settings page explain that API keys are personal (Lubomír Sedlář) - Rework the fedmsg message sent upon pushing commits, one message per push instead of one message per commit - Mark the page next/previous as disabled when they are (on browse pages) - Avoid the logout/login loop when logging out - Support rendering file with a `.markdown` extension - Fix the layout of the password change branch - Improve the documentation, add overview graphs, expand the usage section, improve the overview description - Fix checking if the user is an admin of a project or not (which was making the user experience confusing as they sometime had the fork button and sometime not) - Fix the pagination on the browse pages when the results are sorted - Disable the Commit and Files tabs if a repo is new - Update the pagure logo to look better (Ryan Lerch) - Allow anyone to fork any project (Ryan Lerch) - Fix searching on the browse pages by preventing submission of the 'enter' key (Ryan Lerch) - Rework the issue page to be a single, large form allowing to update the meta-data and comment in one action and fixing updating the page via SSE - Turn off the project's documentation by default to empty `Docs` tab leading to nothing - Fill the initial comment with the body of the commit message if the PR only has one commit (Ryan Lerch) - Add a plugin/git hook allowing to disable non fast-forward pushes on a branch basis - Fix asynchronous inline comments in PR by fixing the URL to which the form is submitted - Add a plugin/git hook allowing to trigger build on readthedocs.org upon git push, with the possibility to restrict the trigger to only certain branches - Automatically scroll to the highlighted range when viewing a file with a selection (Lubomír Sedlář) - Indicate the project's creation date in the overview page (Anthony Lackey) - Clear the `preview` field after adding a comment via SSE - Adjust the unit-tests for the change in behavior in pygments 2.1.3 - Fix listing all the request when the status is True and do not convert to text request.closed_at if it is in fact None - Improved documentation - Attempt to fix the error `too many open files` on the EventSource Server - Add a new param to runserver.py to set the host (Ryan Lerch) - Fix the of the Docs tab and the Fork button with rounded corners (Pedro Lima) - Expand the information in the notifications message when a PR is updated (Ryan Lerch) - Fix hidding the reply buttons when users are not authenticated (Paul W. Frields) - Improve the description of the git hooks (Lubomír Sedlář) - Allow reply to a notification of pagure and setting the reply email address as Cc - In the fedmsg git hook, publish the username of all the users who authored the commits pushed - Add an activity page/feed for each project using the information retrieved from datagrepper (Ryan Lerch) - Fix showing lightweight tags in the releases page (Ryan Lerch) - Fix showing the list of branches when viewing a file - Add priorities to issues, with the possibility to filter or sort them by it in the page listing them. - Add support for pseudo-namespace to pagure (ie: allow one '/' in project name with a limited set of prefix allowed) - Add a new plugin/hook to block push containing commits missing the 'Signed-off-by' line - Ensure we always use the default email address when sending notification to avoid potentially sending twice a notification - Add support for using the keyword Merge(s|d) to close a ticket or pull-request via a commit message (Patrick Uiterwijk) - Add an UPGRADING.rst documentation file explaining how to upgrade between pagure releases- Update to 1.2 - Add the possibility to create a comment when opening a pull-request (Clement Verna) - Fix creating PR from a fork directly from the page listing all the PR on the main project (Ryan Lerch) - Color the label showing the issues' status on the issue page and the page listing them (Ryan Lerch) - Add a small padding at the bottom of the blockquote (Ryan Lerch) - In the list of closed PR, replace the column of the assignee with the date of closing (Ryan Lerch) - Drop font awesome since we no longer use it and compress the png of the current logo (Ryan Lerch) - Drop the svg of the old logo from the source (Ryan Lerch) - Add descriptions to the git hooks in the settings page (farhaanbukhsh) - Fix the pagure git hook- Update to 1.1.1 - Fix showing some files where decoding to UTF-8 was failing - Avoid adding a notification to a PR for nothing - Show notifications correctly on the PR page when received via SSE- Update to 1.1 - Sort the release by commit time rather than name (Clerment Verna) - Add a link to the markdown syntax we support - Add the possibility to display custom info when creating a new PR - Improve the title of the issue page - Make the ssh_info page more flexible so that we can add new info more easily - Add the possibility to resend a confirmation email when adding a new email address - Encode the email in UTF-8 for domain name supporting it - Add a button to easily change your avatar in your settings' page (Clement Verna) - Expand our markdown processor to support implicit linking to both PR and issues - Fix running the unit-tests on F23 - Fix deleting in the UI branches containing a slash ('/') in their name - Add the possibility to always have a merge commit when merging a PR - Add the project's avatar to the list in front page when authenticated - Make the dependency on flask-fas-openid (part of python-fedora) optional - Prevent our customized markdown to create link on foo.com if it doesn't start with {f,ht}tp(s) (Clement Verna) - Bring back the delete ticket button (Ryan Lerch) - Add the possibility to notify someone when it is mentioned in a comment via @username - Fix setting the default value of the web-hook setting and its display in the settings page - Add the possibility to have templates for the issues - Add a button on the doc page to open it in a new tab - Add the concept of notifications on PR allowing to indicate when a PR is updated or rebased - Fix allowing people with non-ascii username to merge PR with a merge commit - Add the possibility to theme your pagure instance and customized its layout at will - Add the possibility to always see inline-comments even if the file was changed since - Improve the error message given to the user upon error 500 (Patrick Uiterwijk) - Stop relying on pygit2 to determine if a file is a binary file or not and instead use the python library binaryornot - Store in the DB the identifier of the tree when an inline comment is made to a PR, this way it will be simpler to figure out a way to add the context of this comment either by email on in the UI - Add styling to blockquotes so that we see what is the quote and what is the answer when replying to someone - Prevent users from adding again an email pending confirmation - Fix the preview box for long comment (Ryan Lerch) - Add the possibility to sort the projects when browsing them (Ryan Lerch)- Update to 1.0.2 - Rework the PR page (Ryan Lerch) - Add ssh_info to blacklist in default config (Ryan Lerch) - Restyle the ssh_info page (Ryan Lerch) - Fix hiding the preview pane when creating an issue (Ryan Lerch) - Indicate the number of comments on the PR when listing them (Ryan Lerch) - Fix showing the links to issues when previewing a comment - Ensure some more that the page number isn't below 1 - Do not show the edit and delete buttons to everyone when adding a comment via SSE - Update the requirements.txt for a missing dependency on Ubuntu (vanzhiganov) - Improving sorting the release tags in the release page (Clement Verna)- Update to 1.0.1 - Improve the fork list (Ryan Lerch) - Make sure the images on comments do not exceed the size of the comment box/area (Ryan Lerch) - Improve the page listing all issues (Ryan Lerch) - Include the project information when sending a fedmsg message about editing a comment - Allow tags in rst files so that the README shows fine - Fix linking directly to a specific comment in a PR - Fix adding comment in a PR via SSE - Fix updating issue information via SSE - Fix the reply buttons on the issue page - Remove the choice for a status when creating a new ticket (Farhaandukhsh) - Fix deleting a branch from the UI - Make the cards have rounded corners (Sayan Chowdhury) - Fix showing the description of form field (Vivek Anand) - Fix checking if the passwords added are the same (for local accounts) (Vivek Anand) - Fix displaying emojis when previewing a comment on a ticket (Clement Verna) - Add support for emojis when creating a new ticket (Clement Verna)- Update to 1.0 - Entirely new UI thanks to the hard work on Ryan Lerch - Add the possibility to edit comments on PR/Tickets (and the option to disable this) (farhaanbukhsh) - Add the number of open Tickets/PR on the project's menu - Also allow PRs to be closed via a git commit message (Patrick Uiterwijk) - Disable issues and PR on forks by default (Vivek Anand) - Fix deleting the temporary folders we create - Un-bundle flask_fas_openid (requires python-fedora 0.7.0 or higher - Add support for an openid backend (ie same thing as FAS but w/o the FPCA enforcing) - Add support to view rst/markdown files as html directly inline (default) or as text (Yves Martin) - Change the encryption system when using pagure with local auth to not be time-sensitive and be stronger in general (farhaanbukhsh) - Change the size of the varchar from 256 to 255 for a better MySQL support - Add support for pagure to work behind a reverse proxy - Rename the cla_required decorator to a more appropriate login_required - Show the in the front page and the page listing all the pull-requests the branch for which a PR can be opened - Rework the avatar to not rely on the ones associated with id.fedoraproject.org - Add support to high-light a section of code in a PR and show the diff automatically if there is such selection- Update to 0.1.36 - Add the ssh info on the front page if the repo is empty - Make the code handling exception be python3 compatible - Make pagure compatible with F23 (ie: pygit2 0.23.0) - Fix pagination when rendering the repo blocks (Gaurav Kumar) - Make the SHOW_PROJECTS_INDEX list what should be showing in the index page - Adjust pagure to work on recent version of psutils as well as the old one - Added 'projects' to the blacklisted list of projects (Gaurav Kumar) - Removed delete icons for non group members on the group info page (Gaurav Kumar) - Fixed forbidden error for PR title editing (Gaurav Kumar)- Update to 0.1.35 - Fix the web-hook server by preventing it to raise any exception (rather log the errors)- Update to 0.1.34 - Fix the encoding of the files we're displaying on the UI - Fix commenting on the last line of a diff - Fix returning error message from the internal API (shows the PR as conflicting then) - Fix stacktrace encountered in some repo if the content of a folder is empty (or is a git submodule) - Split the web-hooks into their own server - If you try to fork a forked project, redirect the user to the fork - Show the repo from and repo to when opening a new PR - Add the pagination links at the bottom of the repo list as well - Add the groups to the pool of users to notify upon changes to a project - Hide private repo from user who do not have commit access- Update to 0.1.33 - Prevent project with a name starting with a non-alphanumerical character (Farhaanbukhsh) - Ensure we appropriately set the private flag when creating an issue - Add an activity graph on the user profile using datagrepper - Sometime the identified we get is a Tag, not a commit (fixes traceback received by email) - Order the PR from the most recent to the oldest - Fix the patch view of a PR when we cannot find one of the commit (fixes traceback received by email) - Allow user that are not admin to create a remote pull-request - Fix closing the EV server by calling the appropriate variable - Fix generating the diff of remote pull-request- Update to 0.1.32 - Fix the example configuration file - Make pagure work on MySQL - Hide sections on the front page only if the user is logged out - Fix the release page where sometime tags are commits - Escape the raw html in markdown - Decode the bytes returned by pygit2 to try to guess if the content is a text or not - Fix the 'Clear' button on the pull-request page (farhaanbukhsh) - Fix installing pagure in a venv - Fix uploading images when editing the first comment of a ticket - Let the author of the merge commit be the user doing the merge - Suggest the title of the PR only if it has one and only one commit in - Do not hide sections on the user page if we set some to be hidden on the front page - Forward the head to the commits page to fix the pull-request button - Ensure we create the git-daemon-export-ok when forking a repo (fixes cloning over https) - Add instructions on how to get pagure working in a venv (Daniel Mach) - Improve the way we retrieve and check pygit2's version (Daniel Mach)- Forward the bail_on_tree boolean when iterating so that we know how to behave when we run into a git tree (where we expected a git blob) -> fixes error received by email- Fix error received by email by checking the right variable if it is a git tree or a git blob - Unless we explicitly accept all images tag, always filter them (fixes attaching images to a ticket)- Use monospace fonts for online editing as well as comment on tickets and pull-requests - Fix online editing of symlinked files (such as the README) - Handle potential error when converting from rst to html- Update to 0.1.28 - Fix the call to noJS() in the pull-request template to avoid crashing - Improve the runserver script in the sources - Fix the projects pagination on the index page - Create the git-daemon-export-ok file upon creating a new project/git - Use first line of commit message for PR title when only one commit (Maciej Lasyk) - Show the tag message near the tag in the release page - Set the default_email when creating a local user account- Update to 0.1.27 - Skip writing empty ssh keys on disc - Regenerate authorized_keys file on ssh key change (Patrick Uiterwijk)- Update to 0.1.26 - Let admins close PRs as well- Update to 0.1.25 - Improve the documentation (especially the part about configuring pagure and all the options the configuration file supports) - Remove the two trailing empty lines when showing a file online - Add a link on the issue list to be able to filter all the unassigned issues - Rework the layout of the pull-request page - Rework the commit list in the PR page to allow showing the entire commit message - Let any user create remote pull-request otherwise what's the point? - Add the possibility to edit the title of a pull-request - Add a page listing all the pull-requests of an user (opened by or against) - Add support for multiple ssh-keys (Patrick Uiterwijk) - Ensure the authorized_keys file is generated by gitolite (Patrick Uiterwijk) - Fix the regex for @ - Improve the display of renamed files in PR - Add option to disable entirely the user/group management from the UI - Add an updated_on field to Pull-Request - Add an closed_at field to Pull-Request - Allow the submitter of a PR to close it (w/o merging it) - Disable editing a pull-request when that one is closed/merged - Add option to hide by default a part of the index page (ie: all the repos, the user's repos or the user's forks) - Drop the csrf_token from the error emails sent to the admins- Update to 0.1.24 - Fix changelog to add the -release - Block the tag on titles - Better fedmsg notifications (for example for new branches or rebase) - Support uploading multiple files at once - Add a load_from_disk utility script to the sources - Fix indentation to the right on very long pull-request- Update to 0.1.23 - Return a 404 error if we can't find the doc repo asked - Fix for #106 Allow setting the default branch of the git repo and in the UI (Ghost-script) - Improve unit-tests suite - Add a global boolean to disable entirely tickets on all projects of a pagure instance (with no way to re-set them per project) - Do display uploading a tarball if it is not entirely configured - Ensure we do not offer to reply by email if the milter is not set up - Ensure there is no new line character on the msg-id and improve logging in the milter - Add a configuration key to globally disable creating projects - Add a configuration key to globally disable deleting projects - Add the possibility to search projects/users - Drop links to the individual commits in a remote pull-request - Input that are cleaned via the noJS filter are safe to be displayed (avoid double HTML escaping) - When writing the authorized_key file, encode the data in UTF-8 - Makes page title easier to find in multi-tab cases (dhrish20) - Fix authorized_keys file creation (Patrick Uiterwijk) - Honor also symlinked README's in repo overview (Jan Pakorný) - Fix the patch generation for remote PR - Fix showing the comment's preview on the pull-request page - Fix bug in checking if a PR can be merged- Update to 0.1.22 - Adjust the README to the current state of pagure - Rework how we integrate our custom tags into markdown to avoid the infinite loop we run into once in a while- Update to 0.1.21 - Make SSH protocol explicit for SSH URLs (Till Maas) - Adjust the documentation (layout and content) - Rework the doc server to allow showing html files directly - Fix installing the pagure hook correctly (tickets and requests) - Give proper attribution to the pagure logo to Micah Deen in the documentation - Increase pull request text field lengths to 80 (Till Maas) - Fix who can open a remote PR and the check that the repo allows PR - If there is no commit and no content, it means we didn't find the file: 404- Update to 0.1.20 - Include the tags in the JSON representation of a project - Add the ability to open a pull-request from a git repo not hosted on pagure - Fix pagination when browsing the list of commits - Fix the fork button when viewing the Settings of a project - Adjust the example apache configuration file - Add a favicon with pagure's logo - Fix asynchronous commentting on pull-requests - Start working on some documentation on how to install pagure - Do no flash messages when a comment is submitted via javascript (ie: async) - Do not blink the tittle of the page if the page is already on focus - Retrieve ssh key from FAS and set it up in pagure if none is currently set-up - Fix anchors for comments on the pull-request pages - Fix checking the merge status of a PR when user is not logged in- Update to 0.1.19 - Prettify the JSON stored in the git for tickets/requests... (Simo Sorce) - Use the project name as subject tag in the notifications sent (Simo Sorce) - Add an X-pagure header with either the pagure instance or the project name - Reset the merge status of all the open PR when one is merged - Add a second server listing the number of connections opened on the first eventsource server - Log the info instead of printing them in the eventsource server - Split the documentation to a different wsgi application to avoid any risk of cross-site forgery - Fix the JS logic when adding a tag or a dependency to avoid having duplicates in the input field - Allow deleting a git branch of a project via the UI - Include the font-awesome in the source rather than relying on an external cdn - Do not try to connect to the eventsource server if we're not viewing a pull-request - Fix showing the first comment made on a PR via the eventsource server - Fix showing the git URLs in the doc server - Much better API documentation (Lei Yang) - Handle showing closed PR that were not merged - Fix refreshing the UI of private tickets via the eventsource (making calls to the API to get the info while only getting what changed via the SSE) - Fix the anchor links in the API documentation - Blink the tab upon changes in the page - Ensure we close both SSE server when stopping pagure_ev - Let the HTML form trigger if we did not connect to the EV server successfully - The admins of a repo are anyone with commit access to the repo, directly or via a group - Order the project by names in the front page (instead of creation date) - Add the ability to tag a project - Fix the fedmsg_hook when there are only deletions or only additions - Add a new API endpoint allowing to search projects (by name, author, tag ...) - Make pagure compatible with pygit 0.22.0 - Adjust unit-tests for all these changes- Update to 0.1.18 - Fix the eventsource server for CORS - Fix showing/checking the merge status of a PR- Update to 0.1.17 - Fix for missing docs of API issue add comment (Kunaal Jain) - Fix the systemd init file - Be more careful about the URL specified, it may be of the wrong format in the eventsource server - Allow configuring the port where the event source server runs in the configuration - Fix bug in filter_img_src introduced with its moved to the backend library- Update to 0.1.16 - Clone all the remote branches when cloning a project - Allow online editing to a new branch or any of the existing ones - Allow the
html tags in markdown - Add eventsource support in the ticket and pull-request pages- Update 0.1.15 - Use a monospace font for the commit hash - Remove duplicated "commit" id in the HTML (causing a graphical bug in the commit page) - Secure the input using the no_js filter instead of relying on a restrictive regex for PR and issue titles - Support ',' in the tags field since it's required to specify multiple tags- Update to 0.1.14 - Remove all new lines characters from the ssh key uploaded - Adjust the URL in the footer to point to https://pagure.io/pagure - Fix displaying the time of a comment - Forbid the use of spaces in group name - Do not get the list of not-merged commits if there is only 1 branch in the repo - Display the error message if pagure.lib.add_group raises an exception - Add a new setting enforcing that all commits in a PR are signed-off by their author - Enforce that all commits are signed-off by the author if the repo is configured for this - Also check for the signed-off status before merging a pull-request - Adjust online-editing to allow specifying which email address to use in the commit - Add an avatar_email field to projects - Change the PullRequest's status from a Boolean to a Text restricted at the DB level (Allows to distinguish Open/Merged/Closed) - Show in the pull-request view who merged the pull-request - Specify who closed the pull-request in the API output - Catch GitError when merging and checking merge status of a PR - Hide the form to create pull-requests if the user is not an admin of the repo - Replace the Pull-Request button by a Compare button if the user it not a repo admin - Set the title of the tab as URL hash to allow directly linking to it - Adjust the API to be able to distinguish API authentication and UI authentication - Fix API documentation to create new issues - Drop the status from the requirements to open a new issue via the API - Expand the list of blacklisted project names - Have the code tags behave like pre tags (html tags) - Allow project to specify an URL and display it on their page - Strip the ssh keys when writing them to the authorized_keys file - Disable javascript in all the markdown fields - Validate early the input submitted in the forms (using more or less strict regex) - If the session timed-out, redirect to the setting page after authentication and inform the user that the action was canceled - Catch PagureException when adjusting the project's settings - Redirect the /api endpoint to the api documentation place - Fix how is retrieved the list of emails to send the notification to - Sanitize the html using bleach to avoid potential XSS exploit - Do not give READ access to everyone on the tickets and pull-requests repos to avoid leaking private tickets - Adjust the unit-tests for all these changes- Update to 0.1.13 - Do not show the edit button if the user cannot edit the file - Fix who is allowed to drop comments - Fix showing the drop comment button on issue comments - Fix creating the pull-request for fast people like @lmacken - Display the target of the PR as well as the origin in the PR page - Limit the size of the lists on the front page- Update to 0.1.12 - Fix the URL where the sources upload are done - Upload the new sources under the project's name (be it project or user/project)- Update to 0.1.11 - Another fix for the fedmsg_hook git hook - Adjust how we display the README page to avoid XSS there as well - Add the possibility to disable plugins via the configuration file - Present the git tags in the UI - As soon as the API user present a token, validate it or not, even if the endpoint would work without token - Integrate alembic for DB scheme migration - Cache the PR's merge status into the DB - Only people with access to the project can add/remove API token - Make the unit-tests run on bare repos as in prod - First stab at online editing - Simplify the API output to drop the project's settings where it doesn't make sense - First stag at allowing upstream to upload their release to pagure - Fix merging a PR into another branch than master - Reduce code duplication when checking if a PR can be merged or merging it - Code style clean-up- Update to 0.1.10 - Add support for URL ending with a trailing slash where it makes sense (so we support both with and without trailing slash) - Fix XSS issue by disabling