python312-pip-23.2.1-150600.3.3.1<>,fpp9|^2HCVs݂&:gנ9ACGw- l)HUJQlUW\Uҷ%V:y[|- E~cE|'-fŮ'OMAJ9h<[XS}0]c,5[Jb=ՌU,yʐrTc#zf |7$6{Ck^|g?nx@H(a } ӘiN}2=;4tẑoCI~ow`1>G$?d $ G %FJ `l(uKK +bK 7K Q$K oK KK K**,KCXChCD(D8E59E5:I5=e>m@uF}GKHKIKX8Y<\PK]|K^x|b5cdfekfnlpuKv w,KxXKyzCpython312-pip23.2.1150600.3.3.1A Python package management systemPip is a replacement for easy_install. It uses mostly the same techniques for finding packages, so packages that were made easy_installable should be pip-installable as well.fph01-ch2d*SUSE Linux Enterprise 15SUSE LLC MIThttps://www.suse.com/Unspecifiedhttp://www.pip-installer.orglinuxnoarch# Since /usr/bin/pip became ghosted to be used with update-alternatives, we have to get rid # of the old binary resulting from the non-update-alternatives-ified package: [ -h /usr/bin/pip ] || rm -f /usr/bin/pip [ -h /usr/bin/pip3 ] || rm -f /usr/bin/pip3 # If libalternatives is used: Removing old update-alternatives entries. # python312_reset_alternative: : # reset action only for libalternatives# keep the alternative groups separate. Users could decide to let pip and pip3 point to # different flavors # python312_install_alternative: update-alternatives --quiet --install /usr/bin/pip pip /usr/bin/pip-3.12 312 # python312_install_alternative: update-alternatives --quiet --install /usr/bin/pip3 pip3 /usr/bin/pip3-3.12 312# python312_uninstall_alternative: if [ ! -e "/usr/bin/pip-3.12" ]; then update-alternatives --quiet --remove "pip" "/usr/bin/pip-3.12" fi # python312_uninstall_alternative: if [ ! -e "/usr/bin/pip3-3.12" ]; then update-alternatives --quiet --remove "pip3" "/usr/bin/pip3-3.12" fi5\}eV++~=117701vCCtc%Q'R'R35w(( (((vgvg{  9: HI&YY"uN *AHt*$$  33' '6[ kkVViipq;;b%%XX"L"&W dl tq0A.L6ZffI^\UUD01&i&i@x<AjAj-- T  :; #bk,, 3J3J+}+}Z &-?ee++{{ kcess::vv  1QS#s2TU!!h-)-qI3I3 ;P=aH}}'V'ga d::\\ `v;;%3 &X3kSp IIRRIu6@E<``fGVW^@!!kmNm{oP""(l(l))%(+,dJlI&` N-z)) I I99 J O O9Mxxkk  aa4458 w w !}!'(,+1+C D__BB \+ F  )-pWG<S#"u TJhJ0|0qq F-Y.Bfܤ ^ ^ ||99OO6J77cWWbb  @ j:^!!hhj"j"NN%%}}  WW ;;~//QQj'j'QQJJ^^VnVnDDUU``DD,,..DgDg/P/P..=="[[  r//&& J Jz*'0K, D/^41P8dir#vtSv%%4):!9  QQ@@ #c#c +x K>>FF--   )UJ7}%E_&_&:;  pCCLiLiSwV$u;uB+Qb9y*DF[@}QTTZZ?}?} 1 1lyly .A2WY&l  !!9YY./} 56yyIIMM,!'Du=Sh9I4< < NFPFP}}$$%%0|0|22+^"i%e a gg & &  ( (xx+ + 66\R0[[FFDD``iiMM V V#N#N;;P UuKB-:/b9 9 xxssYа  qtDD('# 4J4J22YY""CC3d3d::4Kl^hh%3hD4)!IIZZ9i9i."8!8!*1 1,,SS6G6G~~bbkk\\lQlQ++L1'*H'v `^^ B Be e ((APc!KK($($qq$|$|;;//AA  T3_3_EEprq  ,,00#v#v.6.6eg!o!o3e##**(i(iUU &&ww==NNJZJ44$6$6/%/%\$%*(y(y9u9 mm??$$ 7z{ ,,'p#(4 % k`M_Y$ 0z( &rG0y  %p 67S. j< D)N :,'oO 7^Iie *fs#P ii<<hh77 0a0a  Dg"* ^Xddii((RRXi   1 1>>OO44((O2O2m*;@OL6--;;_f_fx;;CC99D6b+B ! KKSiM(aw^^xx,,;; TT::))+g+g==%E UC~'7)S.i. - o $ #'b KEAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤fpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddfpfpfpfpfpfpfpfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddddddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpddddddddddddddddddfpdfpfpfpfpfpfpfpfpfpfpfpdddddfpdfpfpfpfpfpfpfpfpfpdddfpdfpfpfpfpfpfpfpfpfpddddfpdfpfpfpfpfpfpfpfpfpddfpdfpfpfpfpfpfpfpfpfpddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddddddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddddfpdfpfpfpfpfpfpfpfpfpfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddddddfpdfpfpfpfpfpfpfpddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpdddddfpdfpfpfpfpfpdfpdfpfpfpfpfpdfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddddddddddddddddddddddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpddfpdddfpdfpfpfpfpfpfpfpfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddfpdfpfpfpfpfpfpfpddddddddfpddfpfpfpfpfpfpfpfpfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddfpdfpfpfpfpfpdddddddddddddddddddddddddddddddfpdfpfpfpfpfpdddddddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpdddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpddddddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddddddddfpfpddfpfpfpfpfpfpfpfpfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddddfpdfpfpfpfpfpfpfpfpfpdddfpddfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddddddfpdfpfpfpfpddfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpddddddfpddfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddfpdfpfpfpdfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpddddddddddddddfpdfpfpfpfpfpfpfpddddddddfpdfpfpfpdddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddfpdfpfpfpddddddfpdfpfpfpfpfpfpfpddfpdfpfpfpfpfpdfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddfpdddddddddddfpdfpfpfpfpfpfpfpfpfpfpfpfpdfpfpfpfpfpdddddfpddfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpddddddddddfpdfpfpfpfpfpfpfpfpfpddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdfpdfpfpfpfpfpfpfpddddddddddfpdfpfpfpfpfpfpdfpfpfpfpfpfpfpddddddfpdfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpfpdddddddddddddfpdfpfpfpfpfpfpfpfpfpfpfpdddddfpdddfpd014ffe5ce033b8399a6cfbc207fde5b8e96becb1dcf23122c4716925f2d13884b531a36c3dc8f91995c1116e255aff56b35ff9389c4de370594204e984befc3b7d030229a2e5bc22bef0fae3b0efa0f17653127bf554055328a56e87505efc84a8bf35a7df05290accb243983db5126fbc5308a0a8855c75147d5e98ed189f24bfd47c5d8a1747c230e6ccf5a42823ba105a2460c9219ecdac474d1a043845fd01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b15afdcd1bfb1185698c5a808aeebe9243eaaa9798d4c0d36bc0548926323fbda01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546bceebae7b8927a3227e5303cf5e0f1f7b34bb542ad7250ac03fbcde36ec2f15088442d61f750dda29419ed7336e7d4124e233244a2213cc3d1fe82c4794deb8495b36e11d74db484ea0058d7d98d37d9b8b39a3fdfae4b3af4d84a0aa06dd0611127adf2a628ccd601daa0fc989c2c238ff58f79531ef31e1e0e6efa8bb50723a038f68dd5f182e54826f8baf80d70e928ac5cc590f1700e1d9bdbdf3a30505b7038f68dd5f182e54826f8baf80d70e928ac5cc590f1700e1d9bdbdf3a30505b727344b62e870e1cf71bd961d23d0e070d5441ebbb2a0b01d3bc274dc2eb99a7427344b62e870e1cf71bd961d23d0e070d5441ebbb2a0b01d3bc274dc2eb99a74ea6ecc9e197c0cad9bc7cfe1f2e51115f115a6c9ad320c1c986341c2dd42bc7772fe7c5709dd279a019935d924436761f9a5bdc636221d688d6a94bff58d847a9e7142bb1acf32000bac80f14a8cbe1fa663e16e1463ad03fae2f5689caad297e7f12fc66f6718700e5536510990e90d3a03068b3bbbbdf482d9128a67c789bbe7f12fc66f6718700e5536510990e90d3a03068b3bbbbdf482d9128a67c789bb1272be03b238502be823b03a10a01bc8421ef8d4c57bee7515d388a8bbf51460e212026f228cef0d4c3f1e926a773d1a6f777a1c45557ea6b2fd8841842b001eb5e253929b4e97da3396ece245fe445258de8174c02444d995d2cd871450cc47fb389837b0829833210454fa86bf784ec284defbe469e25b093fbddc3bff7261d4c3ee1e84e7d1ee8e7db03d064c5b4deb1922571d7e305543ff6965585889dd0d31f8357dea4205b2b54772bf47c64e216c4ba1785367ed0f016568a6b8fb1ecf7e486dd981f07e2c4ab5106b0fc112196e92c82c6e86916f3ca142f9bc241fca771ff0c205444033448f2bd5df16b4cd909e7e45f78f31b62e94bd07fc11b550124883f9960935c291adf4714e6fc95e70cbd313ccf6ea2efa52053693bb1250124883f9960935c291adf4714e6fc95e70cbd313ccf6ea2efa52053693bb128615766c228b5e7dc9fa45e7aac22b62a2d452142c2cbe1c4b7c2d08e5460355915d4e3a239a1d4daaf1cc95794c7ae20725aa5a61cb0061e1d3e496d9d1456d2cf1abe6bf726e624dcbfe100e5ca4f5b53af3d267283ac08318517320a9dad12cf1abe6bf726e624dcbfe100e5ca4f5b53af3d267283ac08318517320a9dad12f84c05f18a2e5d19f5e74a487fb23f97878c82eaf21523eb8f072f8e67b04fad39e323d40c4c52168b867a59fd371846d6f84b34bfa0d0a862c39a3405ef3c5d444a9ab0d22ba94bf2bba6164ae73b21544e42cf2f41b462c55385ba127bdafa4cca2d67da77dda3bc732d586674ebc8cb520db76ec76ea849363eef31c5a521641c1829c716fefe077aaf51639cd85f30ecc0518c97a17289e9a6e28df70554596aff7759c906e024b1205f55f79a14b06329f94fbbd288cb1d5d921adc5fd4596aff7759c906e024b1205f55f79a14b06329f94fbbd288cb1d5d921adc5fdb3bc3040ea363976948b81de25f235789e04ddd45ce75b36ddda538232450f7eb3bc3040ea363976948b81de25f235789e04ddd45ce75b36ddda538232450f7e0722bd1d23dcdac7e971be5c726a6706435251bd7e8f1c32486c670beb49e6c219a9a42eefd4e4450195ced0361a21d151fb8a5ce3399a45112a224d4b578a13f36c1c42fcc1201b3458e8b08a590d2549fe8285caaf2280ca53dd2a984c3ce4f36c1c42fcc1201b3458e8b08a590d2549fe8285caaf2280ca53dd2a984c3ce4a05554f20016878e15c79121bc5a979450d0edd6a59c569633db35c47e81d37e9f8bd3ef66c3c31e8b0126fb160538cca1975b9316c3e9933ceeea24857b5518a2c1119e18071db3b66a1317960870fcc699dc9a87712bcd85b0bf8e402132e9a2c1119e18071db3b66a1317960870fcc699dc9a87712bcd85b0bf8e402132e9dca42a94f62a36683e21faccaedbc0b091944f4d20df903a7b0cb36f49296ce7dca42a94f62a36683e21faccaedbc0b091944f4d20df903a7b0cb36f49296ce7b23ea431e32143c5304ad4c9dcbdd509f0280146fb4395d792a316c141d06cf249106b8cda68e2957e83ba988daacadde0a0bb5290921abc61701cbc62b7e6dd74be3e9792afc03dd7e6fada2c9ffb20d25d0d9df90a443060464f8f6677f93e01e8f3641c82aa2d6ec9cd3349446d7bf038c6cda1c3b50ed204d1ae640fa827162e7059524feb24783febca9e13cf02c3bfc6b5e25a443111829c6b95e02a85a500f46fed1402e35e1c6ffc011c2d6319da9a5e9a0c4450c7bf1b617fdde506faf5fbd38797ca8614fdee64ea42885ceb6814e9e8f561985cd2af165b999050d58729d0c8caee3a27ab3104087f0f80574b61b066fd03b352cfb3df7ff22984d11cb434331daf50fda8993044c978a804f892eb60a9f3a7636c5faf15a6b357d11cb434331daf50fda8993044c978a804f892eb60a9f3a7636c5faf15a6b357c18d893d96361238b5be147b6d5a3ec8204f27d2c2cba3fcd223808590f5562f002514a96919314d8ed699944a97c15777f06f7e89cf34c71ab6ca5f26f97fbed1b5e12aeb69a592c18002f9e222b7b53ae3f894556d407933fda91efff09ca94478083f0b4e6e1e4a84cadddd8653925f336d51bee8e92697b61b157e04860d533c6dfd80f5848bc1d405b99b1b7a215721b791bbd7602d32a768e7550c866495a0e9b2e04397a9327f2c29f5e30c03db3ce237c7d932499febe62f4186f74cb563fe2b5b92c672725eedd61349241f79e20184417ae51ac5ec9d87339d84be4a8e263e84a35e45e2487893cf3aae1f7555c950ff9e35e51c9484c583d7028c1aa4bd8e478792d3b2eb34730baba171163b49e967015d4b67a39f4bf80d704984827cdc67ab74580509da1b200db726081eb5e825fee0b84a9e7cea7cc56cf1b0414751a5096eabfc880acbdc702d733b5666618e157d358537ac4b2b43121de6844ef4eddd336bc6ba1d1b170e0739595eb6bcabcf91c732698f5b026b1fd57864b65a913ed448920f902b36c57dd2ede4bbc3a9988d0665dcd67f6a3e70a77864b65a913ed448920f902b36c57dd2ede4bbc3a9988d0665dcd67f6a3e70a7e661265256b171e8c63a1c6ae5beaef81869145d0bdc5d2b1375b16ec20f1c72e661265256b171e8c63a1c6ae5beaef81869145d0bdc5d2b1375b16ec20f1c7244136024e63564d50e2161d846f416f4d03c65495af8b7ea2af8d47b58502f1a44136024e63564d50e2161d846f416f4d03c65495af8b7ea2af8d47b58502f1a58eacad7208f279aca708ce5a69b44e1e8de463bcd1c22c1fd52a5a82c2959ff58eacad7208f279aca708ce5a69b44e1e8de463bcd1c22c1fd52a5a82c2959ff617a46809e0f61add3d632ba2acdca88a3e75b6d691f75c9bed2c2529df48e23617a46809e0f61add3d632ba2acdca88a3e75b6d691f75c9bed2c2529df48e231c31948150612329b4403bdbcef928f221932ea69b22d98ac49c6f9a43dd7ee39464d46912e2a149f8ae2b73e862d9841f46f97ff1ec4bf05329a5815099e5587d11f7a990a06029ec2ff6900876f3168c0ab244a746052721284813b7ee830455c880c1369e13f9ceec639eb356cfff14f48c155704cbe23493bf8ffe19f3011e58b5ea25fec37d82ecb8684ef65ed5fff6cc2e8845d212efd24655cf2ab66a1e58b5ea25fec37d82ecb8684ef65ed5fff6cc2e8845d212efd24655cf2ab66a0661370557988d1835cd5b06d0cb7b48f28bddcc9dd887261710673ab9c14bea0661370557988d1835cd5b06d0cb7b48f28bddcc9dd887261710673ab9c14beaf74951415aeaa19658314e10d00ca5d97a4d8241fcdf224d96327207c76a10bef74951415aeaa19658314e10d00ca5d97a4d8241fcdf224d96327207c76a10be832efa3dc91a7ebd5af88771fdb848ef10b04c2be6a62e81e76f2f802c023869832efa3dc91a7ebd5af88771fdb848ef10b04c2be6a62e81e76f2f802c0238694c0561db0ed75b567e5049de7b6d4b9f5ee96f84e1e1e53a851c544c3abcff3e4c0561db0ed75b567e5049de7b6d4b9f5ee96f84e1e1e53a851c544c3abcff3eb3b11430a4a5eabe939a9ee7aaf5c9b84ed88c61b10b248c3e9e871cfc64dc2a10b2167429fccb872f512d3f06f56411def54dd5bd5a90da441617aaf16358060ae781149f4dfd98de1892e3f62feefd1d057cf29b0703746bcbbae0c99314bb0ae781149f4dfd98de1892e3f62feefd1d057cf29b0703746bcbbae0c99314bbabc3815f1f3bf6c888e49c0e03cc93c2594ff219cdb8eda66f0ddf58e4c6bde05e76fef4c5c858203bc331fa28edd51e63cf7d0469b1c225a45a847c644fbeb04269e75afd93cb88e64f908318b077fefad7ce819e95dd075f329c367f71aaa54269e75afd93cb88e64f908318b077fefad7ce819e95dd075f329c367f71aaa57d48ef13290ad5b9c67ff13da3cd42638e717d2544157933f7b17abb72b1a8e67d48ef13290ad5b9c67ff13da3cd42638e717d2544157933f7b17abb72b1a8e6ab87b21ed4ff9066fe1de6b5b808e1a82251c5b96167292d5ccdb1f246e4b35780df90cc6696df9bcbbf229f892f6e0a2078f37405a202121310649c17987382683477a4a4515fd747a1b4361f32abc9fd368e03999c67277c4997ff6f3c55c845bd77436f32a0b8748f5829c79494d239517ac35cb76d5e40246c9da3bdc4a0d9fae072171ef861391a1f528c4255f8c4dca71cb71bdf84b3c9a97baea71edb341e6e7fc1c85fcfa58bde582e864ed3d9c02c85a52c21c31796a27d229c067f01eb04203fb880f143593c0f88f68666e0f8b70753fa299a1ae311e597d29fcb7b8870d3cf331a8dba5a625a30846f0a788b94b9a83a3aa8946c9f1e3b029024daa8d0ac7f4a5a2e51a1abf40ae47bbdcee15a6e2e3a2ff497ab69dc448a0c7311554ebaf1ada0f11d162f1236799daa5090ae10b157e909b1dc2d75c0a75c6481c73a40391c80730eb809f9531699c004adb1106b9c64a7ff2c634b9ec92283706415480e5d02cedc690f6ccf8925958bda2386691a2ab55a10a06889973520db048fb7dc9faf7afa83eb364b92fa3ef46d687355c9be13ba874c4ad277f5ccb1d8b8e3178994435f53ece23e5d536d40b79e8dbe6460e9c018a0997d49b8cd2cd2fad35e813ef169019573368a3f0d60f3bd11697f0fff9bd469e64c3ec943b1b059880451734e7442ab8e29c0af3abd8add72eca1879b2ca646462fff8942b798e26b8cdc609449672e14fd5a27ef3325d378499a67287e3ea80cd4e78fb6388a8ef6da9a758f243381f08457f543ad9f508a7bbfc283ad3468f3258ccfb60929d7f0f99fd683c29ddee3edb9f5fdfe7c1bd28736201b96f549e73ca437e08bf75e3c92a774f032ee17f8f1297a66e3f2977b453c213aef3d1235ab70bb011eaea4b7a8170608cd8ade614d358b03378234e2a807e374a46612a9e86b962f32988314b6f1021ff8160e0e0203ce5089029999830ce7763620e4028ae75b7432988314b6f1021ff8160e0e0203ce5089029999830ce7763620e4028ae75b744466a1744eb2aa7afbc0db3ec131a1d70c13008e8bd4b7969714293655687e724466a1744eb2aa7afbc0db3ec131a1d70c13008e8bd4b7969714293655687e72edeb43d3257c7ce3575462ff8e78c111a4528892a40ba851fb81455d8da91e2a02e27b5e113bef9c374b50049cdfc65e7fb81c6f9d0df966ee839be50b8220d38b19cb0cdc4465905cd17b7739e6ea5e5d614613969c2e250eb0496da0f0f7fed3880c8f162bcf737ade6b25eed0d1067c616a67efd179919ea025b31f94484592e494a269a9c5938d9a8e1aea735bff6d4de9fec54f17098f4016a5c32e0ea82448cdfab6ebca093d3d5a30360614372d585f631593bd36f2ffac37c2c28a868eb175562ede1b2a85a8c1eb89e8753c83ab194eca782c6160f6676efb66bc66348d8e82c807f6206af65e6f07ee7abce83962cc9b3b2f80538544e424823b6249005d91ab574a280a186fd2683d14d29d49c1d7eb836e9408d7078245d97dd09be2785cefa0bc57ab958b05cf3497603bebc7cb4b6652454c2803c5cb67f2282f24d5636740371fa2fd3124e58afd61cc14b62cb41ce10508042ad45ff8e9cabe9b7e25e4d979f87c6be142db665e0525c555bb817174868882e141925a3694b5c8e573981d96006c3e4bd0424b7527b13c4d462099d265a95a4f748ccff60bb5c8e573981d96006c3e4bd0424b7527b13c4d462099d265a95a4f748ccff60b637ac3e7108656b31cb1ef0ac80ebf269e6e40dd4d0b1ba565eadcdf84816d80d5955b0bf3e6f80f63554b469047e6697071aa392499133cc8a58201ecb2ae610ee01b91017b442b633d1672fe2617969a1eef05c6db2d8e97c6fa452ae40274accff50fc8a1e7fab2c8e1832e32fd5e8ac584208a9dfd731133822072581b45d71bd4573a42e4d765973e14a8aa8eb0fa28a7beb3e947218d3a8e41ab76c409d71bd4573a42e4d765973e14a8aa8eb0fa28a7beb3e947218d3a8e41ab76c409dce998677b42a113c63ab10b4a04161bed3733e6d01dadbe54203747f9c901a5aeb530e2f8fb404fde32dd36da3c3efb04222b39cc694815064275502ad5531aee3c3d5d279e400e4af87e08e5ae74df82acda0910aa6e333d78eb8709cfd52e0e1f0b2561bc2d19432b82488fdb1f445f7a4d113313ef8dfc0225c7b4eaa1eee8026e44f0f0f402437b724e19444e681d54417721a38cfc54a316aa74b4d36be8026e44f0f0f402437b724e19444e681d54417721a38cfc54a316aa74b4d36b2f13bff2446afbc9c76bb36fe544b943683612716d5185bf5ced764cdb1592519b6198697253796f1dd4d7935432953de4e031f58ba957448f52f2519df3da41ffee59f9ce7faf536765c538b66b71d02aff6a784e2ab340206fbda8a6d334afffee59f9ce7faf536765c538b66b71d02aff6a784e2ab340206fbda8a6d334af0ba3e82b925a14f110129f02e966298f7c6baa3f5e058200bba887247dffc67d0ba3e82b925a14f110129f02e966298f7c6baa3f5e058200bba887247dffc67d7268ba87adf160d5e141eeca11610c6803631c5cb9c9038fb7fd7f4425b25cc68f2355b547cc21fd26b7263e5e9d66f7243c8b0102a334955459a390df5adb2c45088f8b5778155336071934e1d4215d9d8faa47a58c42f67d967d498a8843bfafe52751ef072e8e57149cfc8a74dc38e4e2bbfb313618076fa57094652594e2f388f574f25a228cf94366533e2d2e07589a0c01e250d7cab584864027c52a9a4cb4c5961f528c76ea5d16a706a59bfdbd372e04f50dd26f4e91db05b726657b4cb4c5961f528c76ea5d16a706a59bfdbd372e04f50dd26f4e91db05b726657b7c5afd565db5d55750dbf1e437f186c13595fd106c9bc97e4c03d896b5b7b2897c5afd565db5d55750dbf1e437f186c13595fd106c9bc97e4c03d896b5b7b289e8f86a2ee7834805c154b19004e80feee1dc47f738fd5215c636ec5ef09918ade8f86a2ee7834805c154b19004e80feee1dc47f738fd5215c636ec5ef09918ade6b2f62fd7f3f04b716b50cc23946a02525318bf566fc44eb5d269b3edb6296daf1ee135dc4e92e281234f9dc26752b32538b97bd5c820ea4e4229a25eca96c30539167c50eb585c2e4a87489a3b5b021f3008bde2b1e71b9e34dbe44e945032bc8c08a3506da2a7a07a158c01784dae92c6601ab6e39adc68236404c3e74d4ff5954ef01a04ecd1193e6a07a79029fcd268d0780d21ecd75e0f93153b6ddd9e734b0b001d6907597a84761f03ea40bf473e72ba071d727b4e570768b886c81b734b0b001d6907597a84761f03ea40bf473e72ba071d727b4e570768b886c81bd33a5c007b74449645cce99eb0c2395a1fabfa1056eeadba3934e5ae53ac9f21d33a5c007b74449645cce99eb0c2395a1fabfa1056eeadba3934e5ae53ac9f2181e0872efb1723bb0d07a3ede60a1870e2468b5a27c8fa50727894d2b9a4291b81e0872efb1723bb0d07a3ede60a1870e2468b5a27c8fa50727894d2b9a4291ba373df59248853316c9d9ae6ac92ee1c2274e6223df75c3e6c0ca83ac7e405e9a373df59248853316c9d9ae6ac92ee1c2274e6223df75c3e6c0ca83ac7e405e91807bfa6b21f084e2253296b9ebff67494659240554546ce89d128203ecb3e8105457ccba0f43de3d9ac4377bdf24bfa6d450ea67a60f46002205e0629c784d82350c733202065bf234fc0989dd5a5d9ac3674debbe69f8128f0ae261bdd86b65a3c2235d46cbf1ab12f8300e536f96bfab7437b1485da5b645f3018bb4f308ddc31d477fab1a4fa337f3a2ea2a6bd83db6cd42cebe6a6877c5c5b9f1ae27a9383900152a602a670232a5738546cadd9cced4194b492e04ce853cc8f37957f0983900152a602a670232a5738546cadd9cced4194b492e04ce853cc8f37957f098dcb406392e53405bb4530b7efc8747eead4becb62f351cd69235e1878d333d58dcb406392e53405bb4530b7efc8747eead4becb62f351cd69235e1878d333d53a6b19add9dc28ecfbf522cd4ef1f47d99d051f68509ff9245bae6dbbd8a62815112f9ffa5ac385ba6f044909492847f54b4fdf2446da72cb98608cb21eaba6665fbd63b8130c37412f9f160f4f80716158aae990d249f78545aedb57a2d59d265fbd63b8130c37412f9f160f4f80716158aae990d249f78545aedb57a2d59d2b6f49ec57c24440f2b2dbfdbcede74115a6a258af2bb83e2ce5b396c392eac10b6f49ec57c24440f2b2dbfdbcede74115a6a258af2bb83e2ce5b396c392eac10013a288b1cb1f0dbe84a34e424e318d8c18f65655b2e12366265f1c447e599ec5ef306feee7a9680da16d7c102b6f044e63c8be671d9c6c707cc975a3216959b762be7a01929d8bf192448557e57d6089ff96cc62dc8b250f5f9ffee2c1ab4e5be1fbc460b6bab1e1f9cf0b5925d4983101c3e7ae7a30b17b08e6fb914b49e815cbb6962ff7ed317fc89b20e3e941f4a97632a879290667978f55f5b448e89815cbb6962ff7ed317fc89b20e3e941f4a97632a879290667978f55f5b448e8981c5ebf2b9d6fd20af2e552a4d463be8ec0b86a356ceb639254046bfde8afe2353c5ebf2b9d6fd20af2e552a4d463be8ec0b86a356ceb639254046bfde8afe23533e4f92e5947b16ae43bd39a4de7d838634272942169121b4680200262faccbb33e4f92e5947b16ae43bd39a4de7d838634272942169121b4680200262faccbb306c0c6fd0e0dad62cf4a52ceaaead986c3862ea28ff5947f5763162004919c4706c0c6fd0e0dad62cf4a52ceaaead986c3862ea28ff5947f5763162004919c4701f239c5ff88b45c9d1b51200b0221d5023d64d1198b3989fd8b4e8548b43ab101f239c5ff88b45c9d1b51200b0221d5023d64d1198b3989fd8b4e8548b43ab1ea970006c691ec27c81e56c96ebdbf90c9152452ffcab6234f1e9255652708f411ea41c48f7b8fbc126770264444d8c954e647d3684dab35e6f73ca68a7155380c9a4c623c5e60a29077035c30bdbf174bed021faa9ca4d87be0a94f141efb88b589cbf28c468b8692356babd261bc0c03fbac2eb2ba16bf33024ef31c3472b2b9e5efd5188c2c0b9c693b84bd70025d7e51eb8fd6726f1bd59b6ac7845de712e8e124ddbb78d5653b419a22caea153c6b0a394f89fc16c30e1a2e29b2179b46dc4150a7f202bbfb211f5f9306a865d1002eb0a08f0c53a580715e3785e8c16b012572c99c622482f0edb4c8555a49c7c276f773371e4e45df78a51a7d1ef347299762eba82c47efd151752bf6e7a3b2c937ae64c7ad054959e340dac57e5526a8aa59a31ec9f0d01a3e60ece42fda9e2c1f3c3c73be992b08aa9fc27746f3b962a6b3a0867299afd0d5e8c56b50bb3472904515a5bd691d2bde9544a98305e28dfe93b799d5ffbce401106b2a88c85c8b607a3be87a054954a51b8406b9228777d2ecc4151e578435fe9052c3b67e4474f4b9c5e8d66a5db0ef1dceab0fac0777d2ecc4151e578435fe9052c3b67e4474f4b9c5e8d66a5db0ef1dceab0fac07a0c59ba39a42b30acf90a60f1da4ae407ec136dae205b5674cc4f4be7c96ba16102aac030886f471f0385cdc593200ee49a83939295c9846c16f659d21147a192972bc5a25140470f8a9146a12d822e6b52976b945126b11fbe0b74bb136cdb94123b472691a056d4683b943b1547457ecd8b8e63f80c8c6ce2cd937d400800b6f05add1657eb8b1f5795e2757c3f929e6459c1aac13f6c31438c9bc866bf9049dd436bea6c53415ffefc62e72bc00b22d9be02811a04b169dfe6f5c24a147663d241fa0b084b923678c2b2d3d70ef060b4b99105de0d970d75468fddb60575dc30e7ad144ad83092c88610601969d75956936b8be9781e80fdeede048b3264617e90410e613ba90e68c54a4a8c1aaa636c254401c678048bb25d2d4aa95948217e90410e613ba90e68c54a4a8c1aaa636c254401c678048bb25d2d4aa959482ebdf5471aa1606028aab5e4ebecee5cef33acd461417c4927b6f842d51132fecebdf5471aa1606028aab5e4ebecee5cef33acd461417c4927b6f842d51132fec26167991894b1ac4e6d126329aaf1cf4d589d618501813c9bee10ccc5e23582dcee3772e655b4fbea54ffd84689fd8a7dc6d67c23c82362fe601e2b5017eed3e4c2f8e716d8a5385ba475854e2a3e0417bd51f9e1a7400a9673eac5aaf91f4d08605dfb54f9e6aee0c5b11d22eab933337a962ae413c2db3842921377825072f1ef0c3abd6d5a9a3778dc4b70f25491cfeee4ea1736d285d91fecd152a077e4cd8f5d576e6193c23d99244057b527519b7c725678253ef855e89c6c887f0f5e5ba1a2f77827b69b77462bda0e36eb20b8682e94c3554aad07e9cda96c10110cce80e52ad42441141f16c6b5bb1cc14d8da42cb3fb7ced883946587a51461b09f0334201b81a04b5e76fdcaa61abfcecf63085ec09a97ec5fb22b3b7c0ee7994de3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855782b394d07473a44a72afac45075125302b27c8da8ec87fadc4f14b356c39605782b394d07473a44a72afac45075125302b27c8da8ec87fadc4f14b356c39605fa4a0f5a3ff26150b2d11d960db2553c5908f421dd0c30bd4812cf7269f51b85fa4a0f5a3ff26150b2d11d960db2553c5908f421dd0c30bd4812cf7269f51b851a175ed7858f0c24fec0e26d051e8c3315372fd2091ab16cfcdc1b7609ec832562277b34942fc76cc5fce837490f845608c5dce66091cc6a1f336e008e5486dd52c9d5c7ec326c8a4a06d01f4353733c80ad01d4c7378cee16ca13e71a9d644c000ef5a66cfdf7d229071c614a0dcf4eb655e1baed7c0e2ae2c3065cf8900c63e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855a45dc48baa5514cae7df1fcd756897a7e71d757d8dd4bd672a763758eeb183f3a45dc48baa5514cae7df1fcd756897a7e71d757d8dd4bd672a763758eeb183f34ba7dcbfff27cab46d4a4ea537e1f2faf8ccd9f6a18b819ac374828ee6427d2dfb7abad727b924dd0c343f7f276f5c9a21b5cf6616533f5ffead70b5fc9bc681e7718836d7fddbc4109d1e0d483d9771401537fb41c06e4b95e91cffdd41ec5de7718836d7fddbc4109d1e0d483d9771401537fb41c06e4b95e91cffdd41ec5d35d94068f7dd0e9e996ca5b6a193a787af68409041fdb31453e1e4de89616c4f35d94068f7dd0e9e996ca5b6a193a787af68409041fdb31453e1e4de89616c4ffea74cd76c749da829c495da4998b8588953a9a843db36c3dbd8ec181629625afea74cd76c749da829c495da4998b8588953a9a843db36c3dbd8ec181629625afb4323ccc1336d710d527dd4e486c9e2d4fe85ad325cfb47f2c8318634c18653dce0871a460bec14a82d4b5d97bd51f376bed22296e3982c212a850ba8551aacebcd3899891066fac67996bf6c1b9e0e4ffaef4f71750024be19432b6182e2299d087554753b6e269b62b6e6d1dfd70c33a9d969f977d2e31bedb7849ef6670ceea1b9845d0575681ad0a7c69a19ac435c0a8b0aa708a9c7059138b544a3f32ceea1b9845d0575681ad0a7c69a19ac435c0a8b0aa708a9c7059138b544a3f32cbdff35130a26377c5ef46f2a449103d151aa362926450450a286cdb318b95ebbf52d02503f14dd0a99797a7e672b7c1f1c14f74944e10ae760382ba990f3067754b2fb2ef9ed284f2ac5d854744261728b45cd4b0e488f0d352d38df150b29eca3e794db502cd7be610c2edd96e3357c927f16aa244c84a1c96a6329a2291d9cb13d761412c0c430bac32ac3a2b87c92f719d631b9a889c2456cf33fe5242624c8eb681face9024a0a60452dafc161ceb62790d1d0690063590d8761a7b531080bd8faaee920408d67fc97902e8646b8375f530cc25d287221d3d3a7a79d6cc42c3e418ac11d4fdbe0cd2eeb2d852e934d73d25e28323d90ed2b00c55bbea449baaa1e4c07fa1ce615311d948004fc37ce54668184544a1075a9ff028e9239f9997ee1c83d863413b69851a8903437d2bfc65efed8fcf2ddb71714bf5e387beb1aefb87b53b707f51a38b7289696444d18a1ebe9b89b995053b8012d15a2191e1aefb87b53b707f51a38b7289696444d18a1ebe9b89b995053b8012d15a2191e2e1c5137ed01c821d7cba619085edff89d2ec566fea2d24a16496cb51c1610782e1c5137ed01c821d7cba619085edff89d2ec566fea2d24a16496cb51c1610784435844625364a7dd14c3c7bf592d8984973863bcbbea4ed95aae45c736a1b1570fee1241795c8b2c0a58a936b4461f4d821aad34dbfe9d5ca7de0ad144faf3f61e47429a7565f0fd985e0b536d006d6a5481243a04461dcdb7c7e62d196ecd5f25b1532dfc502e88636c7ff7bb0bbfdc0923843bba47ca3815991371f965ebc9f18c8886452894512445a7037e42ba3b37a044f63a95e26b9d27b088bfdab0696d9ab5d668c5e38891db632cd6a654dd06f3d83dd2a4f7d1a32ae415ca919954c42c58193a87f796132668809558bf54ecf9615e8f4eb9fa246cc009e89d8623d8a0339f0c7cba70076c17b169032cb58fed1de71730353e3508a3fdb8da00873c0fd109ca36b426bd509611184c0dded615b387914649c60ad054885057c8a1440286c519ce79f75db59ed947d696aebec8d199fcc0af24407c6280e37eb781440286c519ce79f75db59ed947d696aebec8d199fcc0af24407c6280e37eb78c0aa326c799777c97cbde0ed528818381ce3e77fcd77c2921710487a4ca9bc08e91fe3bf9349edbad8f2f1834c4b6c80276eaee189bc5950524b2c7e2751b3b48b476733a6c87bec49419579a8eaeddb2d63e312c0a28618e707676607fa8625e0f37d53aa3a9938dbb85f9c52977d2026319cce9c4be88298f58344622aa5227fe5c72cbfa070a46efcbb230c0506529bc1302b623e31f8ff0e8de982f28bfee640535bb575567190f02781b7a2e4faa59926119bceb6b8642157d1dd04b4530f257b37da41c9f36d6eb9689b71cac5193d64df4b9279e57a2c8e77412f22e93e15e4944ddd1b4c1f735a11de945cd116f5cd55af5e6003813a3a7503fecff2f1813e78d5cc499d6582c25983e1e7228f0475a19f88e336b7711a2e52c3e4e8e4f08ee069c3127504362163e2f0ffd509803231cdb6f37a1d76c44d9f541a898691b6f419b63c0abb1bea204dab5970d5208f0b74ce97535edc46c3833f32d5a5209c20a5110e419be8900ab1cf9c76f9ef9c026560f93ea77bef38df4cdc36b06c1aff267a5f635c4525095b35256247fc6c3123472480137690e4e7b02160e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855b4a3e0cc39ba5390a30a4caa031eefb06bf624fc9bee3b6b9f6554368ccb77aab4a3e0cc39ba5390a30a4caa031eefb06bf624fc9bee3b6b9f6554368ccb77aaf18122891dcb5b55d442871101daf51483af298cf08bd9729eadd7b0a7c130b9f18122891dcb5b55d442871101daf51483af298cf08bd9729eadd7b0a7c130b9aa59a1df6e520557ef1ba31ef6073936c879b1dc07070cc706ae9a117b4ab0b0e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8554268aeaba41bdcee1b25a4d4e3ee03de235f04b145db1fd0f7ecec951777dc074268aeaba41bdcee1b25a4d4e3ee03de235f04b145db1fd0f7ecec951777dc07b149a163358ef51a8db20fbf3e855375ef31e796fcd50a227147d11e720fe16351d4963cee356d4e3bd126008ae5b7131a1200c60cde7f43d6bbbe39f11b7c94b61f9e4cf22f6de71f25a52c76b6c7d5a1d0bc3576c8213e461aeba6c26129b1e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8558017082d25269e605d57b978a7b49d608e340f0080cafa99fa8c075047509ea78017082d25269e605d57b978a7b49d608e340f0080cafa99fa8c075047509ea700aa20627dd59739acb8466efe227bb3a25d073ca5fd378170d6bd7d1dc375fb00aa20627dd59739acb8466efe227bb3a25d073ca5fd378170d6bd7d1dc375fb2d5652112a2c19df2967d40236e4f0798b2b59d53665599dae1e31530c9ec0c50602aa7ebf8c5de10b940c4c1e147596ade52f1e19e1fab153b3e53d1fb33dd40011b657998f089c238b1be4fb8f4e7cc2eb062335c648e6d1cb309eb83305ad73e5ebc6623c6e2d66aa9c0d443d5aa3072e1eb9cb6fda3a111205eff1a63610e92f46545ff97a997068f5f5226737f08e532f18a634fe0df7cc3407e392e0bce92f46545ff97a997068f5f5226737f08e532f18a634fe0df7cc3407e392e0bc849fef43b95623f45ae83061eac9b2500eb625c6e79029960301a4b76534e705849fef43b95623f45ae83061eac9b2500eb625c6e79029960301a4b76534e7057f830e8659d1fb2aa5fd4ffa6a1fadbe849b317b5a08fb0435e62bb38bc831d67f830e8659d1fb2aa5fd4ffa6a1fadbe849b317b5a08fb0435e62bb38bc831d67ccded84f3c50e0281a1327bbfc001861822667c288c57d69df59ab5bb395a05078d3095493e2a02a8778a685ddb2785f5d388893125ed5e9c78ba7839b08c6523393310fec7108322e8764adf1e69b1d37e69773b48c3c39a6310e3a8402672a1223a1a07c74ce68dee6724dc07d5e6ef17c90a5fb0d17b055a2657add8b6a5bb53b87e4bc23b89a19aee62df6c6b0eff405f936051c8bf7985720434214c83bb9994f7aa36967532f8e0d126fed67af79ed3109823a20a21735a9920509ecacb54367ec57518a0ca3e2b686a938b2c4b3be5637312977897f45ecc2b7ddbb786f2f71e86bd55a628faa10e664062d88ab0db9d540f13f3fae30755a5a62e91e2ddb78af8ebbaa33a84a057d4aa46893b7e3381c68517199c62d5d1cd352bb56059bd850bf3e031426e365e153439ea14f3dc073e9830671e478d455bcc1cb6cc79c44617ee6e6bcac8cde481d00eb34758162a947f3291f8302de32d0d58e29f6567f440b9fbb2667116397ab20f4388545a71149e01b4a184b7256df15d9aa67a81b8a29943c3b128fd0c6945220c797702dca83091c71b8acc43b61c6176e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e59b934ba57584104eed7431bf6f322f4647423fb96ee78baa9b8c4a6c8adfc5e59b934ba57584104eed7431bf6f322f4647423fb96ee78baa9b8c4a6c8adfc55056c253c79b37b7a1bceea630703d8299197db4cb041bb5d736f6b9b39534c45056c253c79b37b7a1bceea630703d8299197db4cb041bb5d736f6b9b39534c4d7451808fb6031f12df0e4c018ccfa27d7596b9f2ee3d5c09bbf48ec9f4a3f97d7451808fb6031f12df0e4c018ccfa27d7596b9f2ee3d5c09bbf48ec9f4a3f97c62724f67d18c3ed65ad281283f6abb2977307f55b45b5edc1b2269ff3d4bf11c62724f67d18c3ed65ad281283f6abb2977307f55b45b5edc1b2269ff3d4bf112effa733b9b43a40b163ec9b9263b6814df749f8a80764a9add2a19621d67ec12effa733b9b43a40b163ec9b9263b6814df749f8a80764a9add2a19621d67ec10e2b0a15b889f682199e3455054b723ff2ed6c721121eaa4b054524658d0d37b0e2b0a15b889f682199e3455054b723ff2ed6c721121eaa4b054524658d0d37b2e3c421d17a25f73446ed9c93cf7c51de345c0df3126681ad936983d6c1dc03f2e3c421d17a25f73446ed9c93cf7c51de345c0df3126681ad936983d6c1dc03fb3c5a89ad8277dff8fb1cb477ee8205a5ae9ea0e869cb09b4c693703d9ea91c1b3c5a89ad8277dff8fb1cb477ee8205a5ae9ea0e869cb09b4c693703d9ea91c1c4ad9cc484a8fef2d9111a7fa022afa3f6b928c75b109f1026e6b2700d713a40baf2b15cd97e120698a2e9cee5ec54e82842e83b690a91692ead89e5702b00959ad0f5d7fe3706dfff5e01620f5ba48fd21e4de4baa12e537b0be15b40eae1589ad0f5d7fe3706dfff5e01620f5ba48fd21e4de4baa12e537b0be15b40eae1588cf3a0d0ddf2a9afc1da3a0a745be6db792cc4060df0f8b0a603e43cea027aabf481a49aa286b06a2c187464f800f95015d1a82c69648539900c98c9717e07bc008f9269775964934dffa01a7f3ec39c215af92ad52e9e8e416af87ce84efbef008f9269775964934dffa01a7f3ec39c215af92ad52e9e8e416af87ce84efbef70beb56be3baf844591d5d44856066e32bcccfb72c2f6479728447d5e7ac9415be90048d90b750ba2833046ae01d78a121aba5e4ca8b08d78a0b3ae3ea67abab7dec3675189606d4035f464fcbedcad72914ffcaa6532683dc775c0191ea06767dec3675189606d4035f464fcbedcad72914ffcaa6532683dc775c0191ea06768b1f62f3e63db91ccd696d10458c5116d91133438b37282e7c90da68e34205628b1f62f3e63db91ccd696d10458c5116d91133438b37282e7c90da68e3420562072babb552d67a90020412a3c95d7ae612899aa8cd7b35192636f3a0862c2b27072babb552d67a90020412a3c95d7ae612899aa8cd7b35192636f3a0862c2b270e3591eda86b0178a2e815564be64ad3bca0210378778342791d6dd103f63c620e3591eda86b0178a2e815564be64ad3bca0210378778342791d6dd103f63c62550cebdbb7cd5db919ef771b503b9d3b726ad7d376dbc088d24b08d1681e6a699851e5ebce825105926b975d14cc1c5ee3d6d473f2c8abcb1c9016bbb1c0146aaef06e4cbe9c59c6001ef408964e9b264b08252851e7c460217aa0740830023eaef06e4cbe9c59c6001ef408964e9b264b08252851e7c460217aa0740830023ef794685bc9959fc558b27061e473ac24729c3a846ad71981c280645600af82cdf794685bc9959fc558b27061e473ac24729c3a846ad71981c280645600af82cd9ed9a1595191f2b4c2b4a87ca4af4ab050e1341ba8d2742e967cc551dc69cd8a9ed9a1595191f2b4c2b4a87ca4af4ab050e1341ba8d2742e967cc551dc69cd8a6f4725757c02f15eb3e8affdecc4baa1de68feb98334f18ca48c99efdf1e887959fbe1d0d087411370e7cb90d44e0cb8dc09a5e3ce0376f2961c9c48e84d2b4b75afb6881c3e3c36b4adf8727c3e305faaf37a7fd9a1beb423a041ade476b253b188831c9315f9212374af4ea5089886263738dcf4ccb48df0bf37d8145afe65ae62e1ec97a6b00761c33d0f290b32c96313226754f1c900c10a3e55e98cf59a0d7700ea682b3ca8395624e5b8eccdc1fe8724bb2bdf5578c3449aa8591a9989e6f7c53890522ee0a7f1223a70f9b303ad3dcb937e4c662124c1f726bf56dff20fa27d89ddcc01855d9fe7ed46b87104b3cef1c4a008e39c537a5f3d730261f9f334e0366bbdbc6b2e35e9e343a182a075b920d5a1c48a84c35f7e2ed041bfef4cc6ff63da000a8ad7aa68c22a73cb9d51cba1e1d1c69d70f5c2691c98fed176e3fa1f416d1d0a915822bcd4570f60f605281a2f5621b233ea2fddfba1e100c0e3fa1f416d1d0a915822bcd4570f60f605281a2f5621b233ea2fddfba1e100c073d2f1974cdf7fddd2b8b8ce0bf14cbd2d8718a5bd238e4be75c46f773281d2973d2f1974cdf7fddd2b8b8ce0bf14cbd2d8718a5bd238e4be75c46f773281d29caf0c67a54d5ba045ac8f68e17693869bd0acb8777b8e9007ee3908c04a32266fa31cb384fd31da673e4115c0a7a122fd11802d2749d77a6e3db3da1fe23bcacb3081c4ca3a6ddd68b7974d6eafe41512d938b646f1271914181ffc835e4940a002c817cb823dff5c6fa2039a26103ad7a833347102b38bc87c1d10489f31ba4c9d8a7f101bc047a9846c3d8e0e2fa7266f8e026ea5e5d53d31c52f7b5611e499b6d58df002d41cfa38ba55e6fa93f33983a034672148e1e81c853767c21fa9434aa3c56a2e2a09e279d75c6996e0a75ab3117dd04147919687797d5f4f4f02fe85d6d736adc29a0999a07d5c2c13a39b21efcfbb1db799455803ed83f70085766bc8272147fc90482b1db0c902a714238cb6d0c4e6c0e460ed2c6d114799867aaab170ed8b03088d730488855268e8f01f96268ab09a2be748cdbebe5c9b0bd62584b4d1976a07040baa85cfb398bed4492ebb4cf5951c89a3780407ade65344613085d468d54c1a3737ae1b036a1590e0c6afbc440376a5ea82af85e9fa70f8bc5c04347850a8836e85c3dc95d186f5ca002a298075c3d0b3f67d1f8fc819531eb31c6083704bc6178b671f9d49fdf46fa80aa4e81d557c3a5befae1d2b3343233a2802ef9cfaaa844c9201e21eaa2dedeab17f00d94ab11f94930f9be6c71a3e41154c1a210dad3271c377c0840eeec69744770e8ce354e31d8b52551adc8536ab48b59fc84f4b681087ca9ca1c020e5da2f1806bf6d1db86a4997333ae4e0ecdeb49053b1db740cb0c2610170f9d5a0b0754e9ff680be886da59ca5ef22de46a18539f3a4abc5444cbc39ff8c13092278adbe2260e0ee7e88e53ee88d166e569baff1ee52ab96a5633c8e4c04dfd1bab7111f0558a10ecab2bb3ce1d7bbba2e5e9b9dfa3792f313f24cfb1727e9b7e0d3ef2b9a2ce39a2d03375257f2091d0432181f3c6164f05667e90abb1e9f4f37a607b903568956f2e035dc4c238de6825f8f3d8116b836ed1d30a445c86855ea6689afad2e1329eee6e09b291e1084816f6895d5cadbf3d30345310a63ce91e00fd43960294d09fd55055c3033a5102169eb141a5fbd8adeaebc6e9fb053ceafdca716919a4cc938b795d35fb67f44ba7fb72c628ad1a620fa72f9f78c849961cdc8f0f242e371f988c16944010359573a06724e53a6e4798af2dc398b0d00dffe40eb0473b171ce690908bef9685500aafce96e2d156d9a3751beac904799030fa8a08651fb35ff5a909bc720a852954b0637b511435f513547927c46b9f2bba7752b4e7b45251a9e077c91eb6872954b0637b511435f513547927c46b9f2bba7752b4e7b45251a9e077c91eb687b4693df155cf4313f1fb2957f9985a074e2ac0f84db94ec3c76997ba6f41af37b4693df155cf4313f1fb2957f9985a074e2ac0f84db94ec3c76997ba6f41af37e9121a48b63c6cf4f7634614149c931eebf505ee7b3232e96c5877f24760e1a1c53395b1ff5afa4d5649fe7e81dba703e994c31b5d68fec054923dac3accd2afce3c3155bf075f3b503820e78ad61d813889632d77fe57065f16c7b06ee41022ce3c3155bf075f3b503820e78ad61d813889632d77fe57065f16c7b06ee41022e2c1b5b90f6254de87ef1f49301ccca5e79a2912293e11cdb0438c93ea18f44f5d69a1e829e65d7bc516b33d56fa9af45c74843e0c5968962ee9b085f6e37af7fdf9267cb8e0ba2abbc0b17024985dad611234be576a3bab3df8d5c575529b55fdf9267cb8e0ba2abbc0b17024985dad611234be576a3bab3df8d5c575529b558f4a229f47e91911dc0850b111ca4f090a0512f03e0cc2d42ca7463fc36fefaa9a3870b9d0b1f5694b364c59ebf90e2a6b9e174acba14da2d7178048a17aca244293f24ebff87863e015e8a7b82606f5fe4030d8b2c4412e194f7c3bdcf5d165be166cf0bf93360817a8cd5b6e197e1696f11374eb201e93827c7c7e1dd2d87129439cfa1379d5e9bd8ebab12b0511dc99e481213ec523aa32288971268be81fdd49477f1422eff0005c8eeeafc68fa4f6e6a8785e702b2e6e6907125fb4d0a57cdc4e4950f46ae125b03f1f37db6eab9a6c7e0310f91141b43e17e608e546480021600f415021b51fb477e8b2adf0cd98e57d14aec9e6d478dac1ea31ce33fc0021600f415021b51fb477e8b2adf0cd98e57d14aec9e6d478dac1ea31ce33fc1ed48aad04f85b07888e4423ff9fce76f44920d5c0fb502fd514584fa65a37a81ed48aad04f85b07888e4423ff9fce76f44920d5c0fb502fd514584fa65a37a8d0fa35e0ccd90ee1cf963f1b4e65b95692449b827d25a0dbfb30031524736241495039a1cd565b78c8e083f3de0dd314d9ac7081666be9a4f55cc24c9d29b97b86bc65bf7abbba9b1fc8cc3c937810f6f6a005ac75a581d2186a98959d199343d808e8cb88f191527d1e7d557a24d062655ffcc508a89ba59571d89579c1091dd808e8cb88f191527d1e7d557a24d062655ffcc508a89ba59571d89579c1091d876840b0a9249a1aaf8163a1da58af6623a9b7726fe4ea2b6995ec7a9305ca4b876840b0a9249a1aaf8163a1da58af6623a9b7726fe4ea2b6995ec7a9305ca4b2a8435cf5c82a293caf049fb21bfcaffd917f98e71abe533dd7dc3532fa5a5752a8435cf5c82a293caf049fb21bfcaffd917f98e71abe533dd7dc3532fa5a5753406839895be9b0be94d34edf8997cb44e2b34a41cf29f2d27db09efd1cc74d23406839895be9b0be94d34edf8997cb44e2b34a41cf29f2d27db09efd1cc74d2de13d96b553854856540eac8595718c09f73efc9d40a280acecaf07e1f8fb388de13d96b553854856540eac8595718c09f73efc9d40a280acecaf07e1f8fb3882554c57951832d8d5f1e234091a465bcc66552123b9cf9760aa51acf17a236ce2554c57951832d8d5f1e234091a465bcc66552123b9cf9760aa51acf17a236ced28c56a677098eff24dccee216845a1b7b835adbe16ebcb21ce8adaf20a7fe1fd28c56a677098eff24dccee216845a1b7b835adbe16ebcb21ce8adaf20a7fe1faeebbd18b08ea2ef628f67041da6a144a8a29a49788bb1685d3d73a8f7ce3d7faeebbd18b08ea2ef628f67041da6a144a8a29a49788bb1685d3d73a8f7ce3d7f1a565eb77fc28f6fb7351d5c208fa48a78318a8f01e9d44e8169f40f38e270586db2cfe50ceba71abedb9f42fb80735077272c23deb8ff35db8d03267b709ecaf49b49849402710adcafcf761abd74f4efe313150ad33c3203b1e57f9bf0e164f49b49849402710adcafcf761abd74f4efe313150ad33c3203b1e57f9bf0e164971517a9f353571f38cdfead7166e42d91c0e9654146d251a5f780f59aa168067b0f4e60440710e8ef1a5d3a66cb97f16dc302f1d6b10287c16031212c86ba0f4edcb8e5f3a31f8d1f0a89531a4a8a42f41099b62c32993e9c2c9f2dcbf6bc6e87ed5c5263b3ea684bb234e33ab27c88f7a3a4674b0b21b89734dfb5f199bcb8a5885dd59cfba66779621bee9bd72848fb4f585af56a70a77f6b3015eb5e6ed3a5885dd59cfba66779621bee9bd72848fb4f585af56a70a77f6b3015eb5e6ed340b013eea9f70c61a751393f2845a3968e87c72b71d26020ba2f66d2c198d66e40b013eea9f70c61a751393f2845a3968e87c72b71d26020ba2f66d2c198d66e65f1c3fb7d5f124b19f730ac109e3f421da438e335c28351dbd3370ecb88c6c465f1c3fb7d5f124b19f730ac109e3f421da438e335c28351dbd3370ecb88c6c41a97b1704dbd2e863831a6703d44dc50165a0dd72c8eac8bc591739e4f076ebe9a9f905a89cfe34237c4918add754ef86b3d6b7523ce5aaa126a7d88b247f45e2cdc7bbea06775874753c62e26de7769bffcaf33064d756bbcc6fb099264c46d6c062bb7bc7f547e2da0da48d3ae8b4316c7a581a9635331c6664086ca6996fc5f804040e3b6e8634e47b9c7fdf853cc07deb9cb76ac141cc7fd79332141a5cbf24032b992d20b2108810afabdb5307e1a6a83da30b3898cd0857a0d66b37af2fd4d4d53f0be483805ce46c0c40b0f0e03131de4d66596870909d937f8e1d14f5f7f8a319db41e8dd5b6ac95697725a5e429173a24479344f2d6527ef295681fab978fce795f3b0f97608395e914e7878e724bd85a37e35bd5dfffe105dcde0dd64dc2afde6f0b1c464460e58eb5b7c0c76965d2f73617f4bb59fe936a9db026e3d4e01a4430ce4575b5434609da9a53fd7702bc42063c9adea93b5c2298367ee3d4e01a4430ce4575b5434609da9a53fd7702bc42063c9adea93b5c2298367ef2547f1f6d293c42464b8fe505a17669fbcff907fd7bb96df8340d859a44932bf2547f1f6d293c42464b8fe505a17669fbcff907fd7bb96df8340d859a44932b503b2a18fb9fee711f92ad22d51e5ea0ccb643668e9d57be863f9e6c6429cf42503b2a18fb9fee711f92ad22d51e5ea0ccb643668e9d57be863f9e6c6429cf429a67edc2640d5656de973a55510ee124eefcaa12413019a789331f737ba9613be7b47e1d2c63d0f5a620b30dd0616650da8431fac45526a65f28c3f96ebf7dbb074629fb3b7c8b30c45daf76d18ee941eb67ae4e42caa2167ae0a6180ba66fc1074629fb3b7c8b30c45daf76d18ee941eb67ae4e42caa2167ae0a6180ba66fc1249880dfd9e67595260c230d92e2bc03c099d998a526821951a06d72c7bc561c249880dfd9e67595260c230d92e2bc03c099d998a526821951a06d72c7bc561ce19f99f28b3473dc9b837134be95c9aea94f7a65687caae174b2790d3fca63dfe19f99f28b3473dc9b837134be95c9aea94f7a65687caae174b2790d3fca63dfd534a31cb6e5279a336f200acfb142f600f916030a00b598d2375b08806f152cd534a31cb6e5279a336f200acfb142f600f916030a00b598d2375b08806f152c0d7e9967aa31ca8bc7de547609ba0e1c9f9cb0f0788c5b2968d37ac268fd59c80d7e9967aa31ca8bc7de547609ba0e1c9f9cb0f0788c5b2968d37ac268fd59c8a9b3952a87e0430e5f0db204122346f923733bda8e9d9b972154e98cb8ebc6d1a9b3952a87e0430e5f0db204122346f923733bda8e9d9b972154e98cb8ebc6d15e83c9f76b6e0abbbf754f80d2964bc9f9e6ee7d7b8957490e8c81a42f46405d5e83c9f76b6e0abbbf754f80d2964bc9f9e6ee7d7b8957490e8c81a42f46405d24d6f2aa350f763c4ca96502a0256a152674a5dcfdc35e05ef0889adf254b38c24d6f2aa350f763c4ca96502a0256a152674a5dcfdc35e05ef0889adf254b38ca6aa988ebe0f60acc7910d896dfeff0b01638ba0b471b86ab9922091feb174dda6aa988ebe0f60acc7910d896dfeff0b01638ba0b471b86ab9922091feb174dde149b8634edefb8d85afee0f135acb575ae29c23d99b8133bd5b8e86046c9454e149b8634edefb8d85afee0f135acb575ae29c23d99b8133bd5b8e86046c9454dec6c9b5e64e0549426abb151ff8ba3656b248c42de30f963967d4eceacb6b9cdec6c9b5e64e0549426abb151ff8ba3656b248c42de30f963967d4eceacb6b9cd841d7d203bbaede2f8f046a6e9ff1981e85c1a60846801b588a458c19826835d841d7d203bbaede2f8f046a6e9ff1981e85c1a60846801b588a458c19826835f858ab328cf5c66e9ba36c1a28c6adbb92b711bb34e1c9c7cc91a50afe5d89747d685efc7f3b5ae1aa4876f33116d61ff81cd6b09b3c36416cd0a7797f323e6339e6d7d15856c9fb0486b8d9d482ca89dcd7f0d7b0156d4b991b532adc7d725c39e6d7d15856c9fb0486b8d9d482ca89dcd7f0d7b0156d4b991b532adc7d725cf8f1c93cea465169484e6e1d575425aa50b164da8284af176b973f7f702a9fccf8f1c93cea465169484e6e1d575425aa50b164da8284af176b973f7f702a9fcc835660ec3cf5298d9bf3d76af5b4e698d786ae2bdf01f38b8f10bd26d4c52f3b835660ec3cf5298d9bf3d76af5b4e698d786ae2bdf01f38b8f10bd26d4c52f3b01d9078391e29de7a7c013260836b1e27692b111714543226b14b9fd332309eb01d9078391e29de7a7c013260836b1e27692b111714543226b14b9fd332309eb604e02040e853d83dc31f996dae886a32f7b4b4052e522e714570229e538dced604e02040e853d83dc31f996dae886a32f7b4b4052e522e714570229e538dcedd0bae97d41e6f36d3b41a727e8634dd46aa0d69b28479ed57a9ec68656f5fab8d0bae97d41e6f36d3b41a727e8634dd46aa0d69b28479ed57a9ec68656f5fab87f24614a8e9d3ef6a130eac8514462dca6bf070634ed7fef2ee41af20c2d7a822929924bc8e77ccf89189d593ffc86b4169d347508bd089a9a9eadcaadb3336e10f2da4b3cba94a51f79ce57883b092655b56ceaf14890c2ac2ff80b71291b8f10f2da4b3cba94a51f79ce57883b092655b56ceaf14890c2ac2ff80b71291b8f18689461073e812a174679837c306f88e48751eb51d95c5697007d74a4f7c22d18689461073e812a174679837c306f88e48751eb51d95c5697007d74a4f7c22dd4e00bd6c2d63d6b1ae1908f89e5b4e5f91c0d253ff679e0b0facfd41f91ec11d4e00bd6c2d63d6b1ae1908f89e5b4e5f91c0d253ff679e0b0facfd41f91ec11273e2c5987f910952692b886a73fb7cdb5ecd5bbc3c35db90f13e39881aef73b273e2c5987f910952692b886a73fb7cdb5ecd5bbc3c35db90f13e39881aef73b96fba245c8672883160b18883c66a409e2df4f38df0869384aac080ef17a0e6b96fba245c8672883160b18883c66a409e2df4f38df0869384aac080ef17a0e6b4fbdd47bdf7a32d768f34d200f77a25f6e4d569152f9a4a7932d75b6379149524fbdd47bdf7a32d768f34d200f77a25f6e4d569152f9a4a7932d75b637914952db258a0ea9fbe764a1181dd9308b4c852a118e78711b178e3b4956d34a0e97a9db258a0ea9fbe764a1181dd9308b4c852a118e78711b178e3b4956d34a0e97a92cf2900f617f7bdac9406efc980bacd554f84055315608d8bfb2eb3235dd2df12cf2900f617f7bdac9406efc980bacd554f84055315608d8bfb2eb3235dd2df12920d5b1c3ba168a84860b3a26038178b7c9c9ab46091d07ab3680aa3ad6ea0a2920d5b1c3ba168a84860b3a26038178b7c9c9ab46091d07ab3680aa3ad6ea0a3356fd538756fec3b669d74dba0396ac58062f2a76fb287ad2cc096f30d906163356fd538756fec3b669d74dba0396ac58062f2a76fb287ad2cc096f30d90616ade58a7ab5750d5a96f17b9b23f743e66c1ed38beb4e5f210692da6d303ec071ade58a7ab5750d5a96f17b9b23f743e66c1ed38beb4e5f210692da6d303ec071377c445c39fd1e005cea64a206327973b7295bd709b507e91d4d33452652e27e377c445c39fd1e005cea64a206327973b7295bd709b507e91d4d33452652e27eb49f27bfdd23236e2ee9223395b1dcafd0431cf01c9251c90be9c8e69b398012b49f27bfdd23236e2ee9223395b1dcafd0431cf01c9251c90be9c8e69b398012e13d2795b74b3aa887a05793de33697df6d064c6dfd41eb5dacde2101263093d39af04dde8674cfa5aefc6564111cf2647b230a4dc07c1c097f7e6cbe929eb24f97d288ba9f2156e9e31c292e2ad2a26113e730c9c66eb37f1a42e54e6b65919f97d288ba9f2156e9e31c292e2ad2a26113e730c9c66eb37f1a42e54e6b65919cfda1fc8b2685590d315664de9c60648bb71fdaf6598acc48ce50b2daae291accfda1fc8b2685590d315664de9c60648bb71fdaf6598acc48ce50b2daae291ac5587e3ee1698924241195c9d11c05e0e52ef0d8fdceff9c3d9636114b3695ceb5587e3ee1698924241195c9d11c05e0e52ef0d8fdceff9c3d9636114b3695cebae29909f5fd25911360dc3c6957c005c3201132c068da5148fe444bfa8413da5ae29909f5fd25911360dc3c6957c005c3201132c068da5148fe444bfa8413da5ebf23be1e1f247722753d0096c0e0872f610330b32d3f38b0f767905a7ede848ebf23be1e1f247722753d0096c0e0872f610330b32d3f38b0f767905a7ede84881a2c0e9689fd27578eb1f48f749ca71823ae405a3f70abe5bd8639e714b24a14a6f37f72f3dc3b5bac38e120e2272482da648502423fdcc15a459bf8d96f8e4492498b583cd6c3b161994f7d4c730509f7ba50bd32b4089628eb6589c0c8797eeb54916e092453cddd8727f3f568b6cdf943854e8a7367bce1bab6d1fb2ddd2f99fa6575926beccd54108a0046002d3090cd12418b6c140c6fe9bce8e5edabff99fa6575926beccd54108a0046002d3090cd12418b6c140c6fe9bce8e5edabff0978ba6e3bec979b6ccb30bc51f26f073a72fb4b8b4497a238cdcaae52307acf0978ba6e3bec979b6ccb30bc51f26f073a72fb4b8b4497a238cdcaae52307ac1e5fb9e90a9f2a9a4d20157853d5dea167484d56d3367f16d9d4d6cb29084c1e1e5fb9e90a9f2a9a4d20157853d5dea167484d56d3367f16d9d4d6cb29084c1e96d71f3fedcf8e53470a8a397b86bb0b8cfed838414d745f63a8db31b07b3f7d94f31fc025fabf601a3e0bc587f7125997202c36d68850872d9fe9f5143dbb11d7707c5d41b8a170ee2dd5ef7db216c0b15e47e654db502a4d2d7371d38df1b550a2b749a2190763c274a4884b4827bccb4b47d2495fad8cf9f649bb73a55b282f7b7cff020ea2ff1e9bebd958e71b91db2bc1ee3737afe0a8d879a47ed63ddee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8553a1f50f1f17a185579f13304e47693ada6ef500620bd797d180d02f0d14efcd83a1f50f1f17a185579f13304e47693ada6ef500620bd797d180d02f0d14efcd8c6803b268b78246f49e16fc84311ac44348e39bef60896d3bdbed360b4ea2d05c6803b268b78246f49e16fc84311ac44348e39bef60896d3bdbed360b4ea2d05ce26cc560e51a4a6fe304f7fec4606e1933649fd3b347710cd9d7653ead8261a2bb93af6cc378d8e439935e8489415b14b452102983d054e48926106e1afff21d066371e2daa219bc3ace389dc0b6aa6933546c631affeba111e041e3b8c88c7d2329157b7c40ae588d7aacd9e4b3464408a03589960220468ff00d59be351224f3102899a0228d32a83053be9c3c278a58506a696bc074b31ebf9fdb0a4858f2a1a38f17eb9c44d2c705ca521d7898ccd9b71bbd1befd21d1651b316ac90f7002ac97a40d854050fb93e6ee06dcbfee2b461189219956bc5f4f4d2d1ba5dd03e4a61a33d7ecc64458cf0d5be64d1f2fe8fff9ecc8c3e8a3f6bf7b6bd307c4b6de61ee46f5dfb2afd0710cac0d015bf2a4ae76f4e2a25ef50ba21cdb0e7bb4a3862153eb0335ef8188c11bea0ec21cb8e73e743b2adae3ca30a6f257cfb55e77d9a9482c4d4b8797aa8852598f34643105e894d2511d8e6805077ebe665814533716e935d06d5345452346ca7c67c39293fb4b6ffcffa1653bcedd547d28830be3d3ab757cc3f875eac1abe4aa3a3c67b82fb39f2138d3730e103230434d92f628f101b9e6922d2bc1a4578834cbb40fa4e01dc47dd1ee4f6906b089fcc5e28df7a4ff2e3fce996f9f2bb26b487a23623c86ddfb0681bce4a13365799de47d819a6f2d7ebc2a86939ddf0cd9292e0d26a91805055c0df4ccd89890e5a5bddf61741a4e606df81915fa48bf24fcb6d2f6bc593cc8cb8e8325819d373f3e479aa73b5430f67573467ba7eef669e1464cef0bc94aff56f78d66114f6e0cc9d8dc35ba11eb61690bc44feb1793a41ca2279b41d4b2b8e02871d542fb6ddd472fa2d0be66ef6053fc499912c6806f2e416a2a21f5b2399ae62864dcf4e9772ef546be25f07b6eea638c91f6c375ff9989d0afd70903fec4b884c2d9c456d777d48de2dc75c768b40f34019c5e726390825fa333592d3bd32667f85b90308bacd144a75b16de408c64bfc62d02988dab141cbe3fad33272ca08e17cbe7f09031e93ff6b37f796d367cec4493ad908e7605db12367d3f58863f00a5ffcc52b1a73f0cb6edb265422b51a539d51800666d2ce71e72703870f2dc89e44efb45531d7759025d8d1e19d4c8cb8790f578352d53d969c6fe501847051f9cab42293d51e8c0a7a75e4412615b9905306ca2c2ee53895461c4670706e39b9b1196131aed352798f5a9dfce663a4c17d43c3c810ce758d3b92a9931e9675b4ad232fea7525670e65abd3858d2381775ff57112f7ab346f87db983bbbe3030ca94db7e2468fefee5891a5a3418d5d0337060fbbfcfa4e21e0469c186a188cef3b48ff8919e14cfd0854b4fbc3620583680d9d59d80bb2c85bc117e6dd0e5846546881d99e454350ce3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8550cffe3a0449ae388d3ed4dfd6f5c9e4e0f5c83e62c4bb623898d91c0974bf9940cffe3a0449ae388d3ed4dfd6f5c9e4e0f5c83e62c4bb623898d91c0974bf994ab988914d964e0802462a92e77bb3cab15aef4e3f12b2d93bcc54f2cdb7d6392ab988914d964e0802462a92e77bb3cab15aef4e3f12b2d93bcc54f2cdb7d6392161bc121d645c5143e753c246ffd2669d44a815042694310cfd239c6a8c4e6247b3e0546f37929a4a8b09789d96cd4c8a743760df91c3cbf4922cf5ca09db793fa777717dd22ec6a572e37a12d51ea5411342a55b31af4143c44cb04d9f8a3a581c808d1f39f830ff76130a5a5badafcc371c321322777945eb6a82c761be7d16aa42e7cccd1c38e99a45973998698793dbe9f398a6fe86672b029a6927ceb69c5806b838c7475df569d3f2a7257c00d50fda2776b50d92a3e6bed7b5a5ae76da70d5ea4674c8f58431a20aed401eaab33847e35fc3157625bb3b50654fcf9e4f26d3c51be78f741f88d0e8b617bc5cac1ad80aa0ab0751ddb31ff8bcfd39d5c946b4973118ce38433e026e4e2b6db9ab2b19cdaf5fbded4db94da99e2de859cc1e3d0038536d2d2a060047248b102d38eee70d5fe83ca512e9601ba21e52dbf7bfd76fe4516ae3024eebeb79ad474d5dc53bf3f401d75c3b00c346a1756e3d67bfd76fe4516ae3024eebeb79ad474d5dc53bf3f401d75c3b00c346a1756e3d696d4a5c3038edc2cf34c8ff38c2b36021b0fdd7d1ed4a3431d9e33d48e5070ac96d4a5c3038edc2cf34c8ff38c2b36021b0fdd7d1ed4a3431d9e33d48e5070ac06cfe16596213577ef76ac71c322f96d92b915f6d0aaff0761bf0097be24818206cfe16596213577ef76ac71c322f96d92b915f6d0aaff0761bf0097be248182baa4f8961744ca9fd98520ef1c475ceacf5dab01bda9da01e95d1b837f2199d6baa4f8961744ca9fd98520ef1c475ceacf5dab01bda9da01e95d1b837f2199d6280a047d8e1fdd272ad75a0d0ca4e453b0379cf059b9b2da4fce7069ad720b7f280a047d8e1fdd272ad75a0d0ca4e453b0379cf059b9b2da4fce7069ad720b7fb717e7ef3bd51c60349920e8f39fde021aa31ce0b65fe90168ac6618ca583387b717e7ef3bd51c60349920e8f39fde021aa31ce0b65fe90168ac6618ca5833874e8a7811e12e69074159db5e28c11c18e4de29e175f50f96a3febf0a3e643b34bcf3586b73996f18dbb85c9a568d139a19b2d4567594a3160a74fba1d5e922d9fa1227cbce82957a37f62c61e624827d421ad9ffe1fdb80a4435bb82ab3e28b532480f004cc641df91ab4c343d95d25f62da7515a150409c8ac258f254ab9b840565cdc302e2e631dc3e06d5164aca67517a2d7e2fa23a603acc4013219eb0e10565cdc302e2e631dc3e06d5164aca67517a2d7e2fa23a603acc4013219eb0e1818676f3b4747f68740b08d056a30fff304c5c05d550d3b20a53202287ca6fc6818676f3b4747f68740b08d056a30fff304c5c05d550d3b20a53202287ca6fc657e2658b601de1205fc6e3980ebe92b07fcac3b0c60da87a54d05c83145d7bb457e2658b601de1205fc6e3980ebe92b07fcac3b0c60da87a54d05c83145d7bb4841ed3c7d29b1265482c0045e8b4201ac0fe5d2554a16f51c62294532272893c841ed3c7d29b1265482c0045e8b4201ac0fe5d2554a16f51c62294532272893c12cc7b40658a140378b903288c219c0687bafe1895474c82909d6696e16093cd12cc7b40658a140378b903288c219c0687bafe1895474c82909d6696e16093cd77bc9019d5d742bec9aa6d50bbbaab8a77ce9013f48d95d55a9c7eae5b9f6a0e77bc9019d5d742bec9aa6d50bbbaab8a77ce9013f48d95d55a9c7eae5b9f6a0ec4a56f6838a1dc9916c74a2ab5a3bd2098707fcf704e5092b9c015800c8b517dc4a56f6838a1dc9916c74a2ab5a3bd2098707fcf704e5092b9c015800c8b517d15e5620eb50834865caf9d393c0c6f5380235f3d5ab048802ecf465cc87045a144dec0221309e44a83b186828d5a3ea38bbc2730c3e2e9096e67af58a4bbd2b605b3f2f977f21f027accaa33b903af36f419cecc7dbdd6ffd1b6179fb86c05373e0dba2d1a6fd3240307901cfacc605571bb86c035358bdaa45800a597d8cd98d48211ca51b7f73e7e773ab4f51fe782e7f1c8f67182574d6ebc4ac541b018a1aa85853c48f29b9826d91b8cc297f7a4e8acddae6bfcf259142ccadb9e092fc061038ac0c4f0b4605bb18e1d2f91d84efc1378ff70210adae4cbcf35d769c59b5c24050c78cf8ba00760d759c32d2d034d87f89878f09a7e1ef0a378b78ba77569c81fb1e382e7974dad50336812a95221f767a57b43509ac6c890dcaee90be18a6bace9fda851cd35b0c88d2e9a5bd9ef2ec3a46e18b6075df74085405b99658a6bace9fda851cd35b0c88d2e9a5bd9ef2ec3a46e18b6075df74085405b9965002301d11078dc329fb77777e1d4d4450028a8bedb373cda46e4014b7e560571968f3f51756638b159c18cb9c29e5a6e4698fdd0dadc94fc95eff8a8bd06a31077940b99e922c9c7f97a73123ce6c9a81b12a5dfd2febd1608484fa8fdf1e5f677940b99e922c9c7f97a73123ce6c9a81b12a5dfd2febd1608484fa8fdf1e5f6e7e3ac0ffa980e0ab745d84385922ecc94dfee9af7ccdf3c6ff7c1d29f4ffcd2e7e3ac0ffa980e0ab745d84385922ecc94dfee9af7ccdf3c6ff7c1d29f4ffcd28f097d7948d8c3d906dbb1a76b2f008d5dc544825bf9ca473e9ad7478f7adcfb813adbeb15cb93dea82061585882468e83c925ab8381dd2678697fc4eb848c6e1b244a35222f101ff4b013dea83826024b9b62941c5895bb0e40090778fb3bff2ec823286a44d22531316dad8c1d3044f4303e70ad532de190b6ef14dc8222612abfe8fdffaa72092cd39ec2307cd81ff463a7254b1c9d949ab1389ba435afe4451b83e8500ff78b5ace850c0adc9231678677c22666b3aa072970adfc877bbb6311cac2daa5000b5e17bdfd9fc6f1cb5feb017ded9b5c83b3061cb7e56ce802e3ce949fae29b45dcef503398b3f3b735fcdcabaf1678116fbd1f27cc6d6bffd61efd57f83ae91f3f9152975c5a6d065947e1e4b7ceafb2930ba98936bc86f8261efd57f83ae91f3f9152975c5a6d065947e1e4b7ceafb2930ba98936bc86f82f9066f7554372551bde5129ce16f4812f6f2b77e7a916701c5713d88d7706fcbf9066f7554372551bde5129ce16f4812f6f2b77e7a916701c5713d88d7706fcb03ad0fe463f286c6b97c83ea45d56d1c0975d48f9972bbcaafa4632a3bae0fb06956aad5caa13db5214c6a2d3e9e9a37a5cded864659a889aa85398cdd7f5ab3df461ec7bcf291e0321fe2856f12860aeb8ff341fc3652908ba9d14234ef79958b543b93245fb98bdfb2e78fc75cbede6ef7ac44d043442d31b36cd6bed897ac1da4ebf846faf2762fef03ffe30d55de4aa271836963289cd4db56e21f217c58fcf74c9c3f35b43e5fd600af1dad5c8b5c791ba2d83e0b16d66acb4f3059de1bb5fa0cae3eadba393b1b8502da8c0be80ae00ee08a69b801c6e2511994a6a64aa3f9b0d1f02bf773430071c77ea1b9e18d478bd4647eba76057d795d66582b9d1c58831bb2cca1a06cf36f56ba8b6b7c8c1c12b38e13150e47f01e06dc3f4c25c0dcc6fb3111cd2fd71a5b3e9c13d55722d11dadac9149649f4fb99f4b6b31609d0121626828ade681673c85cf062c5f124046eddfa38124ba7535eb7535ea214e91c71cb824cf24fb6076f08feda2eb07916aaf88bf2dbe3149eb0e48dabbe583f0c88aef2705747303e9963d1a5ab4719b98566a685a2cb3bcfd4c6ed049452f06cf92c73403524c6e2e979ee3dd301527f375fb04fb85356a8f184288ebdf0669132a68939389b6723fa2b9e9626adc33deeb7ff52b000415b9d6f9d09d95df574f5e7dd17dab74c592de568169ba78b285eeafb1b97dfd037ea9df4b8659586fff2f201ad86c2603aa92a0426dbc913c4440352d9a5b4a2cf2f16be124b927566a5b5241f8f69150c1e86f5eb856d20740837f61c7d5a7d5667ac4256eabd9f1e317e49f80fbe3c8d67588787fc23a96751fd8a393831f0642d232c13e176eef5ddd389fa0a72264572a441bb2815dc64ae4e19d50ff9b620ae1ccfde95b6cbc2e750f502bc42400d811c664bba6e5387388c4f99c890585ba5d5e4fe61b6cbc2e750f502bc42400d811c664bba6e5387388c4f99c890585ba5d5e4fe61bce86c4d660e13b9e715e0c512597ba20e46e08c5e227712625c6e2a3ced555eece86c4d660e13b9e715e0c512597ba20e46e08c5e227712625c6e2a3ced555ee8cb8fc45075e0631ff1bf4c4f9d564f4f4006488800e9906ca60a4f4d88691edc94d01d0e3b5709aa8b1048462202ab3970e5981f730192c0f901efd82869a4216ac359541bec6e9287264dc65a6d9c5e9a02cc4b642f5fbe8d26dab0bfc1ac528940dd5e401afc8882b948aac9e3b957bf11b4049ecb9b7f16e334f4bfff259aa898c266b1f009aa7a37a03ee5649a5b7f2c67ed1117c787777bae9b190d895aa898c266b1f009aa7a37a03ee5649a5b7f2c67ed1117c787777bae9b190d895e2801205d20684a80b2321b434fcdc43a96016661313baf63685226a5e042457e2801205d20684a80b2321b434fcdc43a96016661313baf63685226a5e0424570911e44e62996f484dd1e4403ae70d4a4ab626aeee54f39cc070d652f476a9560911e44e62996f484dd1e4403ae70d4a4ab626aeee54f39cc070d652f476a956d98f03c551046908bc43d47e6cc649d12af4784ea5b0895cd321a702856e4ffed98f03c551046908bc43d47e6cc649d12af4784ea5b0895cd321a702856e4ffe8d2ae980c250971084b21b5538e28989108c81c54e8498f6315dcd8721d816ac8d2ae980c250971084b21b5538e28989108c81c54e8498f6315dcd8721d816ac66700a4a21f76f28ae4151d13a74145559e23dcbe7d66452f19e9de489547cd666700a4a21f76f28ae4151d13a74145559e23dcbe7d66452f19e9de489547cd6f14242444b1a78eef5440ad753b0f0cf0a94cdb3a2df0b0ce79b2d94ca163204f14242444b1a78eef5440ad753b0f0cf0a94cdb3a2df0b0ce79b2d94ca163204c7cb07f83ff4b2aade3ed36a3766d5e3e3c44725a5e4dfb50f7080810c8a762cc7cb07f83ff4b2aade3ed36a3766d5e3e3c44725a5e4dfb50f7080810c8a762cea5cb9a1d29faabcad293f7fed4ae51a49479dfd4348adabf42e9c48ce2c6b6fd3fb0e114313e02570f5da03defc91857f345f5f4fc2a168501b3b816b05304ed49c5c8702b39310529fb47fa02135da806edde56ec74573771a2598869ddb83c548ea2aa88957c1e8fd7cc1a40b6fe4916854f4aea4af92517bed8f28141eac601af87d162e587ee44ca4b6b579458ccdb8645d4f76f722afe6b2c278889ea80bf8c7273997f0f238c6ad23a7399c4ccc696f9943b2ae28e55cb1433955ad91cef8d9536e2ce7cfee012f39d0c71dd0d9c3d17eff802300323cd634879425d78721a196799c264c6bc8904a0b75f9167129877ef9910a0bfe61bc2d952e5e06dcdce2b589c6410d3ba3f73f9b6c7793f1ecc49f85f45c2f8068b12e99aec98edcdce2b589c6410d3ba3f73f9b6c7793f1ecc49f85f45c2f8068b12e99aec98eb63f9f912248422d4944ce4af83fabc60b8fcec0cbdc7b9e4d3377cd88b5d1b8b63f9f912248422d4944ce4af83fabc60b8fcec0cbdc7b9e4d3377cd88b5d1b80bfe8ff73a17aa9e436997f90d736beb4aae6d0216a3c6fc5b6af2141624ee670bfe8ff73a17aa9e436997f90d736beb4aae6d0216a3c6fc5b6af2141624ee67b1e56987a8df7d20c0aa31df83706f236d2eed0d552dd2de1b0b59329f3a8db41778233aa9377bfe586c445a7ca3cd66da11b880e9615d0d2fbff66e5b0016937424d67a2f1da64accb100dc8d093be004e5f47b08047d326edf3338f36a31870b930af0985560660558fbf1b0e46ca99027bce5de7d8439ee6d589b496e5b93b6f3411f2c7115bb95942f066528444c2949c632e20cc3a36b85f0c32bcd9b68ba001220edb0d685321fcfc23aa4365ffb34ac38636e1402df2268703d3787676fd2a4e4c17b2b18612e07039a2516ba437e2dab561713dd36e8348e83e11d296e7fe68d0e3ce1a3c823104187893ae0c61fc51ea48a9b8b08eb81b7923e387c6e7fe68d0e3ce1a3c823104187893ae0c61fc51ea48a9b8b08eb81b7923e387c293223644a7a192cd86107afe4468d3a8074269316686b1525d383b448235499293223644a7a192cd86107afe4468d3a8074269316686b1525d383b448235499baabe9799ef26a8dff94494952a8bfab7aef7d50aba912c4cdf59dcf6fdedb9ff479f0d72024b8e1950b502f93143a03aeb37a377210d569314c6dca4a0fffef00d84422523632dbb86b9f22b5daf0b40c4a971f30fefaced16d5b1869c4ff16567843340e95e8fee898e7f356cdf38c81fa11d650dafbf3c8e5e99bcd7be28b2a50af34a4467d8debcb03a517914c518a749eb32ef1707bae87dad66be8355b2a50af34a4467d8debcb03a517914c518a749eb32ef1707bae87dad66be8355be7a198a405eda9fbdde31de223be1a072542c54032e3ac973b6b4ec31bbee9d5b2664df2ec10e5fc780eb151665a6a5c7de32151ab5ce53773d25bdcd586bf559982500015a19c6c4066f3ba1f7c42f7cfa9e66644894141855788b20ec64c019982500015a19c6c4066f3ba1f7c42f7cfa9e66644894141855788b20ec64c01dd943bba9897c1d00aed75208a190f14062a3dc4bd97dafdaaa125a385068bf7dd943bba9897c1d00aed75208a190f14062a3dc4bd97dafdaaa125a385068bf740e6ede9533ad05668dcb4289d4c25a8af152266369a6ccbe2031ca9a4191ed640e6ede9533ad05668dcb4289d4c25a8af152266369a6ccbe2031ca9a4191ed66a425cd919c178b070ce64a3cd0fc568fbff7d515d50ac1229d0f0153002aff36a425cd919c178b070ce64a3cd0fc568fbff7d515d50ac1229d0f0153002aff3b203b3532f6dce84f0eb9be01ba3fbbd786e800c19626c68c4e4cc230f3e3285b203b3532f6dce84f0eb9be01ba3fbbd786e800c19626c68c4e4cc230f3e32855dc6e25c1faa723bf76dca21a7a37df1332938fe3f8f79be88e03ca6d2b61966fca1a063fa9ceef84c1a9a2ab2cdb99f68622c234a46dbf3f660ab4bb824ab27ab77953666d62461bf4b40e2b7f4b7028f2a42acffe4f6135c500a0597b9cabe00904e718f0eab4918739ef42aeb8f4e4beeaa302586e7da13673db0251b9bae36d0e53c1b688e99f52140bce623233cdb149ae7e3a529709cd03e5dbe26e4d02d1434905b07ae5e6a7dc14d10426b20562c9c81d05095d8f5f22c6a44ebaea1966b2718d889f02e03fcf7fd3db334aa06d9bc3f64981f65a590505196b747f67498de6addc14be4d89f546b505570b9f50c6ac6edccb7d8468cbf1d710d7854fdf2d136b16bc5870755fca8f2f93d8fcb3a24cf0dff1b12c5516be91272728f85301e2423586fb749b1e20356c60ade63d07a9fe0a618f8b5087e6eca57f1b88111e8b9861efa6ee1248aca1071f635bbce33a2d040a7718092051c6f6079a78111e8b9861efa6ee1248aca1071f635bbce33a2d040a7718092051c6f6079a74a4844615c82fc75070ba297ee7e0cffa728c9132d101dfc40cc8e608017e9897d5bd2893cebdbe44ce88b235a38f87e468eb433a00e1516bfab00f7d768e02429ae88b9705d2b10325e12bccb6b2a52520b9cfbab027111aebabfab2e9d7cbf29ae88b9705d2b10325e12bccb6b2a52520b9cfbab027111aebabfab2e9d7cbf324b8d05da93b0cca4c28a0f12f659efc27b472cbf84bd86ed96c7650bf7d825324b8d05da93b0cca4c28a0f12f659efc27b472cbf84bd86ed96c7650bf7d825ef6962b05d627b9c3d0a1fb72301554d1266261063c54b582e09be6f622738f2ef6962b05d627b9c3d0a1fb72301554d1266261063c54b582e09be6f622738f22761f1f2e172e83c99c3c0a3a49ddfb185e9ef5b477b65cc738e71b8903136662761f1f2e172e83c99c3c0a3a49ddfb185e9ef5b477b65cc738e71b8903136669d14beba19279e93ce0de36d2381cd3120ab2fef1b3fa2797e6e1fee0b42bb319d14beba19279e93ce0de36d2381cd3120ab2fef1b3fa2797e6e1fee0b42bb31fe4f9b58d7e6b17cc8ac23c4ba154e9f7be9aa8d8b3486bdbae1673cbc207348fe4f9b58d7e6b17cc8ac23c4ba154e9f7be9aa8d8b3486bdbae1673cbc2073487e7aefa934133caf07deec2d96a24126e3358de97adcfed74d9bd32d850e34bd7e7aefa934133caf07deec2d96a24126e3358de97adcfed74d9bd32d850e34bd95825ad15932f88930c1ea11b4ae28255ddb278640fd46d375aab676cab3e7b695825ad15932f88930c1ea11b4ae28255ddb278640fd46d375aab676cab3e7b6cbf10430ac18976f9bcd8043a2f92c4a7f26efaa27d0b75af1ec8992c55013d58d6b57d3a8c0272b58ae42433aa125b3dee60a4c87452664a2a5256cc2b941ec2ee7953a85601960c1c106fc385c1791529f567df708cd4b9307f5f80f3ab514db626147c658d1a2f14950859caadce9fd62cfa1afe362b6e036a3eda4e37d2899abd94d02092177dd7b011a4939fb116acd7cf656791a1f6feef8c6a5b97f63e13b5b3c6a161b63d1808d75baab836bb79193c4dcc6f9d436eb8c19922d9d77e80b8396342dbdff3d0d3354c9633b937a1494ffe5abbd0d53e20d28ab5e38167acf0428cbd78f9c93a087d0fa97f70efe539c879e33ab0c1342d6fa7e1e707aef85b5be877fbbe6974ee33d8cbf63be9530306da39cd7a79326a7c7eabe1a7aef85b5be877fbbe6974ee33d8cbf63be9530306da39cd7a79326a7c7eabe1a7af7a07b5623244282b01607fadb09558991180f6331f5a8e6f6b72bbf797fce03f7a07b5623244282b01607fadb09558991180f6331f5a8e6f6b72bbf797fce030f4a9b28e1d2b4e395d3e3b5dadbbe8cf9b4eb78163df820eefd26ae95c78e3b0f4a9b28e1d2b4e395d3e3b5dadbbe8cf9b4eb78163df820eefd26ae95c78e3b3a9b4c2cfe877d7d917a63bacfe1bcaf885734e6c3c701998333efb34e4f42583a9b4c2cfe877d7d917a63bacfe1bcaf885734e6c3c701998333efb34e4f42580c484b2015345c1fe207d9ac789ca60b8ee1de17f5b551937c2040b8577b6c310c484b2015345c1fe207d9ac789ca60b8ee1de17f5b551937c2040b8577b6c3110fa2026ff6e19341cfb4714be0ad98bd60a5ac21b7736fac861189e15c9552810fa2026ff6e19341cfb4714be0ad98bd60a5ac21b7736fac861189e15c95528ce9b013c4e4b2bb9e45423a2dcc7241860172861a1fe80340873291e6a53999be4d30e2fa959dd269dc5436dab1b5793b386dba009399093254ae1fdaa25f35db439bef36a027f29429237265f5586d57e90fd0024c5fb6577a9d982013928afb439bef36a027f29429237265f5586d57e90fd0024c5fb6577a9d982013928af58d2ff0bd7cd2bc6c2b3f7a531057dcf9ca6007435df0538136bae3308d4321158d2ff0bd7cd2bc6c2b3f7a531057dcf9ca6007435df0538136bae3308d43211585ee783234687a403272bc9e9608104a0844ade9ef3a1316dc9e4ba41ccd095585ee783234687a403272bc9e9608104a0844ade9ef3a1316dc9e4ba41ccd095f74662dbe0fd66463eabd777eb3eaf7c14cde6d430842b23f9db7bf61ec4618df74662dbe0fd66463eabd777eb3eaf7c14cde6d430842b23f9db7bf61ec4618dc90aaa06fb5f9ed3756ae4e896c6214e59c97bdda3aafe568261da5f72ddd141c90aaa06fb5f9ed3756ae4e896c6214e59c97bdda3aafe568261da5f72ddd1412afa76a7fe1a540ec166a1944c6138543d77a49f04da735664d84f1892c583d63e2ed7090ef751ae1b1fd45aefe1c0d123631d5eabed5f32645f5b04c71bb658a76e72da98578869c4d6907e5001175db439446eda0312a7accd1f7be6e681d8a76e72da98578869c4d6907e5001175db439446eda0312a7accd1f7be6e681d83d7bd868d4a5d08d513876e69be9ac9bbc21082b916a545ba63a17da326402dc3d7bd868d4a5d08d513876e69be9ac9bbc21082b916a545ba63a17da326402dc8935cbe697499be8f85c89220225e999dd41c09ac5363ce418f86d053870a6ee8935cbe697499be8f85c89220225e999dd41c09ac5363ce418f86d053870a6ee6f2c58269f609e355eca1465677513320a3f2e191787569fbcdf30241b4071cfdb06795be53a4ee7490f5fcd2d4c237253296e898533dd6536fd75ffad2c7c668f968b33d6bdc12c7a787d68cb8ef7a12909d3684658da6d065568e2cd60ff7d87f928624505a3e1455318ece7ae091d4033ecedf226957023a7ca377318cc6dd128853d10d657a5c0f516e5ef25acf3259e2731593cb7e8ed539fcf41cefad1d128853d10d657a5c0f516e5ef25acf3259e2731593cb7e8ed539fcf41cefad127d38bf615cb24a664ee6a1480ac298d6f4735fe16949160fe8ffe67f4bfb536ff180071d14aaf440d63087f8bdf0053d86f7cfdd7db0024844945711445dd4ad01789ff6111efb908b186486c640bc3c81f394c5ccc14dc4b1727a2c548539dd01789ff6111efb908b186486c640bc3c81f394c5ccc14dc4b1727a2c548539db31cd0b5dbda5cd4ac324a8461d435211d083923339fc132bf2472bfba1a1bd4b31cd0b5dbda5cd4ac324a8461d435211d083923339fc132bf2472bfba1a1bd4fc71c886110dae18a990350431698cbdc509718f523243d1d1f0249cfcc04d05fc71c886110dae18a990350431698cbdc509718f523243d1d1f0249cfcc04d05622c8b81eec28346cf5fb4ff9840979e541d4f36becc453ed3176713b331ff02622c8b81eec28346cf5fb4ff9840979e541d4f36becc453ed3176713b331ff0218213d9b2f53247b6c4cfb247a4345db852283927b46f833971e70789dee827318213d9b2f53247b6c4cfb247a4345db852283927b46f833971e70789dee8273ecb921451098989de1b981064caaba29d00a40ba7500d453cb7c100a6b6ec8b9ecb921451098989de1b981064caaba29d00a40ba7500d453cb7c100a6b6ec8b91b45dcc61e3d631479ba6bdf1661ce637d3a94e2d5acf2d6ac19dbfb6476b7851b45dcc61e3d631479ba6bdf1661ce637d3a94e2d5acf2d6ac19dbfb6476b7850a6127b5e35c6eec4d3ea556b9483005a58f2a7d0cc49c30f28e644c067b60580a6127b5e35c6eec4d3ea556b9483005a58f2a7d0cc49c30f28e644c067b60584ea13aa9f81ae605e145087e83b369316f05bf546593c98d87bde6db388f46394ea13aa9f81ae605e145087e83b369316f05bf546593c98d87bde6db388f4639fbba7fa7288b1450196722a6075b6eee054e2cebb0d3111331ef67161e8afb20fbba7fa7288b1450196722a6075b6eee054e2cebb0d3111331ef67161e8afb2010b82b8d2c729f1a139f2a8acdde12c08d469a4580d07835b899a424ef63bf0810b82b8d2c729f1a139f2a8acdde12c08d469a4580d07835b899a424ef63bf08582aba84ff0215a5e9f97310a34f2128e8167858c813360ff43c6bcc135013e1582aba84ff0215a5e9f97310a34f2128e8167858c813360ff43c6bcc135013e19da6e053bc21f64897f11a66eacfaf3ac41165d6e5eafc739552b166709fedb99da6e053bc21f64897f11a66eacfaf3ac41165d6e5eafc739552b166709fedb9db4c6a338408193bec964f3b9882bbfb4ef2c9113b5460f0ec5cd134c07965f4db4c6a338408193bec964f3b9882bbfb4ef2c9113b5460f0ec5cd134c07965f4d42c37ec5b9094d69c9f144a9ad94f5f89f22e85fdfedb64a39670b1c354659eaf56fbc33593268b800c32e1f99d758918b8890c43d09289d6a1e5ea6398c6c0c72f197f7b573a8e8c5ab5e1ef23c65b1de5544920fc3858e02c66b036f4215a3c8cc0ca294da9a4f34923f6b250c6d950cb137a8d8a85b2dab82d492a2f8ae25ca5e6836fd738dad1e26b6ada37c453c5c2b28967dd54864f0f94622128932b129fa6f23777be814ee85bf9edc506166cfa25503aec8120ca204ec2fd0de1ad146cc9f98a924c4f33fefa163ddcef2d8e53abc8c4ff28231a333a757649f3e980fc6493905d0335930a06c41e0d65a4b8bed45e993e1e40fdaa2d80b5c79f38e8b2a741cf32878f5ff34d9b174b0fbdbcdc938422bcc62aaa85c03da60ff2e5680d2ffe9b16e8a648dcdd7c4ca0e27f178bea6705f040d770f5c3588e2f855475038d5b2a5bcdfbf31820ed769dccfcd25ac12709bccd838876f1d64fb0c3b8146faba6346916636988607837322e72fc6aeac4085c1dc7393a3699e4cab6b5d77489dc3e6915da99f7344e13a1db5a7043c07bce184f0696c9aa1a1a6b469ed81a6a2e54f6131bce3a2eef9e32b99c1e05a7e9b9da57623da5cca31e6ec2e88f92848b93bf550e464b9f47e3d97ed7483350e9162b197019e54c9463b630c9814eaf586298dcbd0b905f9efb9c2c397e596d5265eabe52aa480ffd83d66b11814eaf586298dcbd0b905f9efb9c2c397e596d5265eabe52aa480ffd83d66b11b6aa805828b03a44bee445c5b3bf25602e807e6ef352ea173e5be37839175071b6aa805828b03a44bee445c5b3bf25602e807e6ef352ea173e5be37839175071fe9eafcf2ce183b89408966685fc4d00898bd0334ce225389f1f8c5020a41f55fe9eafcf2ce183b89408966685fc4d00898bd0334ce225389f1f8c5020a41f551edb38aff650f2271fb4633b82404f7840f9972552bf869f7c5817604e80a74e73b8e798a154f432f14c95b451bc17b7a67d149a9b06556c580d50afdc5203fc785daf3b82e9386a0fbc828a91b3df9f2badf214f852279b64fa5bf8160641d28f5161df5d116d5d8343d9ef92692abe58f7f20772b982a594b9c6c5b73cb0938e0d402e881c60653de93412f62b0197a742aefc39cb9fbe04ffcafae164ffcb6ff9eee7f7f71c2812769e52fda351050d4c4829b86630f079cd8e993462724cc011589b5f34a9e6bd24ab7ffd4ce14653513617333c31436aa183db5b1bbaca0b8ab2a09ad44e4abe395de23bef15cf752d598a49c124dd879fef94608674d485eec78d0c7bb02d1dda47d354b8d4b34275e66b53a0933a3356ebc089bdfbe47bcf5e3d355ec5a8336244a82613e6492f40eefbe2da95218fa10ebee83745ca7bcf5e3d355ec5a8336244a82613e6492f40eefbe2da95218fa10ebee83745cab1e36c99c721f4e1075d88ab87c3a897bc3cc4385f3536cb8f9ac7002fa073fa15a51f1b5e0d04910a2d0a18f6a8fa258797ae961c2e62ae96085dc4e18568e7004558d2aa27cb210c82fe03a3674836baea500c149365d84aa1cceb9d2ecde9f66d496c4d894cb7411b431be81d2511a663d7cd56c7972e3d7669b1b1c46201770dc617cd9a9e3d225288bc9119e188e642a5b6a2f37d173260ca2857e38945770dc617cd9a9e3d225288bc9119e188e642a5b6a2f37d173260ca2857e38945f9ae0a05ed1f454dab0bf3f5f10b9fbc9dd9e16636cab4b7a320fbfcf09cca64f9ae0a05ed1f454dab0bf3f5f10b9fbc9dd9e16636cab4b7a320fbfcf09cca6447fd502fb997fd5c26c4abc6d3004cb5f4cfab79380669263e8871280ada615e47fd502fb997fd5c26c4abc6d3004cb5f4cfab79380669263e8871280ada615e57ea6dc75bf4a1ee412776fa2f3c53c9a47cda2287fb7b38838bd54befcd278257ea6dc75bf4a1ee412776fa2f3c53c9a47cda2287fb7b38838bd54befcd2782af685f827cf01881d01bda4c7469b582359c2dfe9aa1e6f8ac013a80ce2a1892af685f827cf01881d01bda4c7469b582359c2dfe9aa1e6f8ac013a80ce2a1892977a687d35869564e93d1da030565074d66b215e643d3bff5a3fbac420935582977a687d35869564e93d1da030565074d66b215e643d3bff5a3fbac420935582063272e0d9671abb04ae9c4b5df371863add1b3997511c4e9ac323ba977993bf063272e0d9671abb04ae9c4b5df371863add1b3997511c4e9ac323ba977993bf2c4fb18b3ba722778a3e78e382b7af79f79849f9f9a1c52f6cbfc0a4495f08922c4fb18b3ba722778a3e78e382b7af79f79849f9f9a1c52f6cbfc0a4495f0892edbb498c2f50e895738cf66f527d0f844d2a08ff8512be181b703acbf78c2269edbb498c2f50e895738cf66f527d0f844d2a08ff8512be181b703acbf78c2269467e2803cc318ad52b533632087145baedeedf12a9bed870dca550349844ff0d467e2803cc318ad52b533632087145baedeedf12a9bed870dca550349844ff0dd39b9a20f3b39c93d0ed5811766182986e2c0e750fb7082fe6a39822a6cbd946a7eddcf37139f838e5905df91b43bdfa48d0469a1e8cffb6ff3d21c59f9ea25ecafb9194ba57485f26824f908625b73952ea0fd4f4aec8fdb5b89b8511f861ac9f19833a8605f4d5ee2da198cb4d6d2858e4351796265ac616e24d584893a3ce1eaaf564ae5c088faf2aa3f63cdc8e4870ec3b6404023286ae07fc96c15bb2811eaaf564ae5c088faf2aa3f63cdc8e4870ec3b6404023286ae07fc96c15bb281e8973a5b5783641cf216ed49d18adc74d155042f9120dba3666bde4a707c471c059247080f124b4a588a8df428641373dc36a8c39a2b862967b85cbc76e74e09f5dcaa43ec373237e6c566c5b7c2843d4e887d77b245da16a763a0f34dab51067899dc834a7cdf39b51533ef33d6ae353ea86af22f5da89b9911437f5aa6c2467c03ddb098804456e43c08a1e8d918af2d1da63e233ea7a5195325138c16156fbd33334ddc120f257c77f75282ab944dd5a0045a00fd6df49dfc44243b2c85149027a19b2d146816bda15303ed9219ae7b307e73f72d767996f9cd2402f9241344639d63e421d9a2929354a82d6beea1ea0ba3b8e42df2b51b86d05fede177f744639d63e421d9a2929354a82d6beea1ea0ba3b8e42df2b51b86d05fede177f713e834b18b01bc3d16cbf96546dc5c4fb26006bca392b5c49b87bd83fd80bae813e834b18b01bc3d16cbf96546dc5c4fb26006bca392b5c49b87bd83fd80bae8a9423cf74049ec2a51b9d78bacee7e8051093c188d0698ea396977e822c9001ea9423cf74049ec2a51b9d78bacee7e8051093c188d0698ea396977e822c9001e6f2e9ebeb627aa48ac88cf8c41cbce2ace5b80333394e4a066a44736a7f4e331eb5189c73422a742089e1b8eebd648e466cd43cd97103501ff51a0e7f2ad5287f604004e9b5b1647a5908cb439f5851000b3ab15c93100d6087f6b04e019570431bc19a95379809b9b878fcc83aec97897c21400d73715c0c128d8052cdd7b6b31bc19a95379809b9b878fcc83aec97897c21400d73715c0c128d8052cdd7b6bb4aa306530f0234cd44a0bc9efb467a5150367fb4615e15846a70b6b8232b5bdb4aa306530f0234cd44a0bc9efb467a5150367fb4615e15846a70b6b8232b5bd9b66f7e1cf75ec85b9a3e43fe936081e5b0af6549494d8b2ac84d3507ff3c1eca30ba3a1be1d938e528b2e0462d6c2291eb0705a61ec4d386bfbff3ae01a70109601f09cec9000a079cb995d9a94662efe120576dde1246cdb36567ad2ca1e884e1a9534180a49e816728b4e292844562fa2d7d87ad1f37798d65e97c921535ff93b5b7a40f697a15f279549d72800fc05619da6b8540da75ab5dc25c38e5120f93b5b7a40f697a15f279549d72800fc05619da6b8540da75ab5dc25c38e5120ae24edf061562e7950558d1eda4c8fee9d4b6e79f9de42822c61f7907866166e0bc3533b9bda6a2686eacddd64b00ef9e082fd9ca9a65dba7be1a4a9334c2901baf472b17420282129e300d87405eb47691b9ed1f4f4d2ac9b5b9845a8ee0295baf472b17420282129e300d87405eb47691b9ed1f4f4d2ac9b5b9845a8ee02956d258bddf86e07833c50222a3372c248aa53dbb222620a28bf579d02b6ce10316d258bddf86e07833c50222a3372c248aa53dbb222620a28bf579d02b6ce103100c5a82baf4a56a33e1ae68f172b8455cc02cb3e9f6ac41ec1520b033c927ecd00c5a82baf4a56a33e1ae68f172b8455cc02cb3e9f6ac41ec1520b033c927ecd2b41ce7c2830aa25d9c7a75a8c69115f453055c40254beed95a989c7a437f63d2b41ce7c2830aa25d9c7a75a8c69115f453055c40254beed95a989c7a437f63d5c5da92f604a0452157f0be02af1bfcd1fa1544ef2de9a251c146c1b384e2f695c5da92f604a0452157f0be02af1bfcd1fa1544ef2de9a251c146c1b384e2f6947ab41a7b893d3c4a7978cee522c0493d8949d2bfb33611fd1eaf534907e44f347ab41a7b893d3c4a7978cee522c0493d8949d2bfb33611fd1eaf534907e44f390fc8c68c0a99399a9c5cd226b3e7b00f37d29b0faf174de292523c176fef23790fc8c68c0a99399a9c5cd226b3e7b00f37d29b0faf174de292523c176fef237339ac62880baff1b4c4055b6ed885d84112579f10c92da33497272e0464a91a3339ac62880baff1b4c4055b6ed885d84112579f10c92da33497272e0464a91a32ad04ed439c21dd7494d8560c625edc3ad2fc3d6ec45997d6f7bfe9697d7a82b2ad04ed439c21dd7494d8560c625edc3ad2fc3d6ec45997d6f7bfe9697d7a82b67c82c1793c4daf7e3b666e582fcf46e4d16a1aa938766bc757bef05edfdcf4e67c82c1793c4daf7e3b666e582fcf46e4d16a1aa938766bc757bef05edfdcf4e74287dff6e7483b38a77c01617b206761718c714daf4871aa9f7de7a9ae7e7e274287dff6e7483b38a77c01617b206761718c714daf4871aa9f7de7a9ae7e7e2498f48ca363118e0e6364f71f312f592065e47446d4b33bd9faf441094cf71a3498f48ca363118e0e6364f71f312f592065e47446d4b33bd9faf441094cf71a3abb83ed2948e4e0828f85bd3754b276e8e5de5ceb214017406240611af6f7397abb83ed2948e4e0828f85bd3754b276e8e5de5ceb214017406240611af6f7397316b1c2b4d36c1201ac4b1bc550df79cadfd66971cf3c1e600ab8b4c971a8a0c316b1c2b4d36c1201ac4b1bc550df79cadfd66971cf3c1e600ab8b4c971a8a0c1ff59a15d6c808c7ad1533446a022cbafcfa03e3f1d26d5ead87f2dea6d7feb41ff59a15d6c808c7ad1533446a022cbafcfa03e3f1d26d5ead87f2dea6d7feb4b2c237133b7b3dac6090e5b8e4686dc0f51c968fd23bfca0b489b803be0839fc9cc4329abe21b37d93a95a3901b0ab99c24486f3d487bc57965bb2ab0b252e2489d8fa7197087772f9c4d35e27b89e38bb70ddac0993903ae3151f7ad1f0ab73abad71717ab8b668889abbdc4952d36c5c82883d85f8bffe8562866f3e32f2f887e1cb955c7d8fcaca57985f480c9c3f60293928254f3efb474b73eea09b6c415b37f983c8babb09b8427d0b44841c4ad906dfeda71d4cf4b10b060d4732881d2212bdaaec97d1146e59335c83a7762464803946ccea6ca6da9ff65e32d3c1fe903de43447028fe9b16ed7f97c9b12693f3a786a046290f75f4092829ce5ec13140fbf915c016768e15dab9172d37f7b01d52b6e5bf9f8f4033cb3d531d0d0a9167000925bfc3069bfa9bd948a50d0812ea5d1c52db620852948f1d339f65cd00a2bb2b221c0dfd57951f702057148c7cdc8ac3a6ec1f37d45c4d482fdbc7ed474367e893868b64cbe368abdcb2f7b71410986bdf09d8ea6bfec51fde3e0fe599e32665627d8e1a49cb6e5b73cfe441510b18c4c0c4433ba27f7de1b674a5ac2f8bbd3ceb3ed7ad493ad1ddbbb1bb85e176032b2452c1d6ae43ecffbe2f65e1c16f1e64f9b87fbfba29ad473e611fd5426eded557e35e8b627dba96de8fa8fc8f886e6855cf4e92fb968f499b94b6167afba0fd5ce8d1b935c739a6d8d38d57390e3e7d2a603eb1453cdac5ba937588922270591e5eb7efd009b32220cd818b6879d3d4dd11ca5be7ee382689da5377b1d93335e465412e333d08d08fc274d3bfa37ae6006336fb8ffa09343832ba217e10229a69f4d29befa96778053908c20fa37ae6006336fb8ffa09343832ba217e10229a69f4d29befa96778053908c202268dfa6bead744e6dacd229f8af56f21aeea1fd89dd9b5a2158e61d5b0989682268dfa6bead744e6dacd229f8af56f21aeea1fd89dd9b5a2158e61d5b0989685ff3d8a7818f20d82ae13727b1d65f471a296e415409b260b46427015b9a92155ff3d8a7818f20d82ae13727b1d65f471a296e415409b260b46427015b9a921518054afc9ccba8af2b4cbaab56514aa71eb256a85ca44d02e8440f583bda1c9d18054afc9ccba8af2b4cbaab56514aa71eb256a85ca44d02e8440f583bda1c9de7eba3a908fe93d1bb530d75c90f75e9180a99136b81b8c1102be8d3a649410fe7eba3a908fe93d1bb530d75c90f75e9180a99136b81b8c1102be8d3a649410fe3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85587dd6edf094ac9b65189843c0027b3c28b56986583d98f1cb3cf3de97b749de787dd6edf094ac9b65189843c0027b3c28b56986583d98f1cb3cf3de97b749de73473e61183c54473fe4d792befc4fb4aeebe9baf5c8bdce8ba5b60481a06f59d3473e61183c54473fe4d792befc4fb4aeebe9baf5c8bdce8ba5b60481a06f59dbb2f31519f8d0c4c3dd7ab6e8145e6f0783008688c3b47fe45c767a647d77ceb7eebaf56b09eb6ee60b313c1e37111ca37cef1a45e4b7ac5407a4382222d6ece4d26d1996cd3736eb0d2082c5756f15697960c1f10348adeeadc1897b18864111bcaec2d94aaeb883956622afa507b51c209d608c0c48409993178444665790dd3fd7f5cef33fc22e17a03f75697fd549df325c7cb9b434e1d133e8b4624cf7a751c6320bf926c5558d2adc88d232b7e00531eb9b52d90e02ceca0541c2261974d3f2c6fd3d39ec9ca861ac6b8790b3748dd37476d2a1b4f904afd0a27436cf3339bc9ef9f850831bbabae6a51450a46587dd744cfd208e6b6a31dc16cf9c1fa339bc9ef9f850831bbabae6a51450a46587dd744cfd208e6b6a31dc16cf9c1fa1786d6f7d5935a463764ff87f03cdfdd616303f65d43b9153ae0b1806dd7e00f1786d6f7d5935a463764ff87f03cdfdd616303f65d43b9153ae0b1806dd7e00ff8df42de4d0f82992ea77fdae6e96c9f1330a0c5f65558abf492070b7e94f585f8df42de4d0f82992ea77fdae6e96c9f1330a0c5f65558abf492070b7e94f58599c2203b413feec4f1258282c30361873750aeb97bcfcec145ed43f5a88868cb99c2203b413feec4f1258282c30361873750aeb97bcfcec145ed43f5a88868cbebdc085aacecd9e555de291f4ef4465d53889d6fb936bd50d8479308b5cc74b4ebdc085aacecd9e555de291f4ef4465d53889d6fb936bd50d8479308b5cc74b48d6a5077876df76ae23bbaf3d5ed8330dcf840f0b0d457f8d5a97aaefd97d1b58d6a5077876df76ae23bbaf3d5ed8330dcf840f0b0d457f8d5a97aaefd97d1b57a007ada8ae4fe107550c4fa0ff82598bf84ec915b906626872ddc95633217697a007ada8ae4fe107550c4fa0ff82598bf84ec915b906626872ddc956332176986c966fae81f5a3db0d5f6f839ca9cd59af7f2277753275d4f875732908609b886c966fae81f5a3db0d5f6f839ca9cd59af7f2277753275d4f875732908609b878070d21c25e50235a46f068c14d2011ffadcc5b007445d99e27ef76dd91646778070d21c25e50235a46f068c14d2011ffadcc5b007445d99e27ef76dd916467a5479fdd05fd37f3a59f5f8c0c797513207248939292842fec94699118041cb7a5479fdd05fd37f3a59f5f8c0c797513207248939292842fec94699118041cb75986cf984a42cec73c6cefd735bcc89cf2eaecdc501286b78806cb29c0adcb0f5986cf984a42cec73c6cefd735bcc89cf2eaecdc501286b78806cb29c0adcb0f62f158cb5d359b72a9a589df6a0a0d8e774cb8239a468856f2974dff47f6d06462f158cb5d359b72a9a589df6a0a0d8e774cb8239a468856f2974dff47f6d0645ce00805fa2f14cab9360f15eb664c439ff2b6205a3117c807b1c81cab7125b45ce00805fa2f14cab9360f15eb664c439ff2b6205a3117c807b1c81cab7125b4987fc0aa32d2e1118f802eff7d0fa34d6dc35d6154ba4464c9c48b4fe31c8871793550f1d468655cf266672484835e33bb40a5a86ae0f2427269d3458d53ac44e513c5187ab7fea3e70a0a62b8a31a32b1ac04c9fd5deafe871f943796da01f5c2a0542c7ad952224e49e314116e46a7b7a4ead7ef95c71f7bd9989860756665359ae8608776cacdfd3b437e3da91dcfcfc250b0ef53672328e0e9e634e88fae359ae8608776cacdfd3b437e3da91dcfcfc250b0ef53672328e0e9e634e88fae7f8d1c5b9e5dbe266002d2773f42c0ddbab0a000d10e0967d706f0ae5f3f1b267f8d1c5b9e5dbe266002d2773f42c0ddbab0a000d10e0967d706f0ae5f3f1b26eba3ac551b8109882b8fb2a3bd26ea199557926826e0e53da515d9c1793c947feba3ac551b8109882b8fb2a3bd26ea199557926826e0e53da515d9c1793c947f4af91ed784d93c309918f35d9e8f343164d5fe98de0ff905f4d34315451e353e6f41340fd35fa5506f2c5766c7dd79c38cc0c796df5b90f0a83a9c7675455768ebe513290be2b53fcd1474d95bd08dff697c9b6c5e5412f56701fb68a82ff793ebe513290be2b53fcd1474d95bd08dff697c9b6c5e5412f56701fb68a82ff79301630c614249192d30e2192d8fdcc816dc4cb09de7adf8f2e737f53407ec620c01630c614249192d30e2192d8fdcc816dc4cb09de7adf8f2e737f53407ec620c0a7c5ca7bb420db623c84572b021965b2c1483699cde97e341bc696fa21f27f40a7c5ca7bb420db623c84572b021965b2c1483699cde97e341bc696fa21f27f46c4c2fcf575b83cde762a52268f14cc0c456120ffbba45d01474d7d7c349027a6c4c2fcf575b83cde762a52268f14cc0c456120ffbba45d01474d7d7c349027a2723c7d3e7d0c197826be30460f8fcbc6d0b4a9e9e2310eaca6cf16bca6e87de2723c7d3e7d0c197826be30460f8fcbc6d0b4a9e9e2310eaca6cf16bca6e87de6a98c0fd30bc395e909eed213f54be4addb5bcdf756fde95b58b420c7ea6f79a6a98c0fd30bc395e909eed213f54be4addb5bcdf756fde95b58b420c7ea6f79a59483dea2ec2ddcc5cc9e2b27a89a413587f7aa7457c59bd3046501cf6a170eb59483dea2ec2ddcc5cc9e2b27a89a413587f7aa7457c59bd3046501cf6a170eb1e586fdf693b95f31cd6f9482e7af37895e78f03bdbb1212c158279ea6ada2591e586fdf693b95f31cd6f9482e7af37895e78f03bdbb1212c158279ea6ada2596e4e1f6921f10aefe593095e37edebba2127e0dc074e58a41eef724c6889c7076e4e1f6921f10aefe593095e37edebba2127e0dc074e58a41eef724c6889c7072032fa01cd15af81d574eb47a96e3e273c3d90cda6b2bf809ac005fe8fbc9b58b5dc043e7bf097c575f1ed525bbb14ce681a0f615793fe05142c4ba588bdeb2305ed374ce5ac3096131427b8959cceb7ab9fa4b4bd021e1148bb6cda0bc0062905ed374ce5ac3096131427b8959cceb7ab9fa4b4bd021e1148bb6cda0bc00629a3df102f51dec50ff23afd69d42e64abcadd89ed6cf6b33d4292230a5cb05290a3df102f51dec50ff23afd69d42e64abcadd89ed6cf6b33d4292230a5cb05290c60959ba99a40e77c4ee1f1aee6d27e78f77243eb044eaf8c0674c84cabd1b6c14f8c357eef4cb389d415fd56248707751e069eb9dcb529fdce13e6607ab41ea8b6a81c32774fd11e3fcea3a1396a26f6352062d62ac0bf4074c7e8ff79867fc8b6a81c32774fd11e3fcea3a1396a26f6352062d62ac0bf4074c7e8ff79867fcfc013ee8fc43b8cbf69d397be63d39da44bb7c612e210cb08f4490b786610eaefc013ee8fc43b8cbf69d397be63d39da44bb7c612e210cb08f4490b786610eaec9bb36f10f113dd07cec825e294e6441b2e95f351711a39d57e7e73d2637ae55c9bb36f10f113dd07cec825e294e6441b2e95f351711a39d57e7e73d2637ae55791363485fef3534173eb2595bc84dd9986c045b5d298a98549e4ad7b926f17a791363485fef3534173eb2595bc84dd9986c045b5d298a98549e4ad7b926f17ac3a67245d76065fa0a4a873edad38d5302a93145036b9a9eb45cb21b951d2466c3a67245d76065fa0a4a873edad38d5302a93145036b9a9eb45cb21b951d2466bd5d32380992141b06c72efd4345eb90d902571e823688926b85978b5a7e2d71bd5d32380992141b06c72efd4345eb90d902571e823688926b85978b5a7e2d7192016febf132b36ada2c40c4b6db9a03431f11cde9ceb8db3349324fe0ed091b92016febf132b36ada2c40c4b6db9a03431f11cde9ceb8db3349324fe0ed091b0e90f6375da05a36ee137c9674c8cdf014dd891d8e501deb3ae831bd484cfbfd0e90f6375da05a36ee137c9674c8cdf014dd891d8e501deb3ae831bd484cfbfd493542f9f59162408e9e3d965166385864a71e5fdd8c5631d93c055e4daa808b493542f9f59162408e9e3d965166385864a71e5fdd8c5631d93c055e4daa808bc89893cc7e2b108137c131b38de80860804b28de1136f5cc0eb314825befa0cbc89893cc7e2b108137c131b38de80860804b28de1136f5cc0eb314825befa0cb086fb5bb190aef5ee9b294323eab89d9544384ecd7a1b943f99a01fa1aa667aa086fb5bb190aef5ee9b294323eab89d9544384ecd7a1b943f99a01fa1aa667aa1149018545ee55707ec3417a56815e105079463c13bd9fd4125f025cbfe253641149018545ee55707ec3417a56815e105079463c13bd9fd4125f025cbfe25364ff81821676613a0d776a78221effb9a4e74c80927cf521f7936ca8b1d1ad2597ff81821676613a0d776a78221effb9a4e74c80927cf521f7936ca8b1d1ad259786f300ebd3ea4794f355ffaaa8bedf3f499eba1111f992cc4cd626c50d9fe9e998958fe211e96ba2407f02ab3f1ee0e39225e921195ef5078b355d44d5930262ed16304b84703af7156976b30395ec4d889a8eeb04dbc154eb138865fddb0dc9ed16304b84703af7156976b30395ec4d889a8eeb04dbc154eb138865fddb0dc9388bbd3165f004f2d733e1699e9b861c45a08f3213c4399216ba0a2e93a1c9964aa45e7df1957495d205e1fa380b45b72d34b336678b6e204ee68dd1ead29e86ec59735b2612545855c3e88b3674c3f19aa7b92d33ea5e18470e5c9c8f166a62ec59735b2612545855c3e88b3674c3f19aa7b92d33ea5e18470e5c9c8f166a62ee9b89a6eba8d201c82ab75affe26209ad2f3bc261d813ca49d02da50740a011ee9b89a6eba8d201c82ab75affe26209ad2f3bc261d813ca49d02da50740a011f82f6e6475124f1a8584d8789aa5db06ff9c9af0bb7e8cdd27aa34bde71e2aa9f82f6e6475124f1a8584d8789aa5db06ff9c9af0bb7e8cdd27aa34bde71e2aa9666f3eea5893c637ebc62928f3669443cc2c63b00f7a0cd0523729a38bcd962b666f3eea5893c637ebc62928f3669443cc2c63b00f7a0cd0523729a38bcd962b0e4ae9f7c1aeaec03b24fe3e8210e5ef6e1c9a2e920718eae6869c95fb28801f0e4ae9f7c1aeaec03b24fe3e8210e5ef6e1c9a2e920718eae6869c95fb28801f764e9c539ba7318b9468b07994e6278116866f8dfb0a07e1271d9fbbfe980a6c764e9c539ba7318b9468b07994e6278116866f8dfb0a07e1271d9fbbfe980a6c7e706006284122d962e2ae969e04b27b73537ca12e1b8620c67db20ead65c5b2ba256c242a49d90316f28ca6d887bc9c08d03e1cd6ebb3d4094f5a8f4e21ad97408d731531e0b34f552a879db834faf23f6ce5ba0e72d309660218f23e7e4d9d1eba0e1d1fc7060a4e171fd40053c98613f01020b77a331aed8603d431997df46db5d4ecac6ef42c8f1265acb43dcdee87f30ba45003ce0cab01cc191100f4326db5d4ecac6ef42c8f1265acb43dcdee87f30ba45003ce0cab01cc191100f43261e5a4a6a0d16a8d97f7a88e7b308d7eeb81cf4ac20b81fc0a9d4879309d6f84adce2190ab0fccc39b84ebc12fc9f508fbf3eb81a5c2ed41e4a315082afdff9e83cac845bb3d07cf06bc80f8b79cb389bad7777e40dcc347d95871c5ba32ef1783cac845bb3d07cf06bc80f8b79cb389bad7777e40dcc347d95871c5ba32ef17510b3bc004f5a8c8e3e5c9caa8c98ccc67151df0cde9fe9d6728b6b4fa2da425510b3bc004f5a8c8e3e5c9caa8c98ccc67151df0cde9fe9d6728b6b4fa2da4252a6053b07a1759449ca4a82432270d9d2635bb447870c15311424ec042b5f64b2a6053b07a1759449ca4a82432270d9d2635bb447870c15311424ec042b5f64b8ae6cc8a3a295fe1ddc7d003f4851358f5ac41f0ea3024b91fa3d93f9a8f47c58ae6cc8a3a295fe1ddc7d003f4851358f5ac41f0ea3024b91fa3d93f9a8f47c5a2cf1c1e220a551cfecde4795b9b5176c6ea3b25f8dc9669455acb751bf11a67a2cf1c1e220a551cfecde4795b9b5176c6ea3b25f8dc9669455acb751bf11a6785e1bf0402ae001023584b2605053e12005ffbecc44bc2019398c046b8e24e5e85e1bf0402ae001023584b2605053e12005ffbecc44bc2019398c046b8e24e5e3d6bde6d139002e9d5d3fb7f173f2dc80bc873139ccf2e3c729f148e5ded12963d6bde6d139002e9d5d3fb7f173f2dc80bc873139ccf2e3c729f148e5ded1296acec607eaf5244a900adbe160b29a0f6abaa5cc991c30797c837689a04e933aaacec607eaf5244a900adbe160b29a0f6abaa5cc991c30797c837689a04e933aa17dfba751977512e6c750e422e4564f452bedb66fee5b7b960de180c33a74b4f17dfba751977512e6c750e422e4564f452bedb66fee5b7b960de180c33a74b4f17533b43836bc8beaeb0a049c60f5ff3e084f938d32613a42b73278d00e0194217533b43836bc8beaeb0a049c60f5ff3e084f938d32613a42b73278d00e01942c7e34200a6505ca29b76c9ad415004b2887b0e1bb5ecd59fe8776908b8fb8f96c7e34200a6505ca29b76c9ad415004b2887b0e1bb5ecd59fe8776908b8fb8f965595f29b5f73498808438b144957b2ece5ee4e791c156f325717cca1878d7f56729086408227fb4c1c460cfb59c4615f193e1e5387aa450c30d16b3b7a3ed758047e91ccd16b473101c0c6a7b89c9efaef8c0af69f79358689f819c4c56b8166047e91ccd16b473101c0c6a7b89c9efaef8c0af69f79358689f819c4c56b81666b713bfe8fea17bdb94e0dc23710722e75e29961507206928e713dcd846d4ec86b713bfe8fea17bdb94e0dc23710722e75e29961507206928e713dcd846d4ec84ea89a4f13b8dfcc059a958afa4387628adb82510cb8f77c631830313d4a8b6c42a7fc5377c7d129934e24a6e25706014490e400cb50d6633f8b06c82aeb9880ad985b6f506bff548c940060a362fdc16b2ee074e4d3c782188d8025bd8f96c7ad985b6f506bff548c940060a362fdc16b2ee074e4d3c782188d8025bd8f96c70f2865d6234cff4177d618b43fdeca4c94b387b5103c2bf45ca41573c996d8970f2865d6234cff4177d618b43fdeca4c94b387b5103c2bf45ca41573c996d8970c7ea01448f36970d7d57a0172a11b320810b85da837658ef67dc3a95f8a478f68f9ed1bfd9b48a0a766322abb41676435c517d4aa54a52236c6086197a96704357f5e8393a19907aae6313fd1273e82350c10568bc738de2f7b942fd1d3cac0357f5e8393a19907aae6313fd1273e82350c10568bc738de2f7b942fd1d3cac0da7e048898b75fdb2a22ad0ed7a91467fcf2e9460c777c457c286529f9d6d47786ed552fd9db55da6926b5688a356c85195c4517bfbf7763bb7326776b0a65d69fe91c7adb04531d99526850adf78c35cfad79e1a1a6e490e45f153c1b32bc3aab1815de72a75d0bb585f6e7455b303d8cbe030220d57d0b482e3b70ae6cf2395ede3b41a7022b062bbb38c38be80e06aef6e0945e0e3f429bdc548b97ebfb7e1d66713f90b66a331b1ebcaf01066c79f9557d0a06cec28e1f3286b0b0fcca74a19246c37d5eeb87705d20a6ac39ef65bc156f564a8567d4f30237556a218c99d41c88d0f035669c5963708624e2b9e218e5ab85fe073fdba088c8a8277c2a7b855ffa08b7683e6d2f6b6d96a70e332aa334458b33dd36715e3d0fa12fbd7834b4649793fbfe21999b8f5180cc78adf00de460840c882a55b0215fb02fbf289e71d7afd4940a67426f960b95f62a478339d3767be52335050c16f422dd8fce327af0edf10378945e428b0ad421794e2429ed8ad0423ac23764b3c42005512c95da52d29622f4db963e60c7dd7c66eeb644037af85cc83a9cf83b54616f6653bd536af5fe0ff5cd28ec8e251d00449cda200c7378b8ae2fd2f0f60fea4439cf52f82f0e2bbaf19f7b0851d570c59041a5e1e12335f4788f9533731e9987da5e6dcde9716d3ea83c566736bc163e973592d51e013f957387ee15c4592d018bb4c23f4bf12367dc9ddca6d545354b7ed703343342793263b62a00a9b19b6e3f82e876f365f5399f3f3355c622a4e560c58a112b679efdea0d940bdf8a186c9f5e69b7be192f7c6e0c23f79e64e9f691f52f92e223671a909b9045095e1c225eae59c5f57ff6dd1283aaf38a69ab0ebbbc7c25665256a56007072c37eb2599db6f0438df84f99a924a1799f3c56b297d8cdcf5e915b18451464f31afc07f497ee1fd262f98a247e48677deff1326af82128d9074ed3257820042398a186be1c302bf883eb9df6418aa7066ea1003ba52a3ad5f25f24149fbd7c4568a072471f784c86bb503df4dc171c442ac48468df304969bf94456088a7680840baa62a854be6c149ea72378c3ee1d97345535dfc6c952dd8762658e9516e5b68084b8801985eceb6ef3b49b3dcce2fedfc1c9ee45c17ab47e813f0a05f602f14cc4c0c243618af4687de7c5377fbe5655d2d3782d14f679064e7da7d309e88caa49ea34049081de585091d25bbd63e82c33be0276089805a626f579765818342559f7b39168de1d45f429c326f5db0a362d757d36e233f876883b65f3248269573195a944ceafa43be46cb92fb5920c230431fe3919fac7b2365e331812ef897a165ed7bd7f08d5520fb82f0082d296adc9dc42b8c1758a80dc9556cacbba8d9a35aeb87b73b468a826e540c79f9366ba2e8825a29db1985b1c2961fd7ec3fbf5a0f0486bafbb0d29074d440ba2b7d211100a13fa1300450579f667669e1b41be2af2b1db2b0bf857b7d7c90c548fc8c1c88ae4f3a94e170ed3ef43609ebb4d900de8396696636a7eaea2ec2128f025bd0858a4d3691aaf44272b1f3083afbc26cede84a8476ea264c5f5ab1a027b0ce322d8f78791ffd7604514a6d651d4b335f6d03d726024e693f729ce5de1027f734285b31adfca18e23d57bb275ccea9215b140cdc57e64e5f531cc0d9f8f9395a6f2c23580683f5390e1bac9b10fe159d1f51b714d16df5f4cb00f080c079815dd46feca654d7de234a036b45be96c7b448a0182a78a6a770b5838418cdecc529d47b345f4484f6f3403bdd3d48464604b21861263e4a118a7db9c8fe9c38d80e41c257a324d6f7bc9d43a9b852da5bbe97e74322b363432a0aa04ffc21d09baed8921e9f53b1348dc931d8d053b9c2113b8ce4ddf54144560be8774216c1dff5646972f8b7c3e7e98fef0ee5d319f16f7a55d28d75b2bd9cd8beeedfab096fdc6b61976c62c350dcfcef3456519c095d03387c02c833cc4966dcfadf488be339c7b6f331131cc2147fda45612500e68d007e58143faeb81f9c07edd0e1b9970cb2e96ce5a4985be2c3e15d7b7f73c8c57ab4a2765874c73178b8069f884784603258b7fbd49c9386a1353c46b1fe3c7ed67166178c281e6ac8257f2c5914c76e087c33111acbff37564a8d5bfef4b3c68a3f965c608f913146b1d19ed28b3bb572e71caa704c8f7409712fadc79e6460ac866272e73c48efc44c114a6e0de7fc080ecd79b8d52bf7e98c57032237fd1f8a398dbfb9279489ef4753830d3d9fdd464c7cbd60aeaedd63fa4374a1f0e1b75480e19a3386c0631ee3427c2821a04283342f28d112b986224bf66ec600ef54425d3843d31178b11837dc5568c36e03a1095589b8962ec774e1f10aa9952af9cea89a7216dd9f8285f6f932f3fe6261e5dcc993c4bf3c8ba655a50ef14b90ce4923406cd3c0704a017e473794bc2a6dae172ac529cb8bd240a0e1d9043927627de3e002168ac74996fa920fa1d24ce2bcba82b82698bae5f15669f7d92a72676705eef46180e611c70c3347724764f22587e7311b8becee215485e616d4da3228e3b47b9531acd4fdc59ad56536085d90b43589f8d42250c1835b47e29e70f3b14e042f07c6f59f28b4e98cfadcb19f24e876f5e579cb4feb49706a18c68834eb6ebc4f4938d1f35a4bf68445add43117374f958ca4dfecba6b43c5f6a8af6cb7a1fd5fb4194cc514f2aa35eed872a9008faa30cb62983f514d64e6a55df96c2226f9c955ab628791784494871ef882ba9bd264926fd960861cac5a6147621b1b3154235cef5cb9c9105bdc5776e3695ccc3542627a6de7f25bef23d4c9e4f4eef881b6b938d799280a61740d0783f3e936f0ba6de97ff3250525cc4860a3fe80eaecb8ee57809b085c865e4a8deeacecb14548ece95ae15f9099ac0d0dc4843e7718429f0ade18a8707ff837cbf0466dfef32156ccceed4b08e312f7a7ebd5ea59ab124303799367cc6ac8e248bfe78a606373a3d13fb1de5c5d5d3621e3faf20c1db8c0158e00e25422ba72947436604ea59988bbe51de1e696edf1ef8c96640db8e97120f96cdeb0bf9524ab1a883537bb2733a49307cba5426927b0058270c7c46e748fd63e7eb9f25f9ef940a3942c8bf0026625c39b0317cea826141c8e6d3f7ec896ffc2419526aed1cdb3f0434e64c8b5849eccd59198e34f04e3e8578c7cb283506de9452688330345b41f2b1069b29a1ce7374561f6928ddf400261a0df8015dad318132e8cdf69b79b62d709b43742e50917e4855411abe2a83509261e185459c822d5ac2b72a0534435df66926db1786dca9aa913c07f71a4538eee9d81ab4004c6d460d8d2f6ea1d34f7efb58fe8766534f4603943370c6d0e5c25986595024ce39f422ee71467ccac8bed76beb05f8c321c7f0ceda9279ae2dfa3670106b3de4bc02fa28296af06168d8a16198ecec9112920d023eb9bae57d9f00404108d6a0b63068949f76499dc636d9b19ac9276ed012a384638809814b4b5327e82306a0b63068949f76499dc636d9b19ac9276ed012a384638809814b4b5327e82306cea17d50c2f0c077fb7ba20773b568ac47757aeaa4afee2f4c2ac2a798afa046cea17d50c2f0c077fb7ba20773b568ac47757aeaa4afee2f4c2ac2a798afa041b1b85136400aa72fa0f74a530687c3a3630b5e96871080b402d36df9dd8f2341b1b85136400aa72fa0f74a530687c3a3630b5e96871080b402d36df9dd8f2345404c91f8683c9b638b9063dc1cf9fe4ab6dd1d46ae4f24496d26d33664f57dc5404c91f8683c9b638b9063dc1cf9fe4ab6dd1d46ae4f24496d26d33664f57dc5b4ed2ce8f2b7c4ae4afc4f0af59e72df36e722f6a46a9a4fb9474295c3d89ef5b4ed2ce8f2b7c4ae4afc4f0af59e72df36e722f6a46a9a4fb9474295c3d89ef3d13254ef6942a5b58d41772634aa727c44d6ec22a8e346dc88d41b21365df193d13254ef6942a5b58d41772634aa727c44d6ec22a8e346dc88d41b21365df191acc75f491416983d5d00c15eb723fe2a8a8b4cb00947d5a614ced54bf8bf00a1acc75f491416983d5d00c15eb723fe2a8a8b4cb00947d5a614ced54bf8bf00a14392984c3f9d6e9533beb7a259051d99691358a4703f90fee75283b5c7bd94614392984c3f9d6e9533beb7a259051d99691358a4703f90fee75283b5c7bd9460552d75e9687cd83d408c7e48a7384a52bab6199cb5bd263a4e29c8133b385cc0552d75e9687cd83d408c7e48a7384a52bab6199cb5bd263a4e29c8133b385cc0802eb501caa4f69a1851a1944db703d77c2b148b425e660e9567f421e4d84120802eb501caa4f69a1851a1944db703d77c2b148b425e660e9567f421e4d8412bcae07fd908bd422c4de98b74a406c470253a66b52f8a45c180453fe44e77d69bcae07fd908bd422c4de98b74a406c470253a66b52f8a45c180453fe44e77d69422eb0810b066bd31089b611cb7397a9c0d0b30219674d1d2cea1250637eea8fb9bb3a6bbb318f72433512960b2094da3e6bd4207bae0c8e360673619aba0ffe4b934221249c3de22b2b021e5d1c1d265de457d4389ea65f9cd3c3c7a1dffff8748644f609814df7e2b1fc0d90ad05d7117018f578d6ee462bbd146383e2e4a7626a6037d63b1c6947f7b536e2fbeafd859be5d79a2b8fc36e20fc66e166cbe17d15af9f3d5a2336c8abd029de00240198031faa28e73c4cad4e99395072ab428ebcc3fe6c40e66493504762601ed21e9c65b6384f4986529d24404dbfa0811760c26ced98197cd0fae4f44baa5181fda8297c65e57a6c7fe479b83ca9c1aa94a68dbdfc5d4cb7ca99a6c1635fb115c004f4c9d0bf35b5626bd8158bb47fc170dc57012680838329b5dbf74deb17caf02d6044e6341e7e0d488daef31bf9d2e126153057ae830758381efb7551009531d7c2bbe220015f055e6bc353da27c5de72637d1ae8d8cb1481f560396ecea723a411f30c8715cdb54d131e10615b6d4d72637d1ae8d8cb1481f560396ecea723a411f30c8715cdb54d131e10615b6d4d8672842ffca4a27a11a121c2f936aef801ca185738d2bb97a7dcb3de7e94b2308672842ffca4a27a11a121c2f936aef801ca185738d2bb97a7dcb3de7e94b230c3507782bb18d500a6a47b0c799fd4bc1b531c3854a81cb76080c92f41091118c3507782bb18d500a6a47b0c799fd4bc1b531c3854a81cb76080c92f41091118d42a03a09e2d333509d9e77850ece26167f64d4534b0184c8dd074bd6bef0508d42a03a09e2d333509d9e77850ece26167f64d4534b0184c8dd074bd6bef050883df8435a00b4be07c768918a42bb35056a55a5a20ed3f922183232d9496aed375b8e0e428594f6dca6bdcfd0c73977ddb52a4fc147dd80c5e78fc34ea25cbecf864c6d9552a929c7032ace654ee05ef26ca75d21b027b801d77e65907138b74116a5ca72427566738f04f5f4b23c6b3ebd780770093db50001408c6632c08698972dc6222724a7d0635b58e3990c30298012f52603f8e0467c8b5efad12f0c7650efb2e8191999a4617452fe8e45db8c325723c2087fed391de76d0a6507f72650efb2e8191999a4617452fe8e45db8c325723c2087fed391de76d0a6507f7257b635eb623972d00291bd94408b82c7e679da5f74ea15c4837108c1b2e270ea57b635eb623972d00291bd94408b82c7e679da5f74ea15c4837108c1b2e270eac414138e29494b925d95ac79910348c83529a9c7c496fb41870a52685b4caf84c414138e29494b925d95ac79910348c83529a9c7c496fb41870a52685b4caf84ab3b0ddf99e9106eab2f1310f231aa6b4ff21e5efe459b55e97fcbd3fcc0d219ab3b0ddf99e9106eab2f1310f231aa6b4ff21e5efe459b55e97fcbd3fcc0d21910e0caf79f8f51d2dc55d4cb76c405b9c2ce3a31069fd99d21b5b298cc0d66f610e0caf79f8f51d2dc55d4cb76c405b9c2ce3a31069fd99d21b5b298cc0d66f63e1451d06f2f08253843a5c931f7ae249deb1270541770383d3bce62b007f3563e1451d06f2f08253843a5c931f7ae249deb1270541770383d3bce62b007f356b9f15e310c615b61004c5875e3387c4f4d3aac2709be5c5e19d90620ee7be6a1b9f15e310c615b61004c5875e3387c4f4d3aac2709be5c5e19d90620ee7be6a12382e49d796380d56673f93c472fe2f7d605ea76e26e4e6aa71edfd5b0a414782382e49d796380d56673f93c472fe2f7d605ea76e26e4e6aa71edfd5b0a4147816453a7d268d4df6f9a5fdd6a974737e89dff8129df21ca4efff04402c06229c16453a7d268d4df6f9a5fdd6a974737e89dff8129df21ca4efff04402c06229c9a574522d896691708ec3ecf0aeb468e13212b1f63e8e7002ccb847c66b7e6269a574522d896691708ec3ecf0aeb468e13212b1f63e8e7002ccb847c66b7e626497e671fd2546a23787fe03b5d6b4a8f524e41409870f4a032f7e28f0d8fa08c4a5f345a56a516895f34b00fbb0be64118fb2adcb476c8239c0cc18a3af2cee7469d6657206073f52501ca7a3376add6c909057479278dcd6b0453bd6da0fd76eb3a189c3ca43cb7def767c7a976a51fc4b1856565df5c982c23f4943ae2fd20f7693db5dff2e0f1224c88cdb9f0946b5373301dc9df0d0b11dca89188179d6f22d5436ac0e73d13cff51f1b37163bb4f0650bbdb89c9f679715605c6fd22db2e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855e9500d090ad04d591c211ad3ea945ed9df60c0830f8c8410ce6e3055b5e28c0ae9500d090ad04d591c211ad3ea945ed9df60c0830f8c8410ce6e3055b5e28c0a2644bdfd2ca0ece61b733b985dd406e79caa82b9630e5965be996dcae5eb3aff2644bdfd2ca0ece61b733b985dd406e79caa82b9630e5965be996dcae5eb3aff37da859bb04986907e09f970098b4dc8e44d764d1be7c02216243d3fc2c5ae4137da859bb04986907e09f970098b4dc8e44d764d1be7c02216243d3fc2c5ae414c8072f11121cce75e22abea8170b37a434b6d2c9516715e30254e11d8609d934c8072f11121cce75e22abea8170b37a434b6d2c9516715e30254e11d8609d932e900cfeb247379ba02931ba047a0bbc5d897a31f00cc3b4a5b0803a9faea88b2e900cfeb247379ba02931ba047a0bbc5d897a31f00cc3b4a5b0803a9faea88b9f894c6e48f69a36ea4de85635bffb3b1a564842562725e503470e1ba64f7884df1ac77af99a98d99ecedc1c016ee9a8ab7a0a6ac507f476cb20e2f56619283522b5d917a45d3ee9760c7cd184392663f71bec55434581cad27f82dcff15258522b5d917a45d3ee9760c7cd184392663f71bec55434581cad27f82dcff1525856c36f2384856d8228b25c42a00a032ac41cdf9a925b321c52aaeaf17c645b269e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85597ecfe9df3cf9094f543adfa924ad1209b65b6b28a5c1750ebc0d705e434409f97ecfe9df3cf9094f543adfa924ad1209b65b6b28a5c1750ebc0d705e434409fbb307f64ed90d105f990384b5c237a2d57fc84c09a3e033d04947035f67e7b45bb307f64ed90d105f990384b5c237a2d57fc84c09a3e033d04947035f67e7b45d0607132a4a522c24cc18f08b32f90a6deaee51850e1facbfa5a21b7b4ead188d0607132a4a522c24cc18f08b32f90a6deaee51850e1facbfa5a21b7b4ead188e1793ae2a2243c1b74f40e6af9120552e0e135cf665e29556a99bb5a7627cd1c076241076fcd44fd36c4ae8309ad4f6bd22ec6b3f0c730f365b8b14246fb53d3551ebc780544d77ee5c53823043c029dae5488165338a6b4d408fffb905a0b3e3657e45bb58c756f338aab9da298c7a16dbdf688350535a2d0878889baae1709843261e0c87263fa7ea0a9457187106954110efe86326046b96f728f1c9e7a33ca165d9958d8e8f23a11e15ba7ba983a9ebebe9d5192fd8d32e3866848fba6676918bd7965e8f5911bf795d4c5e7f8676d421659e78db122028f473ac7a832ded0c9e7a372874cd7d745f63beb7f0db9f38f9146fa9973a6f8baa3fb8c76c3c092f2c30a0fc9987d652e3514118fc52d2f14858ee106f0cfb951136d8f2676b3e5bfeaaa04475652fbb8bb5d018073061f861e653901f255b7fd8dd174b73de6e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8557d891664bcf1a86ea3630525d555fe336d1647ea97d39947dd0cd5f6ed4bd7b37d891664bcf1a86ea3630525d555fe336d1647ea97d39947dd0cd5f6ed4bd7b30e3199ead64a7f59afcf2fc29a80b6cbb2d6f5f2a46a5ae9601764b6c000f8de0e3199ead64a7f59afcf2fc29a80b6cbb2d6f5f2a46a5ae9601764b6c000f8dee3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b8551f2d7d37429041e0d145e69e3d04500cae55d88a2ec7f4b79065eef4c928fa201f2d7d37429041e0d145e69e3d04500cae55d88a2ec7f4b79065eef4c928fa20f01997dda42087e0d6525b5aadd92d0a8776d6bfd62420a9e29686a53c2c83c0696ae329bac5672784f1d250aed0a3ff0804c02145c2b03cac91d3ece61e7512640c032ee79f28d74e92e7a2cb582ea9568cc07e7924aaba429573f17de640a584d0c3f3995158eb67e03d35c037c8321678c4b597ea21994b23125f20395ebd9dbcedde2d1a80f54fd3b8eaaa08e16988cc9ae022fd6e44d04cb0662bd53bc1b5109a97938084d491c9bd03847a7edfc02d2250ac44ff01c45dcd5feeaba8806fd2ccd30057bfb13b4ab6c28c09b8c3037e86b1fe88dc6fd7c2e058d30c28fad22f1c260aeaba9cdaebb2013d9feef635ef9d2c6be54065544894a9d90fb582645488a97d02e968b38b179c0a1677fe8932bbb044bf4959bb5553d2cea1e1237e60c9005906ef5b854e7fac5524e1d88c345a6717418aa46d18e286fc018d4f2449929a6aaa2f26b0f0fe75814226661f06c20f62d7349ef83a2a022b67da77ef27df4ec42fda8d44c2d38245eb429d9e785c0583035f4c12411d5e8fc079f7ef27df4ec42fda8d44c2d38245eb429d9e785c0583035f4c12411d5e8fc079f7aeee4362f0c73074b108e1a9c0393f43f5969838f5680469b133be70752f1a1aaeee4362f0c73074b108e1a9c0393f43f5969838f5680469b133be70752f1a1acf79bbc2881800ed27eff89d5030fa2fdf84be30afff7d83132a0bfcce37cc7ccf79bbc2881800ed27eff89d5030fa2fdf84be30afff7d83132a0bfcce37cc7c55da1db72d980a2bcc9ec6e45cee1306bb63f87d822ea1d1e63c65efc0febc7455da1db72d980a2bcc9ec6e45cee1306bb63f87d822ea1d1e63c65efc0febc74034cb8b78c0a678a9a4cd17488ba44221022fbe619652f0cd481d578b0ca8c0f034cb8b78c0a678a9a4cd17488ba44221022fbe619652f0cd481d578b0ca8c0fcbe79fbaa01d98548e34b9293c183e3555fe5d5323d8f1d921223a27bdb82ba7cbe79fbaa01d98548e34b9293c183e3555fe5d5323d8f1d921223a27bdb82ba79ab84e65afe29d400d6acc108889fd47804de543a72bf7fa8413912491a7ffdc9ab84e65afe29d400d6acc108889fd47804de543a72bf7fa8413912491a7ffdc8be4a4653f0a22ac00bcbdd9907fed7eb9ced6358e4f28da672ea7c3fceabdae8be4a4653f0a22ac00bcbdd9907fed7eb9ced6358e4f28da672ea7c3fceabdaed79886aaf23d665a8551053bd914735926692502c696f367a7f91846d5529b59d79886aaf23d665a8551053bd914735926692502c696f367a7f91846d5529b59b78bee2d32c2d3c397e4882ad962fa3c1495dd4325b61c4b45d3d6caf83da92039f35a7b4307674b76c6a821e0280fa310b4ced0ef53b30676720f6b88c5f8554f6e91be97adfd469549144a7b09b6fbd6ed99255d266d5f9ab9fc1c013de3004f6e91be97adfd469549144a7b09b6fbd6ed99255d266d5f9ab9fc1c013de300c8d05be319d6444b448799dd458a141cdf9ef5bd15efa5ff97b2094a69d24c51c8d05be319d6444b448799dd458a141cdf9ef5bd15efa5ff97b2094a69d24c5181807db9249f5523ec776c4a15756bb1b4279cd1e3485a81a261555254e4b4e681807db9249f5523ec776c4a15756bb1b4279cd1e3485a81a261555254e4b4e6e4bc760753d6dbd2b1067d93d3190dd420604416b780654904aa10a11a201159cd4bcf3c226ba7a74e17437818055b39c97aa3ee2e5ca4ab1a24e492be6f512e9d1817f3f797fbf564bf1a17d3de905a8cfc3ecd101d4004c482c263fecf9dc30b4394b76b5c53a2d189027b61834ff46bcfad2be5ef388805e910fb99e50599189a60dc4822f6a6895d1c01879c2ff8c36e4566a7e4122ee34a117a8c563f6fe256968741e9c068a32e2066741218b5b8587a4427373ce1c765bdbb2b3444705f8f80a96f756983e13f1ebec5b7faeb21c540a6eaa9f0bfe59b785a42d7d47722be1c65512398093c8140081d64a2ef0b4e3bcdd4098001636c450f5425fd60340faee6b313ac3143142f10cd129410a306d39eb584e0f8a814ebdd9e29bfa1730ab874c93cee624748192d2b59a2609fbce46fb74f74664f6d2fed2142a67a942004ecce66c80f040dd5b4b09bb2c9985507d2bf8f7f258d684702715a5a817ce5f4fdf6a8cc6d8fee25688d0a04d666f277078dc93726fa15c47c5ad3b4b21325841c28172852a213c324bba2ce3540cb17a5300f08d7d4d3f671c28bacbaa8e04922e3f2ff8072607e96fdb360245faa610d83a14f9d2ac0eee724560978e8b40482f3807242df3fe57e98f9d05d359dc4dc7e11db64d64a0fe3d9f80e5de9ef0c07e7031f2219fda3699e904c93f3ebcebc92ccb74530c608d69d13d368b812aaaf4f6e81e79acd295717d371e1dbaa985f0d4471f5388b0c227eea6a67b812aaaf4f6e81e79acd295717d371e1dbaa985f0d4471f5388b0c227eea6a6718a7de234ec00ac65e2824cbe352d73c4f75ca30026b409d1ade8d68e50f1491b4dbaa90128c21af0172494f15eecca499e79f6d97f03ad1221dd7ffca1edcd642d2ab8baac24ce8c76e8dcb7b8c48eea700625217f60d8d685f152ce89d70396bc5aac521bbdbbba7ce47e7de0da6482e17f11e3c1fd201ac90acaef8e4f1aff1151e73f15db192c15874bd77a209d13ffd16655e27efc1909c1ff99babd214f1151e73f15db192c15874bd77a209d13ffd16655e27efc1909c1ff99babd214e003bf2b14dd76a1adacbf67b3b9003e36f409c37ac6c088c5b2b7ec763daf7119821ecb09e968b9cfd064a273c2c55a0774515bcefe5d4d73a62817ef3b47fe3ad18bca384d6357ef916d46bcb27f155f59a2a0bd027ca3afbab79314dbccdbc8ea9649d9a9cad19f52087f67a258803361a1cf81007cb279e4f5e45af8dad310156fbcf4539ff788a73e5ee50ced48276b317ed0c1ded53fddd14a822567623ddfea62d8e5baee160dfb76035efd74fb48bf061504db437dc7028ad55131038de5144db1b0e55a01f1e206af8390ee4e8900d86873a4fbfb8d50d60f24a620148649142969c5b0cd0ea6465a3f9fbe67d39cd6088b6c602c5263b33a38526e634300a669d49aeae65b12c6c48c924c51a4cdf3d1ff086dc3456dc8bcaa2104/etc/alternatives/pip/etc/alternatives/pip3@@rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootpython312-pip-23.2.1-150600.3.3.1.src.rpmpython312-pip@@     /bin/sh/bin/sh/bin/sh/usr/bin/python3.12ca-certificatescoreutilspython(abi)python312-setuptoolspython312-xmlrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)update-alternativesupdate-alternatives3.123.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3f@eTd@dddP@dBzd7cbbUb5b4t@b3"aa8_@_S_@__@_i_u@_@_^s^^:@]@]R@]L]5@\@\@\ֹ@\g\@\b@\ac\ @[[U@Z@XۡXXr)Wu W7@V@VvV7@V@U@U hT^daniel.garcia@suse.comdaniel.garcia@suse.comsteven.kowalik@suse.commartin.schreiner@suse.comdaniel.garcia@suse.comdaniel.garcia@suse.comdmueller@suse.commcepl@suse.comsteven.kowalik@suse.comdmueller@suse.commcepl@suse.comcode@bnavigator.decode@bnavigator.demcepl@suse.comdmueller@suse.comschubi@suse.deinfo@paolostivanin.comcode@bnavigator.demcepl@suse.commcepl@suse.commcepl@suse.commcepl@suse.comcode@bnavigator.decode@bnavigator.detchvatal@suse.commimi.vx@gmail.commcalabkova@suse.commimi.vx@gmail.commimi.vx@gmail.comtchvatal@suse.commcepl@cepl.eumcepl@suse.commcepl@cepl.eumcepl@suse.comarun@gmx.dejengelh@inai.dehpj@urpla.nettchvatal@suse.comarun@gmx.demimi.vx@gmail.commimi.vx@gmail.comjmatejek@suse.comjmatejek@suse.commichael@stroeder.comtbechtold@suse.comtbechtold@suse.comtbechtold@suse.comtoddrme2178@gmail.comtbechtold@suse.comaxel.braun@gmx.detoddrme2178@gmail.comtbechtold@suse.comledest@gmail.com- Add CVE-2023-5752-r-param-hg.patch to fix bsc#1217353 (CVE-2023-5752) avoiding injection of arbitrary configuration through Mercurial parameter.- Adjust SPEC file to generate python312 module only (jsc#PED-7306).- Finally drop csv23, it has been removed upstream since 2021. - Shift around sle15_python_module_pythons.- Upgrade to 23.2.1 * Bug fixes - Disable PEP 658 metadata fetching with the legacy resolver. - Upgrade to 23.2 * Process - Deprecate support for eggs for Python 3.11 or later, when the new importlib.metadata backend is used to load distribution metadata. This only affects the egg distribution format (with the .egg extension); distributions using the .egg-info metadata format (but are not actually eggs) are not affected. For more information about eggs, see relevant section in the setuptools documentation. * Deprecations and Removals - Deprecate legacy version and version specifiers that don’t conform to PEP 440 - freeze no longer excludes the setuptools, distribute, and wheel from the output when running on Python 3.12 or later, where they are not included in a virtual environment by default. Use - -exclude if you wish to exclude any of these packages. * Features - make rejection messages slightly different between 1 and 8, so the user can make the difference. * Bug Fixes - Fix pip completion --zsh. - Prevent downloading files twice when PEP 658 metadata is present - Add permission check before configuration - Fix deprecation warnings in Python 3.12 for usage of shutil.rmtree - Ignore invalid or unreadable origin.json files in the cache of locally built wheels. - Fix installation of packages with PEP658 metadata using non-canonicalized names - Correctly parse dist-info-metadata values from JSON-format index data. - Fail with an error if the --python option is specified after the subcommand name. - Fix slowness when using importlib.metadata (the default way for pip to read metadata in Python 3.11+) and there is a large overlap between already installed and to-be-installed packages. - Pass the -r flag to mercurial to be explicit that a revision is passed and protect against hg options injection as part of VCS URLs. Users that do not have control on VCS URLs passed to pip are advised to upgrade. * Vendored Libraries - Upgrade certifi to 2023.5.7 - Upgrade platformdirs to 3.8.1 - Upgrade pygments to 2.15.1 - Upgrade pyparsing to 3.1.0 - Upgrade Requests to 2.31.0 - Upgrade rich to 13.4.2 - Upgrade setuptools to 68.0.0 - Updated typing_extensions to 4.6.0 - Upgrade typing_extensions to 4.7.1 - Upgrade urllib3 to 1.26.16- Remove .exe files from package (bsc#1212015)- Update to 23.1.2 - Upgrade setuptools to 67.7.2 - 23.1.1: - Revert #11487, as it causes issues with virtualenvs created by the Windows Store distribution of Python. (#11987) - Revert pkg_resources (via setuptools) back to 65.6.3 - Update documentation to reflect the new behavior of using the cache of locally built wheels in hash-checking mode. (#11967) - 23.1: - Remove support for the deprecated --install-options. (#11358) - --no-binary does not imply setup.py install anymore. Instead a wheel will be built locally and installed. (#11451) - --no-binary does not disable the cache of locally built wheels anymore. It only means "don't download wheels". (#11453) - Deprecate --build-option and --global-option. Users are invited to switch to --config-settings. (#11859) - Using --config-settings with projects that don't have a pyproject.toml now prints a deprecation warning. In the future the presence of config settings will automatically enable the default build backend for legacy projects and pass the setttings to it. (#11915) - Remove setup.py install fallback when building a wheel failed for projects without pyproject.toml. (#8368) - When the wheel package is not installed, pip now uses the default build backend instead of setup.py install and setup.py develop for project without pyproject.toml. (#8559) - Specify egg-link location in assertion message when it does not match installed location to provide better error message for debugging. (#10476) - Present conflict information during installation after each choice that is rejected (pass -vv to pip install to show it) (#10937) - Display dependency chain on each Collecting/Processing log line. (#11169) - Support a per-requirement --config-settings option in requirements files. (#11325) - The --config-settings/-C option now supports using the same key multiple times. When the same key is specified multiple times, all values are passed to the build backend as a list, as opposed to the previous behavior, where pip would only pass the last value if the same key was used multiple times. (#11681) - Add -C as a short version of the --config-settings option. (#11786) - Reduce the number of resolver rounds, since backjumping makes the resolver more efficient in finding solutions. This also makes pathological cases fail quicker. (#11908) - Warn if --hash is used on a line without requirement in a requirements file. (#11935) - Stop propagating CLI --config-settings to the build dependencies. They already did not propagate to requirements provided in requirement files. To pass the same config settings to several requirements, users should provide the requirements as CLI arguments. (#11941) - Support wheel cache when using --require-hashes. (#5037) - Add --keyring-provider flag. See the Authentication page in the documentation for more info. (#8719) - In the case of virtual environments, configuration files are now also included from the base installation. (#9752) - Fix grammar by changing "A new release of pip available:" to "A new release of pip is available:" in the notice used for indicating that. (#11529) - Normalize paths before checking if installed scripts are on PATH. (#11719) - Correct the way to decide if keyring is available. (#11774) - More consistent resolution backtracking by removing legacy hack related to setuptools resolution (#11837) - Include AUTHORS.txt in pip's wheels. (#11882) - The uninstall and install --force-reinstall commands no longer call normalize_path() repeatedly on the same paths. Instead, these results are cached for the duration of an uninstall operation, resulting in improved performance, particularly on Windows. (#11889) - Fix and improve the parsing of hashes embedded in URL fragments. (#11936) - When package A depends on package B provided as a direct URL dependency including a hash embedded in the link, the - -require-hashes option did not warn when user supplied hashes were missing for package B. (#11938) - Correctly report requested_extras in the installation report when extras are specified for a local directory installation. (#11946) - When installing an archive from a direct URL or local file, populate download_info.info.hashes in the installation report, in addition to the legacy download_info.info.hash key. (#11948) - 23.0.1: - Change the hashes in the installation report to be a mapping. Emit the archive_info.hashes dictionary in direct_url.json. (#11312) - Implement logic to read the EXTERNALLY-MANAGED file as specified in PEP 668. This allows a downstream Python distributor to prevent users from using pip to modify the externally managed environment. (#11381) - Enable the use of keyring found on PATH. This allows keyring installed using pipx to be used by pip. (#11589) - The inspect and installation report formats are now declared stable, and their version has been bumped from 0 to 1. (#11757) - Wheel cache behavior is restored to match previous versions, allowing the cache to find existing entries. (#11527) - Use the "venv" scheme if available to obtain prefixed lib paths. (#11598) - Deprecated a historical ambiguity in how egg fragments in URL-style requirements are formatted and handled. egg fragments that do not look like PEP 508 names now produce a deprecation warning. (#11617) - Fix scripts path in isolated build environment on Debian. (#11623) - Make pip show show the editable location if package is editable (#11638) - Stop checking that wheel is present when build-system.requires is provided without build-system.build-backend as setuptools (which we still check for) will inject it anyway. (#11673) - Fix an issue when an already existing in-memory distribution would cause exceptions in pip install (#11704)- add sle15_python_module_pythons (jsc#PED-68)- Make calling of %{sle15modernpython} optional.- Update to 22.3.1: (bsc#1205478) * Deprecations and Removals + Deprecate installation with setup.py install when no-binary is enabled for source distributions without pyproject.toml. (#11452) + Deprecate installation with setup.py install when the wheel package is absent for source distributions without pyproject.toml. (#8559) + Drop --use-deprecated=out-of-tree-build. (#11001) * Features + Use the data-dist-info-metadata attribute from PEP 658 to resolve distribution metadata without downloading the dist yet. (#11111) + Add --dry-run option to pip install, to let it print what it would install but not actually make changes in the target environment. (#11096) + Add pip inspect command to obtain the list of installed distributions and other information about the Python environment, in JSON. (#11245) + Add option to install and uninstall commands to opt-out from running-as-root warning. (#10556) + Add a user interface for supplying config settings to build backends. (#11059) + Explains why specified version cannot be retrieved when Requires-Python is not satisfied. (#9615) + Validate build dependencies when using --no-build-isolation. (#9794) * Bug Fixes + Fix entry point generation of pip.X, pipX.Y, and easy_install-X.Y to correctly account for multi-digit Python version segments. (#11547) + Fix --no-index when --index-url or --extra-index-url is specified inside a requirements file. (#11276) + Ignore distributions with invalid Name in metadata instead of crashing, when using the importlib.metadata backend. (#11352) + Raise RequirementsFileParseError when parsing malformed requirements options that can’t be sucessfully parsed by shlex. (#11491) + Show pip deprecation warnings by default. (#11330) + Send the pip upgrade prompt to stderr. (#11282) + Ensure that things work correctly in environments where setuptools-injected distutils is available by default. (#11298) + pip config now normalizes names by converting underscores into dashes. (#9330) + Fallback to pyproject.toml-based builds if setup.py is present in a project, but setuptools cannot be imported. (#10717) + When checking for conflicts in the build environment, correctly skip requirements containing markers that do not match the current environment. (#10883) + Fix pip install issues using a proxy due to an inconsistency in how Requests is currently handling variable precedence in session. (#9691) - Refresh all patches. - Stop skipping a lot of tests, no longer required. - Add installer to BuildRequires for the test flavor.- skip subversion tests, not that relevant to pull in dozens of dependencies into small bootstrap- Add distutils-reproducible-compile.patch to make installed files ordered correctly and thus builds reproducible again (port of the fix for bpo#29708 and gh#python/cpython#8057).- Avoid cycle: BuildRequire ca-certificates only in tests- Update requirements: v22 is not compatible with Python 3.6 and thus not suitable for SLE/Leap 15.- Update to 22.0.4: - Drop the doctype check, that presented a warning for index pages that use non-compliant HTML 5. - Update to 22.0.3: - Print the exception via rich.traceback, when running with - -debug. - Only calculate topological installation order, for packages that are going to be installed/upgraded. - This fixes an AssertionError that occured when determining installation order, for a very specific combination of upgrading-already-installed-package + change of dependencies + fetching some packages from a package index. This combination was especially common in Read the Docs' builds. - Use html.parser by default, instead of falling back to html5lib when --use-deprecated=html5lib is not passed. - Clarify that using per-requirement overrides disables the usage of wheels. - Update to 22.0.2: - Instead of failing on index pages that use non-compliant HTML 5, print a deprecation warning and fall back to html5lib-based parsing for now. This simplifies the migration for non-compliant index pages, by letting such indexes function with a warning. - Update to 22.0.1: - Accept lowercase on index pages. - Properly handle links parsed by html5lib, when using - -use-deprecated=html5lib. - Update to 22.0: - Completely replace :pypi:`tox` in our development workflow, with :pypi:`nox`. - Deprecate alternative progress bar styles, leaving only on and off as available choices. - Drop support for Python 3.6. - Disable location mismatch warnings on Python versions prior to 3.10. - These warnings were helping identify potential issues as part of the sysconfig -> distutils transition, and we no longer need to rely on reports from older Python versions for information on the transition. - Changed PackageFinder to parse HTML documents using the stdlib :class:`html.parser.HTMLParser` class instead of the html5lib package. - For now, the deprecated html5lib code remains and can be used with the --use-deprecated=html5lib command line option. However, it will be removed in a future pip release. - Utilise rich for presenting pip's default download progress bar. - Present a better error message when an invalid wheel file is encountered, providing more context where the invalid wheel file is. - Documents the --require-virtualenv flag for pip install. - pip install autocompletes paths. - Allow Python distributors to opt-out from or opt-in to the sysconfig installation scheme backend by setting sysconfig._PIP_USE_SYSCONFIG to True or False. - Make it possible to deselect tests requiring cryptography package on systems where it cannot be installed. - Start using Rich for presenting error messages in a consistent format. - Improve presentation of errors from subprocesses. - Forward pip's verbosity configuration to VCS tools to control their output accordingly. - Optimize installation order calculation to improve performance when installing requirements that form a complex dependency graph with a large amount of edges. - When a package is requested by the user for upgrade, correctly identify that the extra-ed variant of that same package depended by another user-requested package is requesting the same package, and upgrade it accordingly. - Prevent pip from installing yanked releases unless explicitly pinned via the == or === operators. - Stop backtracking on build failures, by instead surfacing them to the user and aborting immediately. This behaviour provides more immediate feedback when a package cannot be built due to missing build dependencies or platform incompatibility. - Silence Value for does not match warning caused by an erroneous patch in Slackware-distributed Python 3.9. - Fix an issue where pip did not consider dependencies with and without extras to be equal- update to 21.3.1: * Always refuse installing or building projects that have no ``pyproject.toml`` nor ``setup.py``. * Tweak running-as-root detection, to check ``os.getuid`` if it exists, on Unix-y and non-Linux/non-MacOS machines. * When installing projects with a ``pyproject.toml`` in editable mode, and the build backend does not support :pep:`660`, prepare metadata using ``prepare_metadata_for_build_wheel`` instead of ``setup.py egg_info``. Also, refuse installing projects that only have a ``setup.cfg`` and no ``setup.py`` nor ``pyproject.toml``. These restore the pre-21.3 behaviour. * Restore compatibility of where configuration files are loaded from on MacOS * Upgrade pep517 to 0.12.0 * Improve deprecation warning regarding the copying of source trees when installing from a local directory. * Suppress location mismatch warnings when pip is invoked from a Python source tree, so ``ensurepip`` does not emit warnings on CPython ``make install``. * On Python 3.10 or later, the installation scheme backend has been changed to use ``sysconfig``. This is to anticipate the deprecation of ``distutils`` in Python 3.10, and its scheduled removal in 3.12. For compatibility considerations, pip installations running on Python 3.9 or lower will continue to use ``distutils``. * Remove the ``--build-dir`` option and aliases, one last time. * In-tree builds are now the default. ``--use-feature=in-tree-build`` is now ignored. ``--use-deprecated=out-of-tree-build`` may be used temporarily to ease the transition. * Un-deprecate source distribution re-installation behaviour. * Replace vendored appdirs with platformdirs. * Support `PEP 610 `_ to detect editable installs in ``pip freeze`` and ``pip list``. The ``pip list`` column output has a new ``Editable project location`` column, and the JSON output has a new ``editable_project_location`` field. * ``pip freeze`` will now always fallback to reporting the editable project location when it encounters a VCS error while analyzing an editable requirement. Before, it sometimes reported the requirement as non-editable. * ``pip show`` now sorts ``Requires`` and ``Required-By`` alphabetically. * Do not raise error when there are no files to remove with ``pip cache purge/remove``. Instead log a warning and continue (to log that we removed 0 files). * When backtracking during dependency resolution, prefer the dependencies which are involved in the most recent conflict. This can significantly reduce the amount of backtracking required. * Cache requirement objects, to improve performance reducing reparses of requirement strings. * Support editable installs for projects that have a ``pyproject.toml`` and use a build backend that supports :pep:`660`. * When a revision is specified in a Git URL, use git's partial clone feature to speed up source retrieval. * Add a ``--debug`` flag, to enable a mode that doesn't log errors and propagates them to the top level instead. This is primarily to aid with debugging pip's crashes. * If a host is explicitly specified as trusted by the user (via the - -trusted-host option), cache HTTP responses from it in addition to HTTPS ones. * Present a better error message, when a ``file:`` URL is not found. * Fix the auth credential cache to allow for the case in which the index url contains the username, but the password comes from an external source, such as keyring. * Fix double unescape of HTML ``data-requires-python`` and ``data-yanked`` attributes. * New resolver: Fixes depth ordering of packages during resolution, e.g. a dependency 2 levels deep will be ordered before a dependecy 3 levels deep. - drop remove_mock.patch (upstream)- Use libalternatives instead of update-alternatives.- Update to 20.2.4: Deprecations and Removals * Document that certain removals can be fast tracked. * Document that Python versions are generally supported until PyPI usage falls below 5% Features * New resolver: Avoid accessing indexes when the installed candidate is preferred and considered good enough * Improve error message friendliness when an environment has packages with corrupted metadata * Cache package listings on index packages so they are guarenteed to stay stable during a pip command session. This also improves performance when a index page is accessed multiple times during the command session * New resolver: Tweak resolution logic to improve user experience when user-supplied requirements conflict Bug Fixes * New resolver: Correctly respect ``Requires-Python`` metadata to reject incompatible packages in ``--no-deps`` mode * New resolver: Pick up hash declarations in constraints files and use them to filter available distributions * New resolver: If a package appears multiple times in user specification with different ``--hash`` options, only hashes that present in all specifications should be allowed- Fix the condition to really not break Python 2.7 in Leap- We don't need to break Python 2.7- Add remove_mock.patch to remove dependency on the external mock package (gh#pypa/pip#9266).- Actually, test the new structure of package. :$ - Remove the additional sourced setuptools*.whl and use BR on python-setuptools-wheel.- Add wheel subpackage with the generated wheel for this package (bsc#1176262, CVE-2019-20916). - Make wheel a separate build run to avoid the setuptools/wheel build cycle.- Make executables setup compatible with multiple python3 flavors * gh#openSUSE/python-rpm-macros#66 * update-alternatives for pip3 * use %python_clone and %python_install_alternative for sip and sip3 * use original bin/sip%{python_bin_suffix} as is * effect: consistent shebangs and specifiers inside the entry_point scripts- Update to 20.2.3 Deprecations and Removals * Deprecate support for Python 3.5 (#8181) Features * Make the setup.py install deprecation warning less noisy. We warn only when setup.py install succeeded and setup.py bdist_wheel failed, as situations where both fails are most probably irrelevant to this deprecation. (#8752) - 20.2.2 Bug Fixes * Only attempt to use the keyring once and if it fails, don’t try again. This prevents spamming users with several keyring unlock prompts when they cannot unlock or don’t want to do so. (#8090) * Fix regression that distributions in system site-packages are not correctly found when a virtual environment is configured with system-site-packages on. (#8695) * Disable caching for range requests, which causes corrupted wheels when pip tries to obtain metadata using the feature fast-deps. (#8701, #8716) * Always use UTF-8 to read pyvenv.cfg to match the built-in venv. (#8717) * 2020 Resolver: Correctly handle marker evaluation in constraints and exclude them if their markers do not match the current environment. (#8724) - 20.2.1 Features * Ignore require-virtualenv in pip list (#8603) Bug Fixes * Correctly find already-installed distributions with dot (.) in the name and uninstall them when needed. (#8645) * Trace a better error message on installation failure due to invalid .data files in wheels. (#8654) * Fix SVN version detection for alternative SVN distributions. (#8665) * New resolver: Correctly include the base package when specified with extras in --no-deps mode. (#8677) * Use UTF-8 to handle ZIP archive entries on Python 2 according to PEP 427, so non-ASCII paths can be resolved as expected. (#8684) Improved Documentation * Add details on old resolver deprecation and removal to migration documentation. (#8371) * Fix feature flag name in docs. (#8660) - 20.2 (2020-07-29) Deprecations and Removals * Deprecate setup.py-based builds that do not generate an .egg- info directory. (#6998, #8617) * Disallow passing install-location-related arguments in -- install-options. (#7309) * Add deprecation warning for invalid requirements format “base>=1.0[extra]” (#8288) * Deprecate legacy setup.py install when building a wheel failed for source distributions without pyproject.toml (#8368) * Deprecate -b/--build/--build-dir/--build-directory. Its current behaviour is confusing and breaks in case different versions of the same distribution need to be built during the resolution process. Using the TMPDIR/TEMP/TMP environment variable, possibly combined with --no-clean covers known use cases. (#8372) * Remove undocumented and deprecated option --always-unzip (#8408) Features * Log debugging information about pip, in pip install --verbose. (#3166) * Refine error messages to avoid showing Python tracebacks when an HTTP error occurs. (#5380) * Install wheel files directly instead of extracting them to a temp directory. (#6030) * Add a beta version of pip’s next-generation dependency resolver. * Move pip’s new resolver into beta, remove the --unstable- feature=resolver flag, and enable the --use-feature=2020- resolver flag. The new resolver is significantly stricter and more consistent when it receives incompatible instructions, and reduces support for certain kinds of Constraints Files, so some workarounds and workflows may break. More details about how to test and migrate, and how to report issues, at Changes to the pip dependency resolver in 20.2 (2020) . Maintainers are preparing to release pip 20.3, with the new resolver on by default, in October. (#6536) * Introduce a new ResolutionImpossible error, raised when pip encounters un-satisfiable dependency conflicts (#8546, #8377) * Add a subcommand debug to pip config to list available configuration sources and the key-value pairs defined in them. (#6741) * Warn if index pages have unexpected content-type (#6754) * Allow specifying --prefer-binary option in a requirements file (#7693) * Generate PEP 376 REQUESTED metadata for user supplied requirements installed by pip. (#7811) * Warn if package url is a vcs or an archive url with invalid scheme (#8128) * Parallelize network operations in pip list. (#8504) * Allow the new resolver to obtain dependency information through wheels lazily downloaded using HTTP range requests. To enable this feature, invoke pip with --use-feature=fast-deps. (#8588) * Support --use-feature in requirements files (#8601) * Bug Fixes * Use canonical package names while looking up already installed packages. (#5021) * Fix normalizing path on Windows when installing package on another logical disk. (#7625) * The VCS commands run by pip as subprocesses don’t merge stdout and stderr anymore, improving the output parsing by subsequent commands. (#7968) * Correctly treat non-ASCII entry point declarations in wheels so they can be installed on Windows. (#8342) * Update author email in config and tests to reflect decommissioning of pypa-dev list. (#8454) * Headers provided by wheels in .data directories are now correctly installed into the user-provided locations, such as - -prefix, instead of the virtual environment pip is running in. (#8521) Vendored Libraries * Vendored htmlib5 no longer imports deprecated xml.etree.cElementTree on Python 3. * Upgrade appdirs to 1.4.4 * Upgrade certifi to 2020.6.20 * Upgrade distlib to 0.3.1 * Upgrade html5lib to 1.1 * Upgrade idna to 2.10 * Upgrade packaging to 20.4 * Upgrade requests to 2.24.0 * Upgrade six to 1.15.0 * Upgrade toml to 0.10.1 * Upgrade urllib3 to 1.25.9 Improved Documentation * Add --no-input option to pip docs (#7688) * List of options supported in requirements file are extracted from source of truth, instead of being maintained manually. (#7908) * Fix pip config docstring so that the subcommands render correctly in the docs (#8072) * replace links to the old pypa-dev mailing list with https:// mail.python.org/mailman3/lists/distutils-sig.python.org/ (#8353) * Fix example for defining multiple values for options which support them (#8373) * Add documentation for the ResolutionImpossible error that helps the user fix dependency conflicts (#8459) * Add feature flags to docs (#8512) * Document how to install package extras from git branch and source distributions. (#8576) - 20.2b1 Bug Fixes * Correctly treat wheels containing non-ASCII file contents so they can be installed on Windows. (#5712) * Prompt the user for password if the keyring backend doesn’t return one (#7998) Improved Documentation * Add GitHub issue template for reporting when the dependency resolver fails (#8207) - 20.1.1 Deprecations and Removals * Revert building of local directories in place, restoring the pre-20.1 behaviour of copying to a temporary directory. (#7555) * Drop parallelization from pip list --outdated. (#8167) Bug Fixes * Fix metadata permission issues when umask has the executable bit set. (#8164) * Avoid unnecessary message about the wheel package not being installed when a wheel would not have been built. Additionally, clarify the message. (#8178) - 20.1 Process * Document that pip 21.0 will drop support for Python 2.7. Features * Add pip cache dir to show the cache directory. (#7350) Bug Fixes * Abort pip cache commands early when cache is disabled. (#8124) * Correctly set permissions on metadata files during wheel installation, to permit non-privileged users to read from system site-packages. (#8139) - 20.1b1 Deprecations and Removals * Remove emails from AUTHORS.txt to prevent usage for spamming, and only populate names in AUTHORS.txt at time of release (#5979) * Remove deprecated --skip-requirements-regex option. (#7297) * Building of local directories is now done in place, instead of a temporary location containing a copy of the directory tree. (#7555) * Remove unused tests/scripts/test_all_pip.py test script and the tests/scripts folder. (#7680) Features * pip now implements PEP 610, so pip freeze has better fidelity in presence of distributions installed from Direct URL requirements. (#609) * Add pip cache command for inspecting/managing pip’s wheel cache. (#6391) * Raise error if --user and --target are used together in pip install (#7249) * Significantly improve performance when --find-links points to a very large HTML page. (#7729) * Indicate when wheel building is skipped, due to lack of the wheel package. (#7768) * Change default behaviour to always cache responses from trusted-host source. (#7847) * An alpha version of a new resolver is available via --unstable- feature=resolver. (#988) Bug Fixes * Correctly freeze a VCS editable package when it is nested inside another VCS repository. (#3988) * Correctly handle %2F in URL parameters to avoid accidentally unescape them into /. (#6446) * Reject VCS URLs with an empty revision. (#7402) * Warn when an invalid URL is passed with --index-url (#7430) * Use better mechanism for handling temporary files, when recording metadata about installed files (RECORD) and the installer (INSTALLER). (#7699) * Correctly detect global site-packages availability of virtual environments created by PyPA’s virtualenv>=20.0. (#7718) * Remove current directory from sys.path when invoked as python -m pip (#7731) * Stop failing uninstallation, when trying to remove non- existent files. (#7856) * Prevent an infinite recursion with pip wheel when $TMPDIR is within the source directory. (#7872) * Significantly speedup pip list --outdated by parallelizing index interaction. (#7962) * Improve Windows compatibility when detecting writability in folder. (#8013) Vendored Libraries * Update semi-supported debundling script to reflect that appdirs is vendored. * Add ResolveLib as a vendored dependency. * Upgrade certifi to 2020.04.05.1 * Upgrade contextlib2 to 0.6.0.post1 * Upgrade distro to 1.5.0. * Upgrade idna to 2.9. * Upgrade msgpack to 1.0.0. * Upgrade packaging to 20.3. * Upgrade pep517 to 0.8.2. * Upgrade pyparsing to 2.4.7. * Remove pytoml as a vendored dependency. * Upgrade requests to 2.23.0. * Add toml as a vendored dependency. * Upgrade urllib3 to 1.25.8. Improved Documentation * Emphasize that VCS URLs using git, git+git and git+http are insecure due to lack of authentication and encryption (#1983) * Clarify the usage of --no-binary command. (#3191) * Clarify the usage of freeze command in the example of Using pip in your program (#7008) * Add a “Copyright” page. (#7767) * Added example of defining multiple values for options which support them (#7803) - Test on test flavor without installing package - Update pip-shipped-requests-cabundle.patch for newer certifi- Skip virtualenv tests that are pinned to old virtualenv 16- update to 20.0.2 - add setuptools-45.1.0-py3-none-any.whl for testsuite - drop pytest5.patch * Fix a regression in generation of compatibility tags * Rename an internal module, to avoid ImportErrors due to improper uninstallation * Switch to a dedicated CLI tool for vendoring dependencies. * Remove wheel tag calculation from pip and use packaging.tags. This should provide more tags ordered better than in prior releases. * Deprecate setup.py-based builds that do not generate an .egg-info directory. * The pip>=20 wheel cache is not retro-compatible with previous versions. Until pip 21.0, pip will continue to take advantage of existing legacy cache entries. * Deprecate undocumented --skip-requirements-regex option. * Deprecate passing install-location-related options via --install-option. * Use literal "abi3" for wheel tag on CPython 3.x, to align with PEP 384 which only defines it for this platform. * Remove interpreter-specific major version tag e.g. cp3-none-any from consideration. This behavior was not documented strictly, and this tag in particular is not useful. Anyone with a use case can create an issue with pypa/packaging. * Wheel processing no longer permits wheels containing more than one top-level .dist-info directory. * Support for the git+git@ form of VCS requirement is being deprecated and will be removed in pip 21.0. Switch to git+https:// or git+ssh://. git+git:// also works but its use is discouraged as it is insecure. * Default to doing a user install (as if --user was passed) when the main site-packages directory is not writeable and user site-packages are enabled. * Warn if a path in PATH starts with tilde during pip install. * Cache wheels built from Git requirements that are considered immutable, because they point to a commit hash. * Add option --no-python-version-warning to silence warnings related to deprecation of Python versions. * Cache wheels that pip wheel built locally, matching what pip install does. This particularly helps performance in workflows where pip wheel is used for building before installing. Users desiring the original behavior can use pip wheel --no-cache-dir * Display CA information in pip debug. * Show only the filename (instead of full URL), when downloading from PyPI. * Suggest a more robust command to upgrade pip itself to avoid confusion when the current pip command is not available as pip. * Define all old pip console script entrypoints to prevent import issues in stale wrapper scripts. * The build step of pip wheel now builds all wheels to a cache first, then copies them to the wheel directory all at once. Before, it built them to a temporary directory and moved them to the wheel directory one by one. * Expand ~ prefix to user directory in path options, configs, and environment variables. Values that may be either URL or path are not currently supported, to avoid ambiguity: - -find-links - -constraint, -c - -requirement, -r - -editable, -e * Correctly handle system site-packages, in virtual environments created with venv (PEP 405). * Fix case sensitive comparison of pip freeze when used with -r option. * Enforce PEP 508 requirement format in pyproject.toml build-system.requires. * Make ensure_dir() also ignore ENOTEMPTY as seen on Windows. * Fix building packages which specify backend-path in pyproject.toml. * Do not attempt to run setup.py clean after a pep517 build error, since a setup.py may not exist in that case. * Fix passwords being visible in the index-url in "Downloading " message. * Change method from shutil.remove to shutil.rmtree in noxfile.py. * Skip running tests which require subversion, when svn isn't installed * Fix not sending client certificates when using --trusted-host. * Make sure pip wheel never outputs pure python wheels with a python implementation tag. Better fix/workaround for #3025 by using a per-implementation wheel cache instead of caching pure python wheels with an implementation tag in their name. * Include subdirectory URL fragments in cache keys. * Fix typo in warning message when any of --build-option, --global-option and --install-option is used in requirements.txt * Fix the logging of cached HTTP response shown as downloading. * Effectively disable the wheel cache when it is not writable, as is the case with the http cache. * Correctly handle relative cache directory provided via --cache-dir. *- Update to version 19.3.1 * Document Python 3.8 support. * Fix bug that prevented installation of PEP 517 packages without setup.py. * Remove undocumented support for un-prefixed URL requirements pointing to SVN repositories. * Remove the deprecated --venv option from pip config. * Make pip show warn about packages not found. * Abort installation if any archive contains a file which would be placed outside the extraction location. * pip's CLI completion code no longer prints a Traceback if it is interrupted. * Ignore errors copying socket files for local source installs (in Python 3). * Skip copying .tox and .nox directories to temporary build directories * Ignore "require_virtualenv" in pip config- Update to version 19.2.2: * Merge pull request #6827 from cjerdonek/issue-6804-find-links-expansion * Fix handling of tokens (single part credentials) in URLs (#6818) * Simplify the handling of "typing.cast"- Update to version 19.2.1: * Fix a ``NoneType`` ``AttributeError`` when evaluating hashes and no hashes provided * Drop support for EOL Python 3.4. * Credentials will now be loaded using keyring when installed * Fully support using --trusted-host inside requirements files * Update timestamps in pip's --log file to include milliseconds * Respect whether a file has been marked as "yanked" from a simple repository (see PEP 592 for details) * When choosing candidates to install, prefer candidates with a hash matching one of the user-provided hashes * Improve the error message when METADATA or PKG-INFO is None when accessing metadata * Add a new command pip debug that can display e.g. the list of compatible tags for the current Python * Display hint on installing with --pre when search results include pre-release versions * Report to Warehouse that pip is running under CI if the PIP_IS_CI environment variable is set * Allow --python-version to be passed as a dotted version string (e.g. 3.7 or 3.7.3) * Log the final filename and SHA256 of a .whl file when done building a wheel * Include the wheel's tags in the log message explanation when a candidate wheel link is found incompatible * Add a --path argument to pip freeze to support --target installations * Add a --path argument to pip list to support --target installations- Add patch to build with pytest5, also sent upstream: * pytest5.patch- Update to version 19.1.1+git.1557777841.63878672: * Update news file to match usual style * fix-5963: assert error message * Simplify CandidateEvaluator.evaluate_link(). * Fix 6486 mac gitignore (#6487) * Store instances in the VcsSupport registry instead of classes. * Remove unused cls argument from VcsSupport.unregister(). * fix-5963: Add news file * fix-5963: fail elegantly on missing name or section in config set / unset * Remove unnecessary slices. * Fix typo.- Switch to multibuild, so testing is separate from the building of the package itself.- Update to version 19.1.1+git.1557521541.a731e7e3: * Docs: capitalize "URL" * Upgrade Sphinx version for Read the Docs (#6477) * Upwrap import * Remove utils/packaging.py's dependence on the current environment. * Improve import error handling Fix --no-index usage Fix missing type annotation type * Rename _link_package_versions() to evaluate_link(). * Move _link_package_versions() to CandidateEvaluator. * Refine return type of _package_versions() and find_all_candidates(). * Fix mismerged import * Issue #5948: Enable keyring support * Move run_with_log_command() after run_stderr_with_prefix(). * Change to never allow logging errors during tests. * Add failing test. * Respect --global-option and --install-option for VCS installs. - Start using upstream git checkout instead of the released tarballs so we can get tests/ directory (gh#pypa/pip#6258). - Enable tests.- Update to 19.1.1: - Restore pyproject.toml handling to how it was with pip 19.0.3 to prevent the need to add --no-use-pep517 when installing in editable mode. (#6434) - Fix a regression that caused @ to be quoted in pypiserver links. This interfered with parsing the revision string from VCS urls. (#6440) - Configuration files may now also be stored under sys.prefix (#5060) - Avoid creating an unnecessary local clone of a Bazaar branch when exporting. (#5443) - Include in pip's User-Agent string whether it looks like pip is running under CI. (#5499) - A custom (JSON-encoded) string can now be added to pip's User-Agent using the PIP_USER_AGENT_USER_DATA environment variable. (#5549) - For consistency, passing --no-cache-dir no longer affects whether wheels will be built. In this case, a temporary directory is used. (#5749) - Command arguments in subprocess log messages are now quoted using shlex.quote(). (#6290) - Prefix warning and error messages in log output with WARNING and ERROR. (#6298) - Using --build-options in a PEP 517 build now fails with an error, rather than silently ignoring the option. (#6305) - Error out with an informative message if one tries to install a pyproject.toml-style (PEP 517) source tree using --editable mode. (#6314) - When downloading a package, the ETA and average speed now only update once per second for better legibility. (#6319) - The stdout and stderr from VCS commands run by pip as subprocesses (e.g. git, hg, etc.) no longer pollute pip's stdout. (#1219) - Fix handling of requests exceptions when dependencies are debundled. (#4195) - Make pip's self version check avoid recommending upgrades to prereleases if the currently-installed version is stable. (#5175) - Fixed crash when installing a requirement from a URL that comes from a dependency without a URL. (#5889) - Improve handling of file URIs: correctly handle file://localhost/... and don't try to use UNC paths on Unix. (#5892) - Fix utils.encoding.auto_decode() LookupError with invalid encodings. utils.encoding.auto_decode() was broken when decoding Big Endian BOM byte-strings on Little Endian or vice versa. (#6054) - Fix incorrect URL quoting of IPv6 addresses. (#6285) - Redact the password from the extra index URL when using pip - v. (#6295) - The spinner no longer displays a completion message after subprocess calls not needing a spinner. It also no longer incorrectly reports an error after certain subprocess calls to Git that succeeded. (#6312) - Fix the handling of editable mode during installs when pyproject.toml is present but PEP 517 doesn't require the source tree to be treated as pyproject.toml-style. (#6370) - Fix NameError when handling an invalid requirement. (#6419) - Make dashes render correctly when displaying long options like --find-links in the text. (#6422)- update to version 19.0.3: * Fix an IndexError crash when a legacy build of a wheel fails. (#6252) * Fix a regression introduced in 19.0.2 where the filename in a RECORD file of an installed file would not be updated when installing a wheel. (#6266)- Avoid name repetition in summary. Summary should not be a sentence (let alone three).- Update to 19.0.2 (2019-02-09): + Bug Fixes * Fix a crash where PEP 517-based builds using --no-cache-dir would fail in some circumstances with an AssertionError due to not finalizing a build directory internally. (#6197) * Provide a better error message if attempting an editable install of a directory with a pyproject.toml but no setup.py. (#6170) * The implicit default backend used for projects that provide a pyproject.toml file without explicitly specifying build- backend now behaves more like direct execution of setup.py, and hence should restore compatibility with projects that were unable to be installed with pip 19.0. This raised the minimum required version of setuptools for such builds to 40.8.0. (#6163) * Allow RECORD lines with more than three elements, and display a warning. (#6165) * AdjacentTempDirectory fails on unwritable directory instead of locking up the uninstall command. (#6169) * Make failed uninstalls roll back more reliably and better at avoiding naming conflicts. (#6194) * Ensure the correct wheel file is copied when building PEP 517 distribution is built. (#6196) * The Python 2 end of life warning now only shows on CPython, which is the implementation that has announced end of life plans. (#6207) + Improved Documentation * Re-write README and documentation index (#5815) - Update to 19.0.1 (2019-01-23): + Bug Fixes * Fix a crash when using –no-cache-dir with PEP 517 distributions (#6158, #6171) - Update to 19.0 (2019-01-22): + Deprecations and Removals * Deprecate support for Python 3.4 (#6106) * Start printing a warning for Python 2.7 to warn of impending Python 2.7 End-of-life and prompt users to start migrating to Python 3. (#6148) * Remove the deprecated --process-dependency-links option. (#6060) * Remove the deprecated SVN editable detection based on dependency links during freeze. (#5866) + Features * Implement PEP 517 (allow projects to specify a build backend via pyproject.toml). (#5743) * Implement manylinux2010 platform tag support. manylinux2010 is the successor to manylinux1. It allows carefully compiled binary wheels to be installed on compatible Linux platforms. (#5008) * Improve build isolation: handle .pth files, so namespace packages are correctly supported under Python 3.2 and earlier. (#5656) * Include the package name in a freeze warning if the package is not installed. (#5943) * Warn when dropping an --[extra-]index-url value that points to an existing local directory. (#5827) * Prefix pip’s --log file lines with their timestamp. (#6141) + Bug Fixes * Avoid creating excessively long temporary paths when uninstalling packages. (#3055) * Redact the password from the URL in various log messages. (#4746, #6124) * Avoid creating excessively long temporary paths when uninstalling packages. (#3055) * Avoid printing a stack trace when given an invalid requirement. (#5147) * Present 401 warning if username/password do not work for URL (#4833) * Handle requests.exceptions.RetryError raised in PackageFinder that was causing pip to fail silently when some indexes were unreachable. (#5270, #5483) * Handle a broken stdout pipe more gracefully (e.g. when running pip list | head). (#4170) * Fix crash from setting PIP_NO_CACHE_DIR=yes. (#5385) * Fix crash from unparseable requirements when checking installed packages. (#5839) * Fix content type detection if a directory named like an archive is used as a package source. (#5838) * Fix listing of outdated packages that are not dependencies of installed packages in pip list --outdated --not-required (#5737) * Fix sorting TypeError in move_wheel_files() when installing some packages. (#5868) * Fix support for invoking pip using python src/pip .... (#5841) * Greatly reduce memory usage when installing wheels containing large files. (#5848) * Editable non-VCS installs now freeze as editable. (#5031) * Editable Git installs without a remote now freeze as editable. (#4759) * Canonicalize sdist file names so they can be matched to a canonicalized package name passed to pip install. (#5870) * Properly decode special characters in SVN URL credentials. (#5968) * Make PIP_NO_CACHE_DIR disable the cache also for truthy values like "true", "yes", "1", etc. (#5735) + Vendored Libraries * Include license text of vendored 3rd party libraries. (#5213) * Update certifi to 2018.11.29 * Update colorama to 0.4.1 * Update distlib to 0.2.8 * Update idna to 2.8 * Update packaging to 19.0 * Update pep517 to 0.5.0 * Update pkg_resources to 40.6.3 (via setuptools) * Update pyparsing to 2.3.1 * Update pytoml to 0.1.20 * Update requests to 2.21.0 * Update six to 1.12.0 * Update urllib3 to 1.24.1 + Improved Documentation * Include the Vendoring Policy in the documentation. (#5958) * Add instructions for running pip from source to Development documentation. (#5949) * Remove references to removed #egg=- functionality (#5888) * Fix omission of command name in HTML usage documentation (#5984) - Fix patch pip-8.1.2-shipped-requests-cabundle.patch this version is long gone - Rename patch to pip-shipped-requests-cabundle.patch - Fix and show shebang removal- Fix fdupes call- specfile: * remove devel from noarch - update to version 18.1: * Features + Allow PEP 508 URL requirements to be used as dependencies. + As a security measure, pip will raise an exception when installing packages from PyPI if those packages depend on packages not also hosted on PyPI. In the future, PyPI will block uploading packages with such external URL dependencies directly. (#4187) + Upgrade pyparsing to 2.2.1. (#5013) + Allows dist options (–abi, –python-version, –platform, –implementation) when installing with –target (#5355) + Support passing svn+ssh URLs with a username to pip install - e. (#5375) + pip now ensures that the RECORD file is sorted when installing from a wheel file. (#5525) + Add support for Python 3.7. (#5561) + Malformed configuration files now show helpful error messages, instead of tracebacks. (#5798) * Bug Fixes + Checkout the correct branch when doing an editable Git install. (#2037) + Run self-version-check only on commands that may access the index, instead of trying on every run and failing to do so due to missing options. (#5433) + Allow a Git ref to be installed over an existing installation. (#5624) + Show a better error message when a configuration option has an invalid value. (#5644) + Always revalidate cached simple API pages instead of blindly caching them for up to 10 minutes. (#5670) + Avoid caching self-version-check information when cache is disabled. (#5679) + Avoid traceback printing on autocomplete after flags in the CLI. (#5751) + Fix incorrect parsing of egg names if pip needs to guess the package name. (#5819) * Vendored Libraries + Upgrade certifi to 2018.8.24 + Upgrade packaging to 18.0 + Add pep517 version 0.2 + Upgrade pytoml to 0.1.19 + Upgrade pkg_resources to 40.4.3 (via setuptools) * Improved Documentation + Fix “Requirements Files” reference in User Guide (#user_guide_fix_requirements_file_ref)- update to 18.0 - refresh pip-8.1.2-shipped-requests-cabundle.patch * drop python 3.3 support * Remove the legacy format from pip list. * Remove support for cleaning up #egg fragment postfixes * Remove the shim for the old get-pip.py location * Introduce a new --prefer-binary flag, to prefer older wheels over newer source packages. * Improve autocompletion function on file name completion * Add support for installing PEP 518 build dependencies from source * Improve status message when upgrade is skipped due to only-if-needed strategy- update to 10.0.1 - refactor pip-8.1.2-shipped-requests-cabundle.patch * Switch the default repository to the new "PyPI 2.0" running at https://pypi.org/ * big bunch of changes from 9.0.1 in NEWS.rst- uninstall alternatives in %postun- update for singlespec - fix alternative priorities - drop cacert.pem and add pip-8.1.2-shipped-requests-cabundle.patch to ensure function without it - add ca-certificates{,-mozilla} dependency to ensure existence of CA bundle - add fdupes- update to version 9.0.1: * Correct the deprecation message when not specifying a --format so that it uses the correct setting name ("format") rather than the incorrect one ("list_format") (:issue:`4058`). * Fix "pip check" to check all available distributions and not just the local ones (:issue:`4083`). * Fix a crash on non ASCII characters from `lsb_release` (:issue:`4062`). * Fix an SyntaxError in an an used module of a vendored dependency (:issue:`4059`). * Fix UNC paths on Windows (:issue:`4064`). - update to version 9.0.0: * **BACKWARD INCOMPATIBLE** Remove the attempted autodetection of requirement names from URLs, URLs must include a name via "#egg=". * **DEPRECATION** "pip install --egg" have been deprecated and will be removed in the future. This "feature" has a long list of drawbacks which break nearly all of pip's other features in subtle and hard-to-diagnose ways. * **DEPRECATION** "--default-vcs" option (:issue:`4052`). * **WARNING** pip 9 cache can break forward compatibility with previous pip versions if your package repository allows chunked responses (:issue:`4078`). * Add a "pip check" command to check installed packages dependencies (:pull:`3750`). * Add option allowing user to abort pip operation if file/directory exists * Add Appveyor CI * Uninstall existing packages when performing an editable installation of the same packages (:issue:`1548`). * "pip show" is less verbose by default. "--verbose" prints multiline fields. (:pull:`3858`). * Add optional column formatting to "pip list" (:issue:`3651`). * Add "--not-required" option to "pip list", which lists packages that are not dependencies of other packages. * Fix builds on systems with symlinked "/tmp" directory for custom builds such as numpy (:pull:`3701`). * Fix regression in "pip freeze": when there is more than one git remote, priority is given to the remote named "origin" (:pull:`3708`, :issue:`3616`). * Fix crash when calling "pip freeze" with invalid requirement installed (:pull:`3704`, :issue:`3681`). * Allow multiple "--requirement" files in "pip freeze" (:pull:`3703`). * Implementation of pep-503 "data-requires-python". When this field is present for a release link, pip will ignore the download when installing to a Python version that doesn't satisfy the requirement. * "pip wheel" now works on editable packages too (it was only working on editable dependencies before); this allows running "pip wheel" on the result of "pip freeze" in presence of editable requirements (:pull:`3695`, :issue:`3291`). * Load credentials from ".netrc" files (:pull:`3715`, :issue:`3569`). * Add "--platform", "--python-version", "--implementation" and "--abi" parameters to "pip download". These allow utilities and advanced users to gather distributions for interpreters other than the one pip is being run on. (:pull:`3760`) * Skip scanning virtual environments, even when venv/bin/python is a dangling symlink. * Added "pip completion" support for the "fish" shell. * Fix problems on Windows on Python 2 when username or hostname contains non-ASCII characters (:issue:`3463`, :pull:`3970`, :pull:`4000`). * Use "git fetch --tags" to fetch tags in addition to everything else that is normally fetched; this is necessary in case a git requirement url points to a tag or commit that is not on a branch (:pull:`3791`) * Normalize package names before using in "pip show" (:issue:`3976`) * Raise when Requires-Python do not match the running version and add "--ignore-requires-python" option as escape hatch (:pull:`3846`). * Report the correct installed version when performing an upgrade in some corner cases (:issue:`2382`) * Add "-i" shorthand for "--index" flag in "pip search" * Do not optionally load C dependencies in requests (:issue:`1840`, :issue:`2930`, :issue:`3024`) * Strip authentication from SVN url prior to passing it to "svn" (:pull:`3697`, :issue:`3209`). * Also install in platlib with "--target" option (:pull:`3694`, :issue:`3682`). * Restore the ability to use inline comments in requirements files passed to "pip freeze" (:issue:`3680`).- Use pypi.io as Source url.- update to 8.1.2: * Fix a regression on systems with uninitialized locale (:issue:`3575`). * Use environment markers to filter packages before determining if a required wheel is supported. Solves (:issue:`3254`). * Make glibc parsing for `manylinux1` support more robust for the variety of glibc versions found in the wild (:issue:`3588`). * Update environment marker support to fully support PEP 508 and legacy environment markers (:issue:`3624`). * Always use debug logging to the ``--log`` file (:issue:`3351`). * Don't attempt to wrap search results for extremely narrow terminal windows (:issue:`3655`). * Fix regression with non-ascii requirement files on Python 2 and add support for encoding headers in requirement files (:issue:`3548`, :pull:`3547`).- update to 8.1.0: * Implement PEP 513, which adds support for the manylinux1 platform tag, allowing carefully compiled binary wheels to be installed on compatible Linux platforms. * Allow wheels which are not specific to a particular Python interpreter but which are specific to a particular platform (:issue:`3202`). * Fixed an issue where ``call_subprocess`` would crash trying to print debug data on child process failure (:issue:`3521`, :pull:`3522`). * Exclude the wheel package from the `pip freeze` output (like pip and setuptools). :issue:`2989`. * Allow installing modules from a subdirectory of a vcs repository in non-editable mode (:issue:`3217`, :pull:`3466`). * Make pip wheel and pip download work with vcs urls with subdirectory option (:pull:`3466`). * Show classifiers in ``pip show``. * Show PEP376 Installer in ``pip show`` (:issue:`3517`). * Unhide completion command (:pull:`1810`). * Show latest version number in ``pip search`` results (:pull:`1415`). * Decode requirement files according to their BOM if present (:pull:`3485`, :issue:`2865`). * Fix and deprecate package name detection from url path (:issue:`3523` and :pull:`3495`). * Correct the behavior where interpreter specific tags (such as cp34) were being used on later versions of the same interprter instead of only for that specific interpreter (:issue:`3472`). * Fix an issue where pip would erroneously install a 64 bit wheel on a 32 bit Python running on a 64 bit OS X machine. * Do not assume that all git repositories have an origin remote. * Correctly display the line to add to a requirements.txt for an URL based dependency when ``--require-hashes`` is enabled. * Make ``install --quiet`` really quiet. See :issue:`3418`. * Fix a bug when removing packages in python 3: disable INI-style parsing of the entry_point.txt file to allow entry point names with colons (:pull:`3434`) * Normalize generated script files path in RECORD files. (:pull:`3448`) * Fix bug introduced in 8.0.0 where subcommand output was not shown, even when the user specified ``-v`` / ``--verbose``. :issue:`3486`. * Enable python -W with respect to PipDeprecationWarning. (:pull:`3455`) * Upgrade distlib to 0.2.2 (fix :issue:`3467`): * Improved support for Jython when quoting executables in output scripts. * Add a `--all` option to `pip freeze` to include usually skipped package (like pip, setuptools and wheel) to the freeze output. :issue:`1610`. * Stop attempting to trust the system CA trust store because it's extremely common for them to be broken, often in incompatible ways. See :pull:`3416`. * Detect CAPaths in addition to CAFiles on platforms that provide them. * Installing argparse or wsgiref will no longer warn or error - pip will allow the installation even though it may be useless (since the installed thing will be shadowed by the standard library). * Upgrading a distutils installed item that is installed outside of a virtual environment, while inside of a virtual environment will no longer warn or error. * Fix a bug where pre-releases were showing up in ``pip list --outdated`` without the ``--pre`` flag. * Switch the SOABI emulation from using RuntimeWarnings to debug logging. * Rollback the removal of the ability to uninstall distutils installed items until a future date.- Update to 0.8.0 * BACKWARD INCOMPATIBLE Drop support for Python 3.2. * BACKWARD INCOMPATIBLE Remove the ability to find any files other than the ones directly linked from the index or find-links pages. * BACKWARD INCOMPATIBLE Remove the ``--download-cache`` which had been deprecated and no-op'd in 6.0. * BACKWARD INCOMPATIBLE Remove the ``--log-explicit-levels`` which had been deprecated in 6.0. * BACKWARD INCOMPATIBLE Change pip wheel --wheel-dir default path from /wheelhouse to . * Deprecate and no-op the ``--allow-external``, ``--allow-all-external``, and ``--allow-unverified`` functionality that was added as part of PEP 438. With changes made to the repository protocol made in PEP 470, these options are no longer functional. * Allow ``--trusted-host`` within a requirements file. :issue:`2822`. * Allow ``--process-dependency-links`` within a requirements file. :issue:`1274`. * Allow ``--pre`` within a requirements file. :issue:`1273`. * Allow repository URLs with secure transports to count as trusted. (E.g., "git+ssh" is okay.) :issue:`2811`. * Implement a top-level ``pip download`` command and deprecate ``pip install --download``. * Fixed :issue:`3141`, when uninstalling, look for the case of paths containing symlinked directories (:pull:`3154`) * When installing, if building a wheel fails, clear up the build directory before falling back to a source install. :issue:`3047`. * Fix user directory expansion when ``HOME=/``. Workaround for Python bug http://bugs.python.org/issue14768, reported in :issue:`2996`. * Fixed :issue:`3009`, correct reporting of requirements file line numbers (:pull:`3125`) * Fixed :issue:`1062`, Exception(IOError) for ``pip freeze`` and ``pip list`` commands with subversion >= 1.7. (:pull:`3346`) * Provide a spinner showing that progress is happening when installing or building a package via ``setup.py``. This will alleviate concerns that projects with unusually long build times have with pip appearing to stall. * Include the functionality of ``peep`` into pip, allowing hashes to be baked into a requirements file and ensuring that the packages being downloaded match one of those hashes. This is an additional, opt-in security measure that, when used, removes the need to trust the repository. * Fix a bug causing pip to not select a wheel compiled against an OSX SDK later than what Python itself was compiled against when running on a newer version of OSX. * Add a new ``--prefix`` option for ``pip install`` that supports wheels and sdists. (:pull:`3252`) * Fixed :issue:`2042` regarding wheel building with setup.py using a different encoding than the system. * Drop PasteScript specific egg_info hack. (:pull:`3270`) * Allow combination of pip list options --editable with --outdated/--updtodate. (:issue:`933`) * Gives VCS implementations control over saying whether a project is under their control (:pull:`3258`) * Git detection now works when ``setup.py`` is not at the Git repo root and when ``package_dir`` is used, so ``pip freeze`` works in more cases (:pull:`3258`) * Correctly freeze Git develop packages in presence of the &subdirectory option (:pull:`3258`) * The detection of editable packages now relies on the presence of ``.egg-link`` instead of looking for a VCS, so ``pip list -e`` is more reliable (:pull:`3258`) * Add the ``--prefix`` flag to ``pip install`` which allows specifying a root prefix to use instead of ``sys.prefix`` (:pull:`3252`). * Allow duplicate specifications in the case that only the extras differ, and union all specified extras together (:pull:`3198`). * Fix the detection of the user's current platform on OSX when determining the OSX SDK version (:pull:`3232`). * Prevent the automatically built wheels from mistakenly being used across multiple versions of Python when they may not be correctly configured for that by making the wheel specific to a specific version of Python and specific interpreter (:pull:`3225`). * Emulate the SOABI support in wheels from Python 2.x on Python 2.x as closely as we can with the information available within the interpreter (:pull:`3075`). * Don't roundtrip to the network when git is pinned to a specific commit hash and that hash already exists locally (:pull:`3066`). * Prefer wheels built against a newer SDK to wheels built against an older SDK on OSX (:pull:`3163`). * Show entry points for projects installed via wheel (:pull:`3122`). * Improve message when an unexisting path is passed to --find-links option (:issue:`2968`). * pip freeze does not add the VCS branch/tag name in the #egg=... fragment anymore (:pull:`3312`). * Warn on installation of editable if the provided #egg=name part does not match the metadata produced by `setup.py egg_info`. :issue:`3143`. * Add support for .xz files for python versions supporting them (>= 3.3). :issue:`722`.- update to 7.1.2: * Don't raise an error if pip is not installed when checking for the latest pip version. * Check that the wheel cache directory is writable before we attempt to write cached files to them. * Move the pip version check until *after* any installs have been performed, thus removing the extraenous warning when upgrading pip. * Added debug logging when using a cached wheel. * Respect platlib by default on platforms that have it separated from purlib. * Upgrade packaging to 15.3. * Normalize post-release spellings for rev/r prefixes. * Upgrade distlib to 0.2.1. * Updated launchers to decode shebangs using UTF-8. This allows non-ASCII pathnames to be correctly handled. * Ensured that the executable written to shebangs is normcased. * Changed ScriptMaker to work better under Jython. * Upgrade ipaddress to 1.0.13. * Allow constraining versions globally without having to know exactly what will be installed by the pip command. :issue:`2731`. * Accept --no-binary and --only-binary via pip.conf. :issue:`2867`. * Allow ``--allow-all-external`` within a requirements file. * Fixed an issue where ``--user`` could not be used when ``--prefix`` was used in a distutils configuration file. * Fixed an issue where the SOABI tags were not correctly being generated on Python 3.5. * Fixed an issue where we were advising windows users to upgrade by directly executing pip, when that would always fail on Windows. * Allow ``~`` to be expanded within a cache directory in all situations. * Fixed a regression where ``--no-cache-dir`` would raise an exception, fixes :issue:`2855`. * **BACKWARD INCOMPATIBLE** Revert the change (released in v7.0.0) that required quoting in requirements files around specifiers containing environment markers. (:pull:`2841`) * **BACKWARD INCOMPATIBLE** Revert the accidental introduction of support for options interleaved with requirements, version specifiers etc in ``requirements`` files. (:pull:`2841`) * Expand ``~`` in the cache directory when caching wheels, fixes :issue:`2816`. * Use ``python -m pip`` instead of ``pip`` when recommending an upgrade command to Windows users. * Don't build and cache wheels for non-editable installations from VCSs. * Allow ``--allow-all-external`` inside of a requirements.txt file, fixing a regression in 7.0. * **BACKWARD INCOMPATIBLE** Removed the deprecated ``--mirror``, ``--use-mirrors``, and ``-M`` options. * **BACKWARD INCOMPATIBLE** Removed the deprecated ``zip`` and ``unzip`` commands. * **BACKWARD INCOMPATIBLE** Removed the deprecated ``--no-install`` and ``--no-download`` options. * **BACKWARD INCOMPATIBLE** No longer implicitly support an insecure origin origin, and instead require insecure origins be explicitly trusted with the ``--trusted-host`` option. * **BACKWARD INCOMPATIBLE** Removed the deprecated link scraping that attempted to parse HTML comments for a specially formatted comment. * **BACKWARD INCOMPATIBLE** Requirements in requirements files containing markers must now be quoted due to parser changes from (:pull:`2697`) and (:pull:`2725`). For example, use ``"SomeProject; python_version < '2.7'"``, not simply ``SomeProject; python_version < '2.7'`` * Ignores bz2 archives if Python wasn't compiled with bz2 support. Fixes :issue:`497` * Support ``--install-option`` and ``--global-option`` per requirement in requirement files (:pull:`2537`) * Build Wheels prior to installing from sdist, caching them in the pip cache directory to speed up subsequent installs. (:pull:`2618`) * Allow fine grained control over the use of wheels and source builds. (:pull:`2699`) * ``--no-use-wheel`` and ``--use-wheel`` are deprecated in favour of new options ``--no-binary`` and ``--only-binary``. The equivalent of ``--no-use-wheel`` is ``--no-binary=:all:``. (:pull:`2699`) * The use of ``--install-option``, ``--global-option`` or ``--build-option`` disable the use of wheels, and the autobuilding of wheels. (:pull:`2711`) Fixes :issue:`2677` * Improve logging when a requirement marker doesn't match your environment (:pull:`2735`) * Removed the temporary modifications (that began in pip v1.4 when distribute and setuptools merged) that allowed distribute to be considered a conflict to setuptools. ``pip install -U setuptools`` will no longer upgrade "distribute" to "setuptools". Instead, use ``pip install -U distribute`` (:pull:`2767`). * Only display a warning to upgrade pip when the newest version is a final release and it is not a post release of the version we already have installed (:pull:`2766`). * Display a warning when attempting to access a repository that uses HTTPS when we don't have Python compiled with SSL support (:pull:`2761`). * Allowing using extras when installing from a file path without requiring the use of an editable (:pull:`2785`). * Fix an infinite loop when the cache directory is stored on a file system which does not support hard links (:pull:`2796`). * Remove the implicit debug log that was written on every invocation, instead users will need to use ``--log`` if they wish to have one (:pull:`2798`). * No longer ignore dependencies which have been added to the standard library, instead continue to install them. * Fixes :issue:`2502`. Upgrades were failing when no potential links were found for dependencies other than the current installation. (:pull:`2538`) * Use a smoother progress bar when the terminal is capable of handling it, otherwise fallback to the original ASCII based progress bar. * Display much less output when `pip install` succeeds, because on success, users probably don't care about all the nitty gritty details of compiling and installing. When `pip install` fails, display the failed install output once instead of twice, because once is enough. (:pull:`2487`) * Upgrade the bundled copy of requests to 2.6.0, fixing CVE-2015-2296. * Display format of latest package when using ``pip list --outdated``. (:pull:`2475`) * Don't use pywin32 as ctypes should always be available on Windows, using pywin32 prevented uninstallation of pywin32 on Windows. (:pull:`2467`) * Normalize the ``--wheel-dir`` option, expanding out constructs such as ``~`` when used (:pull:`2441`). * Display a warning when an undefined extra has been requested. (:pull:`2142`) * Speed up installing a directory in certain cases by creating a sdist instead of copying the entire directory. (:pull:`2535`) * Don't follow symlinks when uninstalling files (:pull:`2552`) * Upgrade the bundled copy of cachecontrol from 0.11.1 to 0.11.2. Fixes :issue:`2481` (:pull:`2595`) * Attempt to more smartly choose the order of installation to try and install dependencies before the projects that depend on them. (:pull:`2616`) * Skip trying to install libraries which are part of the standard library. (:pull:`2636`, :pull:`2602`) * Support arch specific wheels that are not tied to a specific Python ABI. (:pull:`2561`) * Output warnings and errors to stderr instead of stdout. (:pull:`2543`) * Adjust the cache dir file checks to only check ownership if the effective user is root. (:pull:`2396`) * Install headers into a per project name directory instead of all of them into the root directory when inside of a virtual environment. (:pull:`2421`)- added coreutils are requirement, to work around SLE12 error in Studio- Make tests conditional to avoid dependency loop.- update to 6.0.8: * Fix an issue where the ``--download`` flag would cause pip to no longer use randomized build directories. * Fix an issue where pip did not properly unquote quoted URLs which contain characters like PEP 440's epoch separator (``!``). * Fix an issue where distutils installed projects were not actually uninstalled and deprecate attempting to uninstall them altogether. * Retry deleting directories incase a process like an antivirus is holding the directory open temporarily. * Fix an issue where pip would hide the cursor on Windows but would not reshow it. * Fix a regression where Numpy requires a build path without symlinks to properly build. * Fix a broken log message when running ``pip wheel`` without a requirement. * Don't mask network errors while downloading the file as a hash failure. * Properly create the state file for the pip version check so it only happens once a week. * Fix an issue where switching between Python 3 and Python 2 would evict cached items. * Fix a regression where pip would be unable to successfully uninstall a project without a normalized version. * Continue the regression fix from 6.0.5 which was not a complete fix. * Fix a regression with 6.0.4 under Windows where most commands would raise an exception due to Windows not having the ``os.geteuid()`` function. * Fix an issue where ANSI escape codes would be used on Windows even though the Windows shell does not support them, causing odd characters to appear with the progress bar. * Fix an issue where using -v would cause an exception saying ``TypeError: not all arguments converted during string formatting``. * Fix an issue where using -v with dependency links would cause an exception saying ``TypeError: 'InstallationCandidate' object is not iterable``. * Fix an issue where upgrading distribute would cause an exception saying ``TypeError: expected string or buffer``. * Show a warning and disable the use of the cache directory when the cache directory is not owned by the current use, commonly caused by using ``sudo`` without the ``-H`` flag. * Update PEP 440 support to handle the latest changes to PEP 440, particularly the changes to ``>V`` and `` when the given specifier doesn't match anything. * Fix an issue where installing from a directory would not copy over certain directories which were being excluded, however some build systems rely on them. * **PROCESS** Version numbers are now simply ``X.Y`` where the leading ``1`` has been dropped. * **BACKWARD INCOMPATIBLE** Dropped support for Python 3.1. * **BACKWARD INCOMPATIBLE** Removed the bundle support which was deprecated in 1.4. (:pull:`1806`) * **BACKWARD INCOMPATIBLE** File lists generated by `pip show -f` are now rooted at the location reported by show, rather than one (unstated) directory lower. (:pull:`1933`) * **BACKWARD INCOMPATIBLE** The ability to install files over the FTP protocol was accidently lost in pip 1.5 and it has now been decided to not restore that ability. * **BACKWARD INCOMPATIBLE** PEP 440 is now fully implemented, this means that in some cases versions will sort differently or version specifiers will be interpreted differently than previously. The common cases should all function similarly to before. * **DEPRECATION** ``pip install --download-cache`` and ``pip wheel --download-cache`` command line flags have been deprecated and the functionality removed. Since pip now automatically configures and uses it's internal HTTP cache which supplants the ``--download-cache`` the existing options have been made non functional but will still be accepted until their removal in pip v8.0. For more information please see https://pip.pypa.io/en/latest/reference/pip_install.html#caching * **DEPRECATION** ``pip install --build`` and ``pip install --no-clean`` are now * NOT* deprecated. This reverses the deprecation that occurred in v1.5.3. See :issue:`906` for discussion. * **DEPRECATION** Implicitly accessing URLs which point to an origin which is not a secure origin, instead requiring an opt-in for each host using the new ``--trusted-host`` flag (``pip install --trusted-host example.com foo``). * Allow the new ``--trusted-host`` flag to also disable TLS verification for a particular hostname. * Added a ``--user`` flag to ``pip freeze`` and ``pip list`` to check the user site directory only. * Fixed :issue:`1873`. Silence byte compile errors when installation succeed. * Added a virtualenv-specific configuration file. (:pull:`1364`) * Added site-wide configuation files. (:pull:`1978`) * Added an automatic check to warn if there is an updated version of pip available (:pull:`2049`). * `wsgiref` and `argparse` (for >py26) are now excluded from `pip list` and `pip freeze` (:pull:`1606`, :pull:`1369`) * Fixed :issue:`1424`. Add ``--client-cert`` option for SSL client certificates. * Fixed :issue:`1484`. `pip show --files` was broken for wheel installs. (:pull:`35`) * Fixed :issue:`1641`. install_lib should take precedence when reading distutils nfig. (:pull:`1642`) * Send `Accept-Encoding: identity` when downloading files in an attempt to convince some servers who double compress the downloaded file to stop doing so. (:pull:`1688`) * Fixed :issue:`1559`. Stop breaking when given pip commands in uppercase (:pull:725`) * Fixed :issue:`1618`. Pip no longer adds duplicate logging consumers, so it won't create duplicate output when being called multiple times. (:pull:`1723`) * Fixed :issue:`1769`. `pip wheel` now returns an error code if any wheels fail to build. * Fixed :issue:`1775`. `pip wheel` wasn't building wheels for dependencies of editable requirements. * Allow the use of ``--no-use-wheel`` within a requirements file. (:pull:`1859`) * Fixed :issue:`1680`. Attempt to locate system TLS certificates to use instead of the included CA Bundle if possible. (:pull:`1866`) * Fixed :issue:`1319`. Allow use of Zip64 extension in Wheels and other zip files. (:pull:`1868`) * Fixed :issue:`1101`. Properly handle an index or --find-links target which has a without a href attribute. (:pull:`1869`) * Fixed :issue:`1885`. Properly handle extras when a project is installed via Wheel. (:pull:`1896`) * Fixed :issue:`1180`. Added support to respect proxies in ``pip search``. It also fixes :issue:`932` and :issue:`1104`. (:pull:`1902`) * Fixed :issue:`798` and :issue:`1060`. `pip install --download` works with vcs lks. (:pull:`1926`) * Fixed :issue:`1456`. Disabled warning about insecure index host when using locaost. Based off of Guy Rozendorn's work in :pull:`1718`. (:pull:`1967`) * Allow the use of OS standard user configuration files instead of ones simply based around ``$HOME``. (:pull:`2021`) * Fixed :issue:`1825`. When installing directly from wheel paths or urls, previous versions were not uninstalled. This also fixes :issue:`804` specifically for the case of wheel archives. (:pull:`1838`) * Fixed :issue:`2075`, detect the location of the ``.egg-info`` directory by looking for any file located inside of it instead of relying on the record file listing a directory. (:pull:`2076`) * Fixed :issue:`1964`, :issue:`1935`, :issue:`676`, Use a randomized and secure default build directory when possible. (:pull:`2122`, CVE-2014-8991) * Fixed :issue:`1433`. Support environment markers in requirements.txt files. (pull:`2134`) * Automatically retry failed HTTP requests by default. (:pull:`1444`, pull:`2147` * Fixed :issue:`1100` - Handle HTML Encoding better using a method that is more similar to how browsers handle it. (:pull:`1874`) * Reduce the verbosity of the pip command by default. (:pull:`2175`, :pull:`2177`, :pull:`2178`) * Fixed :issue:`2031` - Respect sys.executable on OSX when installing from Wheels. * Display the entire URL of the file that is being downloaded when downloading from a non PyPI repository (:pull:`2183`). * Support setuptools style environment markers in a source distribution (:pull:`2153`). * Upgrade requests to 2.3.0 to fix an issue with proxies on Python 3.4.1 (:pull:`1821`). * Fixes :issue:`1632`. Uninstall issues on debianized pypy, specifically issues th setuptools upgrades. (:pull:`1743`) * Update documentation to point at https://bootstrap.pypa.io/get-pip.py for bootstrapping pip. * Update docs to point to https://pip.pypa.io/ * Upgrade the bundled projects (distlib==0.1.8, html5lib==1.0b3, six==1.6.1, colorama==0.3.1, setuptools==3.4.4). * Correct deprecation warning for ``pip install --build`` to only notify when the `--build` value is different than the default. * **DEPRECATION** ``pip install --build`` and ``pip install --no-clean`` are now deprecated. See :issue:`906` for discussion. * Fixed :issue:`1112`. Couldn't download directly from wheel paths/urls, and whenheel downloads did occur using requirement specifiers, dependencies weren't downloaded (:pull:`1527`) * Fixed :issue:`1320`. ``pip wheel`` was not downloading wheels that already exisd (PR :issue:`1524`) * Fixed :issue:`1111`. ``pip install --download`` was failing using local ``--find-links`` (:pull:`1524`) * Workaround for Python bug http://bugs.python.org/issue20053 (:pull:`1544`) * Don't pass a unicode __file__ to setup.py on Python 2.x (:pull:`1583`) * Verify that the Wheel version is compatible with this pip (:pull:`1569`) * Upgraded the vendored ``pkg_resources`` and ``_markerlib`` to setuptools 2.1. * Fixed an error that prevented accessing PyPI when pyopenssl, ndg-httpsclient, and pyasn1 are installed * Fixed an issue that caused trailing comments to be incorrectly included as part of the URL in a requirements file * pip now only requires setuptools (any setuptools, not a certain version) when installing distributions from src (i.e. not from wheel). (:pull:`1434`). * `get-pip.py` now installs setuptools, when it's not already installed (:pull:`1475`) * Don't decode downloaded files that have a ``Content-Encoding`` header. (:pull:`1435`) * Fix to correctly parse wheel filenames with single digit versions. (:pull:`1445`) * If `--allow-unverified` is used assume it also means `--allow-external`. (:pull:`1457`) - Adjust BuildRequires for python-virtualenv- fix bashism in pre script/bin/sh/bin/sh/bin/shh01-ch2d 1725460700  !"#$%&'')*++-./0123446689::<=>>@@BCDEFGHIJJLMNOPQRSTUVWXYZZ\\^^``bbdefghhjjllnnpprsttvwxxzz|}~       "#$%&'())+,--//113456779:;<=>?@ABCDEEGGIJKLMNOPQRSTTVWXYZ[\]^_`abcdeffhhjklmnnpqrstuvvxxz{|}~~     !""$$&&()*+,-./0123446688:;<=>>@@BBDDFFHHJJLLNNPPRRTTVWXXZZ\\^^``bbdeffhhjjllnnpprrttvvxxzz||~~      !"#$%&'())++-./01233557799;;==??AACDEFGHIJKLMMOOQQSTUVWXYZ[\\^^`abcddfghhjjllnnpprstuvwxyz{|}~~      ""$%&'()**,-./01234557799;<=>?@@BBDEFGHIJJLMNNPPRRTTVVXXZZ\\^^``bbddffhhjjlmnopqrstuvwxyz{|}~       ""$%&&((*+,,..0122456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !!##%%'()*+,-./01234567899;<=>??ABCDEFGHIJK23.2.1-150600.3.3.1    !!!!!!!!!!!! ""####""$$%%%%$"&&''''''''''''''''''&&&&&&&&(())))))))))))))))))))))))))))))))))))))))))))))))))))))))(((((((((((((((((((((((((((**++++++++++++*****,,------,..////////////////////....0011111100......,2223333332,44555555555555555555555555555555555555555555555555555555555555555555555555555555555555555544444466777764444444444444444444444444444444889999844444444,::;;;;;;;;;;;;::::<<==============<<<<<<::,>>??????????????????????????>>>>>>>>>>>>,@@@AAAAAA@,BBCCCCCCCCCCCCCCCCBBBBBBB,DDEEEEEEEEDDD,FFFGGGGGGGGGGGGGGGGGGGGGGFFFFFFFFF,HHII,JJJKKKKKKKKKKKKKKKKJJJJJJ,LLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMLLLLNNOOLLPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQPPPPPPPPPPPPPLLRRSSSSSSRRLLLLLLLTTUULLL,VVWWWWWWWWWWWWWWWWWWWWVVVVXXYYVVVVVV,ZZ[[[[[[ZZZ\\]]]]\,^^____________________________________^^^^^^^^^^^^^^^^^,``aaaaaaaaaa`bbccccb````,dddeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd,,ffggggggggggggggggggggggffffffffff,hhiiiiiiiihhh,,jjkkkkkkkkkkkkkkkkkkkkkkjjjjjllmmmmmmmmmmmmmmllnnoooooonnllllljjjjppqqqqprrssssssrrpjjjjttuuuuuuuuuuuuuuuuuuuuuuuuuutttttttttttt,,vvwwwwwwwwwwvvvvxyyyz{pippip3pippip-3.12pip3pip3-3.12pip3.12pippip-23.2.1-py3.12.egg-infoPKG-INFOSOURCES.txtdependency_links.txtentry_points.txtnot-zip-safetop_level.txt__init__.py__main__.py__pip-runner__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc__main__.cpython-312.opt-1.pyc__main__.cpython-312.pyc__pip-runner__.cpython-312.opt-1.pyc__pip-runner__.cpython-312.pyc_internal__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycbuild_env.cpython-312.opt-1.pycbuild_env.cpython-312.pyccache.cpython-312.opt-1.pyccache.cpython-312.pycconfiguration.cpython-312.opt-1.pycconfiguration.cpython-312.pycexceptions.cpython-312.opt-1.pycexceptions.cpython-312.pycmain.cpython-312.opt-1.pycmain.cpython-312.pycpyproject.cpython-312.opt-1.pycpyproject.cpython-312.pycself_outdated_check.cpython-312.opt-1.pycself_outdated_check.cpython-312.pycwheel_builder.cpython-312.opt-1.pycwheel_builder.cpython-312.pycbuild_env.pycache.pycli__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycautocompletion.cpython-312.opt-1.pycautocompletion.cpython-312.pycbase_command.cpython-312.opt-1.pycbase_command.cpython-312.pyccmdoptions.cpython-312.opt-1.pyccmdoptions.cpython-312.pyccommand_context.cpython-312.opt-1.pyccommand_context.cpython-312.pycmain.cpython-312.opt-1.pycmain.cpython-312.pycmain_parser.cpython-312.opt-1.pycmain_parser.cpython-312.pycparser.cpython-312.opt-1.pycparser.cpython-312.pycprogress_bars.cpython-312.opt-1.pycprogress_bars.cpython-312.pycreq_command.cpython-312.opt-1.pycreq_command.cpython-312.pycspinners.cpython-312.opt-1.pycspinners.cpython-312.pycstatus_codes.cpython-312.opt-1.pycstatus_codes.cpython-312.pycautocompletion.pybase_command.pycmdoptions.pycommand_context.pymain.pymain_parser.pyparser.pyprogress_bars.pyreq_command.pyspinners.pystatus_codes.pycommands__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyccache.cpython-312.opt-1.pyccache.cpython-312.pyccheck.cpython-312.opt-1.pyccheck.cpython-312.pyccompletion.cpython-312.opt-1.pyccompletion.cpython-312.pycconfiguration.cpython-312.opt-1.pycconfiguration.cpython-312.pycdebug.cpython-312.opt-1.pycdebug.cpython-312.pycdownload.cpython-312.opt-1.pycdownload.cpython-312.pycfreeze.cpython-312.opt-1.pycfreeze.cpython-312.pychash.cpython-312.opt-1.pychash.cpython-312.pychelp.cpython-312.opt-1.pychelp.cpython-312.pycindex.cpython-312.opt-1.pycindex.cpython-312.pycinspect.cpython-312.opt-1.pycinspect.cpython-312.pycinstall.cpython-312.opt-1.pycinstall.cpython-312.pyclist.cpython-312.opt-1.pyclist.cpython-312.pycsearch.cpython-312.opt-1.pycsearch.cpython-312.pycshow.cpython-312.opt-1.pycshow.cpython-312.pycuninstall.cpython-312.opt-1.pycuninstall.cpython-312.pycwheel.cpython-312.opt-1.pycwheel.cpython-312.pyccache.pycheck.pycompletion.pyconfiguration.pydebug.pydownload.pyfreeze.pyhash.pyhelp.pyindex.pyinspect.pyinstall.pylist.pysearch.pyshow.pyuninstall.pywheel.pyconfiguration.pydistributions__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycbase.cpython-312.opt-1.pycbase.cpython-312.pycinstalled.cpython-312.opt-1.pycinstalled.cpython-312.pycsdist.cpython-312.opt-1.pycsdist.cpython-312.pycwheel.cpython-312.opt-1.pycwheel.cpython-312.pycbase.pyinstalled.pysdist.pywheel.pyexceptions.pyindex__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyccollector.cpython-312.opt-1.pyccollector.cpython-312.pycpackage_finder.cpython-312.opt-1.pycpackage_finder.cpython-312.pycsources.cpython-312.opt-1.pycsources.cpython-312.pyccollector.pypackage_finder.pysources.pylocations__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_distutils.cpython-312.opt-1.pyc_distutils.cpython-312.pyc_sysconfig.cpython-312.opt-1.pyc_sysconfig.cpython-312.pycbase.cpython-312.opt-1.pycbase.cpython-312.pyc_distutils.py_sysconfig.pybase.pymain.pymetadata__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_json.cpython-312.opt-1.pyc_json.cpython-312.pycbase.cpython-312.opt-1.pycbase.cpython-312.pycpkg_resources.cpython-312.opt-1.pycpkg_resources.cpython-312.pyc_json.pybase.pyimportlib__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_compat.cpython-312.opt-1.pyc_compat.cpython-312.pyc_dists.cpython-312.opt-1.pyc_dists.cpython-312.pyc_envs.cpython-312.opt-1.pyc_envs.cpython-312.pyc_compat.py_dists.py_envs.pypkg_resources.pymodels__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyccandidate.cpython-312.opt-1.pyccandidate.cpython-312.pycdirect_url.cpython-312.opt-1.pycdirect_url.cpython-312.pycformat_control.cpython-312.opt-1.pycformat_control.cpython-312.pycindex.cpython-312.opt-1.pycindex.cpython-312.pycinstallation_report.cpython-312.opt-1.pycinstallation_report.cpython-312.pyclink.cpython-312.opt-1.pyclink.cpython-312.pycscheme.cpython-312.opt-1.pycscheme.cpython-312.pycsearch_scope.cpython-312.opt-1.pycsearch_scope.cpython-312.pycselection_prefs.cpython-312.opt-1.pycselection_prefs.cpython-312.pyctarget_python.cpython-312.opt-1.pyctarget_python.cpython-312.pycwheel.cpython-312.opt-1.pycwheel.cpython-312.pyccandidate.pydirect_url.pyformat_control.pyindex.pyinstallation_report.pylink.pyscheme.pysearch_scope.pyselection_prefs.pytarget_python.pywheel.pynetwork__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycauth.cpython-312.opt-1.pycauth.cpython-312.pyccache.cpython-312.opt-1.pyccache.cpython-312.pycdownload.cpython-312.opt-1.pycdownload.cpython-312.pyclazy_wheel.cpython-312.opt-1.pyclazy_wheel.cpython-312.pycsession.cpython-312.opt-1.pycsession.cpython-312.pycutils.cpython-312.opt-1.pycutils.cpython-312.pycxmlrpc.cpython-312.opt-1.pycxmlrpc.cpython-312.pycauth.pycache.pydownload.pylazy_wheel.pysession.pyutils.pyxmlrpc.pyoperations__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyccheck.cpython-312.opt-1.pyccheck.cpython-312.pycfreeze.cpython-312.opt-1.pycfreeze.cpython-312.pycprepare.cpython-312.opt-1.pycprepare.cpython-312.pycbuild__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycbuild_tracker.cpython-312.opt-1.pycbuild_tracker.cpython-312.pycmetadata.cpython-312.opt-1.pycmetadata.cpython-312.pycmetadata_editable.cpython-312.opt-1.pycmetadata_editable.cpython-312.pycmetadata_legacy.cpython-312.opt-1.pycmetadata_legacy.cpython-312.pycwheel.cpython-312.opt-1.pycwheel.cpython-312.pycwheel_editable.cpython-312.opt-1.pycwheel_editable.cpython-312.pycwheel_legacy.cpython-312.opt-1.pycwheel_legacy.cpython-312.pycbuild_tracker.pymetadata.pymetadata_editable.pymetadata_legacy.pywheel.pywheel_editable.pywheel_legacy.pycheck.pyfreeze.pyinstall__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyceditable_legacy.cpython-312.opt-1.pyceditable_legacy.cpython-312.pycwheel.cpython-312.opt-1.pycwheel.cpython-312.pyceditable_legacy.pywheel.pyprepare.pypyproject.pyreq__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycconstructors.cpython-312.opt-1.pycconstructors.cpython-312.pycreq_file.cpython-312.opt-1.pycreq_file.cpython-312.pycreq_install.cpython-312.opt-1.pycreq_install.cpython-312.pycreq_set.cpython-312.opt-1.pycreq_set.cpython-312.pycreq_uninstall.cpython-312.opt-1.pycreq_uninstall.cpython-312.pycconstructors.pyreq_file.pyreq_install.pyreq_set.pyreq_uninstall.pyresolution__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycbase.cpython-312.opt-1.pycbase.cpython-312.pycbase.pylegacy__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycresolver.cpython-312.opt-1.pycresolver.cpython-312.pycresolver.pyresolvelib__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycbase.cpython-312.opt-1.pycbase.cpython-312.pyccandidates.cpython-312.opt-1.pyccandidates.cpython-312.pycfactory.cpython-312.opt-1.pycfactory.cpython-312.pycfound_candidates.cpython-312.opt-1.pycfound_candidates.cpython-312.pycprovider.cpython-312.opt-1.pycprovider.cpython-312.pycreporter.cpython-312.opt-1.pycreporter.cpython-312.pycrequirements.cpython-312.opt-1.pycrequirements.cpython-312.pycresolver.cpython-312.opt-1.pycresolver.cpython-312.pycbase.pycandidates.pyfactory.pyfound_candidates.pyprovider.pyreporter.pyrequirements.pyresolver.pyself_outdated_check.pyutils__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_jaraco_text.cpython-312.opt-1.pyc_jaraco_text.cpython-312.pyc_log.cpython-312.opt-1.pyc_log.cpython-312.pycappdirs.cpython-312.opt-1.pycappdirs.cpython-312.pyccompat.cpython-312.opt-1.pyccompat.cpython-312.pyccompatibility_tags.cpython-312.opt-1.pyccompatibility_tags.cpython-312.pycdatetime.cpython-312.opt-1.pycdatetime.cpython-312.pycdeprecation.cpython-312.opt-1.pycdeprecation.cpython-312.pycdirect_url_helpers.cpython-312.opt-1.pycdirect_url_helpers.cpython-312.pycegg_link.cpython-312.opt-1.pycegg_link.cpython-312.pycencoding.cpython-312.opt-1.pycencoding.cpython-312.pycentrypoints.cpython-312.opt-1.pycentrypoints.cpython-312.pycfilesystem.cpython-312.opt-1.pycfilesystem.cpython-312.pycfiletypes.cpython-312.opt-1.pycfiletypes.cpython-312.pycglibc.cpython-312.opt-1.pycglibc.cpython-312.pychashes.cpython-312.opt-1.pychashes.cpython-312.pycinject_securetransport.cpython-312.opt-1.pycinject_securetransport.cpython-312.pyclogging.cpython-312.opt-1.pyclogging.cpython-312.pycmisc.cpython-312.opt-1.pycmisc.cpython-312.pycmodels.cpython-312.opt-1.pycmodels.cpython-312.pycpackaging.cpython-312.opt-1.pycpackaging.cpython-312.pycsetuptools_build.cpython-312.opt-1.pycsetuptools_build.cpython-312.pycsubprocess.cpython-312.opt-1.pycsubprocess.cpython-312.pyctemp_dir.cpython-312.opt-1.pyctemp_dir.cpython-312.pycunpacking.cpython-312.opt-1.pycunpacking.cpython-312.pycurls.cpython-312.opt-1.pycurls.cpython-312.pycvirtualenv.cpython-312.opt-1.pycvirtualenv.cpython-312.pycwheel.cpython-312.opt-1.pycwheel.cpython-312.pyc_jaraco_text.py_log.pyappdirs.pycompat.pycompatibility_tags.pydatetime.pydeprecation.pydirect_url_helpers.pyegg_link.pyencoding.pyentrypoints.pyfilesystem.pyfiletypes.pyglibc.pyhashes.pyinject_securetransport.pylogging.pymisc.pymodels.pypackaging.pysetuptools_build.pysubprocess.pytemp_dir.pyunpacking.pyurls.pyvirtualenv.pywheel.pyvcs__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycbazaar.cpython-312.opt-1.pycbazaar.cpython-312.pycgit.cpython-312.opt-1.pycgit.cpython-312.pycmercurial.cpython-312.opt-1.pycmercurial.cpython-312.pycsubversion.cpython-312.opt-1.pycsubversion.cpython-312.pycversioncontrol.cpython-312.opt-1.pycversioncontrol.cpython-312.pycbazaar.pygit.pymercurial.pysubversion.pyversioncontrol.pywheel_builder.py_vendor__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycsix.cpython-312.opt-1.pycsix.cpython-312.pyctyping_extensions.cpython-312.opt-1.pyctyping_extensions.cpython-312.pyccachecontrol__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_cmd.cpython-312.opt-1.pyc_cmd.cpython-312.pycadapter.cpython-312.opt-1.pycadapter.cpython-312.pyccache.cpython-312.opt-1.pyccache.cpython-312.pyccompat.cpython-312.opt-1.pyccompat.cpython-312.pyccontroller.cpython-312.opt-1.pyccontroller.cpython-312.pycfilewrapper.cpython-312.opt-1.pycfilewrapper.cpython-312.pycheuristics.cpython-312.opt-1.pycheuristics.cpython-312.pycserialize.cpython-312.opt-1.pycserialize.cpython-312.pycwrapper.cpython-312.opt-1.pycwrapper.cpython-312.pyc_cmd.pyadapter.pycache.pycaches__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycfile_cache.cpython-312.opt-1.pycfile_cache.cpython-312.pycredis_cache.cpython-312.opt-1.pycredis_cache.cpython-312.pycfile_cache.pyredis_cache.pycompat.pycontroller.pyfilewrapper.pyheuristics.pyserialize.pywrapper.pycertifi__init__.py__main__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc__main__.cpython-312.opt-1.pyc__main__.cpython-312.pyccore.cpython-312.opt-1.pyccore.cpython-312.pyccore.pychardet__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycbig5freq.cpython-312.opt-1.pycbig5freq.cpython-312.pycbig5prober.cpython-312.opt-1.pycbig5prober.cpython-312.pycchardistribution.cpython-312.opt-1.pycchardistribution.cpython-312.pyccharsetgroupprober.cpython-312.opt-1.pyccharsetgroupprober.cpython-312.pyccharsetprober.cpython-312.opt-1.pyccharsetprober.cpython-312.pyccodingstatemachine.cpython-312.opt-1.pyccodingstatemachine.cpython-312.pyccodingstatemachinedict.cpython-312.opt-1.pyccodingstatemachinedict.cpython-312.pyccp949prober.cpython-312.opt-1.pyccp949prober.cpython-312.pycenums.cpython-312.opt-1.pycenums.cpython-312.pycescprober.cpython-312.opt-1.pycescprober.cpython-312.pycescsm.cpython-312.opt-1.pycescsm.cpython-312.pyceucjpprober.cpython-312.opt-1.pyceucjpprober.cpython-312.pyceuckrfreq.cpython-312.opt-1.pyceuckrfreq.cpython-312.pyceuckrprober.cpython-312.opt-1.pyceuckrprober.cpython-312.pyceuctwfreq.cpython-312.opt-1.pyceuctwfreq.cpython-312.pyceuctwprober.cpython-312.opt-1.pyceuctwprober.cpython-312.pycgb2312freq.cpython-312.opt-1.pycgb2312freq.cpython-312.pycgb2312prober.cpython-312.opt-1.pycgb2312prober.cpython-312.pychebrewprober.cpython-312.opt-1.pychebrewprober.cpython-312.pycjisfreq.cpython-312.opt-1.pycjisfreq.cpython-312.pycjohabfreq.cpython-312.opt-1.pycjohabfreq.cpython-312.pycjohabprober.cpython-312.opt-1.pycjohabprober.cpython-312.pycjpcntx.cpython-312.opt-1.pycjpcntx.cpython-312.pyclangbulgarianmodel.cpython-312.opt-1.pyclangbulgarianmodel.cpython-312.pyclanggreekmodel.cpython-312.opt-1.pyclanggreekmodel.cpython-312.pyclanghebrewmodel.cpython-312.opt-1.pyclanghebrewmodel.cpython-312.pyclanghungarianmodel.cpython-312.opt-1.pyclanghungarianmodel.cpython-312.pyclangrussianmodel.cpython-312.opt-1.pyclangrussianmodel.cpython-312.pyclangthaimodel.cpython-312.opt-1.pyclangthaimodel.cpython-312.pyclangturkishmodel.cpython-312.opt-1.pyclangturkishmodel.cpython-312.pyclatin1prober.cpython-312.opt-1.pyclatin1prober.cpython-312.pycmacromanprober.cpython-312.opt-1.pycmacromanprober.cpython-312.pycmbcharsetprober.cpython-312.opt-1.pycmbcharsetprober.cpython-312.pycmbcsgroupprober.cpython-312.opt-1.pycmbcsgroupprober.cpython-312.pycmbcssm.cpython-312.opt-1.pycmbcssm.cpython-312.pycresultdict.cpython-312.opt-1.pycresultdict.cpython-312.pycsbcharsetprober.cpython-312.opt-1.pycsbcharsetprober.cpython-312.pycsbcsgroupprober.cpython-312.opt-1.pycsbcsgroupprober.cpython-312.pycsjisprober.cpython-312.opt-1.pycsjisprober.cpython-312.pycuniversaldetector.cpython-312.opt-1.pycuniversaldetector.cpython-312.pycutf1632prober.cpython-312.opt-1.pycutf1632prober.cpython-312.pycutf8prober.cpython-312.opt-1.pycutf8prober.cpython-312.pycversion.cpython-312.opt-1.pycversion.cpython-312.pycbig5freq.pybig5prober.pychardistribution.pycharsetgroupprober.pycharsetprober.pycli__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycchardetect.cpython-312.opt-1.pycchardetect.cpython-312.pycchardetect.pycodingstatemachine.pycodingstatemachinedict.pycp949prober.pyenums.pyescprober.pyescsm.pyeucjpprober.pyeuckrfreq.pyeuckrprober.pyeuctwfreq.pyeuctwprober.pygb2312freq.pygb2312prober.pyhebrewprober.pyjisfreq.pyjohabfreq.pyjohabprober.pyjpcntx.pylangbulgarianmodel.pylanggreekmodel.pylanghebrewmodel.pylanghungarianmodel.pylangrussianmodel.pylangthaimodel.pylangturkishmodel.pylatin1prober.pymacromanprober.pymbcharsetprober.pymbcsgroupprober.pymbcssm.pymetadata__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyclanguages.cpython-312.opt-1.pyclanguages.cpython-312.pyclanguages.pyresultdict.pysbcharsetprober.pysbcsgroupprober.pysjisprober.pyuniversaldetector.pyutf1632prober.pyutf8prober.pyversion.pycolorama__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycansi.cpython-312.opt-1.pycansi.cpython-312.pycansitowin32.cpython-312.opt-1.pycansitowin32.cpython-312.pycinitialise.cpython-312.opt-1.pycinitialise.cpython-312.pycwin32.cpython-312.opt-1.pycwin32.cpython-312.pycwinterm.cpython-312.opt-1.pycwinterm.cpython-312.pycansi.pyansitowin32.pyinitialise.pytests__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycansi_test.cpython-312.opt-1.pycansi_test.cpython-312.pycansitowin32_test.cpython-312.opt-1.pycansitowin32_test.cpython-312.pycinitialise_test.cpython-312.opt-1.pycinitialise_test.cpython-312.pycisatty_test.cpython-312.opt-1.pycisatty_test.cpython-312.pycutils.cpython-312.opt-1.pycutils.cpython-312.pycwinterm_test.cpython-312.opt-1.pycwinterm_test.cpython-312.pycansi_test.pyansitowin32_test.pyinitialise_test.pyisatty_test.pyutils.pywinterm_test.pywin32.pywinterm.pydistlib__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyccompat.cpython-312.opt-1.pyccompat.cpython-312.pycdatabase.cpython-312.opt-1.pycdatabase.cpython-312.pycindex.cpython-312.opt-1.pycindex.cpython-312.pyclocators.cpython-312.opt-1.pyclocators.cpython-312.pycmanifest.cpython-312.opt-1.pycmanifest.cpython-312.pycmarkers.cpython-312.opt-1.pycmarkers.cpython-312.pycmetadata.cpython-312.opt-1.pycmetadata.cpython-312.pycresources.cpython-312.opt-1.pycresources.cpython-312.pycscripts.cpython-312.opt-1.pycscripts.cpython-312.pycutil.cpython-312.opt-1.pycutil.cpython-312.pycversion.cpython-312.opt-1.pycversion.cpython-312.pycwheel.cpython-312.opt-1.pycwheel.cpython-312.pyccompat.pydatabase.pyindex.pylocators.pymanifest.pymarkers.pymetadata.pyresources.pyscripts.pyutil.pyversion.pywheel.pydistro__init__.py__main__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc__main__.cpython-312.opt-1.pyc__main__.cpython-312.pycdistro.cpython-312.opt-1.pycdistro.cpython-312.pycdistro.pyidna__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyccodec.cpython-312.opt-1.pyccodec.cpython-312.pyccompat.cpython-312.opt-1.pyccompat.cpython-312.pyccore.cpython-312.opt-1.pyccore.cpython-312.pycidnadata.cpython-312.opt-1.pycidnadata.cpython-312.pycintranges.cpython-312.opt-1.pycintranges.cpython-312.pycpackage_data.cpython-312.opt-1.pycpackage_data.cpython-312.pycuts46data.cpython-312.opt-1.pycuts46data.cpython-312.pyccodec.pycompat.pycore.pyidnadata.pyintranges.pypackage_data.pyuts46data.pymsgpack__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycexceptions.cpython-312.opt-1.pycexceptions.cpython-312.pycext.cpython-312.opt-1.pycext.cpython-312.pycfallback.cpython-312.opt-1.pycfallback.cpython-312.pycexceptions.pyext.pyfallback.pypackaging__about__.py__init__.py__pycache____about__.cpython-312.opt-1.pyc__about__.cpython-312.pyc__init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_manylinux.cpython-312.opt-1.pyc_manylinux.cpython-312.pyc_musllinux.cpython-312.opt-1.pyc_musllinux.cpython-312.pyc_structures.cpython-312.opt-1.pyc_structures.cpython-312.pycmarkers.cpython-312.opt-1.pycmarkers.cpython-312.pycrequirements.cpython-312.opt-1.pycrequirements.cpython-312.pycspecifiers.cpython-312.opt-1.pycspecifiers.cpython-312.pyctags.cpython-312.opt-1.pyctags.cpython-312.pycutils.cpython-312.opt-1.pycutils.cpython-312.pycversion.cpython-312.opt-1.pycversion.cpython-312.pyc_manylinux.py_musllinux.py_structures.pymarkers.pyrequirements.pyspecifiers.pytags.pyutils.pyversion.pypkg_resources__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycplatformdirs__init__.py__main__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc__main__.cpython-312.opt-1.pyc__main__.cpython-312.pycandroid.cpython-312.opt-1.pycandroid.cpython-312.pycapi.cpython-312.opt-1.pycapi.cpython-312.pycmacos.cpython-312.opt-1.pycmacos.cpython-312.pycunix.cpython-312.opt-1.pycunix.cpython-312.pycversion.cpython-312.opt-1.pycversion.cpython-312.pycwindows.cpython-312.opt-1.pycwindows.cpython-312.pycandroid.pyapi.pymacos.pyunix.pyversion.pywindows.pypygments__init__.py__main__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc__main__.cpython-312.opt-1.pyc__main__.cpython-312.pyccmdline.cpython-312.opt-1.pyccmdline.cpython-312.pycconsole.cpython-312.opt-1.pycconsole.cpython-312.pycfilter.cpython-312.opt-1.pycfilter.cpython-312.pycformatter.cpython-312.opt-1.pycformatter.cpython-312.pyclexer.cpython-312.opt-1.pyclexer.cpython-312.pycmodeline.cpython-312.opt-1.pycmodeline.cpython-312.pycplugin.cpython-312.opt-1.pycplugin.cpython-312.pycregexopt.cpython-312.opt-1.pycregexopt.cpython-312.pycscanner.cpython-312.opt-1.pycscanner.cpython-312.pycsphinxext.cpython-312.opt-1.pycsphinxext.cpython-312.pycstyle.cpython-312.opt-1.pycstyle.cpython-312.pyctoken.cpython-312.opt-1.pyctoken.cpython-312.pycunistring.cpython-312.opt-1.pycunistring.cpython-312.pycutil.cpython-312.opt-1.pycutil.cpython-312.pyccmdline.pyconsole.pyfilter.pyfilters__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycformatter.pyformatters__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_mapping.cpython-312.opt-1.pyc_mapping.cpython-312.pycbbcode.cpython-312.opt-1.pycbbcode.cpython-312.pycgroff.cpython-312.opt-1.pycgroff.cpython-312.pychtml.cpython-312.opt-1.pychtml.cpython-312.pycimg.cpython-312.opt-1.pycimg.cpython-312.pycirc.cpython-312.opt-1.pycirc.cpython-312.pyclatex.cpython-312.opt-1.pyclatex.cpython-312.pycother.cpython-312.opt-1.pycother.cpython-312.pycpangomarkup.cpython-312.opt-1.pycpangomarkup.cpython-312.pycrtf.cpython-312.opt-1.pycrtf.cpython-312.pycsvg.cpython-312.opt-1.pycsvg.cpython-312.pycterminal.cpython-312.opt-1.pycterminal.cpython-312.pycterminal256.cpython-312.opt-1.pycterminal256.cpython-312.pyc_mapping.pybbcode.pygroff.pyhtml.pyimg.pyirc.pylatex.pyother.pypangomarkup.pyrtf.pysvg.pyterminal.pyterminal256.pylexer.pylexers__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_mapping.cpython-312.opt-1.pyc_mapping.cpython-312.pycpython.cpython-312.opt-1.pycpython.cpython-312.pyc_mapping.pypython.pymodeline.pyplugin.pyregexopt.pyscanner.pysphinxext.pystyle.pystyles__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyctoken.pyunistring.pyutil.pypyparsing__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycactions.cpython-312.opt-1.pycactions.cpython-312.pyccommon.cpython-312.opt-1.pyccommon.cpython-312.pyccore.cpython-312.opt-1.pyccore.cpython-312.pycexceptions.cpython-312.opt-1.pycexceptions.cpython-312.pychelpers.cpython-312.opt-1.pychelpers.cpython-312.pycresults.cpython-312.opt-1.pycresults.cpython-312.pyctesting.cpython-312.opt-1.pyctesting.cpython-312.pycunicode.cpython-312.opt-1.pycunicode.cpython-312.pycutil.cpython-312.opt-1.pycutil.cpython-312.pycactions.pycommon.pycore.pydiagram__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycexceptions.pyhelpers.pyresults.pytesting.pyunicode.pyutil.pypyproject_hooks__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_compat.cpython-312.opt-1.pyc_compat.cpython-312.pyc_impl.cpython-312.opt-1.pyc_impl.cpython-312.pyc_compat.py_impl.py_in_process__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_in_process.cpython-312.opt-1.pyc_in_process.cpython-312.pyc_in_process.pyrequests__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc__version__.cpython-312.opt-1.pyc__version__.cpython-312.pyc_internal_utils.cpython-312.opt-1.pyc_internal_utils.cpython-312.pycadapters.cpython-312.opt-1.pycadapters.cpython-312.pycapi.cpython-312.opt-1.pycapi.cpython-312.pycauth.cpython-312.opt-1.pycauth.cpython-312.pyccerts.cpython-312.opt-1.pyccerts.cpython-312.pyccompat.cpython-312.opt-1.pyccompat.cpython-312.pyccookies.cpython-312.opt-1.pyccookies.cpython-312.pycexceptions.cpython-312.opt-1.pycexceptions.cpython-312.pychelp.cpython-312.opt-1.pychelp.cpython-312.pychooks.cpython-312.opt-1.pychooks.cpython-312.pycmodels.cpython-312.opt-1.pycmodels.cpython-312.pycpackages.cpython-312.opt-1.pycpackages.cpython-312.pycsessions.cpython-312.opt-1.pycsessions.cpython-312.pycstatus_codes.cpython-312.opt-1.pycstatus_codes.cpython-312.pycstructures.cpython-312.opt-1.pycstructures.cpython-312.pycutils.cpython-312.opt-1.pycutils.cpython-312.pyc__version__.py_internal_utils.pyadapters.pyapi.pyauth.pycerts.pycompat.pycookies.pyexceptions.pyhelp.pyhooks.pymodels.pypackages.pysessions.pystatus_codes.pystructures.pyutils.pyresolvelib__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycproviders.cpython-312.opt-1.pycproviders.cpython-312.pycreporters.cpython-312.opt-1.pycreporters.cpython-312.pycresolvers.cpython-312.opt-1.pycresolvers.cpython-312.pycstructs.cpython-312.opt-1.pycstructs.cpython-312.pyccompat__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyccollections_abc.cpython-312.opt-1.pyccollections_abc.cpython-312.pyccollections_abc.pyproviders.pyreporters.pyresolvers.pystructs.pyrich__init__.py__main__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc__main__.cpython-312.opt-1.pyc__main__.cpython-312.pyc_cell_widths.cpython-312.opt-1.pyc_cell_widths.cpython-312.pyc_emoji_codes.cpython-312.opt-1.pyc_emoji_codes.cpython-312.pyc_emoji_replace.cpython-312.opt-1.pyc_emoji_replace.cpython-312.pyc_export_format.cpython-312.opt-1.pyc_export_format.cpython-312.pyc_extension.cpython-312.opt-1.pyc_extension.cpython-312.pyc_fileno.cpython-312.opt-1.pyc_fileno.cpython-312.pyc_inspect.cpython-312.opt-1.pyc_inspect.cpython-312.pyc_log_render.cpython-312.opt-1.pyc_log_render.cpython-312.pyc_loop.cpython-312.opt-1.pyc_loop.cpython-312.pyc_null_file.cpython-312.opt-1.pyc_null_file.cpython-312.pyc_palettes.cpython-312.opt-1.pyc_palettes.cpython-312.pyc_pick.cpython-312.opt-1.pyc_pick.cpython-312.pyc_ratio.cpython-312.opt-1.pyc_ratio.cpython-312.pyc_spinners.cpython-312.opt-1.pyc_spinners.cpython-312.pyc_stack.cpython-312.opt-1.pyc_stack.cpython-312.pyc_timer.cpython-312.opt-1.pyc_timer.cpython-312.pyc_win32_console.cpython-312.opt-1.pyc_win32_console.cpython-312.pyc_windows.cpython-312.opt-1.pyc_windows.cpython-312.pyc_windows_renderer.cpython-312.opt-1.pyc_windows_renderer.cpython-312.pyc_wrap.cpython-312.opt-1.pyc_wrap.cpython-312.pycabc.cpython-312.opt-1.pycabc.cpython-312.pycalign.cpython-312.opt-1.pycalign.cpython-312.pycansi.cpython-312.opt-1.pycansi.cpython-312.pycbar.cpython-312.opt-1.pycbar.cpython-312.pycbox.cpython-312.opt-1.pycbox.cpython-312.pyccells.cpython-312.opt-1.pyccells.cpython-312.pyccolor.cpython-312.opt-1.pyccolor.cpython-312.pyccolor_triplet.cpython-312.opt-1.pyccolor_triplet.cpython-312.pyccolumns.cpython-312.opt-1.pyccolumns.cpython-312.pycconsole.cpython-312.opt-1.pycconsole.cpython-312.pycconstrain.cpython-312.opt-1.pycconstrain.cpython-312.pyccontainers.cpython-312.opt-1.pyccontainers.cpython-312.pyccontrol.cpython-312.opt-1.pyccontrol.cpython-312.pycdefault_styles.cpython-312.opt-1.pycdefault_styles.cpython-312.pycdiagnose.cpython-312.opt-1.pycdiagnose.cpython-312.pycemoji.cpython-312.opt-1.pycemoji.cpython-312.pycerrors.cpython-312.opt-1.pycerrors.cpython-312.pycfile_proxy.cpython-312.opt-1.pycfile_proxy.cpython-312.pycfilesize.cpython-312.opt-1.pycfilesize.cpython-312.pychighlighter.cpython-312.opt-1.pychighlighter.cpython-312.pycjson.cpython-312.opt-1.pycjson.cpython-312.pycjupyter.cpython-312.opt-1.pycjupyter.cpython-312.pyclayout.cpython-312.opt-1.pyclayout.cpython-312.pyclive.cpython-312.opt-1.pyclive.cpython-312.pyclive_render.cpython-312.opt-1.pyclive_render.cpython-312.pyclogging.cpython-312.opt-1.pyclogging.cpython-312.pycmarkup.cpython-312.opt-1.pycmarkup.cpython-312.pycmeasure.cpython-312.opt-1.pycmeasure.cpython-312.pycpadding.cpython-312.opt-1.pycpadding.cpython-312.pycpager.cpython-312.opt-1.pycpager.cpython-312.pycpalette.cpython-312.opt-1.pycpalette.cpython-312.pycpanel.cpython-312.opt-1.pycpanel.cpython-312.pycpretty.cpython-312.opt-1.pycpretty.cpython-312.pycprogress.cpython-312.opt-1.pycprogress.cpython-312.pycprogress_bar.cpython-312.opt-1.pycprogress_bar.cpython-312.pycprompt.cpython-312.opt-1.pycprompt.cpython-312.pycprotocol.cpython-312.opt-1.pycprotocol.cpython-312.pycregion.cpython-312.opt-1.pycregion.cpython-312.pycrepr.cpython-312.opt-1.pycrepr.cpython-312.pycrule.cpython-312.opt-1.pycrule.cpython-312.pycscope.cpython-312.opt-1.pycscope.cpython-312.pycscreen.cpython-312.opt-1.pycscreen.cpython-312.pycsegment.cpython-312.opt-1.pycsegment.cpython-312.pycspinner.cpython-312.opt-1.pycspinner.cpython-312.pycstatus.cpython-312.opt-1.pycstatus.cpython-312.pycstyle.cpython-312.opt-1.pycstyle.cpython-312.pycstyled.cpython-312.opt-1.pycstyled.cpython-312.pycsyntax.cpython-312.opt-1.pycsyntax.cpython-312.pyctable.cpython-312.opt-1.pyctable.cpython-312.pycterminal_theme.cpython-312.opt-1.pycterminal_theme.cpython-312.pyctext.cpython-312.opt-1.pyctext.cpython-312.pyctheme.cpython-312.opt-1.pyctheme.cpython-312.pycthemes.cpython-312.opt-1.pycthemes.cpython-312.pyctraceback.cpython-312.opt-1.pyctraceback.cpython-312.pyctree.cpython-312.opt-1.pyctree.cpython-312.pyc_cell_widths.py_emoji_codes.py_emoji_replace.py_export_format.py_extension.py_fileno.py_inspect.py_log_render.py_loop.py_null_file.py_palettes.py_pick.py_ratio.py_spinners.py_stack.py_timer.py_win32_console.py_windows.py_windows_renderer.py_wrap.pyabc.pyalign.pyansi.pybar.pybox.pycells.pycolor.pycolor_triplet.pycolumns.pyconsole.pyconstrain.pycontainers.pycontrol.pydefault_styles.pydiagnose.pyemoji.pyerrors.pyfile_proxy.pyfilesize.pyhighlighter.pyjson.pyjupyter.pylayout.pylive.pylive_render.pylogging.pymarkup.pymeasure.pypadding.pypager.pypalette.pypanel.pypretty.pyprogress.pyprogress_bar.pyprompt.pyprotocol.pyregion.pyrepr.pyrule.pyscope.pyscreen.pysegment.pyspinner.pystatus.pystyle.pystyled.pysyntax.pytable.pyterminal_theme.pytext.pytheme.pythemes.pytraceback.pytree.pysix.pytenacity__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_asyncio.cpython-312.opt-1.pyc_asyncio.cpython-312.pyc_utils.cpython-312.opt-1.pyc_utils.cpython-312.pycafter.cpython-312.opt-1.pycafter.cpython-312.pycbefore.cpython-312.opt-1.pycbefore.cpython-312.pycbefore_sleep.cpython-312.opt-1.pycbefore_sleep.cpython-312.pycnap.cpython-312.opt-1.pycnap.cpython-312.pycretry.cpython-312.opt-1.pycretry.cpython-312.pycstop.cpython-312.opt-1.pycstop.cpython-312.pyctornadoweb.cpython-312.opt-1.pyctornadoweb.cpython-312.pycwait.cpython-312.opt-1.pycwait.cpython-312.pyc_asyncio.py_utils.pyafter.pybefore.pybefore_sleep.pynap.pyretry.pystop.pytornadoweb.pywait.pytomli__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_parser.cpython-312.opt-1.pyc_parser.cpython-312.pyc_re.cpython-312.opt-1.pyc_re.cpython-312.pyc_types.cpython-312.opt-1.pyc_types.cpython-312.pyc_parser.py_re.py_types.pytyping_extensions.pyurllib3__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_collections.cpython-312.opt-1.pyc_collections.cpython-312.pyc_version.cpython-312.opt-1.pyc_version.cpython-312.pycconnection.cpython-312.opt-1.pycconnection.cpython-312.pycconnectionpool.cpython-312.opt-1.pycconnectionpool.cpython-312.pycexceptions.cpython-312.opt-1.pycexceptions.cpython-312.pycfields.cpython-312.opt-1.pycfields.cpython-312.pycfilepost.cpython-312.opt-1.pycfilepost.cpython-312.pycpoolmanager.cpython-312.opt-1.pycpoolmanager.cpython-312.pycrequest.cpython-312.opt-1.pycrequest.cpython-312.pycresponse.cpython-312.opt-1.pycresponse.cpython-312.pyc_collections.py_version.pyconnection.pyconnectionpool.pycontrib__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyc_appengine_environ.cpython-312.opt-1.pyc_appengine_environ.cpython-312.pycappengine.cpython-312.opt-1.pycappengine.cpython-312.pycntlmpool.cpython-312.opt-1.pycntlmpool.cpython-312.pycpyopenssl.cpython-312.opt-1.pycpyopenssl.cpython-312.pycsecuretransport.cpython-312.opt-1.pycsecuretransport.cpython-312.pycsocks.cpython-312.opt-1.pycsocks.cpython-312.pyc_appengine_environ.py_securetransport__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycbindings.cpython-312.opt-1.pycbindings.cpython-312.pyclow_level.cpython-312.opt-1.pyclow_level.cpython-312.pycbindings.pylow_level.pyappengine.pyntlmpool.pypyopenssl.pysecuretransport.pysocks.pyexceptions.pyfields.pyfilepost.pypackages__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycsix.cpython-312.opt-1.pycsix.cpython-312.pycbackports__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycmakefile.cpython-312.opt-1.pycmakefile.cpython-312.pycweakref_finalize.cpython-312.opt-1.pycweakref_finalize.cpython-312.pycmakefile.pyweakref_finalize.pysix.pypoolmanager.pyrequest.pyresponse.pyutil__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pycconnection.cpython-312.opt-1.pycconnection.cpython-312.pycproxy.cpython-312.opt-1.pycproxy.cpython-312.pycqueue.cpython-312.opt-1.pycqueue.cpython-312.pycrequest.cpython-312.opt-1.pycrequest.cpython-312.pycresponse.cpython-312.opt-1.pycresponse.cpython-312.pycretry.cpython-312.opt-1.pycretry.cpython-312.pycssl_.cpython-312.opt-1.pycssl_.cpython-312.pycssl_match_hostname.cpython-312.opt-1.pycssl_match_hostname.cpython-312.pycssltransport.cpython-312.opt-1.pycssltransport.cpython-312.pyctimeout.cpython-312.opt-1.pyctimeout.cpython-312.pycurl.cpython-312.opt-1.pycurl.cpython-312.pycwait.cpython-312.opt-1.pycwait.cpython-312.pycconnection.pyproxy.pyqueue.pyrequest.pyresponse.pyretry.pyssl_.pyssl_match_hostname.pyssltransport.pytimeout.pyurl.pywait.pyvendor.txtwebencodings__init__.py__pycache____init__.cpython-312.opt-1.pyc__init__.cpython-312.pyclabels.cpython-312.opt-1.pyclabels.cpython-312.pycmklabels.cpython-312.opt-1.pycmklabels.cpython-312.pyctests.cpython-312.opt-1.pyctests.cpython-312.pycx_user_defined.cpython-312.opt-1.pycx_user_defined.cpython-312.pyclabels.pymklabels.pytests.pyx_user_defined.pypy.typedpython312-pipAUTHORS.txtNEWS.rstREADME.rstpython312-pipLICENSE.txt/etc/alternatives//usr/bin//usr/lib/python3.12/site-packages//usr/lib/python3.12/site-packages/pip-23.2.1-py3.12.egg-info//usr/lib/python3.12/site-packages/pip//usr/lib/python3.12/site-packages/pip/__pycache__//usr/lib/python3.12/site-packages/pip/_internal//usr/lib/python3.12/site-packages/pip/_internal/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/cli//usr/lib/python3.12/site-packages/pip/_internal/cli/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/commands//usr/lib/python3.12/site-packages/pip/_internal/commands/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/distributions//usr/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/index//usr/lib/python3.12/site-packages/pip/_internal/index/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/locations//usr/lib/python3.12/site-packages/pip/_internal/locations/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/metadata//usr/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/metadata/importlib//usr/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/models//usr/lib/python3.12/site-packages/pip/_internal/models/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/network//usr/lib/python3.12/site-packages/pip/_internal/network/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/operations//usr/lib/python3.12/site-packages/pip/_internal/operations/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/operations/build//usr/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/operations/install//usr/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/req//usr/lib/python3.12/site-packages/pip/_internal/req/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/resolution//usr/lib/python3.12/site-packages/pip/_internal/resolution/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/resolution/legacy//usr/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib//usr/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/utils//usr/lib/python3.12/site-packages/pip/_internal/utils/__pycache__//usr/lib/python3.12/site-packages/pip/_internal/vcs//usr/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor//usr/lib/python3.12/site-packages/pip/_vendor/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/cachecontrol//usr/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches//usr/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/certifi//usr/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/chardet//usr/lib/python3.12/site-packages/pip/_vendor/chardet/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/chardet/cli//usr/lib/python3.12/site-packages/pip/_vendor/chardet/cli/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/chardet/metadata//usr/lib/python3.12/site-packages/pip/_vendor/chardet/metadata/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/colorama//usr/lib/python3.12/site-packages/pip/_vendor/colorama/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/colorama/tests//usr/lib/python3.12/site-packages/pip/_vendor/colorama/tests/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/distlib//usr/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/distro//usr/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/idna//usr/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/msgpack//usr/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/packaging//usr/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/pkg_resources//usr/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/platformdirs//usr/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/pygments//usr/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/pygments/filters//usr/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/pygments/formatters//usr/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/pygments/lexers//usr/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/pygments/styles//usr/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/pyparsing//usr/lib/python3.12/site-packages/pip/_vendor/pyparsing/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/pyparsing/diagram//usr/lib/python3.12/site-packages/pip/_vendor/pyparsing/diagram/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks//usr/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process//usr/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/requests//usr/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/resolvelib//usr/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat//usr/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/rich//usr/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/tenacity//usr/lib/python3.12/site-packages/pip/_vendor/tenacity/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/tomli//usr/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/urllib3//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/packages//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/util//usr/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__//usr/lib/python3.12/site-packages/pip/_vendor/webencodings//usr/lib/python3.12/site-packages/pip/_vendor/webencodings/__pycache__//usr/share/doc/packages//usr/share/doc/packages/python312-pip//usr/share/licenses//usr/share/licenses/python312-pip/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:35511/SUSE_SLE-15-SP6_Update/0c81a42089b060fe81109d395bafedea-python312-pip.SUSE_SLE-15-SP6_Updatedrpmxz5noarch-suse-linux    emptyPython script, ASCII text executabledirectoryASCII textPython script, UTF-8 Unicode text executableASCII text, with very long linesPython script, ASCII text executable, with very long linesC++ source, ASCII textUTF-8 Unicode textHTML document, ASCII textPython script, UTF-8 Unicode text executable, with very long linesUTF-8 Unicode text, with very long lines  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRZm]Y:ca-certificates-mozillautf-87630d990581453eae97539da632e7fef97f0aa203c7e29428eb13a001e55317e?7zXZ !t/ ]"k%Ia 9zFxqbO>mdc"@[pOT2k7(B :D? 9#K'UO5G"*b lI:Yh=찚l#ÄY/|pRh=!gN&htX SЄbabnޒ "82#Z{PkT9VUQUBr!YV 83y|9aZod0 S|Rql{Ǭ<*g_"{/Lň7jBmq띷ObFt)c}b5uZnǖr+ b{?wdq/ԈfnI7Jd4Q8cX`}CL@Gfi$ 4(f E8FwLN-)\ ^zx;iEف^u5?]G Rh̏Z?CpsGC[Q%8v֦w@여9_8Y >~A*OTF V0^2jTs*Gp0IEp:&#$'GlZz If'ѹbvJoLt;oo ܵ<|Gj Y\"Zv q-+˃gXN)<{h} ^I[Ns9 ĶYW!DƓ1߭,_(xYPcu-J;;[\m,}V9֒^:՛]tHrZ#嚝%7.tQiS ھ f$E-+}•,E:]Cn 0w'IY氱K̂xf _cjDZb7z(?`SW(`Ъi³h4`XzY? n7eZR)""\u#v`ء@ڔ W6IȇFH28=`*ڝU*o'XLSaezLu0abuJŀ{sodpU8ìkwa0v{5I1]gIύkA?]IeIޮITlӅ^l d\p[%.~T/3LQ|A=z1m[۸mGa1l; K3nE0(@i7'cwi )1b @/;4[Yye "nB¿LfAك@r]I @_OvB@ m5T Ű? Hq֩~s=v>|C2O7M|*j zk2(vZ`Z t@O!Ha&B?G?PD jt݋DCkYpП9jJA8$(U\{wPwF1{xDV$sBWxyEPVєU4x{e 0u6$F*uȴƣ AzȔ[yRY~V8e˫`jgEV 5J o7gMzCV͠ {l-9?'$e_$+^q odxMY(4dT! &k?m-^yeH4 v]Or^r.CШgMɏdJ;-|$h$!z!Bց wIn [^Y" Mn!_/bj#MvR78S,zc1?$޺T(6K'Oz pDFvy*e , (1^-l[nLusm~Ed!zLJ!'ߧw0k1Yф|n-a6Qd hC3k療)9 i)Pm:RCjM 2{ZIqbӪ&:iZ*9羢8K!WU!< @Pߴ}g{Q<E 4:ʏ`Dc=pA١^x(|n~(luew<,Tӗ 051jS#}c6œ8yHf1-5w&_FxGNKk'Z7;fI#zDe$VN*rѺ4[綹7k@{Zv}l5n_:w%G"3H`NGnqXigOB=F-RF`aƭCծ!8]T {` $O61DҩeT՞ȫ"$]Е@A 7^M= %]Tr-`w?MѺRw_,_ 5 hM$A2Sݙ3(_z [^c"cpSۂHUAu${½k5V+%oHZ%&Le`-+doU170\=fp:&֌OxBǴZۼL{.n΋kH4QRpUtBwXvOLRFzI{֬p/4|ww)$ϭD{=Q o%/8R~Bk뤅p>p?pdVިGQ1N5z%xQTvGců:%p0vHko"e-PVZmh92N_}L%Kifܯ@PO1HF!FFU-=Ts'6.ĕ[$ 1K{3Ez9Nԟ{:cNHv>`h m^{g#Ⱦp @Le19hvp= l7G‡$|-9sKf$lZQB3K (/yDʉݵ%Ek|?u=Qc,PKnyz9+VdҮK%Hջ}ܶKny>mu A8nc; /K9nrtxw!j&xa]t(RA8g[֌UOBoL8n z{ ~›φ-"~") @c [wHYD MQ)ⓕg)iԵED[fn +#"e|*PUSU:5$ fLB6A̵ Sȥ%-\ǰ}_` f&NRݞ! >qa [rEA(VI"yALDc$$bQH-A][+A':Z6˫iyQ Y[-42{7DJwkݝ巓4X~eY7$hn -ɠ \O 1Ď|vY2/׷cK&zg`nV@m*~@Z$5(C`"َNJҌ蚸h:9'.=E2EO$rl#-Kb0꟔qqH/gq݈i8F_ItgO*6L:?k*Y܇5ܽ`epIpoRG>ֲnG/̝j(GlEg( I 應ץ:Fl)DEUퟋ#m/,ad&d]4e.fI|ˁ ۾.YqGSYx2{;*'%wf^͢#hI3t4M[meVKX@kMLK=_`G@y%pSb[݃8loU`xk8&]AB?=Gc֦PV_êhe,":=?ÔЉ!%93 G&_u5rQZ<5n1w9ڄ&d b1wo{C.Bo)ob"QRŜC˄Z^D ri'HXؕ;a*L2md$,Aa x O6?F~Ce8%\#,BnTc(UH|Bg-o`b6um',}i4 GCwίhE Rs8Tt93Q9fijM-ߠ v.#  K0mZ|!SlFQGv9"HzZ7|~ܕ!ǃO6ln4hΊ)zZyk?Fʡ 9պ]!Qub{"rCy1}*{g Y$O/i"Px{hL<7EټT&j L&[5p=umjIϖUƈH#ySx[<2#3FڒڒDKq5Jشf,/MWG7r[BGyۗ 盡"O?\(]P hL[%6\)w_)lALa&Bmť[e|^6!0d޽R{jVSOtWۻFy*qdkN$tfo.b'fAшw.|)ik]%P6QugPO[-j;}KuTߪOu5N `+C#(oZy|bS SW&Jii3OpX>9}yD/✹PN"pU}]Ba L#6Z-= gA_vhkٷ]p-LJŜ.fy%"'Ilw3@ kz)ReJM>U'װ$ëhl W@WNʜ M4bOq1MepRzEsfcꍋqyԅ#M ƩdtRj컎S\]\>hI8j Ʀk?0U9Llb+/ӧyu _j^zl[ W0/qC&YTF2J(Y#Psݸ+>ٔ6 'F?lk?]# a2TXBu`k;|0ÖA s&n8R{.?):h{ˤE:7{sA~hx8[0TԬkR5ew3pgL$JmB!)%vբ(YV ǕAo>zf {]%?CRaݓ!;ebdM,DR}3B^Z'Qnb[J[ey| 70>#-xS0c"s,m&4nsi2pZQ'+ZFYg(,Ȧ񮾐mCp>!0fAj903?<lTeʽ&mTG\~ x7)V|u l-Q5jE?o3+ |C' @$6ƂȹA*# V0F"{҄xjA=8w~?_FBYTաD?#-w8[{Ȳ:$7.ީr;/$RVD¾f܇1{ M\ʰ#ImQ[x [9o|bBak_~PӮ}Iϸׇ ]#B735x[FVD?=s: ~Iٳ| ө *0Y۬3R*yqWO$2AhS9) QMife:M3&U(d_P­Dkp y7)승MLNQL6+D_%ٍb4 5ʠ!(Ņ5*[YK7 Lbg.waf;ω K|BLQu|?A>$<:d (w6:QsLUZ2;hGa螋ENM[o*.nMT•ILn+Y leT!uJ$ ;pR*p}<ϷNIs/1I*! +٤D"uek5O%8& oJ"sBJ1 ^bm%JUH+=h׋nf*NHNiT 0'hO3_aDyR#vαxgje;s29]iv6[k>V$m4Q?9KX%"{)\ӀoNN?p9m/|^n;g/9q7 d%tnK_PNuu.CXa)ymӉ4᫺ퟱ@*qz+n4H*H?fZDPڣ- O\_ 67qNkȱ!:3܆葦Tt:qoϤ d/Of6֦n]!p8,RzC3cAlʂr-11{kw/oKp:c:omUADY?9,B/`]RޠBU?TzU1}f;ӽ=d/lS>ph44m.$iG)naz`֏Pfec5!P*u>ꦸZ@©C q{(( }˂ .@4ǎr@ⵆ4ٶ `OBT<ロza\]tHƍ?d<=_V~nR C!a8lHlL]AXòbmCC,> O\<F7!@Kv]*CP8͔Vi ?1Gx8IUl.4mȩn5:Pۦ&.V"]m\2fdQ ZqA86vYv4+D>fcvU%?=ka-xFs8+'lMq/Wyf6y"Jw;l="[FMڧm@7 l܈g[(Y *QOjU1 0,B}fѰV'7L%m2ueG*T /"$)K}X$;Iq yz``Om3{GKr%^xGOI70p5++7ϧW4XLa:yC-0;(%zc\ґ ]:+QiIxҦ#)8n&mh*ٞCI*YhD见iՈ ?X0Z[eء=DOpO-B3||!CՅw(;:[aof ( R@8ژuo!\҆bp L"ߍ?V72xrCEĝlҶnGIԛcTZ'˔V`+l{YX:X7nﲫXT2oEeG?Ҧ(dYNIg fSh^N73օ[ ^OٓZ-x"HLlӵ ׈(@SOA#: *]6ezލ[}r&`jPynp{|,i?\HL**OuD@nڪ ^S*(M\S1%,އ35EXگ 5.{몁Fo\TWB+`m nnf` )Ҝ^IF?gMǿ6C'V V` WnބjR:vp tl7 pL7Ӡ4;{֛ Ǽ@Y>.OsAʉ,lom#YO˔24#$E\0#Y,g>4@:U XH"P'Gk9 ${"!3Tr믧L6UGiŠ tYijӘ[ڪ3C 9GQoJ[bv_?Xyl/^آ즮9~ |,V-uZ^!V{]X5͛bc^fƍ%ZYRū?k4g1o9hmPL!Ҥ!{^yGœ衟A~CUĶA4j/p-BR+xmSUWLTJ^=)Aet7셪A\ݢkhp ;f~޶MaߙExl/UT^-Px\^PZZ Xdۈ!m2;R(OH¦vd}.C9|jR/P-~<8EG}݊@3BiZ~DUOSRUW+'oOP#qVs5uU!Н g,u:^R[f.9+==lbtdtKf%{Wo&EnvRrDJ礼e$:աϛ*FOW@pT,N+3Mc'5qf"gr^lT+l |һyuo<²RZOU,l:3}c:̖noIZ;vgwEN|4l-`^\Op\L U_yG1RND6՘ ͑75.dAÕ?4=n .=:bq{!*Y),bb D$}&SEYt䱐et:꽿Q]( :21M1U*MmŴ l\'HO>Tp}+=@@Z$׀$rlLfT pm n$8c56,ʹ'z-UX1xwa|0ig PuԠ^aT$SqʌzU~9<*uVMZctI1 W: ;-3XX #c YSw#w cC"H O?e&6ѝ,B%i@5 `/-cLwhGVevB :LB ] 2?GГ zcP8k_T]#es!hc's2'Hoː%= 4*OBp ],ъ# 1 `"*Ӷ*QalXTU[$jp91it=7+3Fv|R q:STCM+Sd>7߭?mJJk_bU>jA*gj`H3K428! b9O3;h9:HTM7l'g-@8-%(Brx0#N!110SL` ]N}p lf4Wn#36܎uG&  |IR_E(<7?{g"c m%))\ o0cLJ_:?R~gdA{r+ġu !EZvžK|guHx̕B*j1%%D,ϩ19jK~U"¡ѾJ?!jaR$Rkg_'NH}+)3^rA{Qdci; EDRQ43'dff:v(ϑ@@zfFQZΪH.iʼߢ? | w}O!cUG?a^v:2|K @ښF=7fbsi5;;oFarXfDii0qu؊Z kn݈pZOKz[ Hf[&8&7@'X w.D.|7D<ʄLPݹ8Pۀuj I b;fXCY-:ǤD_1KWSN꾗aↅ|^vFd(qӧȯ[%yZhuH,C@W12BKAI84&p=q.⺑R?BbI~Q'q6t43 (jzG)ҳAk2w!E__Vj")o)0̛4@0ַ@A]&Bx:=ٸJ ʊڄ h` \UeBxšDB 7h?2&jԍ 9ƤX&y;QR-80,;_ ,,–z OLiLҜdy[i$p B82HEi#nLg r>ԛ޵RNG *?b]O LݘjmTNq#.|g#;M .l=bZ*/ kEƂIJvp@̫rQ|Ւ/"#$&ARU/)q|:-\b{KF'X*Qf@ v.B[/VTOÌy0/0qN/WG|=*. ^%Q?OݾN \G2P?ݗv߯k WV:UKuCl4}hDB8q58[@mr_ qH$)wI˾ޠE ; Ye-UQ{=+8j"8cG7_y, {(cք#q^X&.z/7CUAAHR +В0 2z/m +jE~Urw fan9Q 4%u3ן1!P޽9B< Iy #L5Xx=!VRH:|H%4 aƒ31ϰ^6sJ1 ~q3g05¶XG VՔ.6H'r#\fc6ə5KLaּGQr ~Gzov2ǣ_'MdƟ}X Tt_qHڄj^V\zOjegsKf"T;c$KިV="3:e yo%SDȖb:q׵Bmb="k^ʇSmt@a$?Ud՞bBOyZ"zQ$z\x-wTI9IM.:Ѣo~# m%(xKI˝f+ &uP 8.1.ćx|_ݽT@ςYJ9]t Ĥ98.W/?Ik%y b|W$OϲWG`Z ?"*O C}k=`9$Q[:y9R"ndW &_l@s E]ehAySCL2F:ёqjB{MH/4]0V8]6h*o9 Y$/D; ;WTǖnAHə4 tܘFY'o|fY'2 h>KDKju}v}$"+Jjje\`'뒱 ~~<|Σ)ei[:]8g((giFPnG+`~B ǼoҲM'b~G,Dl`=JD#C203y9(8oq)w[ke"-7i?N/T}@~M"%# 0c3Ĥ}V-YpP91 \0 o\S@Gߛʣ/i4XGUk[o^Ց@"I(nMK14SXJƑe.lzi!kH\c OBOsh9-7#$I;A IbUVnQ{Xn⻍юh@۴nGLeࡳ^J(&"|M߯_5HqH2r[zI %8u"Ԕubd\q0=W%i,ޖo}IoJwne+{Q@&NR\fݻ]Ɖ]Q?΍oN}c}> +ΝxC9Eأ hZSWVmUlcxUofBtW3cK0!Vl~2 @i= -(NqE¨Âfr#T e*YS'?wJ*nx.ҙuEw^W[/{*i^HwɱU ~K@`djj  -D]Yz_{Vqʂm(@/*t!OU@Q/p-snl^ W/*+^ PSw~ЪF+ZL ;o8J{>-_",&n@ ef~E,9![GaӲ#gOc$i Y)tQĆ>hC{"i%Lp-xU rTe?NHi~ST"6_s )X {ꖅb0v'Hؽ7 z8B^ *S)xJ8!UlJjx`m(zuY]yWy Dj LĪ8د"qQK  '9es(ϖ0)X9 XsUoX+n73cfwI#c3.6u)jeRmxZddD#+D2ۖMS_VKg,KNãc. O/̫џ+FW劄TqctC0fKuYpg%Y]Sq=: "h:>!pQD7y y’on>d֣ <orQ5xc쁹Z!ЄeGrk(VƯZi$(ڹPl2yF3 P= F˥; M*ivFHK$bS !.lk46loV J=-f &m tvC%ʐE!M%U 7[iS,תb?ψvgX%> ..hь! { 1ClkCf>N'}JI~L6Xc[8O0J?E R|'B dKZ+w=!mک| xq4ĉ.|*^&éDž쌧O]}l/֭ˮ_}P*ǩwfQ8apm N\i\‘tR6x qQ@֦;%[-|X6Xp| DV K$rIU M$bڶE;B@HTBu-tavS/Wΐ7Nk^P+K> /wUmᑦ {\ w yR450HCCQ3wʛ`(ΤP\; Q!S5kTh/TsH)DkH!p%YJu@1 }9SK }L$WZCI֒8c@VQV5Rc#̅D}4E2qsJ{t6Jq'nDûīfEZkr3Rzd\ݡ[Er™y:|bo'8{16 uxڽr=,gCH-/js>5+U>0V_^-5 J)>D-FLH8.DD\fzXTgܯ,w[Ӣ#X- q(dP^ c)a EQaL*T\~ߞ·?{w I=~&" ;?Psdl߇|ۑdi q \qa.8woeA/8т=I\c&v]P*GkVv;ğ`]XxuㅗYlUUI+?Jg>zX`ct#2K*&–˷9L6e׀{|M`-PNCAc!lxegwRكO>dWlI߶eE37RvپH@A[)}z3q4,FCSf KtN7Z=\c4sz;UţԇHϙ6XH5,Sf OsQY whZh Rt |<9,TME,% ]*|nL_4Qv`lTçMS)nl$_G'oIu|di8xxl[Xz AS #u[25-'v -UӜs) Sq\L/겁r/ 9MqLBJ޸YJ3*TY' dc" _qTemj)]vF;9zN4JXrǨ\Dpڡy?j JH3O'6]?Ud 'UnµA \vWޅ5K<u kdSb,b({iZg%K*rڍh=FK(UQ.O[#'Rq7Pi9Ouʙ W|DP5 {5⬜ >H' q'd5 s, H(@Szz5KDTZ6aW|a"Y )q!;͏Uܩz>H(t::+V2B-`W⑇g-Ҍ*wa<@}DyX5Uu$ )35Q'RE,ԬeWzcoܖV̟9 ORb|SjѳCC@ug4׽LL!vv =~ym 0(QmVn5SxE ͙LMvN`ʚʟ9tFjN\LYԬNqF(+;@o؍%Nwt1mH6]mk6҉WI?>hd7ŬSe Lhc'wCS DzQ2$CoDޅVa y_iV.ov]g/l^s}:ve]Vj6^حW2~sHEfΉp9p'TA Hx%p"Q40b4`$jks:D,0sK**GP uR<sW%@UT!0nij{܂@}  _(=#SM |6K8\0Dm@}ڒOC"2v l qD{_Tg~uuck3KY: sŒ0' m^k@{\QUO1 $Vx" czzw PХ A&d01"Sc kIlQ.>;z_ UM2 oS =P[*GvuWQm66gK8ll' KZݚ6:__u\l =h6_L%a{hGWT[rEGco&ήk~?oL襑I3ck"=eKPp%Lā̏LR|/p`O[aB}=@5#qy1*9.FuQZ$1F>Ǒi) m56z]9EhM!8 kM' 'jm/RwG’wiA邌> "3oU #Y MKJNP1٢ !prfG \C 7ú[vM=!d=ZKYNPW^.RWHnyud-0I@hUAʐ8c:|x{Yd* p/:%7 !'U+< ͡1V+EP{hc>0(TL[Bnj}`q ؼ1g)zBy:@TL]_^U1v QaP/a3fAR:.#fb255M2O`XK 'F&'C B~\)}t,C))Gtgyv@x!·)~~coXF"Lw*JGpXS[>l]ȦA,E͜JT x$b5(kށ[",F==9A+&@`sݲYJjyع1in#%|?Nlt1ЫawZ7|.b]:V.rFZzi3,/Mo"P󴚉 L]R-sFe0?du<_+.z=Ċ/_BjCЩ]2z=&S r|wy"'}`KNIeRz24otw ňj*LDт!= :!.)I Fh#vj@42aPp$^TA>܃m?3.ńZz^X6ڎ>"-A9&̐NjRFgXiOUGN-UK,%?^S_8ϧyH,2L eogpY3"݆SYmWw|IC`dUbe)ʴѭm! E=(9ՄQUj)XeO ŏjۑ\90jBuƑx fj0ƘebL ^х @mSiMsWhX`j` 1$ C/RMI0ez&ul@-7ӫaBR.Rn;{`PO'IQqw\Ij PmY v8_"ZkyWvEo+5 2ӯE_V:q?`[#h_^#M23ӝ#DZDHs {7߬J^ug/1 ]{-▘e3Eh*_- }ȿM݇U䐷oeLN rQ)0 f2%c3(Nr[E`#8n T~w[I?#8c"*۸"jЭN$2x2ҫDiC((흀dNĜLעAll^wF%i0J*t\$)=.͚?٠9$b>Mh䖆05j_K9/-=`F3QsbY*p׼kZ|ecHz_e Ӫэ5Z{P׸қqrp `WnY+c7^ ={F%o=UdNw㵮zItN{ ) `԰[UYR':tuƜUʴaG{#M"ޛN78\GnP.^IA ʯO(vdcasOkSn\4LF@!OY`R7g4a t?Cg6a@7\({eGf`'j $Yp2e# M㋼d᥉( ՝-{J|,i^йk޵݆O.37 r66ڜ.)o|$`1ì>d$^5쮞ۋM\PQf>{Č'xQ"Z3]!!+ym-eLlYsZ;ϒDܑ]-o48Vn|rSұ]2.vW@-clw$"kf=yE͂%|v6cs4H[1` 'IVXק۰b&_9)/~dd|+S*CGb#0)]˭zɢr]rWw1c>V9|et7aޑK_q\nޯfe]迦DkZ #E^sx $]V;xAlN4K_* / K7Bw W'w6!yW^lxR|#ɚ|h9EHN.6Jۖӓ Hc bУ,9-sBK_{-:`fB%PG( 7[f,(*D>k6c]m3W_E(܅CmM^??AtT$!\3B9>LYC!ɀJXMZ.LCRX]ɁgZ0زkK~ssz$XD/ddvf_7# si} Ƴj愐9ʪX긱 TO ;75==;n.۞N,V~mLOwpwJfE(qU5YIu;m)ghU-0 >r-|v?W&Q$M )Y]dڟU V3g02EY?y2#\4VkGDk{罸#@V92ngC 3T/"<CZq 2T/S^;-L Hf  @,+l1Xp6ǒ鴸Nvʡ3"_33oP ѝ.| C~_hz=WҨg@jDXGYۣrjWTcL=+OA]A6?ٴ)`ߤٛp2INy~z4L|39kz=^V?+XǢcq=ڕI nY XK9S9r:h[@6M|8WBͻʼnb(,7~%(˟;ϒ-Ƈ70˨ 5ւ~0iJ0@Ae("M-0Z 7qY?A%Ut~׾ *J2d3CQh)!o>ۥ8ZHwHNl,Z.H濕A87yeU ;nQgd>i'N5TFV+6hEOE5cR Qc1:#h-?Hd1XiZs(I'n]IhzCǣ7^,1얾y~\xu210Էq[9Z:F%_2kζH!GBˑ#[R`GWNk;whB%Ti慉d. Z>+e Ӡq{gzl %L!#S-*2 Հ"JNA-0OY!58E  zi}|Ƃ}XGʢdv[*!1EtF~aeF4Pߥ!gF9݂-|rsy\nD|6UQy;h< ^W Jꢁ\QmմfѢ$~*Oe+)r;dNG ؙ"[ YԴTXZHoDz;.egQ \x2N``9_pOI|eԾT sAbA!j"WY"tQ^5wQ\X_ .{eFL !9|HB!<>N i%kL-++sgs+Ou2O_0Gt HDs4? 7%βN.u3UDm>%sܜtayX8bU0oo({6QsE ^㞝Ȩ~9!#wGNo(TsV2l|GR"xt9d]ϥ=gwx5L -aV񢼄{VX*^fY0oW-/W*4mR"X[e~AtC*4 xy'e4,Fn7?裗2޸f@$jDZANc3 v`&7]2!dEK9Ә.o;t4TP+d&F $yjV}.cZp?fG#`Q-sot O۩EvQ0;^cdi|r&}ioEk$~N{ld@#WVb2ۉ[q*U.1 3~ ,UzйrhaE~tW]舛 e{ g&*DhZWy‹-|TN,Mx@]a?;urj؈Dr.2>э$?7t2ˮxǚWlMpZqL^m;=*K̜"o~6 "]xm UV_ KEx ^XWrgW~ JCwXNYFC!wxKDe SjU CQl }BV"7]6߆/(^GL܍ަƏ Tx- 0؋$p\/J @kC`Y:OpGv(`zзXlbJuR @&璬4>z,'OFޡ˛6_ا@gvÌ Dzg'G빟̡ia_SMB؏M&m1%C2f)c A~BjlC*>$jlZ-sY=QŒMa<IMr8+0Ǩ: I8*T'PUۮ7i r}C?USu ! X9pk*Db"keZK{\a' %B<) 'L l&еx,Ho1ĐRx7! XDbNu)iX2,`l'nO?guϞ ?|K}&Z%I³X "DW; Ulq7s)Fۆ=j'H1|8B ܦƯ|6%_X#N&Z( 8Z0:Vi椱% QH`è!tm]uqH;$堄ONq;qtm <(8f&5) klrprE` L@K00 Yw!@p3{1&~5|;dBĥR0{PO٭[6v' =ܺTA۷#ŸTЖ@8Ǝ#vTשfR L F>Aԣz(n_+qn4mOÞV陸M:|umE;ĉ*/øcoHQZݳٜI&qgK@i/@3u6`ŵ>&KZpg䞔^50E!ӏ/8eDYVH"`f#=eiK oY*?f!/P 94@flN$V[/!N=|f7hSmCpia~y40GCVT[jiFΚ@'F띣Qɥ_R{zBJبr%pzޤ5 ч8m%KC???h ꐣ /_`6e*3nfUlTl4d6[)DvK5ruXc}ڨ!ac;vKY}({"G BǶ^ylr܅ZQhhfPEaH ˤ)mix#Nk,c (6]eDvbɊ g5G>*?E, ƥ "BU9ފmjon&_qI*_fЖ4r@1U7Cɒz$DNɮ E=2R?FM܏@8VSx e^4"aڻ)v1¡x@ = Pubf4Ӈ]'IK̢P+Rv8c]pxXwvAI}=nQe}ʪL@;u=` ^d7YIS~t%dWyq|tL<"V'&;s& u"UL!{ es%=6K&1Kp, D%|0bxQn)Bqdu: g''gӔ 6-"1:ho;g@BAWF 3ԏqP+ábk]m3Cn\LN)z\O(!g刪,>{p[{4;#MËTny-1ͪ? #5b8܈~ȸbՇeִ/#^.6oqG##PjE@ Ju'~qYjdcS6\)Ͽ%J6JpKǎ% Ll!EPا3Q.DSAWϯID w$UfzD/>pkfYȡl iI^ZUE:^PfytL{gQk +`-VH()IGO}kJpط`o@vtgqT)dܴ Lh8^hjt@mDp]ՖqvLdjMc WL*mߜ' -lz4˛?1 6jφDfrH&f!]B6x8㟛wjψY@crڈWAGg+$rX.35t%X&lo6Xxe{TeT?{f\; d#D^! |{a^K8g:1+Kugw)\ZuT+1@xEU.ƛp+|Qp1j Z F "o ( 鸨W ȟkhc+q5A:(p̮AÐ~<:3u< @F4OZ1ng#q. eڮL[׺_cv= wQy-Ւ( &>UELGQ/Gײ Vhʅ?O?!5 cY!L>hX!>vAZUZ?ka':4Y(FB}\laނ26@T~!HU!&j 4q ̼rL|B66KP5&>U %e-oQ8r M*W=0\܊me\74J&&W 8aPeplt]u2{"_H9=&)Bk#~] 1J׋mٹf 챮Tl2RʂЌ?4zs"6`}cU QmM ɁL00k _M*X|TBF"EmޕEPkrXKj_jŖr N\8HKhPP! }1Je@d鿍]RI[@B qf Ѧ<AUA/L[ Y-SKjbt|k]PU){6Ig91z Ǚ*j8 l2gոI*j%+34Y}# A -:ȢqI5+x,^$1PMH;_b,7z1UNHQh<8 1oM-vVddΚhc̷%cz8ll #3dIS~7y>jDI@%,wH~[X^-Ω OLİnDpp8؟His:`F=v1%^w Ы-,&bL_X'D&0/{[#BD{T(1ST(Xy ^E=7Of9>.я/Eq%-3: AN,*߇bP*t$HŽg mGW=Na1ѱހ]' Q+WB_p|CǢ5U29V$ROf׈?Y:iڑ߫'<ـ vt %$m5e͒j%=K)0oa\L@=ǁRذ;l*<Y+,u@),,,ji$hrVt>ԋ梙^0{[[Gty3)`l0((NjxE%\|^QTԫo-'k!)h|[EmS%zc̋<nzs+`1EFL0񍢧 1KXY:NgA&{ }A^a $h/(hS2*M0:Id*PϚnJ`m{|[F-LRL*zt Sri n'&XvT /H_P ${Y`D?2  uwbYoNx[j13JdEdW}">VP;WVkQ ) u^L\q2Jډܡ̙[4F&81[!38"K80eM4ì C`yORj f՚uZ#{c &yڰ&?^A K mF1A#a%.J^fzy[7rsy^qSpiWէϾwbku8'D ۄ;rjߨ麗^ĈմV\\Ծdx0l0DStyjIt66ThBf.!/1!6ltMF"ҟnoڡ,CLԶLI|D&&ZX-Em.&16 Qz=0d82CNľҐ"4 QꝾl,+$.Pϻ9X=O&,`Zo6bDiDJ\Խ"$DAN*Wһ݃' CbQp06E6Po <SJK9W+ =*) ~.P UJ$ѱο·u>ȯx!C.g> ~r>M1٘#\BQȞ͡>xI.u" L :: ;2ɯɘJ <4f{,S-q׮B1z/;EX|9"~'Xʿ{>b|FO냐fxEjj1ju?iZ[ Nq9 >68K_Ͱ؀<H6Pm:{ced+[zONiޛ85{aPҕ]esTaS.Qw #Ζ鄭g7.Z'a>\|wmf_]0B=L5<80]VTR՚lUvsc(rAʍUҮ'@(v@yB">*;Lv$t֮rBd MG a~se٨J?8>}5O:]| -@{U@PI_ kQ8.dY=~ba>/ SoOLA/&W屧G]RVlS+؃ S|)"s#T~8Ib~@kxg{A,.\DO 6cWvۮH!]sy{u0a 26r/;FMjGYTs+G)A3jIe{ZOuT&]J RǚB-S~nX}f{e򬸁Xv|sd9*3Z}#(|LE5oBz[QUWVΤ_3՟ܪW36ے] L!0TWF>IGss*n. ~_Fx6KVуڸ | ['Fll0RS 3G^r.}h.vOOd3FX/3*]\&Ψ8XA[C(At8k]%躘\Y\ JSS}c^N״d*X8.`~8mE7?.mk@P^5]PϹڳXJ `L!Oʹ?c@z*_p J( ":7.8_E0L9B#ȞPR&cߠ a|(*kHJY!H$ɮY)0q$Z.(ty_ɛP3~HoQPet9cȽ C[qC;?o)>.!tN<eí;oEf|Ʊmf̈́9n6R3݆"`<ޘR./:5x E:Bw68z*8"^"J~f !]Qn0BT[@u\3BLN C4H˧?6$@Fhr2Ǹ(+Xw^-@_zZLZ5ʒ4-L%DW]&f7S`닅Olql߂K`vK"Gf!SVPbIWF BN4C^҂ x.*$U|Kl0Xh~:ltv slaO7:QM3g Eh"EM+(_QuEGc\@GuN;qpڧ[Fn{*.{DԟK*rDڰ8CyO1hz!p0WDuc*8¦;Q1-G}H_?> he7m8#TҒږV'C  Rouuv#=l}^؈&/̩ qƚ͑Mn_ KDy غ51z? ]聶l_+sRm Pm>cPXf<_n~g: M(&3Oj`lctЀRxg؞n^9XbTe- O AuZܵȑ-[GŠm'9࠺gK \ox"/i#K}ŋj8ӽzf .14;uv;o'mA9_#gڵ]̤|sGg:- K=k(cAv ƽ{ ކ; (,DT؏s5B1aoVO=U y_[ 7fZe7v?]w5nW|j: >DK-ۧO4Vk02^d@'r M_?9L