pagure-5.10.0-7.el8$>rVoOM˽ ">F9 ?8d   + -3:I  "$ *, :< +@ /X?hS|ggww*x*|2*(|8|k9~Lk:k>1?1@1G1HAIQXUYV \V4]fD^ԧVbd"e'f*l,tDuTvd2wx y0$77788888Cpagure5.10.07.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.^ůbuildhw-06.phx2.fedoraproject.org2RFedora 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!!-b-bjj I I22GGGw==:: ] ](l(l{ W W 0rPͿ%&cT8!{cgJ  FpsEO33## 0 0**%%  $ $ < ґp$ Z+ ! b:wdBB  kkmm EE77%%77WxWx x x##mYm  ((bb w $@ F9 9k C [;5(= =y6&aKaKU tr trDD+VgJcs\$s\$ %ZZ%Tn~-h/|i` O; O;/(/(NNG,XQG,XQV/,V/,&&CC 0 'G":7&7  cl31 +N1^k 9K5 9`   IAJF/M  nEdy:ue*A08f)<+@Z6!  rrkk  LQLQAA D Dss** 333ILo3Ӈ;mrr ykTqq  Tzn,&T156(9> ;#YA3C!82 ("UŌOq(S;r] Zy+]R 'ZRt6IX9QFoaɑ-(]!' )3   lb}aA?`MRHSN x /Pq`$6/L1,w 1R*_ZIXZ+->s`/l;NFk A>fU a'5 d(%$#8EsP63$$9Oir%?9 80,IX-1%a)+]! '  =) 9QFoaɑ3   lb}aA?`MRHSN x FR ! !QQ ws2CSc,h5nvJ|`1`p0?jEWI ;o@@,_^H dxm(*P `LLYYaajj]]44>>55  rr]]xxiiSS]]jjFFtthhWWooVVgg''}}11zzbbDDEE//HHtt++$$ttXX^^f IH[E U%&yA큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤큤A큤A큤A큤A큤큤AA큤A큤큤AA큤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큤^ŮZ^0^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^6L^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^0^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^ŮZ^Ů^Ů^Ů^Ů^Ů\(^q^q^^q^^q^q^ŮZ^Ů^Ů^Ů^Ů^Ů^q\j\(^s^ŮZ^q^q\p^0^^Ů^^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^q\j^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů\j\j\j\(\j\j\p\j\j\j\j^Ů^^Ů^Ů^Ů^Ů\j^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů\j^^0\(\p^s\j^\^Ů\j^^q\j^^q^q\p\j\j^^q\j^Ů^ŮZ^ŮZZZ^q^^q\j\j^q^qW\j^Ů^Ů\j\j\j\j^Ů[]^q^q[]^q^q^Ů^^^Ů[][][][][][]^Ů\j\j\j\j\j\j\j^Ů[][][][][][][][][][][]^Ů^Ů\j\j\j\j\j\j\j^Ů\j\j\j^q^Ů\j^Ů^q^q^q^Ů^Ů[][][][][][][][]^Ů^q^q^q^q^Ů[][][][]^q^q^q^q^Ů\j\j\j\j^Ů\j\j\j\j^Ů^q^q^q^q^q^q^Ů^q\j^q\j^q^q^q^q\j^q^q^q^^q^^q^q^q^q^qZ^q^q^q^q\j^q^q\j^q^q^q^q^q^Ů\j\j\j^q\j^q^q^q[]Z^q^q^q^q\j^q\j^q^q\h^q^d\(\h^q^q^q^q^q^Ů^q^#^q^q^q\j^q^q\L^q^q^q^q^q^q^q^q^q^q^q\j^q^q^q\j\(\j^q\(^q^q^Ů^Ů\j^Ů\j\j\j^Ů^q^Ů\S^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^^s\(^0^q\(^q^s\j\(^0^s\p^Ů\j^Ů^Ů^Ů\j^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ůg^^5^Ů^q^^^3^3^3^3^3^3^4^3^3^3^3^3^3^3^3^3^3^^3^3^3^3^4^4^4^4^4^4^4^4^4^4^4^4^4^4^4^^4^4^4^4^4^^5^Z[]ZZ[]Z[]Z[][][]ZZZ^^^\j^[]\(^A^q\j\j\j\j\j[]\j[]^\j^q[]^z^S\p\jZ^\j\j\j\jZ\j[]\j[]^q^[]Z\j[]^1^^5^5^5]?^5],\jCxaCT7R3NR3NR3NR3NR3N],T'],^5],[]ZZ],^5Z][]],],^4^4^4^4^4^4^5^4^4^4^4^4^4^4^4^4^5^4^5^5^^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^5^^5^5^5^5^5^\j[]ZZZ[]^Z^4P\h^Ů\j^6[]\(^0^q\j\j\j\j\j[]\j[][][]^0W^^Z[]Z[]Z[][][]ZZ\j^q[]^s^s\p\jZ^s\j\j\j\jZ\j[]\j[]^q^^Z[]Z\j[]^s^ŮW^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů^Ů1fe41c3d04daa7343476531b7beb65878d47241b971ecb3f98c2e0a05ed5ee6fc9ac1df761ee3e8d680474509c59cbf508073e45d6529d27f5be30bab914e833dfd610ec5b804749d7a1e512415ff0b606b2f6cbabbf692873ad7aeaa27c0002688847ef9ea8d7964df8102167bfc7afc068d4c7584c9e4af4dd4bf369069b464d08db868dc8f5cb01d84e4b9526d710956cc11286e7923306696fc7a64a598901ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546ba613eb550b6c5a7b291bec7f6088abdcde41dd072adc9e282cf84561f8ae05a3e4f1df28217cacfdaff881798d955188a77e3cdb3c439557393e3ccb95f441e786452fc77459d1d858e42125cf1541f2038d90bf47aa82be8de8242c30fa85b84291d1252cdd8ed103ffb781c8be737edfc902402d34127e6c5ccda05c754c4e56ceac82e629fee347ce9962a5bb91a08d9980b67f295b903ff94c7fdc59d85056ceac82e629fee347ce9962a5bb91a08d9980b67f295b903ff94c7fdc59d8504e0652d3266729ff7711053c7c4ddb26f92787420d7f0c6d74ecc772d77bf36a4e0652d3266729ff7711053c7c4ddb26f92787420d7f0c6d74ecc772d77bf36acff0e9805a406f1c50e2ac114fa03638112ad65611b69bf2b366300b87990f9acff0e9805a406f1c50e2ac114fa03638112ad65611b69bf2b366300b87990f9a0ccf2cd6debdda649ae2efad8b3c9681f5b896fe118116a24086e1fb2be6d78b0ccf2cd6debdda649ae2efad8b3c9681f5b896fe118116a24086e1fb2be6d78be45de9eb0c80d50bf1ed727e538df9ed3ad8b25bf8090c33a2b6572a1fde0beee45de9eb0c80d50bf1ed727e538df9ed3ad8b25bf8090c33a2b6572a1fde0bee60e3631bf0f4268fd77f28b1d552e97873e440b031497b0e1621c6e19ca45bc460e3631bf0f4268fd77f28b1d552e97873e440b031497b0e1621c6e19ca45bc4ba2f6c5f7aaea91bd2ee709a0ff4e12eb8a829bc0d013fb7ff7d3fd6d01c1d7aba2f6c5f7aaea91bd2ee709a0ff4e12eb8a829bc0d013fb7ff7d3fd6d01c1d7ac3fe94816ad7eaa2594162f0598dae6eb8292b79f6223e783227085f6af44500c3fe94816ad7eaa2594162f0598dae6eb8292b79f6223e783227085f6af44500f8fe0902645cf8888d93eac950af5114acd5d4d4d7f99b0f45ac4f730a83f3c3f8fe0902645cf8888d93eac950af5114acd5d4d4d7f99b0f45ac4f730a83f3c381ee102ddb5a5c39a07e7a0859d38dbe989232442635778c780d430e4e51190881ee102ddb5a5c39a07e7a0859d38dbe989232442635778c780d430e4e51190869f1e526b50e0a2d81df10054f1bcd14cc7be281e14172e7735ae44ba71e609b69f1e526b50e0a2d81df10054f1bcd14cc7be281e14172e7735ae44ba71e609b92bd1be9ea43f807b98b342e2b9a35b578256766004e6b3aa140a7da561ae47f92bd1be9ea43f807b98b342e2b9a35b578256766004e6b3aa140a7da561ae47fe0235bc4277680c7cd7a6bb4f2f7ada97831ebd26a44abb3a9e888491674a6dce0235bc4277680c7cd7a6bb4f2f7ada97831ebd26a44abb3a9e888491674a6dcf94143a8a0e9d8ca268a38bc5411dcaa0ebe0a1b92cc01e9bf191eb004062264f94143a8a0e9d8ca268a38bc5411dcaa0ebe0a1b92cc01e9bf191eb004062264fec1a94051e5d171ab2c07c72966880508e0bd60b84e496ecc00ab160b3a2f33fec1a94051e5d171ab2c07c72966880508e0bd60b84e496ecc00ab160b3a2f33f2cf55286858012ce949f3fca55fcf6d063fa873ca0995fcdbcbef8f5df6dcaaf2cf55286858012ce949f3fca55fcf6d063fa873ca0995fcdbcbef8f5df6dcaa3fa0ea6f840fdac2e2a76e5c27fe0c86e8689eac0af9081c3471867bcdd0397610e1a583f980e0c7194d8a8b5f9dd31681476baf1db53a0b14ab035a79855feb10e1a583f980e0c7194d8a8b5f9dd31681476baf1db53a0b14ab035a79855feb2963b3dd8211d6187fa3016fc50e65870c77220d7a0d5aafef4e97cb1a6e66692963b3dd8211d6187fa3016fc50e65870c77220d7a0d5aafef4e97cb1a6e6669dd536ab299181b06e7ceec9519a1752bfe10319ebcde4f9ce026da08e9db6532dd536ab299181b06e7ceec9519a1752bfe10319ebcde4f9ce026da08e9db653219852fe76c13d079f50ed7120472d96ef62c0db4c2bebadb8801a27138c8b45a19852fe76c13d079f50ed7120472d96ef62c0db4c2bebadb8801a27138c8b45ab30a6162d239938af58906298c386181276d677980369c1bc2dfffeacffd11f3b30a6162d239938af58906298c386181276d677980369c1bc2dfffeacffd11f3fe903cdae58e84e0efdbe4b7d0364270b218c9cd57808de4af10965169acef12fe903cdae58e84e0efdbe4b7d0364270b218c9cd57808de4af10965169acef12824f836dabf166664d1afc370ff29f3c5d917d5be09664c0f08fd5d87cc4221d824f836dabf166664d1afc370ff29f3c5d917d5be09664c0f08fd5d87cc4221d586165cc409e53a22a3feae2495c591e2fa8832210d0b9c70ee564c24ff91a26586165cc409e53a22a3feae2495c591e2fa8832210d0b9c70ee564c24ff91a26419286d416b6e01cc95124abc7bd5ffa099790affe1dc789f3538227c7f4d1e5954e982feb32639221e533bdc54254567c06a725a1a03bb094553a97d45d6139954e982feb32639221e533bdc54254567c06a725a1a03bb094553a97d45d613950c2fd4260a9b0941e4fbd39a14c44e419880b853c0c5e759db67591a933fc1a50c2fd4260a9b0941e4fbd39a14c44e419880b853c0c5e759db67591a933fc1aa7808af0610497ec69978ed9970cd40f9bd2d1bc5d66fff8f9eefad102e3a81cb249593c3f7a2333833a6ef01f932432129682176c9a251a7a8bab1b7769093d3dce6c1e3c11b1e8021cd3f206f3108bbfe9a9fc4e2a8807c7e9740ae272375e8a6a3838c56fe5024d75dfcf4773916c7f826043c64b94445623d47a8eba973cbc7f91edca3a2a7f5e2c52a7829b1001a7f59851304bf0d32d31543216da836b99570c67234b65f5a43e792a6e080e8ecb9e12214f5375e11ea439664a1057478ab95822aa2e720389b7c16faf8ae573b3f84c6920d6699aad984ebba2a66c5d78fc7c0aeb76d13bddbeda8b2e9e4543b5a280cf156dc9a749fa6fc54f95d27916fe13eb38877dbb73360922dd93011b9e9b38bea14954fde7fc1b9c57de7b06cb5ff1cb998e3aab8ba253ba920ba31e7dc8bfec41976e3ad4b213dcae330186cb5ff1cb998e3aab8ba253ba920ba31e7dc8bfec41976e3ad4b213dcae330186ce60409e2edcaa7941315d34b723f88d8843ad908cc922162569c345ef6cd228ce60409e2edcaa7941315d34b723f88d8843ad908cc922162569c345ef6cd228e73eb9cdba111da2c07ce220162a21e993a1d5d604184ce34677a32b3d215ad3b65f51dd64e561df712ffcfa597ef09cb132359442b762bd78595700211f8c564933e13f24889e13dbeb3ae0d60ea4fe3348f6c8e786ec2178021a072b784090e14b4aff04ab1ca722e38fb9800f7330467cfa738dde419b708b7f6f4e76b1849d33bff1affb961fc4fa175bf8a21eae9b6995f3dbd944376fe5a75c7ef170f5c1097e4c2cb6982d590d53e21e88557d35d300ff099480b772097f62a7a8b369f385b822f5bed90009380b6d141255f6b83a273c55ec855412b44d22880f7d644fe703d0c733cafa6354fc977c1a66c46fd61333443db8fc562a4c82516d87fa65e13eae8aedb529292e3ab8ea40fcdf392606c434a957259c32f3343486e608947be515c7772019f7ec690e5354c0a6cc7abb0924eb479a620878893649b8e663e094101dd2484cc4cd5a8da36615b95066996743359542db543b3f4166e6061956265b85bac772601e6d8befdebbf75d0ca165edba8a5af249347e2a6036be1956265b85bac772601e6d8befdebbf75d0ca165edba8a5af249347e2a6036be975610efd323246b68e75043bcecdabd26e4419cdea823235a57f55a2c3203fd975610efd323246b68e75043bcecdabd26e4419cdea823235a57f55a2c3203fd5973708359b381badad26e7bfed44ddfe09f03600b524db5d9f3c92b229d95fe5973708359b381badad26e7bfed44ddfe09f03600b524db5d9f3c92b229d95fe0b03f8844b6e9107590d548ca86c93e9bf54b00c166e607d849ec5905ce1f5520b03f8844b6e9107590d548ca86c93e9bf54b00c166e607d849ec5905ce1f5521abc88ae429447f6b5073448904c65d238df8c8c160b7c2564c9908feb5083981abc88ae429447f6b5073448904c65d238df8c8c160b7c2564c9908feb508398e6d4f0009db13dc49724c7c3cc587639677978bc6f03efe8c33b1f642b642564e6d4f0009db13dc49724c7c3cc587639677978bc6f03efe8c33b1f642b6425640a818aa3f194360bb8a2268a10fce23870d91a7fd24afbe3223c4d1319e67f4e0a818aa3f194360bb8a2268a10fce23870d91a7fd24afbe3223c4d1319e67f4e46d0ae9491de60597fb0daf4d616807624888a6eca350627edff7194e9eb650646d0ae9491de60597fb0daf4d616807624888a6eca350627edff7194e9eb650601360ad49f21ad89a74241cc635ce45299969ff82855656d3173ac7614687d8201360ad49f21ad89a74241cc635ce45299969ff82855656d3173ac7614687d82145228d94304766aa043e248643df24f556c443c5cedae2c09ca6d86e4c45d45145228d94304766aa043e248643df24f556c443c5cedae2c09ca6d86e4c45d451783183e680b41ed8cc4257f4f4460fb606a8c9054c18208ed114af2e00c4e101783183e680b41ed8cc4257f4f4460fb606a8c9054c18208ed114af2e00c4e10a19df361df3f0377cb032ab167c762ca27da4e641e77e08b01a2c40cbdd103faa19df361df3f0377cb032ab167c762ca27da4e641e77e08b01a2c40cbdd103fa0af0ea1e3cf454c075a7d25cb12387d3388f17dc7f802f60c6509f818fd22c070af0ea1e3cf454c075a7d25cb12387d3388f17dc7f802f60c6509f818fd22c07e1bc66cd0f86e39c01134f0aad7867474d95704166bad6ad47013ecbc82f466be1bc66cd0f86e39c01134f0aad7867474d95704166bad6ad47013ecbc82f466b370f610d5eb781b3bd1e940ecbdff1b6fdb39e8dcf71d8e48ae86e0c5a3fed02da0b3a49a9a2f80cf929f7ce9745827864d323bb7ea427ae140406f9495186dbe5077c8cfae14ba53a28fdc43c38d4191ebcd8168785b68bd4fee51d259e223831a42a91e874b9e5aff48bb864ec2c5276675eb3bedde10c7f747df3ba4057dbf8d00c4fbd94939c6126fe5351479be5238aea878df5caf7724b20880ea8745957fce518e862ce4f1fdf72e3aa4e6ee5d83d472abd8bbf51817b7f8eb7950883676ca5168aaa2dbaa8f27978dfd8a52609f40315ad6cb41fd57100b41e24975e6256372b0e16a80cd258c90569710eb5676399141f34ffe781401b0a69ec4ffc476e5fa8cb6d7474b52159d887f4153c36fd055629d090323eb40659ade8132c4bec705c8f54b22522dba25b502095d848e909c85cb8115792c65ad60ed930a44ca60a415122c4e8321f754bf44f1b783ad5155eef994c74c205725dc5c54696db01877864bc0b7287532b58fdce47b2ff4261b78a7e53e13c1beec1d8f0f94e6929a7ef800a0c4bf6352d99de7b4973615e86de75bd6fda3868b82aec0f572cc328150c62255b8230f87b99152e4cfc58e88bb928e14a887e803a2f237c6373cbac06ffbb94e3e70d8d93732071a6e58ed347b9f65173bd0f193307d8587fd43913754f310d1120c26a6a32df128ccd0b0e2558dbec836e02c64cc1bea0f60bf2046f1a2dc37fc3d368c17600859468cd53b18aed1d3096d9dad61754303e1452c93c3c6864de349d89b9574644a2792eaf207331e101d7094264b9efdb59d8fbd5c01bea632df5d7fa935d873e4f160ef065928f3961f8e5ac5729a861d143643c4eabe1b9dcdbe09cc8dd91ea1987adf266474a045063ee83b89c063462b6643c4eabe1b9dcdbe09cc8dd91ea1987adf266474a045063ee83b89c063462b616b5635deb443f0dd6c92f45bc710dc1e406a9a312c7b69cf5336484e92c1eb0441b288abc2ea21844189add4e26541d4c5458a6194e83d4e8b7e0ea2fb3c594441b288abc2ea21844189add4e26541d4c5458a6194e83d4e8b7e0ea2fb3c5949a99eae8822e27b16eedd7804abe319fc3d7cf49a5bef2d96fdf978c7dc24fba9a99eae8822e27b16eedd7804abe319fc3d7cf49a5bef2d96fdf978c7dc24fbab5e75bb52cdbe3cabffe0058e83f338032643080a49cefc91ced745b70d278afb5e75bb52cdbe3cabffe0058e83f338032643080a49cefc91ced745b70d278af5a0c4ae3c568c0e8cfafed3afde4edc683aa5d58b833464a69dfcaeef103a0e85a0c4ae3c568c0e8cfafed3afde4edc683aa5d58b833464a69dfcaeef103a0e8ed936dd4428640ee705410b5d558b68289be5bebbeda22f9c379cacba3827b72ed936dd4428640ee705410b5d558b68289be5bebbeda22f9c379cacba3827b7236910642bbaeafae15cdd5fd0ad340332c455613c5abe1cbcf32ab0ca4d0e2f636910642bbaeafae15cdd5fd0ad340332c455613c5abe1cbcf32ab0ca4d0e2f606b611740c5f2532a471844fe076a8ad7e6bdf6feaf57b8c522f4bd069d9d1f406b611740c5f2532a471844fe076a8ad7e6bdf6feaf57b8c522f4bd069d9d1f42dfbfeb11d8bf99e39923694ed29b2cba6f17d0d70d42c3feb2716444fc24e852dfbfeb11d8bf99e39923694ed29b2cba6f17d0d70d42c3feb2716444fc24e854157d99be27b1e59632c5353417b61677d50ed55f27afcedf46ac380ca6fd69edcb9f31999ad209b5eb810bc412d6d5186b62c9bef5714d308be82089274b70d287eeb2d35493fa1f85dcd39bcb775dcf4f89a0ce002fbb1ea27f82645ea8c5c287eeb2d35493fa1f85dcd39bcb775dcf4f89a0ce002fbb1ea27f82645ea8c5c025643f0cd43dee0f3407fda770415d957d5d621f4d7ab78238ca7066a239d38025643f0cd43dee0f3407fda770415d957d5d621f4d7ab78238ca7066a239d389664e7f4d1d1c5c743bf37d11c0a7fd2fc9ede9a6fc8b5b9f18ec7f4f6def1f19664e7f4d1d1c5c743bf37d11c0a7fd2fc9ede9a6fc8b5b9f18ec7f4f6def1f14006f605821b5e8cea4e03a48dcb26b2e6ab365e1d8b1ed80eff410dc14a52fc4006f605821b5e8cea4e03a48dcb26b2e6ab365e1d8b1ed80eff410dc14a52fc8d1958d07f9e9532bce40e08cbb4cc5cdf3cec75d1958f976cef2a48fb05fbaf8d1958d07f9e9532bce40e08cbb4cc5cdf3cec75d1958f976cef2a48fb05fbaf6c3ac6053b15f6513d0938b0588458986eef1c10b30b76770bc53fef141f35ed0f4ce593fe1acb40b7a6acd51e5ec06747af941369ae5ba9b89375a7583a581db6c804535ec916c3746c23d0108b04c8671a9651bec7fab583a2790835d62550b6c804535ec916c3746c23d0108b04c8671a9651bec7fab583a2790835d6255018ba328af1c3bfc64f375bc294489a72e80aeb6d09f7ee9711fae4533618d99718ba328af1c3bfc64f375bc294489a72e80aeb6d09f7ee9711fae4533618d997903c63f5b5658a700920bb0109faf9a5dc23415cf1874f95c565ba89ebce0de8903c63f5b5658a700920bb0109faf9a5dc23415cf1874f95c565ba89ebce0de83b8d7b8727e8fcd53730f193425841711a5f6239f7cae59fdaa9cdd7a6011a964e3524de25f26b66c3881fe01a238eff20b6c7fcbb86cad6d9795a45d53c27ba35d1d1816da87bd40aa8a4e3d8cb67ee064ea7bfec694db78f1674ff493115bfef00741c85e23a2cf620c9de1b26d57d6a774c9d2e18f17547332f21f81f5d7b2aafde4e9ad415d95cc7b112bc0eef726633559deafa3766b4e30117bad5db95f7180b03591d9c8a4787acbf007cd4f2355c9743551e21ca93465fba32e42c3c1a4e230a2fbcec90e5065890d8f0bc6446bebd7a335690de2c7ed823e6fa20e915de758919026f25c61dd2468983c2bd8a705317537f74c6128a4a3b92b88aa45b9b8f63738bac607a8430eecfd1bc9e865ccaa6c044da404cc2fa1a695865e014650ce622cfd61ff054e0b466b168dce482c22482a9fbc40de8f2560b0fe29e41abcd67590150a6f732bf55022bb02bb1b338e77d8347a8fd9290c8c42989361b45551cdd53727c9b6870e8527d75708031db912fd1f4075798bdb66c4de1372f5596337a58e0410c27bd61ca9fbebf998d11e7cf779aabc0e33fcecb8c1f369855b684fa05d026d79efa48e7cfe9e4e6f5e7154fdbe85644b87f0cd6573401563372e50b75695e6ab618e40a7ea2cf2c61487e30493b4399542d2199be60d425f821edf0b4ee5a236b62231563300783dc58b000d12fef4035723031fee38a48c55b674b65e81b89652cd4277e06e35c6743224540c78b5c98fe757dde8b24bfaf77b20d4f1b5d5fa1ae5e5097534915953ed9dc0fbb09034d2c1c8614a5d1f2b0776c56e8d0d3e149e52ecf5fd5f7d43686da9f29e543ac60898662aee3baad30c810570672ceb28554a06c76ba8e7b5745a445234e863c01ee47733bcd0e81cb358f3f580a2df0945622c9bd6b4056c668989ed27d7307a113eaee03fb4967ca97dc56769d18d5dde58d80527606db20afe4d089c39df05e05dc936c5ac6d12042a07bc9bdb1f984f50cfc6fcc0d23b0ea0b02676c059b47c392a51b2a47fabf032bf594b27a13bb56524456130d5e34cf776818f4467c7571417f7f98e3cdda59de2c32260adc7622f5d08fbb68a31c8d035ba288784b05e779a1dae5a8ed75a9bbc02942fd484b0d8542d105a2f6a54ce3ded3561209a4c90c1f20795b252b492f136d9b9032ae47e549280bc1b6c0c265fce3eb0b2315a6e5f0ea33d03a555fd984b3d04c26367bf89a1969d5febe41f1265d19e67ba86d4f4829ad770724bf6ad2530c8ab3eefc7e5e09781d5d604c02d32a7842419145e387963e515f99cd03b731b023a4f1a0982c114faba853ab2c8e54e6449351c778ebdf6f9bff95a0cc0a191bd59e7117a5bdea55241103e123f3d060dcacb6ec9a1f9c44cd34b509e1558881c3f48849d8ebc2ee3570c8f3a2f7ee548d525607f468c6664faaddbb384292d444f014f5cb9a6976bdb72b03a0c4f56f636f5b44bf6c227fcf14fb5b751ef72b9fa9e191a6fba0ab50cc6da6737611884a6035642266014c01ecf04be024a50f06551fec866ce543d8fcec6d4a0f5a2b05453b5e857beba0210e97103b4422abb94429b312526e7730acf5d15fd2670194aab4063c5934a84b3290ad3b8a579ef3bc11c67daadde34b8c60537e337ac6249885d85d1356636313f578716138aaf01e3b930e863b46b6a0f33e77513b52c193c949fcf47b080e4a64845cd000ad3810f1247a90aa723ff37e8c0f1ff2af0aa46d2a4257522a8b7928b5ab63c6e89ee0ee26f5ef201a58c72baf91abb688580a1aa26eb57b3c11fa2c3af7dc8eb41ad42d4efa2f492b816a27abb69f309f5ff4dfb11d7cd5d6736ddcb61e46540ec1722812639d12b6ac89e8a303235955abd4492975bc695dc3ca1676a154a2c6a1f962acc38f666ca257e1104cbee0a82c9515569255a86ca1fa2c3af7dc8eb41ad42d4efa2f492b816a27abb69f309f5ff4dfb11d7cd5d6736ddcb61e46540ec1722812639d12b6ac89e8a303235955abd4492975bc695dc3ca1676a154a2c6a1f962acc38f666ca257e1104cbee0a82c9515569255a86ca105507955dca0caa28a24602df1f03be661803e46ecb6bf2582ec8f2c1f5f9b0a04c370f745396e4281e4b0ef2d954f12c3505da23a0d45d945324768eea232c2c19c12929fc449412680c201a88163b25f5b48af03a976e32b5fb74dd1b377669620eeb708a01c6c4c3ba6d3096aff0f4fe1874993a226641b5ec8599fcc1430c19c12929fc449412680c201a88163b25f5b48af03a976e32b5fb74dd1b377669620eeb708a01c6c4c3ba6d3096aff0f4fe1874993a226641b5ec8599fcc14306dac2fe96a4f7a232c65c209fb5278951281d9306f32b193a24046e66e93b0236dac2fe96a4f7a232c65c209fb5278951281d9306f32b193a24046e66e93b023118a573ef9ebec6ef55e58fbc0431d3f46fb4915076e7ec697b83e71eacba1490fa6c0dfe7004339636a223b3677d08d8fdb851404de4e63cd7fbc351335dcc09c4c80ebb8b1f757c80b51c20191c61f3f328bd1d377218948c7c902f177534bdefd0531496104a480967ad4c92bc4b84b0e12e78b700737287ee2191fbb19c06af3959a1c17765c9d2b86466a0a9681caf6302ffe1d0c2c84f2306424b67980f2dd0c81f7e11b3cbe8bb7ecad6dda954cbc225f1c4d584eff0f98e4e785a78efdad5c51f925a70bb43e1e9ad74e9a28ea2b49885ced3f9dd815af1bb56b79da6c41d450c94e2100292abfb498521156c107ee8b6fe0eb007c5001f3a40fa4476c41d450c94e2100292abfb498521156c107ee8b6fe0eb007c5001f3a40fa44759c837a9044d4747b129c0e8a8d9c1df0dac3245333d6fff4903a8d18d132bbca1adb00a7f1c28ab71f8b9665b694a3bab84b60b52b42b3b1dc246219555eb1259c837a9044d4747b129c0e8a8d9c1df0dac3245333d6fff4903a8d18d132bbca1adb00a7f1c28ab71f8b9665b694a3bab84b60b52b42b3b1dc246219555eb12cdee4578e1e261d1252a091ebf44464305be8ed00c5907c912ce39d4218b44a0d882f44d314d59091675f7d9478ca624b0dc3f77afe6c8c4670a4686cd713946cae98b8578b5e61e140fb968f46557d394aa81b8ac003010f1ce140f77db9d41cae98b8578b5e61e140fb968f46557d394aa81b8ac003010f1ce140f77db9d41d882f44d314d59091675f7d9478ca624b0dc3f77afe6c8c4670a4686cd7139466ead280070350311c47c9eb1c03a58514ed04e7518981caf337f934b718579cd444dd4366615ffc4a16d012b2fa90137065d3ccb410fa6fd5e4ddd7b5e4ffcd57bfcab6db99d5cfbf1705ca0536ddc78585432cc5fa41bbd7ad0f009033b2979ad6157926c1622ba4e1d03d478f1541368524bfc46f51e42fe0d945f7ef323e4aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8ba0c59deb5450f5cb41b3f93609ee2d0d995415877ddfa223e8a8a7533474f072adefcbc041e7d18fcf2d417879dc5a09997aa64d675b7a3c4b6ce33da13f3fe90d9736b830109d7e99e2a495615a7140ffee9e8b6a32db568c72ce8b51bbdefbdb8f9bba7125549cb01d68d90050ac9604f5aa43f6fd63e070f6d7d095f8d7461d023cdc1ee2031e60a0569da5abecd2f40e211723a199caeb09d2029702bd440f52b3dfb6b533c941b98e70c22101ad2bfc2cc816bd0942933465dfb8030828dad33fa53d17143d8862fac76d24910a957982332c3126d08bc4243329dd8ad05782fcb4d0643ed123a3a217c5f2c0577b481fead284ce2cfa9e8795fad844686e86aa4ac06705b306d78e1e45fc3b9ea319cb877621fe983f94d6e8fad9cb1f23dee13400b4278bb1cdfe7e5d64d9ba785d541a7e90245bb7b178f44ec960e672de01161a3665db3bfe10e998735c5abeecd59992566d2dee9d077158cb2a895f9b6e9f60cc090f574d851dea5b5a78c536c86dcdd5690017d16a0b7411fd025e25d30705c212a17333d4d219aeca0d3ec1d0ae172d97a109b35b2ee6427df318081ec1a35c5bb8d1b71732bf9e99ec7876ed99b41e6c32412748f1815c464672de01161a3665db3bfe10e998735c5abeecd59992566d2dee9d077158cb2a895f9b6e9f60cc090f574d851dea5b5a78c536c86dcdd5690017d16a0b7411fd025e25d30705c212a17333d4d219aeca0d3ec1d0ae172d97a109b35b2ee6427df318081ec1a35c5bb8d1b71732bf9e99ec7876ed99b41e6c32412748f1815c464870280ccb7ef497a41bc34a2bdeb10c24fe87a018c7868d7df2685d51d7253eeb628fa01fe3239df37c07a3c5588023d721a90f10482d808a21e01623608e8b0870280ccb7ef497a41bc34a2bdeb10c24fe87a018c7868d7df2685d51d7253eeb628fa01fe3239df37c07a3c5588023d721a90f10482d808a21e01623608e8b047a281f4ba26e6e29a94d89a4ea7208200f39620c484f664d9ef3ec73b4b8c29b1269819cdfe846827ed0eb90683390ba08a4c452bd738bbed3f27dc43b7da4747a281f4ba26e6e29a94d89a4ea7208200f39620c484f664d9ef3ec73b4b8c29b1269819cdfe846827ed0eb90683390ba08a4c452bd738bbed3f27dc43b7da475a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd550925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089a5a93a88493aa32aab228bf4571c01207d3b42b0002409a454d404b4d8395bd550925e8ad7bd971391a8b1e98be8e87a6971919eb5b60c196485941c3c1df089a36dcdde33749e2db422c3f51eea5deb71bea800490d96c2053680bc4c6154b3debcb35563ab0d4a54fd83891e6e3629594237feb45e88ad023d3e329363cf27336dcdde33749e2db422c3f51eea5deb71bea800490d96c2053680bc4c6154b3debcb35563ab0d4a54fd83891e6e3629594237feb45e88ad023d3e329363cf2737cd978b6e584de9f63d31c671f523882b03d102092c9af77e70399feba3401d464ef938dd040a288e2e3493f834b5ba37b8804fd0ba4c1829e981677fdaec94f7cd978b6e584de9f63d31c671f523882b03d102092c9af77e70399feba3401d464ef938dd040a288e2e3493f834b5ba37b8804fd0ba4c1829e981677fdaec94fd1d4af5aaf8d7dbd23e1768f938c8694fb9bef1ed7d740508832947514056ea58c702006d8133df35435597f866603f8ca23fdef3d9f8f7d78d833ebd350e52f975ec2c70484a65b5fcda5a43905dce1dbbf65adedbf04ac965f04450d6a5130975ec2c70484a65b5fcda5a43905dce1dbbf65adedbf04ac965f04450d6a5130d1d4af5aaf8d7dbd23e1768f938c8694fb9bef1ed7d740508832947514056ea58c702006d8133df35435597f866603f8ca23fdef3d9f8f7d78d833ebd350e52fc4eb4b162183cf0c2e0e91eb7e25c63b0224d7e3fbb094055c469744d9c0685fb173e7221f100a147c2705797c67c89250d637e71d4a82596a41f86054d5c358710ccf5dad5c2bf5c7f379a10a7e906643b1b7fe987f61f21f1f55860c1522dc592f6317202cf14df2e5ba94c086f2b444bbd6bf700855dfcc5c49fe5f342a6195136a392b6a948b7f940b58df53f45b75cb5314cc6295afff2eed22a73ce67f23ad4ff70c0cabfbbb77dfc3899c11bfc1a13244e49cd9340cb43cc45ac5a49426f4f63b1961828e8592e07eb03f24b66f0252acac29397b4683fcd2aac0dc550b8a0bafad7ae84549d4ff389b805b6487d1e759b8a3680b4bab26b92bf3949db5131043496075b254b3a8dacbb35fde07fd5b48ac634fd61701ab950b91625940a7b1abbfa4c4a41ad63a5195c1fc748cbd58c14f6b46538622609c45091232c3fde5d9638c058027054d92c09ff11db870221a269bb294a3ca4ad32a518f0b18f54c4ed7849e2a8bc964322ff23ad96de151391ffe613d4ec85ee569086622ac6ab338d5497a6b13570efe86e0d636497f93150fad69229e6312cc6ff9bdd88ffd5c2a5dabf7e44025d01f3cbb0927c05aaa8701b96411cfcbe99e8a1ffff1e2bea0d71c8ea7a5e096936bff52b48b00934fcd6b0ab19b6e6aa4e5169eb52262b84d686885bbef4f5f2be8bebcc67bbc2f3482130bc7ddaf05aa8665d61c547caa008901c5774883d7be3ffb332ef72bf4fd83a663058e6481a2f6e09206460dd45b6651d69e7db6e94645a87a01a706c0c76fb243945ebfdeadc7692b3420d0db6fb35a9786a3e8a89f4e8f40fe990060260a1ce668664dfd1f1b818cd1b2185513851c1d7d953d7701aac7bb61f798ec1bd6320115b3f945d4c338d75f6d3c3e5396f1bdabb97c08549fbee07b633602e59b5fc8133afb46432880702039f479897086048a51fc3f3c0c87bb1fd9d8c8cda88b6fd6392fb2d417f2b6bfc3ed073d84c96cd4d072c48566d10039fec8e8d8efa0ae5542b6e71a7a699f2fbd341376b13d7b49d0e72f47aedbb6605638fd4de2e83d4a57b703e314550ad185e301462d13c369763896a7067180e0449c46424061207cca6bb12390259a40e31334b25abd937a2c789951cf6a0758cf3f7c6f153d7fa277c24123582a278e0ebfdb53104c79c46ffe6f8551c4db67086e2826bf338ab80ae443b9b22646282664a41ef344633904f9c300fb02fe3647d38cebdef07a2e0edcc07d9e3f90ae0f938f2a42c1e613ca1580b68294892dff4df5d92bfc3db47659446d7a1a77d0708a2f17f7906ea69f937853e282105c2e79ee0e9fe4cffadeea56b226dd9dc38497f18982c08ba33a59b120fe6967ba0dd200172aa4322a66f2f9c15741134ccb769865bacd4a4f52ecfbb5c228428d3cdfdfc0094713437f5185c717542d3f2f6c1f66e29f94ea1bb6c0b4a06832e470f43b1244f78b355a1734940760b90d935ff0f979d22490fcf3c67e35a0b20c0b7bb1f93b3123a7db42a295324509eb6fca3a95b3390b72e90659da119065143dd436c2c67f3d1a5abc10949a44e82b8cba26666a77703cd020843dfb747f67c0d185665975be20a0a3448425028bdba2b3da2822aacdc453e591057d596d8afcb96b6dbb9132737f6a51ab23e0dbb3a727fc6cd10dab879b358194851e4053b667098d703693f4dfad56316c2748566bda9d24098c7515bbb43f38039004daa0c4b2784180178d67fae95a0344d6d0e165f999503311ee12d2b103812ad280cf064f04ed68cefd011df54eaba66301303e59e094e060f4ad9a487cabc2636ce766d23982f5c93558a6244ae6c7ae1979a3cac50451a1af0c8a36bf0d6484ab765eabdf6b98ef5ecd7028d80ff40f0d24d448bb7f9a655e517af569d5318ae82f42545d59ebe5da5cbabb8d6e03a0525308ddd9f39c509e88e0c274556785e714683eed2da020af3e578ca05268e080f810861068573545ff0efc6280422ee1214f00907b965b4a8035363106b8337c2a36a879b6043b595fa301f666ebe970b3ee62f65c70f9891bb8864626d737e2c380c8af672b1d8fdbec0cac76f101bdbf766f32d0ab9d8970612d39af520e0ebe4e22f65d2a881d1065625981913ae8532b3cc141adad951e1aee1d33a6d99c0029a16a900c33d299b4a83b9df06f0de7f7db42f68b4cdedec2064b3995417e9442d911121fb28e12df0c1dffb5bd07568c102235cfb8a89a39a4d8ec3f36c5606e40d2434149c99980342b27346cd666bbfccff64674ffadebd3c07831cf1885b0e93ff6c07efe56a7f357fdf84e240d83431d528b570a35192fffd2a5329ab632e2d2f56c909ea7b8648efa0a092ef0792534e7f7c68bceecf479ed556c104ff08a379a9fcd8738467f133e2cb858fb370f40459bec0fa1805d07903988babdab40465ea0f33924959a9ca360c7f1505ec3836287c979cd8d8add9a32b5c1eaa41efdf0f8295b8bf7ae6a3dc8d8a8005e5d5f1a645e97c6f6032f34a9af7b3d89dbdca9695ce98a084a661938df287b347ed2aa2de7ead985f38e79e9fabea937781ffa9a808964cdda9be5b141313dbb28c4da9e9c28cf059913c2de0d04a0e439cb535a47df9744635dd7ab1d7ed60a26ec58e641913f494977f3afbe0b8ca61c0c106f9cb006037549c0dcf8dddd4c4dc5c4a011336174125ad25c5af49c3389163d5d5718b3fa93aa92f892358fdcbf3412225dd1054c4474181bcbff21065e28459c3d92a8c333234d5c66514d93eb9f4d8e1b11481661e6364c8f1662c38a01d98a0c3462065e8735f84e0608418ee5927ac85a955cc183a233743b543a192780da76644461d4067be18730e3aa8a037f274c0323947330ea0d3aedca90a379cffa2eefd5521e051e41dfe169d8fc69993f86551d6ce7138717a3a56a8bb2b201dcd8bc181af240fdc8c2663326a4a42b4542e251ff3fae2b03cc5c12614daf6244300d2ed92ef8dc678ce10460cdff5e4211b2a25780c7461816ef0df0064c4c7085fb127719f366fdcc59a6f5a88f2d5d17216c774daf3c68d2feab03fbb42e6a551ebc427cdd360ff571dd43d7e13dc1f00cd31337ec602d9adae1b7b1e7dc5ddaba68b9c3fa1817c6af11cdeb0e0cd5f07f7d2628d73fc8bbcb4e782964774ceb51fed45a74255d73a76010a7bc9485f757efe7158947be4101a196803fdd87ac3f7eb9bf410aa7df97a3a054f962f81eae02bf015cf2eba06be5f11339210c1c10ea47e9ca67964ed928ae21285ae1a8e8a2189ba611ae4499c22214209762f287cc3a7cc6926a2a12137fadf4854839493471cadd03f5fc015b79e54c9dcf995caa7d7a6820de72b9fac98ced48d521203a9ed118242c2c2c46f8e40fc2799e8d8661620f4f03b3b143c46c401a18afd725999287c63845da3783cb56f4c8c850d3ffcfce840ab271d9bf0f6a20958f45cb79b86c2b990ad96275a5787e60de5d20f6dab234c37670ec34644c03e15ef78805ec0c8c8bf4146daa6d8bbc5e43f491a22d9d80a44a4540962fb5bfb0fec854112857a36aaf05bd8d06ca652c01932fd97bf6b60c48387bd618dfc8ee3455611451c073cbd1df79b2362f5f91c7c276a00f5c20a9bac67570dd9c1a142a87106a10aab3f079485049152f853b14db3644c2aaf9d24bf1b664259ce1a6203c1248de4013badd27b2044d9ff69e320bb9b378238bd5f0aa7421bccc8efa24003396fbd11fac8947315e6a6cc1204fb84fd87f25df8ce1eac24a58873c85168f0a2547185d764e2a007eef2e25959336d6f988f2ce0e004f885d1e19f7f2e90542d2c3742a323980c2441af02226f694be97dcaa564ae521c07d612f71cbd974576fb31491e8cefab1fd8ce7d8cb437a61031d4286204eb60f8601ed6b1ca22707a28f0d62fd1a21bc630779e8a39215f282dfd21bc15f223613db32826db44a2c22eebe8f6120643817f22faf0d61651175f831d180c8daaac1fb9b26c5dc06e9a1a6a98eb0cb96a184728c3977046b7b5bbbd568fedcb2d356b19fc49bb875e61fcd30bcc4ab573fb6be326985c6242346cac69f34a634495e0b2f007f860f63bc66b9b48e6ff146a7825b95e8ffd9a61021e6a1841eb9d50b5dfacec798ed34b1626645ef3e661eed99e05851e58872154bf4f3352c9f6215876a00123a6908f0708d74598b363cdf1f7a01a99da9ef52b8e847cd1db3a0d4e7e75f2da05c28566fb67361bb96e4c1c4f3bdfa6036ba9d31ada6c3bfccc3408d8ddfe23894bc0ebcb556377eabe14d9fd717d864b3fcde9c109ee959f3fcea9cab719029f3fca7f6b7227026cd56a99457e168a25ea8daff015fe5028a0ba2ab8281657f7cc0888f2517ef61d67ed885c81683631851670f1b459c62594def4210cfa8d28c352ae372769c964338c691598e03cb6fb30b7d2e175fa90ee84ee8ad334aa69842ab651bea58134d4f8bf1ecd4c7da2fd7e6833d45232e9d3044c2977c3ed11b06f36890be720587b691259e80c9eb61f4d6b4b6b918c6150ed2477f628b9200fcf912172b97f7f7e5ce0d70b4129cdf916a9493484e2a98981fa8430e63da87e0b4543401ba5cb9c2ce0d70b4129cdf916a9493484e2a98981fa8430e63da87e0b4543401ba5cb9c2ae01eb0000001704d2a90e59e4fd397556ecfcd2279e69886cb52b3de2ef7d28ae01eb0000001704d2a90e59e4fd397556ecfcd2279e69886cb52b3de2ef7d28862459609d4688d3f8d1f30456172443230fa11c25e9f60fd17a7f18657b801a862459609d4688d3f8d1f30456172443230fa11c25e9f60fd17a7f18657b801af9cf636526fb20c334d87221ce0e656fdd7e885eb64835a1d7a3ac79446410f7f9cf636526fb20c334d87221ce0e656fdd7e885eb64835a1d7a3ac79446410f70f6dffcf3fac8ef6b7e2365b2d0ad94ff7176ec7d72392b9382463d28f333c360f6dffcf3fac8ef6b7e2365b2d0ad94ff7176ec7d72392b9382463d28f333c36bdae6a05cabc415af229a82f9f5b8335ae7bb5c21e62d717b5cf0b1e74fb1c20bdae6a05cabc415af229a82f9f5b8335ae7bb5c21e62d717b5cf0b1e74fb1c20fd8fed945722533983a401f2dd7a08062f4ab526b628515cf1a7327118bcf422fd8fed945722533983a401f2dd7a08062f4ab526b628515cf1a7327118bcf4220fc39edc12a134f0366ca6bc57fc0b53708b6e81356a421afd610c772d627b4c0fc39edc12a134f0366ca6bc57fc0b53708b6e81356a421afd610c772d627b4ca97f8e32481fb661c2b0e344f0d9ea6907cd355b1c19780778ec0219cf905670a97f8e32481fb661c2b0e344f0d9ea6907cd355b1c19780778ec0219cf90567003f2c8f7590587aee33a61bc33cc5e55c211fe099c5b8217ec5048212ad22a0b03f2c8f7590587aee33a61bc33cc5e55c211fe099c5b8217ec5048212ad22a0be7b65e9fc5a5d09ea51a595cea9b5fa1cf8cded8b7154cee822d095f725a63d3e7b65e9fc5a5d09ea51a595cea9b5fa1cf8cded8b7154cee822d095f725a63d3ff3bc5cce92bd8660f0abe2df2b06914dc095df12f223348532b0291f0a22f78ff3bc5cce92bd8660f0abe2df2b06914dc095df12f223348532b0291f0a22f78a6464be1fdfbba30cbcf6f302b2a90613782bf092167ca5bfb3be6d34624b65644a773cbb6253aa10bf6e08f231499c7a23bde375713dc3f8b032c57678473959782d44bbf25f43336c44257193b671da294833a828698d9c67c4e9975b7e02a5018c215828fae56136cedd66f44e5143567107dcc1974e034b7b1ef3d3e0b64f8b981b6b2099be671a046efd16277e25c0b85746b432d53148b4c088bf61c5f0b4c8107e743f6a6588b8a8b784f87fdfcda5a1275dc08138815132bd44cb738d1ba9f4136ce1f3a106a392dbc61d1a2e560235a6bd1c62ac928d3c94380b8ae62c67dacbda32401a6c4b336280322b975bb72511e9094098d0f8933a590f4713c1d6b100f6cbce17f213a8a316ea05206f192ce68fc405386176da7abbfdb5fb27c285b18fe9bbb2b3655acd39ce16ce871172e72a22efb9aea9ce333cbe7fb15a496db8b64005105a746c86af86cac5b9561287290e1d42783e601c0d6f5cab946044f138763894450613c8c84590a9fb9b04acb6c2062f0f05a5c39bee2b01a545a1375778386be40ec82ae07b8e5dc516f1973910b0867729a21d5ade54e1d333245b0edd44ff0276ca72dccb10cf43a0346d534cf5870bb989ded19cd3923ea687af02f2a10a3b50899e102900f0840428fb7d3568e5d2b037c7fd2bdd604c2c1af9ceb9cb4f2417c983f94d8aa63e525bb788e009b30ebffe04007cfefe7852e27584a262cf2b3f958fcbf6a1f07ecea91de12bdc8275bde8eedba359408c89ab54469ab6735884de16ab11c70f90857b14134188ec924fa7fc86276a2bc008b28ab74ef16cce300bcb5643a405b3755b9af42090efc206889773abaaa25b7aa542c1c6cae9a5835397e57517496e9f2281020322d298b9ff251cece40a6360ad60c3446ed19538c987716480c7d26b0d17fec4f299996dd8b1f8ce696a6360ad60c3446ed19538c987716480c7d26b0d17fec4f299996dd8b1f8ce696b511f3be317777aaf9c247d8b50fe9a53da3076b06c60ddcc8903a6e19059540b511f3be317777aaf9c247d8b50fe9a53da3076b06c60ddcc8903a6e1905954040d4c689bd16c86395e3d573e23365f1574c73a301122788d47bee40c834ced6c2cfbfd456267ce3075e00aa2307dd2e628518b10653a40e27c6dc6531d57747762606f4addc518d662699ff7211a69c83d97acc026c21312f0b9bd7ae6aea005d665a96efa6647adf949832ec6ed0acbc4f2884789c41862bed44580b9e018c0ad1f00b897a278e01b81d9de2e60da09f44430cb884e3c2f3ba7061e66e5958043cea945d627d454039e9a9d8714ab73c34c4a1f2c2610608f0516a58002912ac32e23b1b702030f64b62bdfe9bce1ce039cb5858afb7e0ecde90f9f3a174b06b11eeb9b7e85e4691daf7c995635a4247d9f8c02613ee34fee2643c21af01060221c02da748ff3f3f712e0a743737c85a104bd67de833b83161f492ccd6334becd38a59607f6acb59f307c48b7b256388f86ec5b9e3c211c3251c86373c1e92f39e9102106fcd25d5a75975a5e6615faed62f39e45d528c24ce4ba30c41b951da02c6a2ab536a7aa0909250ac24c10e2a29f6a0e9757304606d1e3c42315cda8aca2052ea95ff6ad674dbe30e83228220444e8c965979a62a7c6c4dc6b7b2f7040ff2a956bbc02010f9c33dfd0d63237e944c4064a4705b21c48e5dcdfb0182984d73ba531cc2d82e3d4c52984dff7fe1ae03acd37c8c3154f469d36e1b3d77b260f034fb896f2b0e1748885dc80eb7aa25b0e1a554058a9d62eef014db770fdc07d7a52b21b9edf6825e0f51d6450b4cda9c5008df48a2c51dc45df9432d387be8c62318d1b50655c6cfe300887b645b1b3cf9d09b15bab0b3a600cb2c63ba079295e7281417d534cd0339637e5c9a442c1aeac35a0a8d4ccb6bd47279222284ed97ac76bf9da93a0cc66fdd70ebfeb9dff7f82186504f548508cbfdbd50fbd52e441cd01056a3dab574264afbeb72744a43d00fdb541fd6e61688bdb9130737f651c706ea1c123c2992f0de85c0ceb6af3e6b3731d56e90930ac09a36807d5a6dfad56fc2d2aee8c9e527e27e362b2f1bfcf8be6c1a514fdc5180edb44db7d05cd94c7db64da577294ce370a0ae345e05d0d8678cf2d199817faf815e5e22831f8fb666da64a1f144fe0a6241af4f5780b760e18496297ec8de216954e8ff91bd78040c9838963810f45104218892bbca225cf5258b11ef16206e388e706287c5687541a6766b8861c8661e069ebb3fc35597ad0ff4ae916bffc0cf86ff5bb4c9193c507bf35285c7efb36aea390af8e55a2357ebada6483eee9dc69a85ebd778ea855b637f4680ffaecfe10fa25f8439e42f3565c1e96cea09f7fa87b07b950a9f9f6d152e78a701843f7fec2c6c8b6498f64c9e6e397515bdd0b37276b6600f5a131b51898f41e077b7ecf7185a73a1f0a33b34209b414cfd77843161eae3332f68967f9bb986e65a8b60147205cb62f77f58ba06036eaba769ead9b487a75a82cccaa17dc2b5f81a4e5d1f90f8e3e5ce93d3918257f58180b14608cbbc2a89b00f07def79a3410733527afb39415f89845d1410dbf0f74283191bacce32c76dff775a06cda3478fbceee25399490ba89f03a32bf15091381eca7fd396b24455d82430363a8ed54b32775b1071d5e234cecfb55e0082819c10190cca26b2be30d8d81b7a1b5c967b6e0287ecce5aa68f3496306d8670e195f4df2bb879bc927555e1c8fe4466ad1476467e65a56cf91c9bd33472a6424f4a25bb652fd5c3e0c59731df8a6c9a0a79186c8131e7e8eed632e7a5848236b0cf983c382833670b22629f24340cc83d56c5c18ae1465345616afa669611f2f32067c7ea3d068a4dd637230fc0afcbeefc32071bf855f2e099022b5c22fae4d021fe59efc6ac395a9115b6d7a6661bb6e5ee4ff9762015ceb261ab5aeace52d8e25330588ae107e87577923700433f91e3bf19c078dd005e94b0d8df3013a7cda44e5cd2e18d582aba3affb2abc8ccd39bc9db86e6e8c1a27b7b099b9d2cc34db32edf5e606e7ffe20b6a44d202594545a668009f106156e107e5d3004c4813efb108e840539556a3091f8e5688428eb9b3d75786f14e73742842be049ef58e75d03a6328844b9bfcc41fa67ad5bd77aebda8f81026dacb9de99903eef2d9586980b8c680617991c290a5a6722353f460a59d273adfccddbaaf29bbc4c51f003ec6e589082b03ae0840cff131305d43846988aa9026eb8da56db61bf0631b6ba2d2c269cc499d4dc4d9120fe7e468b0ed3361cab8cbd664d366f1fa01c4592339acb2fd1f1afb12eecaa8f4dfbbbe524fe78c09c3693572d32385235876922cf6a808ea8ddfd38b4d9ab11c15deb22837a21f386e573b6cffaeb17064133128735c075ebad76fe90730fb292d1475cd2eaa0d88932fc2e574a1b60d77bec92c4192d234820081c2bc91d64fbdd35079c8c6d454e4c90993fd31b9f5ee785990253d43afc4f5b45a7c6ad18fed742d7fabbcef30f5c138174e02312157420dbc09217f677a7274e6c464c03403a399d0d01a5be695b5dbdef584bfc7f4c25279239620e068971f4b66150c6eb1f1b4b83e6e4cd524c6ee246f1277c1cbcaa6d59dcd9c1f9c289116b6293380466c7c121bb9d7ca1255a0b74aab51b4b6b98d95718772edc4b66df230cf27cd8c76e8a9c79c7251ed0d7959273702fba8deafdb8d6f704a22845d52b267c8cb7af746993cf3e07037587a87f648b7bce16f03d7e654f8a460aa99e87c89b681cce5102e843efd6aa0932158c4c15caf473f6ab604368a935dde63b3610a2a95dbe9b0484a450993843bb5f61e5fa49b5272807974022aff1cb7aac8eb79f29845452cd89cfe85e29e64c70b3be47ada80036d83ae505541f5f59950625ecac2e9886bfc126c1e12da8c6d6f2a14c4de3b37416fd1494021bdbf5ddb5773f03cdc1e7afb4bdd1cfe741709a81462636897d5060a6a4f632cf391204a023eb5cd22e11593a4fc243f1e4813a4e4a1a97975e6ec54b9deb484a07695b48ca9120a674e5bd744ce270748479da7751c6e57bfde197854cfd53a509be83fcb905be0182a0768caf5738188381d6bf82b5ba00d8f490037d83e2669346653605befd7e405daa98a45cccdbf9fb9ba147b36d7a687ecfcc57de3facac0cbb5c2802d6ea379be12fb8d8b65b2addb203da7642d010fbcbf263e9b56e8c8cf0c8977d0d36063e980af441351ab28f5904c2cd709b2b124f7ff3b3424768bd3b7728e9d9ae16345367b6ec0abcfa5a158f451165e0a26eab077dcf7a10b3bf0b992c68df488729261b6827e1af27cffa3cd778b274b2790564e375e1576df15fe6af84cef4a39a777bab280b7c269a07472182eb5994e04d961b7dd3410dd297165fbeee710b8515b9be221fd84a3ecd7c0cbefd2e2efd6ab2c8d5c76a3ad72fcc61d650bd341a3ddafa3144392a93c5d64b79da7025fa9fd7bfcc0a0c5b1ce719dafe98328ea67a17a7fea3cae770ca55f4f5e62649f0c27d96c779dfd1e417f602e3868de4139c329f23049d396034194f4143670be4d4af03e7d68763706b5770145996a1b2cc2ced4e0be4232e0e71da6cc47b6a721a9c05b52992cc4499448b19a3be6ea189ce492224d9c4ddfbe4a3493d2c7d81c70392b9b5b4a7fe62de1970f58b0c313805a99a06120c859ba777ccafa6c502c7fcd14e5c8439e79e69c7e0ccbc633a2b9ace9ed2705f9fc4d764b9f288d483f1d6c126775d4e83d3bf42872c1a18850086bfe88bc6829397c5a18f6f94b400daf32a5e91bfb35871369428cfd0f41042844c4c74d93d2cd82d0b399319f61257ce6ae17f7f64035c1fdd6e64fc36986517d17dcc385f08d9b7060e640d1ace7c185ef5f7e4095a1ebcdb4a88bfc52bd03585f4886357803f8809fbebb0823614309e7727f919f8ede6fe71e2fc72a2edc318478c257e7b71aa30b77d5961525cfb394f09d53078e0f409e41323989341e4ef6f78d81d50810da0be90afb46c5b175144a258fd60142b989397a2377190445e2fddc625ea7972428f2a8647aa9643224838a04abdb4f33919fbe6f3374052bdb8f3ad1ad9df075e3272bf669036c2dadaec9cc27878db1c386092127b4bfab702e7beffdf4713dcaf86b1559b9dd965054859d6e59f0b3094006c9f509c15d17a9e112b3dfd86c614f412bd88f71107cc9f3ffd4e4753c7a0b6efc82901397a79a8a073e0c198b4547107b5cff20e8d613ba848c6ccab1d251e14980e98182eb26ffebedfb088e52db4e7f01ae20e8aff68039e3701318cbdc92dc862938141140a45d546f78a1bc593b6a0ed1c8f69e1ac63d6c7dd85c83cda152ae75ed2f064482124529ab01acc80272f410dc53237707137d23ef52c94f10a7cfca85f765993b454cb5d6becb30fdfb3e27eb87f6544ac348b0736bb22ec92c1148891cf259630243f168f32b8100e40bffad68805bf5abffae16e36b23f2d6e415a6888b9257ff0b41d69146d33895e3f3d35b982caf0f70bca3754770606f8ca7abc6c3c782f321d00ef2d562ebbd6a47dedc40cc03d5581772bac98a18d9806bc2a4ba4d71aa743b7a28685de80897ee94196b8377b3716429a898809b4496635f945a981975677c3f28401a4ef66b91f6f669a9a9392935c70e50b66635692faeeb3ef1a38f42636d81a9bb4587eef61a235613e75dbdff903589d2c0e0f5056f17b580a96173a51f831ac7709d012d89925125c03aec29a33d1c0cb7b5ef99b1e24e03c463633ecaedac7e8a2b04ab5a5ae024d259f207d70ec0a21d2befa2bb3b536c386da3ceec79399baa9ed6eb812ff9d48f68254ee5091fd895ebb447828c5f81df6e98fc465cc67ca49fcde2a002d29e8d4cfb035c4bc9a16aebf38c4b950f59b8e501ca36495328cb9eb622218bce9064a35e3edf53a2e812a7201ea2b605e060e4c43690b63d3c67929274e84f85adb64554380cc274429cc3c218e7e782adab5e836a081c731a7716aa02507b0c37b65846f2dc926850f65a80a9f77b89eb320c5fbeddf84bd2f57f4c89933001a567529d300101cef1ccbff4ddf7f5d9f0dd99a72be3cf34cc68fb9b04fed3299507966245fdcf8cffac082692b868cbdfaeaea9278fcf43a22a4d6c0f8250f0221aedc1324d071528f9f602b7403ab513e1b89a4ff01677199ad1b9d4081513285baeaa59a83a2d4f2c2a14530c38c3d8589c8fcd3cbc716f890391f5696e1ad6f6f76dd2b2fe251e51e3877555c53f7f35173798b98540c210efee7d5f46dac5835290d90d9027289ffa5d9f6c8b4e0782bb31bbff2cef5ee3708ccbcb7a22df9128bb21b84161c9fbf7520cd14e7019f92120bd87a928a074156e91a992eba9fc9436e887083882cc6015984eb0411a99d3981817f5dc5c90ba24f0940420c5548d82de4cd39856438b0eae2c0155ad15e281513959f7ccf998784e83e803b9be5b1b4747e7fc50db3699f1ca41ce9a2ffa202c00c5d1d5180c55f62ba859b1bd6cc0084dc4d9120fe7e468b0ed3361cab8cbd664d366f1fa01c4592339acb2fd1f1afb12eecaa8f4dfbbbe524fe78c09c3693572d32385235876922cf6a808ea8ddfd36498a2de405546200b6144da56fc25d0a3976ae688dbfccaca609c8b4480523e54115199b96a130cba02147c47c0deb43dcc9b9f08b5162bba8642b34980ac63c67b5260b50a0f434e9b26585479ce67ab2184adc7b31c26d665642d3512835fb3610a2a95dbe9b0484a450993843bb5f61e5fa49b5272807974022aff1cb7aab79f601627f310fe180d1b6b60b47f1f287acac95ef5d0916f3f84f67e525fad524b53b17ae4876499e187da85f72e44b7107a5beccedcf346736a1ff4126a81f808f0aa32fbe90fb9c9c846917faff3fdd4e236c284b76c02dd33753dc9017742d8fad13bc28fc726775196ec9ab953febf9bde175c5845128361c953fa17f4e62e3eeb67cb7628549044f6e8c02d8510428338f81e3d3bf3b6eda45719ea05345d4b84a42cb844456b7061875037cc58027d6209bde49fb6d5a77592fbc49cc5a7add6ae8702f739c9a3b383566f336c403dbdc645122c56fdfe70ae70dfa03e1632c18d7b43e7d904442c490439f65d8aa6bf43e9a7da97a667999d8122d6266dd5fcbc6199ff40666d2075c42f72a845dc94014ee81627a7b33da58525c26241810ab03db518f0a5759d715c03da92c6fd5af43fc1a51cf7bd3c5f339220e3680fedb317103480c79957d4557111a7b0f53d046519b49187e75cb1b2deadc7ee5a3bf0aff69d95c6a290354c3e9f32de53aed17ce228a5b64d2fb48452cb43cc7d7f63e34dac2e540bbb617db81b8e27daee8acff9365c5f0347026b8f6eb2189dd456ae4b24fa3e7e00ed0558a1c9af1aecd9307dc6ee6e65119afff33a8c54db7c6688b8aa5fe0d48c0839c399d422f761778de8d4e134ca14e6257df73a93668ee50082fbc1f7febd2d4c67155b9c825e0b5dff86db556fadb2234ffde657317f8636c4e3d7dc0ad55345f1e131de353eb26e9d543588b65e7304153e9be6840eb92535f15f9c355edeb7f97bb1652148612ac935085601eba8421b5ba7431f6a3d9d7bea6dfdbd3452ff7656e48e6dec135f4754a48980c1d1872d13acda96635c2f6067fa2a548851ea9742c644b97bd8b01bfdcaf62c62bcc5aaf9634fa85ba8c358f8c072bc1f6b4359f7191de347f29e0d9fe9748f6ee8d92fd783c22152de09e00a7f469fe63f85c1feaed4c1d16d8b4702f603ae2da3ae4cf12153819234b60ac71adec661931d932a0cf0ef72c6a2f9efdd7b438084c5d69a076f682bba78192ffb1ce6289a9c5e4cecce13251642839b4a5860da620f00315c62a50ae4d335c4c00a1a98b455e77504ab37137238b60de8f579447ca1c2da1089497cde2a4e26c5fc7d0594b11880d22fc2e4506d6b0e6af34bf85126cdeb0beac744302e552d3676e4e3cd95fb8b0cf6f405ab22c2f9e171d8bc9118724d8b585c459bd429946f31ac2001bab0cb379773ae055b43019e5ff75e1c8d1cd445b07017dbbb92d15536c2c710fea2f963e35c30afe1a789037fdf04d02a56b71019e1553e648841fc675dbf1e1716f4a79f47c0af31120324abb061b8256ef397ca9e4f23964e2e23a422b23e16eb82d59438fac25ef49f6a3b3fb25514caec4d2ef90e9473dfb63c94841573ec44c8029230f21784384b29eb4b5293937dd64c94ea1f4f05452e91845a1afb0cb27da310cd12a45b5a902e817f18660ea1fa693524c5b3929c3c47a5d29cacf372b828e581ce68763dbe2b5d2aad120dfd501a8833b1219e9ceeedd0539b36538c891936cefc52f64c98e301fa35a8ce831e7f65a90c588db9e1ebbff3179ad2d7be4a239be1cc66060163fd5004fbfa8f8f39b44e5c059e87524178553a01f9b30fd3dadb6f8337b0ae585dfe190205ec00b20d34a0ec004b83a6e6e98f11e77879acec0b93a42d24a7831047f7c405d57c4163a81cd0a6ee82d0a5492686bd81866bc7ce7bc674d24ef58987b3e21c260bd51adb26e6b15048463999f6c90b523df1f9081d160d568110061e69ff644de20f31bea2eecded49c97e41ec276aadee08a736a87dff0d9e429872b0b3ca3b20cc0365adc6d1dba3a562f6d58fd3323c3ac3aa4f9eb87b717f28e8b88003daa1663164a784df7ef2fda33c166da4c61020c892a4c68083dccde879eb1810a120dae5e020699fc9f52652f576a8e13baa759101a1d22f297dba4f59c981e4023e89eb1c1c1e8174599facc51ccd43efa8225bbceef89958f74ab32a70869a2ec12de808c6f321de77c7f602545a2249527a2ddcc917a29feed70a6bd802bf08192d4e3dd9b9c182825b8e028b7f539d696887e6e806e671f411778c46435ebdf45df558b029cfbc1676133da03d0beb68eb5102032ee6993af3a5180d87154fcadf53a2e812a7201ea2b605e060e4c43690b63d3c67929274e84f85adb64554384dc4d9120fe7e468b0ed3361cab8cbd664d366f1fa01c4592339acb2fd1f1afb12eecaa8f4dfbbbe524fe78c09c3693572d32385235876922cf6a808ea8ddfd36498a2de405546200b6144da56fc25d0a3976ae688dbfccaca609c8b4480523eb3610a2a95dbe9b0484a450993843bb5f61e5fa49b5272807974022aff1cb7aa524b53b17ae4876499e187da85f72e44b7107a5beccedcf346736a1ff4126a81e499ddd0af115291cb3c914f03a63df4f88e13671b2fe317d6efdcf6c25d1c777bbc6ed743a472672e4ace706b5d830e3d86eb7a5553ce5b7cfd077af5fcd088a4a6c40f7d9411408707bca05f818590f4edcc9b1ed4c03c8a62b5a70011dc5908ec36880c4fb7cf35eed5f09b30a5de797419a655833d26104143db6af50f11db5773f03cdc1e7afb4bdd1cfe741709a81462636897d5060a6a4f632cf39120d16e346d8e5b307058dc0a3bbe961819e99928e277eee5b2c01c253586416e3bb48ca9120a674e5bd744ce270748479da7751c6e57bfde197854cfd53a509be83fcb905be0182a0768caf5738188381d6bf82b5ba00d8f490037d83e26693466f43e56edf0c49b0d14475a5b441e4e24008ec34334c16e8d197b8ffa8c14aeb8b5c2802d6ea379be12fb8d8b65b2addb203da7642d010fbcbf263e9b56e8c8cf0c8977d0d36063e980af441351ab28f5904c2cd709b2b124f7ff3b3424768bd3b7728e9d9ae16345367b6ec0abcfa5a158f451165e0a26eab077dcf7a10b3bf0b992c68df488729261b6827e1af27cffa3cd778b274b2790564e375e1576df15fe6af84cef4a39a777bab280b7c269a07472182eb5994e04d961b7dd3410dd297165fbeee710b8515b9be221fd84a3ecd7c0cbefd2e2efd6ab2c8d5c76a3ad72fcc61d650bd341a3ddafa3144392a93c5d64b79da7025fa9fd7bfcc0a0c5b1ce719dafe98328ea67a17a7fea3cae770ca55f4f5e62649f0c27d96c779dfd1e4123909be8e258ba6e2e73d8472b5494f22fdf49adff33e57c1e5043345c4a06eb7f602e3868de4139c329f23049d396034194f4143670be4d4af03e7d68763706095f49aa268d44fa762d38ca7ef6d6d5137dfbe2df9941b9c9bf0b7e7ddf7e69d580173d5c8ca65d5dc189b9af8eec990ee73a7581ce85202b03a7dd717e768faf1f3fbb648ead66d11f20fabca04cd3a5585c96a8eb110b9beda145aa3b013a8b4d9ab11c15deb22837a21f386e573b6cffaeb17064133128735c075ebad76fe90730fb292d1475cd2eaa0d88932fc2e574a1b60d77bec92c4192d234820081c2bc91d64fbdd35079c8c6d454e4c90993fd31b9f5ee785990253d43afc4f5b45a7c6ad18fed742d7fabbcef30f5c138174e02312157420dbc09217f677a7274e6c464c03403a399d0d01a5be695b5dbdef584bfc7f4c25279239620e068971f4b66150c6eb1f1b4b83e6e4cd524c6ee246f1277c1cbcaa6d59dcd9c1f9c289116b6293380466c7c121bb9d7ca1255a0b74aab51b4b6b98d95718772edc4b66df230cf27cd8c76e8a9c79c7251ed0d7959273702fba8deafdb8d6f704a22845d52b267c8cb7af746993cf3e07037587a87f648b7bce16f03d7e654f8a460aa99e87c89b681cce5102e843efd6aa0932158c4c15caf473f6ab604368a935dde63b5770145996a1b2cc2ced4e0be4232e0e71da6cc47b6a721a9c05b52992cc4499448b19a3be6ea189ce492224d9c4ddfbe4a3493d2c7d81c70392b9b5b4a7fe62de1970f58b0c313805a99a06120c859ba777ccafa6c502c7fcd14e5c8439e79e69c7e0ccbc633a2b9ace9ed2705f9fc4d764b9f288d483f1d6c126775d4e83d3bf42872c1a18850086bfe88bc6829397c5a18f6f94b400daf32a5e91bfb35871369428cfd0f41042844c4c74d93d2cd82d0b399319f61257ce6ae17f7f64035c1fdd6e64fc36986517d17dcc385f08d9b7060e640d1ace7c185ef5f7e4095a1ebcdb4a88bfc52bd03585f4886357803f8809fbebb0823614309e7727f919f8ede6fe71e2fc72a2edc318478c257e7b71aa30b77d5961525cfb394f09d53078e0f409e41323989341e4ef6f78d81d50810da0be90afb46c5b175144a258fd60142b989397a2377190445e2fddc625ea7972428f2a8647aa9643224838a04abdb4f33919fbe6f3374052bdb8f3ad1ad9df075e3272bf669036c2dadaec9cc27878db1c386092127b4bfab702e7beffdf4713dcaf86b1559b9dd965054859d6e59f0b3094006c9f509c15d17a9e112b3dfd86c614f412bd88f71107cc9f3ffd4e4753c7a0b6efc82901397a79a8a073e0c198b4547107b5cff20e8d613ba848c6ccab1d251e14980e98182eb26ffebedfb088e52db4e7f01ae20e8aff68039e3701318cbdc92dc862938141140a45d546f78a1bc593b6a0ed1c8f69e1ac63d6c7dd85c83cda152ae75ed2f064482124529ab01acc80272f410dc53237707137d23ef52c94f10a7cfca85f765993b454cb5d6becb30fdfb3e27eb87f6544ac348b0ae0840cff131305d43846988aa9026eb8da56db61bf0631b6ba2d2c269cc499d736bb22ec92c1148891cf259630243f168f32b8100e40bffad68805bf5abffae16e36b23f2d6e415a6888b9257ff0b41d69146d33895e3f3d35b982caf0f70bca3754770606f8ca7abc6c3c782f321d00ef2d562ebbd6a47dedc40cc03d5581772bac98a18d9806bc2a4ba4d71aa743b7a28685de80897ee94196b8377b3716429a898809b4496635f945a981975677c3f28401a4ef66b91f6f669a9a9392935231f7edcc7352d7734a96eef0b8030f77982678c516876fcb81e25b32d68564c45e1e2dd149047abcf33b34a9a2352b26cf99f653cace68a2b0b8ed4d546fcf245e1e2dd149047abcf33b34a9a2352b26cf99f653cace68a2b0b8ed4d546fcf289d8afbaf9d93f4bc1fb976c381830985c0bf3f5887c9d8a46bb50b0a7d6004c89d8afbaf9d93f4bc1fb976c381830985c0bf3f5887c9d8a46bb50b0a7d6004c6a7529826de71dbe35b43897f8a1838d66b7a9e37b2a00597f6bc30dfa3b2fc56a7529826de71dbe35b43897f8a1838d66b7a9e37b2a00597f6bc30dfa3b2fc511619f6b43ee4e1f400f6128acf0945dc78501df7f8b94610a9d00620539fe2d11619f6b43ee4e1f400f6128acf0945dc78501df7f8b94610a9d00620539fe2db5099bf8224135807f3ab49b7e57ca09ac09ddf1235ed02f7fc1f0b1bd530b76b5099bf8224135807f3ab49b7e57ca09ac09ddf1235ed02f7fc1f0b1bd530b767b433d32baae04ce61c6afbad84895cf2b07bdd34205b000a4300e2bfd4f3f81390f841e7dc9cc1779eade1714eefa8e62ef1b55ca790a361f42ce51173924f90e41af7b5577d7426c7dfdcc25307682a911ebf26a6bc8841038e5af68fe84b9c113f3b9b586c1e1fcc05b2a3020e727811705806796f66eb683a5943162ac686615a0416d022037964ef93a7351ce6605925adee0dbb5d5b174ed46d1dd2954b64206cbb72c782fa4fe8e7e79a2548a33ea8f7e0225de250dff0601e70c09e34c65a832e30dee09026b43462b1b49c5959e104b573f623051dc161986a48c5ccb6df26702af1924940ba8be3c8963c7ecccb8d20f175173f0d08d50199038fcb5f8cd26650fd5024dee8d832b56805948dc1de9eec58d5dfcc1eb6c35e27e35dc80c5a0e0a2ca36e8a6f4913c49c213fd0856a37968b0fde1b6488feb8d53d057565202aef2ac171f1547bb39d041c6dcf663acb81416708a2d9af1390c05d05873aa655a5d7db29ebcb438622e9231d4613e63e5cc3c3ecc8a69e631238b642512f465c6ed60ce953064c86d1f8c5758f0bc223f4f9e640c4e669dc7276a9f46bbfa66ecf96074cdae591f81a707f1a027de21b678736ea65e4730b40c5733a1f3f27763bf22972a82dde3ea92851473d5cfe4703dec2ba3224dcc76c77583c223f524ee54b444dbcc1727c9c5cf538c69f6dfb70697547126d736efb016807e6323f4ea77fb392cbd0fd4b3156741df6c31e297dadffb3e7cf0a6cdab6e3ac07ed1389104308b973656fc9b6e1b990df13ad0f07bf8a946bcfce30b64fa11e40b43116f70ce1d2e246c3494768935d8f97565f2d8ad662dc7bfd8f2027af3b8ab5512124d358f045e2058f2367ff958d87e1db391efee06c62bc9fbf69ddeaa2873f0437a260e186d61508c1fc7330744e852e278b9718149b54a5431ea30687bc187ff4cbf995c85379ec12cd4844f31d2e5e46f8fcb93a451c2abb19fddc990e11f9c4da2c1a765ca1f40efbd2009e8d58219fde29b9746c72f10a120332db8c37d346bca9ab41f1dc34a8f8d75f81c30e707311c4c36b9531e2ebcb79e4d2d8867165fcadc4f55c0e9a7da994e0c11ade0ccf759ddd628dd26f4abf603d81568b7aff9fc2eddaadb54c10da5325f5e871e2e461ce4f94a90d9e1398d2e5cc9850ec14be8662b9826b5285d46fb96ba57451953caf51b4c614f3e1ebfe12b2a4a3becc24189b8700ff642966db65c4d96b7f7a2398c4205bb841142639271d2dbfae3d0522109b1de203a84f46ccd13b2531a68ef415618f1172cd384fbced778f318fc483f8e0f19435dec33e5fa2abdf26b1d088916f072f6586478aef0b7de8d4054093df0f6c6df17839af8b96888a7af170429dfa7136fe88ef31770a7aacd034d0621ac775cd8c3609340c8246a446f379f9938aa7998563a1c87be421dafccdb9ca1f6bbcafc1003a3bb03c18a8d3acb4c5c521b6cf029bd688772e17cc9f67c15301481dd62a6d25c1d67964521eed8513b94e5ad8edc354090df8a20cc2c838239772f1d26d193d049b7ca9df242abf5784506b87b402f9c6817514e84e588a7f1bd8a5fcc1b7537b739a08313a338161f5b89006e11d16bc3a3fb787d959ec31f56641bfd3be1baf47898a63124e3ccf04b9720c6b11ad8ecc7f2abaea187fbe7e6cb4b72f9cdf73441f01cd080ad4959f544120d34d16df7d57d328eea1a18aa424ecc55b01664f6f1d4e431e9c8a2436312c7e1c44e8dc42de861811db84a3427e0cde79d3df56b74ff0f1501b98028d887b3407f4d3179888310913a62139f9fec8f436d911fb2526b7c988e1a25842e58bc091e31011c006528c932a3ebea0d86bd9d294d17314aac06d0e7e1432d888c602967e192599330ef179fddaca7ef2eb4dd4eddffd1f6c07496365b5143eb90fd0879df7f3372ed3c92d1d79936f8916ce450409c2ddb074b781e6eca6770cae89107c071f5ad66985514917fc3b3ffd0f66723edaf7f9a57e86e680fdf90329745c5d72dac37485aed94225572a9f1df13909aa484b7b2599d5f98a857b74b1be80f30645019745579d04cb9b4492ddb26ee296ffe3b19d60cb2a0d79f3d86623bab69e15a2146b78afc577ae08f9567d0766cbbbdd1b27ee749fbe56cbe30c8e0be053aa0bbfd75e79afac055a903302a0deedf161cfc3cade9346c88f8a4ece154a4b5e9c7f12917704c79a316e63ae034d99182606dc210951721fc3a02097e088f25a96b848c2edc395bf102a05b43c3d8f9bb2020a5ebbf7417488bc257c2e68c47ef5503a7cbf879a198e4f053f252d05d034be782c328e6d14c74e56a092113bc64261c36e221b091a29080ec7f99846b51edb6139332ab0c446f9586643dfe3180d7ed90387c78ad6670de24a3384743b9b5245529d1e8a88579779632220ae585ffafa387ac9bae133d55609070646882fdb30a4703557868d98ead5d47b2790212b668435d08afc0624832793cc600567d302e71c66d51de9c38369991bd0b94c5686a8ad0a4ff8174084e6f63fa1802564f840f6b9ea1c0c8df4daf4fe75e90b3a104adfc982f8ab9e771d5681e753be507723f8503cbf4fd63dead9907186378f8f319c12f00b917bc1a2afd6a8f05f6f224fed29941c1e726e9ee60c44136c9bff30f7e5c552b67eceef9d0f381e5196fb98f0782b110ddb6d3338f54460047ddd0c05bf48d244878bd5ad00d5a1c58a4ae3ffa5bc61143a9c53ce91c14691078ebf666ef047229ea7498bf8f63094c51e481d146c3549bd366f89020cda6e37b18098905f3f68ac09d79abd4592a563400bcb44dbc6c4b33b9f5243058f584c3f3a82c144e957b395aaf54a1f50cde6b5667abb5c2d23d1dacad65c230d22e71386fa3956420dfc2fdbe26c4d536dcaa85cb76f1dc151a08dd85a318dd4040782dc60313b93a4171677d620a4ea799159648c2fb2fc58587c6c1214c0e0a6912628db182b9bcaf747c6a4fd5b4f9cf48b18955f2a659cd4e3cc0542dd0d8b6516ba23b3def86ffe12b38e7a60a991c731cda261d6ebda45697f2c5769f3d6bb3d65967e673536ea1e34a50f422b89490e10bbbcf799aa847d952d9f7979d3d0f6aafcae0bbc7ae8e93223c0e1bba0c5dbc7f62149bcde85cbb6c5fd38e7282890312ab0e313399583e6e0ea9e05164e2a08613eb23b93a38feca24b717912a062f96eb17b1d9352733d547e4b9a28a89cb6fadcbc34d327d6e8d75a7a12e2a062f96eb17b1d9352733d547e4b9a28a89cb6fadcbc34d327d6e8d75a7a12e3116ce10765cc451e73f0223341b39ce14091c049657ddb80d4a3d6bc02ed5d33116ce10765cc451e73f0223341b39ce14091c049657ddb80d4a3d6bc02ed5d3d2137e7c3196b819e90304ad0eb7925f0d1e5381304fa8b3cd8e36a9755f4578d2137e7c3196b819e90304ad0eb7925f0d1e5381304fa8b3cd8e36a9755f4578ac9d9334a23c6c5adeabe72d20bb3bc5c4c455ef187cb717a94a78d32627d5e6ac9d9334a23c6c5adeabe72d20bb3bc5c4c455ef187cb717a94a78d32627d5e6ad96e228272e8c7d87e72061873ef231a53dafccdd930d6299c0affa951c4666ad96e228272e8c7d87e72061873ef231a53dafccdd930d6299c0affa951c46667af32fb9915e8ba6b0350dedbadbf157f516fa8d57ced325ce3a3359aa385d397af32fb9915e8ba6b0350dedbadbf157f516fa8d57ced325ce3a3359aa385d390ef98b3c921556f51815ac420c6aa00302796f7a173dc78da24231d17f3f833e0ef98b3c921556f51815ac420c6aa00302796f7a173dc78da24231d17f3f833e1d41ed8cb35fc4d108481d8c89ab37da4d084c317af31b3a955f271f88c804061d41ed8cb35fc4d108481d8c89ab37da4d084c317af31b3a955f271f88c80406f067a0547aa8fe0ac1775bccda45511cb07abb10acbc9afbfcf8a448ec720f64f067a0547aa8fe0ac1775bccda45511cb07abb10acbc9afbfcf8a448ec720f6479ce14f39dfa79e8ee28b545e1e9be7803b52a0fb853165da7cea85d101f75ee79ce14f39dfa79e8ee28b545e1e9be7803b52a0fb853165da7cea85d101f75ee4fcd427ef6b218a836713b7a5802157be49a718147d0b39c2d3408bf333e08164fcd427ef6b218a836713b7a5802157be49a718147d0b39c2d3408bf333e081655b12031de5b9c30ad982649f94345e566528cd9059733b4bac5a5f22a42414455b12031de5b9c30ad982649f94345e566528cd9059733b4bac5a5f22a4241446dff48214f78b9c06f7db2f45108b6b4a78827063ab4e83c7a432d5069700ef36dff48214f78b9c06f7db2f45108b6b4a78827063ab4e83c7a432d5069700ef31150362aaa58d99c8b40f759833d6f3557dc007913b26c95424e1ad30721848b1150362aaa58d99c8b40f759833d6f3557dc007913b26c95424e1ad30721848b5dae810ff861c350bca8c3874db97099e2bf55071066f5238da242ea990297ae5dae810ff861c350bca8c3874db97099e2bf55071066f5238da242ea990297ae159ce10a9bc967c613eb84e8815b19ea3fc56ecf080b14b05fde9c7d265cc095159ce10a9bc967c613eb84e8815b19ea3fc56ecf080b14b05fde9c7d265cc09586ef01d8c0393344eaebf15e2acd000dceda34cfb3f4c5acd104dfe2fd32ca7886ef01d8c0393344eaebf15e2acd000dceda34cfb3f4c5acd104dfe2fd32ca786e132b8b394e9700d33bfa19678b6a54daf6978ca000eefba84cc4c854bd953d6e132b8b394e9700d33bfa19678b6a54daf6978ca000eefba84cc4c854bd953d74437150a6540b870a08b09c3e1343f96e4b6be944da515324e26a73f614bde374437150a6540b870a08b09c3e1343f96e4b6be944da515324e26a73f614bde375097315fa6c2695ca69ad9ae5d43d87c274895ded267750bff1ef153bda224775097315fa6c2695ca69ad9ae5d43d87c274895ded267750bff1ef153bda2247f390f4b884474484de168031120e7ef496bbe6c49f4041a31410f09f93aad7fef390f4b884474484de168031120e7ef496bbe6c49f4041a31410f09f93aad7fed9de64f52c07b6921cfc5b9f98f87e49fd6185eeee422fb7028441c721237f71d9de64f52c07b6921cfc5b9f98f87e49fd6185eeee422fb7028441c721237f71c1d79936577b58f8a421411abaf76ff54a287804298b2fc85714542d2011b97bc1d79936577b58f8a421411abaf76ff54a287804298b2fc85714542d2011b97b084994c512e84068acc7aadf75dd285e44f7ab8f96ee415c96fd0a3ae67ee97b084994c512e84068acc7aadf75dd285e44f7ab8f96ee415c96fd0a3ae67ee97bdbcb1bbfb4446874c1de5fb960266524a12b6dc07367263807af460774cbdf89dbcb1bbfb4446874c1de5fb960266524a12b6dc07367263807af460774cbdf8905305a1b16af898c56438e39d106621968ee065a247459abb770719661ddcf9805305a1b16af898c56438e39d106621968ee065a247459abb770719661ddcf9896d2e92c8f842787ef519f4aba96334501dae36532a73b82742d064e5a17b62e96d2e92c8f842787ef519f4aba96334501dae36532a73b82742d064e5a17b62e84bf30588a7ffd65508512d369a0f728ceb79625ebb4ece8b97d7fa838ec1ee984bf30588a7ffd65508512d369a0f728ceb79625ebb4ece8b97d7fa838ec1ee90511d68529813644731737dfca622bc1f3faa867a62a9f695a6e39a92fa665b80511d68529813644731737dfca622bc1f3faa867a62a9f695a6e39a92fa665b8ecd2c2c22111492b60ee38e38925ae0039b74e66c89e023a69795b757098a15aecd2c2c22111492b60ee38e38925ae0039b74e66c89e023a69795b757098a15a2565caf166ad18a8c6949d3a6537e6e650925df2b54cb82a262af451b0899f652565caf166ad18a8c6949d3a6537e6e650925df2b54cb82a262af451b0899f65221f05648290baf84b79612737c21db51a8707a10b9733a0b021ab0759aa0d89221f05648290baf84b79612737c21db51a8707a10b9733a0b021ab0759aa0d89c6560c250c5d4edfcbf4b9beee3b0df2abe6e7e08d46b506392eafb249d593cbc6560c250c5d4edfcbf4b9beee3b0df2abe6e7e08d46b506392eafb249d593cb944dc2892ff7a9ecae153aa21db6ad9d0f65da4ebdc1ce0517eb1d4fbc92bea0944dc2892ff7a9ecae153aa21db6ad9d0f65da4ebdc1ce0517eb1d4fbc92bea08a8078175550547b1330e0ba6895d037bfa6684052a017051fb76f3424cdea9e8a8078175550547b1330e0ba6895d037bfa6684052a017051fb76f3424cdea9eba63ed02f19dd972dd0fd8d50b4cb3d4f6724d5ef536c3c5963d661377e094d0ba63ed02f19dd972dd0fd8d50b4cb3d4f6724d5ef536c3c5963d661377e094d0db470d26f91ba33d8a30f17a0d94b95658425ffbf2deaf654e62ac6dd511142fdb470d26f91ba33d8a30f17a0d94b95658425ffbf2deaf654e62ac6dd511142f60a64b45a333375ae6e45f591fbe92c9fdc00ed56e29387e0248853948fd2efd60a64b45a333375ae6e45f591fbe92c9fdc00ed56e29387e0248853948fd2efd20137e6d2b991c1743b7d5a98691f654bdbf1bb0338ad7f145cbbb5ef9330aa020137e6d2b991c1743b7d5a98691f654bdbf1bb0338ad7f145cbbb5ef9330aa0dd05b13ccc0ae259286ba91661a8aff0da610b8b4f50a427f8959a3d0e84f846dd05b13ccc0ae259286ba91661a8aff0da610b8b4f50a427f8959a3d0e84f8463ade8ad8de8fb1ab28ce09cb8ec688429dd30838a849301c0205eceb1a0feeaf3ade8ad8de8fb1ab28ce09cb8ec688429dd30838a849301c0205eceb1a0feeaf1a0c6d96933cdf63d0cfed8656e64d5ecf1ed36ad41321ae61b4d677453284901a0c6d96933cdf63d0cfed8656e64d5ecf1ed36ad41321ae61b4d67745328490e2ec899474dab4f0b6ad6c3c286bdd3c027aab2be65f0b7c602fbbc5a458b642e2ec899474dab4f0b6ad6c3c286bdd3c027aab2be65f0b7c602fbbc5a458b64280c64f750f108e64f53d764059b63b7b215a5bc86d48e764e0435e65b0a7ff3480c64f750f108e64f53d764059b63b7b215a5bc86d48e764e0435e65b0a7ff34cd7bb61efde432544a634a27d5bfb6872fa68cd52f429b6787032feac1732945cd7bb61efde432544a634a27d5bfb6872fa68cd52f429b6787032feac1732945f3b4a44562c21c40cce39d8a04ac817ac22c6c0b97e85eec1aef5c63b54f00caf3b4a44562c21c40cce39d8a04ac817ac22c6c0b97e85eec1aef5c63b54f00ca9e796676f80f65ae28f575c56572ec2d818f6de5ad019db65f529bc33ee1d6239e796676f80f65ae28f575c56572ec2d818f6de5ad019db65f529bc33ee1d6238f2ca7a41787b3a1f75d5464a0da52ab56cacc4844a6fdabde8941e1cab9fb248f2ca7a41787b3a1f75d5464a0da52ab56cacc4844a6fdabde8941e1cab9fb24a8610ad646fdff9b0e8a180466a9df98b155df622aca63807350f98e5f340140a8610ad646fdff9b0e8a180466a9df98b155df622aca63807350f98e5f3401402cc20696f330589958ad2f6e33544f2587107815dfde80c44cfc29e49f14282d2cc20696f330589958ad2f6e33544f2587107815dfde80c44cfc29e49f14282d5623fbdd1e6c3b66d515083fb0c5b1863537f14f09dd29a149c636aa7e586df85623fbdd1e6c3b66d515083fb0c5b1863537f14f09dd29a149c636aa7e586df8e8e8e56bb778e590c0b52734082151e7aa50869fe73b702c96db25dcc6bd384ae8e8e56bb778e590c0b52734082151e7aa50869fe73b702c96db25dcc6bd384ac9ef0691dd085047ac62cb1c83b889cbec45d44bc294879b1a3f97aa318514b6c9ef0691dd085047ac62cb1c83b889cbec45d44bc294879b1a3f97aa318514b6f3c503d4ce20b242ab7e24723a1f1d58551ae0df12b05bd7e25c26ca29bef064f3c503d4ce20b242ab7e24723a1f1d58551ae0df12b05bd7e25c26ca29bef0641c98e937ec3641242cf9f76214224ac4ce367d9b72e88a67dd77ef583c429b121c98e937ec3641242cf9f76214224ac4ce367d9b72e88a67dd77ef583c429b12b2fa57ff0f51776db9373521bfdcef082f305e1f6d7f62148f68b2b47b9fe6cbb2fa57ff0f51776db9373521bfdcef082f305e1f6d7f62148f68b2b47b9fe6cb6298cb1625fc1b741626b7c23f6880821c9e80e3ab382b035d20a4755b6322ce6298cb1625fc1b741626b7c23f6880821c9e80e3ab382b035d20a4755b6322ceaf2bf53873c13a1ca0293a877048e15c157daa97dc964fa7513aa4297b6981eeaf2bf53873c13a1ca0293a877048e15c157daa97dc964fa7513aa4297b6981eee39b7d30aebed383fcfec3e10331d2b97a95b48af2ee9af15118098cc3fffde2e39b7d30aebed383fcfec3e10331d2b97a95b48af2ee9af15118098cc3fffde2c3e11b0cac215f48e406be77762163020c03eaa44d42251dd795119cba56e17ac3e11b0cac215f48e406be77762163020c03eaa44d42251dd795119cba56e17a16ea4463036f98f39711c2fe13d77d4ac187cc5d515bde14c5547316dfdda7b016ea4463036f98f39711c2fe13d77d4ac187cc5d515bde14c5547316dfdda7b06fee62b948831dad5ed4b955c9351844e404fda8dd65c672a334edbc9a82b2f66fee62b948831dad5ed4b955c9351844e404fda8dd65c672a334edbc9a82b2f6c105f7a40b1b0d24df2d69a40008fb39f1196e2b42b4dd99106e07405d7be00ec105f7a40b1b0d24df2d69a40008fb39f1196e2b42b4dd99106e07405d7be00e96f046d90dbcd72327dcde8b83e3e7dda32c0a3b5b8672940802cd59111374e696f046d90dbcd72327dcde8b83e3e7dda32c0a3b5b8672940802cd59111374e65c71cbbcc7494d80afe4ebfd949a24af06f5eddd133effc115f411886af9ff6c5c71cbbcc7494d80afe4ebfd949a24af06f5eddd133effc115f411886af9ff6c159724c7b5f4393a7f09f102984f2fd03884c0a71aa24f63e34997e4cf620f77159724c7b5f4393a7f09f102984f2fd03884c0a71aa24f63e34997e4cf620f777045cf520bc689dad91ca128fbd6d607b2cfd5582ad1d13217c916eed63366c07045cf520bc689dad91ca128fbd6d607b2cfd5582ad1d13217c916eed63366c063b0e7b062e9ef986554e5e905675e420808500cfc0e8e7e1d7f14d02475fa9763b0e7b062e9ef986554e5e905675e420808500cfc0e8e7e1d7f14d02475fa9727a48d41636b1efe62ebf7535025486aa997f6278c6d05c6a7aad8247ee321ae27a48d41636b1efe62ebf7535025486aa997f6278c6d05c6a7aad8247ee321ae6f762b77bd265a3e2ac21f2d07db3b6698d107bdac500ecfed1eddc56d55b2346f762b77bd265a3e2ac21f2d07db3b6698d107bdac500ecfed1eddc56d55b234ac940bd94fb4b9fa19ba62455a8e3f5bbe0d94b3388dca3b922778cca2cfb50aac940bd94fb4b9fa19ba62455a8e3f5bbe0d94b3388dca3b922778cca2cfb50aa8352c5d55d71df7163f212d6fa04b744defc40c8cca7606da46254c4fe8bf57a8352c5d55d71df7163f212d6fa04b744defc40c8cca7606da46254c4fe8bf570a460951015f79456e8e275f5bd18e499bcdbf8c165afe9371e24b6cf7d3cef20a460951015f79456e8e275f5bd18e499bcdbf8c165afe9371e24b6cf7d3cef24e782633b9938a8ce55127a388e70eb271c5617b54f8198e1daeed54b27332df4e782633b9938a8ce55127a388e70eb271c5617b54f8198e1daeed54b27332df3516922efd855a61804e4f5db129198e5af5d821d4112f34a4fe5a462042e1a73516922efd855a61804e4f5db129198e5af5d821d4112f34a4fe5a462042e1a7c7b54738fd8576e83ff2be0a1d252aa1d5ec542b138087466f0e4f43fca6b333c7b54738fd8576e83ff2be0a1d252aa1d5ec542b138087466f0e4f43fca6b333d9811b629cdf52d16d2a4e48ec3f6d3e1074659c9266ff62b5af5cb570dc675dd9811b629cdf52d16d2a4e48ec3f6d3e1074659c9266ff62b5af5cb570dc675d89a9f71a41aa89420ca4ba58abd3ecbef142d000c49ccb29085a29dea946890389a9f71a41aa89420ca4ba58abd3ecbef142d000c49ccb29085a29dea9468903dc3b2d54d88b723a1d369f8a6145174503731d629b3bb7cc75df7ee5235d9648dc3b2d54d88b723a1d369f8a6145174503731d629b3bb7cc75df7ee5235d964835103d59a53cb69acd8d559f39c04d05462cce327ab88d7e7fc709c4e293cd6435103d59a53cb69acd8d559f39c04d05462cce327ab88d7e7fc709c4e293cd64b7c181d1fa81afb1f911fd2c95365403c2c4cd1e92af6fcc63fb8d75716bbc09b7c181d1fa81afb1f911fd2c95365403c2c4cd1e92af6fcc63fb8d75716bbc09f7380dfabb5cb1cf2c74f9df7655a977a4b0ccd533adc4f5718bf27c70c5da10f7380dfabb5cb1cf2c74f9df7655a977a4b0ccd533adc4f5718bf27c70c5da10e2907d1d196db45ce4e24c37bc03b0de710e64116c7853f38bf63cfb353462e5e2907d1d196db45ce4e24c37bc03b0de710e64116c7853f38bf63cfb353462e5195005c8f296fe83cc10604bc9cd1f69cfc33fb9399e2692ada828766c6e847382f034f2ae9f6ca23e9bb881439d559371317cb113d95588d464cfd98de53294df25067cbc254edbda9e8f88a7f243ab25a83d5825501a338a225d14e7707bd843651f5374f10214a3c4dcbad3ea78cb67d1684d6f84b58b6d52f0c214b87e464c4ad078b4985beb9a8253602694913edfb32d8eddaa06f2dd081d42df4fff0284719e149c632317b0dd5fc8ece60b747b8012be6a1168ba9c75abd3206358dee806f6921fb0cdf5cea11b465354db236cf066bf8dc658894d5b99ea233e83da94baf11381e2da6ba406a6f159b9d2da921c28e1dba06599f846b8eda6c7a1acf81cdc92f4283fc02925f6eda34e3d28fc9126ab5b577ddc90c0c0be9186f467268f5f073604578d67d23e453c3e865356d4a95be341d2b66532cef3b19aee40ed3f5d9b1d40789f7db7d58a4150a517ffa20b9e32cac5a86e4c9287dd117951c52704611e3412aebdf2a80a60c026815e3b0a75cef0d8c147fd22254567e075727584ab741b84e959d4e05113a8a8d67783e1c81bb340e96e05b0e39d48f74a9d1c36043445a53aeca2b3356f74440c5675151a57647a393c33c6f25e6fa203ee132ca2d5709f1920a6fb3d12e85d7ada969a1ffc6c4de02cbf9952de6ca4210d67f669809367fc3ea54cb4f8cb2d02b0cb38fdc0ca2893ab71b928d00da386b6b6bea267b44733d010288a84d89db5848ca4dc7297014c32f2cde1265cf8b8f294bb7c18c53879f849478029efd98afa1f07819b1e1eeaf6cc766e7da89470hookrunnerhookrunnerrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpagure-5.10.0-7.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(six)python3.6dist(sqlalchemy)python3.6dist(straight.plugin)python3.6dist(wtforms)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)5.10.0-7.el87.43.60.26.00.83.0.4-14.6.0-14.0.4-14.0-15.2-14.14.2^^^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.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- 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